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

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

Fix 3342063: Correctly update StatusView when battery changes.

LockScreen wasn't correctly updating StatusView when the battery
status changed.  In addition, the messages aren't supposed to
"pop" when changed, so changed visibility state from GONE to INVISIBLE
when not in use.

Change-Id: Icacbf7e2275c77a28e7e0a9d1247abdbebadcd4f
parent 077fd5f6
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -311,8 +311,8 @@ class LockScreen extends LinearLayout implements KeyguardScreen,
        setFocusableInTouchMode(true);
        setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);

        updateMonitor.registerInfoCallback(this);
        updateMonitor.registerSimStateCallback(this);
        mUpdateMonitor.registerInfoCallback(this);
        mUpdateMonitor.registerSimStateCallback(this);

        mAudioManager = (AudioManager) getContext().getSystemService(Context.AUDIO_SERVICE);
        mSilentMode = isSilentMode();
@@ -414,6 +414,9 @@ class LockScreen extends LinearLayout implements KeyguardScreen,
    public void onRefreshBatteryInfo(boolean showBatteryInfo, boolean pluggedIn,
            int batteryLevel) {
        if (DBG) Log.d(TAG, "onRefreshBatteryInfo(" + showBatteryInfo + ", " + pluggedIn + ")");

        mStatusView.onRefreshBatteryInfo(showBatteryInfo, pluggedIn, batteryLevel);

        mShowingBatteryInfo = showBatteryInfo;
        mPluggedIn = pluggedIn;
        mBatteryLevel = batteryLevel;
+5 −2
Original line number Diff line number Diff line
@@ -169,6 +169,9 @@ class PatternUnlockScreen extends LinearLayoutWithDefaultTouchRecepient
        }

        mStatusView = new StatusView(this, mUpdateMonitor, mLockPatternUtils);
        // This shows up when no other information is required on status1
        mStatusView.setHelpMessage(R.string.lockscreen_pattern_instructions,
                StatusView.LOCK_ICON);

        mLockPatternView = (LockPatternView) findViewById(R.id.lockPattern);

@@ -216,8 +219,8 @@ class PatternUnlockScreen extends LinearLayoutWithDefaultTouchRecepient
        // assume normal footer mode for now
        updateFooter(FooterMode.Normal);

        updateMonitor.registerInfoCallback(this);
        updateMonitor.registerSimStateCallback(this);
        mUpdateMonitor.registerInfoCallback(this);
        mUpdateMonitor.registerSimStateCallback(this);
        setFocusableInTouchMode(true);

        // until we get an update...
+22 −11
Original line number Diff line number Diff line
@@ -19,10 +19,10 @@ import android.view.View;
import android.widget.TextView;

class StatusView {
    private static final int LOCK_ICON = R.drawable.ic_lock_idle_lock;
    private static final int ALARM_ICON = R.drawable.ic_lock_idle_alarm;
    private static final int CHARGING_ICON = R.drawable.ic_lock_idle_charging;
    private static final int BATTERY_LOW_ICON = R.drawable.ic_lock_idle_low_battery;
    public static final int LOCK_ICON = R.drawable.ic_lock_idle_lock;
    public static final int ALARM_ICON = R.drawable.ic_lock_idle_alarm;
    public static final int CHARGING_ICON = R.drawable.ic_lock_idle_charging;
    public static final int BATTERY_LOW_ICON = R.drawable.ic_lock_idle_low_battery;

    private String mDateFormatString;

@@ -49,6 +49,8 @@ class StatusView {

    private TextView mAlarmStatus;
    private LockPatternUtils mLockPatternUtils;
    private int mHelpMessageId;
    private int mHelpIconId;

    private View findViewById(int id) {
        return mView.findViewById(id);
@@ -148,8 +150,8 @@ class StatusView {
     */
    void updateStatusLines(boolean showStatusLines) {
        if (!showStatusLines) {
            mStatus1.setVisibility(showStatusLines ? View.VISIBLE : View.GONE);
            mAlarmStatus.setVisibility(showStatusLines ? View.VISIBLE : View.GONE);
            mStatus1.setVisibility(showStatusLines ? View.VISIBLE : View.INVISIBLE);
            mAlarmStatus.setVisibility(showStatusLines ? View.VISIBLE : View.INVISIBLE);
            return;
        }

@@ -171,7 +173,7 @@ class StatusView {
            mAlarmStatus.setText(nextAlarm);
            mAlarmStatus.setVisibility(View.VISIBLE);
        } else {
            mAlarmStatus.setVisibility(View.GONE);
            mAlarmStatus.setVisibility(View.INVISIBLE);
        }

        // Update Status1
@@ -199,13 +201,22 @@ class StatusView {
            }
            mStatus1.setVisibility(View.VISIBLE);
        } else {
            // nothing specific to show; show general instructions
            mStatus1.setText(R.string.lockscreen_pattern_instructions);
            mStatus1.setCompoundDrawablesWithIntrinsicBounds(LOCK_ICON, 0,0, 0);
            // nothing specific to show; show help message and icon, if provided
            if (mHelpMessageId != 0) {
                mStatus1.setText(mHelpMessageId);
                mStatus1.setCompoundDrawablesWithIntrinsicBounds(mHelpIconId, 0,0, 0);
                mStatus1.setVisibility(View.VISIBLE);
            } else {
                mStatus1.setVisibility(View.INVISIBLE);
            }
        }
    }

    void setHelpMessage(int messageId, int iconId) {
        mHelpMessageId = messageId;
        mHelpIconId = iconId;
    }

    void refreshTimeAndDateDisplay() {
        if (mHasDate) {
            mDate.setText(DateFormat.format(mDateFormatString, new Date()));