diff options
author | Robert Henigan <robert.henigan@livio.io> | 2022-02-08 12:41:10 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-08 12:41:10 -0500 |
commit | b51cda07b5827614fa33c991fe3b09687ffe1950 (patch) | |
tree | 3e3613d1985d875e7dcdf15ac245a9e7c01b334e /android | |
parent | 3d1e54e1b59a13aa81daa936491e04fd1fed3c93 (diff) | |
parent | e816eec7c9d9223ba2ec8e226536451821f541e2 (diff) | |
download | sdl_android-b51cda07b5827614fa33c991fe3b09687ffe1950.tar.gz |
Merge pull request #1786 from smartdevicelink/bugfix/issue_1783
Attepted fix of NPE in #1783
Diffstat (limited to 'android')
-rw-r--r-- | android/sdl_android/src/main/java/com/smartdevicelink/managers/SdlManager.java | 33 |
1 files changed, 25 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 92a396f85..9fcb65b12 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,19 @@ 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); + } + }; + + public SdlManager() { + DebugTool.logWarning(TAG, "SdlManager must be created with SdlManager.Builder"); + } + /** * Starts up a SdlManager, and calls provided callback called once all BaseSubManagers are done setting up */ @@ -211,14 +224,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 +266,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; |