From 70a05ec421952c82869caf829e274a55bd3e7347 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C3=ADas=20Hern=C3=A1ndez?= Date: Fri, 16 Aug 2024 19:50:17 +0200 Subject: [PATCH] Use the new inspirational text in mode interstitials Also use the OTHER image for calendar/time, instead of UNKNOWN. Bug: 332730534 Test: manual Flag: android.app.modes_ui Change-Id: I85a36d2d409ad3e9f3d5f70f95d90512443971a7 --- res/values/strings.xml | 17 +++++++++ .../modes/SetupInterstitialActivity.java | 35 ++++++++++++++++++- 2 files changed, 51 insertions(+), 1 deletion(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 6c018c23ec9..20e4ce8ee01 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -9523,6 +9523,23 @@ Minimize interruptions by only allowing important people and apps to reach you + + Set a mode that follows a regular schedule + + Keep your device in sync with your day’s events + + Wake up feeling like 100% + + Put safety first while on the road + + Gain focus to get in the zone + + For moments when courtesy counts + + Guided usage to help you stay in good hands + + Take control of your attention + Warning diff --git a/src/com/android/settings/notification/modes/SetupInterstitialActivity.java b/src/com/android/settings/notification/modes/SetupInterstitialActivity.java index f26de76844b..984fa1ccfc6 100644 --- a/src/com/android/settings/notification/modes/SetupInterstitialActivity.java +++ b/src/com/android/settings/notification/modes/SetupInterstitialActivity.java @@ -21,9 +21,13 @@ import static android.app.AutomaticZenRule.TYPE_DRIVING; import static android.app.AutomaticZenRule.TYPE_IMMERSIVE; import static android.app.AutomaticZenRule.TYPE_MANAGED; import static android.app.AutomaticZenRule.TYPE_OTHER; +import static android.app.AutomaticZenRule.TYPE_SCHEDULE_CALENDAR; +import static android.app.AutomaticZenRule.TYPE_SCHEDULE_TIME; import static android.app.AutomaticZenRule.TYPE_THEATER; +import static android.app.AutomaticZenRule.TYPE_UNKNOWN; import static android.provider.Settings.EXTRA_AUTOMATIC_ZEN_RULE_ID; +import android.annotation.SuppressLint; import android.app.ActionBar; import android.content.Context; import android.content.Intent; @@ -38,6 +42,7 @@ import android.widget.Toolbar; import androidx.activity.EdgeToEdge; import androidx.annotation.NonNull; +import androidx.annotation.StringRes; import androidx.annotation.VisibleForTesting; import androidx.fragment.app.FragmentActivity; @@ -123,6 +128,11 @@ public class SetupInterstitialActivity extends FragmentActivity { title.setText(mode.getName()); } + TextView subtitle = findViewById(R.id.mode_name_subtitle); + if (subtitle != null) { + subtitle.setText(getSubtitle(mode)); + } + ImageView img = findViewById(R.id.image); if (img != null) { setImage(img, mode); @@ -134,6 +144,27 @@ public class SetupInterstitialActivity extends FragmentActivity { } } + @StringRes + @SuppressLint("SwitchIntDef") + private static int getSubtitle(ZenMode mode) { + if (mode.isSystemOwned()) { + return switch (mode.getType()) { + case TYPE_SCHEDULE_TIME -> R.string.zen_mode_inspiration_schedule_time; + case TYPE_SCHEDULE_CALENDAR -> R.string.zen_mode_inspiration_schedule_calendar; + default -> R.string.zen_mode_inspiration_generic; // Custom Manual + }; + } else { + return switch (mode.getType()) { + case TYPE_BEDTIME -> R.string.zen_mode_inspiration_bedtime; + case TYPE_DRIVING -> R.string.zen_mode_inspiration_driving; + case TYPE_IMMERSIVE -> R.string.zen_mode_inspiration_immersive; + case TYPE_THEATER -> R.string.zen_mode_inspiration_theater; + case TYPE_MANAGED -> R.string.zen_mode_inspiration_managed; + default -> R.string.zen_mode_inspiration_generic; // Including OTHER, UNKNOWN. + }; + } + } + private void setImage(@NonNull ImageView img, @NonNull ZenMode mode) { int drawableRes = switch (mode.getType()) { case TYPE_BEDTIME -> R.drawable.modes_interstitial_bedtime; @@ -141,7 +172,9 @@ public class SetupInterstitialActivity extends FragmentActivity { case TYPE_IMMERSIVE -> R.drawable.modes_interstitial_immersive; case TYPE_THEATER -> R.drawable.modes_interstitial_theater; case TYPE_MANAGED -> R.drawable.modes_interstitial_managed; - case TYPE_OTHER -> R.drawable.modes_interstitial_other; + case TYPE_OTHER, TYPE_SCHEDULE_CALENDAR, TYPE_SCHEDULE_TIME -> + R.drawable.modes_interstitial_other; + case TYPE_UNKNOWN -> R.drawable.modes_interstitial_unknown; default -> R.drawable.modes_interstitial_unknown; };