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

am: 9de539ff0f

Change-Id: I661e0cecc068f56dbd3fa1a0de32a639432a79de
This commit is contained in:
Lei Yu
2018-04-26 15:39:52 -07:00
committed by android-build-merger
3 changed files with 19 additions and 6 deletions

View File

@@ -68,7 +68,8 @@ public class BatteryTipLoader extends AsyncLoader<List<BatteryTip>> {
final Context context = getContext(); final Context context = getContext();
tips.add(new LowBatteryDetector(policy, batteryInfo).detect()); 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 SmartBatteryDetector(policy, context.getContentResolver()).detect());
tips.add(new EarlyWarningDetector(policy, context).detect()); tips.add(new EarlyWarningDetector(policy, context).detect());
tips.add(new SummaryDetector(policy, batteryInfo.averageTimeToDischarge).detect()); tips.add(new SummaryDetector(policy, batteryInfo.averageTimeToDischarge).detect());

View File

@@ -44,28 +44,29 @@ public class HighUsageDetector implements BatteryTipDetector {
private BatteryTipPolicy mPolicy; private BatteryTipPolicy mPolicy;
private BatteryStatsHelper mBatteryStatsHelper; private BatteryStatsHelper mBatteryStatsHelper;
private List<AppInfo> mHighUsageAppList; private List<AppInfo> mHighUsageAppList;
private Context mContext;
@VisibleForTesting @VisibleForTesting
HighUsageDataParser mDataParser; HighUsageDataParser mDataParser;
@VisibleForTesting @VisibleForTesting
BatteryUtils mBatteryUtils; BatteryUtils mBatteryUtils;
@VisibleForTesting
boolean mDischarging;
public HighUsageDetector(Context context, BatteryTipPolicy policy, public HighUsageDetector(Context context, BatteryTipPolicy policy,
BatteryStatsHelper batteryStatsHelper) { BatteryStatsHelper batteryStatsHelper, boolean discharging) {
mContext = context;
mPolicy = policy; mPolicy = policy;
mBatteryStatsHelper = batteryStatsHelper; mBatteryStatsHelper = batteryStatsHelper;
mHighUsageAppList = new ArrayList<>(); mHighUsageAppList = new ArrayList<>();
mBatteryUtils = BatteryUtils.getInstance(context); mBatteryUtils = BatteryUtils.getInstance(context);
mDataParser = new HighUsageDataParser(mPolicy.highUsagePeriodMs, mDataParser = new HighUsageDataParser(mPolicy.highUsagePeriodMs,
mPolicy.highUsageBatteryDraining); mPolicy.highUsageBatteryDraining);
mDischarging = discharging;
} }
@Override @Override
public BatteryTip detect() { public BatteryTip detect() {
final long lastFullChargeTimeMs = mBatteryUtils.calculateLastFullChargeTime( final long lastFullChargeTimeMs = mBatteryUtils.calculateLastFullChargeTime(
mBatteryStatsHelper, System.currentTimeMillis()); mBatteryStatsHelper, System.currentTimeMillis());
if (mPolicy.highUsageEnabled) { if (mPolicy.highUsageEnabled && mDischarging) {
parseBatteryData(); parseBatteryData();
if (mDataParser.isDeviceHeavilyUsed() || mPolicy.testHighUsageTip) { if (mDataParser.isDeviceHeavilyUsed() || mPolicy.testHighUsageTip) {
final List<BatterySipper> batterySippers = mBatteryStatsHelper.getUsageList(); final List<BatterySipper> batterySippers = mBatteryStatsHelper.getUsageList();

View File

@@ -30,6 +30,7 @@ import android.text.format.DateUtils;
import com.android.internal.os.BatterySipper; import com.android.internal.os.BatterySipper;
import com.android.internal.os.BatteryStatsHelper; import com.android.internal.os.BatteryStatsHelper;
import com.android.settings.fuelgauge.BatteryInfo;
import com.android.settings.fuelgauge.BatteryUtils; import com.android.settings.fuelgauge.BatteryUtils;
import com.android.settings.fuelgauge.batterytip.AppInfo; import com.android.settings.fuelgauge.batterytip.AppInfo;
import com.android.settings.fuelgauge.batterytip.BatteryTipPolicy; import com.android.settings.fuelgauge.batterytip.BatteryTipPolicy;
@@ -77,7 +78,8 @@ public class HighUsageDetectorTest {
mContext = RuntimeEnvironment.application; mContext = RuntimeEnvironment.application;
mPolicy = spy(new BatteryTipPolicy(mContext)); 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.mBatteryUtils = mBatteryUtils;
mHighUsageDetector.mDataParser = mDataParser; mHighUsageDetector.mDataParser = mDataParser;
doNothing().when(mHighUsageDetector).parseBatteryData(); doNothing().when(mHighUsageDetector).parseBatteryData();
@@ -109,6 +111,15 @@ public class HighUsageDetectorTest {
assertThat(mHighUsageDetector.detect().isVisible()).isFalse(); 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 @Test
public void testDetect_testFeatureOn_tipNew() { public void testDetect_testFeatureOn_tipNew() {
doReturn(false).when(mDataParser).isDeviceHeavilyUsed(); doReturn(false).when(mDataParser).isDeviceHeavilyUsed();