From c67c64f4a0d4d0c5a081c09363ede498601331d4 Mon Sep 17 00:00:00 2001 From: "Wesley.CW Wang" Date: Mon, 6 Sep 2021 18:34:30 +0800 Subject: [PATCH] Reprioritize AOD battery info - Make charge limited string higher than charged string Bug: 198382005 Test: atest SystemUITests Change-Id: I65125184a9cc8dd4983121f72dc68184125dc398 --- .../KeyguardIndicationController.java | 9 ++++----- .../KeyguardIndicationControllerTest.java | 20 ++++++++++++++++++- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java index eb5f82ca417e4..445715e138ab8 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java @@ -723,15 +723,13 @@ public class KeyguardIndicationController { } protected String computePowerIndication() { - if (mPowerCharged) { - return mContext.getResources().getString(R.string.keyguard_charged); - } - int chargingId; - String percentage = NumberFormat.getPercentInstance().format(mBatteryLevel / 100f); if (mBatteryOverheated) { chargingId = R.string.keyguard_plugged_in_charging_limited; + String percentage = NumberFormat.getPercentInstance().format(mBatteryLevel / 100f); return mContext.getResources().getString(chargingId, percentage); + } else if (mPowerCharged) { + return mContext.getResources().getString(R.string.keyguard_charged); } final boolean hasChargingTime = mChargingTimeRemaining > 0; @@ -759,6 +757,7 @@ public class KeyguardIndicationController { : R.string.keyguard_plugged_in_wireless; } + String percentage = NumberFormat.getPercentInstance().format(mBatteryLevel / 100f); if (hasChargingTime) { String chargingTimeFormatted = Formatter.formatShortElapsedTimeRoundingUpToMinutes( mContext, mChargingTimeRemaining); diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/KeyguardIndicationControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/KeyguardIndicationControllerTest.java index 4c90063161751..09a3d35d2d324 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/KeyguardIndicationControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/KeyguardIndicationControllerTest.java @@ -639,7 +639,7 @@ public class KeyguardIndicationControllerTest extends SysuiTestCase { } @Test - public void onRefreshBatteryInfo_fullChargedWithOverheat_presentCharged() { + public void onRefreshBatteryInfo_fullChargedWithOverheat_presentChargingLimited() { createController(); BatteryStatus status = new BatteryStatus(BatteryManager.BATTERY_STATUS_CHARGING, 100 /* level */, BatteryManager.BATTERY_PLUGGED_AC, @@ -649,6 +649,24 @@ public class KeyguardIndicationControllerTest extends SysuiTestCase { mController.getKeyguardCallback().onRefreshBatteryInfo(status); mController.setVisible(true); + verifyIndicationMessage( + INDICATION_TYPE_BATTERY, + mContext.getString( + R.string.keyguard_plugged_in_charging_limited, + NumberFormat.getPercentInstance().format(100 / 100f))); + } + + @Test + public void onRefreshBatteryInfo_fullChargedWithoutOverheat_presentCharged() { + createController(); + BatteryStatus status = new BatteryStatus(BatteryManager.BATTERY_STATUS_CHARGING, + 100 /* level */, BatteryManager.BATTERY_PLUGGED_AC, + BatteryManager.BATTERY_HEALTH_GOOD, 0 /* maxChargingWattage */, + true /* present */); + + mController.getKeyguardCallback().onRefreshBatteryInfo(status); + mController.setVisible(true); + verifyIndicationMessage( INDICATION_TYPE_BATTERY, mContext.getString(R.string.keyguard_charged));