From b41df4423ebe5ac4c10b46867670c8f78f16548f Mon Sep 17 00:00:00 2001 From: Todd Poynor Date: Fri, 8 Dec 2017 10:44:40 -0800 Subject: [PATCH] BatteryService: don't set battery low or critical states if no battery If device has no battery then never set states "battery low" or "battery critical". Bug: 34507420 Test: manual: inspection (with hack to disappear the battery device) Change-Id: I1eee79032507121de2fa7bf29d1359a29f21d3d0 --- services/core/java/com/android/server/BatteryService.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/BatteryService.java b/services/core/java/com/android/server/BatteryService.java index 924e736bab07c..04d292fa1ae40 100644 --- a/services/core/java/com/android/server/BatteryService.java +++ b/services/core/java/com/android/server/BatteryService.java @@ -421,7 +421,9 @@ public final class BatteryService extends SystemService { boolean logOutlier = false; long dischargeDuration = 0; - mBatteryLevelCritical = (mHealthInfo.batteryLevel <= mCriticalBatteryLevel); + mBatteryLevelCritical = + mHealthInfo.batteryStatus != BatteryManager.BATTERY_STATUS_UNKNOWN + && mHealthInfo.batteryLevel <= mCriticalBatteryLevel; if (mHealthInfo.chargerAcOnline) { mPlugType = BatteryManager.BATTERY_PLUGGED_AC; } else if (mHealthInfo.chargerUsbOnline) { @@ -509,6 +511,8 @@ public final class BatteryService extends SystemService { if (!mBatteryLevelLow) { // Should we now switch in to low battery mode? if (mPlugType == BATTERY_PLUGGED_NONE + && mHealthInfo.batteryStatus != + BatteryManager.BATTERY_STATUS_UNKNOWN && mHealthInfo.batteryLevel <= mLowBatteryWarningLevel) { mBatteryLevelLow = true; }