Handle auto-unlocked managed profiles.

There are cases where a managed profile provides an auth challenge
which is really an automatic unlock as a side effect from the parent
profile being unlocked.  Detect this case and suppress PRE_BOOT
notifications.

Bug: 29931646
Change-Id: I801605b0b59a7924bfe7f433415d9704664a5cbc
This commit is contained in:
Jeff Sharkey
2016-07-18 10:11:36 -06:00
parent 142c4f7a9f
commit ba0665705b

View File

@@ -352,9 +352,15 @@ final class UserController {
final UserInfo info = getUserInfo(userId);
if (!Objects.equals(info.lastLoggedInFingerprint, Build.FINGERPRINT)) {
// Suppress double notifications for managed profiles that
// were unlocked automatically (no challenge token required)
// as part of their parent user being unlocked.
final boolean quiet = info.isManagedProfile() && !uss.tokenProvided;
// were unlocked automatically as part of their parent user
// being unlocked.
final boolean quiet;
if (info.isManagedProfile()) {
quiet = !uss.tokenProvided
|| !mLockPatternUtils.isSeparateProfileChallengeEnabled(userId);
} else {
quiet = false;
}
new PreBootBroadcaster(mService, userId, null, quiet) {
@Override
public void onFinished() {