diff --git a/res/drawable/ia_settings_communal_expressive.xml b/res/drawable/ia_settings_communal_expressive.xml
new file mode 100644
index 00000000000..13d999579c4
--- /dev/null
+++ b/res/drawable/ia_settings_communal_expressive.xml
@@ -0,0 +1,19 @@
+
+
diff --git a/res/drawable/ic_account_child_invert_expressive.xml b/res/drawable/ic_account_child_invert_expressive.xml
new file mode 100644
index 00000000000..e132b2b34bf
--- /dev/null
+++ b/res/drawable/ic_account_child_invert_expressive.xml
@@ -0,0 +1,19 @@
+
+
diff --git a/res/drawable/ic_apps_expressive.xml b/res/drawable/ic_apps_expressive.xml
new file mode 100644
index 00000000000..f921ed21809
--- /dev/null
+++ b/res/drawable/ic_apps_expressive.xml
@@ -0,0 +1,19 @@
+
+
diff --git a/res/drawable/ic_devices_other_expressive.xml b/res/drawable/ic_devices_other_expressive.xml
new file mode 100644
index 00000000000..cb1183417ac
--- /dev/null
+++ b/res/drawable/ic_devices_other_expressive.xml
@@ -0,0 +1,19 @@
+
+
diff --git a/res/drawable/ic_help_expressive.xml b/res/drawable/ic_help_expressive.xml
new file mode 100644
index 00000000000..b7978f8cf93
--- /dev/null
+++ b/res/drawable/ic_help_expressive.xml
@@ -0,0 +1,19 @@
+
+
diff --git a/res/drawable/ic_homepage_about.xml b/res/drawable/ic_homepage_about.xml
index 459ec934265..838526a10c9 100644
--- a/res/drawable/ic_homepage_about.xml
+++ b/res/drawable/ic_homepage_about.xml
@@ -29,5 +29,5 @@
android:height="@dimen/dashboard_tile_foreground_image_size"
android:start="@dimen/dashboard_tile_foreground_image_inset"
android:top="@dimen/dashboard_tile_foreground_image_inset"
- android:drawable="@drawable/ic_settings_about_device" />
+ android:drawable="@drawable/ic_settings_about_device_expressive" />
diff --git a/res/drawable/ic_homepage_accessibility.xml b/res/drawable/ic_homepage_accessibility.xml
index 85d4be34873..cad8a6586f4 100644
--- a/res/drawable/ic_homepage_accessibility.xml
+++ b/res/drawable/ic_homepage_accessibility.xml
@@ -29,5 +29,5 @@
android:height="@dimen/dashboard_tile_foreground_image_size"
android:start="@dimen/dashboard_tile_foreground_image_inset"
android:top="@dimen/dashboard_tile_foreground_image_inset"
- android:drawable="@drawable/ic_settings_accessibility" />
+ android:drawable="@drawable/ic_settings_accessibility_expressive" />
diff --git a/res/drawable/ic_homepage_accounts.xml b/res/drawable/ic_homepage_accounts.xml
index 3f4f3aba864..5fa3fc524a7 100644
--- a/res/drawable/ic_homepage_accounts.xml
+++ b/res/drawable/ic_homepage_accounts.xml
@@ -29,5 +29,5 @@
android:height="@dimen/dashboard_tile_foreground_image_size"
android:start="@dimen/dashboard_tile_foreground_image_inset"
android:top="@dimen/dashboard_tile_foreground_image_inset"
- android:drawable="@drawable/ic_settings_accounts" />
+ android:drawable="@drawable/ic_settings_passwords_expressive" />
diff --git a/res/drawable/ic_homepage_apps.xml b/res/drawable/ic_homepage_apps.xml
index 24a580c3429..9ebfdf0ef39 100644
--- a/res/drawable/ic_homepage_apps.xml
+++ b/res/drawable/ic_homepage_apps.xml
@@ -21,7 +21,7 @@
+ android:color="@color/homepage_apps_background" />
+ android:drawable="@drawable/ic_apps_expressive" />
diff --git a/res/drawable/ic_homepage_battery.xml b/res/drawable/ic_homepage_battery.xml
index 0a1f77ae9fb..d9b5658c5ba 100644
--- a/res/drawable/ic_homepage_battery.xml
+++ b/res/drawable/ic_homepage_battery.xml
@@ -29,5 +29,5 @@
android:height="@dimen/dashboard_tile_foreground_image_size"
android:start="@dimen/dashboard_tile_foreground_image_inset"
android:top="@dimen/dashboard_tile_foreground_image_inset"
- android:drawable="@drawable/ic_settings_battery_white" />
+ android:drawable="@drawable/ic_settings_battery_expressive" />
diff --git a/res/drawable/ic_homepage_connected_device.xml b/res/drawable/ic_homepage_connected_device.xml
index a648c449fa3..42947edf796 100644
--- a/res/drawable/ic_homepage_connected_device.xml
+++ b/res/drawable/ic_homepage_connected_device.xml
@@ -29,5 +29,5 @@
android:height="@dimen/dashboard_tile_foreground_image_size"
android:start="@dimen/dashboard_tile_foreground_image_inset"
android:top="@dimen/dashboard_tile_foreground_image_inset"
- android:drawable="@drawable/ic_devices_other" />
+ android:drawable="@drawable/ic_devices_other_expressive" />
diff --git a/res/drawable/ic_homepage_display.xml b/res/drawable/ic_homepage_display.xml
index 72db231516a..175bd4d4542 100644
--- a/res/drawable/ic_homepage_display.xml
+++ b/res/drawable/ic_homepage_display.xml
@@ -29,5 +29,5 @@
android:height="@dimen/dashboard_tile_foreground_image_size"
android:start="@dimen/dashboard_tile_foreground_image_inset"
android:top="@dimen/dashboard_tile_foreground_image_inset"
- android:drawable="@drawable/ic_settings_display_white" />
+ android:drawable="@drawable/ic_settings_display_expressive" />
diff --git a/res/drawable/ic_homepage_emergency.xml b/res/drawable/ic_homepage_emergency.xml
new file mode 100644
index 00000000000..a18b738187b
--- /dev/null
+++ b/res/drawable/ic_homepage_emergency.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+ -
+
+
+
+
+
diff --git a/res/drawable/ic_homepage_hub_mode.xml b/res/drawable/ic_homepage_hub_mode.xml
new file mode 100644
index 00000000000..d887a7adea3
--- /dev/null
+++ b/res/drawable/ic_homepage_hub_mode.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+ -
+
+
+
+
+
diff --git a/res/drawable/ic_homepage_location.xml b/res/drawable/ic_homepage_location.xml
index db6a791f1f3..13cb0e6b1cd 100644
--- a/res/drawable/ic_homepage_location.xml
+++ b/res/drawable/ic_homepage_location.xml
@@ -29,5 +29,5 @@
android:height="@dimen/dashboard_tile_foreground_image_size"
android:start="@dimen/dashboard_tile_foreground_image_inset"
android:top="@dimen/dashboard_tile_foreground_image_inset"
- android:drawable="@drawable/ic_settings_location"/>
+ android:drawable="@drawable/ic_settings_location_expressive"/>
diff --git a/res/drawable/ic_homepage_modes.xml b/res/drawable/ic_homepage_modes.xml
new file mode 100644
index 00000000000..47f0cdbdc08
--- /dev/null
+++ b/res/drawable/ic_homepage_modes.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+ -
+
+
+
+
+
diff --git a/res/drawable/ic_homepage_network.xml b/res/drawable/ic_homepage_network.xml
index 085a6885190..adf717f1f77 100644
--- a/res/drawable/ic_homepage_network.xml
+++ b/res/drawable/ic_homepage_network.xml
@@ -29,5 +29,5 @@
android:height="@dimen/dashboard_tile_foreground_image_size"
android:start="@dimen/dashboard_tile_foreground_image_inset"
android:top="@dimen/dashboard_tile_foreground_image_inset"
- android:drawable="@drawable/ic_settings_wireless_white" />
+ android:drawable="@drawable/ic_settings_wireless_expressive" />
diff --git a/res/drawable/ic_homepage_notification.xml b/res/drawable/ic_homepage_notification.xml
index d8c8d6dcf3c..7723d210777 100644
--- a/res/drawable/ic_homepage_notification.xml
+++ b/res/drawable/ic_homepage_notification.xml
@@ -21,7 +21,7 @@
+ android:color="@color/homepage_sound_background" />
+ android:drawable="@drawable/ic_notifications_expressive" />
diff --git a/res/drawable/ic_homepage_privacy.xml b/res/drawable/ic_homepage_privacy.xml
new file mode 100644
index 00000000000..d0df6d6dd2d
--- /dev/null
+++ b/res/drawable/ic_homepage_privacy.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+ -
+
+
+
+
+
diff --git a/res/drawable/ic_homepage_safety_center.xml b/res/drawable/ic_homepage_safety_center.xml
new file mode 100644
index 00000000000..86210580baf
--- /dev/null
+++ b/res/drawable/ic_homepage_safety_center.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+ -
+
+
+
+
+
diff --git a/res/drawable/ic_homepage_security.xml b/res/drawable/ic_homepage_security.xml
index 8a0673c5f7a..c9df4adb714 100644
--- a/res/drawable/ic_homepage_security.xml
+++ b/res/drawable/ic_homepage_security.xml
@@ -29,5 +29,5 @@
android:height="@dimen/dashboard_tile_foreground_image_size"
android:start="@dimen/dashboard_tile_foreground_image_inset"
android:top="@dimen/dashboard_tile_foreground_image_inset"
- android:drawable="@drawable/ic_settings_security_white" />
+ android:drawable="@drawable/ic_settings_security_expressive" />
diff --git a/res/drawable/ic_homepage_sound.xml b/res/drawable/ic_homepage_sound.xml
index a15f4c634e5..f1ee284a381 100644
--- a/res/drawable/ic_homepage_sound.xml
+++ b/res/drawable/ic_homepage_sound.xml
@@ -29,5 +29,5 @@
android:height="@dimen/dashboard_tile_foreground_image_size"
android:start="@dimen/dashboard_tile_foreground_image_inset"
android:top="@dimen/dashboard_tile_foreground_image_inset"
- android:drawable="@drawable/ic_volume_up_24dp" />
+ android:drawable="@drawable/ic_volume_up_expressive" />
diff --git a/res/drawable/ic_homepage_storage.xml b/res/drawable/ic_homepage_storage.xml
index 11032fa61ed..4182e9f8b16 100644
--- a/res/drawable/ic_homepage_storage.xml
+++ b/res/drawable/ic_homepage_storage.xml
@@ -29,5 +29,5 @@
android:height="@dimen/dashboard_tile_foreground_image_size"
android:start="@dimen/dashboard_tile_foreground_image_inset"
android:top="@dimen/dashboard_tile_foreground_image_inset"
- android:drawable="@drawable/ic_storage_white" />
+ android:drawable="@drawable/ic_storage_expressive" />
diff --git a/res/drawable/ic_homepage_supervision.xml b/res/drawable/ic_homepage_supervision.xml
new file mode 100644
index 00000000000..4db57c0e613
--- /dev/null
+++ b/res/drawable/ic_homepage_supervision.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+ -
+
+
+
+
+
diff --git a/res/drawable/ic_homepage_support.xml b/res/drawable/ic_homepage_support.xml
index 2e35e4f7d4a..ea4d12ba117 100644
--- a/res/drawable/ic_homepage_support.xml
+++ b/res/drawable/ic_homepage_support.xml
@@ -29,5 +29,5 @@
android:height="@dimen/dashboard_tile_foreground_image_size"
android:start="@dimen/dashboard_tile_foreground_image_inset"
android:top="@dimen/dashboard_tile_foreground_image_inset"
- android:drawable="@drawable/ic_help" />
+ android:drawable="@drawable/ic_help_expressive" />
diff --git a/res/drawable/ic_homepage_system_dashboard.xml b/res/drawable/ic_homepage_system_dashboard.xml
index add12120ca2..77038d25782 100644
--- a/res/drawable/ic_homepage_system_dashboard.xml
+++ b/res/drawable/ic_homepage_system_dashboard.xml
@@ -29,5 +29,5 @@
android:height="@dimen/dashboard_tile_foreground_image_size"
android:start="@dimen/dashboard_tile_foreground_image_inset"
android:top="@dimen/dashboard_tile_foreground_image_inset"
- android:drawable="@drawable/ic_settings_system_dashboard_white" />
+ android:drawable="@drawable/ic_settings_system_dashboard_expressive" />
diff --git a/res/drawable/ic_homepage_wallpaper.xml b/res/drawable/ic_homepage_wallpaper.xml
new file mode 100644
index 00000000000..96280ba5801
--- /dev/null
+++ b/res/drawable/ic_homepage_wallpaper.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+ -
+
+
+
+
+
diff --git a/res/drawable/ic_notifications_expressive.xml b/res/drawable/ic_notifications_expressive.xml
new file mode 100644
index 00000000000..c3c6189a9eb
--- /dev/null
+++ b/res/drawable/ic_notifications_expressive.xml
@@ -0,0 +1,19 @@
+
+
diff --git a/res/drawable/ic_settings_about_device_expressive.xml b/res/drawable/ic_settings_about_device_expressive.xml
new file mode 100644
index 00000000000..866dbb96142
--- /dev/null
+++ b/res/drawable/ic_settings_about_device_expressive.xml
@@ -0,0 +1,19 @@
+
+
diff --git a/res/drawable/ic_settings_accessibility_expressive.xml b/res/drawable/ic_settings_accessibility_expressive.xml
new file mode 100644
index 00000000000..af66096866d
--- /dev/null
+++ b/res/drawable/ic_settings_accessibility_expressive.xml
@@ -0,0 +1,19 @@
+
+
diff --git a/res/drawable/ic_settings_battery_expressive.xml b/res/drawable/ic_settings_battery_expressive.xml
new file mode 100644
index 00000000000..35f82f1ed43
--- /dev/null
+++ b/res/drawable/ic_settings_battery_expressive.xml
@@ -0,0 +1,19 @@
+
+
diff --git a/res/drawable/ic_settings_display_expressive.xml b/res/drawable/ic_settings_display_expressive.xml
new file mode 100644
index 00000000000..626c57fd2ce
--- /dev/null
+++ b/res/drawable/ic_settings_display_expressive.xml
@@ -0,0 +1,19 @@
+
+
diff --git a/res/drawable/ic_settings_emergency_expressive.xml b/res/drawable/ic_settings_emergency_expressive.xml
new file mode 100644
index 00000000000..585b3ac3295
--- /dev/null
+++ b/res/drawable/ic_settings_emergency_expressive.xml
@@ -0,0 +1,19 @@
+
+
diff --git a/res/drawable/ic_settings_location_expressive.xml b/res/drawable/ic_settings_location_expressive.xml
new file mode 100644
index 00000000000..7b1da59a521
--- /dev/null
+++ b/res/drawable/ic_settings_location_expressive.xml
@@ -0,0 +1,19 @@
+
+
diff --git a/res/drawable/ic_settings_passwords_expressive.xml b/res/drawable/ic_settings_passwords_expressive.xml
new file mode 100644
index 00000000000..51bc08676fd
--- /dev/null
+++ b/res/drawable/ic_settings_passwords_expressive.xml
@@ -0,0 +1,19 @@
+
+
diff --git a/res/drawable/ic_settings_privacy_expressive.xml b/res/drawable/ic_settings_privacy_expressive.xml
new file mode 100644
index 00000000000..1ea77e2a5ac
--- /dev/null
+++ b/res/drawable/ic_settings_privacy_expressive.xml
@@ -0,0 +1,19 @@
+
+
diff --git a/res/drawable/ic_settings_safety_center_expressive.xml b/res/drawable/ic_settings_safety_center_expressive.xml
new file mode 100644
index 00000000000..702269f6af3
--- /dev/null
+++ b/res/drawable/ic_settings_safety_center_expressive.xml
@@ -0,0 +1,19 @@
+
+
diff --git a/res/drawable/ic_settings_security_expressive.xml b/res/drawable/ic_settings_security_expressive.xml
new file mode 100644
index 00000000000..a2dc8596361
--- /dev/null
+++ b/res/drawable/ic_settings_security_expressive.xml
@@ -0,0 +1,19 @@
+
+
diff --git a/res/drawable/ic_settings_system_dashboard_expressive.xml b/res/drawable/ic_settings_system_dashboard_expressive.xml
new file mode 100644
index 00000000000..318bfa8525d
--- /dev/null
+++ b/res/drawable/ic_settings_system_dashboard_expressive.xml
@@ -0,0 +1,19 @@
+
+
diff --git a/res/drawable/ic_settings_wallpaper_expressive.xml b/res/drawable/ic_settings_wallpaper_expressive.xml
new file mode 100644
index 00000000000..f5de7a8c1dd
--- /dev/null
+++ b/res/drawable/ic_settings_wallpaper_expressive.xml
@@ -0,0 +1,19 @@
+
+
diff --git a/res/drawable/ic_settings_wallpaper_filled.xml b/res/drawable/ic_settings_wallpaper_filled.xml
index cbcc3b2d5f6..a7a96e347fa 100644
--- a/res/drawable/ic_settings_wallpaper_filled.xml
+++ b/res/drawable/ic_settings_wallpaper_filled.xml
@@ -14,12 +14,12 @@
limitations under the License.
-->
-
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="960"
+ android:viewportHeight="960"
+ android:tint="?android:attr/colorControlNormal">
+
diff --git a/res/drawable/ic_settings_wireless_expressive.xml b/res/drawable/ic_settings_wireless_expressive.xml
new file mode 100644
index 00000000000..2a39e3c433a
--- /dev/null
+++ b/res/drawable/ic_settings_wireless_expressive.xml
@@ -0,0 +1,19 @@
+
+
diff --git a/res/drawable/ic_storage_expressive.xml b/res/drawable/ic_storage_expressive.xml
new file mode 100644
index 00000000000..9ecb98acbef
--- /dev/null
+++ b/res/drawable/ic_storage_expressive.xml
@@ -0,0 +1,19 @@
+
+
diff --git a/res/drawable/ic_volume_up_expressive.xml b/res/drawable/ic_volume_up_expressive.xml
new file mode 100644
index 00000000000..d0752e37714
--- /dev/null
+++ b/res/drawable/ic_volume_up_expressive.xml
@@ -0,0 +1,19 @@
+
+
diff --git a/res/drawable/ic_zen_priority_modes_expressive.xml b/res/drawable/ic_zen_priority_modes_expressive.xml
new file mode 100644
index 00000000000..910c0a8de7e
--- /dev/null
+++ b/res/drawable/ic_zen_priority_modes_expressive.xml
@@ -0,0 +1,19 @@
+
+
diff --git a/res/xml/top_level_settings_expressive.xml b/res/xml/top_level_settings_expressive.xml
new file mode 100644
index 00000000000..1a3fa8f5362
--- /dev/null
+++ b/res/xml/top_level_settings_expressive.xml
@@ -0,0 +1,269 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoScreen.kt b/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoScreen.kt
index 4e9a45776c3..a7285432e07 100644
--- a/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoScreen.kt
+++ b/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoScreen.kt
@@ -26,6 +26,7 @@ import com.android.settingslib.metadata.PreferenceSummaryProvider
import com.android.settingslib.metadata.ProvidePreferenceScreen
import com.android.settingslib.metadata.preferenceHierarchy
import com.android.settingslib.preference.PreferenceScreenCreator
+import com.android.settingslib.widget.SettingsThemeHelper.isExpressiveTheme
@ProvidePreferenceScreen(MyDeviceInfoScreen.KEY)
class MyDeviceInfoScreen :
@@ -41,12 +42,12 @@ class MyDeviceInfoScreen :
?: Build.MODEL
}
- override fun getIcon(context: Context): Int {
- return when (Flags.homepageRevamp()) {
- true -> R.drawable.ic_settings_about_device_filled
- false -> R.drawable.ic_settings_about_device
+ override fun getIcon(context: Context) =
+ when {
+ isExpressiveTheme(context) -> R.drawable.ic_homepage_about
+ Flags.homepageRevamp() -> R.drawable.ic_settings_about_device_filled
+ else -> R.drawable.ic_settings_about_device
}
- }
override fun isFlagEnabled(context: Context) = Flags.catalystMyDeviceInfoPrefScreen()
diff --git a/src/com/android/settings/display/DisplayScreen.kt b/src/com/android/settings/display/DisplayScreen.kt
index 909e3004ba4..5e2ae3e59d2 100644
--- a/src/com/android/settings/display/DisplayScreen.kt
+++ b/src/com/android/settings/display/DisplayScreen.kt
@@ -29,6 +29,7 @@ import com.android.settingslib.metadata.PreferenceMetadata
import com.android.settingslib.metadata.ProvidePreferenceScreen
import com.android.settingslib.metadata.preferenceHierarchy
import com.android.settingslib.preference.PreferenceScreenCreator
+import com.android.settingslib.widget.SettingsThemeHelper.isExpressiveTheme
@ProvidePreferenceScreen(DisplayScreen.KEY)
open class DisplayScreen :
@@ -41,6 +42,7 @@ open class DisplayScreen :
override fun getIcon(context: Context) =
when {
+ isExpressiveTheme(context) -> R.drawable.ic_homepage_display
Flags.homepageRevamp() -> R.drawable.ic_settings_display_filled
else -> R.drawable.ic_settings_display_white
}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummaryScreen.kt b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummaryScreen.kt
index 7dc7a773f9f..407ebaaf4f1 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummaryScreen.kt
+++ b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummaryScreen.kt
@@ -25,6 +25,7 @@ import com.android.settingslib.metadata.PreferenceIconProvider
import com.android.settingslib.metadata.ProvidePreferenceScreen
import com.android.settingslib.metadata.preferenceHierarchy
import com.android.settingslib.preference.PreferenceScreenCreator
+import com.android.settingslib.widget.SettingsThemeHelper.isExpressiveTheme
@ProvidePreferenceScreen(PowerUsageSummaryScreen.KEY)
class PowerUsageSummaryScreen :
@@ -47,11 +48,11 @@ class PowerUsageSummaryScreen :
override fun isAvailable(context: Context) =
context.resources.getBoolean(R.bool.config_show_top_level_battery)
- override fun getIcon(context: Context): Int =
- if (Flags.homepageRevamp()) {
- R.drawable.ic_settings_battery_filled
- } else {
- R.drawable.ic_settings_battery_white
+ override fun getIcon(context: Context) =
+ when {
+ isExpressiveTheme(context) -> R.drawable.ic_homepage_battery
+ Flags.homepageRevamp() -> R.drawable.ic_settings_battery_filled
+ else -> R.drawable.ic_settings_battery_white
}
override fun getPreferenceHierarchy(context: Context) =
diff --git a/src/com/android/settings/homepage/TopLevelSettings.java b/src/com/android/settings/homepage/TopLevelSettings.java
index 87e5560c959..dbd9ba90031 100644
--- a/src/com/android/settings/homepage/TopLevelSettings.java
+++ b/src/com/android/settings/homepage/TopLevelSettings.java
@@ -25,11 +25,13 @@ import android.content.Context;
import android.content.res.Configuration;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
+import android.provider.SearchIndexableResource;
import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.ViewGroup;
+import androidx.annotation.NonNull;
import androidx.annotation.VisibleForTesting;
import androidx.fragment.app.Fragment;
import androidx.preference.Preference;
@@ -56,6 +58,9 @@ import com.android.settings.widget.HomepagePreferenceLayoutHelper.HomepagePrefer
import com.android.settingslib.core.instrumentation.Instrumentable;
import com.android.settingslib.drawer.Tile;
import com.android.settingslib.search.SearchIndexable;
+import com.android.settingslib.widget.SettingsThemeHelper;
+
+import java.util.List;
@SearchIndexable(forTarget = MOBILE)
public class TopLevelSettings extends DashboardFragment implements SplitLayoutListener,
@@ -88,7 +93,7 @@ public class TopLevelSettings extends DashboardFragment implements SplitLayoutLi
@Override
protected int getPreferenceScreenResId() {
- return Flags.homepageRevamp() ? R.xml.top_level_settings_v2 : R.xml.top_level_settings;
+ return getPreferenceLayoutResId(getContext());
}
@Override
@@ -392,11 +397,25 @@ public class TopLevelSettings extends DashboardFragment implements SplitLayoutLi
void doForEach(Preference preference);
}
+ private static int getPreferenceLayoutResId(Context context) {
+ return Flags.homepageRevamp()
+ ? SettingsThemeHelper.isExpressiveTheme(context)
+ ? R.xml.top_level_settings_expressive
+ : R.xml.top_level_settings_v2
+ : R.xml.top_level_settings;
+ }
+
public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
- new BaseSearchIndexProvider(
- Flags.homepageRevamp()
- ? R.xml.top_level_settings_v2
- : R.xml.top_level_settings) {
+ new BaseSearchIndexProvider() {
+
+ @Override
+ @NonNull
+ public List getXmlResourcesToIndex(
+ @NonNull Context context, boolean enabled) {
+ SearchIndexableResource sir = new SearchIndexableResource(context);
+ sir.xmlResId = getPreferenceLayoutResId(context);
+ return List.of(sir);
+ }
@Override
protected boolean isPageSearchEnabled(Context context) {
diff --git a/src/com/android/settings/location/LocationScreen.kt b/src/com/android/settings/location/LocationScreen.kt
index 1aed27a0314..a742f15e5e9 100644
--- a/src/com/android/settings/location/LocationScreen.kt
+++ b/src/com/android/settings/location/LocationScreen.kt
@@ -24,6 +24,7 @@ import com.android.settingslib.metadata.PreferenceSummaryProvider
import com.android.settingslib.metadata.ProvidePreferenceScreen
import com.android.settingslib.metadata.preferenceHierarchy
import com.android.settingslib.preference.PreferenceScreenCreator
+import com.android.settingslib.widget.SettingsThemeHelper.isExpressiveTheme
@ProvidePreferenceScreen(LocationScreen.KEY)
class LocationScreen : PreferenceScreenCreator, PreferenceSummaryProvider, PreferenceIconProvider {
@@ -47,6 +48,7 @@ class LocationScreen : PreferenceScreenCreator, PreferenceSummaryProvider, Prefe
override fun getIcon(context: Context) =
when {
+ isExpressiveTheme(context) -> R.drawable.ic_homepage_location
Flags.homepageRevamp() -> R.drawable.ic_settings_location_filled
else -> R.drawable.ic_settings_location
}
diff --git a/src/com/android/settings/network/NetworkDashboardScreen.kt b/src/com/android/settings/network/NetworkDashboardScreen.kt
index b80c4a124ed..1fa07a8dd8b 100644
--- a/src/com/android/settings/network/NetworkDashboardScreen.kt
+++ b/src/com/android/settings/network/NetworkDashboardScreen.kt
@@ -26,6 +26,7 @@ import com.android.settingslib.metadata.PreferenceMetadata
import com.android.settingslib.metadata.ProvidePreferenceScreen
import com.android.settingslib.metadata.preferenceHierarchy
import com.android.settingslib.preference.PreferenceScreenCreator
+import com.android.settingslib.widget.SettingsThemeHelper.isExpressiveTheme
@ProvidePreferenceScreen(NetworkDashboardScreen.KEY)
class NetworkDashboardScreen : PreferenceScreenCreator, PreferenceIconProvider {
@@ -37,6 +38,7 @@ class NetworkDashboardScreen : PreferenceScreenCreator, PreferenceIconProvider {
override fun getIcon(context: Context) =
when {
+ isExpressiveTheme(context) -> R.drawable.ic_homepage_network
Flags.homepageRevamp() -> R.drawable.ic_settings_wireless_filled
else -> R.drawable.ic_settings_wireless
}
diff --git a/src/com/android/settings/notification/SoundScreen.kt b/src/com/android/settings/notification/SoundScreen.kt
index 44034cc7dd8..e9bfb0caed0 100644
--- a/src/com/android/settings/notification/SoundScreen.kt
+++ b/src/com/android/settings/notification/SoundScreen.kt
@@ -26,6 +26,7 @@ import com.android.settingslib.metadata.PreferenceMetadata
import com.android.settingslib.metadata.ProvidePreferenceScreen
import com.android.settingslib.metadata.preferenceHierarchy
import com.android.settingslib.preference.PreferenceScreenCreator
+import com.android.settingslib.widget.SettingsThemeHelper.isExpressiveTheme
@ProvidePreferenceScreen(SoundScreen.KEY)
class SoundScreen : PreferenceScreenCreator, PreferenceIconProvider {
@@ -40,6 +41,7 @@ class SoundScreen : PreferenceScreenCreator, PreferenceIconProvider {
override fun getIcon(context: Context) =
when {
+ isExpressiveTheme(context) -> R.drawable.ic_homepage_sound
Flags.homepageRevamp() -> R.drawable.ic_volume_up_filled
else -> R.drawable.ic_volume_up_24dp
}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummaryScreenTest.kt b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummaryScreenTest.kt
index 80a6b2ef8f3..e1d7e972e46 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummaryScreenTest.kt
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummaryScreenTest.kt
@@ -74,6 +74,14 @@ class PowerUsageSummaryScreenTest : CatalystScreenTestCase() {
}
@Test
+ @EnableFlags(com.android.settingslib.widget.theme.flags.Flags.FLAG_IS_EXPRESSIVE_DESIGN_ENABLED)
+ fun getIcon_isExpressiveTheme() {
+ assertThat(preferenceScreenCreator.getIcon(context))
+ .isEqualTo(R.drawable.ic_homepage_battery)
+ }
+
+ @Test
+ @DisableFlags(com.android.settingslib.widget.theme.flags.Flags.FLAG_IS_EXPRESSIVE_DESIGN_ENABLED)
@EnableFlags(Flags.FLAG_HOMEPAGE_REVAMP)
fun getIcon_whenHomePageRevampFlagOn() {
assertThat(preferenceScreenCreator.getIcon(context))