diff --git a/src/com/android/settings/applications/InstalledAppDetails.java b/src/com/android/settings/applications/InstalledAppDetails.java index 60a08efe08a..e66463dfe86 100755 --- a/src/com/android/settings/applications/InstalledAppDetails.java +++ b/src/com/android/settings/applications/InstalledAppDetails.java @@ -139,7 +139,8 @@ public class InstalledAppDetails extends AppInfoBase private static final int LOADER_CHART_DATA = 2; private static final int LOADER_STORAGE = 3; - private static final int LOADER_BATTERY = 4; + @VisibleForTesting + static final int LOADER_BATTERY = 4; private static final int DLG_FORCE_STOP = DLG_BASE + 1; private static final int DLG_DISABLE = DLG_BASE + 2; @@ -202,7 +203,8 @@ public class InstalledAppDetails extends AppInfoBase private AppStorageStats mLastResult; private String mBatteryPercent; - private final LoaderCallbacks mBatteryCallbacks = + @VisibleForTesting + final LoaderCallbacks mBatteryCallbacks = new LoaderCallbacks() { @Override @@ -410,11 +412,16 @@ public class InstalledAppDetails extends AppInfoBase mDataCallbacks); loaderManager.restartLoader(LOADER_STORAGE, Bundle.EMPTY, this); } - getLoaderManager().initLoader(LOADER_BATTERY, Bundle.EMPTY, mBatteryCallbacks); + restartBatteryStatsLoader(); new MemoryUpdater().execute(); updateDynamicPrefs(); } + @VisibleForTesting + public void restartBatteryStatsLoader() { + getLoaderManager().restartLoader(LOADER_BATTERY, Bundle.EMPTY, mBatteryCallbacks); + } + @Override public void onPause() { getLoaderManager().destroyLoader(LOADER_CHART_DATA); diff --git a/tests/robotests/src/com/android/settings/applications/InstalledAppDetailsTest.java b/tests/robotests/src/com/android/settings/applications/InstalledAppDetailsTest.java index c2ffed1cec9..e86288bdabd 100644 --- a/tests/robotests/src/com/android/settings/applications/InstalledAppDetailsTest.java +++ b/tests/robotests/src/com/android/settings/applications/InstalledAppDetailsTest.java @@ -19,6 +19,7 @@ package com.android.settings.applications; import android.app.AlertDialog; import android.app.Fragment; +import android.app.LoaderManager; import android.app.admin.DevicePolicyManager; import android.content.Context; import android.content.Intent; @@ -27,6 +28,7 @@ import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.res.Resources; import android.os.BatteryStats; +import android.os.Bundle; import android.os.UserManager; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceManager; @@ -109,8 +111,10 @@ public final class InstalledAppDetailsTest { private PackageManager mPackageManager; @Mock private BatteryUtils mBatteryUtils; - private FakeFeatureFactory mFeatureFactory; + @Mock + private LoaderManager mLoaderManager; + private FakeFeatureFactory mFeatureFactory; private InstalledAppDetails mAppDetail; private Context mShadowContext; private Preference mBatteryPreference; @@ -530,6 +534,16 @@ public final class InstalledAppDetailsTest { verify(button).setText(R.string.disable_text); } + @Test + public void testRestartBatteryStatsLoader() { + doReturn(mLoaderManager).when(mAppDetail).getLoaderManager(); + + mAppDetail.restartBatteryStatsLoader(); + + verify(mLoaderManager).restartLoader(InstalledAppDetails.LOADER_BATTERY, Bundle.EMPTY, + mAppDetail.mBatteryCallbacks); + } + @Implements(Utils.class) public static class ShadowUtils { @Implementation