Disable all preferences (except toggle) when a mode is disabled

Also set some alpha on the circles so that they look more or less disabled as well.

Fixes: 354867828
Test: atest com.android.settings.notification.modes
Flag: android.app.modes_ui
Change-Id: I53ef5e381d37afa20b0532f3c7ddb3f106b2e85e
This commit is contained in:
Matías Hernández
2024-07-24 17:53:42 +02:00
parent 77191e9519
commit 38aaa27625
14 changed files with 172 additions and 12 deletions

View File

@@ -226,4 +226,32 @@ public class CircularIconsPreferenceTest {
mPreference.displayIcons(one);
mPreference.displayIcons(same); // if no exception, wasn't called.
}
@Test
public void setEnabled_afterDisplayIcons_showsEnabledOrDisabledImages() {
CircularIconSet<Integer> iconSet = new CircularIconSet<>(ImmutableList.of(1, 2),
ColorDrawable::new);
bindAndMeasureViewHolder(VIEW_WIDTH);
mPreference.displayIcons(iconSet);
assertThat(mPreference.getViews()).hasSize(2);
mPreference.setEnabled(false);
assertThat(mPreference.getViews().get(0).getAlpha()).isLessThan(1f);
mPreference.setEnabled(true);
assertThat(mPreference.getViews().get(0).getAlpha()).isEqualTo(1f);
}
@Test
public void setEnabled_beforeDisplayIcons_showsEnabledOrDisabledImages() {
CircularIconSet<Integer> iconSet = new CircularIconSet<>(ImmutableList.of(1, 2),
ColorDrawable::new);
mPreference.setEnabled(false);
bindAndMeasureViewHolder(VIEW_WIDTH);
mPreference.displayIcons(iconSet);
assertThat(mPreference.getViews()).hasSize(2);
assertThat(mPreference.getViews().get(0).getAlpha()).isLessThan(1f);
}
}

View File

@@ -67,6 +67,18 @@ public final class InterruptionFilterPreferenceControllerTest {
mController = new InterruptionFilterPreferenceController(mContext, "something", mBackend);
}
@Test
public void testUpdateState_disabled() {
TwoStatePreference preference = mock(TwoStatePreference.class);
ZenMode zenMode = new TestModeBuilder()
.setEnabled(false)
.build();
mController.updateZenMode(preference, zenMode);
verify(preference).setEnabled(false);
}
@Test
public void testUpdateState_all() {
TwoStatePreference preference = mock(TwoStatePreference.class);

View File

@@ -141,6 +141,17 @@ public final class ZenModeAppsLinkPreferenceControllerTest {
assertThat(mController.isAvailable()).isTrue();
}
@Test
public void testUpdateState_disabled() {
ZenMode zenMode = new TestModeBuilder()
.setEnabled(false)
.build();
mController.updateState(mPreference, zenMode);
assertThat(mPreference.isEnabled()).isFalse();
}
@Test
public void testUpdateSetsIntent() {
// Create a zen mode that allows priority channels to breakthrough.

View File

@@ -28,6 +28,7 @@ import android.platform.test.flag.junit.SetFlagsRule;
import androidx.preference.Preference;
import com.android.settingslib.notification.modes.TestModeBuilder;
import com.android.settingslib.notification.modes.ZenMode;
import com.android.settingslib.notification.modes.ZenModesBackend;
import org.junit.Before;
@@ -61,6 +62,18 @@ public final class ZenModeDisplayLinkPreferenceControllerTest {
mContext, "something", mBackend, mHelperBackend);
}
@Test
public void testUpdateState_disabled() {
Preference preference = mock(Preference.class);
ZenMode zenMode = new TestModeBuilder()
.setEnabled(false)
.build();
mController.updateState(preference, zenMode);
verify(preference).setEnabled(false);
}
@Test
@EnableFlags(Flags.FLAG_MODES_UI)
public void testHasSummary() {

View File

@@ -61,6 +61,18 @@ public final class ZenModeOtherLinkPreferenceControllerTest {
mContext, "something", mHelperBackend);
}
@Test
public void updateState_disabled() {
CircularIconsPreference pref = mock(CircularIconsPreference.class);
ZenMode zenMode = new TestModeBuilder()
.setEnabled(false)
.build();
mController.updateZenMode(pref, zenMode);
verify(pref).setEnabled(false);
}
@Test
public void updateState_loadsSummary() {
CircularIconsPreference pref = mock(CircularIconsPreference.class);

View File

@@ -111,6 +111,17 @@ public final class ZenModePeopleLinkPreferenceControllerTest {
anyBoolean())).thenReturn(new ColorDrawable(Color.BLACK));
}
@Test
public void updateState_disabled() {
ZenMode zenMode = new TestModeBuilder()
.setEnabled(false)
.build();
mController.updateState(mPreference, zenMode);
assertThat(mPreference.isEnabled()).isFalse();
}
@Test
public void updateState_setsSummary() {
mController.updateState(mPreference, TestModeBuilder.EXAMPLE);