Support flagging for PreferenceScreenCreator

Bug: 335132588
Flag: com.android.settingslib.flags.settings_catalyst
Test: Presubmit & Local test
Change-Id: I8e1d8ee679c84401bfcfcfb21f221a619257f6a2
This commit is contained in:
Jacky Wang
2024-09-14 20:33:54 +08:00
parent f6a573530e
commit 7630a4ca95

View File

@@ -55,7 +55,6 @@ import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.drawer.DashboardCategory; import com.android.settingslib.drawer.DashboardCategory;
import com.android.settingslib.drawer.Tile; import com.android.settingslib.drawer.Tile;
import com.android.settingslib.metadata.PreferenceScreenRegistry;
import com.android.settingslib.search.Indexable; import com.android.settingslib.search.Indexable;
import java.util.ArrayList; import java.util.ArrayList;
@@ -101,8 +100,7 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
mDashboardFeatureProvider = mDashboardFeatureProvider =
FeatureFactory.getFeatureFactory().getDashboardFeatureProvider(); FeatureFactory.getFeatureFactory().getDashboardFeatureProvider();
if (!usePreferenceScreenMetadata() || PreferenceScreenRegistry.INSTANCE.get( if (!isCatalystEnabled()) {
getPreferenceScreenBindingKey(context)) == null) {
// Load preference controllers from code // Load preference controllers from code
final List<AbstractPreferenceController> controllersFromCode = final List<AbstractPreferenceController> controllersFromCode =
createPreferenceControllers(context); createPreferenceControllers(context);
@@ -378,7 +376,7 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
return; return;
} }
PreferenceScreen screen; PreferenceScreen screen;
if (usePreferenceScreenMetadata()) { if (isCatalystEnabled()) {
screen = createPreferenceScreen(); screen = createPreferenceScreen();
setPreferenceScreen(screen); setPreferenceScreen(screen);
requireActivity().setTitle(screen.getTitle()); requireActivity().setTitle(screen.getTitle());
@@ -390,18 +388,14 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
displayResourceTilesToScreen(screen); displayResourceTilesToScreen(screen);
} }
@Override /** Returns if catalyst is enabled on current screen. */
protected final boolean usePreferenceScreenMetadata() { protected final boolean isCatalystEnabled() {
return settingsCatalyst() && enableCatalyst(); if (!settingsCatalyst()) {
}
/**
* Returns if settings catalyst should be enabled (e.g. check trunk stable flag) on current
* screen.
*/
protected boolean enableCatalyst() {
return false; return false;
} }
Context context = getContext();
return context != null ? getPreferenceScreenCreator(context) != null : false;
}
/** /**
* Perform {@link AbstractPreferenceController#displayPreference(PreferenceScreen)} * Perform {@link AbstractPreferenceController#displayPreference(PreferenceScreen)}