diff --git a/src/com/android/settings/applications/InstalledAppDetails.java b/src/com/android/settings/applications/InstalledAppDetails.java index 083681a5238..3ee3c5069da 100755 --- a/src/com/android/settings/applications/InstalledAppDetails.java +++ b/src/com/android/settings/applications/InstalledAppDetails.java @@ -144,7 +144,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; @@ -207,7 +208,8 @@ public class InstalledAppDetails extends AppInfoBase private AppStorageStats mLastResult; private String mBatteryPercent; - private final LoaderCallbacks mBatteryCallbacks = + @VisibleForTesting + final LoaderCallbacks mBatteryCallbacks = new LoaderCallbacks() { @Override @@ -415,11 +417,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 98c28bf5640..2fbad13d68e 100644 --- a/tests/robotests/src/com/android/settings/applications/InstalledAppDetailsTest.java +++ b/tests/robotests/src/com/android/settings/applications/InstalledAppDetailsTest.java @@ -17,6 +17,7 @@ package com.android.settings.applications; import android.app.AlertDialog; +import android.app.LoaderManager; import android.app.admin.DevicePolicyManager; import android.content.Context; import android.content.Intent; @@ -25,6 +26,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; @@ -107,8 +109,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; @@ -528,6 +532,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