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

Commit 65664b29 authored by Erin Yan's avatar Erin Yan
Browse files

Check screenlock for unlock dialog

Only show unlock dialog when the foreground user has screenlock and trusted device.

Bug:144590810
Test: Manually on IHU
Change-Id: I2585ec33391aec9f3cd71f03507e863cbd5d4e76
Merged-in: I08c7aa677150ca950785428580eee6a39ffadd37
parent 2c5bd63e
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ import android.view.ViewStub;

import androidx.recyclerview.widget.GridLayoutManager;

import com.android.internal.widget.LockPatternUtils;
import com.android.systemui.CarSystemUIFactory;
import com.android.systemui.R;
import com.android.systemui.SystemUIFactory;
@@ -117,8 +118,9 @@ public class FullscreenUserSwitcher {
                /* isAddUser= */ false,
                /* isForeground= */ true);

        // If the initial user has trusted device, display the unlock dialog on the keyguard.
        if (hasTrustedDevice(initialUser)) {
        // If the initial user has screen lock and trusted device, display the unlock dialog on the
        // keyguard.
        if (hasScreenLock(initialUser) && hasTrustedDevice(initialUser)) {
            mUnlockDialogHelper.showUnlockDialogAfterDelay(initialUser,
                    mOnHideListener);
        } else {
@@ -160,7 +162,7 @@ public class FullscreenUserSwitcher {
     */
    private void onUserSelected(UserGridRecyclerView.UserRecord record) {
        mSelectedUser = record;
        if (hasTrustedDevice(record.mInfo.id)) {
        if (hasScreenLock(record.mInfo.id) && hasTrustedDevice(record.mInfo.id)) {
            mUnlockDialogHelper.showUnlockDialog(record.mInfo.id, mOnHideListener);
            return;
        }
@@ -198,6 +200,11 @@ public class FullscreenUserSwitcher {

    }

    private boolean hasScreenLock(int uid) {
        LockPatternUtils lockPatternUtils = new LockPatternUtils(mContext);
        return lockPatternUtils.isSecure(uid);
    }

    private boolean hasTrustedDevice(int uid) {
        if (mEnrollmentManager == null) { // car service not ready, so it cannot be available.
            return false;