summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorCraig Mautner <cmautner@google.com>2014-02-22 07:51:02 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-02-22 07:51:02 +0000
commit92a507986af512d248a1987971b59911406721a9 (patch)
tree0ce24950b9d536c36fc6ece27251ea72a7fd4e0f /services
parent3196d811d0efc21efd57fed307cfd348492c3074 (diff)
parent3dc57b39f2a87fe3692b5606de2b0c0693fc485c (diff)
downloadframeworks_base-92a507986af512d248a1987971b59911406721a9.zip
frameworks_base-92a507986af512d248a1987971b59911406721a9.tar.gz
frameworks_base-92a507986af512d248a1987971b59911406721a9.tar.bz2
am 3dc57b39: am c004c9a8: am ffda4648: Merge "Fixes for ActivityView on home activity" into klp-modular-dev
* commit '3dc57b39f2a87fe3692b5606de2b0c0693fc485c': Fixes for ActivityView on home activity
Diffstat (limited to 'services')
-rw-r--r--services/core/java/com/android/server/am/ActivityStackSupervisor.java25
1 files changed, 18 insertions, 7 deletions
diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
index 6ed30d9..3a837e8 100644
--- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java
+++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
@@ -1376,8 +1376,15 @@ public final class ActivityStackSupervisor implements DisplayListener {
void setFocusedStack(ActivityRecord r) {
if (r != null) {
- final boolean isHomeActivity =
- !r.isApplicationActivity() || (r.task != null && !r.task.isApplicationTask());
+ final TaskRecord task = r.task;
+ boolean isHomeActivity = !r.isApplicationActivity();
+ if (!isHomeActivity && task != null) {
+ isHomeActivity = !task.isApplicationTask();
+ }
+ if (!isHomeActivity && task != null) {
+ final ActivityRecord parent = task.stack.mActivityContainer.mParentActivity;
+ isHomeActivity = parent != null && parent.isHomeActivity();
+ }
moveHomeStack(isHomeActivity);
}
}
@@ -2059,17 +2066,21 @@ public final class ActivityStackSupervisor implements DisplayListener {
if (targetStack == null) {
targetStack = getFocusedStack();
}
+ // Do targetStack first.
boolean result = false;
+ if (isFrontStack(targetStack)) {
+ result = targetStack.resumeTopActivityLocked(target, targetOptions);
+ }
for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
final ArrayList<ActivityStack> stacks = mActivityDisplays.valueAt(displayNdx).mStacks;
for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) {
final ActivityStack stack = stacks.get(stackNdx);
+ if (stack == targetStack) {
+ // Already started above.
+ continue;
+ }
if (isFrontStack(stack)) {
- if (stack == targetStack) {
- result = stack.resumeTopActivityLocked(target, targetOptions);
- } else {
- stack.resumeTopActivityLocked(null);
- }
+ stack.resumeTopActivityLocked(null);
}
}
}