From cd47ae6af27f2cc16a21614de240f8a0b0070901 Mon Sep 17 00:00:00 2001 From: Lixin Yue Date: Tue, 22 Sep 2009 10:44:51 +0800 Subject: [PATCH] Fix device picker minor bug When in device picker screen, if other device triggers pairing process with own device, after paired succssfully, it should not send intent to OppReceiver to start file sending. We need check if the paired device is the one user selected. Original Author: Lixin Yue Modified by: Jaikumar Ganesh (jaikumar@google.com) Change-Id: I32df995ba94417470cccaead492844a9c61c0846 --- .../settings/bluetooth/BluetoothSettings.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/com/android/settings/bluetooth/BluetoothSettings.java b/src/com/android/settings/bluetooth/BluetoothSettings.java index 1203a423d4e..d9d551d55cb 100644 --- a/src/com/android/settings/bluetooth/BluetoothSettings.java +++ b/src/com/android/settings/bluetooth/BluetoothSettings.java @@ -71,6 +71,8 @@ public class BluetoothSettings extends PreferenceActivity private String mLaunchPackage; private String mLaunchClass; + private BluetoothDevice mSelectedDevice= null; + private LocalBluetoothManager mLocalManager; private BluetoothEnabler mEnabler; @@ -95,9 +97,12 @@ public class BluetoothSettings extends PreferenceActivity int bondState = intent .getIntExtra(BluetoothDevice.EXTRA_BOND_STATE, BluetoothDevice.ERROR); if (bondState == BluetoothDevice.BOND_BONDED) { - BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); - sendDevicePickedIntent(device); - finish(); + BluetoothDevice device = intent + .getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); + if (device.equals(mSelectedDevice)) { + sendDevicePickedIntent(device); + finish(); + } } } } @@ -249,9 +254,10 @@ public class BluetoothSettings extends PreferenceActivity } else if (mScreenType == SCREEN_TYPE_DEVICEPICKER) { CachedBluetoothDevice device = btPreference.getCachedDevice(); - if ((device.getBondState() == BluetoothDevice.BOND_BONDED) || (mNeedAuth == false)) { - BluetoothDevice btAddress = btPreference.getCachedDevice().getDevice(); - sendDevicePickedIntent(btAddress); + mSelectedDevice = device.getDevice(); + if ((device.getBondState() == BluetoothDevice.BOND_BONDED) || + (mNeedAuth == false)) { + sendDevicePickedIntent(mSelectedDevice); finish(); } else { btPreference.getCachedDevice().onClicked();