summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Grover <joeygrover@gmail.com>2021-05-11 14:13:47 -0400
committerJoey Grover <joeygrover@gmail.com>2021-05-11 14:13:47 -0400
commit70eb0519270d0c48d74190f86bd230a6cbca5a3b (patch)
treeecc9981e9164b750db2386d811125ca23f5fdd75
parent89cb67fdf04f41fa4a67c3eb35bb15e2435c0370 (diff)
downloadsdl_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.java20
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) {