Package battery saver schedule mode in severe battery intent

- Add extra info to enable severe battery dialog intent
 - Adjust method names

Bug: 223732451
Test: atest SystemUITests
Change-Id: I535c69d773e0cc37d5f75712087df9868160ed66
This commit is contained in:
Wesley Wang
2022-03-22 17:49:54 +08:00
parent 59912bdcb7
commit 0685bc263d

View File

@@ -120,7 +120,8 @@ public class PowerNotificationWarnings implements PowerUI.WarningsUI {
"PNW.autoSaverNoThanks";
private static final String ACTION_ENABLE_SEVERE_BATTERY_DIALOG = "PNW.enableSevereDialog";
private static final String EXTRA_SCHEDULED_BY_PERCENTAGE =
"extra_scheduled_by_percentage";
public static final String BATTERY_SAVER_SCHEDULE_SCREEN_INTENT_ACTION =
"com.android.settings.BATTERY_SAVER_SCHEDULE_SETTINGS";
@@ -264,6 +265,7 @@ public class PowerNotificationWarnings implements PowerUI.WarningsUI {
if (showSevereLowBatteryDialog()) {
mBroadcastSender.sendBroadcast(new Intent(ACTION_ENABLE_SEVERE_BATTERY_DIALOG)
.setPackage(mContext.getPackageName())
.putExtra(EXTRA_SCHEDULED_BY_PERCENTAGE, isScheduledByPercentage())
.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY
| Intent.FLAG_RECEIVER_FOREGROUND));
// Reset the state once dialog been enabled
@@ -271,7 +273,7 @@ public class PowerNotificationWarnings implements PowerUI.WarningsUI {
mPlaySound = false;
return;
}
if (!showLowBatteryNotification()) {
if (isScheduledByPercentage()) {
return;
}
@@ -327,26 +329,19 @@ public class PowerNotificationWarnings implements PowerUI.WarningsUI {
}
/**
* Disable low battery warning notification if battery saver schedule mode set as
* "Based on percentage".
* Checking battery saver schedule mode is set as "Based on percentage" or not.
*
* return {@code false} if scheduled by percentage.
* return {@code true} if scheduled by percentage.
*/
private boolean showLowBatteryNotification() {
private boolean isScheduledByPercentage() {
final ContentResolver resolver = mContext.getContentResolver();
final int mode = Settings.Global.getInt(resolver, Global.AUTOMATIC_POWER_SAVE_MODE,
PowerManager.POWER_SAVE_MODE_TRIGGER_PERCENTAGE);
// Return true if battery saver schedule mode will not trigger by percentage.
if (mode != PowerManager.POWER_SAVE_MODE_TRIGGER_PERCENTAGE) {
return true;
}
// Return true if battery saver mode trigger percentage is less than 0, which means it is
// Return false if battery saver mode trigger percentage is less than 0, which means it is
// set as "Based on routine" mode, otherwise it will be "Based on percentage" mode.
final int threshold =
Settings.Global.getInt(resolver, Global.LOW_POWER_MODE_TRIGGER_LEVEL, 0);
return threshold <= 0;
return mode == PowerManager.POWER_SAVE_MODE_TRIGGER_PERCENTAGE
&& Settings.Global.getInt(resolver, Global.LOW_POWER_MODE_TRIGGER_LEVEL, 0) > 0;
}
private void showAutoSaverSuggestionNotification() {