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

Commit 530e6fc6 authored by Wesley Wang's avatar Wesley Wang
Browse files

Add manual enabled battery saver reason (1/4)

Bug: 218405966
Test: atest SystemUITests, make SettingsLibRoboTests
Change-Id: I8216b8d4538a07fe7c01933f9c02554b4b94a4f2
parent 8ff7325e
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -120,9 +120,9 @@ public class BatterySaverUtils {
     * @return true if the request succeeded.
     */
    public static synchronized boolean setPowerSaveMode(Context context,
            boolean enable, boolean needFirstTimeWarning) {
            boolean enable, boolean needFirstTimeWarning, @SaverManualEnabledReason int reason) {
        if (DEBUG) {
            Log.d(TAG, "Battery saver turning " + (enable ? "ON" : "OFF"));
            Log.d(TAG, "Battery saver turning " + (enable ? "ON" : "OFF") + ", reason: " + reason);
        }
        final ContentResolver cr = context.getContentResolver();

@@ -152,6 +152,7 @@ public class BatterySaverUtils {
                    sendSystemUiBroadcast(context, ACTION_SHOW_AUTO_SAVER_SUGGESTION,
                            confirmationExtras);
                }
                recordBatterySaverEnabledReason(context, reason);
            }

            return true;
+13 −6
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.settingslib.fuelgauge;

import static com.android.settingslib.fuelgauge.BatterySaverLogging.SAVER_ENABLED_UNKNOWN;
import static com.android.settingslib.fuelgauge.BatterySaverUtils.KEY_NO_SCHEDULE;
import static com.android.settingslib.fuelgauge.BatterySaverUtils.KEY_PERCENTAGE;

@@ -72,7 +73,8 @@ public class BatterySaverUtilsTest {
        Secure.putString(mMockResolver, Secure.EXTRA_LOW_POWER_WARNING_ACKNOWLEDGED, "null");
        Secure.putString(mMockResolver, Secure.LOW_POWER_MANUAL_ACTIVATION_COUNT, "null");

        assertThat(BatterySaverUtils.setPowerSaveMode(mMockContext, true, true)).isFalse();
        assertThat(BatterySaverUtils.setPowerSaveMode(mMockContext, true, true,
                SAVER_ENABLED_UNKNOWN)).isFalse();

        verify(mMockContext, times(1)).sendBroadcast(any(Intent.class));
        verify(mMockPowerManager, times(0)).setPowerSaveModeEnabled(anyBoolean());
@@ -92,7 +94,8 @@ public class BatterySaverUtilsTest {
        Secure.putInt(mMockResolver, Secure.EXTRA_LOW_POWER_WARNING_ACKNOWLEDGED, 1);
        Secure.putString(mMockResolver, Secure.LOW_POWER_MANUAL_ACTIVATION_COUNT, "null");

        assertThat(BatterySaverUtils.setPowerSaveMode(mMockContext, true, true)).isTrue();
        assertThat(BatterySaverUtils.setPowerSaveMode(mMockContext, true, true,
                SAVER_ENABLED_UNKNOWN)).isTrue();

        verify(mMockContext, times(0)).sendBroadcast(any(Intent.class));
        verify(mMockPowerManager, times(1)).setPowerSaveModeEnabled(eq(true));
@@ -111,7 +114,8 @@ public class BatterySaverUtilsTest {
        Secure.putInt(mMockResolver, Secure.EXTRA_LOW_POWER_WARNING_ACKNOWLEDGED, 1);
        Secure.putInt(mMockResolver, Secure.LOW_POWER_MANUAL_ACTIVATION_COUNT, 1);

        assertThat(BatterySaverUtils.setPowerSaveMode(mMockContext, true, true)).isTrue();
        assertThat(BatterySaverUtils.setPowerSaveMode(mMockContext, true, true,
                SAVER_ENABLED_UNKNOWN)).isTrue();

        verify(mMockContext, times(0)).sendBroadcast(any(Intent.class));
        verify(mMockPowerManager, times(1)).setPowerSaveModeEnabled(eq(true));
@@ -129,7 +133,8 @@ public class BatterySaverUtilsTest {
        Secure.putString(mMockResolver, Secure.EXTRA_LOW_POWER_WARNING_ACKNOWLEDGED, "null");
        Secure.putString(mMockResolver, Secure.LOW_POWER_MANUAL_ACTIVATION_COUNT, "null");

        assertThat(BatterySaverUtils.setPowerSaveMode(mMockContext, true, false)).isTrue();
        assertThat(BatterySaverUtils.setPowerSaveMode(mMockContext, true, false,
                SAVER_ENABLED_UNKNOWN)).isTrue();

        verify(mMockContext, times(0)).sendBroadcast(any(Intent.class));
        verify(mMockPowerManager, times(1)).setPowerSaveModeEnabled(eq(true));
@@ -147,7 +152,8 @@ public class BatterySaverUtilsTest {
        Secure.putString(mMockResolver, Secure.LOW_POWER_MANUAL_ACTIVATION_COUNT, "null");

        // When disabling, needFirstTimeWarning doesn't matter.
        assertThat(BatterySaverUtils.setPowerSaveMode(mMockContext, false, false)).isTrue();
        assertThat(BatterySaverUtils.setPowerSaveMode(mMockContext, false, false,
                SAVER_ENABLED_UNKNOWN)).isTrue();

        verify(mMockContext, times(0)).sendBroadcast(any(Intent.class));
        verify(mMockPowerManager, times(1)).setPowerSaveModeEnabled(eq(false));
@@ -166,7 +172,8 @@ public class BatterySaverUtilsTest {
        Secure.putString(mMockResolver, Secure.LOW_POWER_MANUAL_ACTIVATION_COUNT, "null");

        // When disabling, needFirstTimeWarning doesn't matter.
        assertThat(BatterySaverUtils.setPowerSaveMode(mMockContext, false, true)).isTrue();
        assertThat(BatterySaverUtils.setPowerSaveMode(mMockContext, false, true,
                SAVER_ENABLED_UNKNOWN)).isTrue();

        verify(mMockContext, times(0)).sendBroadcast(any(Intent.class));
        verify(mMockPowerManager, times(1)).setPowerSaveModeEnabled(eq(false));
+9 −4
Original line number Diff line number Diff line
@@ -18,6 +18,10 @@ package com.android.systemui.power;

import static android.app.PendingIntent.FLAG_IMMUTABLE;

import static com.android.settingslib.fuelgauge.BatterySaverLogging.SAVER_ENABLED_CONFIRMATION;
import static com.android.settingslib.fuelgauge.BatterySaverLogging.SAVER_ENABLED_LOW_WARNING;
import static com.android.settingslib.fuelgauge.BatterySaverLogging.SaverManualEnabledReason;

import android.app.Dialog;
import android.app.KeyguardManager;
import android.app.Notification;
@@ -691,7 +695,7 @@ public class PowerNotificationWarnings implements PowerUI.WarningsUI {
            d.setTitle(R.string.battery_saver_confirmation_title);
            d.setPositiveButton(R.string.battery_saver_confirmation_ok,
                    (dialog, which) -> {
                        setSaverMode(true, false);
                        setSaverMode(true, false, SAVER_ENABLED_CONFIRMATION);
                        logEvent(BatteryWarningEvents.LowBatteryWarningEvent.SAVER_CONFIRM_OK);
                    });
            d.setNegativeButton(android.R.string.cancel, (dialog, which) ->
@@ -790,8 +794,9 @@ public class PowerNotificationWarnings implements PowerUI.WarningsUI {
        return builder;
    }

    private void setSaverMode(boolean mode, boolean needFirstTimeWarning) {
        BatterySaverUtils.setPowerSaveMode(mContext, mode, needFirstTimeWarning);
    private void setSaverMode(boolean mode, boolean needFirstTimeWarning,
            @SaverManualEnabledReason int reason) {
        BatterySaverUtils.setPowerSaveMode(mContext, mode, needFirstTimeWarning, reason);
    }

    private void startBatterySaverSchedulePage() {
@@ -839,7 +844,7 @@ public class PowerNotificationWarnings implements PowerUI.WarningsUI {
            } else if (action.equals(ACTION_START_SAVER)) {
                logEvent(BatteryWarningEvents
                        .LowBatteryWarningEvent.LOW_BATTERY_NOTIFICATION_TURN_ON);
                setSaverMode(true, true);
                setSaverMode(true, true, SAVER_ENABLED_LOW_WARNING);
                dismissLowBatteryNotification();
            } else if (action.equals(ACTION_SHOW_START_SAVER_CONFIRMATION)) {
                dismissLowBatteryNotification();
+4 −1
Original line number Diff line number Diff line
@@ -21,6 +21,8 @@ import static android.os.BatteryManager.BATTERY_HEALTH_UNKNOWN;
import static android.os.BatteryManager.EXTRA_HEALTH;
import static android.os.BatteryManager.EXTRA_PRESENT;

import static com.android.settingslib.fuelgauge.BatterySaverLogging.SAVER_ENABLED_QS;

import android.annotation.WorkerThread;
import android.content.BroadcastReceiver;
import android.content.Context;
@@ -169,7 +171,8 @@ public class BatteryControllerImpl extends BroadcastReceiver implements BatteryC
    @Override
    public void setPowerSaveMode(boolean powerSave, View view) {
        if (powerSave) mPowerSaverStartView.set(new WeakReference<>(view));
        BatterySaverUtils.setPowerSaveMode(mContext, powerSave, /*needFirstTimeWarning*/ true);
        BatterySaverUtils.setPowerSaveMode(mContext, powerSave, /*needFirstTimeWarning*/ true,
                SAVER_ENABLED_QS);
    }

    @Override
+5 −2
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import static android.os.BatteryManager.EXTRA_PRESENT;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.inOrder;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.staticMockMarker;
import static com.android.settingslib.fuelgauge.BatterySaverLogging.SAVER_ENABLED_QS;

import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.mock;
@@ -167,8 +168,10 @@ public class BatteryControllerTest extends SysuiTestCase {
        mBatteryController.setPowerSaveMode(false, mView);

        StaticInOrder inOrder = inOrder(staticMockMarker(BatterySaverUtils.class));
        inOrder.verify(() -> BatterySaverUtils.setPowerSaveMode(getContext(), true, true));
        inOrder.verify(() -> BatterySaverUtils.setPowerSaveMode(getContext(), false, true));
        inOrder.verify(() -> BatterySaverUtils.setPowerSaveMode(getContext(), true, true,
                SAVER_ENABLED_QS));
        inOrder.verify(() -> BatterySaverUtils.setPowerSaveMode(getContext(), false, true,
                SAVER_ENABLED_QS));
    }

    @Test