summaryrefslogtreecommitdiffstats
path: root/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothEventManager.java
diff options
context:
space:
mode:
authorJason Monk <jmonk@google.com>2015-02-04 13:00:55 -0500
committerJason Monk <jmonk@google.com>2015-03-02 10:40:21 -0500
commitbe3c5dbee66758517a8198f98ed2e20c80af326b (patch)
tree24cf7c862730a2f530710e9aaae33f52d932ee64 /packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothEventManager.java
parentc94ea96cb77b27d93e675912b2420bd43ae9b8fe (diff)
downloadframeworks_base-be3c5dbee66758517a8198f98ed2e20c80af326b.zip
frameworks_base-be3c5dbee66758517a8198f98ed2e20c80af326b.tar.gz
frameworks_base-be3c5dbee66758517a8198f98ed2e20c80af326b.tar.bz2
Make QS use SettingsLib's BT code
A couple of changes needed to be made to SettingsLib to support this. - SettingsLib needed to track ACTION_CONNECTION_STATE_CHANGED - The summary code needed to move from Settings up into SettingsLib - Added a getMaxConnectionState to CachedBluetoothDevice - This simplifies the states of all of the profiles into one. Change-Id: I7f828f0038ad0cf39274986ece6d486d545f0286
Diffstat (limited to 'packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothEventManager.java')
-rwxr-xr-xpackages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothEventManager.java25
1 files changed, 22 insertions, 3 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothEventManager.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothEventManager.java
index 7c92368..5d6b2f1 100755
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothEventManager.java
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothEventManager.java
@@ -81,6 +81,9 @@ public final class BluetoothEventManager {
// Bluetooth on/off broadcasts
addHandler(BluetoothAdapter.ACTION_STATE_CHANGED, new AdapterStateChangedHandler());
+ // Generic connected/not broadcast
+ addHandler(BluetoothAdapter.ACTION_CONNECTION_STATE_CHANGED,
+ new ConnectionStateChangedHandler());
// Discovery broadcasts
addHandler(BluetoothAdapter.ACTION_DISCOVERY_STARTED, new ScanningStateChangedHandler(true));
@@ -183,8 +186,6 @@ public final class BluetoothEventManager {
cachedDevice = mDeviceManager.addDevice(mLocalAdapter, mProfileManager, device);
Log.d(TAG, "DeviceFoundHandler created new CachedBluetoothDevice: "
+ cachedDevice);
- // callback to UI to create Preference for new device
- dispatchDeviceAdded(cachedDevice);
}
cachedDevice.setRssi(rssi);
cachedDevice.setBtClass(btClass);
@@ -193,7 +194,25 @@ public final class BluetoothEventManager {
}
}
- private void dispatchDeviceAdded(CachedBluetoothDevice cachedDevice) {
+ private class ConnectionStateChangedHandler implements Handler {
+ @Override
+ public void onReceive(Context context, Intent intent, BluetoothDevice device) {
+ CachedBluetoothDevice cachedDevice = mDeviceManager.findDevice(device);
+ int state = intent.getIntExtra(BluetoothAdapter.EXTRA_CONNECTION_STATE,
+ BluetoothAdapter.ERROR);
+ dispatchConnectionStateChanged(cachedDevice, state);
+ }
+ }
+
+ private void dispatchConnectionStateChanged(CachedBluetoothDevice cachedDevice, int state) {
+ synchronized (mCallbacks) {
+ for (BluetoothCallback callback : mCallbacks) {
+ callback.onConnectionStateChanged(cachedDevice, state);
+ }
+ }
+ }
+
+ void dispatchDeviceAdded(CachedBluetoothDevice cachedDevice) {
synchronized (mCallbacks) {
for (BluetoothCallback callback : mCallbacks) {
callback.onDeviceAdded(cachedDevice);