diff options
| author | Matthew Xie <mattx@google.com> | 2011-08-15 00:31:50 -0700 |
|---|---|---|
| committer | Matthew Xie <mattx@google.com> | 2011-08-15 11:31:54 -0700 |
| commit | 14e48e91f6def5448db9994cb13ddcdc676cba53 (patch) | |
| tree | aa91e380a3e0a12897f5a72c191da3c36e54487b /core/java/android/server/BluetoothEventLoop.java | |
| parent | d67fee861baf623a62ea61e3331230b2811f00b4 (diff) | |
| download | frameworks_base-14e48e91f6def5448db9994cb13ddcdc676cba53.zip frameworks_base-14e48e91f6def5448db9994cb13ddcdc676cba53.tar.gz frameworks_base-14e48e91f6def5448db9994cb13ddcdc676cba53.tar.bz2 | |
Implement switchConnectable with Powered property setting instead of scan modes
Bluez powered property setting is more apropriate for what this method intend to
achieve and it fixes a bug that incoming connection request wake up the stack in
The pairable events are replaced by power and discoverable events
HotOff state
bug 5080232
Change-Id: I43b44cb2f5203bd99bf764d5a1696e8ff52a31db
Diffstat (limited to 'core/java/android/server/BluetoothEventLoop.java')
| -rw-r--r-- | core/java/android/server/BluetoothEventLoop.java | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/core/java/android/server/BluetoothEventLoop.java b/core/java/android/server/BluetoothEventLoop.java index d73f8c9..6eff796 100644 --- a/core/java/android/server/BluetoothEventLoop.java +++ b/core/java/android/server/BluetoothEventLoop.java @@ -322,6 +322,12 @@ class BluetoothEventLoop { intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT); mContext.sendBroadcast(intent, BLUETOOTH_PERM); } else if (name.equals("Pairable") || name.equals("Discoverable")) { + adapterProperties.setProperty(name, propValues[1]); + + if (name.equals("Discoverable")) { + mBluetoothState.sendMessage(BluetoothAdapterStateMachine.SCAN_MODE_CHANGED); + } + String pairable = name.equals("Pairable") ? propValues[1] : adapterProperties.getProperty("Pairable"); String discoverable = name.equals("Discoverable") ? propValues[1] : @@ -331,16 +337,6 @@ class BluetoothEventLoop { if (pairable == null || discoverable == null) return; - adapterProperties.setProperty(name, propValues[1]); - - if (name.equals("Pairable")) { - if (pairable.equals("true")) { - mBluetoothState.sendMessage(BluetoothAdapterStateMachine.BECAME_PAIRABLE); - } else { - mBluetoothState.sendMessage(BluetoothAdapterStateMachine.BECAME_NON_PAIRABLE); - } - } - int mode = BluetoothService.bluezStringToScanMode( pairable.equals("true"), discoverable.equals("true")); @@ -377,10 +373,11 @@ class BluetoothEventLoop { mBluetoothService.updateBluetoothState(value); } } else if (name.equals("Powered")) { + mBluetoothState.sendMessage(BluetoothAdapterStateMachine.POWER_STATE_CHANGED, + propValues[1].equals("true") ? new Boolean(true) : new Boolean(false)); // bluetoothd has restarted, re-read all our properties. // Note: bluez only sends this property change when it restarts. - if (propValues[1].equals("true")) - onRestartRequired(); + onRestartRequired(); } else if (name.equals("DiscoverableTimeout")) { adapterProperties.setProperty(name, propValues[1]); } |
