Add modes to Settings homepage.

Also moves the modes entrypoints out of the sub-pages it was previously in (notifications and sound settings).

Bug: 353700470
Test: manual by opening the homepage
Flag: android.app.modes_ui
Change-Id: I53124bfed25c43fc2dabaf9c43ce0513bbfc7377
This commit is contained in:
Yuri Lin
2024-08-20 16:58:37 -04:00
parent 8cd5a449dd
commit 3ccbb0ffa5
8 changed files with 33 additions and 20 deletions

View File

@@ -1321,7 +1321,7 @@
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.notification.modes.ZenModesListFragment"/>
<meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
android:value="@string/menu_key_notifications"/>
android:value="@string/menu_key_priority_modes" />
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
android:value="true" />
</activity>

View File

@@ -24,6 +24,7 @@
<string name="menu_key_battery" translatable="false">top_level_battery</string>
<string name="menu_key_storage" translatable="false">top_level_storage</string>
<string name="menu_key_sound" translatable="false">top_level_sound</string>
<string name="menu_key_priority_modes" translatable="false">top_level_priority_modes</string>
<string name="menu_key_display" translatable="false">top_level_display</string>
<string name="menu_key_wallpaper" translatable="false">top_level_wallpaper</string>
<string name="menu_key_accessibility" translatable="false">top_level_accessibility</string>

View File

@@ -135,15 +135,6 @@
settings:controller="com.android.settings.notification.zen.ZenModePreferenceController"
/>
<com.android.settingslib.RestrictedPreference
android:key="modes_notifications"
android:order="18"
android:title="@string/zen_modes_list_title"
settings:useAdminDisabledSummary="true"
android:fragment="com.android.settings.notification.modes.ZenModesListFragment"
settings:controller="com.android.settings.notification.modes.ZenModesLinkPreferenceController"
/>
<SwitchPreferenceCompat
android:key="lock_screen_show_only_unseen_notifs"
android:order="19"

View File

@@ -18,7 +18,8 @@
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res-auto"
android:title="@string/zen_modes_list_title">
android:title="@string/zen_modes_list_title"
android:key="modes_list_settings">
<com.android.settingslib.widget.TopIntroPreference
android:title="@string/zen_modes_list_intro" />

View File

@@ -105,14 +105,6 @@
settings:keywords="@string/keywords_sounds_and_notifications_interruptions"
settings:controller="com.android.settings.notification.zen.ZenModePreferenceController"/>
<com.android.settingslib.RestrictedPreference
android:key="modes_notifications"
android:order="-130"
android:title="@string/zen_modes_list_title"
settings:useAdminDisabledSummary="true"
android:fragment="com.android.settings.notification.modes.ZenModesListFragment"
settings:controller="com.android.settings.notification.modes.ZenModesLinkPreferenceController"/>
<!-- Phone ringtone -->
<com.android.settings.DefaultRingtonePreference
android:key="phone_ringtone"

View File

@@ -68,6 +68,16 @@
android:summary="@string/notification_dashboard_summary"
settings:highlightableMenuKey="@string/menu_key_notifications"/>
<com.android.settings.widget.RestrictedHomepagePreference
android:fragment="com.android.settings.notification.modes.ZenModesListFragment"
android:icon="@*android:drawable/ic_zen_priority_modes"
android:key="top_level_priority_modes"
android:order="-115"
android:title="@string/zen_modes_list_title"
settings:useAdminDisabledSummary="true"
settings:highlightableMenuKey="@string/menu_key_priority_modes"
settings:controller="com.android.settings.notification.modes.ZenModesLinkPreferenceController"/>
<com.android.settings.widget.HomepagePreference
android:fragment="com.android.settings.fuelgauge.batteryusage.PowerUsageSummary"
android:icon="@drawable/ic_settings_battery_white"

View File

@@ -82,6 +82,16 @@
android:summary="@string/sound_dashboard_summary"
settings:highlightableMenuKey="@string/menu_key_sound"/>
<com.android.settings.widget.RestrictedHomepagePreference
android:fragment="com.android.settings.notification.modes.ZenModesListFragment"
android:icon="@*android:drawable/ic_zen_priority_modes"
android:key="top_level_priority_modes"
android:order="-35"
android:title="@string/zen_modes_list_title"
settings:useAdminDisabledSummary="true"
settings:highlightableMenuKey="@string/menu_key_priority_modes"
settings:controller="com.android.settings.notification.modes.ZenModesLinkPreferenceController"/>
<com.android.settings.widget.HomepagePreference
android:fragment="com.android.settings.communal.CommunalDashboardFragment"
android:icon="@drawable/ia_settings_communal"

View File

@@ -18,6 +18,7 @@ package com.android.settings.notification.modes;
import android.app.Flags;
import android.content.Context;
import android.util.Log;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
@@ -30,6 +31,7 @@ import com.android.settingslib.notification.modes.ZenModesBackend;
public class ZenModesLinkPreferenceController extends BasePreferenceController
implements LifecycleObserver, OnStart, OnStop {
private static final String TAG = "ModesLinkPrefController";
private final ZenModesBackend mBackend;
private final ZenSettingsObserver mSettingObserver;
@@ -71,7 +73,13 @@ public class ZenModesLinkPreferenceController extends BasePreferenceController
@Override
public void updateState(Preference preference) {
try {
preference.setSummary(mSummaryBuilder.getModesSummary(mBackend.getModes()));
} catch (SecurityException e) {
// Standard usage should have the correct permissions to read zen state. But if we don't
// for whatever reason, don't crash.
Log.w(TAG, "No permission to read mode state");
}
}
@Override