Loading res/values/strings.xml +17 −0 Original line number Diff line number Diff line Loading @@ -9535,6 +9535,23 @@ <!-- Priority Modes: Blurb for modes that are not of a specific type (OTHER, UNKNOWN). [CHAR LIMIT=NONE] --> <string name="zen_mode_blurb_generic">Minimize interruptions by only allowing important people and apps to reach you</string> <!-- Priority Modes: Inspirational text for a mode that activates during a fixed time schedule (e.g. 9:00-17:00). [CHAR LIMIT=NONE] --> <string name="zen_mode_inspiration_schedule_time">Set a mode that follows a regular schedule</string> <!-- Priority Modes: Inspirational text for a mode that activates during calendar events. [CHAR LIMIT=NONE] --> <string name="zen_mode_inspiration_schedule_calendar">Keep your device in sync with your day’s events</string> <!-- Priority Modes: Inspirational text for a mode of type BEDTIME. [CHAR LIMIT=NONE] --> <string name="zen_mode_inspiration_bedtime">Wake up feeling like 100%</string> <!-- Priority Modes: Inspirational text for a mode of type DRIVING. [CHAR LIMIT=NONE] --> <string name="zen_mode_inspiration_driving">Put safety first while on the road</string> <!-- Priority Modes: Inspirational text for a mode of type IMMERSIVE. [CHAR LIMIT=NONE] --> <string name="zen_mode_inspiration_immersive">Gain focus to get in the zone</string> <!-- Priority Modes: Inspirational text for a mode of type THEATER. [CHAR LIMIT=NONE] --> <string name="zen_mode_inspiration_theater">For moments when courtesy counts</string> <!-- Priority Modes: Inspirational text for a mode of type MANAGED. [CHAR LIMIT=NONE] --> <string name="zen_mode_inspiration_managed">Guided usage to help you stay in good hands</string> <!-- Priority Modes: Inspirational text for modes that are not of a specific type (OTHER, UNKNOWN). [CHAR LIMIT=NONE] --> <string name="zen_mode_inspiration_generic">Take control of your attention</string> <!-- Content description for help icon button [CHAR LIMIT=20] --> <string name="warning_button_text">Warning</string> src/com/android/settings/notification/modes/SetupInterstitialActivity.java +34 −1 Original line number Diff line number Diff line Loading @@ -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.app.settings.SettingsEnums; import android.content.Context; Loading @@ -39,6 +43,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; Loading Loading @@ -124,6 +129,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); Loading @@ -135,6 +145,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; Loading @@ -142,7 +173,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; }; Loading Loading
res/values/strings.xml +17 −0 Original line number Diff line number Diff line Loading @@ -9535,6 +9535,23 @@ <!-- Priority Modes: Blurb for modes that are not of a specific type (OTHER, UNKNOWN). [CHAR LIMIT=NONE] --> <string name="zen_mode_blurb_generic">Minimize interruptions by only allowing important people and apps to reach you</string> <!-- Priority Modes: Inspirational text for a mode that activates during a fixed time schedule (e.g. 9:00-17:00). [CHAR LIMIT=NONE] --> <string name="zen_mode_inspiration_schedule_time">Set a mode that follows a regular schedule</string> <!-- Priority Modes: Inspirational text for a mode that activates during calendar events. [CHAR LIMIT=NONE] --> <string name="zen_mode_inspiration_schedule_calendar">Keep your device in sync with your day’s events</string> <!-- Priority Modes: Inspirational text for a mode of type BEDTIME. [CHAR LIMIT=NONE] --> <string name="zen_mode_inspiration_bedtime">Wake up feeling like 100%</string> <!-- Priority Modes: Inspirational text for a mode of type DRIVING. [CHAR LIMIT=NONE] --> <string name="zen_mode_inspiration_driving">Put safety first while on the road</string> <!-- Priority Modes: Inspirational text for a mode of type IMMERSIVE. [CHAR LIMIT=NONE] --> <string name="zen_mode_inspiration_immersive">Gain focus to get in the zone</string> <!-- Priority Modes: Inspirational text for a mode of type THEATER. [CHAR LIMIT=NONE] --> <string name="zen_mode_inspiration_theater">For moments when courtesy counts</string> <!-- Priority Modes: Inspirational text for a mode of type MANAGED. [CHAR LIMIT=NONE] --> <string name="zen_mode_inspiration_managed">Guided usage to help you stay in good hands</string> <!-- Priority Modes: Inspirational text for modes that are not of a specific type (OTHER, UNKNOWN). [CHAR LIMIT=NONE] --> <string name="zen_mode_inspiration_generic">Take control of your attention</string> <!-- Content description for help icon button [CHAR LIMIT=20] --> <string name="warning_button_text">Warning</string>
src/com/android/settings/notification/modes/SetupInterstitialActivity.java +34 −1 Original line number Diff line number Diff line Loading @@ -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.app.settings.SettingsEnums; import android.content.Context; Loading @@ -39,6 +43,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; Loading Loading @@ -124,6 +129,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); Loading @@ -135,6 +145,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; Loading @@ -142,7 +173,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; }; Loading