Merge "Suppress PRE_BOOT notifications for some profiles." into nyc-mr1-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
99f70388ff
@@ -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() {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user