diff --git a/src/com/android/settings/notification/zen/ZenModeRuleSettingsBase.java b/src/com/android/settings/notification/zen/ZenModeRuleSettingsBase.java index 529780168a1..cda5b1adfc7 100644 --- a/src/com/android/settings/notification/zen/ZenModeRuleSettingsBase.java +++ b/src/com/android/settings/notification/zen/ZenModeRuleSettingsBase.java @@ -48,6 +48,7 @@ public abstract class ZenModeRuleSettingsBase extends ZenModeSettingsBase { protected boolean mDisableListeners; protected AutomaticZenRule mRule; protected String mId; + private boolean mRuleRemoved; protected ZenAutomaticRuleHeaderPreferenceController mHeader; protected ZenRuleButtonsPreferenceController mActionButtons; @@ -162,6 +163,10 @@ public abstract class ZenModeRuleSettingsBase extends ZenModeSettingsBase { } private boolean refreshRuleOrFinish() { + if (mRuleRemoved && getActivity() != null) { + getActivity().finish(); + return true; + } mRule = getZenRule(); if (DEBUG) Log.d(TAG, "mRule=" + mRule); mHeader.setRule(mRule); @@ -196,4 +201,8 @@ public abstract class ZenModeRuleSettingsBase extends ZenModeSettingsBase { } mDisableListeners = false; } + + void onRuleRemoved() { + mRuleRemoved = true; + } } diff --git a/src/com/android/settings/notification/zen/ZenRuleButtonsPreferenceController.java b/src/com/android/settings/notification/zen/ZenRuleButtonsPreferenceController.java index 023a770808d..082b2a53ae5 100644 --- a/src/com/android/settings/notification/zen/ZenRuleButtonsPreferenceController.java +++ b/src/com/android/settings/notification/zen/ZenRuleButtonsPreferenceController.java @@ -39,11 +39,11 @@ public class ZenRuleButtonsPreferenceController extends AbstractZenModePreferenc implements PreferenceControllerMixin { public static final String KEY = "zen_action_buttons"; - private final PreferenceFragmentCompat mFragment; + private final ZenModeRuleSettingsBase mFragment; private String mId; private AutomaticZenRule mRule; - public ZenRuleButtonsPreferenceController(Context context, PreferenceFragmentCompat fragment, + public ZenRuleButtonsPreferenceController(Context context, ZenModeRuleSettingsBase fragment, Lifecycle lc) { super(context, KEY, lc); mFragment = fragment; @@ -106,12 +106,7 @@ public class ZenRuleButtonsPreferenceController extends AbstractZenModePreferenc mBackend.removeZenRule(id); mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_ZEN_DELETE_RULE_OK); - new SubSettingLauncher(mContext) - .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) - .setDestination(ZenModeAutomationSettings.class.getName()) - .setSourceMetricsCategory(MetricsProto.MetricsEvent - .NOTIFICATION_ZEN_MODE_AUTOMATION) - .launch(); + mFragment.onRuleRemoved(); } }); }