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

Commit bc015e84 authored by Jim Miller's avatar Jim Miller Committed by Android Git Automerger
Browse files

am dbc31105: Merge "Disable keyguard text marquee when the display turns off." into klp-dev

* commit 'dbc31105':
  Disable keyguard text marquee when the display turns off.
parents ea4e0751 dbc31105
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -47,6 +47,14 @@ public class CarrierText extends TextView {
            mSimState = simState;
            updateCarrierText(mSimState, mPlmn, mSpn);
        }

        public void onScreenTurnedOff(int why) {
            setSelected(false);
        };

        public void onScreenTurnedOn() {
            setSelected(true);
        };
    };
    /**
     * The status of this lock screen. Primarily used for widgets on LockScreen.
@@ -79,7 +87,8 @@ public class CarrierText extends TextView {
    protected void onFinishInflate() {
        super.onFinishInflate();
        mSeparator = getResources().getString(R.string.kg_text_message_separator);
        setSelected(true); // Allow marquee to work.
        final boolean screenOn = KeyguardUpdateMonitor.getInstance(mContext).isScreenOn();
        setSelected(screenOn); // Allow marquee to work.
    }

    @Override
+12 −3
Original line number Diff line number Diff line
@@ -163,6 +163,12 @@ class KeyguardMessageArea extends TextView {
            mBatteryIsLow = status.isBatteryLow();
            update();
        }
        public void onScreenTurnedOff(int why) {
            setSelected(false);
        };
        public void onScreenTurnedOn() {
            setSelected(true);
        };
    };

    public KeyguardMessageArea(Context context) {
@@ -174,9 +180,6 @@ class KeyguardMessageArea extends TextView {

        mLockPatternUtils = new LockPatternUtils(context);

        // This is required to ensure marquee works
        setSelected(true);

        // Registering this callback immediately updates the battery state, among other things.
        mUpdateMonitor = KeyguardUpdateMonitor.getInstance(getContext());
        mUpdateMonitor.registerCallback(mInfoCallback);
@@ -187,6 +190,12 @@ class KeyguardMessageArea extends TextView {
        update();
    }

    @Override
    protected void onFinishInflate() {
        final boolean screenOn = KeyguardUpdateMonitor.getInstance(mContext).isScreenOn();
        setSelected(screenOn); // This is required to ensure marquee works
    }

    public void securityMessageChanged() {
        setAlpha(1f);
        mShowingMessage = true;
+23 −11
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.content.res.Resources;
import android.graphics.Typeface;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.util.Log;
import android.util.Slog;
import android.view.View;
import android.widget.GridLayout;
@@ -42,6 +43,8 @@ public class KeyguardStatusView extends GridLayout {

    private TextView mAlarmStatusView;

    private final int MARQUEE_VIEWS[] = { R.id.alarm_status };

    private KeyguardUpdateMonitorCallback mInfoCallback = new KeyguardUpdateMonitorCallback() {

        @Override
@@ -56,6 +59,14 @@ public class KeyguardStatusView extends GridLayout {
                refresh();
            }
        };

        public void onScreenTurnedOn() {
            setEnableMarquee(true);
        };

        public void onScreenTurnedOff(int why) {
            setEnableMarquee(false);
        };
    };

    public KeyguardStatusView(Context context) {
@@ -70,22 +81,23 @@ public class KeyguardStatusView extends GridLayout {
        super(context, attrs, defStyle);
    }

    private void setEnableMarquee(boolean enabled) {
        if (DEBUG) Log.v(TAG, (enabled ? "Enable" : "Disable") + " transport text marquee");
        for (int i = 0; i < MARQUEE_VIEWS.length; i++) {
            View v = findViewById(MARQUEE_VIEWS[i]);
            if (v != null) {
                v.setSelected(enabled);
            }
        }
    }

    @Override
    protected void onFinishInflate() {
        super.onFinishInflate();

        mAlarmStatusView = (TextView) findViewById(R.id.alarm_status);
        mLockPatternUtils = new LockPatternUtils(getContext());

        // Required to get Marquee to work.
        final View marqueeViews[] = { mAlarmStatusView };
        for (int i = 0; i < marqueeViews.length; i++) {
            View v = marqueeViews[i];
            if (v == null) {
                throw new RuntimeException("Can't find widget at index " + i);
            }
            v.setSelected(true);
        }
        final boolean screenOn = KeyguardUpdateMonitor.getInstance(mContext).isScreenOn();
        setEnableMarquee(screenOn);
        refresh();
    }

+26 −2
Original line number Diff line number Diff line
@@ -84,6 +84,8 @@ public class KeyguardTransportControlView extends FrameLayout {
    private AudioManager mAudioManager;
    private RemoteController mRemoteController;

    private int MARQUEE_VIEWS[] = { R.id.title, R.id.artist_album };

    private ImageView mBadge;

    private boolean mSeekEnabled;
@@ -198,6 +200,16 @@ public class KeyguardTransportControlView extends FrameLayout {

    KeyguardHostView.TransportControlCallback mTransportControlCallback;

    private final KeyguardUpdateMonitorCallback mUpdateMonitor
            = new KeyguardUpdateMonitorCallback() {
        public void onScreenTurnedOff(int why) {
            setEnableMarquee(false);
        };
        public void onScreenTurnedOn() {
            setEnableMarquee(true);
        };
    };

    public KeyguardTransportControlView(Context context, AttributeSet attrs) {
        super(context, attrs);
        if (DEBUG) Log.v(TAG, "Create TCV " + this);
@@ -250,6 +262,16 @@ public class KeyguardTransportControlView extends FrameLayout {
        mTransportControlCallback = transportControlCallback;
    }

    private void setEnableMarquee(boolean enabled) {
        if (DEBUG) Log.v(TAG, (enabled ? "Enable" : "Disable") + " transport text marquee");
        for (int i = 0; i < MARQUEE_VIEWS.length; i++) {
            View v = findViewById(MARQUEE_VIEWS[i]);
            if (v != null) {
                v.setSelected(enabled);
            }
        }
    }

    @Override
    public void onFinishInflate() {
        super.onFinishInflate();
@@ -257,9 +279,7 @@ public class KeyguardTransportControlView extends FrameLayout {
        mMetadataContainer = (ViewGroup) findViewById(R.id.metadata_container);
        mBadge = (ImageView) findViewById(R.id.badge);
        mTrackTitle = (TextView) findViewById(R.id.title);
        mTrackTitle.setSelected(true); // enable marquee
        mTrackArtistAlbum = (TextView) findViewById(R.id.artist_album);
        mTrackArtistAlbum.setSelected(true);
        mTransientSeek = findViewById(R.id.transient_seek);
        mTransientSeekBar = (SeekBar) findViewById(R.id.transient_seek_bar);
        mTransientSeekBar.setOnSeekBarChangeListener(mOnSeekBarChangeListener);
@@ -273,6 +293,8 @@ public class KeyguardTransportControlView extends FrameLayout {
            view.setOnClickListener(mTransportCommandListener);
            view.setOnLongClickListener(mTransportShowSeekBarListener);
        }
        final boolean screenOn = KeyguardUpdateMonitor.getInstance(mContext).isScreenOn();
        setEnableMarquee(screenOn);
    }

    @Override
@@ -285,6 +307,7 @@ public class KeyguardTransportControlView extends FrameLayout {
        }
        if (DEBUG) Log.v(TAG, "Registering TCV " + this);
        mAudioManager.registerRemoteController(mRemoteController);
        KeyguardUpdateMonitor.getInstance(mContext).registerCallback(mUpdateMonitor);
    }

    @Override
@@ -301,6 +324,7 @@ public class KeyguardTransportControlView extends FrameLayout {
        super.onDetachedFromWindow();
        if (DEBUG) Log.v(TAG, "Unregistering TCV " + this);
        mAudioManager.unregisterRemoteController(mRemoteController);
        KeyguardUpdateMonitor.getInstance(mContext).removeCallback(mUpdateMonitor);
        mUserSeeking = false;
    }

+50 −1
Original line number Diff line number Diff line
@@ -92,7 +92,8 @@ public class KeyguardUpdateMonitor {
    protected static final int MSG_SET_PLAYBACK_STATE = 316;
    protected static final int MSG_USER_INFO_CHANGED = 317;
    protected static final int MSG_REPORT_EMERGENCY_CALL_ACTION = 318;

    private static final int MSG_SCREEN_TURNED_ON = 319;
    private static final int MSG_SCREEN_TURNED_OFF = 320;

    private static KeyguardUpdateMonitor sInstance;

@@ -127,6 +128,8 @@ public class KeyguardUpdateMonitor {

    private boolean mSwitchingUser;

    private boolean mScreenOn;

    private final Handler mHandler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
@@ -185,6 +188,12 @@ public class KeyguardUpdateMonitor {
                case MSG_REPORT_EMERGENCY_CALL_ACTION:
                    handleReportEmergencyCallAction();
                    break;
                case MSG_SCREEN_TURNED_OFF:
                    handleScreenTurnedOff(msg.arg1);
                    break;
                case MSG_SCREEN_TURNED_ON:
                    handleScreenTurnedOn();
                    break;
            }
        }
    };
@@ -411,6 +420,26 @@ public class KeyguardUpdateMonitor {
        return sInstance;
    }

    protected void handleScreenTurnedOn() {
        final int count = mCallbacks.size();
        for (int i = 0; i < count; i++) {
            KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get();
            if (cb != null) {
                cb.onScreenTurnedOn();
            }
        }
    }

    protected void handleScreenTurnedOff(int arg1) {
        final int count = mCallbacks.size();
        for (int i = 0; i < count; i++) {
            KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get();
            if (cb != null) {
                cb.onScreenTurnedOff(arg1);
            }
        }
    }

    /**
     * IMPORTANT: Must be called from UI thread.
     */
@@ -1041,4 +1070,24 @@ public class KeyguardUpdateMonitor {
    public DisplayClientState getCachedDisplayClientState() {
        return mDisplayClientState;
    }

    // TODO: use these callbacks elsewhere in place of the existing notifyScreen*()
    // (KeyguardViewMediator, KeyguardHostView)
    public void dispatchScreenTurnedOn() {
        synchronized (this) {
            mScreenOn = true;
        }
        mHandler.sendEmptyMessage(MSG_SCREEN_TURNED_ON);
    }

    public void dispatchScreenTurndOff(int why) {
        synchronized(this) {
            mScreenOn = false;
        }
        mHandler.sendMessage(mHandler.obtainMessage(MSG_SCREEN_TURNED_OFF, why, 0));
    }

    public boolean isScreenOn() {
        return mScreenOn;
    }
}
Loading