summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorLouis Chang <louischang@google.com>2021-09-09 13:32:57 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2021-09-09 13:32:57 +0000
commitc08fc30d0e352cf07e1b1c58a137ff64e8d5bc7e (patch)
tree9e7c56a7762abb9b711ce8d35f8429385b0061d6 /core/java/android
parent2190ea889530be415dea0a42c2ece3ae32efe676 (diff)
parentc5024fc2b453b80db43cf56130f8e01150e343be (diff)
Merge "Not removing primary TaskFragment when clear task" into sc-v2-dev
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/window/TaskFragmentInfo.java20
1 files changed, 18 insertions, 2 deletions
diff --git a/core/java/android/window/TaskFragmentInfo.java b/core/java/android/window/TaskFragmentInfo.java
index b55372b08b3a..165dcdf3a836 100644
--- a/core/java/android/window/TaskFragmentInfo.java
+++ b/core/java/android/window/TaskFragmentInfo.java
@@ -71,11 +71,18 @@ public final class TaskFragmentInfo implements Parcelable {
/** Relative position of the fragment's top left corner in the parent container. */
private final Point mPositionInParent;
+ /**
+ * Whether the last running activity in the TaskFragment was finished due to clearing task while
+ * launching an activity in the host Task.
+ */
+ private final boolean mIsTaskClearedForReuse;
+
/** @hide */
public TaskFragmentInfo(
@NonNull IBinder fragmentToken, @NonNull WindowContainerToken token,
@NonNull Configuration configuration, boolean isEmpty, int runningActivityCount,
- boolean isVisible, @NonNull List<IBinder> activities, @NonNull Point positionInParent) {
+ boolean isVisible, @NonNull List<IBinder> activities, @NonNull Point positionInParent,
+ boolean isTaskClearedForReuse) {
mFragmentToken = requireNonNull(fragmentToken);
mToken = requireNonNull(token);
mConfiguration.setTo(configuration);
@@ -84,6 +91,7 @@ public final class TaskFragmentInfo implements Parcelable {
mIsVisible = isVisible;
mActivities.addAll(activities);
mPositionInParent = requireNonNull(positionInParent);
+ mIsTaskClearedForReuse = isTaskClearedForReuse;
}
@NonNull
@@ -128,6 +136,10 @@ public final class TaskFragmentInfo implements Parcelable {
return mPositionInParent;
}
+ public boolean isTaskClearedForReuse() {
+ return mIsTaskClearedForReuse;
+ }
+
@WindowingMode
public int getWindowingMode() {
return mConfiguration.windowConfiguration.getWindowingMode();
@@ -149,7 +161,8 @@ public final class TaskFragmentInfo implements Parcelable {
&& mIsVisible == that.mIsVisible
&& getWindowingMode() == that.getWindowingMode()
&& mActivities.equals(that.mActivities)
- && mPositionInParent.equals(that.mPositionInParent);
+ && mPositionInParent.equals(that.mPositionInParent)
+ && mIsTaskClearedForReuse == that.mIsTaskClearedForReuse;
}
private TaskFragmentInfo(Parcel in) {
@@ -161,6 +174,7 @@ public final class TaskFragmentInfo implements Parcelable {
mIsVisible = in.readBoolean();
in.readBinderList(mActivities);
mPositionInParent = requireNonNull(in.readTypedObject(Point.CREATOR));
+ mIsTaskClearedForReuse = in.readBoolean();
}
/** @hide */
@@ -174,6 +188,7 @@ public final class TaskFragmentInfo implements Parcelable {
dest.writeBoolean(mIsVisible);
dest.writeBinderList(mActivities);
dest.writeTypedObject(mPositionInParent, flags);
+ dest.writeBoolean(mIsTaskClearedForReuse);
}
@NonNull
@@ -199,6 +214,7 @@ public final class TaskFragmentInfo implements Parcelable {
+ " runningActivityCount=" + mRunningActivityCount
+ " isVisible=" + mIsVisible
+ " positionInParent=" + mPositionInParent
+ + " isTaskClearedForReuse=" + mIsTaskClearedForReuse
+ "}";
}