From 965419af5da6900141d66fbccfe96928603aed6c Mon Sep 17 00:00:00 2001 From: Makoto Onuki Date: Tue, 9 Jan 2018 14:43:06 -0800 Subject: [PATCH] Cap the low battery threshold at config_lowBatteryWarningLevel (=15) Currently it doesn't matter because LOW_POWER_MODE_TRIGGER_LEVEL can be 15% at most and config_lowBatteryWarningLevel is 15, but because we'll allow bigger LOW_POWER_MODE_TRIGGER_LEVEL, we don't want to do the low battery warning at a battery level too high. Bug: 71707409 Test: manual test with "dumpsys battery unplug" and "dumpsys battery set level XX" Change-Id: Ibd3646decef243bbed21c148134ab1d3930bea14 --- services/core/java/com/android/server/BatteryService.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/BatteryService.java b/services/core/java/com/android/server/BatteryService.java index 04d292fa1ae40..dcb0fabf03450 100644 --- a/services/core/java/com/android/server/BatteryService.java +++ b/services/core/java/com/android/server/BatteryService.java @@ -293,10 +293,13 @@ public final class BatteryService extends SystemService { private void updateBatteryWarningLevelLocked() { final ContentResolver resolver = mContext.getContentResolver(); - int defWarnLevel = mContext.getResources().getInteger( + final int defWarnLevel = mContext.getResources().getInteger( com.android.internal.R.integer.config_lowBatteryWarningLevel); - mLowBatteryWarningLevel = Settings.Global.getInt(resolver, + final int lowPowerModeTriggerLevel = Settings.Global.getInt(resolver, Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, defWarnLevel); + + mLowBatteryWarningLevel = Math.min(defWarnLevel, lowPowerModeTriggerLevel); + if (mLowBatteryWarningLevel == 0) { mLowBatteryWarningLevel = defWarnLevel; }