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