From 6dc8193d81d969c0d451d907d709f053bffa465a Mon Sep 17 00:00:00 2001 From: Yiling Chuang Date: Thu, 6 Jun 2024 09:43:43 +0000 Subject: [PATCH] Allow wireless charging label to customize content descriptions Fixes: 343616480 Test: atest SettingsRoboTests Change-Id: I0d87b50fd88167b57ce9d9b06d776ba2ebe304ea --- .../fuelgauge/BatteryHeaderPreferenceController.java | 3 +++ .../fuelgauge/BatterySettingsFeatureProvider.java | 5 +++++ .../BatterySettingsFeatureProviderImpl.java | 7 +++++++ .../BatteryHeaderPreferenceControllerTest.java | 12 ++++++++++++ .../BatterySettingsFeatureProviderImplTest.java | 6 ++++++ 5 files changed, 33 insertions(+) diff --git a/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java b/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java index 0365f806018..7d15858f8b5 100644 --- a/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java +++ b/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java @@ -97,6 +97,9 @@ public class BatteryHeaderPreferenceController extends BasePreferenceController final CharSequence wirelessChargingLabel = mBatterySettingsFeatureProvider.getWirelessChargingLabel(mContext, info); if (wirelessChargingLabel != null) { + mBatteryUsageProgressBarPref.setBottomSummaryContentDescription( + mBatterySettingsFeatureProvider + .getWirelessChargingContentDescription(mContext, info)); return wirelessChargingLabel; } } diff --git a/src/com/android/settings/fuelgauge/BatterySettingsFeatureProvider.java b/src/com/android/settings/fuelgauge/BatterySettingsFeatureProvider.java index 454a2956861..d001bcce358 100644 --- a/src/com/android/settings/fuelgauge/BatterySettingsFeatureProvider.java +++ b/src/com/android/settings/fuelgauge/BatterySettingsFeatureProvider.java @@ -49,6 +49,11 @@ public interface BatterySettingsFeatureProvider { @Nullable CharSequence getWirelessChargingLabel(@NonNull Context context, @NonNull BatteryInfo info); + /** Return a content description for the bottom summary during wireless charging. */ + @Nullable + CharSequence getWirelessChargingContentDescription( + @NonNull Context context, @NonNull BatteryInfo info); + /** Return a charging remaining time label for wireless charging. */ @Nullable CharSequence getWirelessChargingRemainingLabel( diff --git a/src/com/android/settings/fuelgauge/BatterySettingsFeatureProviderImpl.java b/src/com/android/settings/fuelgauge/BatterySettingsFeatureProviderImpl.java index 40cfd0cb715..4b5d9526f16 100644 --- a/src/com/android/settings/fuelgauge/BatterySettingsFeatureProviderImpl.java +++ b/src/com/android/settings/fuelgauge/BatterySettingsFeatureProviderImpl.java @@ -61,6 +61,13 @@ public class BatterySettingsFeatureProviderImpl implements BatterySettingsFeatur return null; } + @Nullable + @Override + public CharSequence getWirelessChargingContentDescription( + @NonNull Context context, @NonNull BatteryInfo info) { + return null; + } + @Nullable @Override public CharSequence getWirelessChargingRemainingLabel( diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java index c987bcd898c..b949a3eb302 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java @@ -19,6 +19,7 @@ import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoInteractions; @@ -278,6 +279,7 @@ public class BatteryHeaderPreferenceControllerTest { @Test public void updateBatteryStatus_customizedWirelessChargingLabel_customizedLabel() { var label = "Customized Wireless Charging Label"; + var contentDescription = "Customized Wireless Charging description"; var batteryInfo = arrangeUpdateBatteryStatusTestWithRemainingLabel( /* remainingLabel= */ "Full by 1:30 PM", @@ -288,14 +290,19 @@ public class BatteryHeaderPreferenceControllerTest { when(mFactory.batterySettingsFeatureProvider.getWirelessChargingLabel( eq(mContext), any(BatteryInfo.class))) .thenReturn(label); + when(mFactory.batterySettingsFeatureProvider.getWirelessChargingContentDescription( + eq(mContext), any(BatteryInfo.class))) + .thenReturn(contentDescription); mController.updateBatteryStatus(/* label= */ null, batteryInfo); verify(mBatteryUsageProgressBarPref).setBottomSummary(label); + verify(mBatteryUsageProgressBarPref).setBottomSummaryContentDescription(contentDescription); } @Test public void updateBatteryStatus_noCustomizedWirelessChargingLabel_statusWithRemainingLabel() { + var contentDescription = "Customized Wireless Charging description"; var batteryInfo = arrangeUpdateBatteryStatusTestWithRemainingLabel( /* remainingLabel= */ "Full by 1:30 PM", @@ -308,10 +315,13 @@ public class BatteryHeaderPreferenceControllerTest { mController.updateBatteryStatus(/* label= */ null, batteryInfo); verify(mBatteryUsageProgressBarPref).setBottomSummary(expectedChargingString); + verify(mBatteryUsageProgressBarPref, never()) + .setBottomSummaryContentDescription(contentDescription); } @Test public void updateBatteryStatus_noCustomizedWirelessChargingLabel_v1StatusWithRemainingLabel() { + var contentDescription = "Customized Wireless Charging description"; var batteryInfo = arrangeUpdateBatteryStatusTestWithRemainingLabel( /* remainingLabel= */ "1 hr, 40 min left until full", @@ -324,6 +334,8 @@ public class BatteryHeaderPreferenceControllerTest { mController.updateBatteryStatus(/* label= */ null, batteryInfo); verify(mBatteryUsageProgressBarPref).setBottomSummary(expectedChargingString); + verify(mBatteryUsageProgressBarPref, never()) + .setBottomSummaryContentDescription(contentDescription); } @Test diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatterySettingsFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatterySettingsFeatureProviderImplTest.java index 9f04892a3e5..8ddf6cb076f 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/BatterySettingsFeatureProviderImplTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/BatterySettingsFeatureProviderImplTest.java @@ -76,6 +76,12 @@ public class BatterySettingsFeatureProviderImplTest { assertThat(mImpl.getWirelessChargingLabel(mContext, new BatteryInfo())).isNull(); } + @Test + public void getWirelessChargingContentDescription_returnNull() { + assertThat(mImpl.getWirelessChargingContentDescription(mContext, new BatteryInfo())) + .isNull(); + } + @Test public void getWirelessChargingRemainingLabel_returnNull() { assertThat(mImpl.getWirelessChargingRemainingLabel(mContext, 1000L, 1000L)).isNull();