summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrett <3911458+BrettyWhite@users.noreply.github.com>2019-10-11 13:29:41 -0400
committerGitHub <noreply@github.com>2019-10-11 13:29:41 -0400
commit25216910ec03589a1d03a5d21c26947569dd6f40 (patch)
treeddcc49c73f38b136ca2a689e412ea5bc9c804709
parentbe84a9a41aead16b28092912899973b8ab752363 (diff)
parent1db7c888e9990e16e6f62ac6008b0f0a8c1c748d (diff)
downloadsdl_android-25216910ec03589a1d03a5d21c26947569dd6f40.tar.gz
Merge pull request #1192 from smartdevicelink/bugfix/legacy_bt_br
Register legacyBT BR to listen for state change
-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");
+ }
}
}
}