OSDN Git Service

Restart loader in onResume
authorjackqdyulei <jackqdyulei@google.com>
Thu, 1 Jun 2017 01:03:09 +0000 (18:03 -0700)
committerjackqdyulei <jackqdyulei@google.com>
Fri, 2 Jun 2017 17:21:32 +0000 (10:21 -0700)
We need to refresh batterystatsHelper in onResume, so we need to
call restartLoader instead of initLoader

Bug: 62237848
Test: RunSettingsRoboTests
Change-Id: I6f7e1b57b945c92d34587ca24db192600e7f797f
Merged-In: I6f7e1b57b945c92d34587ca24db192600e7f797f

src/com/android/settings/applications/InstalledAppDetails.java
tests/robotests/src/com/android/settings/applications/InstalledAppDetailsTest.java

index 083681a..3ee3c50 100755 (executable)
@@ -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<BatteryStatsHelper> mBatteryCallbacks =
+    @VisibleForTesting
+    final LoaderCallbacks<BatteryStatsHelper> mBatteryCallbacks =
             new LoaderCallbacks<BatteryStatsHelper>() {
 
                 @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);
index 98c28bf..2fbad13 100644 (file)
@@ -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