From f5b16e9e338397a6d126366ecebb6c023f7be205 Mon Sep 17 00:00:00 2001 From: Todd Poynor Date: Tue, 20 Feb 2018 20:11:43 -0800 Subject: BackgroundDexOptService: skip low battery check if not present If no battery is present, assume no need to check for low battery. Do not interpret battery level values if battery is not present. Bug: 34507420 Test: manual (temporary log messages with battery forced not present) Change-Id: Iebc64bc890808d583d0bd95a31f17b6363b7ba40 Merged-In: Iebc64bc890808d583d0bd95a31f17b6363b7ba40 --- .../core/java/com/android/server/pm/BackgroundDexOptService.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/services/core/java/com/android/server/pm/BackgroundDexOptService.java b/services/core/java/com/android/server/pm/BackgroundDexOptService.java index 423201a5251f..3814ef348c87 100644 --- a/services/core/java/com/android/server/pm/BackgroundDexOptService.java +++ b/services/core/java/com/android/server/pm/BackgroundDexOptService.java @@ -144,6 +144,12 @@ public class BackgroundDexOptService extends JobService { Intent intent = registerReceiver(null, filter); int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1); + boolean present = intent.getBooleanExtra(BatteryManager.EXTRA_PRESENT, true); + + if (!present) { + // No battery, treat as if 100%, no possibility of draining battery. + return 100; + } if (level < 0 || scale <= 0) { // Battery data unavailable. This should never happen, so assume the worst. -- cgit v1.2.3-59-g8ed1b