Merge \"Suppress PRE_BOOT notifications for some profiles.\" into nyc-mr1-dev

am: 99f70388ff

Change-Id: I977d5e4073ce57809ffb2b2e324b133c52341c4f
This commit is contained in:
Jeff Sharkey
2016-07-07 20:48:43 +00:00
committed by android-build-merger
3 changed files with 11 additions and 3 deletions

View File

@@ -57,7 +57,7 @@ public abstract class PreBootBroadcaster extends IIntentReceiver.Stub {
private int mIndex = 0; private int mIndex = 0;
public PreBootBroadcaster(ActivityManagerService service, int userId, public PreBootBroadcaster(ActivityManagerService service, int userId,
ProgressReporter progress) { ProgressReporter progress, boolean quiet) {
mService = service; mService = service;
mUserId = userId; mUserId = userId;
mProgress = progress; mProgress = progress;
@@ -68,7 +68,9 @@ public abstract class PreBootBroadcaster extends IIntentReceiver.Stub {
mTargets = mService.mContext.getPackageManager().queryBroadcastReceiversAsUser(mIntent, mTargets = mService.mContext.getPackageManager().queryBroadcastReceiversAsUser(mIntent,
MATCH_SYSTEM_ONLY, UserHandle.of(userId)); MATCH_SYSTEM_ONLY, UserHandle.of(userId));
mHandler.obtainMessage(MSG_SHOW).sendToTarget(); if (!quiet) {
mHandler.obtainMessage(MSG_SHOW).sendToTarget();
}
} }
public void sendNext() { public void sendNext() {

View File

@@ -351,7 +351,11 @@ final class UserController {
// PRE_BOOT receivers are finished to avoid ANR'ing apps // PRE_BOOT receivers are finished to avoid ANR'ing apps
final UserInfo info = getUserInfo(userId); final UserInfo info = getUserInfo(userId);
if (!Objects.equals(info.lastLoggedInFingerprint, Build.FINGERPRINT)) { if (!Objects.equals(info.lastLoggedInFingerprint, Build.FINGERPRINT)) {
new PreBootBroadcaster(mService, userId, null) { // 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;
new PreBootBroadcaster(mService, userId, null, quiet) {
@Override @Override
public void onFinished() { public void onFinished() {
finishUserUnlockedCompleted(uss); finishUserUnlockedCompleted(uss);
@@ -972,6 +976,7 @@ final class UserController {
return false; return false;
} else { } else {
uss.mUnlockProgress.addListener(listener); uss.mUnlockProgress.addListener(listener);
uss.tokenProvided = (token != null);
} }
finishUserUnlocking(uss); finishUserUnlocking(uss);

View File

@@ -54,6 +54,7 @@ public final class UserState {
public int state = STATE_BOOTING; public int state = STATE_BOOTING;
public int lastState = STATE_BOOTING; public int lastState = STATE_BOOTING;
public boolean switching; public boolean switching;
public boolean tokenProvided;
/** /**
* The last time that a provider was reported to usage stats as being brought to important * The last time that a provider was reported to usage stats as being brought to important