From 6d6024805318349febc49e92ee88ee0e4151daea Mon Sep 17 00:00:00 2001 From: Sunny Shao Date: Sun, 29 Mar 2020 11:54:51 +0800 Subject: [PATCH] Enable some settings pages to use paralleled-loading method - Here these pages include AppInfoDashboardFragment, ConnectedDeviceDashboardFragment, DevelopmentSettingsDashboardFragment, NetworkDashboardFragment, ConfigureNotificationSettings. - The TimeSpentInAppPreferenceController use the LiveDataController. Fixes: 135299529 Bug: 137558156 Test: compilation Change-Id: I455a16536c9966184f1b2bd81d1f1217f3e09f9d --- res/xml/connected_devices.xml | 1 + res/xml/development_settings.xml | 2 ++ .../applications/appinfo/AppInfoDashboardFragment.java | 10 +++++++++- .../appinfo/TimeSpentInAppPreferenceController.java | 10 ++++++---- .../ConnectedDeviceDashboardFragment.java | 5 +++++ .../DevelopmentSettingsDashboardFragment.java | 5 +++++ .../settings/network/NetworkDashboardFragment.java | 5 +++++ .../notification/ConfigureNotificationSettings.java | 5 +++++ .../TimeSpentInAppPreferenceControllerTest.java | 4 ++-- 9 files changed, 40 insertions(+), 7 deletions(-) diff --git a/res/xml/connected_devices.xml b/res/xml/connected_devices.xml index a1736b22969..9931f3575da 100644 --- a/res/xml/connected_devices.xml +++ b/res/xml/connected_devices.xml @@ -64,6 +64,7 @@ diff --git a/res/xml/development_settings.xml b/res/xml/development_settings.xml index 6dcc125fe1c..bed838c2451 100644 --- a/res/xml/development_settings.xml +++ b/res/xml/development_settings.xml @@ -38,6 +38,7 @@ diff --git a/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java b/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java index 8b1f96f92f2..dff6d6df967 100755 --- a/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java +++ b/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java @@ -138,7 +138,10 @@ public class AppInfoDashboardFragment extends DashboardFragment public void onAttach(Context context) { super.onAttach(context); final String packageName = getPackageName(); - use(TimeSpentInAppPreferenceController.class).setPackageName(packageName); + final TimeSpentInAppPreferenceController timeSpentInAppPreferenceController = use( + TimeSpentInAppPreferenceController.class); + timeSpentInAppPreferenceController.setPackageName(packageName); + timeSpentInAppPreferenceController.initLifeCycleOwner(this); use(AppDataUsagePreferenceController.class).setParentFragment(this); final AppInstallerInfoPreferenceController installer = @@ -285,6 +288,11 @@ public class AppInfoDashboardFragment extends DashboardFragment return controllers; } + @Override + protected boolean isParalleledControllers() { + return true; + } + void addToCallbackList(Callback callback) { if (callback != null) { mCallbacks.add(callback); diff --git a/src/com/android/settings/applications/appinfo/TimeSpentInAppPreferenceController.java b/src/com/android/settings/applications/appinfo/TimeSpentInAppPreferenceController.java index b1bbd06e9d6..27d90269e3f 100644 --- a/src/com/android/settings/applications/appinfo/TimeSpentInAppPreferenceController.java +++ b/src/com/android/settings/applications/appinfo/TimeSpentInAppPreferenceController.java @@ -29,13 +29,15 @@ import androidx.preference.Preference; import androidx.preference.PreferenceScreen; import com.android.settings.applications.ApplicationFeatureProvider; -import com.android.settings.core.BasePreferenceController; +import com.android.settings.core.LiveDataController; import com.android.settings.overlay.FeatureFactory; import java.util.List; -public class TimeSpentInAppPreferenceController extends BasePreferenceController { - +/** + * To Retrieve the time consumption of the application. + */ +public class TimeSpentInAppPreferenceController extends LiveDataController { @VisibleForTesting static final Intent SEE_TIME_IN_APP_TEMPLATE = new Intent(Settings.ACTION_APP_USAGE_SETTINGS); @@ -85,7 +87,7 @@ public class TimeSpentInAppPreferenceController extends BasePreferenceController } @Override - public CharSequence getSummary() { + protected CharSequence getSummaryTextInBackground() { return mAppFeatureProvider.getTimeSpentInApp(mPackageName); } diff --git a/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java b/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java index ce980e0bda2..5dd769db130 100644 --- a/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java +++ b/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java @@ -49,6 +49,11 @@ public class ConnectedDeviceDashboardFragment extends DashboardFragment { return TAG; } + @Override + protected boolean isParalleledControllers() { + return true; + } + @Override public int getHelpResource() { return R.string.help_url_connected_devices; diff --git a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java index 878d442c168..7da58a7687d 100644 --- a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java +++ b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java @@ -361,6 +361,11 @@ public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFra return mPreferenceControllers; } + @Override + protected boolean isParalleledControllers() { + return true; + } + private void registerReceivers() { LocalBroadcastManager.getInstance(getContext()) .registerReceiver(mEnableAdbReceiver, new IntentFilter( diff --git a/src/com/android/settings/network/NetworkDashboardFragment.java b/src/com/android/settings/network/NetworkDashboardFragment.java index ad3df333bfa..db704ae850d 100644 --- a/src/com/android/settings/network/NetworkDashboardFragment.java +++ b/src/com/android/settings/network/NetworkDashboardFragment.java @@ -86,6 +86,11 @@ public class NetworkDashboardFragment extends DashboardFragment implements this /* fragment */, this /* mobilePlanHost */); } + @Override + protected boolean isParalleledControllers() { + return true; + } + private static List buildPreferenceControllers(Context context, Lifecycle lifecycle, MetricsFeatureProvider metricsFeatureProvider, Fragment fragment, MobilePlanPreferenceHost mobilePlanHost) { diff --git a/src/com/android/settings/notification/ConfigureNotificationSettings.java b/src/com/android/settings/notification/ConfigureNotificationSettings.java index 0a9a5b1e988..6801a807e0e 100644 --- a/src/com/android/settings/notification/ConfigureNotificationSettings.java +++ b/src/com/android/settings/notification/ConfigureNotificationSettings.java @@ -90,6 +90,11 @@ public class ConfigureNotificationSettings extends DashboardFragment implements return buildPreferenceControllers(context, app, this); } + @Override + protected boolean isParalleledControllers() { + return true; + } + private static List buildPreferenceControllers(Context context, Application app, Fragment host) { final List controllers = new ArrayList<>(); diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/TimeSpentInAppPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/TimeSpentInAppPreferenceControllerTest.java index e1da707e543..775025616ba 100644 --- a/tests/robotests/src/com/android/settings/applications/appinfo/TimeSpentInAppPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/applications/appinfo/TimeSpentInAppPreferenceControllerTest.java @@ -119,8 +119,8 @@ public class TimeSpentInAppPreferenceControllerTest { } @Test - public void getSummary_shouldQueryAppFeatureProvider() { - mController.getSummary(); + public void getSummaryTextInBackground_shouldQueryAppFeatureProvider() { + mController.getSummaryTextInBackground(); verify(mFeatureFactory.applicationFeatureProvider).getTimeSpentInApp( nullable(String.class));