diff --git a/src/com/android/settings/bluetooth/BluetoothPairingController.java b/src/com/android/settings/bluetooth/BluetoothPairingController.java
index d06cb7e..96837e4 100644
--- a/src/com/android/settings/bluetooth/BluetoothPairingController.java
+++ b/src/com/android/settings/bluetooth/BluetoothPairingController.java
@@ -23,12 +23,16 @@
 import android.util.Log;
 import android.widget.CompoundButton;
 import android.widget.CompoundButton.OnCheckedChangeListener;
+
 import com.android.settings.R;
 import com.android.settings.bluetooth.BluetoothPairingDialogFragment.BluetoothPairingDialogListener;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
 import com.android.settingslib.bluetooth.LocalBluetoothProfile;
+
 import java.util.Locale;
 
+import android.support.annotation.VisibleForTesting;
+
 /**
  * A controller used by {@link BluetoothPairingDialog} to manage connection state while we try to
  * pair with a bluetooth device. It includes methods that allow the
@@ -50,8 +54,10 @@
 
     // Bluetooth dependencies for the connection we are trying to establish
     private LocalBluetoothManager mBluetoothManager;
-    private BluetoothDevice mDevice;
-    private int mType;
+    @VisibleForTesting
+    BluetoothDevice mDevice;
+    @VisibleForTesting
+    int mType;
     private String mUserInput;
     private String mPasskeyFormatted;
     private int mPasskey;
@@ -82,7 +88,6 @@
         mDeviceName = mBluetoothManager.getCachedDeviceManager().getName(mDevice);
         mPbapClientProfile = mBluetoothManager.getProfileManager().getPbapClientProfile();
         mPasskeyFormatted = formatKey(mPasskey);
-
     }
 
     @Override
@@ -96,12 +101,13 @@
 
     @Override
     public void onDialogPositiveClick(BluetoothPairingDialogFragment dialog) {
+        if (mPbapAllowed) {
+            mDevice.setPhonebookAccessPermission(BluetoothDevice.ACCESS_ALLOWED);
+        } else {
+            mDevice.setPhonebookAccessPermission(BluetoothDevice.ACCESS_REJECTED);
+        }
+
         if (getDialogType() == USER_ENTRY_DIALOG) {
-            if (mPbapAllowed) {
-                mDevice.setPhonebookAccessPermission(BluetoothDevice.ACCESS_ALLOWED);
-            } else {
-                mDevice.setPhonebookAccessPermission(BluetoothDevice.ACCESS_REJECTED);
-            }
             onPair(mUserInput);
         } else {
             onPair(null);
