From 9486e87179949fc1b806d2b1852afbb34cc680ce Mon Sep 17 00:00:00 2001 From: shoya0x00 Date: Sat, 19 Oct 2024 12:42:04 +0000 Subject: [PATCH] Settings: Set correct categories for GMS top level activities On new revamped Settings UX dashboard is missing styling for GMS top level activities. This is fixed by assigning them respective categories. Change-Id: I5f18fab2419c8346760c4f6bed6f77e1eac8e059 Signed-off-by: shoya0x00 --- .../settings/dashboard/DashboardFragment.java | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/com/android/settings/dashboard/DashboardFragment.java b/src/com/android/settings/dashboard/DashboardFragment.java index e97834f0b87..8a20d9ad26f 100644 --- a/src/com/android/settings/dashboard/DashboardFragment.java +++ b/src/com/android/settings/dashboard/DashboardFragment.java @@ -79,6 +79,15 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment private static final String TAG = "DashboardFragment"; private static final long TIMEOUT_MILLIS = 50L; + private static final List ACCOUNT_INJECTED_KEYS = Arrays.asList( + "dashboard_tile_pref_com.google.android.gms.backup.component.BackupOrRestoreSettingsActivity", + "top_level_google" + ); + + private static final List SECURITY_PRIVACY_INJECTED_KEYS = Arrays.asList( + "top_level_wellbeing" + ); + @VisibleForTesting final ArrayMap> mDashboardTilePrefKeys = new ArrayMap<>(); private final Map> mPreferenceControllers = @@ -618,12 +627,17 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment screen.addPreference(pref); } } else { + Preference group = null; if (tile.hasGroupKey() && mDashboardTilePrefKeys.containsKey(tile.getGroupKey())) { - Preference group = screen.findPreference(tile.getGroupKey()); - if (group instanceof PreferenceCategory) { - ((PreferenceCategory) group).addPreference(pref); - } + group = screen.findPreference(tile.getGroupKey()); + } else if (ACCOUNT_INJECTED_KEYS.contains(key)) { + group = screen.findPreference("top_level_account_category"); + } else if (SECURITY_PRIVACY_INJECTED_KEYS.contains(key)) { + group = screen.findPreference("top_level_security_privacy_category"); + } + if (group instanceof PreferenceCategory) { + ((PreferenceCategory) group).addPreference(pref); } else { screen.addPreference(pref); }