diff options
author | Jaikumar Ganesh <jaikumar@google.com> | 2010-09-02 12:17:05 -0700 |
---|---|---|
committer | Jaikumar Ganesh <jaikumar@google.com> | 2010-09-02 14:34:40 -0700 |
commit | b70765cc27a174d1d4a0bab7062733ebd3eae354 (patch) | |
tree | fed13b129d87237d6aec4b4487cdb202b3791c23 /core/java | |
parent | be881a3db6a80befa31dfada620e7f9a6fbba0c4 (diff) | |
download | frameworks_base-b70765cc27a174d1d4a0bab7062733ebd3eae354.zip frameworks_base-b70765cc27a174d1d4a0bab7062733ebd3eae354.tar.gz frameworks_base-b70765cc27a174d1d4a0bab7062733ebd3eae354.tar.bz2 |
Decouple Tethering UI with registering of SDP records.
This can lead to usability issues, since the SDP record
will get registered later on.
Change-Id: Ifda78a3831572f1b9955bf06da9a8b0e949942aa
Diffstat (limited to 'core/java')
-rw-r--r-- | core/java/android/bluetooth/BluetoothPan.java | 4 | ||||
-rw-r--r-- | core/java/android/bluetooth/IBluetooth.aidl | 2 | ||||
-rw-r--r-- | core/java/android/server/BluetoothEventLoop.java | 3 | ||||
-rw-r--r-- | core/java/android/server/BluetoothService.java | 16 |
4 files changed, 14 insertions, 11 deletions
diff --git a/core/java/android/bluetooth/BluetoothPan.java b/core/java/android/bluetooth/BluetoothPan.java index 952765d..9d0b3f2 100644 --- a/core/java/android/bluetooth/BluetoothPan.java +++ b/core/java/android/bluetooth/BluetoothPan.java @@ -173,9 +173,9 @@ public final class BluetoothPan { Log.d(TAG, msg); } - public void setBluetoothTethering(boolean value, String uuid, String bridge) { + public void setBluetoothTethering(boolean value) { try { - mService.setBluetoothTethering(value, uuid, bridge); + mService.setBluetoothTethering(value); } catch (RemoteException e) { Log.e(TAG, "", e); } diff --git a/core/java/android/bluetooth/IBluetooth.aidl b/core/java/android/bluetooth/IBluetooth.aidl index f8f678b..c4a40cd 100644 --- a/core/java/android/bluetooth/IBluetooth.aidl +++ b/core/java/android/bluetooth/IBluetooth.aidl @@ -83,7 +83,7 @@ interface IBluetooth int getInputDevicePriority(in BluetoothDevice device); boolean isTetheringOn(); - void setBluetoothTethering(boolean value, String uuid, String bridge); + void setBluetoothTethering(boolean value); int getPanDeviceState(in BluetoothDevice device); BluetoothDevice[] getConnectedPanDevices(); boolean connectPanDevice(in BluetoothDevice device); diff --git a/core/java/android/server/BluetoothEventLoop.java b/core/java/android/server/BluetoothEventLoop.java index 9436fec..48a2b72 100644 --- a/core/java/android/server/BluetoothEventLoop.java +++ b/core/java/android/server/BluetoothEventLoop.java @@ -644,7 +644,8 @@ class BluetoothEventLoop { } else { Log.i(TAG, "Rejecting incoming HID connection from " + address); } - } else if (BluetoothUuid.isBnep(uuid) || BluetoothUuid.isNap(uuid)){ + } else if (BluetoothUuid.isBnep(uuid) || BluetoothUuid.isNap(uuid) && + mBluetoothService.isTetheringOn()){ authorized = true; } else { Log.i(TAG, "Rejecting incoming " + deviceUuid + " connection from " + address); diff --git a/core/java/android/server/BluetoothService.java b/core/java/android/server/BluetoothService.java index fa5f156..7252736 100644 --- a/core/java/android/server/BluetoothService.java +++ b/core/java/android/server/BluetoothService.java @@ -352,7 +352,7 @@ public class BluetoothService extends IBluetooth.Stub { } setBluetoothState(BluetoothAdapter.STATE_TURNING_OFF); mHandler.removeMessages(MESSAGE_REGISTER_SDP_RECORDS); - setBluetoothTethering(false, BluetoothPan.NAP_ROLE, BluetoothPan.NAP_BRIDGE); + setBluetoothTetheringNative(false, BluetoothPan.NAP_ROLE, BluetoothPan.NAP_BRIDGE); // Allow 3 seconds for profiles to gracefully disconnect // TODO: Introduce a callback mechanism so that each profile can notify @@ -576,8 +576,12 @@ public class BluetoothService extends IBluetooth.Stub { mBondState.readAutoPairingData(); mBondState.loadBondState(); initProfileState(); + + //Register SDP records. mHandler.sendMessageDelayed( mHandler.obtainMessage(MESSAGE_REGISTER_SDP_RECORDS, 1, -1), 3000); + setBluetoothTetheringNative(true, BluetoothPan.NAP_ROLE, BluetoothPan.NAP_BRIDGE); + // Log bluetooth on to battery stats. long ident = Binder.clearCallingIdentity(); @@ -1258,14 +1262,12 @@ public class BluetoothService extends IBluetooth.Stub { private BroadcastReceiver mTetheringReceiver = null; - public synchronized void setBluetoothTethering(boolean value, - final String uuid, final String bridge) { - mTetheringOn = value; + public synchronized void setBluetoothTethering(boolean value) { if (!value) { disconnectPan(); } - if (getBluetoothState() != BluetoothAdapter.STATE_ON && mTetheringOn) { + if (getBluetoothState() != BluetoothAdapter.STATE_ON && value) { IntentFilter filter = new IntentFilter(); filter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED); mTetheringReceiver = new BroadcastReceiver() { @@ -1273,14 +1275,14 @@ public class BluetoothService extends IBluetooth.Stub { public synchronized void onReceive(Context context, Intent intent) { if (intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.STATE_OFF) == BluetoothAdapter.STATE_ON) { - setBluetoothTethering(true, uuid, bridge); + mTetheringOn = true; mContext.unregisterReceiver(mTetheringReceiver); } } }; mContext.registerReceiver(mTetheringReceiver, filter); } else { - setBluetoothTetheringNative(value, uuid, bridge); + mTetheringOn = value; } } |