summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2022-05-05 02:19:42 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2022-05-05 02:19:42 +0000
commitf1e8478cd94a3c72873cc9f9c4e180720fb0988e (patch)
tree312308fbd653037e3055d01a7e678ade9e03e7f5
parentcdf11f043ab6c1cea3bf8b9b2c1747d6a6e6c470 (diff)
parent30a5aa00f92aadde133272e7bf95eb6e3742a5ce (diff)
Merge "Remove inSplitScreen function" into tm-dev am: 76ebae0c6c am: 30a5aa00f9
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/17976183 Change-Id: I570b184203cf6215e4408c5d0c28154a2c0ed857 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--services/core/java/com/android/server/wm/RecentsAnimationController.java17
-rw-r--r--services/core/java/com/android/server/wm/Task.java8
-rw-r--r--services/core/java/com/android/server/wm/TaskDisplayArea.java25
-rw-r--r--services/core/java/com/android/server/wm/WindowState.java4
4 files changed, 16 insertions, 38 deletions
diff --git a/services/core/java/com/android/server/wm/RecentsAnimationController.java b/services/core/java/com/android/server/wm/RecentsAnimationController.java
index efe617d86d4e..2bae59a93048 100644
--- a/services/core/java/com/android/server/wm/RecentsAnimationController.java
+++ b/services/core/java/com/android/server/wm/RecentsAnimationController.java
@@ -19,7 +19,6 @@ package com.android.server.wm;
import static android.app.ActivityTaskManager.INVALID_TASK_ID;
import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME;
import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;
-import static android.content.res.Configuration.ORIENTATION_LANDSCAPE;
import static android.view.RemoteAnimationTarget.MODE_CLOSING;
import static android.view.RemoteAnimationTarget.MODE_OPENING;
import static android.view.WindowManager.INPUT_CONSUMER_RECENTS_ANIMATION;
@@ -602,22 +601,12 @@ public class RecentsAnimationController implements DeathRecipient {
|| mDisplayContent.getAsyncRotationController() != null) {
return;
}
- boolean shouldTranslateNavBar = false;
- final boolean isDisplayLandscape =
- mDisplayContent.getConfiguration().orientation == ORIENTATION_LANDSCAPE;
for (int i = mPendingAnimations.size() - 1; i >= 0; i--) {
final TaskAnimationAdapter adapter = mPendingAnimations.get(i);
final Task task = adapter.mTask;
- final TaskFragment adjacentTask = task.getRootTask().getAdjacentTaskFragment();
- final boolean inSplitScreen = task.inSplitScreen();
- if (task.isActivityTypeHomeOrRecents()
- // Skip if the task is in split screen and in landscape.
- || (inSplitScreen && isDisplayLandscape)
- // Skip if the task is the top task in split screen.
- || (inSplitScreen && task.getBounds().top < adjacentTask.getBounds().top)) {
+ if (task.isActivityTypeHomeOrRecents()) {
continue;
}
- shouldTranslateNavBar = inSplitScreen;
mNavBarAttachedApp = task.getTopVisibleActivity();
break;
}
@@ -630,9 +619,7 @@ public class RecentsAnimationController implements DeathRecipient {
navWindow.mToken.cancelAnimation();
final SurfaceControl.Transaction t = navWindow.mToken.getPendingTransaction();
final SurfaceControl navSurfaceControl = navWindow.mToken.getSurfaceControl();
- if (shouldTranslateNavBar) {
- navWindow.setSurfaceTranslationY(-mNavBarAttachedApp.getBounds().top);
- }
+ navWindow.setSurfaceTranslationY(-mNavBarAttachedApp.getBounds().top);
t.reparent(navSurfaceControl, mNavBarAttachedApp.getSurfaceControl());
t.show(navSurfaceControl);
diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java
index 718ce2870f10..60c280cb61f9 100644
--- a/services/core/java/com/android/server/wm/Task.java
+++ b/services/core/java/com/android/server/wm/Task.java
@@ -28,7 +28,6 @@ import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED;
import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
-import static android.app.WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW;
import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED;
import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;
import static android.app.WindowConfiguration.activityTypeToString;
@@ -1720,13 +1719,6 @@ class Task extends TaskFragment {
&& (topTask == null || topTask.supportsSplitScreenWindowingModeInner(tda));
}
- /** Returns {@code true} if this task is currently in split-screen. */
- boolean inSplitScreen() {
- return getWindowingMode() == WINDOWING_MODE_MULTI_WINDOW
- && getCreatedByOrganizerTask() != null
- && getCreatedByOrganizerTask().getAdjacentTaskFragment() != null;
- }
-
private boolean supportsSplitScreenWindowingModeInner(@Nullable TaskDisplayArea tda) {
return super.supportsSplitScreenWindowingMode()
&& mAtmService.mSupportsSplitScreenMultiWindow
diff --git a/services/core/java/com/android/server/wm/TaskDisplayArea.java b/services/core/java/com/android/server/wm/TaskDisplayArea.java
index 1176182ede50..ce406e4ecb20 100644
--- a/services/core/java/com/android/server/wm/TaskDisplayArea.java
+++ b/services/core/java/com/android/server/wm/TaskDisplayArea.java
@@ -1163,20 +1163,21 @@ final class TaskDisplayArea extends DisplayArea<WindowContainer> {
}
}
- // For a better split UX, If a task is launching from a created-by-organizer task, it should
- // be launched into the same created-by-organizer task as well. Unless, the candidate task
- // is already positioned in the split.
- Task preferredRootInSplit = sourceTask != null && sourceTask.inSplitScreen()
- ? sourceTask.getCreatedByOrganizerTask() : null;
- if (preferredRootInSplit != null) {
- if (candidateTask != null) {
- final Task candidateRoot = candidateTask.getCreatedByOrganizerTask();
- if (candidateRoot != null && candidateRoot != preferredRootInSplit
- && preferredRootInSplit == candidateRoot.getAdjacentTaskFragment()) {
- preferredRootInSplit = candidateRoot;
+ // If a task is launching from a created-by-organizer task, it should be launched into the
+ // same created-by-organizer task as well. Unless, the candidate task is already positioned
+ // in the another adjacent task.
+ if (sourceTask != null) {
+ Task launchTarget = sourceTask.getCreatedByOrganizerTask();
+ if (launchTarget != null && launchTarget.getAdjacentTaskFragment() != null) {
+ if (candidateTask != null) {
+ final Task candidateRoot = candidateTask.getCreatedByOrganizerTask();
+ if (candidateRoot != null && candidateRoot != launchTarget
+ && launchTarget == candidateRoot.getAdjacentTaskFragment()) {
+ launchTarget = candidateRoot;
+ }
}
+ return launchTarget;
}
- return preferredRootInSplit;
}
return null;
diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java
index cd19f64ba12e..3b282aada7ae 100644
--- a/services/core/java/com/android/server/wm/WindowState.java
+++ b/services/core/java/com/android/server/wm/WindowState.java
@@ -3639,13 +3639,11 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
final int requested = mLastRequestedExclusionHeight[side];
final int granted = mLastGrantedExclusionHeight[side];
- final boolean inSplitScreen = getTask() != null && getTask().inSplitScreen();
-
FrameworkStatsLog.write(FrameworkStatsLog.EXCLUSION_RECT_STATE_CHANGED,
mAttrs.packageName, requested, requested - granted /* rejected */,
side + 1 /* Sides are 1-indexed in atoms.proto */,
(getConfiguration().orientation == ORIENTATION_LANDSCAPE),
- inSplitScreen, (int) duration);
+ false /* (deprecated param) inSplitscreen */, (int) duration);
}
private void initExclusionRestrictions() {