diff options
author | Joey Grover <joeygrover@gmail.com> | 2018-09-17 16:39:47 -0400 |
---|---|---|
committer | Joey Grover <joeygrover@gmail.com> | 2018-09-17 16:39:47 -0400 |
commit | 962b99a3f2380cfbabaa157c41cf7af68191619f (patch) | |
tree | d5f49dcab7d2504e877363a1610d25acaf8fdf5a | |
parent | c9999ef74190430f17d6e4f017c5f94ec46482c6 (diff) | |
download | sdl_android-962b99a3f2380cfbabaa157c41cf7af68191619f.tar.gz |
Fix issue with secondary transport registration
After secondary transport connects, there was incorrect logic to only allow a high bandwidth app to register over the transport.
-rw-r--r-- | sdl_android/src/main/java/com/smartdevicelink/protocol/SdlProtocol.java | 30 |
1 files changed, 14 insertions, 16 deletions
diff --git a/sdl_android/src/main/java/com/smartdevicelink/protocol/SdlProtocol.java b/sdl_android/src/main/java/com/smartdevicelink/protocol/SdlProtocol.java index e84d61efa..722e14cc6 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/protocol/SdlProtocol.java +++ b/sdl_android/src/main/java/com/smartdevicelink/protocol/SdlProtocol.java @@ -289,13 +289,15 @@ public class SdlProtocol { //Temporary: this logic should all be changed to handle multiple transports of the same type ArrayList<TransportType> connectedTransports = new ArrayList<>(); - for(TransportRecord record: transports){ - connectedTransports.add(record.getType()); + if(transports != null) { + for (TransportRecord record : transports) { + connectedTransports.add(record.getType()); + } } if(connectedPrimaryTransport != null && !connectedTransports.contains(connectedPrimaryTransport.getType())){ //The primary transport being used is no longer part of the connected transports - //The transport manager callbacks should hadle the disconnect code + //The transport manager callbacks should handle the disconnect code connectedPrimaryTransport = null; return; } @@ -310,21 +312,17 @@ public class SdlProtocol { onTransportNotAccepted("No transports match requested primary transport"); } // return; - }else if(requiresHighBandwidth){ - //If this app has a primary transport already but requires a high bandwidth transport - //to properly function, it is now time to register over that transport to be used - TransportRecord preferredSecondaryTransport = getPreferredTransport(requestedPrimaryTransports,transports); - if(preferredSecondaryTransport != null) { - - if(iSdlProtocol != null) { - Log.d(TAG, "Registering secondary transport!"); - registerSecondaryTransport(iSdlProtocol.getSessionId(), preferredSecondaryTransport); + }else if(secondaryTransportListeners != null + && transports != null + && iSdlProtocol!= null){ + // Check to see if there is a listener for a given transport. + // If a listener exists, it can be assumed that the transport should be registered on + for(TransportRecord record: transports){ + if(secondaryTransportListeners.get(record.getType()) != null + && !secondaryTransportListeners.get(record.getType()).isEmpty()){ + registerSecondaryTransport(iSdlProtocol.getSessionId(), record); } - //return; // For now, only support registering one secondary transport - }else{ - Log.d(TAG, "No supported secondary transport"); } - } } |