Loading packages/SettingsLib/src/com/android/settingslib/fuelgauge/BatteryStatus.java +13 −12 Original line number Diff line number Diff line Loading @@ -16,12 +16,11 @@ 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_UNKNOWN; import static android.os.BatteryManager.EXTRA_HEALTH; import static android.os.BatteryManager.EXTRA_LEVEL; import static android.os.BatteryManager.CHARGING_POLICY_ADAPTIVE_LONGLIFE; 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_VOLTAGE; import static android.os.BatteryManager.EXTRA_PLUGGED; Loading Loading @@ -51,7 +50,7 @@ public class BatteryStatus { public final int status; public final int level; public final int plugged; public final int health; public final int chargingStatus; public final int maxChargingWattage; public final boolean present; public final Optional<Boolean> incompatibleCharger; Loading @@ -62,12 +61,12 @@ public class BatteryStatus { ? 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) { this.status = status; this.level = level; this.plugged = plugged; this.health = health; this.chargingStatus = chargingStatus; this.maxChargingWattage = maxChargingWattage; this.present = present; this.incompatibleCharger = Optional.empty(); Loading @@ -86,7 +85,8 @@ public class BatteryStatus { status = batteryChangedIntent.getIntExtra(EXTRA_STATUS, BATTERY_STATUS_UNKNOWN); plugged = batteryChangedIntent.getIntExtra(EXTRA_PLUGGED, 0); 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); this.incompatibleCharger = incompatibleCharger; Loading Loading @@ -143,9 +143,9 @@ public class BatteryStatus { return level < LOW_BATTERY_THRESHOLD; } /** Whether battery is overheated. */ public boolean isOverheated() { return health == BATTERY_HEALTH_OVERHEAT; /** Whether battery defender is enabled. */ public boolean isBatteryDefender() { return chargingStatus == CHARGING_POLICY_ADAPTIVE_LONGLIFE; } /** Return current chargin speed is fast, slow or normal. */ Loading @@ -163,7 +163,8 @@ public class BatteryStatus { @Override public String toString() { return "BatteryStatus{status=" + status + ",level=" + level + ",plugged=" + plugged + ",health=" + health + ",maxChargingWattage=" + maxChargingWattage + "}"; + ",chargingStatus=" + chargingStatus + ",maxChargingWattage=" + maxChargingWattage + "}"; } /** Loading packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java +5 −3 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import static android.hardware.biometrics.BiometricConstants.LockoutMode; import static android.hardware.biometrics.BiometricSourceType.FACE; import static android.hardware.biometrics.BiometricSourceType.FINGERPRINT; 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 com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_BOOT; Loading Loading @@ -2457,7 +2458,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab } // 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 final IntentFilter filter = new IntentFilter(); Loading Loading @@ -3881,8 +3883,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab return true; } // change in battery overheat return current.health != old.health; // change in charging status return current.chargingStatus != old.chargingStatus; } /** Loading packages/SystemUI/src/com/android/systemui/battery/BatteryMeterView.java +7 −9 Original line number Diff line number Diff line Loading @@ -78,7 +78,7 @@ public class BatteryMeterView extends LinearLayout implements DarkReceiver { private boolean mShowPercentAvailable; private String mEstimateText = null; private boolean mCharging; private boolean mIsOverheated; private boolean mIsBatteryDefender; private boolean mDisplayShieldEnabled; // Error state where we know nothing about the current battery state private boolean mBatteryStateUnknown; Loading Loading @@ -213,9 +213,9 @@ public class BatteryMeterView extends LinearLayout implements DarkReceiver { mDrawable.setPowerSaveEnabled(isPowerSave); } void onIsOverheatedChanged(boolean isOverheated) { boolean valueChanged = mIsOverheated != isOverheated; mIsOverheated = isOverheated; void onIsBatteryDefenderChanged(boolean isBatteryDefender) { boolean valueChanged = mIsBatteryDefender != isBatteryDefender; mIsBatteryDefender = isBatteryDefender; if (valueChanged) { updateContentDescription(); // The battery drawable is a different size depending on whether it's currently Loading Loading @@ -308,12 +308,12 @@ public class BatteryMeterView extends LinearLayout implements DarkReceiver { contentDescription = context.getString(R.string.accessibility_battery_unknown); } else if (mShowPercentMode == MODE_ESTIMATE && !TextUtils.isEmpty(mEstimateText)) { contentDescription = context.getString( mIsOverheated mIsBatteryDefender ? R.string.accessibility_battery_level_charging_paused_with_estimate : R.string.accessibility_battery_level_with_estimate, mLevel, mEstimateText); } else if (mIsOverheated) { } else if (mIsBatteryDefender) { contentDescription = context.getString(R.string.accessibility_battery_level_charging_paused, mLevel); } else if (mCharging) { Loading Loading @@ -399,9 +399,7 @@ public class BatteryMeterView extends LinearLayout implements DarkReceiver { float mainBatteryWidth = 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 // battery is being "defended". boolean displayShield = mDisplayShieldEnabled && mIsOverheated; boolean displayShield = mDisplayShieldEnabled && mIsBatteryDefender; float fullBatteryIconHeight = BatterySpecs.getFullBatteryHeight(mainBatteryHeight, displayShield); float fullBatteryIconWidth = Loading packages/SystemUI/src/com/android/systemui/battery/BatteryMeterViewController.java +2 −2 Original line number Diff line number Diff line Loading @@ -91,8 +91,8 @@ public class BatteryMeterViewController extends ViewController<BatteryMeterView> } @Override public void onIsOverheatedChanged(boolean isOverheated) { mView.onIsOverheatedChanged(isOverheated); public void onIsBatteryDefenderChanged(boolean isBatteryDefender) { mView.onIsBatteryDefenderChanged(isBatteryDefender); } }; Loading packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java +5 −5 Original line number Diff line number Diff line Loading @@ -186,7 +186,7 @@ public class KeyguardIndicationController { private boolean mPowerPluggedInDock; private boolean mPowerCharged; private boolean mBatteryOverheated; private boolean mBatteryDefender; private boolean mEnableBatteryDefender; private boolean mIncompatibleCharger; private int mChargingSpeed; Loading Loading @@ -921,7 +921,7 @@ public class KeyguardIndicationController { */ protected String computePowerIndication() { int chargingId; if (mBatteryOverheated) { if (mBatteryDefender) { chargingId = R.string.keyguard_plugged_in_charging_limited; String percentage = NumberFormat.getPercentInstance().format(mBatteryLevel / 100f); return mContext.getResources().getString(chargingId, percentage); Loading Loading @@ -1093,9 +1093,9 @@ public class KeyguardIndicationController { mChargingSpeed = status.getChargingSpeed(mContext); mBatteryLevel = status.level; mBatteryPresent = status.present; mBatteryOverheated = status.isOverheated(); mBatteryDefender = status.isBatteryDefender(); // 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); try { mChargingTimeRemaining = mPowerPluggedIn Loading @@ -1106,7 +1106,7 @@ public class KeyguardIndicationController { } mKeyguardLogger.logRefreshBatteryInfo(isChargingOrFull, mPowerPluggedIn, mBatteryLevel, mBatteryOverheated); mBatteryDefender); updateDeviceEntryIndication(!wasPluggedIn && mPowerPluggedInWired); } Loading Loading
packages/SettingsLib/src/com/android/settingslib/fuelgauge/BatteryStatus.java +13 −12 Original line number Diff line number Diff line Loading @@ -16,12 +16,11 @@ 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_UNKNOWN; import static android.os.BatteryManager.EXTRA_HEALTH; import static android.os.BatteryManager.EXTRA_LEVEL; import static android.os.BatteryManager.CHARGING_POLICY_ADAPTIVE_LONGLIFE; 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_VOLTAGE; import static android.os.BatteryManager.EXTRA_PLUGGED; Loading Loading @@ -51,7 +50,7 @@ public class BatteryStatus { public final int status; public final int level; public final int plugged; public final int health; public final int chargingStatus; public final int maxChargingWattage; public final boolean present; public final Optional<Boolean> incompatibleCharger; Loading @@ -62,12 +61,12 @@ public class BatteryStatus { ? 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) { this.status = status; this.level = level; this.plugged = plugged; this.health = health; this.chargingStatus = chargingStatus; this.maxChargingWattage = maxChargingWattage; this.present = present; this.incompatibleCharger = Optional.empty(); Loading @@ -86,7 +85,8 @@ public class BatteryStatus { status = batteryChangedIntent.getIntExtra(EXTRA_STATUS, BATTERY_STATUS_UNKNOWN); plugged = batteryChangedIntent.getIntExtra(EXTRA_PLUGGED, 0); 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); this.incompatibleCharger = incompatibleCharger; Loading Loading @@ -143,9 +143,9 @@ public class BatteryStatus { return level < LOW_BATTERY_THRESHOLD; } /** Whether battery is overheated. */ public boolean isOverheated() { return health == BATTERY_HEALTH_OVERHEAT; /** Whether battery defender is enabled. */ public boolean isBatteryDefender() { return chargingStatus == CHARGING_POLICY_ADAPTIVE_LONGLIFE; } /** Return current chargin speed is fast, slow or normal. */ Loading @@ -163,7 +163,8 @@ public class BatteryStatus { @Override public String toString() { return "BatteryStatus{status=" + status + ",level=" + level + ",plugged=" + plugged + ",health=" + health + ",maxChargingWattage=" + maxChargingWattage + "}"; + ",chargingStatus=" + chargingStatus + ",maxChargingWattage=" + maxChargingWattage + "}"; } /** Loading
packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java +5 −3 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import static android.hardware.biometrics.BiometricConstants.LockoutMode; import static android.hardware.biometrics.BiometricSourceType.FACE; import static android.hardware.biometrics.BiometricSourceType.FINGERPRINT; 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 com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_BOOT; Loading Loading @@ -2457,7 +2458,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab } // 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 final IntentFilter filter = new IntentFilter(); Loading Loading @@ -3881,8 +3883,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab return true; } // change in battery overheat return current.health != old.health; // change in charging status return current.chargingStatus != old.chargingStatus; } /** Loading
packages/SystemUI/src/com/android/systemui/battery/BatteryMeterView.java +7 −9 Original line number Diff line number Diff line Loading @@ -78,7 +78,7 @@ public class BatteryMeterView extends LinearLayout implements DarkReceiver { private boolean mShowPercentAvailable; private String mEstimateText = null; private boolean mCharging; private boolean mIsOverheated; private boolean mIsBatteryDefender; private boolean mDisplayShieldEnabled; // Error state where we know nothing about the current battery state private boolean mBatteryStateUnknown; Loading Loading @@ -213,9 +213,9 @@ public class BatteryMeterView extends LinearLayout implements DarkReceiver { mDrawable.setPowerSaveEnabled(isPowerSave); } void onIsOverheatedChanged(boolean isOverheated) { boolean valueChanged = mIsOverheated != isOverheated; mIsOverheated = isOverheated; void onIsBatteryDefenderChanged(boolean isBatteryDefender) { boolean valueChanged = mIsBatteryDefender != isBatteryDefender; mIsBatteryDefender = isBatteryDefender; if (valueChanged) { updateContentDescription(); // The battery drawable is a different size depending on whether it's currently Loading Loading @@ -308,12 +308,12 @@ public class BatteryMeterView extends LinearLayout implements DarkReceiver { contentDescription = context.getString(R.string.accessibility_battery_unknown); } else if (mShowPercentMode == MODE_ESTIMATE && !TextUtils.isEmpty(mEstimateText)) { contentDescription = context.getString( mIsOverheated mIsBatteryDefender ? R.string.accessibility_battery_level_charging_paused_with_estimate : R.string.accessibility_battery_level_with_estimate, mLevel, mEstimateText); } else if (mIsOverheated) { } else if (mIsBatteryDefender) { contentDescription = context.getString(R.string.accessibility_battery_level_charging_paused, mLevel); } else if (mCharging) { Loading Loading @@ -399,9 +399,7 @@ public class BatteryMeterView extends LinearLayout implements DarkReceiver { float mainBatteryWidth = 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 // battery is being "defended". boolean displayShield = mDisplayShieldEnabled && mIsOverheated; boolean displayShield = mDisplayShieldEnabled && mIsBatteryDefender; float fullBatteryIconHeight = BatterySpecs.getFullBatteryHeight(mainBatteryHeight, displayShield); float fullBatteryIconWidth = Loading
packages/SystemUI/src/com/android/systemui/battery/BatteryMeterViewController.java +2 −2 Original line number Diff line number Diff line Loading @@ -91,8 +91,8 @@ public class BatteryMeterViewController extends ViewController<BatteryMeterView> } @Override public void onIsOverheatedChanged(boolean isOverheated) { mView.onIsOverheatedChanged(isOverheated); public void onIsBatteryDefenderChanged(boolean isBatteryDefender) { mView.onIsBatteryDefenderChanged(isBatteryDefender); } }; Loading
packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java +5 −5 Original line number Diff line number Diff line Loading @@ -186,7 +186,7 @@ public class KeyguardIndicationController { private boolean mPowerPluggedInDock; private boolean mPowerCharged; private boolean mBatteryOverheated; private boolean mBatteryDefender; private boolean mEnableBatteryDefender; private boolean mIncompatibleCharger; private int mChargingSpeed; Loading Loading @@ -921,7 +921,7 @@ public class KeyguardIndicationController { */ protected String computePowerIndication() { int chargingId; if (mBatteryOverheated) { if (mBatteryDefender) { chargingId = R.string.keyguard_plugged_in_charging_limited; String percentage = NumberFormat.getPercentInstance().format(mBatteryLevel / 100f); return mContext.getResources().getString(chargingId, percentage); Loading Loading @@ -1093,9 +1093,9 @@ public class KeyguardIndicationController { mChargingSpeed = status.getChargingSpeed(mContext); mBatteryLevel = status.level; mBatteryPresent = status.present; mBatteryOverheated = status.isOverheated(); mBatteryDefender = status.isBatteryDefender(); // 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); try { mChargingTimeRemaining = mPowerPluggedIn Loading @@ -1106,7 +1106,7 @@ public class KeyguardIndicationController { } mKeyguardLogger.logRefreshBatteryInfo(isChargingOrFull, mPowerPluggedIn, mBatteryLevel, mBatteryOverheated); mBatteryDefender); updateDeviceEntryIndication(!wasPluggedIn && mPowerPluggedInWired); } Loading