summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Grover <joeygrover@gmail.com>2019-10-08 14:27:38 -0400
committerJoey Grover <joeygrover@gmail.com>2019-10-08 14:27:38 -0400
commit1db7c888e9990e16e6f62ac6008b0f0a8c1c748d (patch)
tree1f78b3ab3376543bb4d562a68214c0d756121364
parente3f5b8be1e89c5df4eaabef7f966a712aab58f96 (diff)
downloadsdl_android-bugfix/legacy_bt_br.tar.gz
Register legacyBT BR to listen for state changebugfix/legacy_bt_br
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/transport/TransportManager.java15
1 files changed, 13 insertions, 2 deletions
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/transport/TransportManager.java b/android/sdl_android/src/main/java/com/smartdevicelink/transport/TransportManager.java
index a3fe9c5b9..9a300fa08 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/transport/TransportManager.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/transport/TransportManager.java
@@ -32,6 +32,7 @@
package com.smartdevicelink.transport;
+import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
@@ -413,7 +414,10 @@ public class TransportManager extends TransportManagerBase{
legacyBluetoothHandler = new LegacyBluetoothHandler(this);
legacyBluetoothTransport = new MultiplexBluetoothTransport(legacyBluetoothHandler);
if(contextWeakReference.get() != null){
- contextWeakReference.get().registerReceiver(legacyDisconnectReceiver,new IntentFilter(BluetoothDevice.ACTION_ACL_DISCONNECTED) );
+ IntentFilter intentFilter = new IntentFilter();
+ intentFilter.addAction(BluetoothDevice.ACTION_ACL_DISCONNECTED);
+ intentFilter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);
+ contextWeakReference.get().registerReceiver(legacyDisconnectReceiver, intentFilter );
}
}else{
new Handler().postDelayed(new Runnable() {
@@ -451,8 +455,15 @@ public class TransportManager extends TransportManagerBase{
@Override
public void onReceive(Context context, Intent intent) {
if(intent != null){
- if(BluetoothDevice.ACTION_ACL_DISCONNECTED.equals(intent.getAction())){
+ String action = intent.getAction();
+ if(BluetoothDevice.ACTION_ACL_DISCONNECTED.equals(action)){
exitLegacyMode("Bluetooth disconnected");
+ }else if(action.equalsIgnoreCase(BluetoothAdapter.ACTION_STATE_CHANGED)){
+ int bluetoothState = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, -1);
+ if(bluetoothState == BluetoothAdapter.STATE_TURNING_OFF || bluetoothState == BluetoothAdapter.STATE_OFF){
+ Log.d(TAG, "Bluetooth is shutting off, exiting legacy mode.");
+ exitLegacyMode("Bluetooth adapter shutting off");
+ }
}
}
}