Merge "Update battery health state intent (1/3)" into udc-dev am: 08ad2b773e am: e873c20ab0

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/22730568

Change-Id: I879a3fa74324c65157c70ecc81152745946de130
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
YK Hung
2023-05-15 03:59:41 +00:00
committed by Automerger Merge Worker
11 changed files with 87 additions and 83 deletions

View File

@@ -16,12 +16,11 @@
package com.android.settingslib.fuelgauge; package com.android.settingslib.fuelgauge;
import static android.os.BatteryManager.BATTERY_HEALTH_OVERHEAT;
import static android.os.BatteryManager.BATTERY_HEALTH_UNKNOWN;
import static android.os.BatteryManager.BATTERY_STATUS_FULL; import static android.os.BatteryManager.BATTERY_STATUS_FULL;
import static android.os.BatteryManager.BATTERY_STATUS_UNKNOWN; import static android.os.BatteryManager.BATTERY_STATUS_UNKNOWN;
import static android.os.BatteryManager.EXTRA_HEALTH; import static android.os.BatteryManager.CHARGING_POLICY_ADAPTIVE_LONGLIFE;
import static android.os.BatteryManager.EXTRA_LEVEL; import static android.os.BatteryManager.CHARGING_POLICY_DEFAULT;
import static android.os.BatteryManager.EXTRA_CHARGING_STATUS;
import static android.os.BatteryManager.EXTRA_MAX_CHARGING_CURRENT; import static android.os.BatteryManager.EXTRA_MAX_CHARGING_CURRENT;
import static android.os.BatteryManager.EXTRA_MAX_CHARGING_VOLTAGE; import static android.os.BatteryManager.EXTRA_MAX_CHARGING_VOLTAGE;
import static android.os.BatteryManager.EXTRA_PLUGGED; import static android.os.BatteryManager.EXTRA_PLUGGED;
@@ -51,7 +50,7 @@ public class BatteryStatus {
public final int status; public final int status;
public final int level; public final int level;
public final int plugged; public final int plugged;
public final int health; public final int chargingStatus;
public final int maxChargingWattage; public final int maxChargingWattage;
public final boolean present; public final boolean present;
public final Optional<Boolean> incompatibleCharger; public final Optional<Boolean> incompatibleCharger;
@@ -62,12 +61,12 @@ public class BatteryStatus {
? null : new BatteryStatus(batteryChangedIntent, incompatibleCharger); ? null : new BatteryStatus(batteryChangedIntent, incompatibleCharger);
} }
public BatteryStatus(int status, int level, int plugged, int health, public BatteryStatus(int status, int level, int plugged, int chargingStatus,
int maxChargingWattage, boolean present) { int maxChargingWattage, boolean present) {
this.status = status; this.status = status;
this.level = level; this.level = level;
this.plugged = plugged; this.plugged = plugged;
this.health = health; this.chargingStatus = chargingStatus;
this.maxChargingWattage = maxChargingWattage; this.maxChargingWattage = maxChargingWattage;
this.present = present; this.present = present;
this.incompatibleCharger = Optional.empty(); this.incompatibleCharger = Optional.empty();
@@ -86,7 +85,8 @@ public class BatteryStatus {
status = batteryChangedIntent.getIntExtra(EXTRA_STATUS, BATTERY_STATUS_UNKNOWN); status = batteryChangedIntent.getIntExtra(EXTRA_STATUS, BATTERY_STATUS_UNKNOWN);
plugged = batteryChangedIntent.getIntExtra(EXTRA_PLUGGED, 0); plugged = batteryChangedIntent.getIntExtra(EXTRA_PLUGGED, 0);
level = getBatteryLevel(batteryChangedIntent); level = getBatteryLevel(batteryChangedIntent);
health = batteryChangedIntent.getIntExtra(EXTRA_HEALTH, BATTERY_HEALTH_UNKNOWN); chargingStatus = batteryChangedIntent.getIntExtra(EXTRA_CHARGING_STATUS,
CHARGING_POLICY_DEFAULT);
present = batteryChangedIntent.getBooleanExtra(EXTRA_PRESENT, true); present = batteryChangedIntent.getBooleanExtra(EXTRA_PRESENT, true);
this.incompatibleCharger = incompatibleCharger; this.incompatibleCharger = incompatibleCharger;
@@ -143,9 +143,9 @@ public class BatteryStatus {
return level < LOW_BATTERY_THRESHOLD; return level < LOW_BATTERY_THRESHOLD;
} }
/** Whether battery is overheated. */ /** Whether battery defender is enabled. */
public boolean isOverheated() { public boolean isBatteryDefender() {
return health == BATTERY_HEALTH_OVERHEAT; return chargingStatus == CHARGING_POLICY_ADAPTIVE_LONGLIFE;
} }
/** Return current chargin speed is fast, slow or normal. */ /** Return current chargin speed is fast, slow or normal. */
@@ -163,7 +163,8 @@ public class BatteryStatus {
@Override @Override
public String toString() { public String toString() {
return "BatteryStatus{status=" + status + ",level=" + level + ",plugged=" + plugged return "BatteryStatus{status=" + status + ",level=" + level + ",plugged=" + plugged
+ ",health=" + health + ",maxChargingWattage=" + maxChargingWattage + "}"; + ",chargingStatus=" + chargingStatus + ",maxChargingWattage=" + maxChargingWattage
+ "}";
} }
/** /**

View File

@@ -29,6 +29,7 @@ import static android.hardware.biometrics.BiometricConstants.LockoutMode;
import static android.hardware.biometrics.BiometricSourceType.FACE; import static android.hardware.biometrics.BiometricSourceType.FACE;
import static android.hardware.biometrics.BiometricSourceType.FINGERPRINT; import static android.hardware.biometrics.BiometricSourceType.FINGERPRINT;
import static android.os.BatteryManager.BATTERY_STATUS_UNKNOWN; import static android.os.BatteryManager.BATTERY_STATUS_UNKNOWN;
import static android.os.BatteryManager.CHARGING_POLICY_DEFAULT;
import static android.os.PowerManager.WAKE_REASON_UNKNOWN; import static android.os.PowerManager.WAKE_REASON_UNKNOWN;
import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_BOOT; import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_BOOT;
@@ -2459,7 +2460,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
} }
// Take a guess at initial SIM state, battery status and PLMN until we get an update // Take a guess at initial SIM state, battery status and PLMN until we get an update
mBatteryStatus = new BatteryStatus(BATTERY_STATUS_UNKNOWN, 100, 0, 0, 0, true); mBatteryStatus = new BatteryStatus(BATTERY_STATUS_UNKNOWN, /* level= */ 100, /* plugged= */
0, CHARGING_POLICY_DEFAULT, /* maxChargingWattage= */0, /* present= */true);
// Watch for interesting updates // Watch for interesting updates
final IntentFilter filter = new IntentFilter(); final IntentFilter filter = new IntentFilter();
@@ -3883,8 +3885,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
return true; return true;
} }
// change in battery overheat // change in charging status
return current.health != old.health; return current.chargingStatus != old.chargingStatus;
} }
/** /**

View File

@@ -78,7 +78,7 @@ public class BatteryMeterView extends LinearLayout implements DarkReceiver {
private boolean mShowPercentAvailable; private boolean mShowPercentAvailable;
private String mEstimateText = null; private String mEstimateText = null;
private boolean mCharging; private boolean mCharging;
private boolean mIsOverheated; private boolean mIsBatteryDefender;
private boolean mDisplayShieldEnabled; private boolean mDisplayShieldEnabled;
// Error state where we know nothing about the current battery state // Error state where we know nothing about the current battery state
private boolean mBatteryStateUnknown; private boolean mBatteryStateUnknown;
@@ -213,9 +213,9 @@ public class BatteryMeterView extends LinearLayout implements DarkReceiver {
mDrawable.setPowerSaveEnabled(isPowerSave); mDrawable.setPowerSaveEnabled(isPowerSave);
} }
void onIsOverheatedChanged(boolean isOverheated) { void onIsBatteryDefenderChanged(boolean isBatteryDefender) {
boolean valueChanged = mIsOverheated != isOverheated; boolean valueChanged = mIsBatteryDefender != isBatteryDefender;
mIsOverheated = isOverheated; mIsBatteryDefender = isBatteryDefender;
if (valueChanged) { if (valueChanged) {
updateContentDescription(); updateContentDescription();
// The battery drawable is a different size depending on whether it's currently // The battery drawable is a different size depending on whether it's currently
@@ -308,12 +308,12 @@ public class BatteryMeterView extends LinearLayout implements DarkReceiver {
contentDescription = context.getString(R.string.accessibility_battery_unknown); contentDescription = context.getString(R.string.accessibility_battery_unknown);
} else if (mShowPercentMode == MODE_ESTIMATE && !TextUtils.isEmpty(mEstimateText)) { } else if (mShowPercentMode == MODE_ESTIMATE && !TextUtils.isEmpty(mEstimateText)) {
contentDescription = context.getString( contentDescription = context.getString(
mIsOverheated mIsBatteryDefender
? R.string.accessibility_battery_level_charging_paused_with_estimate ? R.string.accessibility_battery_level_charging_paused_with_estimate
: R.string.accessibility_battery_level_with_estimate, : R.string.accessibility_battery_level_with_estimate,
mLevel, mLevel,
mEstimateText); mEstimateText);
} else if (mIsOverheated) { } else if (mIsBatteryDefender) {
contentDescription = contentDescription =
context.getString(R.string.accessibility_battery_level_charging_paused, mLevel); context.getString(R.string.accessibility_battery_level_charging_paused, mLevel);
} else if (mCharging) { } else if (mCharging) {
@@ -401,9 +401,7 @@ public class BatteryMeterView extends LinearLayout implements DarkReceiver {
float mainBatteryWidth = float mainBatteryWidth =
res.getDimensionPixelSize(R.dimen.status_bar_battery_icon_width) * iconScaleFactor; res.getDimensionPixelSize(R.dimen.status_bar_battery_icon_width) * iconScaleFactor;
// If the battery is marked as overheated, we should display a shield indicating that the boolean displayShield = mDisplayShieldEnabled && mIsBatteryDefender;
// battery is being "defended".
boolean displayShield = mDisplayShieldEnabled && mIsOverheated;
float fullBatteryIconHeight = float fullBatteryIconHeight =
BatterySpecs.getFullBatteryHeight(mainBatteryHeight, displayShield); BatterySpecs.getFullBatteryHeight(mainBatteryHeight, displayShield);
float fullBatteryIconWidth = float fullBatteryIconWidth =

View File

@@ -91,8 +91,8 @@ public class BatteryMeterViewController extends ViewController<BatteryMeterView>
} }
@Override @Override
public void onIsOverheatedChanged(boolean isOverheated) { public void onIsBatteryDefenderChanged(boolean isBatteryDefender) {
mView.onIsOverheatedChanged(isOverheated); mView.onIsBatteryDefenderChanged(isBatteryDefender);
} }
}; };

View File

@@ -186,7 +186,7 @@ public class KeyguardIndicationController {
private boolean mPowerPluggedInDock; private boolean mPowerPluggedInDock;
private boolean mPowerCharged; private boolean mPowerCharged;
private boolean mBatteryOverheated; private boolean mBatteryDefender;
private boolean mEnableBatteryDefender; private boolean mEnableBatteryDefender;
private boolean mIncompatibleCharger; private boolean mIncompatibleCharger;
private int mChargingSpeed; private int mChargingSpeed;
@@ -921,7 +921,7 @@ public class KeyguardIndicationController {
*/ */
protected String computePowerIndication() { protected String computePowerIndication() {
int chargingId; int chargingId;
if (mBatteryOverheated) { if (mBatteryDefender) {
chargingId = R.string.keyguard_plugged_in_charging_limited; chargingId = R.string.keyguard_plugged_in_charging_limited;
String percentage = NumberFormat.getPercentInstance().format(mBatteryLevel / 100f); String percentage = NumberFormat.getPercentInstance().format(mBatteryLevel / 100f);
return mContext.getResources().getString(chargingId, percentage); return mContext.getResources().getString(chargingId, percentage);
@@ -1093,9 +1093,9 @@ public class KeyguardIndicationController {
mChargingSpeed = status.getChargingSpeed(mContext); mChargingSpeed = status.getChargingSpeed(mContext);
mBatteryLevel = status.level; mBatteryLevel = status.level;
mBatteryPresent = status.present; mBatteryPresent = status.present;
mBatteryOverheated = status.isOverheated(); mBatteryDefender = status.isBatteryDefender();
// when the battery is overheated, device doesn't charge so only guard on pluggedIn: // when the battery is overheated, device doesn't charge so only guard on pluggedIn:
mEnableBatteryDefender = mBatteryOverheated && status.isPluggedIn(); mEnableBatteryDefender = mBatteryDefender && status.isPluggedIn();
mIncompatibleCharger = status.incompatibleCharger.orElse(false); mIncompatibleCharger = status.incompatibleCharger.orElse(false);
try { try {
mChargingTimeRemaining = mPowerPluggedIn mChargingTimeRemaining = mPowerPluggedIn
@@ -1106,7 +1106,7 @@ public class KeyguardIndicationController {
} }
mKeyguardLogger.logRefreshBatteryInfo(isChargingOrFull, mPowerPluggedIn, mBatteryLevel, mKeyguardLogger.logRefreshBatteryInfo(isChargingOrFull, mPowerPluggedIn, mBatteryLevel,
mBatteryOverheated); mBatteryDefender);
updateDeviceEntryIndication(!wasPluggedIn && mPowerPluggedInWired); updateDeviceEntryIndication(!wasPluggedIn && mPowerPluggedInWired);
} }

View File

@@ -156,7 +156,7 @@ public interface BatteryController extends DemoMode,
default void onWirelessChargingChanged(boolean isWirlessCharging) { default void onWirelessChargingChanged(boolean isWirlessCharging) {
} }
default void onIsOverheatedChanged(boolean isOverheated) { default void onIsBatteryDefenderChanged(boolean isBatteryDefender) {
} }
} }

View File

@@ -16,9 +16,9 @@
package com.android.systemui.statusbar.policy; package com.android.systemui.statusbar.policy;
import static android.os.BatteryManager.BATTERY_HEALTH_OVERHEAT; import static android.os.BatteryManager.CHARGING_POLICY_ADAPTIVE_LONGLIFE;
import static android.os.BatteryManager.BATTERY_HEALTH_UNKNOWN; import static android.os.BatteryManager.CHARGING_POLICY_DEFAULT;
import static android.os.BatteryManager.EXTRA_HEALTH; import static android.os.BatteryManager.EXTRA_CHARGING_STATUS;
import static android.os.BatteryManager.EXTRA_PRESENT; import static android.os.BatteryManager.EXTRA_PRESENT;
import static com.android.settingslib.fuelgauge.BatterySaverLogging.SAVER_ENABLED_QS; import static com.android.settingslib.fuelgauge.BatterySaverLogging.SAVER_ENABLED_QS;
@@ -94,7 +94,7 @@ public class BatteryControllerImpl extends BroadcastReceiver implements BatteryC
protected boolean mPowerSave; protected boolean mPowerSave;
private boolean mAodPowerSave; private boolean mAodPowerSave;
private boolean mWirelessCharging; private boolean mWirelessCharging;
private boolean mIsOverheated = false; private boolean mIsBatteryDefender = false;
private boolean mTestMode = false; private boolean mTestMode = false;
@VisibleForTesting @VisibleForTesting
boolean mHasReceivedBattery = false; boolean mHasReceivedBattery = false;
@@ -163,7 +163,7 @@ public class BatteryControllerImpl extends BroadcastReceiver implements BatteryC
pw.print(" mPluggedIn="); pw.println(mPluggedIn); pw.print(" mPluggedIn="); pw.println(mPluggedIn);
pw.print(" mCharging="); pw.println(mCharging); pw.print(" mCharging="); pw.println(mCharging);
pw.print(" mCharged="); pw.println(mCharged); pw.print(" mCharged="); pw.println(mCharged);
pw.print(" mIsOverheated="); pw.println(mIsOverheated); pw.print(" mIsBatteryDefender="); pw.println(mIsBatteryDefender);
pw.print(" mPowerSave="); pw.println(mPowerSave); pw.print(" mPowerSave="); pw.println(mPowerSave);
pw.print(" mStateUnknown="); pw.println(mStateUnknown); pw.print(" mStateUnknown="); pw.println(mStateUnknown);
} }
@@ -197,7 +197,7 @@ public class BatteryControllerImpl extends BroadcastReceiver implements BatteryC
cb.onPowerSaveChanged(mPowerSave); cb.onPowerSaveChanged(mPowerSave);
cb.onBatteryUnknownStateChanged(mStateUnknown); cb.onBatteryUnknownStateChanged(mStateUnknown);
cb.onWirelessChargingChanged(mWirelessCharging); cb.onWirelessChargingChanged(mWirelessCharging);
cb.onIsOverheatedChanged(mIsOverheated); cb.onIsBatteryDefenderChanged(mIsBatteryDefender);
} }
@Override @Override
@@ -236,11 +236,11 @@ public class BatteryControllerImpl extends BroadcastReceiver implements BatteryC
fireBatteryUnknownStateChanged(); fireBatteryUnknownStateChanged();
} }
int batteryHealth = intent.getIntExtra(EXTRA_HEALTH, BATTERY_HEALTH_UNKNOWN); int chargingStatus = intent.getIntExtra(EXTRA_CHARGING_STATUS, CHARGING_POLICY_DEFAULT);
boolean isOverheated = batteryHealth == BATTERY_HEALTH_OVERHEAT; boolean isBatteryDefender = chargingStatus == CHARGING_POLICY_ADAPTIVE_LONGLIFE;
if (isOverheated != mIsOverheated) { if (isBatteryDefender != mIsBatteryDefender) {
mIsOverheated = isOverheated; mIsBatteryDefender = isBatteryDefender;
fireIsOverheatedChanged(); fireIsBatteryDefenderChanged();
} }
fireBatteryLevelChanged(); fireBatteryLevelChanged();
@@ -313,8 +313,8 @@ public class BatteryControllerImpl extends BroadcastReceiver implements BatteryC
return mPluggedChargingSource == BatteryManager.BATTERY_PLUGGED_WIRELESS; return mPluggedChargingSource == BatteryManager.BATTERY_PLUGGED_WIRELESS;
} }
public boolean isOverheated() { public boolean isBatteryDefender() {
return mIsOverheated; return mIsBatteryDefender;
} }
@Override @Override
@@ -428,11 +428,11 @@ public class BatteryControllerImpl extends BroadcastReceiver implements BatteryC
} }
} }
private void fireIsOverheatedChanged() { private void fireIsBatteryDefenderChanged() {
synchronized (mChangeCallbacks) { synchronized (mChangeCallbacks) {
final int n = mChangeCallbacks.size(); final int n = mChangeCallbacks.size();
for (int i = 0; i < n; i++) { for (int i = 0; i < n; i++) {
mChangeCallbacks.get(i).onIsOverheatedChanged(mIsOverheated); mChangeCallbacks.get(i).onIsBatteryDefenderChanged(mIsBatteryDefender);
} }
} }
} }
@@ -447,7 +447,7 @@ public class BatteryControllerImpl extends BroadcastReceiver implements BatteryC
String plugged = args.getString("plugged"); String plugged = args.getString("plugged");
String powerSave = args.getString("powersave"); String powerSave = args.getString("powersave");
String present = args.getString("present"); String present = args.getString("present");
String overheated = args.getString("overheated"); String defender = args.getString("defender");
if (level != null) { if (level != null) {
mLevel = Math.min(Math.max(Integer.parseInt(level), 0), 100); mLevel = Math.min(Math.max(Integer.parseInt(level), 0), 100);
} }
@@ -462,9 +462,9 @@ public class BatteryControllerImpl extends BroadcastReceiver implements BatteryC
mStateUnknown = !present.equals("true"); mStateUnknown = !present.equals("true");
fireBatteryUnknownStateChanged(); fireBatteryUnknownStateChanged();
} }
if (overheated != null) { if (defender != null) {
mIsOverheated = overheated.equals("true"); mIsBatteryDefender = defender.equals("true");
fireIsOverheatedChanged(); fireIsBatteryDefenderChanged();
} }
fireBatteryLevelChanged(); fireBatteryLevelChanged();
} }

View File

@@ -3088,7 +3088,8 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
private Intent getBatteryIntent() { private Intent getBatteryIntent() {
return new Intent(Intent.ACTION_BATTERY_CHANGED).putExtra( return new Intent(Intent.ACTION_BATTERY_CHANGED).putExtra(
BatteryManager.EXTRA_HEALTH, BatteryManager.BATTERY_HEALTH_OVERHEAT); BatteryManager.EXTRA_CHARGING_STATUS,
BatteryManager.CHARGING_POLICY_ADAPTIVE_LONGLIFE);
} }
private class TestableKeyguardUpdateMonitor extends KeyguardUpdateMonitor { private class TestableKeyguardUpdateMonitor extends KeyguardUpdateMonitor {

View File

@@ -85,9 +85,9 @@ class BatteryMeterViewTest : SysuiTestCase() {
} }
@Test @Test
fun contentDescription_estimateAndOverheated() { fun contentDescription_estimateAndBatteryDefender() {
mBatteryMeterView.onBatteryLevelChanged(17, false) mBatteryMeterView.onBatteryLevelChanged(17, false)
mBatteryMeterView.onIsOverheatedChanged(true) mBatteryMeterView.onIsBatteryDefenderChanged(true)
mBatteryMeterView.setPercentShowMode(BatteryMeterView.MODE_ESTIMATE) mBatteryMeterView.setPercentShowMode(BatteryMeterView.MODE_ESTIMATE)
mBatteryMeterView.setBatteryEstimateFetcher(Fetcher()) mBatteryMeterView.setBatteryEstimateFetcher(Fetcher())
@@ -103,9 +103,9 @@ class BatteryMeterViewTest : SysuiTestCase() {
} }
@Test @Test
fun contentDescription_overheated() { fun contentDescription_batteryDefender() {
mBatteryMeterView.onBatteryLevelChanged(90, false) mBatteryMeterView.onBatteryLevelChanged(90, false)
mBatteryMeterView.onIsOverheatedChanged(true) mBatteryMeterView.onIsBatteryDefenderChanged(true)
assertThat(mBatteryMeterView.contentDescription).isEqualTo( assertThat(mBatteryMeterView.contentDescription).isEqualTo(
context.getString(R.string.accessibility_battery_level_charging_paused, 90) context.getString(R.string.accessibility_battery_level_charging_paused, 90)
@@ -155,14 +155,14 @@ class BatteryMeterViewTest : SysuiTestCase() {
@Test @Test
fun contentDescription_manyUpdates_alwaysUpdated() { fun contentDescription_manyUpdates_alwaysUpdated() {
// Overheated // BatteryDefender
mBatteryMeterView.onBatteryLevelChanged(90, false) mBatteryMeterView.onBatteryLevelChanged(90, false)
mBatteryMeterView.onIsOverheatedChanged(true) mBatteryMeterView.onIsBatteryDefenderChanged(true)
assertThat(mBatteryMeterView.contentDescription).isEqualTo( assertThat(mBatteryMeterView.contentDescription).isEqualTo(
context.getString(R.string.accessibility_battery_level_charging_paused, 90) context.getString(R.string.accessibility_battery_level_charging_paused, 90)
) )
// Overheated & estimate // BatteryDefender & estimate
mBatteryMeterView.setPercentShowMode(BatteryMeterView.MODE_ESTIMATE) mBatteryMeterView.setPercentShowMode(BatteryMeterView.MODE_ESTIMATE)
mBatteryMeterView.setBatteryEstimateFetcher(Fetcher()) mBatteryMeterView.setBatteryEstimateFetcher(Fetcher())
mBatteryMeterView.updatePercentText() mBatteryMeterView.updatePercentText()
@@ -175,7 +175,7 @@ class BatteryMeterViewTest : SysuiTestCase() {
) )
// Just estimate // Just estimate
mBatteryMeterView.onIsOverheatedChanged(false) mBatteryMeterView.onIsBatteryDefenderChanged(false)
assertThat(mBatteryMeterView.contentDescription).isEqualTo( assertThat(mBatteryMeterView.contentDescription).isEqualTo(
context.getString( context.getString(
R.string.accessibility_battery_level_with_estimate, R.string.accessibility_battery_level_with_estimate,
@@ -198,35 +198,35 @@ class BatteryMeterViewTest : SysuiTestCase() {
} }
@Test @Test
fun isOverheatedChanged_true_drawableGetsTrue() { fun isBatteryDefenderChanged_true_drawableGetsTrue() {
mBatteryMeterView.setDisplayShieldEnabled(true) mBatteryMeterView.setDisplayShieldEnabled(true)
val drawable = getBatteryDrawable() val drawable = getBatteryDrawable()
mBatteryMeterView.onIsOverheatedChanged(true) mBatteryMeterView.onIsBatteryDefenderChanged(true)
assertThat(drawable.displayShield).isTrue() assertThat(drawable.displayShield).isTrue()
} }
@Test @Test
fun isOverheatedChanged_false_drawableGetsFalse() { fun isBatteryDefenderChanged_false_drawableGetsFalse() {
mBatteryMeterView.setDisplayShieldEnabled(true) mBatteryMeterView.setDisplayShieldEnabled(true)
val drawable = getBatteryDrawable() val drawable = getBatteryDrawable()
// Start as true // Start as true
mBatteryMeterView.onIsOverheatedChanged(true) mBatteryMeterView.onIsBatteryDefenderChanged(true)
// Update to false // Update to false
mBatteryMeterView.onIsOverheatedChanged(false) mBatteryMeterView.onIsBatteryDefenderChanged(false)
assertThat(drawable.displayShield).isFalse() assertThat(drawable.displayShield).isFalse()
} }
@Test @Test
fun isOverheatedChanged_true_featureflagOff_drawableGetsFalse() { fun isBatteryDefenderChanged_true_featureflagOff_drawableGetsFalse() {
mBatteryMeterView.setDisplayShieldEnabled(false) mBatteryMeterView.setDisplayShieldEnabled(false)
val drawable = getBatteryDrawable() val drawable = getBatteryDrawable()
mBatteryMeterView.onIsOverheatedChanged(true) mBatteryMeterView.onIsBatteryDefenderChanged(true)
assertThat(drawable.displayShield).isFalse() assertThat(drawable.displayShield).isFalse()
} }

View File

@@ -1066,11 +1066,11 @@ public class KeyguardIndicationControllerTest extends SysuiTestCase {
} }
@Test @Test
public void onRefreshBatteryInfo_chargingWithOverheat_presentChargingLimited() { public void onRefreshBatteryInfo_chargingWithLongLife_presentChargingLimited() {
createController(); createController();
BatteryStatus status = new BatteryStatus(BatteryManager.BATTERY_STATUS_CHARGING, BatteryStatus status = new BatteryStatus(BatteryManager.BATTERY_STATUS_CHARGING,
80 /* level */, BatteryManager.BATTERY_PLUGGED_AC, 80 /* level */, BatteryManager.BATTERY_PLUGGED_AC,
BatteryManager.BATTERY_HEALTH_OVERHEAT, 0 /* maxChargingWattage */, BatteryManager.CHARGING_POLICY_ADAPTIVE_LONGLIFE, 0 /* maxChargingWattage */,
true /* present */); true /* present */);
mController.getKeyguardCallback().onRefreshBatteryInfo(status); mController.getKeyguardCallback().onRefreshBatteryInfo(status);
@@ -1084,11 +1084,11 @@ public class KeyguardIndicationControllerTest extends SysuiTestCase {
} }
@Test @Test
public void onRefreshBatteryInfo_fullChargedWithOverheat_presentChargingLimited() { public void onRefreshBatteryInfo_fullChargedWithLongLife_presentChargingLimited() {
createController(); createController();
BatteryStatus status = new BatteryStatus(BatteryManager.BATTERY_STATUS_CHARGING, BatteryStatus status = new BatteryStatus(BatteryManager.BATTERY_STATUS_CHARGING,
100 /* level */, BatteryManager.BATTERY_PLUGGED_AC, 100 /* level */, BatteryManager.BATTERY_PLUGGED_AC,
BatteryManager.BATTERY_HEALTH_OVERHEAT, 0 /* maxChargingWattage */, BatteryManager.CHARGING_POLICY_ADAPTIVE_LONGLIFE, 0 /* maxChargingWattage */,
true /* present */); true /* present */);
mController.getKeyguardCallback().onRefreshBatteryInfo(status); mController.getKeyguardCallback().onRefreshBatteryInfo(status);
@@ -1102,11 +1102,11 @@ public class KeyguardIndicationControllerTest extends SysuiTestCase {
} }
@Test @Test
public void onRefreshBatteryInfo_fullChargedWithoutOverheat_presentCharged() { public void onRefreshBatteryInfo_fullChargedWithoutLongLife_presentCharged() {
createController(); createController();
BatteryStatus status = new BatteryStatus(BatteryManager.BATTERY_STATUS_CHARGING, BatteryStatus status = new BatteryStatus(BatteryManager.BATTERY_STATUS_CHARGING,
100 /* level */, BatteryManager.BATTERY_PLUGGED_AC, 100 /* level */, BatteryManager.BATTERY_PLUGGED_AC,
BatteryManager.BATTERY_HEALTH_GOOD, 0 /* maxChargingWattage */, BatteryManager.CHARGING_POLICY_DEFAULT, 0 /* maxChargingWattage */,
true /* present */); true /* present */);
mController.getKeyguardCallback().onRefreshBatteryInfo(status); mController.getKeyguardCallback().onRefreshBatteryInfo(status);
@@ -1118,11 +1118,11 @@ public class KeyguardIndicationControllerTest extends SysuiTestCase {
} }
@Test @Test
public void onRefreshBatteryInfo_dozing_dischargingWithOverheat_presentBatteryPercentage() { public void onRefreshBatteryInfo_dozing_dischargingWithLongLife_presentBatteryPercentage() {
createController(); createController();
mController.setVisible(true); mController.setVisible(true);
BatteryStatus status = new BatteryStatus(BatteryManager.BATTERY_STATUS_DISCHARGING, BatteryStatus status = new BatteryStatus(BatteryManager.BATTERY_STATUS_DISCHARGING,
90 /* level */, 0 /* plugged */, BatteryManager.BATTERY_HEALTH_OVERHEAT, 90 /* level */, 0 /* plugged */, BatteryManager.CHARGING_POLICY_ADAPTIVE_LONGLIFE,
0 /* maxChargingWattage */, true /* present */); 0 /* maxChargingWattage */, true /* present */);
mController.getKeyguardCallback().onRefreshBatteryInfo(status); mController.getKeyguardCallback().onRefreshBatteryInfo(status);

View File

@@ -226,31 +226,33 @@ public class BatteryControllerTest extends SysuiTestCase {
} }
@Test @Test
public void batteryStateChanged_healthNotOverheated_outputsFalse() { public void batteryStateChanged_chargingStatusNotLongLife_outputsFalse() {
Intent intent = new Intent(Intent.ACTION_BATTERY_CHANGED); Intent intent = new Intent(Intent.ACTION_BATTERY_CHANGED);
intent.putExtra(BatteryManager.EXTRA_HEALTH, BatteryManager.BATTERY_HEALTH_GOOD); intent.putExtra(BatteryManager.EXTRA_CHARGING_STATUS,
BatteryManager.CHARGING_POLICY_DEFAULT);
mBatteryController.onReceive(getContext(), intent); mBatteryController.onReceive(getContext(), intent);
Assert.assertFalse(mBatteryController.isOverheated()); Assert.assertFalse(mBatteryController.isBatteryDefender());
} }
@Test @Test
public void batteryStateChanged_healthOverheated_outputsTrue() { public void batteryStateChanged_chargingStatusLongLife_outputsTrue() {
Intent intent = new Intent(Intent.ACTION_BATTERY_CHANGED); Intent intent = new Intent(Intent.ACTION_BATTERY_CHANGED);
intent.putExtra(BatteryManager.EXTRA_HEALTH, BatteryManager.BATTERY_HEALTH_OVERHEAT); intent.putExtra(BatteryManager.EXTRA_CHARGING_STATUS,
BatteryManager.CHARGING_POLICY_ADAPTIVE_LONGLIFE);
mBatteryController.onReceive(getContext(), intent); mBatteryController.onReceive(getContext(), intent);
Assert.assertTrue(mBatteryController.isOverheated()); Assert.assertTrue(mBatteryController.isBatteryDefender());
} }
@Test @Test
public void batteryStateChanged_noHealthGiven_outputsFalse() { public void batteryStateChanged_noChargingStatusGiven_outputsFalse() {
Intent intent = new Intent(Intent.ACTION_BATTERY_CHANGED); Intent intent = new Intent(Intent.ACTION_BATTERY_CHANGED);
mBatteryController.onReceive(getContext(), intent); mBatteryController.onReceive(getContext(), intent);
Assert.assertFalse(mBatteryController.isOverheated()); Assert.assertFalse(mBatteryController.isBatteryDefender());
} }
} }