From aab162f8146b1fbd8368ea8f3a2788a1caf1b97d Mon Sep 17 00:00:00 2001 From: Yuanru Qian Date: Mon, 29 Jul 2024 05:42:17 +0000 Subject: [PATCH] Do not cancel bonding during bt pairing when orientation happens. Flag: com.android.settings.flags.disable_bonding_cancellation_for_orientation_change Bug: b/349542301 Test: locally tested. Change-Id: I56867eb39ca783b23853318c39e0f25ce1a80e6f --- aconfig/settings_bluetooth_declarations.aconfig | 10 ++++++++++ .../BluetoothPairingDialogFragment.java | 16 ++++++++++------ 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/aconfig/settings_bluetooth_declarations.aconfig b/aconfig/settings_bluetooth_declarations.aconfig index b8b9d9fe569..f6c271c38e9 100644 --- a/aconfig/settings_bluetooth_declarations.aconfig +++ b/aconfig/settings_bluetooth_declarations.aconfig @@ -31,3 +31,13 @@ flag { description: "Gates whether to enable bluetooth device details polish" bug: "343317785" } + +flag { + name: "disable_bonding_cancellation_for_orientation_change" + namespace: "cross_device_experiences" + description: "Stop cancelling bonding process when there is an orientation change" + bug: "349542301" + metadata { + purpose: PURPOSE_BUGFIX + } +} diff --git a/src/com/android/settings/bluetooth/BluetoothPairingDialogFragment.java b/src/com/android/settings/bluetooth/BluetoothPairingDialogFragment.java index 33e6fc3ccbd..e6b197c4d81 100644 --- a/src/com/android/settings/bluetooth/BluetoothPairingDialogFragment.java +++ b/src/com/android/settings/bluetooth/BluetoothPairingDialogFragment.java @@ -41,6 +41,7 @@ import androidx.appcompat.app.AlertDialog; import com.android.settings.R; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; +import com.android.settings.flags.Flags; /** * A dialogFragment used by {@link BluetoothPairingDialog} to create an appropriately styled dialog @@ -87,12 +88,15 @@ public class BluetoothPairingDialogFragment extends InstrumentedDialogFragment i @Override public void onDestroy() { super.onDestroy(); - if (mPairingController.getDialogType() - != BluetoothPairingController.DISPLAY_PASSKEY_DIALOG) { - /* Cancel pairing unless explicitly accepted by user */ - if (!mPositiveClicked) { - mPairingController.onCancel(); - } + /* Cancel pairing unless 1) explicitly accepted by user 2) the event is triggered by + * orientation change. */ + boolean shouldCancelPairing = + Flags.disableBondingCancellationForOrientationChange() + ? !mPositiveClicked && !getActivity().isChangingConfigurations() + : !mPositiveClicked; + if (mPairingController.getDialogType() != BluetoothPairingController.DISPLAY_PASSKEY_DIALOG + && shouldCancelPairing) { + mPairingController.onCancel(); } }