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:
@@ -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());
|
||||
|
@@ -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();
|
||||
|
@@ -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();
|
||||
|
Reference in New Issue
Block a user