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 androidx.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
// 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;
private String mDeviceName;
private LocalBluetoothProfile mPbapClientProfile;
+ private boolean mPbapAllowed;
/**
* Creates an instance of a BluetoothPairingController.
mDeviceName = mBluetoothManager.getCachedDeviceManager().getName(mDevice);
mPbapClientProfile = mBluetoothManager.getProfileManager().getPbapClientProfile();
mPasskeyFormatted = formatKey(mPasskey);
-
}
@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 (mPbapAllowed) {
+ mDevice.setPhonebookAccessPermission(BluetoothDevice.ACCESS_ALLOWED);
+ } else {
+ mDevice.setPhonebookAccessPermission(BluetoothDevice.ACCESS_REJECTED);
+ }
+
if (getDialogType() == USER_ENTRY_DIALOG) {
onPair(mUserInput);
} else {
@Override
public void onDialogNegativeClick(BluetoothPairingDialogFragment dialog) {
+ mDevice.setPhonebookAccessPermission(BluetoothDevice.ACCESS_REJECTED);
onCancel();
}