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 <anierin@evolution-x.org>
Change-Id: I666ebd7f90c11f1836bac10f7fca38baa5aedf93
This commit is contained in:
Michael W
2024-11-11 21:16:46 +01:00
committed by Michael Bestas
parent 7045bdead2
commit e3863afe68

View File

@@ -80,14 +80,22 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
private static final long TIMEOUT_MILLIS = 50L;
private static final List<String> 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<String> SECURITY_PRIVACY_INJECTED_KEYS = Arrays.asList(
"top_level_wellbeing"
"top_level_wellbeing",
"top_level_google"
);
private static final ArrayMap<String, Integer> 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<String, List<DynamicDataObserver>> mDashboardTilePrefKeys = new ArrayMap<>();
private final Map<Class, List<AbstractPreferenceController>> 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 {