diff options
author | Joey Grover <joeygrover@gmail.com> | 2016-06-27 16:53:45 -0400 |
---|---|---|
committer | Joey Grover <joeygrover@gmail.com> | 2016-06-27 16:53:45 -0400 |
commit | 410933f7d98426fdeb311d4ce5ef6d3793bce3e5 (patch) | |
tree | ee9df7d26a74d9c9f181f4c5eb8391c1c1f124f2 | |
parent | 93b4d55932a8763ad3ccf85e614ac147b4afde82 (diff) | |
download | sdl_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.
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" ); |