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 long TIMEOUT_MILLIS = 50L;
private static final List<String> ACCOUNT_INJECTED_KEYS = Arrays.asList( private static final List<String> ACCOUNT_INJECTED_KEYS = Arrays.asList(
"dashboard_tile_pref_com.google.android.gms.backup.component.BackupOrRestoreSettingsActivity", "dashboard_tile_pref_com.google.android.gms.backup.component.BackupOrRestoreSettingsActivity"
"top_level_google"
); );
private static final List<String> SECURITY_PRIVACY_INJECTED_KEYS = Arrays.asList( 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 @VisibleForTesting
final ArrayMap<String, List<DynamicDataObserver>> mDashboardTilePrefKeys = new ArrayMap<>(); final ArrayMap<String, List<DynamicDataObserver>> mDashboardTilePrefKeys = new ArrayMap<>();
private final Map<Class, List<AbstractPreferenceController>> mPreferenceControllers = private final Map<Class, List<AbstractPreferenceController>> mPreferenceControllers =
@@ -609,12 +617,20 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
observers = mDashboardFeatureProvider.bindPreferenceToTileAndGetObservers( observers = mDashboardFeatureProvider.bindPreferenceToTileAndGetObservers(
getActivity(), this, forceRoundedIcons, preference, tile, key, getActivity(), this, forceRoundedIcons, preference, tile, key,
mPlaceholderPreferenceController.getOrder()); mPlaceholderPreferenceController.getOrder());
// Order the prefs within their respective category
if (KEY_ORDER.containsKey(key)) {
preference.setOrder(KEY_ORDER.get(key));
}
} else { } else {
// Don't have this key, add it. // Don't have this key, add it.
final Preference pref = createPreference(tile); final Preference pref = createPreference(tile);
observers = mDashboardFeatureProvider.bindPreferenceToTileAndGetObservers( observers = mDashboardFeatureProvider.bindPreferenceToTileAndGetObservers(
getActivity(), this, forceRoundedIcons, pref, tile, key, getActivity(), this, forceRoundedIcons, pref, tile, key,
mPlaceholderPreferenceController.getOrder()); mPlaceholderPreferenceController.getOrder());
// Order the prefs within their respective category
if (KEY_ORDER.containsKey(key)) {
pref.setOrder(KEY_ORDER.get(key));
}
if (Flags.dynamicInjectionCategory()) { if (Flags.dynamicInjectionCategory()) {
if (tile.hasGroupKey()) { if (tile.hasGroupKey()) {
Preference group = screen.findPreference(tile.getGroupKey()); Preference group = screen.findPreference(tile.getGroupKey());
@@ -636,6 +652,10 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
} else if (SECURITY_PRIVACY_INJECTED_KEYS.contains(key)) { } else if (SECURITY_PRIVACY_INJECTED_KEYS.contains(key)) {
group = screen.findPreference("top_level_security_privacy_category"); 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) { if (group instanceof PreferenceCategory) {
((PreferenceCategory) group).addPreference(pref); ((PreferenceCategory) group).addPreference(pref);
} else { } else {