From 22a1e5b2eb51555ca4c1b99e9e00b727ca603eec Mon Sep 17 00:00:00 2001 From: Lee Chou Date: Wed, 19 Feb 2020 18:33:05 +0800 Subject: [PATCH] Added check for preference click handlePreferenceTreeClick gets triggered even for other preferences, so this check is added to handle the correct click Bug: 138861284 Test: mp settingsg Change-Id: I178814b4b194d24f38ad0bb74694a2c51d16c89a --- .../DeleteSimProfilePreferenceController.java | 27 +++++++++++-------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/src/com/android/settings/network/telephony/DeleteSimProfilePreferenceController.java b/src/com/android/settings/network/telephony/DeleteSimProfilePreferenceController.java index b6a78a1e3e8..44187e486ae 100644 --- a/src/com/android/settings/network/telephony/DeleteSimProfilePreferenceController.java +++ b/src/com/android/settings/network/telephony/DeleteSimProfilePreferenceController.java @@ -21,6 +21,7 @@ import android.content.Intent; import android.provider.Settings; import android.telephony.SubscriptionInfo; import android.telephony.euicc.EuiccManager; +import android.text.TextUtils; import androidx.fragment.app.Fragment; import androidx.preference.Preference; @@ -60,19 +61,23 @@ public class DeleteSimProfilePreferenceController extends BasePreferenceControll @Override public boolean handlePreferenceTreeClick(Preference preference) { - boolean confirmDeletion = - Settings.Global.getInt( - mContext.getContentResolver(), - ConfirmSimDeletionPreferenceController.KEY_CONFIRM_SIM_DELETION, - mConfirmationDefaultOn ? 1 : 0) - == 1; - if (confirmDeletion) { - WifiDppUtils.showLockScreen(mContext, () -> deleteSim()); - } else { - deleteSim(); + if (TextUtils.equals(preference.getKey(), getPreferenceKey())) { + boolean confirmDeletion = + Settings.Global.getInt( + mContext.getContentResolver(), + ConfirmSimDeletionPreferenceController.KEY_CONFIRM_SIM_DELETION, + mConfirmationDefaultOn ? 1 : 0) + == 1; + if (confirmDeletion) { + WifiDppUtils.showLockScreen(mContext, () -> deleteSim()); + } else { + deleteSim(); + } + + return true; } - return true; + return false; } private void deleteSim() {