Allow turning off currently active modes

Even if they don't allow manual invocation. The button will disappear afterwards -- maybe not perfect but good enough.

Fixes: 355613076
Test: atest ZenModeButtonPreferenceControllerTest
Flag: android.app.modes_ui
Change-Id: I36cc96f7da78266be1a03e947304fc8e600899de
This commit is contained in:
Matías Hernández
2024-07-26 14:45:47 +02:00
parent 6da822d228
commit 69ce43462e
2 changed files with 17 additions and 5 deletions

View File

@@ -89,6 +89,16 @@ public final class ZenModeButtonPreferenceControllerTest {
assertThat(mController.isAvailable()).isFalse();
}
@Test
public void isAvailable_ifModeActiveEvenIfAppOptsOut() {
ZenMode zenMode = new TestModeBuilder()
.setManualInvocationAllowed(false)
.setActive(true)
.build();
mController.setZenMode(zenMode);
assertThat(mController.isAvailable()).isTrue();
}
@Test
public void isAvailable_notIfModeDisabled() {
ZenMode zenMode = new TestModeBuilder()
@@ -119,7 +129,6 @@ public final class ZenModeButtonPreferenceControllerTest {
LayoutPreference pref = mock(LayoutPreference.class);
when(pref.findViewById(anyInt())).thenReturn(button);
ZenMode zenMode = new TestModeBuilder()
.setManualInvocationAllowed(true)
.setActive(true)
.build();
@@ -151,7 +160,6 @@ public final class ZenModeButtonPreferenceControllerTest {
LayoutPreference pref = mock(LayoutPreference.class);
when(pref.findViewById(anyInt())).thenReturn(button);
ZenMode zenMode = new TestModeBuilder()
.setManualInvocationAllowed(true)
.setActive(true)
.build();