Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 491cb8fb authored by YK Hung's avatar YK Hung Committed by Android (Google) Code Review
Browse files

Merge "Add content description string for '<1%'." into main

parents e57842bd 68530219
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -6108,6 +6108,8 @@
    <string name="battery_usage_spinner_view_by_systems">View by systems</string>
    <!-- [CHAR_LIMIT=NONE] Less than some percentage, e.g. < 1% -->
    <string name="battery_usage_less_than_percent">&lt; <xliff:g id="percentage">%1$s</xliff:g></string>
    <!-- [CHAR_LIMIT=NONE] Accessibility content description for less than some percentage, e.g. less than 1% -->
    <string name="battery_usage_less_than_percent_content_description">less than <xliff:g id="percentage">%1$s</xliff:g></string>
    <!-- Process Stats strings -->
    <skip />
    <!-- Description of battery information footer text. [CHAR LIMIT=NONE] -->
+16 −8
Original line number Diff line number Diff line
@@ -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,13 +399,16 @@ public class BatteryUsageBreakdownController extends BasePreferenceController

    @VisibleForTesting
    void setPreferencePercentage(PowerGaugePreference preference, BatteryDiffEntry entry) {
        if (entry.getPercentage() < BatteryDiffData.SMALL_PERCENTAGE_THRESHOLD) {
            preference.setPercentage(mPercentLessThanThresholdText);
            preference.setPercentageContentDescription(mPercentLessThanThresholdContentDescription);
        } else {
            preference.setPercentage(
                entry.getPercentage() < BatteryDiffData.SMALL_PERCENTAGE_THRESHOLD
                        ? mPercentLessThanThresholdText
                        : Utils.formatPercentage(
                    Utils.formatPercentage(
                            entry.getPercentage() + entry.getAdjustPercentageOffset(),
                            /* round= */ true));
        }
    }

    @VisibleForTesting
    void setPreferenceSummary(PowerGaugePreference preference, BatteryDiffEntry entry) {
+12 −0
Original line number Diff line number Diff line
@@ -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);
+8 −2
Original line number Diff line number Diff line
@@ -271,7 +271,7 @@ public final class BatteryUsageBreakdownControllerTest {

    @Test
    public void setPreferencePercent_lessThanThreshold_expectedFormat() {
        final PowerGaugePreference pref = new PowerGaugePreference(mContext);
        final PowerGaugePreference pref = spy(new PowerGaugePreference(mContext));
        final BatteryDiffEntry batteryDiffEntry =
                createBatteryDiffEntry(
                        /* isSystem= */ true,
@@ -282,15 +282,18 @@ public final class BatteryUsageBreakdownControllerTest {
        batteryDiffEntry.mConsumePower = 0.8;
        batteryDiffEntry.setTotalConsumePower(100);
        mBatteryUsageBreakdownController.mPercentLessThanThresholdText = "< 1%";
        mBatteryUsageBreakdownController.mPercentLessThanThresholdContentDescription =
                "test content description";

        mBatteryUsageBreakdownController.setPreferencePercentage(pref, batteryDiffEntry);

        assertThat(pref.getPercentage()).isEqualTo("< 1%");
        verify(pref).setPercentageContentDescription("test content description");
    }

    @Test
    public void setPreferencePercent_greaterThanThreshold_expectedFormat() {
        final PowerGaugePreference pref = new PowerGaugePreference(mContext);
        final PowerGaugePreference pref = spy(new PowerGaugePreference(mContext));
        final BatteryDiffEntry batteryDiffEntry =
                createBatteryDiffEntry(
                        /* isSystem= */ true,
@@ -301,10 +304,13 @@ public final class BatteryUsageBreakdownControllerTest {
        batteryDiffEntry.mConsumePower = 16;
        batteryDiffEntry.setTotalConsumePower(100);
        mBatteryUsageBreakdownController.mPercentLessThanThresholdText = "< 1%";
        mBatteryUsageBreakdownController.mPercentLessThanThresholdContentDescription =
                "test content description";

        mBatteryUsageBreakdownController.setPreferencePercentage(pref, batteryDiffEntry);

        assertThat(pref.getPercentage()).isEqualTo("16%");
        verify(pref, never()).setPercentageContentDescription(any());
    }

    @Test
+9 −0
Original line number Diff line number Diff line
@@ -101,4 +101,13 @@ public class PowerGaugePreferenceTest {
        assertThat(mPreferenceViewHolder.findViewById(android.R.id.title).getContentDescription())
                .isEqualTo(CONTENT_DESCRIPTION);
    }

    @Test
    public void testOnBindViewHolder_bindPercentageContentDescription() {
        mPowerGaugePreference.setPercentageContentDescription(CONTENT_DESCRIPTION);
        mPowerGaugePreference.onBindViewHolder(mPreferenceViewHolder);

        assertThat(mPreferenceViewHolder.findViewById(R.id.widget_summary).getContentDescription())
                .isEqualTo(CONTENT_DESCRIPTION);
    }
}