From d2fb4f06a390fc573f23a3b69b74454beeecedde Mon Sep 17 00:00:00 2001 From: Weng Su Date: Tue, 29 Jun 2021 15:10:24 +0800 Subject: [PATCH] [Provider Model] Fix the "Cancel" button issue in the reminder dialog - Do nothing if user cancel to turn off mobile data Bug: 192052695 Test: manual test atest -c ProviderModelSliceTest Change-Id: Ib4b990a1f3f51a6bf11552a6018c73f8d7105736 --- .../settings/network/ProviderModelSlice.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/network/ProviderModelSlice.java b/src/com/android/settings/network/ProviderModelSlice.java index df705cd95c1..146b11ad265 100644 --- a/src/com/android/settings/network/ProviderModelSlice.java +++ b/src/com/android/settings/network/ProviderModelSlice.java @@ -212,6 +212,8 @@ public class ProviderModelSlice extends WifiSlice { R.string.mobile_data_disable_message_default_carrier); } showMobileDataDisableDialog(getMobileDataDisableDialog(defaultSubId, carrierName)); + // If we need to display a reminder dialog box, do nothing here. + return; } else { MobileNetworkUtils.setMobileDataEnabled(mContext, defaultSubId, newState, false /* disableOtherSubscriptions */); @@ -229,13 +231,24 @@ public class ProviderModelSlice extends WifiSlice { .setTitle(R.string.mobile_data_disable_title) .setMessage(mContext.getString(R.string.mobile_data_disable_message, carrierName)) - .setNegativeButton(android.R.string.cancel, null) + .setNegativeButton(android.R.string.cancel, + (dialog, which) -> { + // Because the toggle of mobile data will be turned off first, if the + // user cancels the operation, we need to update the slice to correct + // the toggle state. + final NetworkProviderWorker worker = getWorker(); + if (worker != null) { + worker.updateSlice(); + } + }) .setPositiveButton( com.android.internal.R.string.alert_windows_notification_turn_off_action, (dialog, which) -> { MobileNetworkUtils.setMobileDataEnabled(mContext, defaultSubId, false /* enabled */, false /* disableOtherSubscriptions */); + doCarrierNetworkAction(true /* isToggleAction */, + false /* isDataEanbed */, defaultSubId); if (mSharedPref != null) { SharedPreferences.Editor editor = mSharedPref.edit(); editor.putBoolean(PREF_HAS_TURNED_OFF_MOBILE_DATA, false);