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

Commit ae13e18c authored by Tony Mak's avatar Tony Mak
Browse files

Should check isDeviceSecure in shouldConfirmCredentials

The NPE is because createConfirmDeviceCredentialIntent returns a null
intent when it founds that user does not set a secure lock.
So the fix is we should check is the user set a secure lock screen as well.

The reason the crash only happens in multi-window flow because
we have null checking in
the normal flow (i.e. interceptWithConfirmCredentialsIfNeeded).
But I think we better check it explicitly.

Bug: 28716456
Change-Id: Ib204cd02c0007bd1df36908bb3b5254ec4ffb914
parent 048cabdb
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -620,6 +620,10 @@ class ActivityStarter {
                .getSystemService(Context.KEYGUARD_SERVICE);
        final Intent credential =
                km.createConfirmDeviceCredentialIntent(null, null, userId);
        // For safety, check null here in case users changed the setting after the checking.
        if (credential == null) {
            return;
        }
        final ActivityRecord activityRecord = targetStack.topRunningActivityLocked();
        if (activityRecord != null) {
            final IIntentSender target = mService.getIntentSenderLocked(
+1 −1
Original line number Diff line number Diff line
@@ -1468,7 +1468,7 @@ final class UserController {
        }
        final KeyguardManager km = (KeyguardManager) mService.mContext
                .getSystemService(KEYGUARD_SERVICE);
        return km.isDeviceLocked(userId);
        return km.isDeviceLocked(userId) && km.isDeviceSecure(userId);
    }

    boolean isLockScreenDisabled(@UserIdInt int userId) {