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

Commit a2ab1d69 authored by Toni Barzic's avatar Toni Barzic Committed by Android (Google) Code Review
Browse files

Merge "Try to dismiss Keyguard bypassing bouncer only for active users" into nyc-dev

parents 9de7952a 657f8851
Loading
Loading
Loading
Loading
+22 −6
Original line number Original line Diff line number Diff line
@@ -16,7 +16,10 @@


package com.android.systemui.statusbar.phone;
package com.android.systemui.statusbar.phone;


import android.app.ActivityManager;
import android.content.Context;
import android.content.Context;
import android.os.UserHandle;
import android.util.Slog;
import android.view.KeyEvent;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View;
@@ -42,6 +45,8 @@ import static com.android.keyguard.KeyguardSecurityModel.SecurityMode;
 */
 */
public class KeyguardBouncer {
public class KeyguardBouncer {


    final static private String TAG = "KeyguardBouncer";

    protected Context mContext;
    protected Context mContext;
    protected ViewMediatorCallback mCallback;
    protected ViewMediatorCallback mCallback;
    protected LockPatternUtils mLockPatternUtils;
    protected LockPatternUtils mLockPatternUtils;
@@ -84,15 +89,26 @@ public class KeyguardBouncer {
            return;
            return;
        }
        }


        // Try to dismiss the Keyguard. If no security pattern is set, this will dismiss the whole
        final int activeUserId = ActivityManager.getCurrentUser();
        // Keyguard. If we need to authenticate, show the bouncer.
        final int keyguardUserId = KeyguardUpdateMonitor.getCurrentUser();
        if (!mKeyguardView.dismiss()) {
        final boolean allowDismissKeyguard = activeUserId != UserHandle.USER_SYSTEM
                && activeUserId == keyguardUserId;
        // If allowed, try to dismiss the Keyguard. If no security auth (password/pin/pattern) is
        // set, this will dismiss the whole Keyguard. Otherwise, show the bouncer.
        if (allowDismissKeyguard && mKeyguardView.dismiss()) {
            return;
        }

        // This condition may indicate an error on Android, so log it.
        if (!allowDismissKeyguard) {
            Slog.w(TAG, "User can't dismiss keyguard: " + activeUserId + " != " + keyguardUserId);
        }

        mShowingSoon = true;
        mShowingSoon = true;


        // Split up the work over multiple frames.
        // Split up the work over multiple frames.
        DejankUtils.postAfterTraversal(mShowRunnable);
        DejankUtils.postAfterTraversal(mShowRunnable);
    }
    }
    }


    private final Runnable mShowRunnable = new Runnable() {
    private final Runnable mShowRunnable = new Runnable() {
        @Override
        @Override