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
This commit is contained in:
@@ -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(
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user