Style priority modes items in aggregator

* Different color if active.
* Trigger description / "ON" / "Paused" / "Tap to set up" depending on enabled and active status (strings may be revised later).

This CL also adds a helper class to create ZenModes, reducing boilerplate in unit tests.

Bug: 346575288
Test: atest com.android.settings.notification.modes
Flag: android.app.modes_ui
Change-Id: Ia0e16b8be5284d13bed4366cbee0f92748bf2f85
This commit is contained in:
Matías Hernández
2024-06-19 11:31:57 +02:00
parent 3cac411486
commit bcc608fbb2
31 changed files with 716 additions and 711 deletions

View File

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