diff options
author | Kenny Guy <kennyguy@google.com> | 2015-05-05 15:36:49 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-05-05 15:36:51 +0000 |
commit | e02b7868c6c8f856a21f36569a77dab7f1cc7c78 (patch) | |
tree | 67dfa9c55597015c0478b1f47be2caf8bcfed86b | |
parent | 4a64b19f239b6bff82a032329ce5781681843044 (diff) | |
parent | 4c5067ea8e33974c81fb69f3565dd93634bea132 (diff) | |
download | frameworks_base-e02b7868c6c8f856a21f36569a77dab7f1cc7c78.zip frameworks_base-e02b7868c6c8f856a21f36569a77dab7f1cc7c78.tar.gz frameworks_base-e02b7868c6c8f856a21f36569a77dab7f1cc7c78.tar.bz2 |
Merge "Call profile changed in cases were focused activity is nulled." into mnc-dev
-rw-r--r-- | services/core/java/com/android/server/am/ActivityManagerService.java | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 42b27af..82dbfee 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -414,6 +414,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. */ private final RecentTasks mRecentTasks; @@ -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"); } } |