diff options
3 files changed, 34 insertions, 24 deletions
diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java index 62520d5f8209..bdfa44709560 100644 --- a/services/java/com/android/server/am/ActivityManagerService.java +++ b/services/java/com/android/server/am/ActivityManagerService.java @@ -198,32 +198,32 @@ public final class ActivityManagerService extends ActivityManagerNative static final String TAG_MU = "ActivityManagerServiceMU"; static final boolean DEBUG = false; static final boolean localLOGV = DEBUG; - static final boolean DEBUG_SWITCH = localLOGV || false; - static final boolean DEBUG_TASKS = localLOGV || false; - static final boolean DEBUG_THUMBNAILS = localLOGV || false; - static final boolean DEBUG_PAUSE = localLOGV || false; - static final boolean DEBUG_OOM_ADJ = localLOGV || false; - static final boolean DEBUG_TRANSITION = localLOGV || false; + static final boolean DEBUG_BACKUP = localLOGV || false; static final boolean DEBUG_BROADCAST = localLOGV || false; - static final boolean DEBUG_BACKGROUND_BROADCAST = DEBUG_BROADCAST || false; static final boolean DEBUG_BROADCAST_LIGHT = DEBUG_BROADCAST || false; - static final boolean DEBUG_SERVICE = localLOGV || false; - static final boolean DEBUG_SERVICE_EXECUTING = localLOGV || false; - static final boolean DEBUG_VISBILITY = localLOGV || false; - static final boolean DEBUG_PROCESSES = localLOGV || false; - static final boolean DEBUG_PROCESS_OBSERVERS = localLOGV || false; + static final boolean DEBUG_BACKGROUND_BROADCAST = DEBUG_BROADCAST || false; static final boolean DEBUG_CLEANUP = localLOGV || false; - static final boolean DEBUG_PROVIDER = localLOGV || false; - static final boolean DEBUG_URI_PERMISSION = localLOGV || false; - static final boolean DEBUG_USER_LEAVING = localLOGV || false; - static final boolean DEBUG_RESULTS = localLOGV || false; - static final boolean DEBUG_BACKUP = localLOGV || false; static final boolean DEBUG_CONFIGURATION = localLOGV || false; + static final boolean DEBUG_IMMERSIVE = localLOGV || false; + static final boolean DEBUG_MU = localLOGV || false; + static final boolean DEBUG_OOM_ADJ = localLOGV || false; + static final boolean DEBUG_PAUSE = localLOGV || false; static final boolean DEBUG_POWER = localLOGV || false; static final boolean DEBUG_POWER_QUICK = DEBUG_POWER || false; - static final boolean DEBUG_MU = localLOGV || false; - static final boolean DEBUG_IMMERSIVE = localLOGV || false; - static final boolean DEBUG_STACK = localLOGV || true; + static final boolean DEBUG_PROCESS_OBSERVERS = localLOGV || false; + static final boolean DEBUG_PROCESSES = localLOGV || false; + static final boolean DEBUG_PROVIDER = localLOGV || false; + static final boolean DEBUG_RESULTS = localLOGV || false; + static final boolean DEBUG_SERVICE = localLOGV || false; + static final boolean DEBUG_SERVICE_EXECUTING = localLOGV || false; + static final boolean DEBUG_STACK = localLOGV || false; + static final boolean DEBUG_SWITCH = localLOGV || false; + static final boolean DEBUG_TASKS = localLOGV || false; + static final boolean DEBUG_THUMBNAILS = localLOGV || false; + static final boolean DEBUG_TRANSITION = localLOGV || false; + static final boolean DEBUG_URI_PERMISSION = localLOGV || false; + static final boolean DEBUG_USER_LEAVING = localLOGV || false; + static final boolean DEBUG_VISBILITY = localLOGV || false; static final boolean VALIDATE_TOKENS = true; static final boolean SHOW_ACTIVITY_START_TIME = true; @@ -6281,6 +6281,7 @@ public final class ActivityManagerService extends ActivityManagerNative enforceCallingPermission(android.Manifest.permission.REORDER_TASKS, "moveTaskToFront()"); + if (DEBUG_STACK) Slog.d(TAG, "moveTaskToFront: moving task=" + task); synchronized(this) { if (!checkAppSwitchAllowedLocked(Binder.getCallingPid(), Binder.getCallingUid(), "Task to front")) { @@ -6305,6 +6306,7 @@ public final class ActivityManagerService extends ActivityManagerNative synchronized(this) { TaskRecord tr = recentTaskForIdLocked(taskId); if (tr != null) { + if (DEBUG_STACK) Slog.d(TAG, "moveTaskToBack: moving task=" + tr); ActivityStack stack = tr.stack; if (stack.mResumedActivity != null && stack.mResumedActivity.task == tr) { if (!checkAppSwitchAllowedLocked(Binder.getCallingPid(), @@ -6383,6 +6385,8 @@ public final class ActivityManagerService extends ActivityManagerNative new RuntimeException("here").fillInStackTrace()); } synchronized (this) { + if (DEBUG_STACK) Slog.d(TAG, "moveTaskToStack: moving task=" + taskId + " to stackId=" + + stackId + " toTop=" + toTop); mStackSupervisor.moveTaskToStack(taskId, stackId, toTop); } } diff --git a/services/java/com/android/server/am/ActivityStackSupervisor.java b/services/java/com/android/server/am/ActivityStackSupervisor.java index 8224c88abb8e..a4fd7ad65474 100644 --- a/services/java/com/android/server/am/ActivityStackSupervisor.java +++ b/services/java/com/android/server/am/ActivityStackSupervisor.java @@ -1186,7 +1186,8 @@ public final class ActivityStackSupervisor { } ActivityStack getCorrectStack(ActivityRecord r) { - if (r.isApplicationActivity() || (r.task != null && r.task.isApplicationTask())) { + final TaskRecord task = r.task; + if (r.isApplicationActivity() || (task != null && task.isApplicationTask())) { int stackNdx; for (stackNdx = mStacks.size() - 1; stackNdx > 0; --stackNdx) { if (mStacks.get(stackNdx).mCurrentUser == mCurrentUser) { @@ -1199,6 +1200,9 @@ public final class ActivityStackSupervisor { StackBox.TASK_STACK_GOES_OVER, 1.0f); mFocusedStack = getStack(stackId); } + if (task != null) { + mFocusedStack = task.stack; + } return mFocusedStack; } return mHomeStack; @@ -1649,6 +1653,7 @@ public final class ActivityStackSupervisor { ActivityStack.logStartActivity(EventLogTags.AM_CREATE_ACTIVITY, r, r.task); setLaunchHomeTaskNextFlag(sourceRecord, r, targetStack); targetStack.startActivityLocked(r, newTask, doResume, keepCurTransition, options); + mService.setFocusedActivityLocked(r); return ActivityManager.START_SUCCESS; } @@ -1867,6 +1872,8 @@ public final class ActivityStackSupervisor { void findTaskToMoveToFrontLocked(int taskId, int flags, Bundle options) { for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) { if (mStacks.get(stackNdx).findTaskToMoveToFrontLocked(taskId, flags, options)) { + if (DEBUG_STACK) Slog.d(TAG, "findTaskToMoveToFront: moved to front of stack=" + + mStacks.get(stackNdx)); return; } } @@ -2053,7 +2060,6 @@ public final class ActivityStackSupervisor { final ActivityStack stack = r.task.stack; if (isFrontStack(stack)) { mService.updateUsageStats(r, true); - mService.setFocusedActivityLocked(r); } if (allResumedActivitiesComplete()) { ensureActivitiesVisibleLocked(null, 0); diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java index afbc4a940bc0..fd065351c56f 100644 --- a/services/java/com/android/server/wm/WindowManagerService.java +++ b/services/java/com/android/server/wm/WindowManagerService.java @@ -3239,8 +3239,7 @@ public class WindowManagerService extends IWindowManager.Stub if (taskNdx >= 0 || t >= 0) { Slog.w(TAG, "validateAppTokens: Mismatch! ActivityManager=" + tasks); - Slog.w(TAG, "validateAppTokens: Mismatch! WindowManager=" - + displayContent.getTasks()); + Slog.w(TAG, "validateAppTokens: Mismatch! WindowManager=" + localTasks); Slog.w(TAG, "validateAppTokens: Mismatch! Callers=" + Debug.getCallers(4)); } } @@ -4845,6 +4844,7 @@ public class WindowManagerService extends IWindowManager.Stub synchronized (mWindowMap) { Task task = mTaskIdToTask.get(taskId); if (task == null) { + if (DEBUG_STACK) Slog.i(TAG, "removeTask: could not find taskId=" + taskId); return; } final TaskStack stack = task.mStack; |