From fe0e1e445fe697d59baf5736da20356a4e548fc9 Mon Sep 17 00:00:00 2001 From: Daniel Sandler Date: Thu, 29 Nov 2012 15:11:50 -0500 Subject: [PATCH] Only show "charging" if the battery is really charging. If there's a charge problem (battery health/temperature out of spec, or low charging current), the lockscreen and status bar should not indicate that charging is occurring. (Previously we showed "Charging" and a lightning bolt any time the device was plugged in.) Bug: 7509976 Change-Id: I27ec0e2cec1307fbc6ef262dd5181a4db6d3bed0 --- .../statusbar/policy/BatteryController.java | 15 +++++++++++++-- .../policy/impl/keyguard/KeyguardMessageArea.java | 14 ++++++++------ 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryController.java index 7f9bcac97761c..716341f17abf9 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryController.java @@ -68,9 +68,20 @@ public class BatteryController extends BroadcastReceiver { final String action = intent.getAction(); if (action.equals(Intent.ACTION_BATTERY_CHANGED)) { final int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0); - final boolean plugged = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, 0) != 0; - final int icon = plugged ? R.drawable.stat_sys_battery_charge + final int status = intent.getIntExtra(BatteryManager.EXTRA_STATUS, + BatteryManager.BATTERY_STATUS_UNKNOWN); + + boolean plugged = false; + switch (status) { + case BatteryManager.BATTERY_STATUS_CHARGING: + case BatteryManager.BATTERY_STATUS_FULL: + plugged = true; + break; + } + + final int icon = plugged ? R.drawable.stat_sys_battery_charge : R.drawable.stat_sys_battery; + int N = mIconViews.size(); for (int i=0; i