diff options
author | Joey Grover <joeygrover@gmail.com> | 2019-08-07 15:45:33 -0400 |
---|---|---|
committer | Joey Grover <joeygrover@gmail.com> | 2019-08-07 15:45:33 -0400 |
commit | 8a641451dc2e466595e63d11dcbcf9b8ac0fe5ff (patch) | |
tree | 355036b467543594a4a0e36d6a9ae415f85f449b | |
parent | f918a8137abc1feb58878fe046edb09f33eef60e (diff) | |
download | sdl_android-feature/Implement_SDL0054_Change_Registration_Manager_tb_fix.tar.gz |
Run cycleProxy on main looper, delay duringfeature/Implement_SDL0054_Change_Registration_Manager_tb_fix
- The session creation needs to happen using the main looper
- When a language change occurs, it can take time before the VR engine is readon on the module, so gave it a sleep
-rw-r--r-- | android/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBase.java | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBase.java b/android/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBase.java index b7d81716b..8f80117d9 100644 --- a/android/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBase.java +++ b/android/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBase.java @@ -1834,6 +1834,12 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> try{
_cycling = true;
cleanProxy(disconnectedReason);
+
+ if(SdlDisconnectedReason.LANGUAGE_CHANGE.equals(disconnectedReason) ){
+ //The VR engine might need time to reset
+ Thread.sleep(5000);
+ }
+
initializeProxy();
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
@@ -4108,7 +4114,18 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> if (_advancedLifecycleManagementEnabled) {
// This requires the proxy to be cycled
- cycleProxy(SdlDisconnectedReason.convertAppInterfaceUnregisteredReason(msg.getReason()));
+
+ if(_mainUIHandler == null){
+ _mainUIHandler = new Handler(Looper.getMainLooper());
+ }
+
+ //This needs to be ran on the main thread
+ _mainUIHandler.post(new Runnable() {
+ @Override
+ public void run() {
+ cycleProxy(SdlDisconnectedReason.convertAppInterfaceUnregisteredReason(msg.getReason()));
+ }
+ });
} else {
if (_callbackToUIThread) {
// Run in UI thread
|