summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoah Stanford <noah@livio.io>2022-01-25 14:06:55 -0500
committerNoah Stanford <noah@livio.io>2022-01-25 14:06:55 -0500
commitc0e5a393d02b069e41e9843e6dc6253a43cd8871 (patch)
tree8f0c402bcec02701780c416eff488c3e2257c969
parent75512263f50748901b99487e8eb1bcdd9e551fb8 (diff)
downloadsdl_android-c0e5a393d02b069e41e9843e6dc6253a43cd8871.tar.gz
Attepted fix of NPE in #1783
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/SdlManager.java30
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;