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" <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.notification.modes.ZenModesListFragment"/> android:value="com.android.settings.notification.modes.ZenModesListFragment"/>
<meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY" <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" <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
android:value="true" /> android:value="true" />
</activity> </activity>

View File

@@ -24,6 +24,7 @@
<string name="menu_key_battery" translatable="false">top_level_battery</string> <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_storage" translatable="false">top_level_storage</string>
<string name="menu_key_sound" translatable="false">top_level_sound</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_display" translatable="false">top_level_display</string>
<string name="menu_key_wallpaper" translatable="false">top_level_wallpaper</string> <string name="menu_key_wallpaper" translatable="false">top_level_wallpaper</string>
<string name="menu_key_accessibility" translatable="false">top_level_accessibility</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" 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 <SwitchPreferenceCompat
android:key="lock_screen_show_only_unseen_notifs" android:key="lock_screen_show_only_unseen_notifs"
android:order="19" android:order="19"

View File

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

View File

@@ -105,14 +105,6 @@
settings:keywords="@string/keywords_sounds_and_notifications_interruptions" settings:keywords="@string/keywords_sounds_and_notifications_interruptions"
settings:controller="com.android.settings.notification.zen.ZenModePreferenceController"/> 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 --> <!-- Phone ringtone -->
<com.android.settings.DefaultRingtonePreference <com.android.settings.DefaultRingtonePreference
android:key="phone_ringtone" android:key="phone_ringtone"

View File

@@ -68,6 +68,16 @@
android:summary="@string/notification_dashboard_summary" android:summary="@string/notification_dashboard_summary"
settings:highlightableMenuKey="@string/menu_key_notifications"/> 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 <com.android.settings.widget.HomepagePreference
android:fragment="com.android.settings.fuelgauge.batteryusage.PowerUsageSummary" android:fragment="com.android.settings.fuelgauge.batteryusage.PowerUsageSummary"
android:icon="@drawable/ic_settings_battery_white" android:icon="@drawable/ic_settings_battery_white"

View File

@@ -82,6 +82,16 @@
android:summary="@string/sound_dashboard_summary" android:summary="@string/sound_dashboard_summary"
settings:highlightableMenuKey="@string/menu_key_sound"/> 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 <com.android.settings.widget.HomepagePreference
android:fragment="com.android.settings.communal.CommunalDashboardFragment" android:fragment="com.android.settings.communal.CommunalDashboardFragment"
android:icon="@drawable/ia_settings_communal" android:icon="@drawable/ia_settings_communal"

View File

@@ -18,6 +18,7 @@ package com.android.settings.notification.modes;
import android.app.Flags; import android.app.Flags;
import android.content.Context; import android.content.Context;
import android.util.Log;
import androidx.preference.Preference; import androidx.preference.Preference;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
@@ -30,6 +31,7 @@ import com.android.settingslib.notification.modes.ZenModesBackend;
public class ZenModesLinkPreferenceController extends BasePreferenceController public class ZenModesLinkPreferenceController extends BasePreferenceController
implements LifecycleObserver, OnStart, OnStop { implements LifecycleObserver, OnStart, OnStop {
private static final String TAG = "ModesLinkPrefController";
private final ZenModesBackend mBackend; private final ZenModesBackend mBackend;
private final ZenSettingsObserver mSettingObserver; private final ZenSettingsObserver mSettingObserver;
@@ -71,7 +73,13 @@ public class ZenModesLinkPreferenceController extends BasePreferenceController
@Override @Override
public void updateState(Preference preference) { public void updateState(Preference preference) {
try {
preference.setSummary(mSummaryBuilder.getModesSummary(mBackend.getModes())); 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 @Override