summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/java/com/android/server/am/ActivityManagerService.java10
-rw-r--r--services/java/com/android/server/am/ActivityStack.java10
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);