Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ee01dcc7 authored by jackqdyulei's avatar jackqdyulei
Browse files

Restart loader in onResume

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
parent fbc9035b
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -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);
+15 −1
Original line number Diff line number Diff line
@@ -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