diff options
author | Noah Stanford <noah@livio.io> | 2022-01-25 14:06:55 -0500 |
---|---|---|
committer | Noah Stanford <noah@livio.io> | 2022-01-25 14:06:55 -0500 |
commit | c0e5a393d02b069e41e9843e6dc6253a43cd8871 (patch) | |
tree | 8f0c402bcec02701780c416eff488c3e2257c969 | |
parent | 75512263f50748901b99487e8eb1bcdd9e551fb8 (diff) | |
download | sdl_android-c0e5a393d02b069e41e9843e6dc6253a43cd8871.tar.gz |
Attepted fix of NPE in #1783
-rw-r--r-- | android/sdl_android/src/main/java/com/smartdevicelink/managers/SdlManager.java | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/SdlManager.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/SdlManager.java index 866b6e80b..d45616a10 100644 --- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/SdlManager.java +++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/SdlManager.java @@ -91,6 +91,16 @@ public class SdlManager extends BaseSdlManager { private VideoStreamManager videoStreamManager; private AudioStreamManager audioStreamManager; + private Handler handler = new Handler(Looper.getMainLooper()); + private Runnable changeRegistrationRunnable = new Runnable() { + @Override + public void run() { + checkLifecycleConfiguration(); + DebugTool.logInfo(TAG, "Retry Change Registration Count: " + changeRegistrationRetry); + } + }; + + /** * Starts up a SdlManager, and calls provided callback called once all BaseSubManagers are done setting up */ @@ -211,14 +221,9 @@ public class SdlManager extends BaseSdlManager { void retryChangeRegistration() { changeRegistrationRetry++; if (changeRegistrationRetry < MAX_RETRY) { - final Handler handler = new Handler(Looper.getMainLooper()); - handler.postDelayed(new Runnable() { - @Override - public void run() { - checkLifecycleConfiguration(); - DebugTool.logInfo(TAG, "Retry Change Registration Count: " + changeRegistrationRetry); - } - }, 3000); + if (handler != null && changeRegistrationRunnable != null) { + handler.postDelayed(changeRegistrationRunnable, 3000); + } } } @@ -258,6 +263,15 @@ public class SdlManager extends BaseSdlManager { this.lifecycleManager.stop(); } + if (handler != null) { + if (changeRegistrationRunnable != null) { + handler.removeCallbacks(changeRegistrationRunnable); + changeRegistrationRunnable = null; + } + + handler = null; + } + if (managerListener != null) { managerListener.onDestroy(); managerListener = null; |