diff options
author | Jason Monk <jmonk@google.com> | 2015-02-04 13:00:55 -0500 |
---|---|---|
committer | Jason Monk <jmonk@google.com> | 2015-03-02 10:40:21 -0500 |
commit | be3c5dbee66758517a8198f98ed2e20c80af326b (patch) | |
tree | 24cf7c862730a2f530710e9aaae33f52d932ee64 /packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothEventManager.java | |
parent | c94ea96cb77b27d93e675912b2420bd43ae9b8fe (diff) | |
download | frameworks_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-x | packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothEventManager.java | 25 |
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); |