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

Commit 0e33ad63 authored by Wesley Wang's avatar Wesley Wang
Browse files

Disable low battery notification if battery saver scheduled

 - Avoid redundant low battery notification once users already setup
   a schedule for battery saver

Bug: 223732451
Test: atest SystemUITests
Change-Id: I7d3a1b52ee1a9bdd06d47d6e1e9ad73bf345861e
parent 7c722ca4
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
@@ -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 =