From 159dfb78e92a7db9c6a10543d0e6635489fc5fc1 Mon Sep 17 00:00:00 2001 From: Jason Monk Date: Fri, 30 Sep 2016 09:41:03 -0400 Subject: [PATCH] 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 --- .../systemui/statusbar/policy/BatteryControllerImpl.java | 3 +++ 1 file changed, 3 insertions(+) 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 b9c7a4b411ef1..6726c9200a584 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 @@ public class BatteryControllerImpl extends BroadcastReceiver implements BatteryC protected boolean mCharged; protected boolean mPowerSave; private boolean mTestmode = false; + private boolean mHasReceivedBattery = false; public BatteryControllerImpl(Context context) { mContext = context; @@ -92,6 +93,7 @@ public class BatteryControllerImpl extends BroadcastReceiver implements BatteryC synchronized (mChangeCallbacks) { mChangeCallbacks.add(cb); } + if (!mHasReceivedBattery) return; cb.onBatteryLevelChanged(mLevel, mPluggedIn, mCharging); cb.onPowerSaveChanged(mPowerSave); } @@ -108,6 +110,7 @@ public class BatteryControllerImpl extends BroadcastReceiver implements BatteryC 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));