Navigate more App List to SPA
Guarded by feature flag SETTINGS_ENABLE_SPA, default false. When flag enabled, will navigate to the new App List pages which are implemented by SPA. Bug: 235727273 Test: Manual test with Settings app Change-Id: I1905a92dd19f04c46476ce3157897ea609e590df
This commit is contained in:
@@ -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.applications.manageapplications.AppFilterRegistry.FILTER_APPS_WORK;
|
||||||
import static com.android.settings.search.actionbar.SearchMenuController.MENU_SEARCH;
|
import static com.android.settings.search.actionbar.SearchMenuController.MENU_SEARCH;
|
||||||
|
|
||||||
import android.annotation.Nullable;
|
|
||||||
import android.annotation.StringRes;
|
import android.annotation.StringRes;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.app.ActivityManager;
|
import android.app.ActivityManager;
|
||||||
@@ -78,6 +77,7 @@ import android.widget.SearchView;
|
|||||||
import android.widget.Spinner;
|
import android.widget.Spinner;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
import androidx.annotation.WorkerThread;
|
import androidx.annotation.WorkerThread;
|
||||||
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
||||||
@@ -87,10 +87,16 @@ import androidx.recyclerview.widget.RecyclerView;
|
|||||||
|
|
||||||
import com.android.internal.compat.IPlatformCompat;
|
import com.android.internal.compat.IPlatformCompat;
|
||||||
import com.android.settings.R;
|
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.GamesStorageActivity;
|
||||||
import com.android.settings.Settings.HighPowerApplicationsActivity;
|
import com.android.settings.Settings.HighPowerApplicationsActivity;
|
||||||
import com.android.settings.Settings.ManageExternalSourcesActivity;
|
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.OverlaySettingsActivity;
|
||||||
import com.android.settings.Settings.StorageUseActivity;
|
import com.android.settings.Settings.StorageUseActivity;
|
||||||
import com.android.settings.Settings.UsageAccessSettingsActivity;
|
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.NotificationBackend;
|
||||||
import com.android.settings.notification.app.AppNotificationSettings;
|
import com.android.settings.notification.app.AppNotificationSettings;
|
||||||
import com.android.settings.spa.SpaActivity;
|
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.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.widget.LoadingViewController;
|
||||||
import com.android.settings.wifi.AppStateChangeWifiStateBridge;
|
import com.android.settings.wifi.AppStateChangeWifiStateBridge;
|
||||||
import com.android.settings.wifi.ChangeWifiStateDetails;
|
import com.android.settings.wifi.ChangeWifiStateDetails;
|
||||||
@@ -279,12 +292,43 @@ public class ManageApplications extends InstrumentedFragment
|
|||||||
if (!FeatureFlagUtils.isEnabled(context, FeatureFlagUtils.SETTINGS_ENABLE_SPA)) {
|
if (!FeatureFlagUtils.isEnabled(context, FeatureFlagUtils.SETTINGS_ENABLE_SPA)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Activity activity = getActivity();
|
final String spaDestination = getSpaDestination();
|
||||||
final String className = getClassName(activity.getIntent(), getArguments());
|
if (spaDestination != null) {
|
||||||
if (className.equals(ManageExternalSourcesActivity.class.getName())) {
|
SpaActivity.startSpaActivity(context, spaDestination);
|
||||||
SpaActivity.startSpaActivity(
|
getActivity().finish();
|
||||||
context, InstallUnknownAppsListProvider.INSTANCE.getAppListRoute());
|
}
|
||||||
activity.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())) {
|
} else if (className.equals(GamesStorageActivity.class.getName())) {
|
||||||
mListType = LIST_TYPE_GAMES;
|
mListType = LIST_TYPE_GAMES;
|
||||||
mSortOrder = R.id.sort_order_size;
|
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;
|
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;
|
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;
|
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;
|
mListType = LIST_TYPE_ALARMS_AND_REMINDERS;
|
||||||
} else if (className.equals(Settings.NotificationAppListActivity.class.getName())
|
} else if (className.equals(NotificationAppListActivity.class.getName())
|
||||||
|| className.equals(
|
|| className.equals(NotificationReviewPermissionsActivity.class.getName())) {
|
||||||
Settings.NotificationReviewPermissionsActivity.class.getName())) {
|
|
||||||
mListType = LIST_TYPE_NOTIFICATION;
|
mListType = LIST_TYPE_NOTIFICATION;
|
||||||
mUsageStatsManager = IUsageStatsManager.Stub.asInterface(
|
mUsageStatsManager = IUsageStatsManager.Stub.asInterface(
|
||||||
ServiceManager.getService(Context.USAGE_STATS_SERVICE));
|
ServiceManager.getService(Context.USAGE_STATS_SERVICE));
|
||||||
mNotificationBackend = new NotificationBackend();
|
mNotificationBackend = new NotificationBackend();
|
||||||
mSortOrder = R.id.sort_order_recent_notification;
|
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
|
// 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.
|
// preferences page via a notification prompt to review permissions settings.
|
||||||
android.provider.Settings.Global.putInt(getContext().getContentResolver(),
|
android.provider.Settings.Global.putInt(getContext().getContentResolver(),
|
||||||
@@ -355,17 +398,17 @@ public class ManageApplications extends InstrumentedFragment
|
|||||||
}
|
}
|
||||||
} else if (className.equals(AppLocaleDetails.class.getName())) {
|
} else if (className.equals(AppLocaleDetails.class.getName())) {
|
||||||
mListType = LIST_TYPE_APPS_LOCALE;
|
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;
|
mListType = LIST_TYPE_BATTERY_OPTIMIZATION;
|
||||||
} else {
|
} else {
|
||||||
mListType = LIST_TYPE_MAIN;
|
mListType = LIST_TYPE_MAIN;
|
||||||
}
|
}
|
||||||
final AppFilterRegistry appFilterRegistry = AppFilterRegistry.getInstance();
|
final AppFilterRegistry appFilterRegistry = AppFilterRegistry.getInstance();
|
||||||
mFilter = appFilterRegistry.get(appFilterRegistry.getDefaultFilterType(mListType));
|
mFilter = appFilterRegistry.get(appFilterRegistry.getDefaultFilterType(mListType));
|
||||||
mIsPersonalOnly = args != null ? args.getInt(ProfileSelectFragment.EXTRA_PROFILE)
|
mIsPersonalOnly = args != null && args.getInt(ProfileSelectFragment.EXTRA_PROFILE)
|
||||||
== ProfileSelectFragment.ProfileType.PERSONAL : false;
|
== ProfileSelectFragment.ProfileType.PERSONAL;
|
||||||
mIsWorkOnly = args != null ? args.getInt(ProfileSelectFragment.EXTRA_PROFILE)
|
mIsWorkOnly = args != null && args.getInt(ProfileSelectFragment.EXTRA_PROFILE)
|
||||||
== ProfileSelectFragment.ProfileType.WORK : false;
|
== ProfileSelectFragment.ProfileType.WORK;
|
||||||
mWorkUserId = args != null ? args.getInt(EXTRA_WORK_ID) : UserHandle.myUserId();
|
mWorkUserId = args != null ? args.getInt(EXTRA_WORK_ID) : UserHandle.myUserId();
|
||||||
if (mIsWorkOnly && mWorkUserId == UserHandle.myUserId()) {
|
if (mIsWorkOnly && mWorkUserId == UserHandle.myUserId()) {
|
||||||
mWorkUserId = Utils.getManagedProfileId(mUserManager, UserHandle.myUserId());
|
mWorkUserId = Utils.getManagedProfileId(mUserManager, UserHandle.myUserId());
|
||||||
@@ -958,31 +1001,31 @@ public class ManageApplications extends InstrumentedFragment
|
|||||||
int screenTitle = intent.getIntExtra(
|
int screenTitle = intent.getIntExtra(
|
||||||
SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE_RESID, R.string.all_apps);
|
SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE_RESID, R.string.all_apps);
|
||||||
String className = getClassName(intent, args);
|
String className = getClassName(intent, args);
|
||||||
if (className.equals(Settings.UsageAccessSettingsActivity.class.getName())) {
|
if (className.equals(UsageAccessSettingsActivity.class.getName())) {
|
||||||
screenTitle = R.string.usage_access;
|
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;
|
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;
|
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;
|
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;
|
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;
|
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;
|
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;
|
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;
|
screenTitle = R.string.alarms_and_reminders_title;
|
||||||
} else if (className.equals(Settings.NotificationAppListActivity.class.getName())
|
} else if (className.equals(NotificationAppListActivity.class.getName())
|
||||||
|| className.equals(
|
|| className.equals(
|
||||||
Settings.NotificationReviewPermissionsActivity.class.getName())) {
|
NotificationReviewPermissionsActivity.class.getName())) {
|
||||||
screenTitle = R.string.app_notifications_title;
|
screenTitle = R.string.app_notifications_title;
|
||||||
} else if (className.equals(AppLocaleDetails.class.getName())) {
|
} else if (className.equals(AppLocaleDetails.class.getName())) {
|
||||||
screenTitle = R.string.app_locales_picker_menu_title;
|
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;
|
screenTitle = R.string.app_battery_usage_title;
|
||||||
} else {
|
} else {
|
||||||
if (screenTitle == -1) {
|
if (screenTitle == -1) {
|
||||||
|
Reference in New Issue
Block a user