diff --git a/src/com/android/settings/applications/manageapplications/ManageApplications.java b/src/com/android/settings/applications/manageapplications/ManageApplications.java index b678e24b5e2..887b1c90517 100644 --- a/src/com/android/settings/applications/manageapplications/ManageApplications.java +++ b/src/com/android/settings/applications/manageapplications/ManageApplications.java @@ -36,7 +36,6 @@ import static com.android.settings.applications.manageapplications.AppFilterRegi import static com.android.settings.applications.manageapplications.AppFilterRegistry.FILTER_APPS_WORK; import static com.android.settings.search.actionbar.SearchMenuController.MENU_SEARCH; -import android.annotation.Nullable; import android.annotation.StringRes; import android.app.Activity; import android.app.ActivityManager; @@ -78,6 +77,7 @@ import android.widget.SearchView; import android.widget.Spinner; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.annotation.WorkerThread; import androidx.coordinatorlayout.widget.CoordinatorLayout; @@ -87,10 +87,16 @@ import androidx.recyclerview.widget.RecyclerView; import com.android.internal.compat.IPlatformCompat; import com.android.settings.R; -import com.android.settings.Settings; +import com.android.settings.Settings.AlarmsAndRemindersActivity; +import com.android.settings.Settings.AppBatteryUsageActivity; +import com.android.settings.Settings.ChangeWifiStateActivity; import com.android.settings.Settings.GamesStorageActivity; import com.android.settings.Settings.HighPowerApplicationsActivity; import com.android.settings.Settings.ManageExternalSourcesActivity; +import com.android.settings.Settings.ManageExternalStorageActivity; +import com.android.settings.Settings.MediaManagementAppsActivity; +import com.android.settings.Settings.NotificationAppListActivity; +import com.android.settings.Settings.NotificationReviewPermissionsActivity; import com.android.settings.Settings.OverlaySettingsActivity; import com.android.settings.Settings.StorageUseActivity; import com.android.settings.Settings.UsageAccessSettingsActivity; @@ -133,7 +139,14 @@ import com.android.settings.notification.ConfigureNotificationSettings; import com.android.settings.notification.NotificationBackend; import com.android.settings.notification.app.AppNotificationSettings; import com.android.settings.spa.SpaActivity; +import com.android.settings.spa.app.AllAppListPageProvider; +import com.android.settings.spa.app.specialaccess.AllFilesAccessAppListProvider; +import com.android.settings.spa.app.specialaccess.DisplayOverOtherAppsAppListProvider; import com.android.settings.spa.app.specialaccess.InstallUnknownAppsListProvider; +import com.android.settings.spa.app.specialaccess.MediaManagementAppsAppListProvider; +import com.android.settings.spa.app.specialaccess.ModifySystemSettingsAppListProvider; +import com.android.settings.spa.notification.AppListNotificationsPageProvider; +import com.android.settings.spa.system.AppLanguagesPageProvider; import com.android.settings.widget.LoadingViewController; import com.android.settings.wifi.AppStateChangeWifiStateBridge; import com.android.settings.wifi.ChangeWifiStateDetails; @@ -279,12 +292,43 @@ public class ManageApplications extends InstrumentedFragment if (!FeatureFlagUtils.isEnabled(context, FeatureFlagUtils.SETTINGS_ENABLE_SPA)) { return; } - Activity activity = getActivity(); - final String className = getClassName(activity.getIntent(), getArguments()); - if (className.equals(ManageExternalSourcesActivity.class.getName())) { - SpaActivity.startSpaActivity( - context, InstallUnknownAppsListProvider.INSTANCE.getAppListRoute()); - activity.finish(); + final String spaDestination = getSpaDestination(); + if (spaDestination != null) { + SpaActivity.startSpaActivity(context, spaDestination); + getActivity().finish(); + } + } + + @Nullable + private String getSpaDestination() { + final String className = getClassName(getActivity().getIntent(), getArguments()); + if (className.equals(UsageAccessSettingsActivity.class.getName())) { + return null; + } else if (className.equals(HighPowerApplicationsActivity.class.getName())) { + return null; + } else if (className.equals(OverlaySettingsActivity.class.getName())) { + return DisplayOverOtherAppsAppListProvider.INSTANCE.getAppListRoute(); + } else if (className.equals(WriteSettingsActivity.class.getName())) { + return ModifySystemSettingsAppListProvider.INSTANCE.getAppListRoute(); + } else if (className.equals(ManageExternalSourcesActivity.class.getName())) { + return InstallUnknownAppsListProvider.INSTANCE.getAppListRoute(); + } else if (className.equals(ChangeWifiStateActivity.class.getName())) { + return null; + } else if (className.equals(ManageExternalStorageActivity.class.getName())) { + return AllFilesAccessAppListProvider.INSTANCE.getAppListRoute(); + } else if (className.equals(MediaManagementAppsActivity.class.getName())) { + return MediaManagementAppsAppListProvider.INSTANCE.getAppListRoute(); + } else if (className.equals(AlarmsAndRemindersActivity.class.getName())) { + return null; + } else if (className.equals(NotificationAppListActivity.class.getName()) + || className.equals(NotificationReviewPermissionsActivity.class.getName())) { + return AppListNotificationsPageProvider.INSTANCE.getName(); + } else if (className.equals(AppLocaleDetails.class.getName())) { + return AppLanguagesPageProvider.INSTANCE.getName(); + } else if (className.equals(AppBatteryUsageActivity.class.getName())) { + return null; + } else { + return AllAppListPageProvider.INSTANCE.getName(); } } @@ -330,23 +374,22 @@ public class ManageApplications extends InstrumentedFragment } else if (className.equals(GamesStorageActivity.class.getName())) { mListType = LIST_TYPE_GAMES; mSortOrder = R.id.sort_order_size; - } else if (className.equals(Settings.ChangeWifiStateActivity.class.getName())) { + } else if (className.equals(ChangeWifiStateActivity.class.getName())) { mListType = LIST_TYPE_WIFI_ACCESS; - } else if (className.equals(Settings.ManageExternalStorageActivity.class.getName())) { + } else if (className.equals(ManageExternalStorageActivity.class.getName())) { mListType = LIST_MANAGE_EXTERNAL_STORAGE; - } else if (className.equals(Settings.MediaManagementAppsActivity.class.getName())) { + } else if (className.equals(MediaManagementAppsActivity.class.getName())) { mListType = LIST_TYPE_MEDIA_MANAGEMENT_APPS; - } else if (className.equals(Settings.AlarmsAndRemindersActivity.class.getName())) { + } else if (className.equals(AlarmsAndRemindersActivity.class.getName())) { mListType = LIST_TYPE_ALARMS_AND_REMINDERS; - } else if (className.equals(Settings.NotificationAppListActivity.class.getName()) - || className.equals( - Settings.NotificationReviewPermissionsActivity.class.getName())) { + } else if (className.equals(NotificationAppListActivity.class.getName()) + || className.equals(NotificationReviewPermissionsActivity.class.getName())) { mListType = LIST_TYPE_NOTIFICATION; mUsageStatsManager = IUsageStatsManager.Stub.asInterface( ServiceManager.getService(Context.USAGE_STATS_SERVICE)); mNotificationBackend = new NotificationBackend(); mSortOrder = R.id.sort_order_recent_notification; - if (className.equals(Settings.NotificationReviewPermissionsActivity.class.getName())) { + if (className.equals(NotificationReviewPermissionsActivity.class.getName())) { // Special-case for a case where a user is directed to the all apps notification // preferences page via a notification prompt to review permissions settings. android.provider.Settings.Global.putInt(getContext().getContentResolver(), @@ -355,17 +398,17 @@ public class ManageApplications extends InstrumentedFragment } } else if (className.equals(AppLocaleDetails.class.getName())) { mListType = LIST_TYPE_APPS_LOCALE; - } else if (className.equals(Settings.AppBatteryUsageActivity.class.getName())) { + } else if (className.equals(AppBatteryUsageActivity.class.getName())) { mListType = LIST_TYPE_BATTERY_OPTIMIZATION; } else { mListType = LIST_TYPE_MAIN; } final AppFilterRegistry appFilterRegistry = AppFilterRegistry.getInstance(); mFilter = appFilterRegistry.get(appFilterRegistry.getDefaultFilterType(mListType)); - mIsPersonalOnly = args != null ? args.getInt(ProfileSelectFragment.EXTRA_PROFILE) - == ProfileSelectFragment.ProfileType.PERSONAL : false; - mIsWorkOnly = args != null ? args.getInt(ProfileSelectFragment.EXTRA_PROFILE) - == ProfileSelectFragment.ProfileType.WORK : false; + mIsPersonalOnly = args != null && args.getInt(ProfileSelectFragment.EXTRA_PROFILE) + == ProfileSelectFragment.ProfileType.PERSONAL; + mIsWorkOnly = args != null && args.getInt(ProfileSelectFragment.EXTRA_PROFILE) + == ProfileSelectFragment.ProfileType.WORK; mWorkUserId = args != null ? args.getInt(EXTRA_WORK_ID) : UserHandle.myUserId(); if (mIsWorkOnly && mWorkUserId == UserHandle.myUserId()) { mWorkUserId = Utils.getManagedProfileId(mUserManager, UserHandle.myUserId()); @@ -958,31 +1001,31 @@ public class ManageApplications extends InstrumentedFragment int screenTitle = intent.getIntExtra( SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE_RESID, R.string.all_apps); String className = getClassName(intent, args); - if (className.equals(Settings.UsageAccessSettingsActivity.class.getName())) { + if (className.equals(UsageAccessSettingsActivity.class.getName())) { screenTitle = R.string.usage_access; - } else if (className.equals(Settings.HighPowerApplicationsActivity.class.getName())) { + } else if (className.equals(HighPowerApplicationsActivity.class.getName())) { screenTitle = R.string.high_power_apps; - } else if (className.equals(Settings.OverlaySettingsActivity.class.getName())) { + } else if (className.equals(OverlaySettingsActivity.class.getName())) { screenTitle = R.string.system_alert_window_settings; - } else if (className.equals(Settings.WriteSettingsActivity.class.getName())) { + } else if (className.equals(WriteSettingsActivity.class.getName())) { screenTitle = R.string.write_settings; - } else if (className.equals(Settings.ManageExternalSourcesActivity.class.getName())) { + } else if (className.equals(ManageExternalSourcesActivity.class.getName())) { screenTitle = R.string.install_other_apps; - } else if (className.equals(Settings.ChangeWifiStateActivity.class.getName())) { + } else if (className.equals(ChangeWifiStateActivity.class.getName())) { screenTitle = R.string.change_wifi_state_title; - } else if (className.equals(Settings.ManageExternalStorageActivity.class.getName())) { + } else if (className.equals(ManageExternalStorageActivity.class.getName())) { screenTitle = R.string.manage_external_storage_title; - } else if (className.equals(Settings.MediaManagementAppsActivity.class.getName())) { + } else if (className.equals(MediaManagementAppsActivity.class.getName())) { screenTitle = R.string.media_management_apps_title; - } else if (className.equals(Settings.AlarmsAndRemindersActivity.class.getName())) { + } else if (className.equals(AlarmsAndRemindersActivity.class.getName())) { screenTitle = R.string.alarms_and_reminders_title; - } else if (className.equals(Settings.NotificationAppListActivity.class.getName()) + } else if (className.equals(NotificationAppListActivity.class.getName()) || className.equals( - Settings.NotificationReviewPermissionsActivity.class.getName())) { + NotificationReviewPermissionsActivity.class.getName())) { screenTitle = R.string.app_notifications_title; } else if (className.equals(AppLocaleDetails.class.getName())) { screenTitle = R.string.app_locales_picker_menu_title; - } else if (className.equals(Settings.AppBatteryUsageActivity.class.getName())) { + } else if (className.equals(AppBatteryUsageActivity.class.getName())) { screenTitle = R.string.app_battery_usage_title; } else { if (screenTitle == -1) {