diff --git a/res/values/strings.xml b/res/values/strings.xml
index 075056db64e..50556de6e0b 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -7930,16 +7930,28 @@
Select activation type
-
+
Time
-
+
Ex. \"9:30 – 5:00 PM\"
-
+
Calendar
-
+
Ex. \"Personal calendar\"
+
+ ON
+
+
+ %1$s • %2$s
+
+
+ Tap to set up
+
+
+ Paused
+
Limit interruptions
diff --git a/src/com/android/settings/notification/modes/IconUtil.java b/src/com/android/settings/notification/modes/IconUtil.java
index c6ecaa0a56d..1e653bf03fe 100644
--- a/src/com/android/settings/notification/modes/IconUtil.java
+++ b/src/com/android/settings/notification/modes/IconUtil.java
@@ -24,6 +24,7 @@ import android.graphics.drawable.LayerDrawable;
import android.graphics.drawable.ShapeDrawable;
import android.graphics.drawable.shapes.OvalShape;
+import androidx.annotation.AttrRes;
import androidx.annotation.DrawableRes;
import androidx.annotation.NonNull;
@@ -32,10 +33,18 @@ import com.android.settingslib.Utils;
class IconUtil {
- static Drawable applyTint(@NonNull Context context, @NonNull Drawable icon) {
+ static Drawable applyNormalTint(@NonNull Context context, @NonNull Drawable icon) {
+ return applyTint(context, icon, android.R.attr.colorControlNormal);
+ }
+
+ static Drawable applyAccentTint(@NonNull Context context, @NonNull Drawable icon) {
+ return applyTint(context, icon, android.R.attr.colorAccent);
+ }
+
+ private static Drawable applyTint(@NonNull Context context, @NonNull Drawable icon,
+ @AttrRes int colorAttr) {
icon = icon.mutate();
- icon.setTintList(
- Utils.getColorAttr(context, android.R.attr.colorControlNormal));
+ icon.setTintList(Utils.getColorAttr(context, colorAttr));
return icon;
}
diff --git a/src/com/android/settings/notification/modes/ZenModeButtonPreferenceController.java b/src/com/android/settings/notification/modes/ZenModeButtonPreferenceController.java
index 79da24da57a..4a99b33749c 100644
--- a/src/com/android/settings/notification/modes/ZenModeButtonPreferenceController.java
+++ b/src/com/android/settings/notification/modes/ZenModeButtonPreferenceController.java
@@ -27,7 +27,7 @@ import com.android.settingslib.notification.modes.ZenMode;
import com.android.settingslib.notification.modes.ZenModesBackend;
import com.android.settingslib.widget.LayoutPreference;
-public class ZenModeButtonPreferenceController extends AbstractZenModePreferenceController {
+class ZenModeButtonPreferenceController extends AbstractZenModePreferenceController {
private Button mZenButton;
diff --git a/src/com/android/settings/notification/modes/ZenModeDisplayEffectPreferenceController.java b/src/com/android/settings/notification/modes/ZenModeDisplayEffectPreferenceController.java
index b42e5b8eed3..b0d395296e9 100644
--- a/src/com/android/settings/notification/modes/ZenModeDisplayEffectPreferenceController.java
+++ b/src/com/android/settings/notification/modes/ZenModeDisplayEffectPreferenceController.java
@@ -26,7 +26,7 @@ import androidx.preference.TwoStatePreference;
import com.android.settingslib.notification.modes.ZenMode;
import com.android.settingslib.notification.modes.ZenModesBackend;
-public class ZenModeDisplayEffectPreferenceController extends AbstractZenModePreferenceController
+class ZenModeDisplayEffectPreferenceController extends AbstractZenModePreferenceController
implements Preference.OnPreferenceChangeListener {
public ZenModeDisplayEffectPreferenceController(Context context, String key,
@@ -37,24 +37,20 @@ public class ZenModeDisplayEffectPreferenceController extends AbstractZenModePre
@Override
public void updateState(Preference preference, @NonNull ZenMode zenMode) {
TwoStatePreference pref = (TwoStatePreference) preference;
- ZenDeviceEffects effects = zenMode.getRule().getDeviceEffects();
- if (effects == null) {
- pref.setChecked(false);
- } else {
- switch (getPreferenceKey()) {
- case "effect_greyscale":
- pref.setChecked(effects.shouldDisplayGrayscale());
- break;
- case "effect_aod":
- pref.setChecked(effects.shouldSuppressAmbientDisplay());
- break;
- case "effect_wallpaper":
- pref.setChecked(effects.shouldDimWallpaper());
- break;
- case "effect_dark_theme":
- pref.setChecked(effects.shouldUseNightMode());
- break;
- }
+ ZenDeviceEffects effects = zenMode.getDeviceEffects();
+ switch (getPreferenceKey()) {
+ case "effect_greyscale":
+ pref.setChecked(effects.shouldDisplayGrayscale());
+ break;
+ case "effect_aod":
+ pref.setChecked(effects.shouldSuppressAmbientDisplay());
+ break;
+ case "effect_wallpaper":
+ pref.setChecked(effects.shouldDimWallpaper());
+ break;
+ case "effect_dark_theme":
+ pref.setChecked(effects.shouldUseNightMode());
+ break;
}
}
diff --git a/src/com/android/settings/notification/modes/ZenModeHeaderController.java b/src/com/android/settings/notification/modes/ZenModeHeaderController.java
index 857d07949aa..1845ee8f190 100644
--- a/src/com/android/settings/notification/modes/ZenModeHeaderController.java
+++ b/src/com/android/settings/notification/modes/ZenModeHeaderController.java
@@ -66,7 +66,7 @@ class ZenModeHeaderController extends AbstractZenModePreferenceController {
FutureUtil.whenDone(
zenMode.getIcon(mContext, ZenIconLoader.getInstance()),
- icon -> mHeaderController.setIcon(IconUtil.applyTint(mContext, icon))
+ icon -> mHeaderController.setIcon(IconUtil.applyNormalTint(mContext, icon))
.done(/* rebindActions= */ false),
mContext.getMainExecutor());
}
diff --git a/src/com/android/settings/notification/modes/ZenModeIconPickerIconPreferenceController.java b/src/com/android/settings/notification/modes/ZenModeIconPickerIconPreferenceController.java
index d891e66c2f7..d1d53af9ddf 100644
--- a/src/com/android/settings/notification/modes/ZenModeIconPickerIconPreferenceController.java
+++ b/src/com/android/settings/notification/modes/ZenModeIconPickerIconPreferenceController.java
@@ -55,7 +55,7 @@ class ZenModeIconPickerIconPreferenceController extends AbstractZenModePreferenc
FutureUtil.whenDone(
zenMode.getIcon(mContext, ZenIconLoader.getInstance()),
- icon -> mHeaderController.setIcon(IconUtil.applyTint(mContext, icon))
+ icon -> mHeaderController.setIcon(IconUtil.applyNormalTint(mContext, icon))
.done(/* rebindActions= */ false),
mContext.getMainExecutor());
}
diff --git a/src/com/android/settings/notification/modes/ZenModesListItemPreference.java b/src/com/android/settings/notification/modes/ZenModesListItemPreference.java
index 0b04ac6c087..1bc6e55acce 100644
--- a/src/com/android/settings/notification/modes/ZenModesListItemPreference.java
+++ b/src/com/android/settings/notification/modes/ZenModesListItemPreference.java
@@ -16,18 +16,31 @@
package com.android.settings.notification.modes;
import android.content.Context;
+import android.widget.TextView;
+import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.PreferenceViewHolder;
+
+import com.android.settings.R;
import com.android.settingslib.RestrictedPreference;
+import com.android.settingslib.Utils;
import com.android.settingslib.notification.modes.ZenIconLoader;
import com.android.settingslib.notification.modes.ZenMode;
+import com.google.common.base.Strings;
+
/**
* Preference representing a single mode item on the modes aggregator page. Clicking on this
* preference leads to an individual mode's configuration page.
*/
class ZenModesListItemPreference extends RestrictedPreference {
- final Context mContext;
- ZenMode mZenMode;
+
+ private final Context mContext;
+ private ZenMode mZenMode;
+
+ private TextView mTitleView;
+ private TextView mSummaryView;
ZenModesListItemPreference(Context context, ZenMode zenMode) {
super(context);
@@ -36,6 +49,18 @@ class ZenModesListItemPreference extends RestrictedPreference {
setKey(zenMode.getId());
}
+ @Override
+ public void onBindViewHolder(PreferenceViewHolder holder) {
+ super.onBindViewHolder(holder);
+ if (holder.findViewById(android.R.id.title) instanceof TextView titleView) {
+ mTitleView = titleView;
+ }
+ if (holder.findViewById(android.R.id.summary) instanceof TextView summaryView) {
+ mSummaryView = summaryView;
+ }
+ updateTextColor(mZenMode);
+ }
+
@Override
public void onClick() {
ZenSubSettingLauncher.forMode(mContext, mZenMode.getId()).launch();
@@ -43,13 +68,47 @@ class ZenModesListItemPreference extends RestrictedPreference {
public void setZenMode(ZenMode zenMode) {
mZenMode = zenMode;
- setTitle(mZenMode.getRule().getName());
- setSummary(mZenMode.getRule().getTriggerDescription());
- setIconSize(ICON_SIZE_SMALL);
+ setTitle(mZenMode.getName());
+ CharSequence statusText = switch (mZenMode.getStatus()) {
+ case ENABLED_AND_ACTIVE ->
+ Strings.isNullOrEmpty(mZenMode.getTriggerDescription())
+ ? mContext.getString(R.string.zen_mode_active_text)
+ : mContext.getString(
+ R.string.zen_mode_format_status_and_trigger,
+ mContext.getString(R.string.zen_mode_active_text),
+ mZenMode.getRule().getTriggerDescription());
+ case ENABLED -> mZenMode.getRule().getTriggerDescription();
+ case DISABLED_BY_USER -> mContext.getString(R.string.zen_mode_disabled_by_user);
+ case DISABLED_BY_OTHER -> mContext.getString(R.string.zen_mode_disabled_tap_to_set_up);
+ };
+ setSummary(statusText);
+ setIconSize(ICON_SIZE_SMALL);
FutureUtil.whenDone(
mZenMode.getIcon(mContext, ZenIconLoader.getInstance()),
- icon -> setIcon(IconUtil.applyTint(mContext, icon)),
+ icon -> setIcon(
+ zenMode.isActive()
+ ? IconUtil.applyAccentTint(mContext, icon)
+ : IconUtil.applyNormalTint(mContext, icon)),
mContext.getMainExecutor());
+
+ updateTextColor(zenMode);
+ }
+
+ private void updateTextColor(@Nullable ZenMode zenMode) {
+ boolean isActive = zenMode != null && zenMode.isActive();
+ if (mTitleView != null) {
+ mTitleView.setTextColor(Utils.getColorAttr(mContext,
+ isActive ? android.R.attr.colorAccent : android.R.attr.textColorPrimary));
+ }
+ if (mSummaryView != null) {
+ mSummaryView.setTextColor(Utils.getColorAttr(mContext,
+ isActive ? android.R.attr.colorAccent : android.R.attr.textColorSecondary));
+ }
+ }
+
+ @VisibleForTesting(otherwise = VisibleForTesting.NONE)
+ ZenMode getZenMode() {
+ return mZenMode;
}
}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/InterruptionFilterPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/InterruptionFilterPreferenceControllerTest.java
index 0aef136d5f6..ff253222ac2 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/InterruptionFilterPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/InterruptionFilterPreferenceControllerTest.java
@@ -25,10 +25,8 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
-import android.app.AutomaticZenRule;
import android.app.Flags;
import android.content.Context;
-import android.net.Uri;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
import android.service.notification.ZenPolicy;
@@ -71,12 +69,9 @@ public final class InterruptionFilterPreferenceControllerTest {
@Test
public void testUpdateState_all() {
TwoStatePreference preference = mock(TwoStatePreference.class);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_ALL)
- .setZenPolicy(new ZenPolicy.Builder().allowAlarms(true).build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setInterruptionFilter(INTERRUPTION_FILTER_ALL)
+ .build();
mController.updateZenMode(preference, zenMode);
verify(preference).setChecked(false);
@@ -85,12 +80,9 @@ public final class InterruptionFilterPreferenceControllerTest {
@Test
public void testOnPreferenceChange_fromAll() {
TwoStatePreference preference = mock(TwoStatePreference.class);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_ALL)
- .setZenPolicy(new ZenPolicy.Builder().allowAlarms(false).build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setInterruptionFilter(INTERRUPTION_FILTER_ALL)
+ .build();
mController.updateZenMode(preference, zenMode);
@@ -107,12 +99,10 @@ public final class InterruptionFilterPreferenceControllerTest {
@Test
public void testUpdateState_priority() {
TwoStatePreference preference = mock(TwoStatePreference.class);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder().allowAlarms(true).build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
+ .setZenPolicy(new ZenPolicy.Builder().allowAlarms(true).build())
+ .build();
mController.updateZenMode(preference, zenMode);
verify(preference).setChecked(true);
@@ -121,12 +111,10 @@ public final class InterruptionFilterPreferenceControllerTest {
@Test
public void testOnPreferenceChange_fromPriority() {
TwoStatePreference preference = mock(TwoStatePreference.class);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder().allowAlarms(false).build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
+ .setZenPolicy(new ZenPolicy.Builder().allowAlarms(false).build())
+ .build();
mController.updateZenMode(preference, zenMode);
diff --git a/tests/robotests/src/com/android/settings/notification/modes/TestModeBuilder.java b/tests/robotests/src/com/android/settings/notification/modes/TestModeBuilder.java
new file mode 100644
index 00000000000..fa12b30590c
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/modes/TestModeBuilder.java
@@ -0,0 +1,149 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification.modes;
+
+import android.app.AutomaticZenRule;
+import android.app.NotificationManager;
+import android.net.Uri;
+import android.service.notification.Condition;
+import android.service.notification.ZenDeviceEffects;
+import android.service.notification.ZenModeConfig;
+import android.service.notification.ZenPolicy;
+
+import androidx.annotation.Nullable;
+
+import com.android.settingslib.notification.modes.ZenMode;
+
+import java.util.Random;
+
+class TestModeBuilder {
+
+ private String mId;
+ private AutomaticZenRule mRule;
+ private ZenModeConfig.ZenRule mConfigZenRule;
+
+ public static final ZenMode EXAMPLE = new TestModeBuilder().build();
+
+ TestModeBuilder() {
+ // Reasonable defaults
+ int id = new Random().nextInt(1000);
+ mId = "rule_" + id;
+ mRule = new AutomaticZenRule.Builder("Test Rule #" + id, Uri.parse("rule://" + id))
+ .setPackage("some_package")
+ .setInterruptionFilter(NotificationManager.INTERRUPTION_FILTER_PRIORITY)
+ .setZenPolicy(new ZenPolicy.Builder().disallowAllSounds().build())
+ .build();
+ mConfigZenRule = new ZenModeConfig.ZenRule();
+ mConfigZenRule.enabled = true;
+ mConfigZenRule.pkg = "some_package";
+ }
+
+ TestModeBuilder setId(String id) {
+ mId = id;
+ return this;
+ }
+
+ TestModeBuilder setAzr(AutomaticZenRule rule) {
+ mRule = rule;
+ mConfigZenRule.pkg = rule.getPackageName();
+ mConfigZenRule.conditionId = rule.getConditionId();
+ mConfigZenRule.enabled = rule.isEnabled();
+ return this;
+ }
+
+ TestModeBuilder setConfigZenRule(ZenModeConfig.ZenRule configZenRule) {
+ mConfigZenRule = configZenRule;
+ return this;
+ }
+
+ public TestModeBuilder setName(String name) {
+ mRule.setName(name);
+ mConfigZenRule.name = name;
+ return this;
+ }
+
+ public TestModeBuilder setPackage(String pkg) {
+ mRule.setPackageName(pkg);
+ mConfigZenRule.pkg = pkg;
+ return this;
+ }
+
+ TestModeBuilder setConditionId(Uri conditionId) {
+ mRule.setConditionId(conditionId);
+ mConfigZenRule.conditionId = conditionId;
+ return this;
+ }
+
+ TestModeBuilder setType(@AutomaticZenRule.Type int type) {
+ mRule.setType(type);
+ mConfigZenRule.type = type;
+ return this;
+ }
+
+ TestModeBuilder setInterruptionFilter(
+ @NotificationManager.InterruptionFilter int interruptionFilter) {
+ mRule.setInterruptionFilter(interruptionFilter);
+ mConfigZenRule.zenMode = NotificationManager.zenModeFromInterruptionFilter(
+ interruptionFilter, NotificationManager.INTERRUPTION_FILTER_PRIORITY);
+ return this;
+ }
+
+ TestModeBuilder setZenPolicy(@Nullable ZenPolicy policy) {
+ mRule.setZenPolicy(policy);
+ mConfigZenRule.zenPolicy = policy;
+ return this;
+ }
+
+ TestModeBuilder setDeviceEffects(@Nullable ZenDeviceEffects deviceEffects) {
+ mRule.setDeviceEffects(deviceEffects);
+ mConfigZenRule.zenDeviceEffects = deviceEffects;
+ return this;
+ }
+
+ public TestModeBuilder setEnabled(boolean enabled) {
+ mRule.setEnabled(enabled);
+ mConfigZenRule.enabled = enabled;
+ return this;
+ }
+
+ TestModeBuilder setManualInvocationAllowed(boolean allowed) {
+ mRule.setManualInvocationAllowed(allowed);
+ mConfigZenRule.allowManualInvocation = allowed;
+ return this;
+ }
+
+ public TestModeBuilder setTriggerDescription(@Nullable String triggerDescription) {
+ mRule.setTriggerDescription(triggerDescription);
+ mConfigZenRule.triggerDescription = triggerDescription;
+ return this;
+ }
+
+ TestModeBuilder setActive(boolean active) {
+ if (active) {
+ mConfigZenRule.enabled = true;
+ mConfigZenRule.condition = new Condition(mRule.getConditionId(), "...",
+ Condition.STATE_TRUE);
+ } else {
+ mConfigZenRule.condition = null;
+ }
+ return this;
+ }
+
+ ZenMode build() {
+ return new ZenMode(mId, mRule, mConfigZenRule);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeAppsLinkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeAppsLinkPreferenceControllerTest.java
index 066a215e61f..83f8de0e70c 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeAppsLinkPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeAppsLinkPreferenceControllerTest.java
@@ -28,12 +28,10 @@ import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
-import android.app.AutomaticZenRule;
import android.app.Flags;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
-import android.net.Uri;
import android.os.Bundle;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
@@ -103,14 +101,13 @@ public final class ZenModeAppsLinkPreferenceControllerTest {
}
private ZenMode createPriorityChannelsZenMode() {
- return new ZenMode("id", new AutomaticZenRule.Builder("Bedtime",
- Uri.parse("bed"))
- .setType(AutomaticZenRule.TYPE_BEDTIME)
+ return new TestModeBuilder()
+ .setId("id")
.setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
.setZenPolicy(new ZenPolicy.Builder()
.allowChannels(ZenPolicy.CHANNEL_POLICY_PRIORITY)
.build())
- .build(), true);
+ .build();
}
@Test
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeAppsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeAppsPreferenceControllerTest.java
index d89e187c7da..c96dbb6566f 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeAppsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeAppsPreferenceControllerTest.java
@@ -26,10 +26,8 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
-import android.app.AutomaticZenRule;
import android.app.Flags;
import android.content.Context;
-import android.net.Uri;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
import android.service.notification.ZenPolicy;
@@ -107,13 +105,12 @@ public final class ZenModeAppsPreferenceControllerTest {
@Test
public void testUpdateState_None() {
TwoStatePreference preference = mock(TwoStatePreference.class);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setZenPolicy(new ZenPolicy.Builder()
- .allowChannels(ZenPolicy.CHANNEL_POLICY_NONE)
- .build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setZenPolicy(new ZenPolicy.Builder()
+ .allowChannels(ZenPolicy.CHANNEL_POLICY_NONE)
+ .build())
+ .build();
+
mNoneController.updateZenMode(preference, zenMode);
verify(preference).setChecked(true);
@@ -122,13 +119,12 @@ public final class ZenModeAppsPreferenceControllerTest {
@Test
public void testUpdateState_None_Unchecked() {
TwoStatePreference preference = mock(TwoStatePreference.class);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setZenPolicy(new ZenPolicy.Builder()
- .allowChannels(ZenPolicy.CHANNEL_POLICY_PRIORITY)
- .build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setZenPolicy(new ZenPolicy.Builder()
+ .allowChannels(ZenPolicy.CHANNEL_POLICY_PRIORITY)
+ .build())
+ .build();
+
mNoneController.updateZenMode(preference, zenMode);
verify(preference).setChecked(false);
@@ -137,13 +133,12 @@ public final class ZenModeAppsPreferenceControllerTest {
@Test
public void testUpdateState_Priority() {
TwoStatePreference preference = mock(TwoStatePreference.class);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setZenPolicy(new ZenPolicy.Builder()
- .allowChannels(ZenPolicy.CHANNEL_POLICY_PRIORITY)
- .build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setZenPolicy(new ZenPolicy.Builder()
+ .allowChannels(ZenPolicy.CHANNEL_POLICY_PRIORITY)
+ .build())
+ .build();
+
mPriorityController.updateZenMode(preference, zenMode);
verify(preference).setChecked(true);
@@ -152,13 +147,12 @@ public final class ZenModeAppsPreferenceControllerTest {
@Test
public void testUpdateState_Priority_Unchecked() {
TwoStatePreference preference = mock(TwoStatePreference.class);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setZenPolicy(new ZenPolicy.Builder()
- .allowChannels(ZenPolicy.CHANNEL_POLICY_NONE)
- .build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setZenPolicy(new ZenPolicy.Builder()
+ .allowChannels(ZenPolicy.CHANNEL_POLICY_NONE)
+ .build())
+ .build();
+
mPriorityController.updateZenMode(preference, zenMode);
verify(preference).setChecked(false);
@@ -166,21 +160,19 @@ public final class ZenModeAppsPreferenceControllerTest {
@Test
public void testPreferenceClick_passesCorrectCheckedState_None() {
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setZenPolicy(new ZenPolicy.Builder()
- .allowChannels(ZenPolicy.CHANNEL_POLICY_PRIORITY)
- .build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setZenPolicy(new ZenPolicy.Builder()
+ .allowChannels(ZenPolicy.CHANNEL_POLICY_PRIORITY)
+ .build())
+ .build();
mNoneController.updateZenMode(mNonePref, zenMode);
mPriorityController.updateZenMode(mPriorityPref, zenMode);
- assertThat(!((SelectorWithWidgetPreference) mPrefCategory.findPreference(KEY_NONE))
- .isChecked());
- assertThat(!((SelectorWithWidgetPreference) mPrefCategory.findPreference(KEY_PRIORITY))
- .isChecked());
+ assertThat(((SelectorWithWidgetPreference) mPrefCategory.findPreference(KEY_NONE))
+ .isChecked()).isFalse();
+ assertThat(((SelectorWithWidgetPreference) mPrefCategory.findPreference(KEY_PRIORITY))
+ .isChecked()).isTrue();
// Click on NONE
mPrefCategory.findPreference(KEY_NONE).performClick();
@@ -192,30 +184,31 @@ public final class ZenModeAppsPreferenceControllerTest {
// See AbstractZenModePreferenceController.
assertThat(captor.getValue().getRule().getInterruptionFilter())
.isEqualTo(INTERRUPTION_FILTER_PRIORITY);
- // NONE is now checked; others are unchecked.
+
+ // After screen is refreshed, NONE is now checked; others are unchecked.
+ mNoneController.updateZenMode(mNonePref, captor.getValue());
+ mPriorityController.updateZenMode(mPriorityPref, captor.getValue());
assertThat(((SelectorWithWidgetPreference) mPrefCategory.findPreference(KEY_NONE))
- .isChecked());
- assertThat(!((SelectorWithWidgetPreference) mPrefCategory.findPreference(KEY_PRIORITY))
- .isChecked());
+ .isChecked()).isTrue();
+ assertThat(((SelectorWithWidgetPreference) mPrefCategory.findPreference(KEY_PRIORITY))
+ .isChecked()).isFalse();
}
@Test
public void testPreferenceClick_passesCorrectCheckedState_Priority() {
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setZenPolicy(new ZenPolicy.Builder()
- .allowChannels(ZenPolicy.CHANNEL_POLICY_NONE)
- .build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setZenPolicy(new ZenPolicy.Builder()
+ .allowChannels(ZenPolicy.CHANNEL_POLICY_NONE)
+ .build())
+ .build();
mNoneController.updateZenMode(mNonePref, zenMode);
mPriorityController.updateZenMode(mPriorityPref, zenMode);
assertThat(((SelectorWithWidgetPreference) mPrefCategory.findPreference(KEY_NONE))
- .isChecked());
- assertThat(!((SelectorWithWidgetPreference) mPrefCategory.findPreference(KEY_PRIORITY))
- .isChecked());
+ .isChecked()).isTrue();
+ assertThat(((SelectorWithWidgetPreference) mPrefCategory.findPreference(KEY_PRIORITY))
+ .isChecked()).isFalse();
// Click on PRIORITY
mPrefCategory.findPreference(KEY_PRIORITY).performClick();
@@ -225,11 +218,13 @@ public final class ZenModeAppsPreferenceControllerTest {
// Checks the policy value for PRIORITY is propagated to the backend.
assertThat(captor.getValue().getRule().getInterruptionFilter())
.isEqualTo(INTERRUPTION_FILTER_PRIORITY);
- // PRIORITY is now checked; others are unchecked.
- assertThat(((SelectorWithWidgetPreference) mPrefCategory.findPreference(KEY_PRIORITY))
- .isChecked());
- assertThat(!((SelectorWithWidgetPreference) mPrefCategory.findPreference(KEY_NONE))
- .isChecked());
- }
+ // After screen is refreshed, PRIORITY is now checked; others are unchecked.
+ mNoneController.updateZenMode(mNonePref, captor.getValue());
+ mPriorityController.updateZenMode(mPriorityPref, captor.getValue());
+ assertThat(((SelectorWithWidgetPreference) mPrefCategory.findPreference(KEY_PRIORITY))
+ .isChecked()).isTrue();
+ assertThat(((SelectorWithWidgetPreference) mPrefCategory.findPreference(KEY_NONE))
+ .isChecked()).isFalse();
+ }
}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeButtonPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeButtonPreferenceControllerTest.java
index 98099aa1a20..625f2311d21 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeButtonPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeButtonPreferenceControllerTest.java
@@ -16,8 +16,6 @@
package com.android.settings.notification.modes;
-import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
-
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.anyInt;
@@ -25,13 +23,10 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
-import android.app.AutomaticZenRule;
import android.app.Flags;
import android.content.Context;
-import android.net.Uri;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
-import android.service.notification.ZenPolicy;
import android.widget.Button;
import com.android.settingslib.notification.modes.ZenMode;
@@ -73,43 +68,34 @@ public final class ZenModeButtonPreferenceControllerTest {
@Test
public void isAvailable_notIfAppOptsOut() {
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder().allowAllSounds().build())
+ ZenMode zenMode = new TestModeBuilder()
.setManualInvocationAllowed(false)
- .setEnabled(true)
- .build(), false);
+ .build();
mController.setZenMode(zenMode);
assertThat(mController.isAvailable()).isFalse();
}
@Test
public void isAvailable_notIfModeDisabled() {
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder().allowAllSounds().build())
- .setManualInvocationAllowed(true)
- .setEnabled(false)
- .build(), false);
+ ZenMode zenMode = new TestModeBuilder()
+ .setManualInvocationAllowed(true)
+ .setEnabled(false)
+ .build();
+
mController.setZenMode(zenMode);
+
assertThat(mController.isAvailable()).isFalse();
}
@Test
public void isAvailable_appOptedIn_modeEnabled() {
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder().allowAllSounds().build())
- .setManualInvocationAllowed(true)
- .setEnabled(true)
- .build(), false);
+ ZenMode zenMode = new TestModeBuilder()
+ .setManualInvocationAllowed(true)
+ .setEnabled(true)
+ .build();
+
mController.setZenMode(zenMode);
+
assertThat(mController.isAvailable()).isTrue();
}
@@ -118,15 +104,13 @@ public final class ZenModeButtonPreferenceControllerTest {
Button button = new Button(mContext);
LayoutPreference pref = mock(LayoutPreference.class);
when(pref.findViewById(anyInt())).thenReturn(button);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder().allowAllSounds().build())
- .setManualInvocationAllowed(true)
- .setEnabled(true)
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setManualInvocationAllowed(true)
+ .setActive(true)
+ .build();
+
mController.updateZenMode(pref, zenMode);
+
assertThat(button.getText().toString()).contains("off");
assertThat(button.hasOnClickListeners()).isTrue();
}
@@ -136,15 +120,13 @@ public final class ZenModeButtonPreferenceControllerTest {
Button button = new Button(mContext);
LayoutPreference pref = mock(LayoutPreference.class);
when(pref.findViewById(anyInt())).thenReturn(button);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder().allowAllSounds().build())
- .setManualInvocationAllowed(true)
- .setEnabled(true)
- .build(), false);
+ ZenMode zenMode = new TestModeBuilder()
+ .setManualInvocationAllowed(true)
+ .setActive(false)
+ .build();
+
mController.updateZenMode(pref, zenMode);
+
assertThat(button.getText().toString()).contains("on");
assertThat(button.hasOnClickListeners()).isTrue();
}
@@ -154,14 +136,11 @@ public final class ZenModeButtonPreferenceControllerTest {
Button button = new Button(mContext);
LayoutPreference pref = mock(LayoutPreference.class);
when(pref.findViewById(anyInt())).thenReturn(button);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder().allowAllSounds().build())
- .setManualInvocationAllowed(true)
- .setEnabled(true)
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setManualInvocationAllowed(true)
+ .setActive(true)
+ .build();
+
mController.updateZenMode(pref, zenMode);
button.callOnClick();
@@ -173,14 +152,11 @@ public final class ZenModeButtonPreferenceControllerTest {
Button button = new Button(mContext);
LayoutPreference pref = mock(LayoutPreference.class);
when(pref.findViewById(anyInt())).thenReturn(button);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder().allowAllSounds().build())
- .setManualInvocationAllowed(true)
- .setEnabled(true)
- .build(), false);
+ ZenMode zenMode = new TestModeBuilder()
+ .setManualInvocationAllowed(true)
+ .setActive(false)
+ .build();
+
mController.updateZenMode(pref, zenMode);
button.callOnClick();
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeCallsLinkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeCallsLinkPreferenceControllerTest.java
index c8e654d5af8..058b2d7d566 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeCallsLinkPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeCallsLinkPreferenceControllerTest.java
@@ -16,23 +16,17 @@
package com.android.settings.notification.modes;
-import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
-
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
-import android.app.AutomaticZenRule;
import android.app.Flags;
import android.content.Context;
-import android.net.Uri;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
-import android.service.notification.ZenPolicy;
import androidx.preference.Preference;
-import com.android.settingslib.notification.modes.ZenMode;
import com.android.settingslib.notification.modes.ZenModesBackend;
import org.junit.Before;
@@ -70,13 +64,7 @@ public final class ZenModeCallsLinkPreferenceControllerTest {
@EnableFlags(Flags.FLAG_MODES_UI)
public void testHasSummary() {
Preference pref = mock(Preference.class);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder().allowAllSounds().build())
- .build(), true);
- mController.updateZenMode(pref, zenMode);
+ mController.updateZenMode(pref, TestModeBuilder.EXAMPLE);
verify(pref).setSummary(any());
}
}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeDisplayEffectPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeDisplayEffectPreferenceControllerTest.java
index 1052c0d831e..a735cd928f3 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeDisplayEffectPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeDisplayEffectPreferenceControllerTest.java
@@ -16,21 +16,16 @@
package com.android.settings.notification.modes;
-import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
-
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
-import android.app.AutomaticZenRule;
import android.app.Flags;
import android.content.Context;
-import android.net.Uri;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
import android.service.notification.ZenDeviceEffects;
-import android.service.notification.ZenPolicy;
import androidx.preference.TwoStatePreference;
@@ -67,15 +62,11 @@ public final class ZenModeDisplayEffectPreferenceControllerTest {
@Test
public void testUpdateState_grayscale() {
TwoStatePreference preference = mock(TwoStatePreference.class);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder().allowAlarms(true).build())
- .setDeviceEffects(new ZenDeviceEffects.Builder()
- .setShouldDisplayGrayscale(true)
- .build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setDeviceEffects(new ZenDeviceEffects.Builder()
+ .setShouldDisplayGrayscale(true)
+ .build())
+ .build();
ZenModeDisplayEffectPreferenceController controller =
new ZenModeDisplayEffectPreferenceController(
@@ -89,15 +80,11 @@ public final class ZenModeDisplayEffectPreferenceControllerTest {
@Test
public void testOnPreferenceChange_grayscale() {
TwoStatePreference preference = mock(TwoStatePreference.class);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder().allowAlarms(false).build())
- .setDeviceEffects(new ZenDeviceEffects.Builder()
- .setShouldDisplayGrayscale(true)
- .build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setDeviceEffects(new ZenDeviceEffects.Builder()
+ .setShouldDisplayGrayscale(true)
+ .build())
+ .build();
ZenModeDisplayEffectPreferenceController controller =
new ZenModeDisplayEffectPreferenceController(mContext, "effect_greyscale", mBackend);
@@ -108,22 +95,18 @@ public final class ZenModeDisplayEffectPreferenceControllerTest {
ArgumentCaptor captor = ArgumentCaptor.forClass(ZenMode.class);
verify(mBackend).updateMode(captor.capture());
- assertThat(captor.getValue().getRule().getDeviceEffects().shouldDisplayGrayscale())
+ assertThat(captor.getValue().getDeviceEffects().shouldDisplayGrayscale())
.isFalse();
}
@Test
public void testUpdateState_aod() {
TwoStatePreference preference = mock(TwoStatePreference.class);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder().allowMedia(true).build())
- .setDeviceEffects(new ZenDeviceEffects.Builder()
- .setShouldSuppressAmbientDisplay(true)
- .build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setDeviceEffects(new ZenDeviceEffects.Builder()
+ .setShouldSuppressAmbientDisplay(true)
+ .build())
+ .build();
ZenModeDisplayEffectPreferenceController controller =
new ZenModeDisplayEffectPreferenceController(mContext, "effect_aod", mBackend);
@@ -136,15 +119,11 @@ public final class ZenModeDisplayEffectPreferenceControllerTest {
@Test
public void testOnPreferenceChange_aod() {
TwoStatePreference preference = mock(TwoStatePreference.class);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder().allowMedia(false).build())
- .setDeviceEffects(new ZenDeviceEffects.Builder()
- .setShouldSuppressAmbientDisplay(true)
- .build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setDeviceEffects(new ZenDeviceEffects.Builder()
+ .setShouldSuppressAmbientDisplay(true)
+ .build())
+ .build();
ZenModeDisplayEffectPreferenceController controller =
new ZenModeDisplayEffectPreferenceController(mContext, "effect_aod", mBackend);
@@ -155,22 +134,18 @@ public final class ZenModeDisplayEffectPreferenceControllerTest {
ArgumentCaptor captor = ArgumentCaptor.forClass(ZenMode.class);
verify(mBackend).updateMode(captor.capture());
- assertThat(captor.getValue().getRule().getDeviceEffects().shouldSuppressAmbientDisplay())
+ assertThat(captor.getValue().getDeviceEffects().shouldSuppressAmbientDisplay())
.isFalse();
}
@Test
public void testUpdateState_wallpaper() {
TwoStatePreference preference = mock(TwoStatePreference.class);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder().allowSystem(true).build())
- .setDeviceEffects(new ZenDeviceEffects.Builder()
- .setShouldDimWallpaper(true)
- .build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setDeviceEffects(new ZenDeviceEffects.Builder()
+ .setShouldDimWallpaper(true)
+ .build())
+ .build();
ZenModeDisplayEffectPreferenceController controller =
new ZenModeDisplayEffectPreferenceController(
@@ -184,15 +159,11 @@ public final class ZenModeDisplayEffectPreferenceControllerTest {
@Test
public void testOnPreferenceChange_wallpaper() {
TwoStatePreference preference = mock(TwoStatePreference.class);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder().allowSystem(false).build())
- .setDeviceEffects(new ZenDeviceEffects.Builder()
- .setShouldDimWallpaper(true)
- .build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setDeviceEffects(new ZenDeviceEffects.Builder()
+ .setShouldDimWallpaper(true)
+ .build())
+ .build();
ZenModeDisplayEffectPreferenceController controller =
new ZenModeDisplayEffectPreferenceController(
@@ -204,21 +175,17 @@ public final class ZenModeDisplayEffectPreferenceControllerTest {
ArgumentCaptor captor = ArgumentCaptor.forClass(ZenMode.class);
verify(mBackend).updateMode(captor.capture());
- assertThat(captor.getValue().getRule().getDeviceEffects().shouldDimWallpaper()).isFalse();
+ assertThat(captor.getValue().getDeviceEffects().shouldDimWallpaper()).isFalse();
}
@Test
public void testUpdateState_darkTheme() {
TwoStatePreference preference = mock(TwoStatePreference.class);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder().allowReminders(true).build())
- .setDeviceEffects(new ZenDeviceEffects.Builder()
- .setShouldUseNightMode(true)
- .build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setDeviceEffects(new ZenDeviceEffects.Builder()
+ .setShouldUseNightMode(true)
+ .build())
+ .build();
ZenModeDisplayEffectPreferenceController controller =
new ZenModeDisplayEffectPreferenceController(mContext, "effect_dark_theme",
@@ -232,15 +199,11 @@ public final class ZenModeDisplayEffectPreferenceControllerTest {
@Test
public void testOnPreferenceChange_darkTheme() {
TwoStatePreference preference = mock(TwoStatePreference.class);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder().allowReminders(false).build())
- .setDeviceEffects(new ZenDeviceEffects.Builder()
- .setShouldUseNightMode(true)
- .build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setDeviceEffects(new ZenDeviceEffects.Builder()
+ .setShouldUseNightMode(true)
+ .build())
+ .build();
ZenModeDisplayEffectPreferenceController controller =
new ZenModeDisplayEffectPreferenceController(mContext, "effect_dark_theme",
@@ -252,6 +215,6 @@ public final class ZenModeDisplayEffectPreferenceControllerTest {
ArgumentCaptor captor = ArgumentCaptor.forClass(ZenMode.class);
verify(mBackend).updateMode(captor.capture());
- assertThat(captor.getValue().getRule().getDeviceEffects().shouldUseNightMode()).isFalse();
+ assertThat(captor.getValue().getDeviceEffects().shouldUseNightMode()).isFalse();
}
}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeDisplayLinkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeDisplayLinkPreferenceControllerTest.java
index c78883b0b68..3ccfb9f10dd 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeDisplayLinkPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeDisplayLinkPreferenceControllerTest.java
@@ -16,23 +16,17 @@
package com.android.settings.notification.modes;
-import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
-
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
-import android.app.AutomaticZenRule;
import android.app.Flags;
import android.content.Context;
-import android.net.Uri;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
-import android.service.notification.ZenPolicy;
import androidx.preference.Preference;
-import com.android.settingslib.notification.modes.ZenMode;
import com.android.settingslib.notification.modes.ZenModesBackend;
import org.junit.Before;
@@ -70,13 +64,7 @@ public final class ZenModeDisplayLinkPreferenceControllerTest {
@EnableFlags(Flags.FLAG_MODES_UI)
public void testHasSummary() {
Preference pref = mock(Preference.class);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder().allowAllSounds().build())
- .build(), true);
- mController.updateZenMode(pref, zenMode);
+ mController.updateZenMode(pref, TestModeBuilder.EXAMPLE);
verify(pref).setSummary(any());
}
}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeExitAtAlarmPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeExitAtAlarmPreferenceControllerTest.java
index f95fc85ec5f..03c75fb12c1 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeExitAtAlarmPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeExitAtAlarmPreferenceControllerTest.java
@@ -21,7 +21,6 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
-import android.app.AutomaticZenRule;
import android.content.Context;
import android.service.notification.ZenModeConfig;
@@ -68,10 +67,9 @@ public class ZenModeExitAtAlarmPreferenceControllerTest {
scheduleInfo.endHour = 2;
scheduleInfo.exitAtAlarm = false;
- ZenMode mode = new ZenMode("id",
- new AutomaticZenRule.Builder("name",
- ZenModeConfig.toScheduleConditionId(scheduleInfo)).build(),
- true); // is active
+ ZenMode mode = new TestModeBuilder()
+ .setConditionId(ZenModeConfig.toScheduleConditionId(scheduleInfo))
+ .build();
// need to call updateZenMode for the first call
mPrefController.updateZenMode(preference, mode);
@@ -97,10 +95,9 @@ public class ZenModeExitAtAlarmPreferenceControllerTest {
scheduleInfo.endHour = 2;
scheduleInfo.exitAtAlarm = true;
- ZenMode mode = new ZenMode("id",
- new AutomaticZenRule.Builder("name",
- ZenModeConfig.toScheduleConditionId(scheduleInfo)).build(),
- true); // is active
+ ZenMode mode = new TestModeBuilder()
+ .setConditionId(ZenModeConfig.toScheduleConditionId(scheduleInfo))
+ .build();
mPrefController.updateZenMode(preference, mode);
// turn off exit at alarm
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeIconPickerListPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeIconPickerListPreferenceControllerTest.java
index 31324604bd0..5db7e925eef 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeIconPickerListPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeIconPickerListPreferenceControllerTest.java
@@ -23,9 +23,7 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
-import android.app.AutomaticZenRule;
import android.content.Context;
-import android.net.Uri;
import androidx.annotation.NonNull;
import androidx.preference.PreferenceScreen;
@@ -49,10 +47,7 @@ import org.robolectric.RuntimeEnvironment;
@RunWith(RobolectricTestRunner.class)
public class ZenModeIconPickerListPreferenceControllerTest {
- private static final ZenMode ZEN_MODE = new ZenMode(
- "mode_id",
- new AutomaticZenRule.Builder("mode name", Uri.parse("mode")).build(),
- /* isActive= */ false);
+ private static final ZenMode ZEN_MODE = TestModeBuilder.EXAMPLE;
private ZenModesBackend mBackend;
private ZenModeIconPickerListPreferenceController mController;
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeMessagesLinkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeMessagesLinkPreferenceControllerTest.java
index 6d70ec542b7..288359aeb57 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeMessagesLinkPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeMessagesLinkPreferenceControllerTest.java
@@ -16,23 +16,17 @@
package com.android.settings.notification.modes;
-import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
-
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
-import android.app.AutomaticZenRule;
import android.app.Flags;
import android.content.Context;
-import android.net.Uri;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
-import android.service.notification.ZenPolicy;
import androidx.preference.Preference;
-import com.android.settingslib.notification.modes.ZenMode;
import com.android.settingslib.notification.modes.ZenModesBackend;
import org.junit.Before;
@@ -70,13 +64,7 @@ public final class ZenModeMessagesLinkPreferenceControllerTest {
@EnableFlags(Flags.FLAG_MODES_UI)
public void testHasSummary() {
Preference pref = mock(Preference.class);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder().allowAllSounds().build())
- .build(), true);
- mController.updateZenMode(pref, zenMode);
+ mController.updateZenMode(pref, TestModeBuilder.EXAMPLE);
verify(pref).setSummary(any());
}
}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeNotifVisLinkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeNotifVisLinkPreferenceControllerTest.java
index bf5171a8726..ee7340bd526 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeNotifVisLinkPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeNotifVisLinkPreferenceControllerTest.java
@@ -16,23 +16,17 @@
package com.android.settings.notification.modes;
-import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
-
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
-import android.app.AutomaticZenRule;
import android.app.Flags;
import android.content.Context;
-import android.net.Uri;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
-import android.service.notification.ZenPolicy;
import androidx.preference.Preference;
-import com.android.settingslib.notification.modes.ZenMode;
import com.android.settingslib.notification.modes.ZenModesBackend;
import org.junit.Before;
@@ -70,13 +64,7 @@ public final class ZenModeNotifVisLinkPreferenceControllerTest {
@EnableFlags(Flags.FLAG_MODES_UI)
public void testHasSummary() {
Preference pref = mock(Preference.class);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder().allowAllSounds().build())
- .build(), true);
- mController.updateZenMode(pref, zenMode);
+ mController.updateZenMode(pref, TestModeBuilder.EXAMPLE);
verify(pref).setSummary(any());
}
}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeNotifVisPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeNotifVisPreferenceControllerTest.java
index 137806771da..b23d946058f 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeNotifVisPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeNotifVisPreferenceControllerTest.java
@@ -16,7 +16,6 @@
package com.android.settings.notification.modes;
-import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
import static android.service.notification.ZenPolicy.STATE_ALLOW;
import static android.service.notification.ZenPolicy.STATE_DISALLOW;
import static android.service.notification.ZenPolicy.VISUAL_EFFECT_LIGHTS;
@@ -32,11 +31,9 @@ import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
-import android.app.AutomaticZenRule;
import android.app.Flags;
import android.content.Context;
import android.content.res.Resources;
-import android.net.Uri;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
import android.service.notification.ZenPolicy;
@@ -99,15 +96,12 @@ public final class ZenModeNotifVisPreferenceControllerTest {
@Test
public void updateState_notChecked() {
TwoStatePreference preference = mock(TwoStatePreference.class);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder()
- .allowAlarms(true)
- .showAllVisualEffects()
- .build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setZenPolicy(new ZenPolicy.Builder()
+ .allowAlarms(true)
+ .showAllVisualEffects()
+ .build())
+ .build();
mController.updateZenMode(preference, zenMode);
@@ -118,15 +112,12 @@ public final class ZenModeNotifVisPreferenceControllerTest {
@Test
public void updateState_checked() {
TwoStatePreference preference = mock(TwoStatePreference.class);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder()
- .allowAlarms(true)
- .showVisualEffect(VISUAL_EFFECT_PEEK, false)
- .build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setZenPolicy(new ZenPolicy.Builder()
+ .allowAlarms(true)
+ .showVisualEffect(VISUAL_EFFECT_PEEK, false)
+ .build())
+ .build();
mController.updateZenMode(preference, zenMode);
@@ -141,16 +132,13 @@ public final class ZenModeNotifVisPreferenceControllerTest {
"zen_effect_status", VISUAL_EFFECT_STATUS_BAR,
new int[]{VISUAL_EFFECT_NOTIFICATION_LIST}, mBackend);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder()
- .allowAlarms(true)
- .showVisualEffect(VISUAL_EFFECT_NOTIFICATION_LIST, false)
- .showVisualEffect(VISUAL_EFFECT_STATUS_BAR, true)
- .build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setZenPolicy(new ZenPolicy.Builder()
+ .allowAlarms(true)
+ .showVisualEffect(VISUAL_EFFECT_NOTIFICATION_LIST, false)
+ .showVisualEffect(VISUAL_EFFECT_STATUS_BAR, true)
+ .build())
+ .build();
mController.updateZenMode(preference, zenMode);
@@ -171,15 +159,12 @@ public final class ZenModeNotifVisPreferenceControllerTest {
"zen_effect_status", VISUAL_EFFECT_STATUS_BAR,
new int[]{VISUAL_EFFECT_NOTIFICATION_LIST}, mBackend);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder()
- .allowAlarms(true)
- .showAllVisualEffects()
- .build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setZenPolicy(new ZenPolicy.Builder()
+ .allowAlarms(true)
+ .showAllVisualEffects()
+ .build())
+ .build();
mController.updateZenMode(preference, zenMode);
@@ -191,15 +176,12 @@ public final class ZenModeNotifVisPreferenceControllerTest {
@Test
public void onPreferenceChanged_checkedFalse() {
TwoStatePreference preference = mock(TwoStatePreference.class);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder()
- .allowAlarms(true)
- .hideAllVisualEffects()
- .build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setZenPolicy(new ZenPolicy.Builder()
+ .allowAlarms(true)
+ .hideAllVisualEffects()
+ .build())
+ .build();
mController.updateZenMode(preference, zenMode);
@@ -216,15 +198,12 @@ public final class ZenModeNotifVisPreferenceControllerTest {
@Test
public void onPreferenceChanged_checkedTrue() {
TwoStatePreference preference = mock(TwoStatePreference.class);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder()
- .allowAlarms(true)
- .showAllVisualEffects()
- .build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setZenPolicy(new ZenPolicy.Builder()
+ .allowAlarms(true)
+ .showAllVisualEffects()
+ .build())
+ .build();
mController.updateZenMode(preference, zenMode);
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeOtherLinkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeOtherLinkPreferenceControllerTest.java
index f272b80d427..c4d03fe3360 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeOtherLinkPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeOtherLinkPreferenceControllerTest.java
@@ -16,23 +16,17 @@
package com.android.settings.notification.modes;
-import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
-
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
-import android.app.AutomaticZenRule;
import android.app.Flags;
import android.content.Context;
-import android.net.Uri;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
-import android.service.notification.ZenPolicy;
import androidx.preference.Preference;
-import com.android.settingslib.notification.modes.ZenMode;
import com.android.settingslib.notification.modes.ZenModesBackend;
import org.junit.Before;
@@ -71,13 +65,7 @@ public final class ZenModeOtherLinkPreferenceControllerTest {
@EnableFlags(Flags.FLAG_MODES_UI)
public void testHasSummary() {
Preference pref = mock(Preference.class);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder().allowAllSounds().build())
- .build(), true);
- mController.updateZenMode(pref, zenMode);
+ mController.updateZenMode(pref, TestModeBuilder.EXAMPLE);
verify(pref).setSummary(any());
}
}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeOtherPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeOtherPreferenceControllerTest.java
index 66ac7fa1a41..c69a8a0ebd6 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeOtherPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeOtherPreferenceControllerTest.java
@@ -16,7 +16,6 @@
package com.android.settings.notification.modes;
-import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
import static android.service.notification.ZenPolicy.STATE_ALLOW;
import static android.service.notification.ZenPolicy.STATE_UNSET;
@@ -25,10 +24,8 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
-import android.app.AutomaticZenRule;
import android.app.Flags;
import android.content.Context;
-import android.net.Uri;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
import android.service.notification.ZenPolicy;
@@ -68,12 +65,9 @@ public final class ZenModeOtherPreferenceControllerTest {
@Test
public void testUpdateState_alarms() {
TwoStatePreference preference = mock(TwoStatePreference.class);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder().allowAlarms(true).build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setZenPolicy(new ZenPolicy.Builder().allowAlarms(true).build())
+ .build();
ZenModeOtherPreferenceController controller =
new ZenModeOtherPreferenceController(mContext, "modes_category_alarm", mBackend);
@@ -86,12 +80,9 @@ public final class ZenModeOtherPreferenceControllerTest {
@Test
public void testOnPreferenceChange_alarms() {
TwoStatePreference preference = mock(TwoStatePreference.class);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder().allowAlarms(false).build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setZenPolicy(new ZenPolicy.Builder().allowAlarms(false).build())
+ .build();
ZenModeOtherPreferenceController controller =
new ZenModeOtherPreferenceController(mContext, "modes_category_alarm", mBackend);
@@ -111,12 +102,9 @@ public final class ZenModeOtherPreferenceControllerTest {
@Test
public void testUpdateState_media() {
TwoStatePreference preference = mock(TwoStatePreference.class);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder().allowMedia(true).build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setZenPolicy(new ZenPolicy.Builder().allowMedia(true).build())
+ .build();
ZenModeOtherPreferenceController controller =
new ZenModeOtherPreferenceController(mContext, "modes_category_media", mBackend);
@@ -129,12 +117,9 @@ public final class ZenModeOtherPreferenceControllerTest {
@Test
public void testOnPreferenceChange_media() {
TwoStatePreference preference = mock(TwoStatePreference.class);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder().allowMedia(false).build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setZenPolicy(new ZenPolicy.Builder().allowMedia(false).build())
+ .build();
ZenModeOtherPreferenceController controller =
new ZenModeOtherPreferenceController(mContext, "modes_category_media", mBackend);
@@ -154,12 +139,9 @@ public final class ZenModeOtherPreferenceControllerTest {
@Test
public void testUpdateState_system() {
TwoStatePreference preference = mock(TwoStatePreference.class);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder().allowSystem(true).build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setZenPolicy(new ZenPolicy.Builder().allowSystem(true).build())
+ .build();
ZenModeOtherPreferenceController controller =
new ZenModeOtherPreferenceController(mContext, "modes_category_system", mBackend);
@@ -172,12 +154,9 @@ public final class ZenModeOtherPreferenceControllerTest {
@Test
public void testOnPreferenceChange_system() {
TwoStatePreference preference = mock(TwoStatePreference.class);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder().allowSystem(false).build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setZenPolicy(new ZenPolicy.Builder().allowSystem(false).build())
+ .build();
ZenModeOtherPreferenceController controller =
new ZenModeOtherPreferenceController(mContext, "modes_category_system", mBackend);
@@ -197,12 +176,9 @@ public final class ZenModeOtherPreferenceControllerTest {
@Test
public void testUpdateState_reminders() {
TwoStatePreference preference = mock(TwoStatePreference.class);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder().allowReminders(true).build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setZenPolicy(new ZenPolicy.Builder().allowReminders(true).build())
+ .build();
ZenModeOtherPreferenceController controller =
new ZenModeOtherPreferenceController(mContext, "modes_category_reminders",
@@ -216,12 +192,9 @@ public final class ZenModeOtherPreferenceControllerTest {
@Test
public void testOnPreferenceChange_reminders() {
TwoStatePreference preference = mock(TwoStatePreference.class);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder().allowReminders(false).build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setZenPolicy(new ZenPolicy.Builder().allowReminders(false).build())
+ .build();
ZenModeOtherPreferenceController controller =
new ZenModeOtherPreferenceController(mContext, "modes_category_reminders",
@@ -242,12 +215,9 @@ public final class ZenModeOtherPreferenceControllerTest {
@Test
public void testUpdateState_events() {
TwoStatePreference preference = mock(TwoStatePreference.class);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder().allowEvents(true).build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setZenPolicy(new ZenPolicy.Builder().allowEvents(true).build())
+ .build();
ZenModeOtherPreferenceController controller =
new ZenModeOtherPreferenceController(mContext, "modes_category_events", mBackend);
@@ -260,12 +230,9 @@ public final class ZenModeOtherPreferenceControllerTest {
@Test
public void testOnPreferenceChange_events() {
TwoStatePreference preference = mock(TwoStatePreference.class);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder().allowEvents(false).build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setZenPolicy(new ZenPolicy.Builder().allowEvents(false).build())
+ .build();
ZenModeOtherPreferenceController controller =
new ZenModeOtherPreferenceController(mContext, "modes_category_events", mBackend);
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModePeopleLinkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModePeopleLinkPreferenceControllerTest.java
index ceb8dbc7e88..6591b724c58 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModePeopleLinkPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModePeopleLinkPreferenceControllerTest.java
@@ -16,23 +16,17 @@
package com.android.settings.notification.modes;
-import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
-
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
-import android.app.AutomaticZenRule;
import android.app.Flags;
import android.content.Context;
-import android.net.Uri;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
-import android.service.notification.ZenPolicy;
import androidx.preference.Preference;
-import com.android.settingslib.notification.modes.ZenMode;
import com.android.settingslib.notification.modes.ZenModesBackend;
import org.junit.Before;
@@ -72,13 +66,7 @@ public final class ZenModePeopleLinkPreferenceControllerTest {
@EnableFlags(Flags.FLAG_MODES_UI)
public void testHasSummary() {
Preference pref = mock(Preference.class);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder().allowAllSounds().build())
- .build(), true);
- mController.updateZenMode(pref, zenMode);
+ mController.updateZenMode(pref, TestModeBuilder.EXAMPLE);
verify(pref).setSummary(any());
}
}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModePrioritySendersPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModePrioritySendersPreferenceControllerTest.java
index 8317a143ead..04df27ec229 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModePrioritySendersPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModePrioritySendersPreferenceControllerTest.java
@@ -16,7 +16,6 @@
package com.android.settings.notification.modes;
-import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
import static android.service.notification.ZenPolicy.CONVERSATION_SENDERS_ANYONE;
import static android.service.notification.ZenPolicy.CONVERSATION_SENDERS_IMPORTANT;
import static android.service.notification.ZenPolicy.CONVERSATION_SENDERS_NONE;
@@ -40,11 +39,9 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
-import android.app.AutomaticZenRule;
import android.app.Flags;
import android.content.Context;
import android.database.Cursor;
-import android.net.Uri;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
import android.service.notification.ZenPolicy;
@@ -441,20 +438,17 @@ public final class ZenModePrioritySendersPreferenceControllerTest {
@Test
public void testPreferenceClick_passesCorrectCheckedState_startingUnchecked_messages() {
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder()
- .disallowAllSounds()
- .build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setZenPolicy(new ZenPolicy.Builder()
+ .disallowAllSounds()
+ .build())
+ .build();
mMessagesController.displayPreference(mPreferenceScreen);
mMessagesController.updateZenMode(mMessagesPrefCategory, zenMode);
assertThat(((SelectorWithWidgetPreference) mMessagesPrefCategory.findPreference(KEY_NONE))
- .isChecked());
+ .isChecked()).isTrue();
mMessagesPrefCategory.findPreference(KEY_STARRED).performClick();
@@ -466,14 +460,11 @@ public final class ZenModePrioritySendersPreferenceControllerTest {
@Test
public void testPreferenceClick_passesCorrectCheckedState_startingChecked_messages() {
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder()
- .allowAllSounds()
- .build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setZenPolicy(new ZenPolicy.Builder()
+ .allowAllSounds()
+ .build())
+ .build();
mMessagesController.displayPreference(mPreferenceScreen);
mMessagesController.updateZenMode(mMessagesPrefCategory, zenMode);
@@ -492,14 +483,11 @@ public final class ZenModePrioritySendersPreferenceControllerTest {
@Test
public void testPreferenceClick_passesCorrectCheckedState_startingUnchecked_calls() {
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder()
- .disallowAllSounds()
- .build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setZenPolicy(new ZenPolicy.Builder()
+ .disallowAllSounds()
+ .build())
+ .build();
mCallsController.displayPreference(mPreferenceScreen);
mCallsController.updateZenMode(mCallsPrefCategory, zenMode);
@@ -517,14 +505,11 @@ public final class ZenModePrioritySendersPreferenceControllerTest {
@Test
public void testPreferenceClick_passesCorrectCheckedState_startingChecked_calls() {
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder()
- .disallowAllSounds()
- .build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setZenPolicy(new ZenPolicy.Builder()
+ .disallowAllSounds()
+ .build())
+ .build();
mCallsController.displayPreference(mPreferenceScreen);
mCallsController.updateZenMode(mCallsPrefCategory, zenMode);
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeRepeatCallersPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeRepeatCallersPreferenceControllerTest.java
index c86b57bbeba..c1b99e5ee19 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeRepeatCallersPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeRepeatCallersPreferenceControllerTest.java
@@ -16,7 +16,6 @@
package com.android.settings.notification.modes;
-import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
import static android.service.notification.ZenPolicy.PEOPLE_TYPE_ANYONE;
import static android.service.notification.ZenPolicy.PEOPLE_TYPE_STARRED;
import static android.service.notification.ZenPolicy.STATE_DISALLOW;
@@ -27,10 +26,8 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
-import android.app.AutomaticZenRule;
import android.app.Flags;
import android.content.Context;
-import android.net.Uri;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
import android.service.notification.ZenPolicy;
@@ -70,14 +67,11 @@ public final class ZenModeRepeatCallersPreferenceControllerTest {
@Test
public void testUpdateState_allCalls() {
TwoStatePreference preference = mock(TwoStatePreference.class);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder()
- .allowCalls(PEOPLE_TYPE_ANYONE)
- .build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setZenPolicy(new ZenPolicy.Builder()
+ .allowCalls(PEOPLE_TYPE_ANYONE)
+ .build())
+ .build();
ZenModeRepeatCallersPreferenceController controller =
new ZenModeRepeatCallersPreferenceController(mContext, "repeat", mBackend, 1);
@@ -91,15 +85,12 @@ public final class ZenModeRepeatCallersPreferenceControllerTest {
@Test
public void testUpdateState_someCalls() {
TwoStatePreference preference = mock(TwoStatePreference.class);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder()
- .allowCalls(PEOPLE_TYPE_STARRED)
- .allowRepeatCallers(true)
- .build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setZenPolicy(new ZenPolicy.Builder()
+ .allowCalls(PEOPLE_TYPE_STARRED)
+ .allowRepeatCallers(true)
+ .build())
+ .build();
ZenModeRepeatCallersPreferenceController controller =
new ZenModeRepeatCallersPreferenceController(mContext, "repeat", mBackend, 1);
@@ -113,12 +104,9 @@ public final class ZenModeRepeatCallersPreferenceControllerTest {
@Test
public void testOnPreferenceChange() {
TwoStatePreference preference = mock(TwoStatePreference.class);
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder().allowRepeatCallers(true).build())
- .build(), true);
+ ZenMode zenMode = new TestModeBuilder()
+ .setZenPolicy(new ZenPolicy.Builder().allowRepeatCallers(true).build())
+ .build();
ZenModeRepeatCallersPreferenceController controller =
new ZenModeRepeatCallersPreferenceController(mContext, "repeat", mBackend, 1);
@@ -136,4 +124,4 @@ public final class ZenModeRepeatCallersPreferenceControllerTest {
assertThat(captor.getValue().getPolicy().getPriorityCallSenders())
.isEqualTo(STATE_UNSET);
}
-}
\ No newline at end of file
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeSetCalendarPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeSetCalendarPreferenceControllerTest.java
index 9e1d94af09e..cc6a49791cd 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeSetCalendarPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeSetCalendarPreferenceControllerTest.java
@@ -28,10 +28,8 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.when;
-import android.app.AutomaticZenRule;
import android.app.Flags;
import android.content.Context;
-import android.net.Uri;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
import android.service.notification.SystemZenRules;
@@ -88,11 +86,9 @@ public class ZenModeSetCalendarPreferenceControllerTest {
@Test
@EnableFlags({Flags.FLAG_MODES_API, Flags.FLAG_MODES_UI})
public void updateEventMode_updatesConditionAndTriggerDescription() {
- ZenMode mode = new ZenMode("id",
- new AutomaticZenRule.Builder("name", Uri.parse("condition"))
- .setPackage(SystemZenRules.PACKAGE_ANDROID)
- .build(),
- true); // is active
+ ZenMode mode = new TestModeBuilder()
+ .setPackage(SystemZenRules.PACKAGE_ANDROID)
+ .build();
// Explicitly update preference controller with mode info first, which will also call
// updateState()
@@ -118,10 +114,9 @@ public class ZenModeSetCalendarPreferenceControllerTest {
eventInfo.calName = "Definitely A Calendar";
eventInfo.reply = REPLY_YES;
- ZenMode mode = new ZenMode("id",
- new AutomaticZenRule.Builder("name",
- ZenModeConfig.toEventConditionId(eventInfo)).build(),
- true); // is active
+ ZenMode mode = new TestModeBuilder()
+ .setConditionId(ZenModeConfig.toEventConditionId(eventInfo))
+ .build();
mPrefController.updateZenMode(mPrefCategory, mode);
// We should see mCalendar, mReply have their values set
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeSetSchedulePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeSetSchedulePreferenceControllerTest.java
index 519bb433ffe..7dbc80262de 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeSetSchedulePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeSetSchedulePreferenceControllerTest.java
@@ -23,10 +23,8 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
-import android.app.AutomaticZenRule;
import android.app.Flags;
import android.content.Context;
-import android.net.Uri;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
import android.service.notification.SystemZenRules;
@@ -83,11 +81,9 @@ public class ZenModeSetSchedulePreferenceControllerTest {
@Test
@EnableFlags({Flags.FLAG_MODES_API, Flags.FLAG_MODES_UI})
public void updateScheduleRule_updatesConditionAndTriggerDescription() {
- ZenMode mode = new ZenMode("id",
- new AutomaticZenRule.Builder("name", Uri.parse("condition"))
- .setPackage(SystemZenRules.PACKAGE_ANDROID)
- .build(),
- true); // is active
+ ZenMode mode = new TestModeBuilder()
+ .setPackage(SystemZenRules.PACKAGE_ANDROID)
+ .build();
ZenModeConfig.ScheduleInfo scheduleInfo = new ZenModeConfig.ScheduleInfo();
scheduleInfo.days = new int[] { Calendar.MONDAY };
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeSetTriggerLinkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeSetTriggerLinkPreferenceControllerTest.java
index 7782a9b2cf2..31959e5d699 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeSetTriggerLinkPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeSetTriggerLinkPreferenceControllerTest.java
@@ -37,7 +37,6 @@ import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
import android.service.notification.SystemZenRules;
import android.service.notification.ZenModeConfig;
-import android.service.notification.ZenPolicy;
import androidx.preference.PreferenceCategory;
import androidx.test.core.app.ApplicationProvider;
@@ -102,26 +101,13 @@ public class ZenModeSetTriggerLinkPreferenceControllerTest {
assertThat(mPrefController.isAvailable()).isFalse();
// should be available for other modes
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder().allowAlarms(true).build())
- .setEnabled(false)
- .build(), false);
- mPrefController.updateZenMode(mPrefCategory, zenMode);
+ mPrefController.updateZenMode(mPrefCategory, TestModeBuilder.EXAMPLE);
assertThat(mPrefController.isAvailable()).isTrue();
}
@Test
public void testUpdateState() {
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder().allowAlarms(true).build())
- .setEnabled(false)
- .build(), false);
+ ZenMode zenMode = new TestModeBuilder().setEnabled(false).build();
// Update preference controller with a zen mode that is not enabled
mPrefController.updateZenMode(mPrefCategory, zenMode);
@@ -135,13 +121,7 @@ public class ZenModeSetTriggerLinkPreferenceControllerTest {
@Test
public void testOnPreferenceChange() {
- ZenMode zenMode = new ZenMode("id",
- new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
- .setType(AutomaticZenRule.TYPE_DRIVING)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder().allowAlarms(true).build())
- .setEnabled(false)
- .build(), false);
+ ZenMode zenMode = new TestModeBuilder().setEnabled(false).build();
// start with disabled rule
mPrefController.updateZenMode(mPrefCategory, zenMode);
@@ -160,13 +140,12 @@ public class ZenModeSetTriggerLinkPreferenceControllerTest {
ZenModeConfig.EventInfo eventInfo = new ZenModeConfig.EventInfo();
eventInfo.calendarId = 1L;
eventInfo.calName = "My events";
- ZenMode mode = new ZenMode("id", new AutomaticZenRule.Builder("name",
- ZenModeConfig.toEventConditionId(eventInfo))
+ ZenMode mode = new TestModeBuilder()
.setPackage(SystemZenRules.PACKAGE_ANDROID)
+ .setConditionId(ZenModeConfig.toEventConditionId(eventInfo))
.setType(TYPE_SCHEDULE_CALENDAR)
.setTriggerDescription("My events")
- .build(),
- true); // is active
+ .build();
mPrefController.updateZenMode(mPrefCategory, mode);
assertThat(mPreference.getTitle()).isNotNull();
@@ -188,13 +167,12 @@ public class ZenModeSetTriggerLinkPreferenceControllerTest {
scheduleInfo.days = new int[] { Calendar.MONDAY, Calendar.TUESDAY, Calendar.THURSDAY };
scheduleInfo.startHour = 1;
scheduleInfo.endHour = 15;
- ZenMode mode = new ZenMode("id", new AutomaticZenRule.Builder("name",
- ZenModeConfig.toScheduleConditionId(scheduleInfo))
+ ZenMode mode = new TestModeBuilder()
+ .setConditionId(ZenModeConfig.toScheduleConditionId(scheduleInfo))
.setPackage(SystemZenRules.PACKAGE_ANDROID)
.setType(TYPE_SCHEDULE_TIME)
.setTriggerDescription("some schedule")
- .build(),
- true); // is active
+ .build();
mPrefController.updateZenMode(mPrefCategory, mode);
assertThat(mPreference.getTitle()).isNotNull();
@@ -212,13 +190,12 @@ public class ZenModeSetTriggerLinkPreferenceControllerTest {
@Test
public void testRuleLink_manual() {
- ZenMode mode = new ZenMode("id", new AutomaticZenRule.Builder("name",
- ZenModeConfig.toCustomManualConditionId())
+ ZenMode mode = new TestModeBuilder()
+ .setConditionId(ZenModeConfig.toCustomManualConditionId())
.setPackage(SystemZenRules.PACKAGE_ANDROID)
.setType(TYPE_OTHER)
.setTriggerDescription("Will not be shown")
- .build(),
- true); // is active
+ .build();
mPrefController.updateZenMode(mPrefCategory, mode);
assertThat(mPreference.getTitle()).isNotNull();
@@ -234,13 +211,12 @@ public class ZenModeSetTriggerLinkPreferenceControllerTest {
@Test
public void onScheduleChosen_updatesMode() {
- ZenMode originalMode = new ZenMode("id",
- new AutomaticZenRule.Builder("name", ZenModeConfig.toCustomManualConditionId())
- .setPackage(SystemZenRules.PACKAGE_ANDROID)
- .setType(TYPE_OTHER)
- .setTriggerDescription("")
- .build(),
- false);
+ ZenMode originalMode = new TestModeBuilder()
+ .setConditionId(ZenModeConfig.toCustomManualConditionId())
+ .setPackage(SystemZenRules.PACKAGE_ANDROID)
+ .setType(TYPE_OTHER)
+ .setTriggerDescription("")
+ .build();
mPrefController.updateZenMode(mPrefCategory, originalMode);
ZenModeConfig.ScheduleInfo scheduleInfo = new ZenModeConfig.ScheduleInfo();
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModesListItemPreferenceTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModesListItemPreferenceTest.java
new file mode 100644
index 00000000000..495a24c8c34
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModesListItemPreferenceTest.java
@@ -0,0 +1,126 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification.modes;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.Context;
+import android.service.notification.ZenModeConfig;
+
+import com.android.settingslib.notification.modes.ZenMode;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.shadows.ShadowLooper;
+
+@RunWith(RobolectricTestRunner.class)
+public class ZenModesListItemPreferenceTest {
+
+ private Context mContext;
+
+ @Before
+ public void setup() {
+ MockitoAnnotations.initMocks(this);
+ mContext = RuntimeEnvironment.application;
+ }
+
+ @Test
+ public void constructor_setsMode() {
+ ZenModesListItemPreference preference = new ZenModesListItemPreference(mContext,
+ TestModeBuilder.EXAMPLE);
+
+ assertThat(preference.getKey()).isEqualTo(TestModeBuilder.EXAMPLE.getId());
+ assertThat(preference.getZenMode()).isEqualTo(TestModeBuilder.EXAMPLE);
+ }
+
+ @Test
+ public void setZenMode_modeEnabled() {
+ ZenMode mode = new TestModeBuilder()
+ .setName("Enabled mode")
+ .setTriggerDescription("When the thrush knocks")
+ .setEnabled(true)
+ .build();
+
+ ZenModesListItemPreference preference = new ZenModesListItemPreference(mContext, mode);
+ ShadowLooper.idleMainLooper(); // To load icon.
+
+ assertThat(preference.getTitle()).isEqualTo("Enabled mode");
+ assertThat(preference.getSummary()).isEqualTo("When the thrush knocks");
+ assertThat(preference.getIcon()).isNotNull();
+ }
+
+ @Test
+ public void setZenMode_modeActive() {
+ ZenMode mode = new TestModeBuilder()
+ .setName("Active mode")
+ .setTriggerDescription("When Birnam forest comes to Dunsinane")
+ .setEnabled(true)
+ .setActive(true)
+ .build();
+
+ ZenModesListItemPreference preference = new ZenModesListItemPreference(mContext, mode);
+ ShadowLooper.idleMainLooper();
+
+ assertThat(preference.getTitle()).isEqualTo("Active mode");
+ assertThat(preference.getSummary()).isEqualTo("ON • When Birnam forest comes to Dunsinane");
+ assertThat(preference.getIcon()).isNotNull();
+ }
+
+ @Test
+ public void setZenMode_modeDisabledByApp() {
+ ZenModeConfig.ZenRule configRule = new ZenModeConfig.ZenRule();
+ configRule.enabled = false;
+ configRule.disabledOrigin = ZenModeConfig.UPDATE_ORIGIN_APP;
+ ZenMode mode = new TestModeBuilder()
+ .setName("Mode disabled by app")
+ .setTriggerDescription("When the cat's away")
+ .setEnabled(false)
+ .setConfigZenRule(configRule)
+ .build();
+
+ ZenModesListItemPreference preference = new ZenModesListItemPreference(mContext, mode);
+ ShadowLooper.idleMainLooper();
+
+ assertThat(preference.getTitle()).isEqualTo("Mode disabled by app");
+ assertThat(preference.getSummary()).isEqualTo("Tap to set up");
+ assertThat(preference.getIcon()).isNotNull();
+ }
+
+ @Test
+ public void setZenMode_modeDisabledByUser() {
+ ZenModeConfig.ZenRule configRule = new ZenModeConfig.ZenRule();
+ configRule.enabled = false;
+ configRule.disabledOrigin = ZenModeConfig.UPDATE_ORIGIN_USER;
+ ZenMode mode = new TestModeBuilder()
+ .setName("Mode disabled by user")
+ .setTriggerDescription("When the Levee Breaks")
+ .setEnabled(false)
+ .setConfigZenRule(configRule)
+ .build();
+
+ ZenModesListItemPreference preference = new ZenModesListItemPreference(mContext, mode);
+ ShadowLooper.idleMainLooper();
+
+ assertThat(preference.getTitle()).isEqualTo("Mode disabled by user");
+ assertThat(preference.getSummary()).isEqualTo("Paused");
+ assertThat(preference.getIcon()).isNotNull();
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModesListPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModesListPreferenceControllerTest.java
index 04d5f0ae22c..f2624acd9e9 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModesListPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModesListPreferenceControllerTest.java
@@ -60,14 +60,15 @@ import java.util.List;
public class ZenModesListPreferenceControllerTest {
private static final String TEST_MODE_ID = "test_mode";
private static final String TEST_MODE_NAME = "Test Mode";
- private static final ZenMode TEST_MODE = new ZenMode(
- TEST_MODE_ID,
- new AutomaticZenRule.Builder(TEST_MODE_NAME, Uri.parse("test_uri"))
+
+ private static final ZenMode TEST_MODE = new TestModeBuilder()
+ .setId(TEST_MODE_ID)
+ .setAzr(new AutomaticZenRule.Builder(TEST_MODE_NAME, Uri.parse("test_uri"))
.setType(AutomaticZenRule.TYPE_BEDTIME)
.setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
.setZenPolicy(new ZenPolicy.Builder().allowAllSounds().build())
- .build(),
- false);
+ .build())
+ .build();
private static final ZenMode TEST_MANUAL_MODE = ZenMode.manualDndMode(
new AutomaticZenRule.Builder("Do Not Disturb", Uri.EMPTY)
@@ -112,14 +113,9 @@ public class ZenModesListPreferenceControllerTest {
assertThat(mPreference.getPreferenceCount()).isEqualTo(5);
List itemPreferences = getModeListItems(mPreference);
- assertThat(itemPreferences.stream().map(pref -> pref.mZenMode).toList())
+ assertThat(itemPreferences.stream().map(ZenModesListItemPreference::getZenMode).toList())
.containsExactlyElementsIn(modes)
.inOrder();
-
- for (int i = 0; i < modes.size(); i++) {
- assertThat(((ZenModesListItemPreference) (mPreference.getPreference(i))).mZenMode)
- .isEqualTo(modes.get(i));
- }
}
@Test
@@ -140,7 +136,7 @@ public class ZenModesListPreferenceControllerTest {
mPrefController.updateState(mPreference);
List newPreferences = getModeListItems(mPreference);
- assertThat(newPreferences.stream().map(pref -> pref.mZenMode).toList())
+ assertThat(newPreferences.stream().map(ZenModesListItemPreference::getZenMode).toList())
.containsExactlyElementsIn(updatedModes)
.inOrder();
@@ -196,7 +192,7 @@ public class ZenModesListPreferenceControllerTest {
assertThat(newData).hasSize(1);
SearchIndexableRaw newItem = newData.get(0);
- assertThat(newItem.key).isEqualTo(ZenMode.MANUAL_DND_MODE_ID);
+ assertThat(newItem.key).isEqualTo(TEST_MANUAL_MODE.getId());
assertThat(newItem.title).isEqualTo("Do Not Disturb"); // set above
}
@@ -211,7 +207,7 @@ public class ZenModesListPreferenceControllerTest {
// Should keep the order presented by getModes()
SearchIndexableRaw item0 = data.get(0);
- assertThat(item0.key).isEqualTo(ZenMode.MANUAL_DND_MODE_ID);
+ assertThat(item0.key).isEqualTo(TEST_MANUAL_MODE.getId());
assertThat(item0.title).isEqualTo("Do Not Disturb"); // set above
SearchIndexableRaw item1 = data.get(1);
@@ -220,13 +216,7 @@ public class ZenModesListPreferenceControllerTest {
}
private static ZenMode newMode(String id) {
- return new ZenMode(
- id,
- new AutomaticZenRule.Builder("Mode " + id, Uri.parse("test_uri"))
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder().allowAllSounds().build())
- .build(),
- false);
+ return new TestModeBuilder().setId(id).setName("Mode " + id).build();
}
/**
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModesSummaryHelperTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModesSummaryHelperTest.java
index 2822e003ee7..62b5ee02ee6 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModesSummaryHelperTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModesSummaryHelperTest.java
@@ -16,7 +16,6 @@
package com.android.settings.notification.modes;
-import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
import static android.service.notification.ZenPolicy.CONVERSATION_SENDERS_ANYONE;
import static android.service.notification.ZenPolicy.PEOPLE_TYPE_ANYONE;
import static android.service.notification.ZenPolicy.PEOPLE_TYPE_CONTACTS;
@@ -25,9 +24,7 @@ import static android.service.notification.ZenPolicy.VISUAL_EFFECT_LIGHTS;
import static com.google.common.truth.Truth.assertThat;
-import android.app.AutomaticZenRule;
import android.content.Context;
-import android.net.Uri;
import android.service.notification.ZenDeviceEffects;
import android.service.notification.ZenPolicy;
@@ -59,50 +56,38 @@ public class ZenModesSummaryHelperTest {
@Test
public void getPeopleSummary_noOne() {
- AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
- .setType(AutomaticZenRule.TYPE_BEDTIME)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
+ ZenMode zenMode = new TestModeBuilder()
.setZenPolicy(new ZenPolicy.Builder().disallowAllSounds().build())
.build();
- ZenMode zenMode = new ZenMode("id", rule, true);
assertThat(mSummaryHelper.getPeopleSummary(zenMode)).isEqualTo("No one can interrupt");
}
@Test
public void getPeopleSummary_some() {
- AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
- .setType(AutomaticZenRule.TYPE_BEDTIME)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
+ ZenMode zenMode = new TestModeBuilder()
.setZenPolicy(new ZenPolicy.Builder().allowCalls(PEOPLE_TYPE_CONTACTS).build())
.build();
- ZenMode zenMode = new ZenMode("id", rule, true);
assertThat(mSummaryHelper.getPeopleSummary(zenMode)).isEqualTo("Some people can interrupt");
}
@Test
public void getPeopleSummary_all() {
- AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
- .setType(AutomaticZenRule.TYPE_BEDTIME)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
+ ZenMode zenMode = new TestModeBuilder()
.setZenPolicy(new ZenPolicy.Builder().allowCalls(PEOPLE_TYPE_ANYONE).
allowConversations(CONVERSATION_SENDERS_ANYONE)
.allowMessages(PEOPLE_TYPE_ANYONE).build())
.build();
- ZenMode zenMode = new ZenMode("id", rule, true);
assertThat(mSummaryHelper.getPeopleSummary(zenMode)).isEqualTo("All people can interrupt");
}
@Test
public void getOtherSoundCategoriesSummary_single() {
- AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
- .setType(AutomaticZenRule.TYPE_BEDTIME)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
+ ZenMode zenMode = new TestModeBuilder()
.setZenPolicy(new ZenPolicy.Builder().allowAlarms(true).build())
.build();
- ZenMode zenMode = new ZenMode("id", rule, true);
assertThat(mSummaryHelper.getOtherSoundCategoriesSummary(zenMode)).isEqualTo(
"Alarms can interrupt");
@@ -110,12 +95,9 @@ public class ZenModesSummaryHelperTest {
@Test
public void getOtherSoundCategoriesSummary_duo() {
- AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
- .setType(AutomaticZenRule.TYPE_BEDTIME)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
+ ZenMode zenMode = new TestModeBuilder()
.setZenPolicy(new ZenPolicy.Builder().allowAlarms(true).allowMedia(true).build())
.build();
- ZenMode zenMode = new ZenMode("id", rule, true);
assertThat(mSummaryHelper.getOtherSoundCategoriesSummary(zenMode)).isEqualTo(
"Alarms and media can interrupt");
@@ -123,16 +105,13 @@ public class ZenModesSummaryHelperTest {
@Test
public void getOtherSoundCategoriesSummary_trio() {
- AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
- .setType(AutomaticZenRule.TYPE_BEDTIME)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
+ ZenMode zenMode = new TestModeBuilder()
.setZenPolicy(new ZenPolicy.Builder()
.allowAlarms(true)
.allowMedia(true)
.allowSystem(true)
.build())
.build();
- ZenMode zenMode = new ZenMode("id", rule, true);
assertThat(mSummaryHelper.getOtherSoundCategoriesSummary(zenMode)).isEqualTo(
"Alarms, media, and touch sounds can interrupt");
@@ -140,9 +119,7 @@ public class ZenModesSummaryHelperTest {
@Test
public void getOtherSoundCategoriesSummary_quad() {
- AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
- .setType(AutomaticZenRule.TYPE_BEDTIME)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
+ ZenMode zenMode = new TestModeBuilder()
.setZenPolicy(new ZenPolicy.Builder()
.allowAlarms(true)
.allowMedia(true)
@@ -150,7 +127,6 @@ public class ZenModesSummaryHelperTest {
.allowReminders(true)
.build())
.build();
- ZenMode zenMode = new ZenMode("id", rule, true);
assertThat(mSummaryHelper.getOtherSoundCategoriesSummary(zenMode)).isEqualTo(
"Alarms, media, and 2 more can interrupt");
@@ -158,9 +134,7 @@ public class ZenModesSummaryHelperTest {
@Test
public void getOtherSoundCategoriesSummary_all() {
- AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
- .setType(AutomaticZenRule.TYPE_BEDTIME)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
+ ZenMode zenMode = new TestModeBuilder()
.setZenPolicy(new ZenPolicy.Builder()
.allowAlarms(true)
.allowMedia(true)
@@ -169,7 +143,6 @@ public class ZenModesSummaryHelperTest {
.allowEvents(true)
.build())
.build();
- ZenMode zenMode = new ZenMode("id", rule, true);
assertThat(mSummaryHelper.getOtherSoundCategoriesSummary(zenMode)).isEqualTo(
"Alarms, media, and 3 more can interrupt");
@@ -177,61 +150,52 @@ public class ZenModesSummaryHelperTest {
@Test
public void getBlockedEffectsSummary_none() {
- AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
- .setType(AutomaticZenRule.TYPE_BEDTIME)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
+ ZenMode zenMode = new TestModeBuilder()
.setZenPolicy(new ZenPolicy.Builder()
.showAllVisualEffects()
.allowAlarms(true)
.build())
.build();
- ZenMode zenMode = new ZenMode("id", rule, true);
+
assertThat(mSummaryHelper.getBlockedEffectsSummary(zenMode))
.isEqualTo("Notifications shown");
}
@Test
public void getBlockedEffectsSummary_some() {
- AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
- .setType(AutomaticZenRule.TYPE_BEDTIME)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
+ ZenMode zenMode = new TestModeBuilder()
.setZenPolicy(new ZenPolicy.Builder()
.allowAlarms(true)
.showAllVisualEffects()
.showVisualEffect(VISUAL_EFFECT_AMBIENT, false)
.build())
.build();
- ZenMode zenMode = new ZenMode("id", rule, true);
+
assertThat(mSummaryHelper.getBlockedEffectsSummary(zenMode))
.isEqualTo("Notifications partially hidden");
}
@Test
public void getBlockedEffectsSummary_all() {
- AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
- .setType(AutomaticZenRule.TYPE_BEDTIME)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
+ ZenMode zenMode = new TestModeBuilder()
.setZenPolicy(new ZenPolicy.Builder()
.allowAlarms(true)
.hideAllVisualEffects()
.build())
.build();
- ZenMode zenMode = new ZenMode("id", rule, true);
+
assertThat(mSummaryHelper.getBlockedEffectsSummary(zenMode))
.isEqualTo("Notifications hidden");
}
@Test
public void getDisplayEffectsSummary_single_notifVis() {
- AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
- .setType(AutomaticZenRule.TYPE_BEDTIME)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
+ ZenMode zenMode = new TestModeBuilder()
.setZenPolicy(new ZenPolicy.Builder()
.showAllVisualEffects()
.showVisualEffect(VISUAL_EFFECT_AMBIENT, false)
.build())
.build();
- ZenMode zenMode = new ZenMode("id", rule, true);
assertThat(mSummaryHelper.getDisplayEffectsSummary(zenMode)).isEqualTo(
"Notifications partially hidden");
@@ -239,15 +203,12 @@ public class ZenModesSummaryHelperTest {
@Test
public void getDisplayEffectsSummary_single_notifVis_unusedEffect() {
- AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
- .setType(AutomaticZenRule.TYPE_BEDTIME)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
+ ZenMode zenMode = new TestModeBuilder()
.setZenPolicy(new ZenPolicy.Builder()
.showAllVisualEffects()
.showVisualEffect(VISUAL_EFFECT_LIGHTS, false)
.build())
.build();
- ZenMode zenMode = new ZenMode("id", rule, true);
assertThat(mSummaryHelper.getDisplayEffectsSummary(zenMode)).isEqualTo(
"Notifications shown");
@@ -255,15 +216,12 @@ public class ZenModesSummaryHelperTest {
@Test
public void getDisplayEffectsSummary_single_displayEffect() {
- AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
- .setType(AutomaticZenRule.TYPE_BEDTIME)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
+ ZenMode zenMode = new TestModeBuilder()
.setZenPolicy(new ZenPolicy.Builder().showAllVisualEffects().build())
.setDeviceEffects(new ZenDeviceEffects.Builder()
.setShouldDimWallpaper(true)
.build())
.build();
- ZenMode zenMode = new ZenMode("id", rule, true);
assertThat(mSummaryHelper.getDisplayEffectsSummary(zenMode)).isEqualTo(
"Dim the wallpaper");
@@ -271,16 +229,13 @@ public class ZenModesSummaryHelperTest {
@Test
public void getDisplayEffectsSummary_duo() {
- AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
- .setType(AutomaticZenRule.TYPE_BEDTIME)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
+ ZenMode zenMode = new TestModeBuilder()
.setZenPolicy(new ZenPolicy.Builder().showAllVisualEffects().build())
.setDeviceEffects(new ZenDeviceEffects.Builder()
.setShouldDimWallpaper(true)
.setShouldDisplayGrayscale(true)
.build())
.build();
- ZenMode zenMode = new ZenMode("id", rule, true);
assertThat(mSummaryHelper.getDisplayEffectsSummary(zenMode)).isEqualTo(
"Grayscale and dim the wallpaper");
@@ -288,9 +243,7 @@ public class ZenModesSummaryHelperTest {
@Test
public void getDisplayEffectsSummary_trio() {
- AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
- .setType(AutomaticZenRule.TYPE_BEDTIME)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
+ ZenMode zenMode = new TestModeBuilder()
.setZenPolicy(new ZenPolicy.Builder()
.hideAllVisualEffects()
.allowAlarms(true)
@@ -302,7 +255,6 @@ public class ZenModesSummaryHelperTest {
.setShouldDimWallpaper(true)
.build())
.build();
- ZenMode zenMode = new ZenMode("id", rule, true);
assertThat(mSummaryHelper.getDisplayEffectsSummary(zenMode)).isEqualTo(
"Notifications hidden, grayscale, and dim the wallpaper");
@@ -310,9 +262,7 @@ public class ZenModesSummaryHelperTest {
@Test
public void getDisplayEffectsSummary_quad() {
- AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
- .setType(AutomaticZenRule.TYPE_BEDTIME)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
+ ZenMode zenMode = new TestModeBuilder()
.setZenPolicy(new ZenPolicy.Builder()
.showAllVisualEffects()
.showVisualEffect(VISUAL_EFFECT_AMBIENT, false)
@@ -326,7 +276,6 @@ public class ZenModesSummaryHelperTest {
.setShouldUseNightMode(true)
.build())
.build();
- ZenMode zenMode = new ZenMode("id", rule, true);
assertThat(mSummaryHelper.getDisplayEffectsSummary(zenMode)).isEqualTo(
"Notifications partially hidden, grayscale, and 2 more");
@@ -334,28 +283,22 @@ public class ZenModesSummaryHelperTest {
@Test
public void getAppsSummary_none() {
- AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
- .setType(AutomaticZenRule.TYPE_BEDTIME)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
+ ZenMode zenMode = new TestModeBuilder()
.setZenPolicy(new ZenPolicy.Builder()
.allowChannels(ZenPolicy.CHANNEL_POLICY_NONE)
.build())
.build();
- ZenMode zenMode = new ZenMode("id", rule, true);
assertThat(mSummaryHelper.getAppsSummary(zenMode, new LinkedHashSet<>())).isEqualTo("None");
}
@Test
public void getAppsSummary_priorityAppsNoList() {
- AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
- .setType(AutomaticZenRule.TYPE_BEDTIME)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
+ ZenMode zenMode = new TestModeBuilder()
.setZenPolicy(new ZenPolicy.Builder()
.allowChannels(ZenPolicy.CHANNEL_POLICY_PRIORITY)
.build())
.build();
- ZenMode zenMode = new ZenMode("id", rule, true);
assertThat(mSummaryHelper.getAppsSummary(zenMode, null)).isEqualTo("Selected apps");
}
@@ -397,19 +340,15 @@ public class ZenModesSummaryHelperTest {
@Test
public void getAppsSummary_priorityApps() {
- AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
- .setType(AutomaticZenRule.TYPE_BEDTIME)
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
+ ZenMode zenMode = new TestModeBuilder()
.setZenPolicy(new ZenPolicy.Builder()
.allowChannels(ZenPolicy.CHANNEL_POLICY_PRIORITY)
.build())
.build();
- ZenMode zenMode = new ZenMode("id", rule, true);
Set apps = Set.of("My App", "SecondApp", "ThirdApp", "FourthApp",
"FifthApp", "SixthApp");
assertThat(mSummaryHelper.getAppsSummary(zenMode, apps)).isEqualTo("FifthApp, FourthApp, "
+ "and 4 more can interrupt");
}
-
}