summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/power/PowerNotificationWarnings.java26
1 files changed, 26 insertions, 0 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/power/PowerNotificationWarnings.java b/packages/SystemUI/src/com/android/systemui/power/PowerNotificationWarnings.java
index 2ac34b22be5b..369a552a934a 100644
--- a/packages/SystemUI/src/com/android/systemui/power/PowerNotificationWarnings.java
+++ b/packages/SystemUI/src/com/android/systemui/power/PowerNotificationWarnings.java
@@ -271,6 +271,9 @@ public class PowerNotificationWarnings implements PowerUI.WarningsUI {
mPlaySound = false;
return;
}
+ if (!showLowBatteryNotification()) {
+ return;
+ }
final int warningLevel = mContext.getResources().getInteger(
com.android.internal.R.integer.config_lowBatteryWarningLevel);
@@ -323,6 +326,29 @@ public class PowerNotificationWarnings implements PowerUI.WarningsUI {
return isSevereState && mUseSevereDialog;
}
+ /**
+ * Disable low battery warning notification if battery saver schedule mode set as
+ * "Based on percentage".
+ *
+ * return {@code false} if scheduled by percentage.
+ */
+ private boolean showLowBatteryNotification() {
+ 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
+ // 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;
+ }
+
private void showAutoSaverSuggestionNotification() {
final CharSequence message = mContext.getString(R.string.auto_saver_text);
final Notification.Builder nb =