Merge "Add manual enabled battery saver reason (1/4)" into udc-dev
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user