Loading src/com/android/settings/fuelgauge/batterytip/BatteryTipLoader.java +2 −1 Original line number Diff line number Diff line Loading @@ -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()); Loading src/com/android/settings/fuelgauge/batterytip/detectors/HighUsageDetector.java +5 −4 Original line number Diff line number Diff line Loading @@ -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(); Loading tests/robotests/src/com/android/settings/fuelgauge/batterytip/detectors/HighUsageDetectorTest.java +12 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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(); Loading Loading @@ -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(); Loading Loading
src/com/android/settings/fuelgauge/batterytip/BatteryTipLoader.java +2 −1 Original line number Diff line number Diff line Loading @@ -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()); Loading
src/com/android/settings/fuelgauge/batterytip/detectors/HighUsageDetector.java +5 −4 Original line number Diff line number Diff line Loading @@ -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(); Loading
tests/robotests/src/com/android/settings/fuelgauge/batterytip/detectors/HighUsageDetectorTest.java +12 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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(); Loading Loading @@ -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(); Loading