From c0c3b65c5ce069042519e15f9d1a3757ebbf4b54 Mon Sep 17 00:00:00 2001 From: Pajace Chen Date: Mon, 22 Jul 2024 08:22:32 +0000 Subject: [PATCH] [BugFix] Fix the incorrect state for dockdefend on battery settings page Bug: 348563863 Change-Id: Ie5f0f3e380b9355f96898eeddc755a18a71917a0 Test: Manual Test Test: http://ab/I16200010297673244 Flag: EXEMPT bug fix --- .../BatteryHeaderPreferenceController.java | 5 ++++- ...BatteryHeaderPreferenceControllerTest.java | 22 +++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java b/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java index 7d15858f8b5..f121d0c2e5b 100644 --- a/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java +++ b/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java @@ -81,7 +81,10 @@ public class BatteryHeaderPreferenceController extends BasePreferenceController return mContext.getString( com.android.settingslib.R.string.battery_info_status_not_charging); } - if (BatteryUtils.isBatteryDefenderOn(info)) { + if (BatteryUtils.isBatteryDefenderOn(info) + || FeatureFactory.getFeatureFactory() + .getPowerUsageFeatureProvider() + .isExtraDefend()) { return mContext.getString( com.android.settingslib.R.string.battery_info_status_charging_on_hold); } diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java index b949a3eb302..fdb075d2e03 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java @@ -389,6 +389,28 @@ public class BatteryHeaderPreferenceControllerTest { verify(mBatteryUsageProgressBarPref).setBottomSummary(expectedChargingString); } + @Test + public void updateBatteryStatus_dockDefend_chargingOnHold() { + var expected = "Charging on hold"; + mBatteryInfo.isBatteryDefender = false; + when(mFactory.powerUsageFeatureProvider.isExtraDefend()).thenReturn(true); + + mController.updateBatteryStatus(/* label= */ null, mBatteryInfo); + + verify(mBatteryUsageProgressBarPref).setBottomSummary(expected); + } + + @Test + public void updateBatteryStatus_batteryDefender_chargingOnHold() { + var expected = "Charging on hold"; + mBatteryInfo.isBatteryDefender = true; + when(mFactory.powerUsageFeatureProvider.isExtraDefend()).thenReturn(false); + + mController.updateBatteryStatus(/* label= */ null, mBatteryInfo); + + verify(mBatteryUsageProgressBarPref).setBottomSummary(expected); + } + private BatteryInfo arrangeUpdateBatteryStatusTestWithRemainingLabel( String remainingLabel, String statusLabel,