am e02b7868: Merge "Call profile changed in cases were focused activity is nulled." into mnc-dev

* commit 'e02b7868c6c8f856a21f36569a77dab7f1cc7c78':
  Call profile changed in cases were focused activity is nulled.
This commit is contained in:
Kenny Guy
2015-05-05 18:46:06 +00:00
committed by Android Git Automerger

View File

@@ -413,6 +413,11 @@ public final class ActivityManagerService extends ActivityManagerNative
*/
ActivityRecord mFocusedActivity = null;
/**
* User id of the last activity mFocusedActivity was set to.
*/
private int mLastFocusedUserId;
/**
* List of intents that were used to start the most recent tasks.
*/
@@ -2561,19 +2566,32 @@ public final class ActivityManagerService extends ActivityManagerNative
mWindowManager.setFocusedApp(r.appToken, true);
}
applyUpdateLockStateLocked(r);
if (last != null && last.userId != mFocusedActivity.userId) {
if (mFocusedActivity.userId != mLastFocusedUserId) {
mHandler.removeMessages(FOREGROUND_PROFILE_CHANGED_MSG);
mHandler.sendMessage(mHandler.obtainMessage(FOREGROUND_PROFILE_CHANGED_MSG,
mFocusedActivity.userId, 0));
mLastFocusedUserId = mFocusedActivity.userId;
}
}
EventLog.writeEvent(EventLogTags.AM_FOCUSED_ACTIVITY, mCurrentUserId,
EventLog.writeEvent(EventLogTags.AM_FOCUSED_ACTIVITY,
mFocusedActivity == null ? -1 : mFocusedActivity.userId,
mFocusedActivity == null ? "NULL" : mFocusedActivity.shortComponentName);
}
final void clearFocusedActivity(ActivityRecord r) {
if (mFocusedActivity == r) {
ActivityStack stack = mStackSupervisor.getFocusedStack();
if (stack != null) {
ActivityRecord top = stack.topActivity();
if (top != null && top.userId != mLastFocusedUserId) {
mHandler.removeMessages(FOREGROUND_PROFILE_CHANGED_MSG);
mHandler.sendMessage(mHandler.obtainMessage(FOREGROUND_PROFILE_CHANGED_MSG,
top.userId, 0));
mLastFocusedUserId = top.userId;
}
}
mFocusedActivity = null;
EventLog.writeEvent(EventLogTags.AM_FOCUSED_ACTIVITY, -1, "NULL");
}
}