Loading packages/SettingsLib/res/values/strings.xml +0 −13 Original line number Diff line number Diff line Loading @@ -1098,19 +1098,6 @@ <!-- Used to let users know that they have more than some amount of battery life remaining. ex: more than 1 day remaining [CHAR LIMIT = 40] --> <string name="power_remaining_only_more_than_subtext">More than <xliff:g id="time_remaining">%1$s</xliff:g> left</string> <!-- [CHAR_LIMIT=50] Short label for imminent shutdown warning of device --> <string name="power_remaining_duration_only_shutdown_imminent" product="default">Phone may shut down soon</string> <!-- [CHAR_LIMIT=50] Short label for imminent shutdown warning of device --> <string name="power_remaining_duration_only_shutdown_imminent" product="tablet">Tablet may shut down soon</string> <!-- [CHAR_LIMIT=50] Short label for imminent shutdown warning of device --> <string name="power_remaining_duration_only_shutdown_imminent" product="device">Device may shut down soon</string> <!-- [CHAR_LIMIT=60] Label for battery level chart when shutdown is imminent--> <string name="power_remaining_duration_shutdown_imminent" product="default">Phone may shut down soon (<xliff:g id="level">%1$s</xliff:g>)</string> <!-- [CHAR_LIMIT=60] Label for battery level chart when shutdown is imminent--> <string name="power_remaining_duration_shutdown_imminent" product="tablet">Tablet may shut down soon (<xliff:g id="level">%1$s</xliff:g>)</string> <!-- [CHAR_LIMIT=60] Label for battery level chart when shutdown is imminent--> <string name="power_remaining_duration_shutdown_imminent" product="device">Device may shut down soon (<xliff:g id="level">%1$s</xliff:g>)</string> <!-- [CHAR_LIMIT=40] Label for battery level chart when charging --> <string name="power_charging"><xliff:g id="level">%1$s</xliff:g> - <xliff:g id="state">%2$s</xliff:g></string> <!-- [CHAR_LIMIT=40] Label for estimated remaining duration of battery charging --> Loading packages/SettingsLib/src/com/android/settingslib/utils/PowerUtil.java +1 −48 Original line number Diff line number Diff line Loading @@ -43,45 +43,6 @@ public class PowerUtil { private static final long ONE_HOUR_MILLIS = TimeUnit.HOURS.toMillis(1); private static final long ONE_MIN_MILLIS = TimeUnit.MINUTES.toMillis(1); /** * This method produces the text used in various places throughout the system to describe the * remaining battery life of the phone in a consistent manner. * * @param context * @param drainTimeMs The estimated time remaining before the phone dies in milliseconds. * @param percentageString An optional percentage of battery remaining string. * @param basedOnUsage Whether this estimate is based on usage or simple extrapolation. * @return a properly formatted and localized string describing how much time remains * before the battery runs out. */ public static String getBatteryRemainingStringFormatted(Context context, long drainTimeMs, @Nullable String percentageString, boolean basedOnUsage) { if (drainTimeMs > 0) { if (drainTimeMs <= SEVEN_MINUTES_MILLIS) { // show a imminent shutdown warning if less than 7 minutes remain return getShutdownImminentString(context, percentageString); } else if (drainTimeMs <= FIFTEEN_MINUTES_MILLIS) { // show a less than 15 min remaining warning if appropriate CharSequence timeString = StringUtil.formatElapsedTime(context, FIFTEEN_MINUTES_MILLIS, false /* withSeconds */, false /* collapseTimeUnit */); return getUnderFifteenString(context, timeString, percentageString); } else if (drainTimeMs >= TWO_DAYS_MILLIS) { // just say more than two day if over 48 hours return getMoreThanTwoDaysString(context, percentageString); } else if (drainTimeMs >= ONE_DAY_MILLIS) { // show remaining days & hours if more than a day return getMoreThanOneDayString(context, drainTimeMs, percentageString, basedOnUsage); } else { // show the time of day we think you'll run out return getRegularTimeRemainingString(context, drainTimeMs, percentageString, basedOnUsage); } } return null; } /** * Method to produce a shortened string describing the remaining battery. Suitable for Quick * Settings and other areas where space is constrained. Loading Loading @@ -128,14 +89,6 @@ public class PowerUtil { } } private static String getShutdownImminentString(Context context, String percentageString) { return TextUtils.isEmpty(percentageString) ? context.getString(R.string.power_remaining_duration_only_shutdown_imminent) : context.getString( R.string.power_remaining_duration_shutdown_imminent, percentageString); } private static String getUnderFifteenString(Context context, CharSequence timeString, String percentageString) { return TextUtils.isEmpty(percentageString) Loading packages/SettingsLib/tests/robotests/src/com/android/settingslib/utils/PowerUtilTest.java +0 −149 Original line number Diff line number Diff line Loading @@ -58,155 +58,6 @@ public class PowerUtilTest { mContext = spy(RuntimeEnvironment.application); } @Test public void testGetBatteryRemainingStringFormatted_moreThanFifteenMinutes_withPercentage() { String info = PowerUtil.getBatteryRemainingStringFormatted(mContext, SEVENTEEN_MIN_MILLIS, TEST_BATTERY_LEVEL_10, true /* basedOnUsage */); String info2 = PowerUtil.getBatteryRemainingStringFormatted(mContext, SEVENTEEN_MIN_MILLIS, TEST_BATTERY_LEVEL_10, false /* basedOnUsage */); // We only add special mention for the long string // ex: Will last about 1:15 PM based on your usage (10%) assertThat(info).containsMatch(Pattern.compile( NORMAL_CASE_EXPECTED_PREFIX + TIME_OF_DAY_REGEX + ENHANCED_SUFFIX + PERCENTAGE_REGEX)); // shortened string should not have extra text // ex: Will last about 1:15 PM (10%) assertThat(info2).containsMatch(Pattern.compile( NORMAL_CASE_EXPECTED_PREFIX + TIME_OF_DAY_REGEX + PERCENTAGE_REGEX)); } @Test public void testGetBatteryRemainingStringFormatted_moreThanFifteenMinutes_noPercentage() { String info = PowerUtil.getBatteryRemainingStringFormatted(mContext, SEVENTEEN_MIN_MILLIS, null /* percentageString */, true /* basedOnUsage */); String info2 = PowerUtil.getBatteryRemainingStringFormatted(mContext, SEVENTEEN_MIN_MILLIS, null /* percentageString */, false /* basedOnUsage */); // We only have % when it is provided // ex: Will last about 1:15 PM based on your usage assertThat(info).containsMatch(Pattern.compile( NORMAL_CASE_EXPECTED_PREFIX + TIME_OF_DAY_REGEX + ENHANCED_SUFFIX + "(" + PERCENTAGE_REGEX + "){0}")); // no percentage // shortened string should not have extra text // ex: Will last about 1:15 PM assertThat(info2).containsMatch(Pattern.compile( NORMAL_CASE_EXPECTED_PREFIX + TIME_OF_DAY_REGEX + "(" + PERCENTAGE_REGEX + "){0}")); // no percentage } @Test public void testGetBatteryRemainingStringFormatted_lessThanSevenMinutes_usesCorrectString() { String info = PowerUtil.getBatteryRemainingStringFormatted(mContext, FIVE_MINUTES_MILLIS, TEST_BATTERY_LEVEL_10 /* percentageString */, true /* basedOnUsage */); String info2 = PowerUtil.getBatteryRemainingStringFormatted(mContext, FIVE_MINUTES_MILLIS, null /* percentageString */, true /* basedOnUsage */); // additional battery percentage in this string assertThat(info.contains("may shut down soon (10%)")).isTrue(); // shortened string should not have percentage assertThat(info2.contains("may shut down soon")).isTrue(); } @Test public void testGetBatteryRemainingStringFormatted_betweenSevenAndFifteenMinutes_usesCorrectString() { String info = PowerUtil.getBatteryRemainingStringFormatted(mContext, TEN_MINUTES_MILLIS, null /* percentageString */, true /* basedOnUsage */); String info2 = PowerUtil.getBatteryRemainingStringFormatted(mContext, TEN_MINUTES_MILLIS, TEST_BATTERY_LEVEL_10 /* percentageString */, true /* basedOnUsage */); // shortened string should not have percentage assertThat(info).isEqualTo("Less than 15 min left"); // Add percentage to string when provided assertThat(info2).isEqualTo("Less than 15 min left (10%)"); } @Test public void testGetBatteryRemainingStringFormatted_betweenOneAndTwoDays_usesCorrectString() { String info = PowerUtil.getBatteryRemainingStringFormatted(mContext, THIRTY_HOURS_MILLIS, null /* percentageString */, true /* basedOnUsage */); String info2 = PowerUtil.getBatteryRemainingStringFormatted(mContext, THIRTY_HOURS_MILLIS, TEST_BATTERY_LEVEL_10 /* percentageString */, false /* basedOnUsage */); String info3 = PowerUtil.getBatteryRemainingStringFormatted(mContext, THIRTY_HOURS_MILLIS + TEN_MINUTES_MILLIS, null /* percentageString */, false /* basedOnUsage */); // We only add special mention for the long string assertThat(info).isEqualTo("About 1 day, 6 hr left based on your usage"); // shortened string should not have extra text assertThat(info2).isEqualTo("About 1 day, 6 hr left (10%)"); // present 2 time unit at most assertThat(info3).isEqualTo("About 1 day, 6 hr left"); } @Test public void testGetBatteryRemainingStringFormatted_lessThanOneDay_usesCorrectString() { String info = PowerUtil.getBatteryRemainingStringFormatted(mContext, TEN_HOURS_MILLIS, null /* percentageString */, true /* basedOnUsage */); String info2 = PowerUtil.getBatteryRemainingStringFormatted(mContext, TEN_HOURS_MILLIS, TEST_BATTERY_LEVEL_10 /* percentageString */, false /* basedOnUsage */); String info3 = PowerUtil.getBatteryRemainingStringFormatted(mContext, TEN_HOURS_MILLIS + TEN_MINUTES_MILLIS + TEN_SEC_MILLIS, null /* percentageString */, false /* basedOnUsage */); // We only add special mention for the long string assertThat(info).isEqualTo("About 10 hr left based on your usage"); // shortened string should not have extra text assertThat(info2).isEqualTo("About 10 hr left (10%)"); // present 2 time unit at most assertThat(info3).isEqualTo("About 10 hr, 10 min left"); } @Test public void testGetBatteryRemainingStringFormatted_moreThanTwoDays_usesCorrectString() { String info = PowerUtil.getBatteryRemainingStringFormatted(mContext, THREE_DAYS_MILLIS, null /* percentageString */, true /* basedOnUsage */); String info2 = PowerUtil.getBatteryRemainingStringFormatted(mContext, THREE_DAYS_MILLIS, TEST_BATTERY_LEVEL_10 /* percentageString */, true /* basedOnUsage */); // shortened string should not have percentage assertThat(info).isEqualTo("More than 2 days left"); // Add percentage to string when provided assertThat(info2).isEqualTo("More than 2 days left (10%)"); } @Test public void getBatteryTipStringFormatted_moreThanOneDay_usesCorrectString() { String info = PowerUtil.getBatteryTipStringFormatted(mContext, Loading packages/SystemUI/src/com/android/systemui/power/PowerNotificationWarnings.java +1 −10 Original line number Diff line number Diff line Loading @@ -64,14 +64,13 @@ import com.android.internal.logging.UiEventLogger; import com.android.internal.messages.nano.SystemMessageProto.SystemMessage; import com.android.settingslib.Utils; import com.android.settingslib.fuelgauge.BatterySaverUtils; import com.android.settingslib.utils.PowerUtil; import com.android.systemui.res.R; import com.android.systemui.SystemUIApplication; import com.android.systemui.animation.DialogCuj; import com.android.systemui.animation.DialogLaunchAnimator; import com.android.systemui.broadcast.BroadcastSender; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.res.R; import com.android.systemui.settings.UserTracker; import com.android.systemui.statusbar.phone.SystemUIDialog; import com.android.systemui.statusbar.policy.BatteryController; Loading Loading @@ -376,14 +375,6 @@ public class PowerNotificationWarnings implements PowerUI.WarningsUI { TAG_AUTO_SAVER, SystemMessage.NOTE_AUTO_SAVER_SUGGESTION, n, UserHandle.ALL); } private String getHybridContentString(String percentage) { return PowerUtil.getBatteryRemainingStringFormatted( mContext, mCurrentBatterySnapshot.getTimeRemainingMillis(), percentage, mCurrentBatterySnapshot.isBasedOnUsage()); } private PendingIntent pendingBroadcast(String action) { return PendingIntent.getBroadcastAsUser( mContext, Loading Loading
packages/SettingsLib/res/values/strings.xml +0 −13 Original line number Diff line number Diff line Loading @@ -1098,19 +1098,6 @@ <!-- Used to let users know that they have more than some amount of battery life remaining. ex: more than 1 day remaining [CHAR LIMIT = 40] --> <string name="power_remaining_only_more_than_subtext">More than <xliff:g id="time_remaining">%1$s</xliff:g> left</string> <!-- [CHAR_LIMIT=50] Short label for imminent shutdown warning of device --> <string name="power_remaining_duration_only_shutdown_imminent" product="default">Phone may shut down soon</string> <!-- [CHAR_LIMIT=50] Short label for imminent shutdown warning of device --> <string name="power_remaining_duration_only_shutdown_imminent" product="tablet">Tablet may shut down soon</string> <!-- [CHAR_LIMIT=50] Short label for imminent shutdown warning of device --> <string name="power_remaining_duration_only_shutdown_imminent" product="device">Device may shut down soon</string> <!-- [CHAR_LIMIT=60] Label for battery level chart when shutdown is imminent--> <string name="power_remaining_duration_shutdown_imminent" product="default">Phone may shut down soon (<xliff:g id="level">%1$s</xliff:g>)</string> <!-- [CHAR_LIMIT=60] Label for battery level chart when shutdown is imminent--> <string name="power_remaining_duration_shutdown_imminent" product="tablet">Tablet may shut down soon (<xliff:g id="level">%1$s</xliff:g>)</string> <!-- [CHAR_LIMIT=60] Label for battery level chart when shutdown is imminent--> <string name="power_remaining_duration_shutdown_imminent" product="device">Device may shut down soon (<xliff:g id="level">%1$s</xliff:g>)</string> <!-- [CHAR_LIMIT=40] Label for battery level chart when charging --> <string name="power_charging"><xliff:g id="level">%1$s</xliff:g> - <xliff:g id="state">%2$s</xliff:g></string> <!-- [CHAR_LIMIT=40] Label for estimated remaining duration of battery charging --> Loading
packages/SettingsLib/src/com/android/settingslib/utils/PowerUtil.java +1 −48 Original line number Diff line number Diff line Loading @@ -43,45 +43,6 @@ public class PowerUtil { private static final long ONE_HOUR_MILLIS = TimeUnit.HOURS.toMillis(1); private static final long ONE_MIN_MILLIS = TimeUnit.MINUTES.toMillis(1); /** * This method produces the text used in various places throughout the system to describe the * remaining battery life of the phone in a consistent manner. * * @param context * @param drainTimeMs The estimated time remaining before the phone dies in milliseconds. * @param percentageString An optional percentage of battery remaining string. * @param basedOnUsage Whether this estimate is based on usage or simple extrapolation. * @return a properly formatted and localized string describing how much time remains * before the battery runs out. */ public static String getBatteryRemainingStringFormatted(Context context, long drainTimeMs, @Nullable String percentageString, boolean basedOnUsage) { if (drainTimeMs > 0) { if (drainTimeMs <= SEVEN_MINUTES_MILLIS) { // show a imminent shutdown warning if less than 7 minutes remain return getShutdownImminentString(context, percentageString); } else if (drainTimeMs <= FIFTEEN_MINUTES_MILLIS) { // show a less than 15 min remaining warning if appropriate CharSequence timeString = StringUtil.formatElapsedTime(context, FIFTEEN_MINUTES_MILLIS, false /* withSeconds */, false /* collapseTimeUnit */); return getUnderFifteenString(context, timeString, percentageString); } else if (drainTimeMs >= TWO_DAYS_MILLIS) { // just say more than two day if over 48 hours return getMoreThanTwoDaysString(context, percentageString); } else if (drainTimeMs >= ONE_DAY_MILLIS) { // show remaining days & hours if more than a day return getMoreThanOneDayString(context, drainTimeMs, percentageString, basedOnUsage); } else { // show the time of day we think you'll run out return getRegularTimeRemainingString(context, drainTimeMs, percentageString, basedOnUsage); } } return null; } /** * Method to produce a shortened string describing the remaining battery. Suitable for Quick * Settings and other areas where space is constrained. Loading Loading @@ -128,14 +89,6 @@ public class PowerUtil { } } private static String getShutdownImminentString(Context context, String percentageString) { return TextUtils.isEmpty(percentageString) ? context.getString(R.string.power_remaining_duration_only_shutdown_imminent) : context.getString( R.string.power_remaining_duration_shutdown_imminent, percentageString); } private static String getUnderFifteenString(Context context, CharSequence timeString, String percentageString) { return TextUtils.isEmpty(percentageString) Loading
packages/SettingsLib/tests/robotests/src/com/android/settingslib/utils/PowerUtilTest.java +0 −149 Original line number Diff line number Diff line Loading @@ -58,155 +58,6 @@ public class PowerUtilTest { mContext = spy(RuntimeEnvironment.application); } @Test public void testGetBatteryRemainingStringFormatted_moreThanFifteenMinutes_withPercentage() { String info = PowerUtil.getBatteryRemainingStringFormatted(mContext, SEVENTEEN_MIN_MILLIS, TEST_BATTERY_LEVEL_10, true /* basedOnUsage */); String info2 = PowerUtil.getBatteryRemainingStringFormatted(mContext, SEVENTEEN_MIN_MILLIS, TEST_BATTERY_LEVEL_10, false /* basedOnUsage */); // We only add special mention for the long string // ex: Will last about 1:15 PM based on your usage (10%) assertThat(info).containsMatch(Pattern.compile( NORMAL_CASE_EXPECTED_PREFIX + TIME_OF_DAY_REGEX + ENHANCED_SUFFIX + PERCENTAGE_REGEX)); // shortened string should not have extra text // ex: Will last about 1:15 PM (10%) assertThat(info2).containsMatch(Pattern.compile( NORMAL_CASE_EXPECTED_PREFIX + TIME_OF_DAY_REGEX + PERCENTAGE_REGEX)); } @Test public void testGetBatteryRemainingStringFormatted_moreThanFifteenMinutes_noPercentage() { String info = PowerUtil.getBatteryRemainingStringFormatted(mContext, SEVENTEEN_MIN_MILLIS, null /* percentageString */, true /* basedOnUsage */); String info2 = PowerUtil.getBatteryRemainingStringFormatted(mContext, SEVENTEEN_MIN_MILLIS, null /* percentageString */, false /* basedOnUsage */); // We only have % when it is provided // ex: Will last about 1:15 PM based on your usage assertThat(info).containsMatch(Pattern.compile( NORMAL_CASE_EXPECTED_PREFIX + TIME_OF_DAY_REGEX + ENHANCED_SUFFIX + "(" + PERCENTAGE_REGEX + "){0}")); // no percentage // shortened string should not have extra text // ex: Will last about 1:15 PM assertThat(info2).containsMatch(Pattern.compile( NORMAL_CASE_EXPECTED_PREFIX + TIME_OF_DAY_REGEX + "(" + PERCENTAGE_REGEX + "){0}")); // no percentage } @Test public void testGetBatteryRemainingStringFormatted_lessThanSevenMinutes_usesCorrectString() { String info = PowerUtil.getBatteryRemainingStringFormatted(mContext, FIVE_MINUTES_MILLIS, TEST_BATTERY_LEVEL_10 /* percentageString */, true /* basedOnUsage */); String info2 = PowerUtil.getBatteryRemainingStringFormatted(mContext, FIVE_MINUTES_MILLIS, null /* percentageString */, true /* basedOnUsage */); // additional battery percentage in this string assertThat(info.contains("may shut down soon (10%)")).isTrue(); // shortened string should not have percentage assertThat(info2.contains("may shut down soon")).isTrue(); } @Test public void testGetBatteryRemainingStringFormatted_betweenSevenAndFifteenMinutes_usesCorrectString() { String info = PowerUtil.getBatteryRemainingStringFormatted(mContext, TEN_MINUTES_MILLIS, null /* percentageString */, true /* basedOnUsage */); String info2 = PowerUtil.getBatteryRemainingStringFormatted(mContext, TEN_MINUTES_MILLIS, TEST_BATTERY_LEVEL_10 /* percentageString */, true /* basedOnUsage */); // shortened string should not have percentage assertThat(info).isEqualTo("Less than 15 min left"); // Add percentage to string when provided assertThat(info2).isEqualTo("Less than 15 min left (10%)"); } @Test public void testGetBatteryRemainingStringFormatted_betweenOneAndTwoDays_usesCorrectString() { String info = PowerUtil.getBatteryRemainingStringFormatted(mContext, THIRTY_HOURS_MILLIS, null /* percentageString */, true /* basedOnUsage */); String info2 = PowerUtil.getBatteryRemainingStringFormatted(mContext, THIRTY_HOURS_MILLIS, TEST_BATTERY_LEVEL_10 /* percentageString */, false /* basedOnUsage */); String info3 = PowerUtil.getBatteryRemainingStringFormatted(mContext, THIRTY_HOURS_MILLIS + TEN_MINUTES_MILLIS, null /* percentageString */, false /* basedOnUsage */); // We only add special mention for the long string assertThat(info).isEqualTo("About 1 day, 6 hr left based on your usage"); // shortened string should not have extra text assertThat(info2).isEqualTo("About 1 day, 6 hr left (10%)"); // present 2 time unit at most assertThat(info3).isEqualTo("About 1 day, 6 hr left"); } @Test public void testGetBatteryRemainingStringFormatted_lessThanOneDay_usesCorrectString() { String info = PowerUtil.getBatteryRemainingStringFormatted(mContext, TEN_HOURS_MILLIS, null /* percentageString */, true /* basedOnUsage */); String info2 = PowerUtil.getBatteryRemainingStringFormatted(mContext, TEN_HOURS_MILLIS, TEST_BATTERY_LEVEL_10 /* percentageString */, false /* basedOnUsage */); String info3 = PowerUtil.getBatteryRemainingStringFormatted(mContext, TEN_HOURS_MILLIS + TEN_MINUTES_MILLIS + TEN_SEC_MILLIS, null /* percentageString */, false /* basedOnUsage */); // We only add special mention for the long string assertThat(info).isEqualTo("About 10 hr left based on your usage"); // shortened string should not have extra text assertThat(info2).isEqualTo("About 10 hr left (10%)"); // present 2 time unit at most assertThat(info3).isEqualTo("About 10 hr, 10 min left"); } @Test public void testGetBatteryRemainingStringFormatted_moreThanTwoDays_usesCorrectString() { String info = PowerUtil.getBatteryRemainingStringFormatted(mContext, THREE_DAYS_MILLIS, null /* percentageString */, true /* basedOnUsage */); String info2 = PowerUtil.getBatteryRemainingStringFormatted(mContext, THREE_DAYS_MILLIS, TEST_BATTERY_LEVEL_10 /* percentageString */, true /* basedOnUsage */); // shortened string should not have percentage assertThat(info).isEqualTo("More than 2 days left"); // Add percentage to string when provided assertThat(info2).isEqualTo("More than 2 days left (10%)"); } @Test public void getBatteryTipStringFormatted_moreThanOneDay_usesCorrectString() { String info = PowerUtil.getBatteryTipStringFormatted(mContext, Loading
packages/SystemUI/src/com/android/systemui/power/PowerNotificationWarnings.java +1 −10 Original line number Diff line number Diff line Loading @@ -64,14 +64,13 @@ import com.android.internal.logging.UiEventLogger; import com.android.internal.messages.nano.SystemMessageProto.SystemMessage; import com.android.settingslib.Utils; import com.android.settingslib.fuelgauge.BatterySaverUtils; import com.android.settingslib.utils.PowerUtil; import com.android.systemui.res.R; import com.android.systemui.SystemUIApplication; import com.android.systemui.animation.DialogCuj; import com.android.systemui.animation.DialogLaunchAnimator; import com.android.systemui.broadcast.BroadcastSender; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.res.R; import com.android.systemui.settings.UserTracker; import com.android.systemui.statusbar.phone.SystemUIDialog; import com.android.systemui.statusbar.policy.BatteryController; Loading Loading @@ -376,14 +375,6 @@ public class PowerNotificationWarnings implements PowerUI.WarningsUI { TAG_AUTO_SAVER, SystemMessage.NOTE_AUTO_SAVER_SUGGESTION, n, UserHandle.ALL); } private String getHybridContentString(String percentage) { return PowerUtil.getBatteryRemainingStringFormatted( mContext, mCurrentBatterySnapshot.getTimeRemainingMillis(), percentage, mCurrentBatterySnapshot.isBasedOnUsage()); } private PendingIntent pendingBroadcast(String action) { return PendingIntent.getBroadcastAsUser( mContext, Loading