OSDN Git Service

Give PBAP permission only after user confirms
authorHansong Zhang <hsz@google.com>
Thu, 17 May 2018 20:54:00 +0000 (13:54 -0700)
committerHansong Zhang <hsz@google.com>
Tue, 29 May 2018 22:15:51 +0000 (22:15 +0000)
Bug: 72872376
Test: manual
Change-Id: I9617e3c10bf19e22f9a8f172332a83bbbebaf4a4

src/com/android/settings/bluetooth/BluetoothPairingController.java

index 7d2d7b4..5120cc0 100644 (file)
@@ -57,6 +57,7 @@ public class BluetoothPairingController implements OnCheckedChangeListener,
     private int mPasskey;
     private String mDeviceName;
     private LocalBluetoothProfile mPbapClientProfile;
+    private boolean mPbapAllowed;
 
     /**
      * Creates an instance of a BluetoothPairingController.
@@ -87,15 +88,20 @@ public class BluetoothPairingController implements OnCheckedChangeListener,
     @Override
     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
         if (isChecked) {
-            mDevice.setPhonebookAccessPermission(BluetoothDevice.ACCESS_ALLOWED);
+            mPbapAllowed = true;
         } else {
-            mDevice.setPhonebookAccessPermission(BluetoothDevice.ACCESS_REJECTED);
+            mPbapAllowed = false;
         }
     }
 
     @Override
     public void onDialogPositiveClick(BluetoothPairingDialogFragment dialog) {
         if (getDialogType() == USER_ENTRY_DIALOG) {
+            if (mPbapAllowed) {
+                mDevice.setPhonebookAccessPermission(BluetoothDevice.ACCESS_ALLOWED);
+            } else {
+                mDevice.setPhonebookAccessPermission(BluetoothDevice.ACCESS_REJECTED);
+            }
             onPair(mUserInput);
         } else {
             onPair(null);
@@ -104,6 +110,7 @@ public class BluetoothPairingController implements OnCheckedChangeListener,
 
     @Override
     public void onDialogNegativeClick(BluetoothPairingDialogFragment dialog) {
+        mDevice.setPhonebookAccessPermission(BluetoothDevice.ACCESS_REJECTED);
         onCancel();
     }