summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Daniel Sandler <dsandler@android.com> 2013-10-14 10:27:45 -0400
committer Daniel Sandler <dsandler@android.com> 2013-10-14 10:27:45 -0400
commit05021e5e47132799efc3f8312fbca7cb20e6fc71 (patch)
tree270d2550ea4c0731d0ef182e83c7a018775c316d
parente1db0dd089456d80a2872fe1a12a179f39240aec (diff)
Don't show [!] battery at boot.
Defense in depth: 1. If there's a sticky battery broadcast waiting around for us, apply its information immediately. 2. If for some reason there is no battery information, just don't draw anything. Bug: 11208146 Change-Id: I43e4b55a90a4ca619816ad0315e329f88b529581
-rwxr-xr-xpackages/SystemUI/src/com/android/systemui/BatteryMeterView.java13
1 files changed, 11 insertions, 2 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java b/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java
index 150f13280cd6..b6e03e143c7e 100755
--- a/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java
+++ b/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java
@@ -69,8 +69,10 @@ public class BatteryMeterView extends View implements DemoMode {
private final Rect mBoltFrame = new Rect();
private class BatteryTracker extends BroadcastReceiver {
+ public static final int UNKNOWN_LEVEL = -1;
+
// current battery status
- int level;
+ int level = UNKNOWN_LEVEL;
String percentStr;
int plugType;
boolean plugged;
@@ -148,7 +150,11 @@ public class BatteryMeterView extends View implements DemoMode {
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_BATTERY_CHANGED);
filter.addAction(ACTION_LEVEL_TEST);
- getContext().registerReceiver(mTracker, filter);
+ final Intent sticky = getContext().registerReceiver(mTracker, filter);
+ if (sticky != null) {
+ // preload the battery level
+ mTracker.onReceive(getContext(), sticky);
+ }
}
@Override
@@ -256,6 +262,9 @@ public class BatteryMeterView extends View implements DemoMode {
public void draw(Canvas c) {
BatteryTracker tracker = mDemoMode ? mDemoTracker : mTracker;
final int level = tracker.level;
+
+ if (level == BatteryTracker.UNKNOWN_LEVEL) return;
+
float drawFrac = (float) level / 100f;
final int pt = getPaddingTop();
final int pl = getPaddingLeft();