From 7bc33c0d252b190af8258c827de8a8a5382210db Mon Sep 17 00:00:00 2001 From: Wale Ogunwale Date: Tue, 6 Jan 2015 16:45:04 -0800 Subject: [PATCH] Bring task with root activity to front when launching from recents. Change makes sure we cover all cases where a task should be brought to front if it already has a root activity and we are launching from recents. Bug: 18846206 Change-Id: I2e67a4c163c5a5ed6784ed620583f85d9c6ed731 --- .../server/am/ActivityManagerService.java | 20 ++++++------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 022ef4432b439..ed16d2e64966f 100755 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -3619,6 +3619,10 @@ public final class ActivityManagerService extends ActivityManagerNative if (task == null) { throw new IllegalArgumentException("Task " + taskId + " not found."); } + if (task.getRootActivity() != null) { + moveTaskToFrontLocked(task.taskId, 0, null); + return ActivityManager.START_TASK_TO_FRONT; + } callingUid = task.mCallingUid; callingPackage = task.mCallingPackage; intent = task.intent; @@ -19443,20 +19447,8 @@ public final class ActivityManagerService extends ActivityManagerNative @Override public void moveToFront() { checkCaller(); - - final TaskRecord tr; - synchronized (ActivityManagerService.this) { - tr = recentTaskForIdLocked(mTaskId); - if (tr == null) { - throw new IllegalArgumentException("Unable to find task ID " + mTaskId); - } - if (tr.getRootActivity() != null) { - moveTaskToFrontLocked(tr.taskId, 0, null); - return; - } - } - - startActivityFromRecentsInner(tr.taskId, null); + // Will bring task to front if it already has a root activity. + startActivityFromRecentsInner(mTaskId, null); } @Override