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

Commit 4824c7c3 authored by jovanak's avatar jovanak Committed by Jovana Knezevic
Browse files

Keyguard should be dismissed if there is no trusted device.

The only times the keyguard is shown are:
1. To display unlock dialog when the initial user has a trusted device.
2. To display user switcher if the user clicks "Cancel" on the bouncer and
wants to switch to a different user.

Fixes: 140766764
Test: manual
Change-Id: I9e3c1138813ba40f0c6b2e8cba057b99ff6fb040
Merged-in: I9e3c1138813ba40f0c6b2e8cba057b99ff6fb040
parent 0f18e344
Loading
Loading
Loading
Loading
+5 −16
Original line number Diff line number Diff line
@@ -45,8 +45,6 @@ import com.android.systemui.statusbar.car.UserGridRecyclerView.UserRecord;
 */
public class FullscreenUserSwitcher {
    private static final String TAG = FullscreenUserSwitcher.class.getSimpleName();
    // Because user 0 is headless, user count for single user is 2
    private static final int NUMBER_OF_BACKGROUND_USERS = 1;
    private final UserGridRecyclerView mUserGridView;
    private final View mParent;
    private final int mShortAnimDuration;
@@ -118,26 +116,17 @@ public class FullscreenUserSwitcher {
                /* isStartGuestSession= */ false,
                /* isAddUser= */ false,
                /* isForeground= */ true);
        // For single user without trusted device, hide the user switcher.
        if (!hasMultipleUsers() && !hasTrustedDevice(initialUser)) {
            dismissUserSwitcher();
            return;
        }
        // Show unlock dialog for initial user

        // If the initial user has trusted device, display the unlock dialog on the keyguard.
        if (hasTrustedDevice(initialUser)) {
            mUnlockDialogHelper.showUnlockDialogAfterDelay(initialUser,
                    mOnHideListener);
        } else {
            // If no trusted device, dismiss the keyguard.
            dismissUserSwitcher();
        }
    }

    /**
     * Check if there is only one possible user to login in.
     * In a Multi-User system there is always one background user (user 0)
     */
    private boolean hasMultipleUsers() {
        return mUserManager.getUserCount() > NUMBER_OF_BACKGROUND_USERS + 1;
    }

    /**
     * Makes user grid visible.
     */