[Catalyst] Provide screen key to @ProvidePreferenceScreen

NO_IFTTT=Catalyst only

Bug: 386179791
Flag: com.android.settings.flags.catalyst
Test: manual
Change-Id: Ie8106ec45a32e4a61826512fc62746c9ffc47d9c
This commit is contained in:
Jacky Wang
2024-12-27 08:00:44 +08:00
parent 11a5a8b27a
commit cfcf20c70a
27 changed files with 67 additions and 70 deletions

View File

@@ -43,7 +43,8 @@ import com.android.settings.overlay.FeatureFactoryImpl;
import com.android.settings.spa.SettingsSpaEnvironment;
import com.android.settingslib.applications.AppIconCacheManager;
import com.android.settingslib.datastore.BackupRestoreStorageManager;
import com.android.settingslib.metadata.PreferenceScreenMetadata;
import com.android.settingslib.metadata.FixedArrayMap;
import com.android.settingslib.metadata.PreferenceScreenMetadataCreator;
import com.android.settingslib.metadata.PreferenceScreenRegistry;
import com.android.settingslib.metadata.ProvidePreferenceScreenOptions;
import com.android.settingslib.preference.PreferenceBindingFactory;
@@ -52,7 +53,6 @@ import com.android.settingslib.spa.framework.common.SpaEnvironmentFactory;
import com.google.android.setupcompat.util.WizardManagerHelper;
import java.lang.ref.WeakReference;
import java.util.List;
/** Settings application which sets up activity embedding rules for the large screen device. */
@ProvidePreferenceScreenOptions(
@@ -75,8 +75,8 @@ public class SettingsApplication extends Application {
super.onCreate();
if (Flags.catalyst()) {
PreferenceScreenRegistry.INSTANCE.setPreferenceScreensSupplier(
this::getPreferenceScreens);
PreferenceScreenRegistry.INSTANCE.setPreferenceScreenMetadataCreators(
getPreferenceScreenCreators());
PreferenceBindingFactory.setDefaultFactory(new SettingsPreferenceBindingFactory());
}
@@ -106,11 +106,11 @@ public class SettingsApplication extends Application {
registerActivityLifecycleCallbacks(new DeveloperOptionsActivityLifecycle());
}
/** Returns the screens using metadata. */
protected List<PreferenceScreenMetadata> getPreferenceScreens() {
/** Returns the creators of preference screen metadata. */
protected FixedArrayMap<String, PreferenceScreenMetadataCreator> getPreferenceScreenCreators() {
// PreferenceScreenCollector is generated by annotation processor from classes annotated
// with @ProvidePreferenceScreen
return PreferenceScreenCollector.get(this);
return PreferenceScreenCollector.get();
}
@Override