diff --git a/src/com/android/settings/applications/AppInfoBase.java b/src/com/android/settings/applications/AppInfoBase.java index 3261d6cf3b9..6f8597e0c4d 100644 --- a/src/com/android/settings/applications/AppInfoBase.java +++ b/src/com/android/settings/applications/AppInfoBase.java @@ -90,8 +90,8 @@ public abstract class AppInfoBase extends SettingsPreferenceFragment super.onCreate(savedInstanceState); mFinishing = false; final Activity activity = getActivity(); - mApplicationFeatureProvider = FeatureFactory.getFactory(activity) - .getApplicationFeatureProvider(activity); + mApplicationFeatureProvider = FeatureFactory.getFeatureFactory() + .getApplicationFeatureProvider(); mState = ApplicationsState.getInstance(activity.getApplication()); mSession = mState.newSession(this, getSettingsLifecycle()); mDpm = (DevicePolicyManager) activity.getSystemService(Context.DEVICE_POLICY_SERVICE); diff --git a/src/com/android/settings/applications/appinfo/AppButtonsPreferenceController.java b/src/com/android/settings/applications/appinfo/AppButtonsPreferenceController.java index ff191ab4476..03053fdeeb6 100644 --- a/src/com/android/settings/applications/appinfo/AppButtonsPreferenceController.java +++ b/src/com/android/settings/applications/appinfo/AppButtonsPreferenceController.java @@ -138,9 +138,9 @@ public class AppButtonsPreferenceController extends BasePreferenceController imp "Fragment should implement AppButtonsDialogListener"); } - final FeatureFactory factory = FeatureFactory.getFactory(activity); + final FeatureFactory factory = FeatureFactory.getFeatureFactory(); mMetricsFeatureProvider = factory.getMetricsFeatureProvider(); - mApplicationFeatureProvider = factory.getApplicationFeatureProvider(activity); + mApplicationFeatureProvider = factory.getApplicationFeatureProvider(); mState = state; mDpm = (DevicePolicyManager) activity.getSystemService(Context.DEVICE_POLICY_SERVICE); mUserManager = (UserManager) activity.getSystemService(Context.USER_SERVICE); diff --git a/src/com/android/settings/applications/appinfo/LongBackgroundTasksDetailsPreferenceController.java b/src/com/android/settings/applications/appinfo/LongBackgroundTasksDetailsPreferenceController.java index 68f893c3602..0f2b5aaa229 100644 --- a/src/com/android/settings/applications/appinfo/LongBackgroundTasksDetailsPreferenceController.java +++ b/src/com/android/settings/applications/appinfo/LongBackgroundTasksDetailsPreferenceController.java @@ -40,8 +40,8 @@ public class LongBackgroundTasksDetailsPreferenceController extends public LongBackgroundTasksDetailsPreferenceController(Context context, String key) { super(context, key); - mAppFeatureProvider = FeatureFactory.getFactory(context) - .getApplicationFeatureProvider(context); + mAppFeatureProvider = FeatureFactory.getFeatureFactory() + .getApplicationFeatureProvider(); } @VisibleForTesting diff --git a/src/com/android/settings/applications/appinfo/TimeSpentInAppPreferenceController.java b/src/com/android/settings/applications/appinfo/TimeSpentInAppPreferenceController.java index 3682af27f2f..b0ef00c508e 100644 --- a/src/com/android/settings/applications/appinfo/TimeSpentInAppPreferenceController.java +++ b/src/com/android/settings/applications/appinfo/TimeSpentInAppPreferenceController.java @@ -53,8 +53,8 @@ public class TimeSpentInAppPreferenceController extends LiveDataController { public TimeSpentInAppPreferenceController(Context context, String preferenceKey) { super(context, preferenceKey); mPackageManager = context.getPackageManager(); - mAppFeatureProvider = FeatureFactory.getFactory(context) - .getApplicationFeatureProvider(context); + mAppFeatureProvider = FeatureFactory.getFeatureFactory() + .getApplicationFeatureProvider(); } public void setPackageName(String packageName) { diff --git a/src/com/android/settings/applications/specialaccess/applications/LongBackgroundTaskController.java b/src/com/android/settings/applications/specialaccess/applications/LongBackgroundTaskController.java index ccfa9c88d35..93bf1ad4cec 100644 --- a/src/com/android/settings/applications/specialaccess/applications/LongBackgroundTaskController.java +++ b/src/com/android/settings/applications/specialaccess/applications/LongBackgroundTaskController.java @@ -30,8 +30,8 @@ public class LongBackgroundTaskController extends BasePreferenceController { public LongBackgroundTaskController(Context context, String preferenceKey) { super(context, preferenceKey); - mAppFeatureProvider = FeatureFactory.getFactory(context) - .getApplicationFeatureProvider(context); + mAppFeatureProvider = FeatureFactory.getFeatureFactory() + .getApplicationFeatureProvider(); } @Override diff --git a/src/com/android/settings/enterprise/AdminGrantedPermissionsPreferenceControllerBase.java b/src/com/android/settings/enterprise/AdminGrantedPermissionsPreferenceControllerBase.java index 65ee5e063d9..de14689ac31 100644 --- a/src/com/android/settings/enterprise/AdminGrantedPermissionsPreferenceControllerBase.java +++ b/src/com/android/settings/enterprise/AdminGrantedPermissionsPreferenceControllerBase.java @@ -38,8 +38,8 @@ public abstract class AdminGrantedPermissionsPreferenceControllerBase String[] permissions) { super(context); mPermissions = permissions; - mFeatureProvider = FeatureFactory.getFactory(context) - .getApplicationFeatureProvider(context); + mFeatureProvider = FeatureFactory.getFeatureFactory() + .getApplicationFeatureProvider(); mAsync = async; mHasApps = false; } diff --git a/src/com/android/settings/enterprise/ApplicationListFragment.java b/src/com/android/settings/enterprise/ApplicationListFragment.java index 38a5c6f0526..10707baea46 100644 --- a/src/com/android/settings/enterprise/ApplicationListFragment.java +++ b/src/com/android/settings/enterprise/ApplicationListFragment.java @@ -79,7 +79,7 @@ public abstract class ApplicationListFragment extends DashboardFragment @Override public void buildApplicationList(Context context, ApplicationFeatureProvider.ListOfAppsCallback callback) { - FeatureFactory.getFactory(context).getApplicationFeatureProvider(context) + FeatureFactory.getFeatureFactory().getApplicationFeatureProvider() .listAppsWithAdminGrantedPermissions(mPermissions, callback); } @@ -120,8 +120,8 @@ public abstract class ApplicationListFragment extends DashboardFragment @Override public void buildApplicationList(Context context, ApplicationFeatureProvider.ListOfAppsCallback callback) { - FeatureFactory.getFactory(context).getApplicationFeatureProvider(context). - listPolicyInstalledApps(callback); + FeatureFactory.getFeatureFactory() + .getApplicationFeatureProvider().listPolicyInstalledApps(callback); } } } diff --git a/src/com/android/settings/enterprise/EnterpriseInstalledPackagesPreferenceController.java b/src/com/android/settings/enterprise/EnterpriseInstalledPackagesPreferenceController.java index 91ebeff7523..141116fbd77 100644 --- a/src/com/android/settings/enterprise/EnterpriseInstalledPackagesPreferenceController.java +++ b/src/com/android/settings/enterprise/EnterpriseInstalledPackagesPreferenceController.java @@ -34,8 +34,8 @@ public class EnterpriseInstalledPackagesPreferenceController public EnterpriseInstalledPackagesPreferenceController(Context context, boolean async) { super(context); - mFeatureProvider = FeatureFactory.getFactory(context) - .getApplicationFeatureProvider(context); + mFeatureProvider = FeatureFactory.getFeatureFactory() + .getApplicationFeatureProvider(); mAsync = async; } diff --git a/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsListPreferenceController.java b/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsListPreferenceController.java index 3e83523842d..5e7878e1e68 100644 --- a/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsListPreferenceController.java +++ b/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsListPreferenceController.java @@ -69,8 +69,8 @@ public class EnterpriseSetDefaultAppsListPreferenceController extends super(context); mPm = packageManager; mParent = parent; - final FeatureFactory factory = FeatureFactory.getFactory(context); - mApplicationFeatureProvider = factory.getApplicationFeatureProvider(context); + final FeatureFactory factory = FeatureFactory.getFeatureFactory(); + mApplicationFeatureProvider = factory.getApplicationFeatureProvider(); mEnterprisePrivacyFeatureProvider = factory.getEnterprisePrivacyFeatureProvider(context); mUserFeatureProvider = factory.getUserFeatureProvider(context); buildAppList(); diff --git a/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsPreferenceController.java b/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsPreferenceController.java index 32abcc461de..d09e54bc8dc 100644 --- a/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsPreferenceController.java +++ b/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsPreferenceController.java @@ -37,8 +37,8 @@ public class EnterpriseSetDefaultAppsPreferenceController public EnterpriseSetDefaultAppsPreferenceController(Context context) { super(context); - final FeatureFactory factory = FeatureFactory.getFactory(context); - mApplicationFeatureProvider = factory.getApplicationFeatureProvider(context); + final FeatureFactory factory = FeatureFactory.getFeatureFactory(); + mApplicationFeatureProvider = factory.getApplicationFeatureProvider(); mUserFeatureProvider = factory.getUserFeatureProvider(context); } diff --git a/src/com/android/settings/overlay/FeatureFactory.kt b/src/com/android/settings/overlay/FeatureFactory.kt index c7949bcddad..81dcdd514dc 100644 --- a/src/com/android/settings/overlay/FeatureFactory.kt +++ b/src/com/android/settings/overlay/FeatureFactory.kt @@ -84,7 +84,7 @@ abstract class FeatureFactory { abstract fun getDashboardFeatureProvider(context: Context): DashboardFeatureProvider abstract val dockUpdaterFeatureProvider: DockUpdaterFeatureProvider - abstract fun getApplicationFeatureProvider(context: Context): ApplicationFeatureProvider + abstract val applicationFeatureProvider: ApplicationFeatureProvider abstract val localeFeatureProvider: LocaleFeatureProvider abstract fun getEnterprisePrivacyFeatureProvider( diff --git a/src/com/android/settings/overlay/FeatureFactoryImpl.kt b/src/com/android/settings/overlay/FeatureFactoryImpl.kt index 8b1641eeea0..77f6812c931 100644 --- a/src/com/android/settings/overlay/FeatureFactoryImpl.kt +++ b/src/com/android/settings/overlay/FeatureFactoryImpl.kt @@ -66,15 +66,6 @@ import com.android.settingslib.spaprivileged.framework.common.devicePolicyManage * [FeatureFactory] implementation for AOSP Settings. */ open class FeatureFactoryImpl : FeatureFactory() { - private val applicationFeatureProvider by lazy { - ApplicationFeatureProviderImpl( - appContext, - appContext.packageManager, - AppGlobals.getPackageManager(), - appContext.devicePolicyManager, - ) - } - private val dashboardFeatureProvider by lazy { DashboardFeatureProviderImpl(appContext) } private val enterprisePrivacyFeatureProvider by lazy { @@ -120,7 +111,14 @@ open class FeatureFactoryImpl : FeatureFactory() { DockUpdaterFeatureProviderImpl() } - override fun getApplicationFeatureProvider(context: Context) = applicationFeatureProvider + override val applicationFeatureProvider by lazy { + ApplicationFeatureProviderImpl( + appContext, + appContext.packageManager, + AppGlobals.getPackageManager(), + appContext.devicePolicyManager, + ) + } override val localeFeatureProvider by lazy { LocaleFeatureProviderImpl() } diff --git a/src/com/android/settings/spa/app/appinfo/AppDisableButton.kt b/src/com/android/settings/spa/app/appinfo/AppDisableButton.kt index aebbdd9995f..555e9f14c61 100644 --- a/src/com/android/settings/spa/app/appinfo/AppDisableButton.kt +++ b/src/com/android/settings/spa/app/appinfo/AppDisableButton.kt @@ -43,7 +43,7 @@ class AppDisableButton( private val packageManager = context.packageManager private val userManager = context.userManager private val devicePolicyManager = context.devicePolicyManager - private val applicationFeatureProvider = featureFactory.getApplicationFeatureProvider(context) + private val applicationFeatureProvider = featureFactory.applicationFeatureProvider @Composable fun getActionButton(app: ApplicationInfo): ActionButton? { diff --git a/src/com/android/settings/spa/app/appinfo/AppTimeSpentPreference.kt b/src/com/android/settings/spa/app/appinfo/AppTimeSpentPreference.kt index 0f168fc057b..21b3d735b56 100644 --- a/src/com/android/settings/spa/app/appinfo/AppTimeSpentPreference.kt +++ b/src/com/android/settings/spa/app/appinfo/AppTimeSpentPreference.kt @@ -60,7 +60,7 @@ private class AppTimeSpentPresenter( private val intent = Intent(Settings.ACTION_APP_USAGE_SETTINGS).apply { putExtra(Intent.EXTRA_PACKAGE_NAME, app.packageName) } - private val appFeatureProvider = featureFactory.getApplicationFeatureProvider(context) + private val appFeatureProvider = featureFactory.applicationFeatureProvider fun isAvailable() = context.packageManager.queryIntentActivitiesAsUser( intent, ResolveInfoFlags.of(0), app.userId diff --git a/tests/robotests/src/com/android/settings/testutils/FakeFeatureFactory.java b/tests/robotests/src/com/android/settings/testutils/FakeFeatureFactory.java index b0a28858d9e..4c843ee72fe 100644 --- a/tests/robotests/src/com/android/settings/testutils/FakeFeatureFactory.java +++ b/tests/robotests/src/com/android/settings/testutils/FakeFeatureFactory.java @@ -53,6 +53,8 @@ import com.android.settings.wifi.WifiTrackerLibProvider; import com.android.settings.wifi.factory.WifiFeatureProvider; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; +import org.jetbrains.annotations.NotNull; + /** * Test util to provide fake FeatureFactory. To use this factory, call {@code setupForTest} in * {@code @Before} method of the test class. @@ -177,8 +179,9 @@ public class FakeFeatureFactory extends FeatureFactory { return dockUpdaterFeatureProvider; } + @NotNull @Override - public ApplicationFeatureProvider getApplicationFeatureProvider(Context context) { + public ApplicationFeatureProvider getApplicationFeatureProvider() { return applicationFeatureProvider; } diff --git a/tests/spa_unit/src/com/android/settings/testutils/FakeFeatureFactory.kt b/tests/spa_unit/src/com/android/settings/testutils/FakeFeatureFactory.kt index 20757de37cc..154f2e805d7 100644 --- a/tests/spa_unit/src/com/android/settings/testutils/FakeFeatureFactory.kt +++ b/tests/spa_unit/src/com/android/settings/testutils/FakeFeatureFactory.kt @@ -93,7 +93,7 @@ class FakeFeatureFactory : FeatureFactory() { override val dockUpdaterFeatureProvider: DockUpdaterFeatureProvider get() = TODO("Not yet implemented") - override fun getApplicationFeatureProvider(context: Context) = mockApplicationFeatureProvider + override val applicationFeatureProvider = mockApplicationFeatureProvider override val localeFeatureProvider: LocaleFeatureProvider get() = TODO("Not yet implemented") diff --git a/tests/unit/src/com/android/settings/testutils/FakeFeatureFactory.java b/tests/unit/src/com/android/settings/testutils/FakeFeatureFactory.java index cbb14744e26..75e5f89d524 100644 --- a/tests/unit/src/com/android/settings/testutils/FakeFeatureFactory.java +++ b/tests/unit/src/com/android/settings/testutils/FakeFeatureFactory.java @@ -53,6 +53,8 @@ import com.android.settings.wifi.WifiTrackerLibProvider; import com.android.settings.wifi.factory.WifiFeatureProvider; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; +import org.jetbrains.annotations.NotNull; + /** * Test util to provide fake FeatureFactory. To use this factory, call {@code setupForTest} in * {@code @Before} method of the test class. @@ -176,8 +178,9 @@ public class FakeFeatureFactory extends FeatureFactory { return dockUpdaterFeatureProvider; } + @NotNull @Override - public ApplicationFeatureProvider getApplicationFeatureProvider(Context context) { + public ApplicationFeatureProvider getApplicationFeatureProvider() { return applicationFeatureProvider; }