summaryrefslogtreecommitdiffstats
path: root/core/java/android/server/BluetoothEventLoop.java
diff options
context:
space:
mode:
authorMatthew Xie <mattx@google.com>2011-08-15 00:31:50 -0700
committerMatthew Xie <mattx@google.com>2011-08-15 11:31:54 -0700
commit14e48e91f6def5448db9994cb13ddcdc676cba53 (patch)
treeaa91e380a3e0a12897f5a72c191da3c36e54487b /core/java/android/server/BluetoothEventLoop.java
parentd67fee861baf623a62ea61e3331230b2811f00b4 (diff)
downloadframeworks_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.java21
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]);
}