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);
+    }
 }