Refactor FeatureFactory

Not use reflection, sets the FeatureFactoryImpl in SettingsApplication
instead.

Bug: 286764889
Test: m Settings
Test: m SettingsSpaUnitTests
Test: m RunSettingsRoboTests
Change-Id: I881bf1009a94222fc89578d14a6792a6e1507be2
This commit is contained in:
Chaohui Wang
2023-06-12 12:19:46 +08:00
parent a09fd45249
commit 63eddc12dd
10 changed files with 451 additions and 716 deletions

View File

@@ -17,15 +17,20 @@
package com.android.settings;
import android.app.Application;
import android.content.Context;
import android.database.ContentObserver;
import android.net.Uri;
import android.provider.Settings;
import android.util.FeatureFlagUtils;
import androidx.annotation.NonNull;
import com.android.settings.activityembedding.ActivityEmbeddingRulesController;
import com.android.settings.activityembedding.ActivityEmbeddingUtils;
import com.android.settings.core.instrumentation.ElapsedTimeUtils;
import com.android.settings.homepage.SettingsHomepageActivity;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.overlay.FeatureFactoryImpl;
import com.android.settings.spa.SettingsSpaEnvironment;
import com.android.settingslib.applications.AppIconCacheManager;
import com.android.settingslib.spa.framework.common.SpaEnvironmentFactory;
@@ -39,6 +44,12 @@ public class SettingsApplication extends Application {
private WeakReference<SettingsHomepageActivity> mHomeActivity = new WeakReference<>(null);
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
FeatureFactory.setFactory(this, getFeatureFactory());
}
@Override
public void onCreate() {
super.onCreate();
@@ -62,6 +73,11 @@ public class SettingsApplication extends Application {
}
}
@NonNull
protected FeatureFactory getFeatureFactory() {
return new FeatureFactoryImpl();
}
/**
* Set the spa environment instance.
* Override this function to set different spa environment for different Settings app.