summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/notification/data/repository/FakeZenModeRepository.kt4
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/notification/modes/TestModeBuilder.java48
-rw-r--r--packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/data/quickaffordance/DoNotDisturbQuickAffordanceConfigTest.kt6
-rw-r--r--packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/policy/domain/interactor/ZenModeInteractorTest.kt3
-rw-r--r--packages/SystemUI/tests/src/com/android/keyguard/ClockEventControllerTest.kt7
5 files changed, 39 insertions, 29 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/notification/data/repository/FakeZenModeRepository.kt b/packages/SettingsLib/src/com/android/settingslib/notification/data/repository/FakeZenModeRepository.kt
index 23be7baa6496..496c3e6c74cc 100644
--- a/packages/SettingsLib/src/com/android/settingslib/notification/data/repository/FakeZenModeRepository.kt
+++ b/packages/SettingsLib/src/com/android/settingslib/notification/data/repository/FakeZenModeRepository.kt
@@ -74,10 +74,6 @@ class FakeZenModeRepository : ZenModeRepository {
mutableModesFlow.value = mutableModesFlow.value.filter { it.id != id }
}
- fun replaceMode(modeId: String, mode: ZenMode) {
- mutableModesFlow.value = (mutableModesFlow.value.filter { it.id != modeId }) + mode
- }
-
fun clearModes() {
mutableModesFlow.value = listOf()
}
diff --git a/packages/SettingsLib/src/com/android/settingslib/notification/modes/TestModeBuilder.java b/packages/SettingsLib/src/com/android/settingslib/notification/modes/TestModeBuilder.java
index 6842d0a949af..abc163867248 100644
--- a/packages/SettingsLib/src/com/android/settingslib/notification/modes/TestModeBuilder.java
+++ b/packages/SettingsLib/src/com/android/settingslib/notification/modes/TestModeBuilder.java
@@ -41,32 +41,24 @@ public class TestModeBuilder {
private String mId;
private AutomaticZenRule mRule;
private ZenModeConfig.ZenRule mConfigZenRule;
+ private boolean mIsManualDnd;
public static final ZenMode EXAMPLE = new TestModeBuilder().build();
- public static final ZenMode MANUAL_DND_ACTIVE = manualDnd(Uri.EMPTY,
+ public static final ZenMode MANUAL_DND_ACTIVE = manualDnd(
INTERRUPTION_FILTER_PRIORITY, true);
- public static final ZenMode MANUAL_DND_INACTIVE = manualDnd(Uri.EMPTY,
+ public static final ZenMode MANUAL_DND_INACTIVE = manualDnd(
INTERRUPTION_FILTER_PRIORITY, false);
@NonNull
public static ZenMode manualDnd(@NotificationManager.InterruptionFilter int filter,
boolean isActive) {
- return manualDnd(Uri.EMPTY, filter, isActive);
- }
-
- private static ZenMode manualDnd(Uri conditionId,
- @NotificationManager.InterruptionFilter int filter, boolean isActive) {
- return ZenMode.manualDndMode(
- new AutomaticZenRule.Builder("Do Not Disturb", conditionId)
- .setInterruptionFilter(filter)
- .setType(AutomaticZenRule.TYPE_OTHER)
- .setManualInvocationAllowed(true)
- .setPackage(SystemZenRules.PACKAGE_ANDROID)
- .setZenPolicy(new ZenPolicy.Builder().disallowAllSounds().build())
- .build(),
- isActive);
+ return new TestModeBuilder()
+ .makeManualDnd()
+ .setInterruptionFilter(filter)
+ .setActive(isActive)
+ .build();
}
public TestModeBuilder() {
@@ -91,6 +83,10 @@ public class TestModeBuilder {
mConfigZenRule.enabled = previous.getRule().isEnabled();
mConfigZenRule.pkg = previous.getRule().getPackageName();
setActive(previous.isActive());
+
+ if (previous.isManualDnd()) {
+ makeManualDnd();
+ }
}
public TestModeBuilder setId(String id) {
@@ -222,7 +218,25 @@ public class TestModeBuilder {
return this;
}
+ public TestModeBuilder makeManualDnd() {
+ mIsManualDnd = true;
+ // Set the "fixed" properties of a DND mode. Other things, such as policy/filter may be set
+ // separately or copied from a preexisting DND, so they are not overwritten here.
+ setId(ZenMode.MANUAL_DND_MODE_ID);
+ setName("Do Not Disturb");
+ setType(AutomaticZenRule.TYPE_OTHER);
+ setManualInvocationAllowed(true);
+ setPackage(SystemZenRules.PACKAGE_ANDROID);
+ setConditionId(Uri.EMPTY);
+ return this;
+ }
+
public ZenMode build() {
- return new ZenMode(mId, mRule, mConfigZenRule);
+ if (mIsManualDnd) {
+ return ZenMode.manualDndMode(mRule, mConfigZenRule.condition != null
+ && mConfigZenRule.condition.state == Condition.STATE_TRUE);
+ } else {
+ return new ZenMode(mId, mRule, mConfigZenRule);
+ }
}
}
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/data/quickaffordance/DoNotDisturbQuickAffordanceConfigTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/data/quickaffordance/DoNotDisturbQuickAffordanceConfigTest.kt
index fcf4662be145..50ac26196978 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/data/quickaffordance/DoNotDisturbQuickAffordanceConfigTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/data/quickaffordance/DoNotDisturbQuickAffordanceConfigTest.kt
@@ -405,7 +405,8 @@ class DoNotDisturbQuickAffordanceConfigTest : SysuiTestCase() {
testScope.runTest {
val lockScreenState by collectLastValue(underTest.lockScreenState)
- zenModeRepository.addMode(TestModeBuilder.MANUAL_DND_INACTIVE)
+ val manualDnd = TestModeBuilder.MANUAL_DND_INACTIVE
+ zenModeRepository.addMode(manualDnd)
runCurrent()
assertThat(lockScreenState)
@@ -419,8 +420,7 @@ class DoNotDisturbQuickAffordanceConfigTest : SysuiTestCase() {
)
)
- zenModeRepository.removeMode(TestModeBuilder.MANUAL_DND_INACTIVE.id)
- zenModeRepository.addMode(TestModeBuilder.MANUAL_DND_ACTIVE)
+ zenModeRepository.activateMode(manualDnd)
runCurrent()
assertThat(lockScreenState)
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/policy/domain/interactor/ZenModeInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/policy/domain/interactor/ZenModeInteractorTest.kt
index 74d4178891b9..4e33a5958a1a 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/policy/domain/interactor/ZenModeInteractorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/policy/domain/interactor/ZenModeInteractorTest.kt
@@ -378,8 +378,7 @@ class ZenModeInteractorTest : SysuiTestCase() {
assertThat(dndMode!!.isActive).isFalse()
- zenModeRepository.removeMode(TestModeBuilder.MANUAL_DND_INACTIVE.id)
- zenModeRepository.addMode(TestModeBuilder.MANUAL_DND_ACTIVE)
+ zenModeRepository.activateMode(TestModeBuilder.MANUAL_DND_INACTIVE.id)
runCurrent()
assertThat(dndMode!!.isActive).isTrue()
diff --git a/packages/SystemUI/tests/src/com/android/keyguard/ClockEventControllerTest.kt b/packages/SystemUI/tests/src/com/android/keyguard/ClockEventControllerTest.kt
index 2aa6e7b18154..ae9454498089 100644
--- a/packages/SystemUI/tests/src/com/android/keyguard/ClockEventControllerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/keyguard/ClockEventControllerTest.kt
@@ -24,7 +24,6 @@ import android.view.ViewTreeObserver
import android.widget.FrameLayout
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
-import com.android.settingslib.notification.modes.TestModeBuilder.MANUAL_DND_ACTIVE
import com.android.settingslib.notification.modes.TestModeBuilder.MANUAL_DND_INACTIVE
import com.android.systemui.Flags as AConfigFlags
import com.android.systemui.SysuiTestCase
@@ -107,6 +106,7 @@ class ClockEventControllerTest : SysuiTestCase() {
private lateinit var repository: FakeKeyguardRepository
private val clockBuffers = ClockMessageBuffers(LogcatOnlyMessageBuffer(LogLevel.DEBUG))
private lateinit var underTest: ClockEventController
+ private lateinit var dndModeId: String
@Mock private lateinit var broadcastDispatcher: BroadcastDispatcher
@Mock private lateinit var batteryController: BatteryController
@@ -156,6 +156,7 @@ class ClockEventControllerTest : SysuiTestCase() {
whenever(largeClockController.theme).thenReturn(ThemeConfig(true, null))
whenever(userTracker.userId).thenReturn(1)
+ dndModeId = MANUAL_DND_INACTIVE.id
zenModeRepository.addMode(MANUAL_DND_INACTIVE)
repository = FakeKeyguardRepository()
@@ -528,7 +529,7 @@ class ClockEventControllerTest : SysuiTestCase() {
testScope.runTest {
underTest.listenForDnd(testScope.backgroundScope)
- zenModeRepository.replaceMode(MANUAL_DND_INACTIVE.id, MANUAL_DND_ACTIVE)
+ zenModeRepository.activateMode(dndModeId)
runCurrent()
verify(events)
@@ -536,7 +537,7 @@ class ClockEventControllerTest : SysuiTestCase() {
eq(ZenData(ZenMode.IMPORTANT_INTERRUPTIONS, R.string::dnd_is_on.name))
)
- zenModeRepository.replaceMode(MANUAL_DND_ACTIVE.id, MANUAL_DND_INACTIVE)
+ zenModeRepository.deactivateMode(dndModeId)
runCurrent()
verify(events).onZenDataChanged(eq(ZenData(ZenMode.OFF, R.string::dnd_is_off.name)))