diff options
Diffstat (limited to 'android')
-rw-r--r-- | android/sdl_android/src/main/java/com/smartdevicelink/managers/SdlManager.java | 7 | ||||
-rw-r--r-- | android/sdl_android/src/main/java/com/smartdevicelink/managers/lifecycle/LifecycleManager.java | 7 |
2 files changed, 11 insertions, 3 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 9fcb65b12..6dc3ce4aa 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 @@ -237,6 +237,11 @@ public class SdlManager extends BaseSdlManager { @SuppressLint("NewApi") @Override public synchronized void dispose() { + int state = getState(); + if (state == BaseSubManager.SHUTDOWN || state == BaseSubManager.ERROR) { + DebugTool.logInfo(TAG, "SdlManager already disposed"); + return; + } if (this.permissionManager != null) { this.permissionManager.dispose(); } @@ -414,7 +419,7 @@ public class SdlManager extends BaseSdlManager { @Override public void stop() { - lifecycleManager.getInternalInterface(SdlManager.this).start(); + lifecycleManager.getInternalInterface(SdlManager.this).stop(); } @Override diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/lifecycle/LifecycleManager.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/lifecycle/LifecycleManager.java index 8324e6344..bfe73c19f 100644 --- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/lifecycle/LifecycleManager.java +++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/lifecycle/LifecycleManager.java @@ -32,6 +32,8 @@ package com.smartdevicelink.managers.lifecycle; +import static com.smartdevicelink.managers.BaseSubManager.SETTING_UP; + import android.content.Context; import androidx.annotation.RestrictTo; @@ -89,12 +91,13 @@ public class LifecycleManager extends BaseLifecycleManager { @Override void cycle(SdlDisconnectedReason disconnectedReason) { - clean(); - initialize(); + clean(true); if (!SdlDisconnectedReason.LEGACY_BLUETOOTH_MODE_ENABLED.equals(disconnectedReason) && !SdlDisconnectedReason.PRIMARY_TRANSPORT_CYCLE_REQUEST.equals(disconnectedReason)) { //We don't want to alert higher if we are just cycling for legacy bluetooth onClose("Sdl Proxy Cycled", new SdlException("Sdl Proxy Cycled", SdlExceptionCause.SDL_PROXY_CYCLED), disconnectedReason); } + transitionToState(SETTING_UP); + initialize(); synchronized (SESSION_LOCK) { if (session != null) { try { |