diff --git a/res/xml/connected_devices.xml b/res/xml/connected_devices.xml
index b2794c206b7..e7e3c2ccfbe 100644
--- a/res/xml/connected_devices.xml
+++ b/res/xml/connected_devices.xml
@@ -65,6 +65,7 @@
diff --git a/res/xml/development_settings.xml b/res/xml/development_settings.xml
index 39a130cf750..b781636ff7f 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 0594ef5aaf3..4df641efa65 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));