Fix talkback reading battery 0% on boot
Don't send battery callbacks if we don't have the info yet.
Change-Id: I52bc60bb269f7e7ceda0f42bb70d557d921b1b5a
Fixes: 30436961
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryControllerImpl.java
index b9c7a4b..6726c92 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryControllerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryControllerImpl.java
@@ -53,6 +53,7 @@
protected boolean mCharged;
protected boolean mPowerSave;
private boolean mTestmode = false;
+ private boolean mHasReceivedBattery = false;
public BatteryControllerImpl(Context context) {
mContext = context;
@@ -92,6 +93,7 @@
synchronized (mChangeCallbacks) {
mChangeCallbacks.add(cb);
}
+ if (!mHasReceivedBattery) return;
cb.onBatteryLevelChanged(mLevel, mPluggedIn, mCharging);
cb.onPowerSaveChanged(mPowerSave);
}
@@ -108,6 +110,7 @@
final String action = intent.getAction();
if (action.equals(Intent.ACTION_BATTERY_CHANGED)) {
if (mTestmode && !intent.getBooleanExtra("testmode", false)) return;
+ mHasReceivedBattery = true;
mLevel = (int)(100f
* intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0)
/ intent.getIntExtra(BatteryManager.EXTRA_SCALE, 100));