summaryrefslogtreecommitdiffstats
path: root/core/java/android/server
diff options
context:
space:
mode:
authorDanica Chang <danicachang@google.com>2010-08-20 14:22:07 -0700
committerDanica Chang <danicachang@google.com>2010-08-20 15:12:22 -0700
commit8aac82a5248e922bac2f84df746b5d1f34498f53 (patch)
tree5ab09831802aed5aa18f8ec629c867671fab54c7 /core/java/android/server
parent2b342f0a76f3237e97f15dc2f4e8a0b72dd7c023 (diff)
downloadframeworks_base-8aac82a5248e922bac2f84df746b5d1f34498f53.zip
frameworks_base-8aac82a5248e922bac2f84df746b5d1f34498f53.tar.gz
frameworks_base-8aac82a5248e922bac2f84df746b5d1f34498f53.tar.bz2
Wait for bluetooth to turn on before Bluetooth Tethering is enabled
Change-Id: I3fef94ea2cb102e1bb618f85e25d60c95cea1221
Diffstat (limited to 'core/java/android/server')
-rw-r--r--core/java/android/server/BluetoothService.java24
1 files changed, 22 insertions, 2 deletions
diff --git a/core/java/android/server/BluetoothService.java b/core/java/android/server/BluetoothService.java
index ab78aeb..1808656 100644
--- a/core/java/android/server/BluetoothService.java
+++ b/core/java/android/server/BluetoothService.java
@@ -1256,12 +1256,32 @@ public class BluetoothService extends IBluetooth.Stub {
return mTetheringOn;
}
- public synchronized void setBluetoothTethering(boolean value, String uuid, String bridge) {
+ private BroadcastReceiver mTetheringReceiver = null;
+
+ public synchronized void setBluetoothTethering(boolean value,
+ final String uuid, final String bridge) {
mTetheringOn = value;
if (!value) {
disconnectPan();
}
- setBluetoothTetheringNative(value, uuid, bridge);
+
+ if (getBluetoothState() != BluetoothAdapter.STATE_ON && mTetheringOn) {
+ IntentFilter filter = new IntentFilter();
+ filter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);
+ mTetheringReceiver = new BroadcastReceiver() {
+ @Override
+ public synchronized void onReceive(Context context, Intent intent) {
+ if (intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.STATE_OFF)
+ == BluetoothAdapter.STATE_ON) {
+ setBluetoothTethering(true, uuid, bridge);
+ mContext.unregisterReceiver(mTetheringReceiver);
+ }
+ }
+ };
+ mContext.registerReceiver(mTetheringReceiver, filter);
+ } else {
+ setBluetoothTetheringNative(value, uuid, bridge);
+ }
}
public synchronized int getPanDeviceState(BluetoothDevice device) {