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();
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());

View File

@@ -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();

View File

@@ -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();