Create a preference controller for "App info"

We try to avoid managing too many preferences in a controller.
So, we create another controller to manage all apps info preference.

RecentAppsPreferenceController and AllAppsInfoPreferenceController
share same state of recent apps in order to improve the performance.

Test: visual, robo test
Fixes: 126134996
Change-Id: I1d8a175b213831415797437c64fd9d432864f9d3
This commit is contained in:
tmfang
2019-02-25 18:12:24 +08:00
parent cabe72cf7b
commit 826879ed63
6 changed files with 190 additions and 95 deletions

View File

@@ -36,6 +36,10 @@ public class AppAndNotificationDashboardFragment extends DashboardFragment {
private static final String TAG = "AppAndNotifDashboard";
private boolean mIsFirstLaunch;
private RecentAppsPreferenceController mRecentAppsPreferenceController;
private AllAppsInfoPreferenceController mAllAppsInfoPreferenceController;
@Override
public int getMetricsCategory() {
return SettingsEnums.SETTINGS_APP_NOTIF_CATEGORY;
@@ -61,7 +65,26 @@ public class AppAndNotificationDashboardFragment extends DashboardFragment {
super.onAttach(context);
use(SpecialAppAccessPreferenceController.class).setSession(getSettingsLifecycle());
use(RecentAppsPreferenceController.class).setFragment(this /* fragment */);
mRecentAppsPreferenceController = use(RecentAppsPreferenceController.class);
mRecentAppsPreferenceController.setFragment(this /* fragment */);
mAllAppsInfoPreferenceController = use(AllAppsInfoPreferenceController.class);
mAllAppsInfoPreferenceController.setRecentApps(
mRecentAppsPreferenceController.getRecentApps());
mIsFirstLaunch = true;
}
@Override
public void onResume() {
if (!mIsFirstLaunch) {
mRecentAppsPreferenceController.reloadData();
mAllAppsInfoPreferenceController.setRecentApps(
mRecentAppsPreferenceController.getRecentApps());
}
super.onResume();
mIsFirstLaunch = false;
}
@Override