diff options
author | Joey Grover <joeygrover@gmail.com> | 2021-05-11 14:13:47 -0400 |
---|---|---|
committer | Joey Grover <joeygrover@gmail.com> | 2021-05-11 14:13:47 -0400 |
commit | 70eb0519270d0c48d74190f86bd230a6cbca5a3b (patch) | |
tree | ecc9981e9164b750db2386d811125ca23f5fdd75 | |
parent | 89cb67fdf04f41fa4a67c3eb35bb15e2435c0370 (diff) | |
download | sdl_android-70eb0519270d0c48d74190f86bd230a6cbca5a3b.tar.gz |
Add ability to use SDL listener if BT device==null
-rw-r--r-- | android/sdl_android/src/main/java/com/smartdevicelink/transport/utl/SdlDeviceListener.java | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/transport/utl/SdlDeviceListener.java b/android/sdl_android/src/main/java/com/smartdevicelink/transport/utl/SdlDeviceListener.java index 251eb130f..23cdd9857 100644 --- a/android/sdl_android/src/main/java/com/smartdevicelink/transport/utl/SdlDeviceListener.java +++ b/android/sdl_android/src/main/java/com/smartdevicelink/transport/utl/SdlDeviceListener.java @@ -61,7 +61,7 @@ public class SdlDeviceListener { private final WeakReference<Context> contextWeakReference; private final Callback callback; - private final BluetoothDevice connectedDevice; + private BluetoothDevice connectedDevice; private MultiplexBluetoothTransport bluetoothTransport; private TransportHandler bluetoothHandler; private Handler timeoutHandler; @@ -87,24 +87,21 @@ public class SdlDeviceListener { public void start() { if (connectedDevice == null) { DebugTool.logInfo(TAG, ": No supplied bluetooth device"); - if (callback != null) { - callback.onTransportError(null); - } - return; - } - - if (hasSDLConnected(contextWeakReference.get(), connectedDevice.getAddress())) { + } else if (hasSDLConnected(contextWeakReference.get(), connectedDevice.getAddress())) { DebugTool.logInfo(TAG, ": Confirmed SDL device, should start router service"); //This device has connected to SDL previously, it is ok to start the RS right now callback.onTransportConnected(contextWeakReference.get(), connectedDevice); return; } + synchronized (RUNNING_LOCK) { isRunning = true; // set timeout = if first time seeing BT device, 30s, if not 15s - int timeout = isFirstStatusCheck(connectedDevice.getAddress()) ? 30000 : 15000; + int timeout = connectedDevice != null && isFirstStatusCheck(connectedDevice.getAddress()) ? 30000 : 15000; //Set our preference as false for this device for now - setSDLConnectedStatus(contextWeakReference.get(), connectedDevice.getAddress(), false); + if(connectedDevice != null) { + setSDLConnectedStatus(contextWeakReference.get(), connectedDevice.getAddress(), false); + } bluetoothHandler = new TransportHandler(this); bluetoothTransport = new MultiplexBluetoothTransport(bluetoothHandler); bluetoothTransport.start(); @@ -155,6 +152,9 @@ public class SdlDeviceListener { case SdlRouterService.MESSAGE_STATE_CHANGE: switch (msg.arg1) { case MultiplexBaseTransport.STATE_CONNECTED: + if(sdlListener.connectedDevice == null) { + sdlListener.connectedDevice = sdlListener.bluetoothTransport.getConnectedDevice(); + } sdlListener.setSDLConnectedStatus(sdlListener.contextWeakReference.get(), sdlListener.connectedDevice.getAddress(), true); boolean keepConnectionOpen = sdlListener.callback.onTransportConnected(sdlListener.contextWeakReference.get(), sdlListener.connectedDevice); if (!keepConnectionOpen) { |