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

This commit is contained in:
TreeHugger Robot
2016-07-07 20:31:35 +00:00
committed by Android (Google) Code Review
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;
public PreBootBroadcaster(ActivityManagerService service, int userId,
ProgressReporter progress) {
ProgressReporter progress, boolean quiet) {
mService = service;
mUserId = userId;
mProgress = progress;
@@ -68,7 +68,9 @@ public abstract class PreBootBroadcaster extends IIntentReceiver.Stub {
mTargets = mService.mContext.getPackageManager().queryBroadcastReceiversAsUser(mIntent,
MATCH_SYSTEM_ONLY, UserHandle.of(userId));
mHandler.obtainMessage(MSG_SHOW).sendToTarget();
if (!quiet) {
mHandler.obtainMessage(MSG_SHOW).sendToTarget();
}
}
public void sendNext() {

View File

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

View File

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