diff options
| -rw-r--r-- | services/java/com/android/server/am/ActivityManagerService.java | 10 | ||||
| -rw-r--r-- | services/java/com/android/server/am/ActivityStack.java | 10 |
2 files changed, 16 insertions, 4 deletions
diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java index 8b0cdf83ae20..41e09fe77321 100644 --- a/services/java/com/android/server/am/ActivityManagerService.java +++ b/services/java/com/android/server/am/ActivityManagerService.java @@ -7549,6 +7549,7 @@ public final class ActivityManagerService extends ActivityManagerNative } } + @Override public void setAlwaysFinish(boolean enabled) { enforceCallingPermission(android.Manifest.permission.SET_ALWAYS_FINISH, "setAlwaysFinish()"); @@ -7562,6 +7563,7 @@ public final class ActivityManagerService extends ActivityManagerNative } } + @Override public void setActivityController(IActivityController controller) { enforceCallingPermission(android.Manifest.permission.SET_ACTIVITY_WATCHER, "setActivityController()"); @@ -7570,6 +7572,7 @@ public final class ActivityManagerService extends ActivityManagerNative } } + @Override public void setUserIsMonkey(boolean userIsMonkey) { synchronized (this) { synchronized (mPidsSelfLocked) { @@ -7587,6 +7590,7 @@ public final class ActivityManagerService extends ActivityManagerNative } } + @Override public boolean isUserAMonkey() { synchronized (this) { // If there is a controller also implies the user is a monkey. @@ -12637,7 +12641,7 @@ public final class ActivityManagerService extends ActivityManagerNative // activity to check if its configuration needs to change. starting = mainStack.topRunningActivityLocked(null); } - + if (starting != null) { kept = mainStack.ensureActivityConfigurationLocked(starting, changes); // And we need to make sure at this point that all other activities @@ -12648,7 +12652,7 @@ public final class ActivityManagerService extends ActivityManagerNative if (values != null && mWindowManager != null) { mWindowManager.setNewConfiguration(mConfiguration); } - + return kept; } @@ -12664,7 +12668,7 @@ public final class ActivityManagerService extends ActivityManagerNative return !(config.keyboard == Configuration.KEYBOARD_NOKEYS && config.touchscreen == Configuration.TOUCHSCREEN_NOTOUCH); } - + /** * Save the locale. You must be inside a synchronized (this) block. */ diff --git a/services/java/com/android/server/am/ActivityStack.java b/services/java/com/android/server/am/ActivityStack.java index 1406909e3b5b..c20fe0ab0448 100644 --- a/services/java/com/android/server/am/ActivityStack.java +++ b/services/java/com/android/server/am/ActivityStack.java @@ -450,6 +450,14 @@ final class ActivityStack { return null; } + final TaskRecord topTask() { + final int size = mTaskHistory.size(); + if (size > 0) { + return mTaskHistory.get(size - 1); + } + return null; + } + TaskRecord taskForIdLocked(int id) { for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) { final TaskRecord task = mTaskHistory.get(taskNdx); @@ -1227,7 +1235,7 @@ final class ActivityStack { return false; } - if (prev != null && prev.mLaunchHomeTaskNext && prev.finishing && + if (prev != null && prev.mLaunchHomeTaskNext && prev.finishing && topTask() == prev.task && prev.task.getTopActivity() == null) { if (DEBUG_STACK) mStackSupervisor.validateTopActivitiesLocked(); return mStackSupervisor.resumeHomeActivity(prev); |