diff --git a/src/com/android/settings/notification/zen/AbstractZenModeAutomaticRulePreferenceController.java b/src/com/android/settings/notification/zen/AbstractZenModeAutomaticRulePreferenceController.java index 701abbb0b65..cce715de524 100644 --- a/src/com/android/settings/notification/zen/AbstractZenModeAutomaticRulePreferenceController.java +++ b/src/com/android/settings/notification/zen/AbstractZenModeAutomaticRulePreferenceController.java @@ -16,6 +16,8 @@ package com.android.settings.notification.zen; +import static android.app.NotificationManager.EXTRA_AUTOMATIC_RULE_ID; + import android.app.AutomaticZenRule; import android.app.NotificationManager; import android.app.settings.SettingsEnums; @@ -79,7 +81,8 @@ abstract public class AbstractZenModeAutomaticRulePreferenceController extends ComponentName configurationActivity, String ruleId) { final Intent intent = new Intent() .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) - .putExtra(ConditionProviderService.EXTRA_RULE_ID, ruleId); + .putExtra(ConditionProviderService.EXTRA_RULE_ID, ruleId) + .putExtra(EXTRA_AUTOMATIC_RULE_ID, ruleId); if (configurationActivity != null) { intent.setComponent(configurationActivity); } else { diff --git a/src/com/android/settings/notification/zen/ZenModeRuleSettingsBase.java b/src/com/android/settings/notification/zen/ZenModeRuleSettingsBase.java index 5ce8b48b27c..e155093996a 100644 --- a/src/com/android/settings/notification/zen/ZenModeRuleSettingsBase.java +++ b/src/com/android/settings/notification/zen/ZenModeRuleSettingsBase.java @@ -16,6 +16,8 @@ package com.android.settings.notification.zen; +import static android.app.NotificationManager.EXTRA_AUTOMATIC_RULE_ID; + import android.app.AutomaticZenRule; import android.app.NotificationManager; import android.content.Context; @@ -72,9 +74,12 @@ public abstract class ZenModeRuleSettingsBase extends ZenModeSettingsBase { mId = intent.getStringExtra(ConditionProviderService.EXTRA_RULE_ID); if (mId == null) { - Log.w(TAG, "rule id is null"); - toastAndFinish(); - return; + mId = intent.getStringExtra(EXTRA_AUTOMATIC_RULE_ID); + if (mId == null) { + Log.w(TAG, "rule id is null"); + toastAndFinish(); + return; + } } if (DEBUG) Log.d(TAG, "mId=" + mId); diff --git a/tests/robotests/src/com/android/settings/notification/zen/AbstractZenModeAutomaticRulePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/zen/AbstractZenModeAutomaticRulePreferenceControllerTest.java index ae6e1d0c9c6..1c247a6b8f6 100644 --- a/tests/robotests/src/com/android/settings/notification/zen/AbstractZenModeAutomaticRulePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/zen/AbstractZenModeAutomaticRulePreferenceControllerTest.java @@ -16,6 +16,9 @@ package com.android.settings.notification.zen; +import static android.app.NotificationManager.EXTRA_AUTOMATIC_RULE_ID; +import static android.service.notification.ConditionProviderService.EXTRA_RULE_ID; + import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.when; @@ -24,6 +27,7 @@ import android.app.AutomaticZenRule; import android.app.NotificationManager; import android.content.ComponentName; import android.content.Context; +import android.content.Intent; import android.content.pm.ComponentInfo; import android.content.pm.PackageManager; import android.net.Uri; @@ -166,4 +170,21 @@ public class AbstractZenModeAutomaticRulePreferenceControllerTest { assertThat(actual).isEqualTo(new ComponentName(mContext.getPackageName(), "activity")); } + + @Test + public void testGetRuleIntent() throws Exception { + AutomaticZenRule rule = new AutomaticZenRule("name", null, + new ComponentName(mContext.getPackageName(), "test"), Uri.EMPTY, + new ZenPolicy(), NotificationManager.INTERRUPTION_FILTER_PRIORITY, true); + rule.setPackageName(mContext.getPackageName()); + + when(mPm.getPackageUid(null, 0)).thenReturn(-1); + when(mPm.getPackageUid(mContext.getPackageName(), 0)).thenReturn(1); + + Intent intent = AbstractZenModeAutomaticRulePreferenceController + .getRuleIntent(null, rule.getConfigurationActivity(), "id"); + + assertThat("id").isEqualTo(intent.getStringExtra(EXTRA_RULE_ID)); + assertThat("id").isEqualTo(intent.getStringExtra(EXTRA_AUTOMATIC_RULE_ID)); + } } \ No newline at end of file