diff options
author | Joey Grover <joeygrover@gmail.com> | 2017-03-09 14:37:31 -0500 |
---|---|---|
committer | Joey Grover <joeygrover@gmail.com> | 2017-03-09 14:37:31 -0500 |
commit | 2d39b08892193a9a7775f985a8ea5016c82c1d07 (patch) | |
tree | e0f05c5810ecfea724847a90469a22382a5c6a59 | |
parent | a6870d6080dc6089f0e123db5bd0ed2137317b46 (diff) | |
download | sdl_android-2d39b08892193a9a7775f985a8ea5016c82c1d07.tar.gz |
Clean up code around version checking start up.bugfix/issue_437
-rw-r--r-- | sdl_android_lib/src/com/smartdevicelink/transport/SdlRouterService.java | 38 |
1 files changed, 17 insertions, 21 deletions
diff --git a/sdl_android_lib/src/com/smartdevicelink/transport/SdlRouterService.java b/sdl_android_lib/src/com/smartdevicelink/transport/SdlRouterService.java index 117d6066b..28f678927 100644 --- a/sdl_android_lib/src/com/smartdevicelink/transport/SdlRouterService.java +++ b/sdl_android_lib/src/com/smartdevicelink/transport/SdlRouterService.java @@ -38,9 +38,7 @@ import android.content.IntentFilter; import android.content.SharedPreferences; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; -import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.ResolveInfo; -import android.content.pm.ServiceInfo; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Build; @@ -124,7 +122,6 @@ public class SdlRouterService extends Service{ private boolean wrongProcess = false; private boolean initPassed = false; - private Intent lastReceivedStartIntent = null; public static HashMap<Long,RegisteredApp> registeredApps; private SparseArray<Long> sessionMap; private SparseArray<Integer> sessionHashIdMap; @@ -239,10 +236,7 @@ public class SdlRouterService extends Service{ Log.d(TAG, "All router services have been accounted more. We can start the version check now"); if(versionCheckTimeOutHandler!=null){ versionCheckTimeOutHandler.removeCallbacks(versionCheckRunable); - - versionCheckRunable.run(); - - + versionCheckTimeOutHandler.post(versionCheckRunable); } } } @@ -899,7 +893,10 @@ public class SdlRouterService extends Service{ @Override public void onDestroy(){ stopClientPings(); - if(versionCheckTimeOutHandler!=null){versionCheckTimeOutHandler.removeCallbacks(versionCheckRunable);} + if(versionCheckTimeOutHandler!=null){ + versionCheckTimeOutHandler.removeCallbacks(versionCheckRunable); + versionCheckTimeOutHandler = null; + } if(altTransportTimerHandler!=null){ altTransportTimerHandler.removeCallbacks(versionCheckRunable); altTransportTimerHandler = null; @@ -1658,18 +1655,21 @@ public class SdlRouterService extends Service{ //Log.v(TAG, "Self service info " + self); //Log.v(TAG, "Newest compare to service info " + newestServiceReceived); if(newestServiceReceived!=null && self.isNewer(newestServiceReceived)){ + if(SdlRouterService.mSerialService.isConnected()){ //We are currently connected. Wait for next connection + return; + } Log.d(TAG, "There is a newer version "+newestServiceReceived.version+" of the Router Service, starting it up"); - closing = true; - closeBluetoothSerialServer(); - Intent serviceIntent = newestServiceReceived.launchIntent; - if(getLastReceivedStartIntent()!=null){ - serviceIntent.putExtras(getLastReceivedStartIntent()); - } if(newestServiceReceived.launchIntent == null){ - Log.e(TAG, "Service didn't include launch intent"); - startUpSequence(); - return; + if(newestServiceReceived.name!=null){ + newestServiceReceived.launchIntent = new Intent().setComponent(newestServiceReceived.name); + }else{ + Log.w(TAG, "Service didn't include launch intent or component name"); + startUpSequence(); + return; + } } + closing = true; + closeBluetoothSerialServer(); context.startService(newestServiceReceived.launchIntent); notifyAltTransportOfClose(TransportConstants.ROUTER_SHUTTING_DOWN_REASON_NEWER_SERVICE); if(getBaseContext()!=null){ @@ -1702,10 +1702,6 @@ public class SdlRouterService extends Service{ }; altTransportTimerHandler.postDelayed(altTransportTimerRunnable, ALT_TRANSPORT_TIMEOUT_RUNNABLE); } - - private Intent getLastReceivedStartIntent(){ - return lastReceivedStartIntent; - } /** * Removes session from map if the key is found. |