Add content description string for '<1%'.

Bug: 322855583
Test: atest SettingsRoboTests:com.android.settings.fuelgauge.batteryusage
Change-Id: I704a591ab4cba21644e86457c2dd1000ceecc291
This commit is contained in:
mxyyiyi
2024-04-18 18:59:25 +08:00
parent 3950632041
commit 6853021975
5 changed files with 47 additions and 10 deletions

View File

@@ -88,6 +88,7 @@ public class BatteryUsageBreakdownController extends BasePreferenceController
@VisibleForTesting FooterPreference mFooterPreference;
@VisibleForTesting BatteryDiffData mBatteryDiffData;
@VisibleForTesting String mPercentLessThanThresholdText;
@VisibleForTesting String mPercentLessThanThresholdContentDescription;
@VisibleForTesting boolean mIsHighlightSlot;
@VisibleForTesting int mAnomalyKeyNumber;
@VisibleForTesting String mAnomalyEntryKey;
@@ -202,10 +203,14 @@ public class BatteryUsageBreakdownController extends BasePreferenceController
mSpinnerPreference = screen.findPreference(SPINNER_PREFERENCE_KEY);
mAppListPreferenceGroup = screen.findPreference(APP_LIST_PREFERENCE_KEY);
mFooterPreference = screen.findPreference(FOOTER_PREFERENCE_KEY);
final String formatPercentage =
Utils.formatPercentage(BatteryDiffData.SMALL_PERCENTAGE_THRESHOLD, false);
mPercentLessThanThresholdText =
mPrefContext.getString(R.string.battery_usage_less_than_percent, formatPercentage);
mPercentLessThanThresholdContentDescription =
mPrefContext.getString(
R.string.battery_usage_less_than_percent,
Utils.formatPercentage(BatteryDiffData.SMALL_PERCENTAGE_THRESHOLD, false));
R.string.battery_usage_less_than_percent_content_description,
formatPercentage);
mAppListPreferenceGroup.setOrderingAsAdded(false);
mSpinnerPreference.initializeSpinner(
@@ -394,12 +399,15 @@ public class BatteryUsageBreakdownController extends BasePreferenceController
@VisibleForTesting
void setPreferencePercentage(PowerGaugePreference preference, BatteryDiffEntry entry) {
preference.setPercentage(
entry.getPercentage() < BatteryDiffData.SMALL_PERCENTAGE_THRESHOLD
? mPercentLessThanThresholdText
: Utils.formatPercentage(
entry.getPercentage() + entry.getAdjustPercentageOffset(),
/* round= */ true));
if (entry.getPercentage() < BatteryDiffData.SMALL_PERCENTAGE_THRESHOLD) {
preference.setPercentage(mPercentLessThanThresholdText);
preference.setPercentageContentDescription(mPercentLessThanThresholdContentDescription);
} else {
preference.setPercentage(
Utils.formatPercentage(
entry.getPercentage() + entry.getAdjustPercentageOffset(),
/* round= */ true));
}
}
@VisibleForTesting

View File

@@ -18,6 +18,7 @@ package com.android.settings.fuelgauge.batteryusage;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
@@ -47,6 +48,7 @@ public class PowerGaugePreference extends AppPreference {
private BatteryDiffEntry mBatteryDiffEntry;
private CharSequence mContentDescription;
private CharSequence mProgress;
private CharSequence mProgressContentDescription;
private boolean mShowAnomalyIcon;
public PowerGaugePreference(
@@ -87,6 +89,13 @@ public class PowerGaugePreference extends AppPreference {
/** Sets the percentage to show. */
public void setPercentage(CharSequence percentage) {
mProgress = percentage;
mProgressContentDescription = percentage;
notifyChanged();
}
/** Sets the content description of the percentage. */
public void setPercentageContentDescription(CharSequence contentDescription) {
mProgressContentDescription = contentDescription;
notifyChanged();
}
@@ -133,6 +142,9 @@ public class PowerGaugePreference extends AppPreference {
final TextView subtitle = (TextView) view.findViewById(R.id.widget_summary);
subtitle.setText(mProgress);
if (!TextUtils.isEmpty(mProgressContentDescription)) {
subtitle.setContentDescription(mProgressContentDescription);
}
if (mShowAnomalyIcon) {
subtitle.setCompoundDrawablesRelativeWithIntrinsicBounds(
R.drawable.ic_warning_24dp, 0, 0, 0);