Add missing extra when launching apps

As promised in the api docs

Test: AbstractZenModeAutomaticRulePreferenceControllerTest, view
schedule DND page
Fixes: 221423986

Change-Id: I7ddc1b112950da225afa2ba13ebf5df481922177
This commit is contained in:
Julia Reynolds
2022-04-12 16:20:01 -04:00
parent 4d46dddbe7
commit 87bb1b34c5
3 changed files with 33 additions and 4 deletions

View File

@@ -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 {

View File

@@ -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;
@@ -71,11 +73,14 @@ public abstract class ZenModeRuleSettingsBase extends ZenModeSettingsBase {
}
mId = intent.getStringExtra(ConditionProviderService.EXTRA_RULE_ID);
if (mId == null) {
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);
if (refreshRuleOrFinish()) {

View File

@@ -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));
}
}