Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b92e18e2 authored by Jim Miller's avatar Jim Miller
Browse files

Fix 3388705: Explicitly check for low battery level

This fixes a bug in StatusView believed to be caused by
seeing "invalid charger" update from BatteryService.

The code normally relies on "interesting events", as determined
by KeyguardUpdateMonitor.  I believe something else is
triggering an update (perhaps a SimStateChanged event) that updates
the status without also updating StatusView.mShowingBatteryInfo
and mPluggedIn.

The safer way to do this is to explicitly check the battery
level before telling the user the device needs to be charged.

Change-Id: Ic39ed86c78a157dc9fbdef4d76a9c3db39ccafca
parent ee37ab8d
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -62,7 +62,7 @@ public class KeyguardUpdateMonitor {
    static private final String TAG = "KeyguardUpdateMonitor";
    static private final boolean DEBUG = false;

    private static final int LOW_BATTERY_THRESHOLD = 20;
    /* package */ static final int LOW_BATTERY_THRESHOLD = 20;

    private final Context mContext;

+5 −2
Original line number Diff line number Diff line
@@ -193,12 +193,15 @@ class StatusView {
                            mBatteryLevel));
                }
                mStatus1.setCompoundDrawablesWithIntrinsicBounds(CHARGING_ICON, 0, 0, 0);
            } else {
                mStatus1.setVisibility(View.VISIBLE);
            } else if (mBatteryLevel < KeyguardUpdateMonitor.LOW_BATTERY_THRESHOLD) {
                // Battery is low
                mStatus1.setText(getContext().getString(R.string.lockscreen_low_battery));
                mStatus1.setCompoundDrawablesWithIntrinsicBounds(BATTERY_LOW_ICON, 0, 0, 0);
            }
                mStatus1.setVisibility(View.VISIBLE);
            } else {
                mStatus1.setVisibility(View.INVISIBLE);
            }
        } else {
            // nothing specific to show; show help message and icon, if provided
            if (mHelpMessageId != 0) {