Merge "Suppress battery saver suggestion notification" into rvc-dev
diff --git a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleRadioButtonsController.java b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleRadioButtonsController.java
index 2cf2b6d..737fb0f 100644
--- a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleRadioButtonsController.java
+++ b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleRadioButtonsController.java
@@ -22,6 +22,7 @@
import android.provider.Settings;
import android.provider.Settings.Global;
import android.text.TextUtils;
+
import com.android.settingslib.fuelgauge.BatterySaverUtils;
/**
@@ -72,7 +73,7 @@
if (key == null) {
return false;
}
-
+
final ContentResolver resolver = mContext.getContentResolver();
int mode = PowerManager.POWER_SAVE_MODE_TRIGGER_PERCENTAGE;
int triggerLevel = 0;
@@ -112,6 +113,10 @@
if (mode != PowerManager.POWER_SAVE_MODE_TRIGGER_DYNAMIC) {
Settings.Global.putInt(resolver, Global.LOW_POWER_MODE_TRIGGER_LEVEL, triggerLevel);
}
+ // Suppress battery saver suggestion notification if enabling scheduling battery saver.
+ if (mode == PowerManager.POWER_SAVE_MODE_TRIGGER_DYNAMIC || triggerLevel != 0) {
+ BatterySaverUtils.suppressAutoBatterySaver(mContext);
+ }
mSeekBarController.updateSeekBar();
return true;
}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleRadioButtonsControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleRadioButtonsControllerTest.java
index 8654a4e..2919edc 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleRadioButtonsControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleRadioButtonsControllerTest.java
@@ -8,6 +8,7 @@
import android.provider.Settings;
import android.provider.Settings.Global;
import android.provider.Settings.Secure;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -59,9 +60,36 @@
@Test
public void setDefaultKey_any_defaultsToNoScheduleIfWarningNotSeen() {
Secure.putString(
- mContext.getContentResolver(), Secure.LOW_POWER_WARNING_ACKNOWLEDGED, "null");
+ mContext.getContentResolver(), Secure.LOW_POWER_WARNING_ACKNOWLEDGED, "null");
mController.setDefaultKey(BatterySaverScheduleRadioButtonsController.KEY_ROUTINE);
assertThat(mController.getDefaultKey())
.isEqualTo(BatterySaverScheduleRadioButtonsController.KEY_NO_SCHEDULE);
}
+
+ @Test
+ public void setDefaultKey_percentage_shouldSuppressNotification() {
+ Secure.putInt(
+ mContext.getContentResolver(), Secure.LOW_POWER_WARNING_ACKNOWLEDGED, 1);
+ Settings.Global.putInt(mResolver, Global.AUTOMATIC_POWER_SAVE_MODE,
+ PowerManager.POWER_SAVE_MODE_TRIGGER_PERCENTAGE);
+ Settings.Global.putInt(mResolver, Global.LOW_POWER_MODE_TRIGGER_LEVEL, 5);
+ mController.setDefaultKey(BatterySaverScheduleRadioButtonsController.KEY_PERCENTAGE);
+
+ final int result = Settings.Secure.getInt(mResolver,
+ Secure.SUPPRESS_AUTO_BATTERY_SAVER_SUGGESTION, 0);
+ assertThat(result).isEqualTo(1);
+ }
+
+ @Test
+ public void setDefaultKey_routine_shouldSuppressNotification() {
+ Secure.putInt(
+ mContext.getContentResolver(), Secure.LOW_POWER_WARNING_ACKNOWLEDGED, 1);
+ Settings.Global.putInt(mResolver, Global.AUTOMATIC_POWER_SAVE_MODE,
+ PowerManager.POWER_SAVE_MODE_TRIGGER_DYNAMIC);
+ mController.setDefaultKey(BatterySaverScheduleRadioButtonsController.KEY_ROUTINE);
+
+ final int result = Settings.Secure.getInt(mResolver,
+ Secure.SUPPRESS_AUTO_BATTERY_SAVER_SUGGESTION, 0);
+ assertThat(result).isEqualTo(1);
+ }
}