From e3863afe681b5cacaab32dad186b4b17a9474a22 Mon Sep 17 00:00:00 2001 From: Michael W Date: Mon, 11 Nov 2024 21:16:46 +0100 Subject: [PATCH] Settings: Place and order Google & Digital Wellbeing ... in the same category as Security & privacy ... with an approach that can be reused for other keys in the future Co-authored-by: AnierinB Change-Id: I666ebd7f90c11f1836bac10f7fca38baa5aedf93 --- .../settings/dashboard/DashboardFragment.java | 26 ++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/src/com/android/settings/dashboard/DashboardFragment.java b/src/com/android/settings/dashboard/DashboardFragment.java index 8a20d9ad26f..3c1f812a636 100644 --- a/src/com/android/settings/dashboard/DashboardFragment.java +++ b/src/com/android/settings/dashboard/DashboardFragment.java @@ -80,14 +80,22 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment 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" + "dashboard_tile_pref_com.google.android.gms.backup.component.BackupOrRestoreSettingsActivity" ); private static final List SECURITY_PRIVACY_INJECTED_KEYS = Arrays.asList( - "top_level_wellbeing" + "top_level_wellbeing", + "top_level_google" ); + private static final ArrayMap KEY_ORDER = new ArrayMap<>(); + static { + // We have "Passwords, passkeys & accounts with order "-10" above + KEY_ORDER.put("top_level_wellbeing", -5); + KEY_ORDER.put("top_level_google", 0); + // We have "Safety & emergency with order "10" below + } + @VisibleForTesting final ArrayMap> mDashboardTilePrefKeys = new ArrayMap<>(); private final Map> mPreferenceControllers = @@ -609,12 +617,20 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment observers = mDashboardFeatureProvider.bindPreferenceToTileAndGetObservers( getActivity(), this, forceRoundedIcons, preference, tile, key, mPlaceholderPreferenceController.getOrder()); + // Order the prefs within their respective category + if (KEY_ORDER.containsKey(key)) { + preference.setOrder(KEY_ORDER.get(key)); + } } else { // Don't have this key, add it. final Preference pref = createPreference(tile); observers = mDashboardFeatureProvider.bindPreferenceToTileAndGetObservers( getActivity(), this, forceRoundedIcons, pref, tile, key, mPlaceholderPreferenceController.getOrder()); + // Order the prefs within their respective category + if (KEY_ORDER.containsKey(key)) { + pref.setOrder(KEY_ORDER.get(key)); + } if (Flags.dynamicInjectionCategory()) { if (tile.hasGroupKey()) { Preference group = screen.findPreference(tile.getGroupKey()); @@ -636,6 +652,10 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment } else if (SECURITY_PRIVACY_INJECTED_KEYS.contains(key)) { group = screen.findPreference("top_level_security_privacy_category"); } + // Order the prefs within their respective category + if (KEY_ORDER.containsKey(key)) { + pref.setOrder(KEY_ORDER.get(key)); + } if (group instanceof PreferenceCategory) { ((PreferenceCategory) group).addPreference(pref); } else {