summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Grover <joeygrover@gmail.com>2017-03-09 14:37:31 -0500
committerJoey Grover <joeygrover@gmail.com>2017-03-09 14:37:31 -0500
commit2d39b08892193a9a7775f985a8ea5016c82c1d07 (patch)
treee0f05c5810ecfea724847a90469a22382a5c6a59
parenta6870d6080dc6089f0e123db5bd0ed2137317b46 (diff)
downloadsdl_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.java38
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.