Loading aconfig/settings_flag_declarations.aconfig +7 −0 Original line number Diff line number Diff line Loading @@ -28,3 +28,10 @@ flag { description: "Feature flag to enable new settings homepage UX." bug: "321612737" } flag { name: "dynamic_injection_category" namespace: "android_settings" description: "Feature flag to enable injection into PreferenceCategory." bug: "333547416" } src/com/android/settings/dashboard/DashboardFragment.java +22 −7 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ import com.android.settings.core.BasePreferenceController; import com.android.settings.core.CategoryMixin.CategoryHandler; import com.android.settings.core.CategoryMixin.CategoryListener; import com.android.settings.core.PreferenceControllerListHelper; import com.android.settings.flags.Flags; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.PrimarySwitchPreference; import com.android.settingslib.core.AbstractPreferenceController; Loading Loading @@ -543,14 +544,24 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment observers = mDashboardFeatureProvider.bindPreferenceToTileAndGetObservers( getActivity(), this, forceRoundedIcons, pref, tile, key, mPlaceholderPreferenceController.getOrder()); if (tile.hasGroupKey() && mDashboardTilePrefKeys.containsKey(tile.getGroupKey())) { final Preference group = screen.findPreference(tile.getGroupKey()); if (Flags.dynamicInjectionCategory()) { Preference group = screen.findPreference(tile.getGroupKey()); if (tile.hasGroupKey() && group instanceof PreferenceCategory) { ((PreferenceCategory) group).addPreference(pref); } else { screen.addPreference(pref); } } else { if (tile.hasGroupKey() && mDashboardTilePrefKeys.containsKey(tile.getGroupKey())) { Preference group = screen.findPreference(tile.getGroupKey()); if (group instanceof PreferenceCategory) { ((PreferenceCategory) group).addPreference(pref); } } else { screen.addPreference(pref); } } registerDynamicDataObservers(observers); mDashboardTilePrefKeys.put(key, observers); } Loading @@ -564,10 +575,14 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment for (Map.Entry<String, List<DynamicDataObserver>> entry : remove.entrySet()) { final String key = entry.getKey(); mDashboardTilePrefKeys.remove(key); final Preference preference = screen.findPreference(key); if (Flags.dynamicInjectionCategory()) { screen.removePreferenceRecursively(key); } else { Preference preference = screen.findPreference(key); if (preference != null) { screen.removePreference(preference); } } unregisterDynamicDataObservers(entry.getValue()); } Loading Loading
aconfig/settings_flag_declarations.aconfig +7 −0 Original line number Diff line number Diff line Loading @@ -28,3 +28,10 @@ flag { description: "Feature flag to enable new settings homepage UX." bug: "321612737" } flag { name: "dynamic_injection_category" namespace: "android_settings" description: "Feature flag to enable injection into PreferenceCategory." bug: "333547416" }
src/com/android/settings/dashboard/DashboardFragment.java +22 −7 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ import com.android.settings.core.BasePreferenceController; import com.android.settings.core.CategoryMixin.CategoryHandler; import com.android.settings.core.CategoryMixin.CategoryListener; import com.android.settings.core.PreferenceControllerListHelper; import com.android.settings.flags.Flags; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.PrimarySwitchPreference; import com.android.settingslib.core.AbstractPreferenceController; Loading Loading @@ -543,14 +544,24 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment observers = mDashboardFeatureProvider.bindPreferenceToTileAndGetObservers( getActivity(), this, forceRoundedIcons, pref, tile, key, mPlaceholderPreferenceController.getOrder()); if (tile.hasGroupKey() && mDashboardTilePrefKeys.containsKey(tile.getGroupKey())) { final Preference group = screen.findPreference(tile.getGroupKey()); if (Flags.dynamicInjectionCategory()) { Preference group = screen.findPreference(tile.getGroupKey()); if (tile.hasGroupKey() && group instanceof PreferenceCategory) { ((PreferenceCategory) group).addPreference(pref); } else { screen.addPreference(pref); } } else { if (tile.hasGroupKey() && mDashboardTilePrefKeys.containsKey(tile.getGroupKey())) { Preference group = screen.findPreference(tile.getGroupKey()); if (group instanceof PreferenceCategory) { ((PreferenceCategory) group).addPreference(pref); } } else { screen.addPreference(pref); } } registerDynamicDataObservers(observers); mDashboardTilePrefKeys.put(key, observers); } Loading @@ -564,10 +575,14 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment for (Map.Entry<String, List<DynamicDataObserver>> entry : remove.entrySet()) { final String key = entry.getKey(); mDashboardTilePrefKeys.remove(key); final Preference preference = screen.findPreference(key); if (Flags.dynamicInjectionCategory()) { screen.removePreferenceRecursively(key); } else { Preference preference = screen.findPreference(key); if (preference != null) { screen.removePreference(preference); } } unregisterDynamicDataObservers(entry.getValue()); } Loading