Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4cffde01 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Use the new inspirational text in mode interstitials" into main

parents 2166d2ff 70a05ec4
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -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>
+34 −1
Original line number Diff line number Diff line
@@ -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;
@@ -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;

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