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

Commit 3f34ce9a authored by Lei Yu's avatar Lei Yu Committed by Android (Google) Code Review
Browse files

Merge "Don't show high usage tip when device is charing" into pi-dev

parents d2e9b569 69c370f5
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -68,7 +68,8 @@ public class BatteryTipLoader extends AsyncLoader<List<BatteryTip>> {
        final Context context = getContext();

        tips.add(new LowBatteryDetector(policy, batteryInfo).detect());
        tips.add(new HighUsageDetector(context, policy, mBatteryStatsHelper).detect());
        tips.add(new HighUsageDetector(context, policy, mBatteryStatsHelper,
                batteryInfo.discharging).detect());
        tips.add(new SmartBatteryDetector(policy, context.getContentResolver()).detect());
        tips.add(new EarlyWarningDetector(policy, context).detect());
        tips.add(new SummaryDetector(policy, batteryInfo.averageTimeToDischarge).detect());
+5 −4
Original line number Diff line number Diff line
@@ -44,28 +44,29 @@ public class HighUsageDetector implements BatteryTipDetector {
    private BatteryTipPolicy mPolicy;
    private BatteryStatsHelper mBatteryStatsHelper;
    private List<AppInfo> mHighUsageAppList;
    private Context mContext;
    @VisibleForTesting
    HighUsageDataParser mDataParser;
    @VisibleForTesting
    BatteryUtils mBatteryUtils;
    @VisibleForTesting
    boolean mDischarging;

    public HighUsageDetector(Context context, BatteryTipPolicy policy,
            BatteryStatsHelper batteryStatsHelper) {
        mContext = context;
            BatteryStatsHelper batteryStatsHelper, boolean discharging) {
        mPolicy = policy;
        mBatteryStatsHelper = batteryStatsHelper;
        mHighUsageAppList = new ArrayList<>();
        mBatteryUtils = BatteryUtils.getInstance(context);
        mDataParser = new HighUsageDataParser(mPolicy.highUsagePeriodMs,
                mPolicy.highUsageBatteryDraining);
        mDischarging = discharging;
    }

    @Override
    public BatteryTip detect() {
        final long lastFullChargeTimeMs = mBatteryUtils.calculateLastFullChargeTime(
                mBatteryStatsHelper, System.currentTimeMillis());
        if (mPolicy.highUsageEnabled) {
        if (mPolicy.highUsageEnabled && mDischarging) {
            parseBatteryData();
            if (mDataParser.isDeviceHeavilyUsed() || mPolicy.testHighUsageTip) {
                final List<BatterySipper> batterySippers = mBatteryStatsHelper.getUsageList();
+12 −1
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ import android.text.format.DateUtils;

import com.android.internal.os.BatterySipper;
import com.android.internal.os.BatteryStatsHelper;
import com.android.settings.fuelgauge.BatteryInfo;
import com.android.settings.fuelgauge.BatteryUtils;
import com.android.settings.fuelgauge.batterytip.AppInfo;
import com.android.settings.fuelgauge.batterytip.BatteryTipPolicy;
@@ -77,7 +78,8 @@ public class HighUsageDetectorTest {

        mContext = RuntimeEnvironment.application;
        mPolicy = spy(new BatteryTipPolicy(mContext));
        mHighUsageDetector = spy(new HighUsageDetector(mContext, mPolicy, mBatteryStatsHelper));
        mHighUsageDetector = spy(new HighUsageDetector(mContext, mPolicy, mBatteryStatsHelper,
                true /* mDischarging */));
        mHighUsageDetector.mBatteryUtils = mBatteryUtils;
        mHighUsageDetector.mDataParser = mDataParser;
        doNothing().when(mHighUsageDetector).parseBatteryData();
@@ -109,6 +111,15 @@ public class HighUsageDetectorTest {
        assertThat(mHighUsageDetector.detect().isVisible()).isFalse();
    }

    @Test
    public void testDetect_deviceCharging_tipInvisible() {
        ReflectionHelpers.setField(mPolicy, "highUsageEnabled", true);
        doReturn(true).when(mDataParser).isDeviceHeavilyUsed();
        mHighUsageDetector.mDischarging = false;

        assertThat(mHighUsageDetector.detect().isVisible()).isFalse();
    }

    @Test
    public void testDetect_testFeatureOn_tipNew() {
        doReturn(false).when(mDataParser).isDeviceHeavilyUsed();