Loading res/values/strings.xml +2 −0 Original line number Diff line number Diff line Loading @@ -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">< <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] --> src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java +16 −8 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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( Loading Loading @@ -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) { Loading src/com/android/settings/fuelgauge/batteryusage/PowerGaugePreference.java +12 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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( Loading Loading @@ -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(); } Loading Loading @@ -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); Loading tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownControllerTest.java +8 −2 Original line number Diff line number Diff line Loading @@ -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, Loading @@ -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, Loading @@ -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 Loading tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerGaugePreferenceTest.java +9 −0 Original line number Diff line number Diff line Loading @@ -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); } } Loading
res/values/strings.xml +2 −0 Original line number Diff line number Diff line Loading @@ -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">< <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] -->
src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java +16 −8 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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( Loading Loading @@ -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) { Loading
src/com/android/settings/fuelgauge/batteryusage/PowerGaugePreference.java +12 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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( Loading Loading @@ -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(); } Loading Loading @@ -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); Loading
tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownControllerTest.java +8 −2 Original line number Diff line number Diff line Loading @@ -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, Loading @@ -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, Loading @@ -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 Loading
tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerGaugePreferenceTest.java +9 −0 Original line number Diff line number Diff line Loading @@ -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); } }