From 29b7f1d5faece1a703bb06ea8475aa1801ea0dfb Mon Sep 17 00:00:00 2001 From: Qasim Javed Date: Tue, 10 May 2022 11:19:27 -0700 Subject: [PATCH] Only cancel bonding if pair button is not pressed aosp/2093046 cancels bonding unconditionally in onDestroy(), this results in the user not being able to pair when the pair button is pressed because onDestroy() is also called in that case. Only cancel bonding if the user did not press the pair button. Bug: 231554812 Test: Changed settings app is able to scan after dismissing the dialog and is also able to pair when the pair button is pressed Change-Id: I868af9b795f1bb0766656e4619bd06dc8028008a Merged-In: I868af9b795f1bb0766656e4619bd06dc8028008a --- .../settings/bluetooth/BluetoothPairingDialogFragment.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/bluetooth/BluetoothPairingDialogFragment.java b/src/com/android/settings/bluetooth/BluetoothPairingDialogFragment.java index 14b4a7a5a7e..650267a4757 100644 --- a/src/com/android/settings/bluetooth/BluetoothPairingDialogFragment.java +++ b/src/com/android/settings/bluetooth/BluetoothPairingDialogFragment.java @@ -55,6 +55,7 @@ public class BluetoothPairingDialogFragment extends InstrumentedDialogFragment i private BluetoothPairingController mPairingController; private BluetoothPairingDialog mPairingDialogActivity; private EditText mPairingView; + private boolean mPositiveClicked = false; /** * The interface we expect a listener to implement. Typically this should be done by * the controller. @@ -85,7 +86,9 @@ public class BluetoothPairingDialogFragment extends InstrumentedDialogFragment i @Override public void onDestroy() { super.onDestroy(); - mPairingController.onCancel(); + if (!mPositiveClicked) { + mPairingController.onCancel(); + } } @Override @@ -110,6 +113,7 @@ public class BluetoothPairingDialogFragment extends InstrumentedDialogFragment i @Override public void onClick(DialogInterface dialog, int which) { if (which == DialogInterface.BUTTON_POSITIVE) { + mPositiveClicked = true; mPairingController.onDialogPositiveClick(this); } else if (which == DialogInterface.BUTTON_NEGATIVE) { mPairingController.onDialogNegativeClick(this);