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

Commit ff332834 authored by jovanak's avatar jovanak Committed by Ram Periathiruvadi
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
parent 4075dff4
Loading
Loading
Loading
Loading
+5 −17
Original line number Diff line number Diff line
@@ -50,9 +50,6 @@ import javax.inject.Singleton;
@Singleton
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 Context mContext;
    private final Resources mResources;
    private final UserManager mUserManager;
@@ -137,26 +134,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.
     */