summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Grover <joeygrover@gmail.com>2019-08-07 15:45:33 -0400
committerJoey Grover <joeygrover@gmail.com>2019-08-07 15:45:33 -0400
commit8a641451dc2e466595e63d11dcbcf9b8ac0fe5ff (patch)
tree355036b467543594a4a0e36d6a9ae415f85f449b
parentf918a8137abc1feb58878fe046edb09f33eef60e (diff)
downloadsdl_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.java19
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