Skip to content

Commit 386165a

Browse files
dsandlerAndroid (Google) Code Review
authored andcommitted
Merge "Only show "charging" if the battery is really charging." into jb-mr1.1-dev
2 parents a4f67a8 + fe0e1e4 commit 386165a

2 files changed

Lines changed: 21 additions & 8 deletions

File tree

packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryController.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,20 @@ public void onReceive(Context context, Intent intent) {
6868
final String action = intent.getAction();
6969
if (action.equals(Intent.ACTION_BATTERY_CHANGED)) {
7070
final int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0);
71-
final boolean plugged = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, 0) != 0;
72-
final int icon = plugged ? R.drawable.stat_sys_battery_charge
71+
final int status = intent.getIntExtra(BatteryManager.EXTRA_STATUS,
72+
BatteryManager.BATTERY_STATUS_UNKNOWN);
73+
74+
boolean plugged = false;
75+
switch (status) {
76+
case BatteryManager.BATTERY_STATUS_CHARGING:
77+
case BatteryManager.BATTERY_STATUS_FULL:
78+
plugged = true;
79+
break;
80+
}
81+
82+
final int icon = plugged ? R.drawable.stat_sys_battery_charge
7383
: R.drawable.stat_sys_battery;
84+
7485
int N = mIconViews.size();
7586
for (int i=0; i<N; i++) {
7687
ImageView v = mIconViews.get(i);

policy/src/com/android/internal/policy/impl/keyguard/KeyguardMessageArea.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import android.animation.ObjectAnimator;
2222
import android.content.ContentResolver;
2323
import android.content.Context;
24+
import android.os.BatteryManager;
2425
import android.os.Handler;
2526
import android.os.Looper;
2627
import android.os.UserHandle;
@@ -51,7 +52,7 @@ class KeyguardMessageArea extends TextView {
5152
boolean mShowingBouncer = false;
5253

5354
// last known plugged in state
54-
boolean mPluggedIn = false;
55+
boolean mCharging = false;
5556

5657
// last known battery level
5758
int mBatteryLevel = 100;
@@ -134,7 +135,8 @@ public void setTimeout(int timeoutMs) {
134135
@Override
135136
public void onRefreshBatteryInfo(KeyguardUpdateMonitor.BatteryStatus status) {
136137
mShowingBatteryInfo = status.isPluggedIn() || status.isBatteryLow();
137-
mPluggedIn = status.isPluggedIn();
138+
mCharging = status.status == BatteryManager.BATTERY_STATUS_CHARGING
139+
|| status.status == BatteryManager.BATTERY_STATUS_FULL;
138140
mBatteryLevel = status.level;
139141
mBatteryCharged = status.isCharged();
140142
mBatteryIsLow = status.isBatteryLow();
@@ -223,11 +225,11 @@ private CharSequence getChargeInfo(MutableInt icon) {
223225
CharSequence string = null;
224226
if (mShowingBatteryInfo && !mShowingMessage) {
225227
// Battery status
226-
if (mPluggedIn) {
228+
if (mCharging) {
227229
// Charging, charged or waiting to charge.
228-
string = getContext().getString(mBatteryCharged ?
229-
com.android.internal.R.string.lockscreen_charged
230-
:com.android.internal.R.string.lockscreen_plugged_in, mBatteryLevel);
230+
string = getContext().getString(mBatteryCharged
231+
? com.android.internal.R.string.lockscreen_charged
232+
: com.android.internal.R.string.lockscreen_plugged_in, mBatteryLevel);
231233
icon.value = CHARGING_ICON;
232234
} else if (mBatteryIsLow) {
233235
// Battery is low

0 commit comments

Comments
 (0)