summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorChris Li <lihongyu@google.com>2021-01-29 12:43:07 -0800
committerChris Li <lihongyu@google.com>2021-01-31 17:58:59 -0800
commitacbe872a5ffd8dfe7bb2fd1c7aa405796c047271 (patch)
tree27a75c0fec595f127c58e84cf164ca79d5b19d34 /core/java/android
parent544ee86b0c9989a3f840d60d49e824e7255579e4 (diff)
Allow non-resizable apps in split-screen (6/n)
Trigger TaskInfoChanged when the direct top Activity of the organized Task enters or exits size compat mode. This is the prerequisite to move SizeCompatModeActivityController from system ui to shell. After that, we can render the size compat restart button on Task Surface similar to split screen divider. Bug: 176061101 Bug: 178327644 Test: atest WmTests:SizeCompatTests Test: atest WmTests:WindowOrganizerTests Change-Id: I0e328796095bc17d40a5ef2f354f291c12ffa04a
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/app/TaskInfo.java20
1 files changed, 19 insertions, 1 deletions
diff --git a/core/java/android/app/TaskInfo.java b/core/java/android/app/TaskInfo.java
index 623c878d7bfa..e31e0243cae0 100644
--- a/core/java/android/app/TaskInfo.java
+++ b/core/java/android/app/TaskInfo.java
@@ -36,7 +36,6 @@ import android.window.TaskSnapshot;
import android.window.WindowContainerToken;
import java.util.ArrayList;
-import java.util.List;
import java.util.Objects;
/**
@@ -180,6 +179,19 @@ public class TaskInfo {
public ActivityInfo topActivityInfo;
/**
+ * The top activity in this task.
+ * @hide
+ */
+ @Nullable
+ public IBinder topActivityToken;
+
+ /**
+ * Whether the direct top activity is in size compat mode on foreground.
+ * @hide
+ */
+ public boolean topActivityInSizeCompat;
+
+ /**
* Whether this task is resizable. Unlike {@link #resizeMode} (which is what the top activity
* supports), this is what the system actually uses for resizability based on other policy and
* developer options.
@@ -356,6 +368,8 @@ public class TaskInfo {
parentTaskId = source.readInt();
isFocused = source.readBoolean();
isVisible = source.readBoolean();
+ topActivityToken = source.readStrongBinder();
+ topActivityInSizeCompat = source.readBoolean();
}
/**
@@ -391,6 +405,8 @@ public class TaskInfo {
dest.writeInt(parentTaskId);
dest.writeBoolean(isFocused);
dest.writeBoolean(isVisible);
+ dest.writeStrongBinder(topActivityToken);
+ dest.writeBoolean(topActivityInSizeCompat);
}
@Override
@@ -415,6 +431,8 @@ public class TaskInfo {
+ " parentTaskId=" + parentTaskId
+ " isFocused=" + isFocused
+ " isVisible=" + isVisible
+ + " topActivityToken=" + topActivityToken
+ + " topActivityInSizeCompat=" + topActivityInSizeCompat
+ "}";
}
}