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;
mDeviceName = mBluetoothManager.getCachedDeviceManager().getName(mDevice);
mPbapClientProfile = mBluetoothManager.getProfileManager().getPbapClientProfile();
mPasskeyFormatted = formatKey(mPasskey);
-
}
@Override
@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);
}
/**
+ * Update Phone book permission
+ *
+ */
+ public void setContactSharingState() {
+ if ((mDevice.getPhonebookAccessPermission() != BluetoothDevice.ACCESS_ALLOWED)
+ && (mDevice.getPhonebookAccessPermission() != BluetoothDevice.ACCESS_REJECTED)) {
+ if (mDevice.getBluetoothClass().getDeviceClass()
+ == BluetoothClass.Device.AUDIO_VIDEO_HANDSFREE) {
+ onCheckedChanged(null, true);
+ } else {
+ onCheckedChanged(null, false);
+ }
+ }
+ }
+
+ /**
* A method for querying if the provided editable is a valid passkey/pin format for this device.
*
* @param s - The passkey/pin