Merge "Fix bouncer race condition" into rvc-dev

This commit is contained in:
TreeHugger Robot
2020-02-28 03:19:35 +00:00
committed by Android (Google) Code Review

View File

@@ -19,7 +19,9 @@ import static android.view.ViewRootImpl.NEW_INSETS_MODE_FULL;
import static android.view.ViewRootImpl.sNewInsetsMode; import static android.view.ViewRootImpl.sNewInsetsMode;
import static android.view.WindowInsets.Type.ime; import static android.view.WindowInsets.Type.ime;
import static android.view.WindowInsets.Type.systemBars; import static android.view.WindowInsets.Type.systemBars;
import static com.android.systemui.DejankUtils.whitelistIpcs; import static com.android.systemui.DejankUtils.whitelistIpcs;
import static java.lang.Integer.max; import static java.lang.Integer.max;
import android.app.Activity; import android.app.Activity;
@@ -28,7 +30,6 @@ import android.app.admin.DevicePolicyManager;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.res.ColorStateList; import android.content.res.ColorStateList;
import android.graphics.Rect;
import android.metrics.LogMaker; import android.metrics.LogMaker;
import android.os.Handler; import android.os.Handler;
import android.os.Looper; import android.os.Looper;
@@ -511,6 +512,8 @@ public class KeyguardSecurityContainer extends FrameLayout implements KeyguardSe
boolean finish = false; boolean finish = false;
boolean strongAuth = false; boolean strongAuth = false;
int eventSubtype = -1; int eventSubtype = -1;
mCurrentSecuritySelection = whitelistIpcs(() ->
mSecurityModel.getSecurityMode(targetUserId));
if (mUpdateMonitor.getUserHasTrust(targetUserId)) { if (mUpdateMonitor.getUserHasTrust(targetUserId)) {
finish = true; finish = true;
eventSubtype = BOUNCER_DISMISS_EXTENDED_ACCESS; eventSubtype = BOUNCER_DISMISS_EXTENDED_ACCESS;
@@ -518,13 +521,8 @@ public class KeyguardSecurityContainer extends FrameLayout implements KeyguardSe
finish = true; finish = true;
eventSubtype = BOUNCER_DISMISS_BIOMETRIC; eventSubtype = BOUNCER_DISMISS_BIOMETRIC;
} else if (SecurityMode.None == mCurrentSecuritySelection) { } else if (SecurityMode.None == mCurrentSecuritySelection) {
SecurityMode securityMode = mSecurityModel.getSecurityMode(targetUserId); finish = true; // no security required
if (SecurityMode.None == securityMode) { eventSubtype = BOUNCER_DISMISS_NONE_SECURITY;
finish = true; // no security required
eventSubtype = BOUNCER_DISMISS_NONE_SECURITY;
} else {
showSecurityScreen(securityMode); // switch to the alternate security view
}
} else if (authenticated) { } else if (authenticated) {
switch (mCurrentSecuritySelection) { switch (mCurrentSecuritySelection) {
case Pattern: case Pattern: