summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Grover <joeygrover@gmail.com>2018-09-17 16:39:47 -0400
committerJoey Grover <joeygrover@gmail.com>2018-09-17 16:39:47 -0400
commit962b99a3f2380cfbabaa157c41cf7af68191619f (patch)
treed5f49dcab7d2504e877363a1610d25acaf8fdf5a
parentc9999ef74190430f17d6e4f017c5f94ec46482c6 (diff)
downloadsdl_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.java30
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");
}
-
}
}