Add dock defender battery tips
1. Remove the dock defender v1 code 2. Add dock defender battery tips and update corresponding list item string Bug:256523472 Test: Unit test passed and manual test on device Change-Id: Ib6c09df056744142f42f5e2a13252b58e54c7534 Signed-off-by: Zhenwei Chen <zhenwec@google.com>
This commit is contained in:
@@ -36,6 +36,7 @@ import android.os.BatteryManager;
|
||||
import android.os.BatteryStats;
|
||||
import android.os.BatteryUsageStats;
|
||||
import android.os.SystemClock;
|
||||
import android.provider.Settings;
|
||||
import android.util.SparseIntArray;
|
||||
|
||||
import com.android.internal.os.BatteryStatsHistoryIterator;
|
||||
@@ -66,6 +67,7 @@ public class BatteryInfoTest {
|
||||
private static final String STATUS_CHARGING_NO_TIME = "50% - charging";
|
||||
private static final String STATUS_CHARGING_TIME = "50% - 0 min left until full";
|
||||
private static final String STATUS_NOT_CHARGING = "Not charging";
|
||||
private static final String STATUS_CHARGING_FUTURE_BYPASS = "50% - Charging to 12%";
|
||||
private static final long REMAINING_TIME_NULL = -1;
|
||||
private static final long REMAINING_TIME = 2;
|
||||
// Strings are defined in frameworks/base/packages/SettingsLib/res/values/strings.xml
|
||||
@@ -97,6 +99,10 @@ public class BatteryInfoTest {
|
||||
mDisChargingBatteryBroadcast = BatteryTestUtils.getDischargingIntent();
|
||||
|
||||
mChargingBatteryBroadcast = BatteryTestUtils.getChargingIntent();
|
||||
|
||||
doReturn(false).when(mFeatureFactory.powerUsageFeatureProvider).isExtraDefend();
|
||||
Settings.Global.putInt(mContext.getContentResolver(),
|
||||
BatteryUtils.SETTINGS_GLOBAL_DOCK_DEFENDER_BYPASS, 0);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -231,6 +237,7 @@ public class BatteryInfoTest {
|
||||
BatteryInfo info = BatteryInfo.getBatteryInfo(mContext, mChargingBatteryBroadcast,
|
||||
mBatteryUsageStats, MOCK_ESTIMATE, SystemClock.elapsedRealtime() * 1000,
|
||||
false /* shortString */);
|
||||
|
||||
assertThat(info.remainingTimeUs).isEqualTo(TEST_CHARGE_TIME_REMAINING);
|
||||
assertThat(info.remainingLabel.toString())
|
||||
.isEqualTo(TEST_CHARGE_TIME_REMAINING_STRINGIFIED);
|
||||
@@ -265,6 +272,62 @@ public class BatteryInfoTest {
|
||||
assertThat(info.chargeLabel.toString()).contains(expectedString);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetBatteryInfo_dockDefenderActive_updateChargeString() {
|
||||
final String expectedString =
|
||||
mContext.getString(R.string.battery_tip_limited_temporarily_title);
|
||||
doReturn(TEST_CHARGE_TIME_REMAINING / 1000)
|
||||
.when(mBatteryUsageStats).getChargeTimeRemainingMs();
|
||||
doReturn(true).when(mFeatureFactory.powerUsageFeatureProvider).isExtraDefend();
|
||||
Intent intent = BatteryTestUtils.getCustomBatteryIntent(BatteryManager.BATTERY_PLUGGED_DOCK,
|
||||
50 /* level */,
|
||||
100 /* scale */,
|
||||
BatteryManager.BATTERY_STATUS_CHARGING)
|
||||
.putExtra(BatteryManager.EXTRA_HEALTH, BatteryManager.BATTERY_HEALTH_OVERHEAT);
|
||||
|
||||
BatteryInfo info = BatteryInfo.getBatteryInfo(mContext, intent,
|
||||
mBatteryUsageStats, MOCK_ESTIMATE, SystemClock.elapsedRealtime() * 1000,
|
||||
false /* shortString */);
|
||||
|
||||
assertThat(info.chargeLabel.toString()).contains(expectedString);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetBatteryInfo_dockDefenderTemporarilyBypassed_updateChargeLabel() {
|
||||
doReturn(REMAINING_TIME).when(mBatteryUsageStats).getChargeTimeRemainingMs();
|
||||
mChargingBatteryBroadcast
|
||||
.putExtra(BatteryManager.EXTRA_HEALTH, BatteryManager.BATTERY_HEALTH_GOOD);
|
||||
Settings.Global.putInt(mContext.getContentResolver(),
|
||||
BatteryUtils.SETTINGS_GLOBAL_DOCK_DEFENDER_BYPASS, 1);
|
||||
|
||||
BatteryInfo info = BatteryInfo.getBatteryInfo(mContext,
|
||||
BatteryTestUtils.getCustomBatteryIntent(BatteryManager.BATTERY_PLUGGED_DOCK,
|
||||
50 /* level */,
|
||||
100 /* scale */,
|
||||
BatteryManager.BATTERY_STATUS_CHARGING),
|
||||
mBatteryUsageStats, MOCK_ESTIMATE, SystemClock.elapsedRealtime() * 1000,
|
||||
false /* shortString */);
|
||||
|
||||
assertThat(info.chargeLabel.toString()).contains(STATUS_CHARGING_TIME);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetBatteryInfo_dockDefenderFutureBypass_updateChargeLabel() {
|
||||
doReturn(false).when(mFeatureFactory.powerUsageFeatureProvider).isExtraDefend();
|
||||
mChargingBatteryBroadcast
|
||||
.putExtra(BatteryManager.EXTRA_HEALTH, BatteryManager.BATTERY_HEALTH_GOOD);
|
||||
|
||||
BatteryInfo info = BatteryInfo.getBatteryInfo(mContext,
|
||||
BatteryTestUtils.getCustomBatteryIntent(BatteryManager.BATTERY_PLUGGED_DOCK,
|
||||
50 /* level */,
|
||||
100 /* scale */,
|
||||
BatteryManager.BATTERY_STATUS_CHARGING),
|
||||
mBatteryUsageStats, MOCK_ESTIMATE, SystemClock.elapsedRealtime() * 1000,
|
||||
false /* shortString */);
|
||||
|
||||
assertThat(info.chargeLabel.toString()).contains(STATUS_CHARGING_FUTURE_BYPASS);
|
||||
}
|
||||
|
||||
// Make our battery stats return a sequence of battery events.
|
||||
private void mockBatteryStatsHistory() {
|
||||
// Mock out new data every time iterateBatteryStatsHistory is called.
|
||||
|
Reference in New Issue
Block a user