Skip to content

Commit 8356439

Browse files
Robert HeniganHenigan
andauthored
Update Handler constructors from deprecated versions (#1726)
* Update Handler constructors from deprecated * Change to mainLooper * Add null checks for myLooper to prep looper * Cleanup where looper was already prepared * Replace mainLooper with myLooper for non UI tasks Co-authored-by: Henigan <rheniga1@MGC12Z921DLVCG.fbpld77.ford.com>
1 parent 05b6219 commit 8356439

6 files changed

Lines changed: 24 additions & 11 deletions

File tree

android/sdl_android/src/main/java/com/smartdevicelink/encoder/VirtualDisplayEncoder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,7 @@ public void run() {
337337
Looper.prepare();
338338

339339
// create a Handler for this thread
340-
mHandler = new Handler() {
340+
mHandler = new Handler(Looper.myLooper()) {
341341
public void handleMessage(Message msg) {
342342
switch (msg.what) {
343343
case MSG_TICK: {

android/sdl_android/src/main/java/com/smartdevicelink/managers/lockscreen/LockScreenManager.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
import android.content.IntentFilter;
3939
import android.graphics.Bitmap;
4040
import android.os.Handler;
41+
import android.os.Looper;
4142

4243
import androidx.annotation.RestrictTo;
4344

@@ -227,7 +228,7 @@ public void onNotified(RPCNotification notification) {
227228
mLockScreenShouldBeAutoDismissed = false;
228229
}
229230
if (!receivedFirstDDNotification) {
230-
new Handler().postDelayed(new Runnable() {
231+
new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
231232
@Override
232233
public void run() {
233234
launchLockScreenActivity();

android/sdl_android/src/main/java/com/smartdevicelink/protocol/heartbeat/HeartbeatMonitor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ public void run() {
155155
Looper.prepare();
156156
mHeartbeatThreadLooper = Looper.myLooper();
157157

158-
mHeartbeatThreadHandler = new Handler();
158+
mHeartbeatThreadHandler = new Handler(mHeartbeatThreadLooper);
159159
mIsAckReceived = true;
160160
isHeartbeatReceived = true;
161161

android/sdl_android/src/main/java/com/smartdevicelink/transport/MultiplexBluetoothTransport.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -348,7 +348,10 @@ private void connectionLost() {
348348
}
349349

350350
private void timerDelayRemoveDialog(final BluetoothSocket sock) {
351-
timeOutHandler = new Handler();
351+
if (Looper.myLooper() == null) {
352+
Looper.prepare();
353+
}
354+
timeOutHandler = new Handler(Looper.myLooper());
352355
socketRunnable = new Runnable() {
353356
public void run() {
354357
//Log.e(TAG, "BLUETOOTH SOCKET CONNECT TIMEOUT - ATTEMPT TO CLOSE SOCKET");

android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterService.java

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1442,7 +1442,10 @@ private int getNotificationTimeout(String address, boolean confirmedDevice) {
14421442
public void resetForegroundTimeOut(long delay) {
14431443
synchronized (FOREGROUND_NOTIFICATION_LOCK) {
14441444
if (foregroundTimeoutHandler == null) {
1445-
foregroundTimeoutHandler = new Handler();
1445+
if (Looper.myLooper() == null) {
1446+
Looper.prepare();
1447+
}
1448+
foregroundTimeoutHandler = new Handler(Looper.myLooper());
14461449
}
14471450
if (foregroundTimeoutRunnable == null) {
14481451
foregroundTimeoutRunnable = new Runnable() {
@@ -2536,7 +2539,10 @@ protected static LocalRouterService getLocalRouterService(Intent launchIntent, C
25362539
* This method is used to check for the newest version of this class to make sure the latest and greatest is up and running.
25372540
*/
25382541
private void startAltTransportTimer() {
2539-
altTransportTimerHandler = new Handler();
2542+
if (Looper.myLooper() == null) {
2543+
Looper.prepare();
2544+
}
2545+
altTransportTimerHandler = new Handler(Looper.myLooper());
25402546
altTransportTimerRunnable = new Runnable() {
25412547
public void run() {
25422548
altTransportTimerHandler = null;
@@ -3095,7 +3101,10 @@ public RegisteredApp(String appId, int routerMessagingVersion, Messenger messeng
30953101
this.messenger = messenger;
30963102
this.sessionIds = new Vector<Long>();
30973103
this.queues = new ConcurrentHashMap<>();
3098-
queueWaitHandler = new Handler();
3104+
if (Looper.myLooper() == null) {
3105+
Looper.prepare();
3106+
}
3107+
queueWaitHandler = new Handler(Looper.myLooper());
30993108
registeredTransports = new SparseArray<ArrayList<TransportType>>();
31003109
awaitingSession = new Vector<>();
31013110
setDeathNote(); //messaging Version

android/sdl_android/src/main/java/com/smartdevicelink/transport/TransportManager.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -402,10 +402,10 @@ synchronized void enterLegacyMode(final String info) {
402402
return; //Already in legacy mode
403403
}
404404

405+
if (Looper.myLooper() == null) {
406+
Looper.prepare();
407+
}
405408
if (transportListener.onLegacyModeEnabled(info)) {
406-
if (Looper.myLooper() == null) {
407-
Looper.prepare();
408-
}
409409
legacyBluetoothHandler = new LegacyBluetoothHandler(this);
410410
legacyBluetoothTransport = new MultiplexBluetoothTransport(legacyBluetoothHandler);
411411
if (contextWeakReference.get() != null) {
@@ -415,7 +415,7 @@ synchronized void enterLegacyMode(final String info) {
415415
contextWeakReference.get().registerReceiver(legacyDisconnectReceiver, intentFilter);
416416
}
417417
} else {
418-
new Handler().postDelayed(new Runnable() {
418+
new Handler(Looper.myLooper()).postDelayed(new Runnable() {
419419
@Override
420420
public void run() {
421421
transportListener.onError(info + " - Legacy mode unacceptable; shutting down.");

0 commit comments

Comments
 (0)