From 3ae46cd6ecb9526b65e69b4ee56ee54be7a20a45 Mon Sep 17 00:00:00 2001 From: ykhung Date: Sun, 5 Mar 2023 10:54:01 +0800 Subject: [PATCH 1/3] Add a new config for checking BatteryManager show/hide rule Bug: 271387663 Test: presubmit Change-Id: If24b5e6de630afe972ad7ff7af866cb587db0a56 --- res/values/config.xml | 5 ++++- .../BatteryManagerPreferenceController.java | 9 +++++++-- ...rySaverButtonPreferenceControllerTest.java | 9 --------- ...atteryManagerPreferenceControllerTest.java | 19 +++++++++++++++++++ 4 files changed, 30 insertions(+), 12 deletions(-) diff --git a/res/values/config.xml b/res/values/config.xml index 07f6432ed3d..ad92e76d895 100755 --- a/res/values/config.xml +++ b/res/values/config.xml @@ -553,7 +553,7 @@ com.android.cellbroadcastreceiver.module - + content://com.android.providers.media.documents/root/images_root @@ -695,4 +695,7 @@ false + + + false diff --git a/src/com/android/settings/fuelgauge/batterytip/BatteryManagerPreferenceController.java b/src/com/android/settings/fuelgauge/batterytip/BatteryManagerPreferenceController.java index ff747e36791..a6575a58a3a 100644 --- a/src/com/android/settings/fuelgauge/batterytip/BatteryManagerPreferenceController.java +++ b/src/com/android/settings/fuelgauge/batterytip/BatteryManagerPreferenceController.java @@ -50,8 +50,13 @@ public class BatteryManagerPreferenceController extends BasePreferenceController @Override public int getAvailabilityStatus() { - return mPowerUsageFeatureProvider.isBatteryManagerSupported() - && mPowerUsageFeatureProvider.isAdaptiveChargingSupported() + if (!mPowerUsageFeatureProvider.isBatteryManagerSupported()) { + return UNSUPPORTED_ON_DEVICE; + } + if (!mContext.getResources().getBoolean(R.bool.config_battery_manager_consider_ac)) { + return AVAILABLE_UNSEARCHABLE; + } + return mPowerUsageFeatureProvider.isAdaptiveChargingSupported() ? AVAILABLE_UNSEARCHABLE : UNSUPPORTED_ON_DEVICE; } diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceControllerTest.java index 881a18d6baf..4f26754b212 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceControllerTest.java @@ -85,15 +85,6 @@ public class BatterySaverButtonPreferenceControllerTest { assertThat(mPreference.isChecked()).isFalse(); } - @Test - public void onSwitchChanged_isCheckedAndAcked_setPowerSaveMode() { - setLowPowerWarningAcked(/* acked= */ 1); - - mController.onSwitchChanged(/* switchView= */ null, /* isChecked= */ true); - - verify(mPowerManager).setPowerSaveModeEnabled(true); - } - @Test public void updateState_lowPowerOn_preferenceIsChecked() { when(mPowerManager.isPowerSaveMode()).thenReturn(true); diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryManagerPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryManagerPreferenceControllerTest.java index 218fa9e5a51..5cd137a6d3e 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryManagerPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryManagerPreferenceControllerTest.java @@ -26,8 +26,10 @@ import android.provider.Settings; import androidx.preference.Preference; +import com.android.settings.R; import com.android.settings.fuelgauge.PowerUsageFeatureProvider; import com.android.settings.testutils.FakeFeatureFactory; +import com.android.settings.testutils.shadow.SettingsShadowResources; import org.junit.Before; import org.junit.Test; @@ -36,8 +38,10 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; +import org.robolectric.annotation.Config; @RunWith(RobolectricTestRunner.class) +@Config(shadows = SettingsShadowResources.class) public class BatteryManagerPreferenceControllerTest { private static final int ON = 1; private static final int OFF = 0; @@ -85,6 +89,8 @@ public class BatteryManagerPreferenceControllerTest { @Test public void getAvailabilityStatus_supportBatteryManager_showPrefPage() { + SettingsShadowResources.overrideResource( + R.bool.config_battery_manager_consider_ac, true); when(mPowerUsageFeatureProvider.isBatteryManagerSupported()).thenReturn(true); when(mPowerUsageFeatureProvider.isAdaptiveChargingSupported()).thenReturn(true); @@ -102,10 +108,23 @@ public class BatteryManagerPreferenceControllerTest { @Test public void getAvailabilityStatus_supportBatteryManagerWithoutAC_notShowPrefPage() { + SettingsShadowResources.overrideResource( + R.bool.config_battery_manager_consider_ac, true); when(mPowerUsageFeatureProvider.isBatteryManagerSupported()).thenReturn(true); when(mPowerUsageFeatureProvider.isAdaptiveChargingSupported()).thenReturn(false); assertThat(mController.getAvailabilityStatus()).isEqualTo( BatteryManagerPreferenceController.UNSUPPORTED_ON_DEVICE); } + + @Test + public void getAvailabilityStatus_ignoreBatteryManagerWithoutAC_showPrefPage() { + SettingsShadowResources.overrideResource( + R.bool.config_battery_manager_consider_ac, false); + when(mPowerUsageFeatureProvider.isBatteryManagerSupported()).thenReturn(true); + when(mPowerUsageFeatureProvider.isAdaptiveChargingSupported()).thenReturn(false); + + assertThat(mController.getAvailabilityStatus()).isEqualTo( + BatteryManagerPreferenceController.AVAILABLE_UNSEARCHABLE); + } } From ecb91b7d3689ad9dc0e8a1774a3def4882dc4aa9 Mon Sep 17 00:00:00 2001 From: ykhung Date: Sun, 5 Mar 2023 11:30:19 +0800 Subject: [PATCH 2/3] Update the incompatible banner tip icon based on UX refinement Bug: 246960554 Test: presubmit & manual Change-Id: I5fab570e1a8947d70a7923338c4e74caa67bcd2e --- .../fuelgauge/batterytip/tips/IncompatibleChargerTip.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/android/settings/fuelgauge/batterytip/tips/IncompatibleChargerTip.java b/src/com/android/settings/fuelgauge/batterytip/tips/IncompatibleChargerTip.java index 7ce6b144620..8a8cc5cff9f 100644 --- a/src/com/android/settings/fuelgauge/batterytip/tips/IncompatibleChargerTip.java +++ b/src/com/android/settings/fuelgauge/batterytip/tips/IncompatibleChargerTip.java @@ -48,7 +48,7 @@ public final class IncompatibleChargerTip extends BatteryTip { @Override public int getIconId() { - return R.drawable.ic_battery_charging; + return R.drawable.ic_battery_alert_24dp; } @Override From aae628ab64e7430993a31c4f820d3b87a1b7e28a Mon Sep 17 00:00:00 2001 From: ykhung Date: Sun, 5 Mar 2023 17:14:34 +0800 Subject: [PATCH 3/3] Resolve IncompatibleChargerTipTest test fail Bug: 246960554 Test: presubmit & manual Change-Id: I4d1c481f90d55009255d7bdf6e822613831c9822 --- .../fuelgauge/batterytip/tips/IncompatibleChargerTipTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/IncompatibleChargerTipTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/IncompatibleChargerTipTest.java index ce70f504dd7..3aad06132a2 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/IncompatibleChargerTipTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/IncompatibleChargerTipTest.java @@ -85,7 +85,7 @@ public final class IncompatibleChargerTipTest { @Test public void getIcon_showIcon() { assertThat(mIncompatibleChargerTip.getIconId()) - .isEqualTo(R.drawable.ic_battery_charging); + .isEqualTo(R.drawable.ic_battery_alert_24dp); } @Test