summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author YK Hung <ykhung@google.com> 2023-04-10 14:03:33 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-04-10 14:03:33 +0000
commit047b5680eb63be1a63192ed74686cd19bb23c3c3 (patch)
treef6a23ef5df0acfb884a4e30301f1f46536991fc6
parent13067e721645cc568041ecf6bd9d6dcfcce52565 (diff)
parent530e6fc6055619d871173b89e7300703653c2e86 (diff)
Merge "Add manual enabled battery saver reason (1/4)" into udc-dev
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/fuelgauge/BatterySaverUtils.java5
-rw-r--r--packages/SettingsLib/tests/robotests/src/com/android/settingslib/fuelgauge/BatterySaverUtilsTest.java19
-rw-r--r--packages/SystemUI/src/com/android/systemui/power/PowerNotificationWarnings.java13
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryControllerImpl.java5
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/BatteryControllerTest.java7
5 files changed, 34 insertions, 15 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/fuelgauge/BatterySaverUtils.java b/packages/SettingsLib/src/com/android/settingslib/fuelgauge/BatterySaverUtils.java
index a3db6d7e17ff..e28ada4771c9 100644
--- a/packages/SettingsLib/src/com/android/settingslib/fuelgauge/BatterySaverUtils.java
+++ b/packages/SettingsLib/src/com/android/settingslib/fuelgauge/BatterySaverUtils.java
@@ -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;
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/fuelgauge/BatterySaverUtilsTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/fuelgauge/BatterySaverUtilsTest.java
index ad022a63eaf6..cb386fbff4ed 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/fuelgauge/BatterySaverUtilsTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/fuelgauge/BatterySaverUtilsTest.java
@@ -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));
diff --git a/packages/SystemUI/src/com/android/systemui/power/PowerNotificationWarnings.java b/packages/SystemUI/src/com/android/systemui/power/PowerNotificationWarnings.java
index c2c1306d2a32..a765702a95b2 100644
--- a/packages/SystemUI/src/com/android/systemui/power/PowerNotificationWarnings.java
+++ b/packages/SystemUI/src/com/android/systemui/power/PowerNotificationWarnings.java
@@ -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();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryControllerImpl.java
index 654ba04eba7a..1e63b2a4b3e1 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryControllerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryControllerImpl.java
@@ -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
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/BatteryControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/BatteryControllerTest.java
index 1eee08c22187..91c88cebff79 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/BatteryControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/BatteryControllerTest.java
@@ -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