summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Grover <joeygrover@gmail.com>2016-06-27 16:53:45 -0400
committerJoey Grover <joeygrover@gmail.com>2016-06-27 16:53:45 -0400
commit410933f7d98426fdeb311d4ce5ef6d3793bce3e5 (patch)
treeee9df7d26a74d9c9f181f4c5eb8391c1c1f124f2
parent93b4d55932a8763ad3ccf85e614ac147b4afde82 (diff)
downloadsdl_android-410933f7d98426fdeb311d4ce5ef6d3793bce3e5.tar.gz
Refactored conneciton code from router to clients.
Clients will now receive information on a connected device from the router service during their registration.
-rw-r--r--sdl_android_lib/src/com/smartdevicelink/SdlConnection/SdlConnection.java12
-rw-r--r--sdl_android_lib/src/com/smartdevicelink/transport/MultiplexTransport.java10
-rw-r--r--sdl_android_lib/src/com/smartdevicelink/transport/SdlRouterService.java16
-rw-r--r--sdl_android_lib/src/com/smartdevicelink/transport/TransportBroker.java6
4 files changed, 20 insertions, 24 deletions
diff --git a/sdl_android_lib/src/com/smartdevicelink/SdlConnection/SdlConnection.java b/sdl_android_lib/src/com/smartdevicelink/SdlConnection/SdlConnection.java
index 60d6e5362..3a4e74c3a 100644
--- a/sdl_android_lib/src/com/smartdevicelink/SdlConnection/SdlConnection.java
+++ b/sdl_android_lib/src/com/smartdevicelink/SdlConnection/SdlConnection.java
@@ -556,7 +556,6 @@ public class SdlConnection implements IProtocolListener, ITransportListener, ISt
} catch (SdlException e) {
e.printStackTrace();
}
- ((MultiplexTransport)_transport).forceHardwareConnectEvent(TransportType.BLUETOOTH);
}
}else{ //The service must be null or already consumed. Let's see if we can find the connection that consumed it
for (SdlSession session : listenerList) {
@@ -734,12 +733,14 @@ public class SdlConnection implements IProtocolListener, ITransportListener, ISt
ComponentName tempCompName = SdlBroadcastReceiver.consumeQueuedRouterService();
//Log.d(TAG, "Consumed component name: " +tempCompName );
if(config.getService().equals(tempCompName)){ //If this is the same service that just connected that we are already looking at. Attempt to reconnect
- boolean forced = multi.forceHardwareConnectEvent(TransportType.BLUETOOTH);
-
- if(!forced && multi.isDisconnecting() ){ //If we aren't able to force a connection it means the
+ if(!multi.getIsConnected() && multi.isDisconnecting() ){ //If we aren't able to force a connection it means the
//Log.d(TAG, "Recreating our multiplexing transport");
_transport = new MultiplexTransport(config,this);
- ((MultiplexTransport)_transport).forceHardwareConnectEvent(TransportType.BLUETOOTH);
+ try {
+ startTransport();
+ } catch (SdlException e) {
+ e.printStackTrace();
+ }
}//else{Log.w(TAG, "Guess we're just calling it a day");}
}else if(tempCompName!=null){
//We have a conflicting service request
@@ -754,7 +755,6 @@ public class SdlConnection implements IProtocolListener, ITransportListener, ISt
} catch (SdlException e) {
e.printStackTrace();
}
- ((MultiplexTransport)_transport).forceHardwareConnectEvent(TransportType.BLUETOOTH);
}
}else if(_transport.getTransportType()==TransportType.BLUETOOTH
diff --git a/sdl_android_lib/src/com/smartdevicelink/transport/MultiplexTransport.java b/sdl_android_lib/src/com/smartdevicelink/transport/MultiplexTransport.java
index 5556d9af1..e82bcd209 100644
--- a/sdl_android_lib/src/com/smartdevicelink/transport/MultiplexTransport.java
+++ b/sdl_android_lib/src/com/smartdevicelink/transport/MultiplexTransport.java
@@ -33,16 +33,6 @@ public class MultiplexTransport extends SdlTransport{
//brokerThread.start();
}
-
- public boolean forceHardwareConnectEvent(TransportType type){
- if(brokerThread!=null){
- brokerThread.onHardwareConnected(type);
- return true;
- }
- Log.w(TAG, "Transport broker thread was null, nothing to force connect. Are we disconnecting? " + isDisconnecting);
- return false;
-
- }
public boolean isDisconnecting(){
return this.isDisconnecting;
diff --git a/sdl_android_lib/src/com/smartdevicelink/transport/SdlRouterService.java b/sdl_android_lib/src/com/smartdevicelink/transport/SdlRouterService.java
index 26e1a9162..f748e5598 100644
--- a/sdl_android_lib/src/com/smartdevicelink/transport/SdlRouterService.java
+++ b/sdl_android_lib/src/com/smartdevicelink/transport/SdlRouterService.java
@@ -356,9 +356,15 @@ public class SdlRouterService extends Service{
}
}
onAppRegistered(app);
-
+
returnBundle = new Bundle();
-
+ //Add params if connected
+ if(SdlRouterService.this.isTransportConnected){
+ returnBundle.putString(TransportConstants.HARDWARE_CONNECTED, SdlRouterService.this.connectedTransportType.name());
+ if(MultiplexBluetoothTransport.currentlyConnectedDevice!=null){
+ returnBundle.putString(CONNECTED_DEVICE_STRING_EXTRA_NAME, MultiplexBluetoothTransport.currentlyConnectedDevice);
+ }
+ }
if(!returnBundle.isEmpty()){
message.setData(returnBundle);
}
@@ -368,12 +374,6 @@ public class SdlRouterService extends Service{
registeredApps.remove(appId);
}
}
- //Send a hardware connection event
- if(SdlRouterService.this.isTransportConnected){
- Message connectedMessage = SdlRouterService.this.createHardwareConnectedMessage(SdlRouterService.this.connectedTransportType);
-
- app.sendMessage(connectedMessage);
- }
break;
case TransportConstants.ROUTER_UNREGISTER_CLIENT:
long appIdToUnregister = receivedBundle.getLong(TransportConstants.APP_ID_EXTRA, -1);
diff --git a/sdl_android_lib/src/com/smartdevicelink/transport/TransportBroker.java b/sdl_android_lib/src/com/smartdevicelink/transport/TransportBroker.java
index f9b3c7ba2..90eba7aed 100644
--- a/sdl_android_lib/src/com/smartdevicelink/transport/TransportBroker.java
+++ b/sdl_android_lib/src/com/smartdevicelink/transport/TransportBroker.java
@@ -154,6 +154,12 @@ public class TransportBroker {
case TransportConstants.REGISTRATION_RESPONSE_SUCESS:
// yay! we have been registered. Now what?
registeredWithRouterService = true;
+ if(bundle !=null && bundle.containsKey(TransportConstants.HARDWARE_CONNECTED)){
+ if(bundle.containsKey(TransportConstants.CONNECTED_DEVICE_STRING_EXTRA_NAME)){
+ //Keep track if we actually get this
+ }
+ onHardwareConnected(TransportType.valueOf(bundle.getString(TransportConstants.HARDWARE_CONNECTED)));
+ }
break;
case TransportConstants.REGISTRATION_RESPONSE_DENIED_LEGACY_MODE_ENABLED:
Log.d(TAG, "Denied registration because router is in legacy mode" );