Loading core/api/test-current.txt +59 −0 Original line number Diff line number Diff line Loading @@ -3202,6 +3202,59 @@ package android.window { field @NonNull public static final android.os.Parcelable.Creator<android.window.TaskAppearedInfo> CREATOR; } public final class TaskFragmentAppearedInfo implements android.os.Parcelable { method @NonNull public android.view.SurfaceControl getLeash(); method @NonNull public android.window.TaskFragmentInfo getTaskFragmentInfo(); field @NonNull public static final android.os.Parcelable.Creator<android.window.TaskFragmentAppearedInfo> CREATOR; } public final class TaskFragmentCreationParams implements android.os.Parcelable { method @NonNull public android.os.IBinder getFragmentToken(); method @NonNull public android.graphics.Rect getInitialBounds(); method @NonNull public android.window.TaskFragmentOrganizerToken getOrganizer(); method @NonNull public android.os.IBinder getOwnerToken(); method public int getWindowingMode(); field @NonNull public static final android.os.Parcelable.Creator<android.window.TaskFragmentCreationParams> CREATOR; } public static final class TaskFragmentCreationParams.Builder { ctor public TaskFragmentCreationParams.Builder(@NonNull android.window.TaskFragmentOrganizerToken, @NonNull android.os.IBinder, @NonNull android.os.IBinder); method @NonNull public android.window.TaskFragmentCreationParams build(); method @NonNull public android.window.TaskFragmentCreationParams.Builder setInitialBounds(@NonNull android.graphics.Rect); method @NonNull public android.window.TaskFragmentCreationParams.Builder setWindowingMode(int); } public final class TaskFragmentInfo implements android.os.Parcelable { method public boolean equalsForTaskFragmentOrganizer(@Nullable android.window.TaskFragmentInfo); method @NonNull public java.util.List<android.os.IBinder> getActivities(); method @NonNull public android.content.res.Configuration getConfiguration(); method @NonNull public android.os.IBinder getFragmentToken(); method @NonNull public android.graphics.Point getPositionInParent(); method @NonNull public android.window.WindowContainerToken getToken(); method public int getWindowingMode(); method public boolean hasRunningActivity(); method public boolean isEmpty(); method public boolean isVisible(); field @NonNull public static final android.os.Parcelable.Creator<android.window.TaskFragmentInfo> CREATOR; } public class TaskFragmentOrganizer extends android.window.WindowOrganizer { ctor public TaskFragmentOrganizer(@NonNull java.util.concurrent.Executor); method @NonNull public java.util.concurrent.Executor getExecutor(); method @NonNull public android.window.TaskFragmentOrganizerToken getOrganizerToken(); method public void onTaskFragmentAppeared(@NonNull android.window.TaskFragmentAppearedInfo); method public void onTaskFragmentError(@NonNull android.os.IBinder, @NonNull Throwable); method public void onTaskFragmentInfoChanged(@NonNull android.window.TaskFragmentInfo); method public void onTaskFragmentParentInfoChanged(@NonNull android.os.IBinder, @NonNull android.content.res.Configuration); method public void onTaskFragmentVanished(@NonNull android.window.TaskFragmentInfo); method @CallSuper public void registerOrganizer(); method @CallSuper public void unregisterOrganizer(); } public final class TaskFragmentOrganizerToken implements android.os.Parcelable { field @NonNull public static final android.os.Parcelable.Creator<android.window.TaskFragmentOrganizerToken> CREATOR; } public class TaskOrganizer extends android.window.WindowOrganizer { ctor public TaskOrganizer(); method @BinderThread public void addStartingWindow(@NonNull android.window.StartingWindowInfo, @NonNull android.os.IBinder); Loading Loading @@ -3230,9 +3283,13 @@ package android.window { public final class WindowContainerTransaction implements android.os.Parcelable { ctor public WindowContainerTransaction(); method @NonNull public android.window.WindowContainerTransaction createTaskFragment(@NonNull android.window.TaskFragmentCreationParams); method @NonNull public android.window.WindowContainerTransaction deleteTaskFragment(@NonNull android.window.WindowContainerToken); method public int describeContents(); method @NonNull public android.window.WindowContainerTransaction reorder(@NonNull android.window.WindowContainerToken, boolean); method @NonNull public android.window.WindowContainerTransaction reparent(@NonNull android.window.WindowContainerToken, @Nullable android.window.WindowContainerToken, boolean); method @NonNull public android.window.WindowContainerTransaction reparentActivityToTaskFragment(@NonNull android.os.IBinder, @NonNull android.os.IBinder); method @NonNull public android.window.WindowContainerTransaction reparentChildren(@NonNull android.window.WindowContainerToken, @Nullable android.window.WindowContainerToken); method @NonNull public android.window.WindowContainerTransaction reparentTasks(@Nullable android.window.WindowContainerToken, @Nullable android.window.WindowContainerToken, @Nullable int[], @Nullable int[], boolean); method @NonNull public android.window.WindowContainerTransaction scheduleFinishEnterPip(@NonNull android.window.WindowContainerToken, @NonNull android.graphics.Rect); method @NonNull public android.window.WindowContainerTransaction setActivityWindowingMode(@NonNull android.window.WindowContainerToken, int); Loading @@ -3240,12 +3297,14 @@ package android.window { method @NonNull public android.window.WindowContainerTransaction setAppBounds(@NonNull android.window.WindowContainerToken, @NonNull android.graphics.Rect); method @NonNull public android.window.WindowContainerTransaction setBounds(@NonNull android.window.WindowContainerToken, @NonNull android.graphics.Rect); method @NonNull public android.window.WindowContainerTransaction setBoundsChangeTransaction(@NonNull android.window.WindowContainerToken, @NonNull android.view.SurfaceControl.Transaction); method @NonNull public android.window.WindowContainerTransaction setErrorCallbackToken(@NonNull android.os.IBinder); method @NonNull public android.window.WindowContainerTransaction setFocusable(@NonNull android.window.WindowContainerToken, boolean); method @NonNull public android.window.WindowContainerTransaction setHidden(@NonNull android.window.WindowContainerToken, boolean); method @NonNull public android.window.WindowContainerTransaction setLaunchRoot(@NonNull android.window.WindowContainerToken, @Nullable int[], @Nullable int[]); method @NonNull public android.window.WindowContainerTransaction setScreenSizeDp(@NonNull android.window.WindowContainerToken, int, int); method @NonNull public android.window.WindowContainerTransaction setSmallestScreenWidthDp(@NonNull android.window.WindowContainerToken, int); method @NonNull public android.window.WindowContainerTransaction setWindowingMode(@NonNull android.window.WindowContainerToken, int); method @NonNull public android.window.WindowContainerTransaction startActivityInTaskFragment(@NonNull android.os.IBinder, @NonNull android.os.IBinder, @NonNull android.content.Intent, @Nullable android.os.Bundle); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.window.WindowContainerTransaction> CREATOR; } Loading core/java/android/window/TaskFragmentAppearedInfo.java +7 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package android.window; import android.annotation.NonNull; import android.annotation.TestApi; import android.os.Parcel; import android.os.Parcelable; import android.view.SurfaceControl; Loading @@ -25,6 +26,7 @@ import android.view.SurfaceControl; * Data object for the TaskFragment info provided when a TaskFragment is presented to an organizer. * @hide */ @TestApi public final class TaskFragmentAppearedInfo implements Parcelable { @NonNull Loading @@ -33,16 +35,19 @@ public final class TaskFragmentAppearedInfo implements Parcelable { @NonNull private final SurfaceControl mLeash; /** @hide */ public TaskFragmentAppearedInfo( @NonNull TaskFragmentInfo taskFragmentInfo, @NonNull SurfaceControl leash) { mTaskFragmentInfo = taskFragmentInfo; mLeash = leash; } @NonNull public TaskFragmentInfo getTaskFragmentInfo() { return mTaskFragmentInfo; } @NonNull public SurfaceControl getLeash() { return mLeash; } Loading @@ -52,6 +57,7 @@ public final class TaskFragmentAppearedInfo implements Parcelable { mLeash = in.readTypedObject(SurfaceControl.CREATOR); } /** @hide */ @Override public void writeToParcel(@NonNull Parcel dest, int flags) { dest.writeTypedObject(mTaskFragmentInfo, flags); Loading Loading @@ -79,6 +85,7 @@ public final class TaskFragmentAppearedInfo implements Parcelable { + "}"; } /** @hide */ @Override public int describeContents() { return 0; Loading core/java/android/window/TaskFragmentCreationParams.java +21 −10 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED; import static android.app.WindowConfiguration.WindowingMode; import android.annotation.NonNull; import android.annotation.TestApi; import android.graphics.Rect; import android.os.IBinder; import android.os.Parcel; Loading @@ -29,11 +30,12 @@ import android.os.Parcelable; * Data object for options to create TaskFragment with. * @hide */ @TestApi public final class TaskFragmentCreationParams implements Parcelable { /** The organizer that will organize this TaskFragment. */ @NonNull private final ITaskFragmentOrganizer mOrganizer; private final TaskFragmentOrganizerToken mOrganizer; /** * Unique token assigned from the client organizer to identify the {@link TaskFragmentInfo} when Loading @@ -58,25 +60,29 @@ public final class TaskFragmentCreationParams implements Parcelable { private int mWindowingMode = WINDOWING_MODE_UNDEFINED; private TaskFragmentCreationParams( @NonNull ITaskFragmentOrganizer organizer, @NonNull IBinder fragmentToken, @NonNull IBinder ownerToken) { @NonNull TaskFragmentOrganizerToken organizer, @NonNull IBinder fragmentToken, @NonNull IBinder ownerToken) { mOrganizer = organizer; mFragmentToken = fragmentToken; mOwnerToken = ownerToken; } public ITaskFragmentOrganizer getOrganizer() { @NonNull public TaskFragmentOrganizerToken getOrganizer() { return mOrganizer; } @NonNull public IBinder getFragmentToken() { return mFragmentToken; } @NonNull public IBinder getOwnerToken() { return mOwnerToken; } @NonNull public Rect getInitialBounds() { return mInitialBounds; } Loading @@ -87,16 +93,17 @@ public final class TaskFragmentCreationParams implements Parcelable { } private TaskFragmentCreationParams(Parcel in) { mOrganizer = ITaskFragmentOrganizer.Stub.asInterface(in.readStrongBinder()); mOrganizer = TaskFragmentOrganizerToken.CREATOR.createFromParcel(in); mFragmentToken = in.readStrongBinder(); mOwnerToken = in.readStrongBinder(); mInitialBounds.readFromParcel(in); mWindowingMode = in.readInt(); } /** @hide */ @Override public void writeToParcel(@NonNull Parcel dest, int flags) { dest.writeStrongInterface(mOrganizer); mOrganizer.writeToParcel(dest, flags); dest.writeStrongBinder(mFragmentToken); dest.writeStrongBinder(mOwnerToken); mInitialBounds.writeToParcel(dest, flags); Loading Loading @@ -128,16 +135,17 @@ public final class TaskFragmentCreationParams implements Parcelable { + "}"; } /** @hide */ @Override public int describeContents() { return 0; } /** Builder to construct the options to create TaskFragment with. */ public static class Builder { public static final class Builder { @NonNull private final ITaskFragmentOrganizer mOrganizer; private final TaskFragmentOrganizerToken mOrganizer; @NonNull private final IBinder mFragmentToken; Loading @@ -151,26 +159,29 @@ public final class TaskFragmentCreationParams implements Parcelable { @WindowingMode private int mWindowingMode = WINDOWING_MODE_UNDEFINED; public Builder(@NonNull ITaskFragmentOrganizer organizer, @NonNull IBinder fragmentToken, @NonNull IBinder ownerToken) { public Builder(@NonNull TaskFragmentOrganizerToken organizer, @NonNull IBinder fragmentToken, @NonNull IBinder ownerToken) { mOrganizer = organizer; mFragmentToken = fragmentToken; mOwnerToken = ownerToken; } /** Sets the initial bounds for the TaskFragment. */ @NonNull public Builder setInitialBounds(@NonNull Rect bounds) { mInitialBounds.set(bounds); return this; } /** Sets the initial windowing mode for the TaskFragment. */ @NonNull public Builder setWindowingMode(@WindowingMode int windowingMode) { mWindowingMode = windowingMode; return this; } /** Constructs the options to create TaskFragment with. */ @NonNull public TaskFragmentCreationParams build() { final TaskFragmentCreationParams result = new TaskFragmentCreationParams( mOrganizer, mFragmentToken, mOwnerToken); Loading core/java/android/window/TaskFragmentInfo.java +10 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import static java.util.Objects.requireNonNull; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.TestApi; import android.content.res.Configuration; import android.graphics.Point; import android.os.IBinder; Loading @@ -35,6 +36,7 @@ import java.util.List; * Stores information about a particular TaskFragment. * @hide */ @TestApi public final class TaskFragmentInfo implements Parcelable { /** Loading Loading @@ -63,11 +65,13 @@ public final class TaskFragmentInfo implements Parcelable { * List of Activity tokens that are children of this TaskFragment. It only contains Activities * that belong to the organizer process for security. */ @NonNull private final List<IBinder> mActivities = new ArrayList<>(); /** Relative position of the fragment's top left corner in the parent container. */ private final Point mPositionInParent; /** @hide */ public TaskFragmentInfo( @NonNull IBinder fragmentToken, @NonNull WindowContainerToken token, @NonNull Configuration configuration, boolean isEmpty, boolean hasRunningActivity, Loading @@ -82,14 +86,17 @@ public final class TaskFragmentInfo implements Parcelable { mPositionInParent = requireNonNull(positionInParent); } @NonNull public IBinder getFragmentToken() { return mFragmentToken; } @NonNull public WindowContainerToken getToken() { return mToken; } @NonNull public Configuration getConfiguration() { return mConfiguration; } Loading @@ -106,6 +113,7 @@ public final class TaskFragmentInfo implements Parcelable { return mIsVisible; } @NonNull public List<IBinder> getActivities() { return mActivities; } Loading Loading @@ -151,6 +159,7 @@ public final class TaskFragmentInfo implements Parcelable { mPositionInParent = requireNonNull(in.readTypedObject(Point.CREATOR)); } /** @hide */ @Override public void writeToParcel(@NonNull Parcel dest, int flags) { dest.writeStrongBinder(mFragmentToken); Loading Loading @@ -189,6 +198,7 @@ public final class TaskFragmentInfo implements Parcelable { + "}"; } /** @hide */ @Override public int describeContents() { return 0; Loading core/java/android/window/TaskFragmentOrganizer.java +11 −3 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.window; import android.annotation.CallSuper; import android.annotation.NonNull; import android.annotation.TestApi; import android.content.res.Configuration; import android.os.Bundle; import android.os.IBinder; Loading @@ -26,9 +27,10 @@ import android.os.RemoteException; import java.util.concurrent.Executor; /** * Interface for WindowManager to delegate control of {@link com.android.server.wm.TaskFragment}. * Interface for WindowManager to delegate control of {@code TaskFragment}. * @hide */ @TestApi public class TaskFragmentOrganizer extends WindowOrganizer { /** Loading @@ -39,6 +41,7 @@ public class TaskFragmentOrganizer extends WindowOrganizer { /** * Creates a {@link Bundle} with an exception that can be passed to * {@link ITaskFragmentOrganizer#onTaskFragmentError}. * @hide */ public static Bundle putExceptionInBundle(@NonNull Throwable exception) { final Bundle exceptionBundle = new Bundle(); Loading Loading @@ -126,6 +129,8 @@ public class TaskFragmentOrganizer extends WindowOrganizer { super.applyTransaction(t); } // Suppress the lint because it is not a registration method. @SuppressWarnings("ExecutorRegistration") @Override public int applySyncTransaction(@NonNull WindowContainerTransaction t, @NonNull WindowContainerTransactionCallback callback) { Loading Loading @@ -169,8 +174,11 @@ public class TaskFragmentOrganizer extends WindowOrganizer { } }; public ITaskFragmentOrganizer getIOrganizer() { return mInterface; private final TaskFragmentOrganizerToken mToken = new TaskFragmentOrganizerToken(mInterface); @NonNull public TaskFragmentOrganizerToken getOrganizerToken() { return mToken; } private ITaskFragmentOrganizerController getController() { Loading Loading
core/api/test-current.txt +59 −0 Original line number Diff line number Diff line Loading @@ -3202,6 +3202,59 @@ package android.window { field @NonNull public static final android.os.Parcelable.Creator<android.window.TaskAppearedInfo> CREATOR; } public final class TaskFragmentAppearedInfo implements android.os.Parcelable { method @NonNull public android.view.SurfaceControl getLeash(); method @NonNull public android.window.TaskFragmentInfo getTaskFragmentInfo(); field @NonNull public static final android.os.Parcelable.Creator<android.window.TaskFragmentAppearedInfo> CREATOR; } public final class TaskFragmentCreationParams implements android.os.Parcelable { method @NonNull public android.os.IBinder getFragmentToken(); method @NonNull public android.graphics.Rect getInitialBounds(); method @NonNull public android.window.TaskFragmentOrganizerToken getOrganizer(); method @NonNull public android.os.IBinder getOwnerToken(); method public int getWindowingMode(); field @NonNull public static final android.os.Parcelable.Creator<android.window.TaskFragmentCreationParams> CREATOR; } public static final class TaskFragmentCreationParams.Builder { ctor public TaskFragmentCreationParams.Builder(@NonNull android.window.TaskFragmentOrganizerToken, @NonNull android.os.IBinder, @NonNull android.os.IBinder); method @NonNull public android.window.TaskFragmentCreationParams build(); method @NonNull public android.window.TaskFragmentCreationParams.Builder setInitialBounds(@NonNull android.graphics.Rect); method @NonNull public android.window.TaskFragmentCreationParams.Builder setWindowingMode(int); } public final class TaskFragmentInfo implements android.os.Parcelable { method public boolean equalsForTaskFragmentOrganizer(@Nullable android.window.TaskFragmentInfo); method @NonNull public java.util.List<android.os.IBinder> getActivities(); method @NonNull public android.content.res.Configuration getConfiguration(); method @NonNull public android.os.IBinder getFragmentToken(); method @NonNull public android.graphics.Point getPositionInParent(); method @NonNull public android.window.WindowContainerToken getToken(); method public int getWindowingMode(); method public boolean hasRunningActivity(); method public boolean isEmpty(); method public boolean isVisible(); field @NonNull public static final android.os.Parcelable.Creator<android.window.TaskFragmentInfo> CREATOR; } public class TaskFragmentOrganizer extends android.window.WindowOrganizer { ctor public TaskFragmentOrganizer(@NonNull java.util.concurrent.Executor); method @NonNull public java.util.concurrent.Executor getExecutor(); method @NonNull public android.window.TaskFragmentOrganizerToken getOrganizerToken(); method public void onTaskFragmentAppeared(@NonNull android.window.TaskFragmentAppearedInfo); method public void onTaskFragmentError(@NonNull android.os.IBinder, @NonNull Throwable); method public void onTaskFragmentInfoChanged(@NonNull android.window.TaskFragmentInfo); method public void onTaskFragmentParentInfoChanged(@NonNull android.os.IBinder, @NonNull android.content.res.Configuration); method public void onTaskFragmentVanished(@NonNull android.window.TaskFragmentInfo); method @CallSuper public void registerOrganizer(); method @CallSuper public void unregisterOrganizer(); } public final class TaskFragmentOrganizerToken implements android.os.Parcelable { field @NonNull public static final android.os.Parcelable.Creator<android.window.TaskFragmentOrganizerToken> CREATOR; } public class TaskOrganizer extends android.window.WindowOrganizer { ctor public TaskOrganizer(); method @BinderThread public void addStartingWindow(@NonNull android.window.StartingWindowInfo, @NonNull android.os.IBinder); Loading Loading @@ -3230,9 +3283,13 @@ package android.window { public final class WindowContainerTransaction implements android.os.Parcelable { ctor public WindowContainerTransaction(); method @NonNull public android.window.WindowContainerTransaction createTaskFragment(@NonNull android.window.TaskFragmentCreationParams); method @NonNull public android.window.WindowContainerTransaction deleteTaskFragment(@NonNull android.window.WindowContainerToken); method public int describeContents(); method @NonNull public android.window.WindowContainerTransaction reorder(@NonNull android.window.WindowContainerToken, boolean); method @NonNull public android.window.WindowContainerTransaction reparent(@NonNull android.window.WindowContainerToken, @Nullable android.window.WindowContainerToken, boolean); method @NonNull public android.window.WindowContainerTransaction reparentActivityToTaskFragment(@NonNull android.os.IBinder, @NonNull android.os.IBinder); method @NonNull public android.window.WindowContainerTransaction reparentChildren(@NonNull android.window.WindowContainerToken, @Nullable android.window.WindowContainerToken); method @NonNull public android.window.WindowContainerTransaction reparentTasks(@Nullable android.window.WindowContainerToken, @Nullable android.window.WindowContainerToken, @Nullable int[], @Nullable int[], boolean); method @NonNull public android.window.WindowContainerTransaction scheduleFinishEnterPip(@NonNull android.window.WindowContainerToken, @NonNull android.graphics.Rect); method @NonNull public android.window.WindowContainerTransaction setActivityWindowingMode(@NonNull android.window.WindowContainerToken, int); Loading @@ -3240,12 +3297,14 @@ package android.window { method @NonNull public android.window.WindowContainerTransaction setAppBounds(@NonNull android.window.WindowContainerToken, @NonNull android.graphics.Rect); method @NonNull public android.window.WindowContainerTransaction setBounds(@NonNull android.window.WindowContainerToken, @NonNull android.graphics.Rect); method @NonNull public android.window.WindowContainerTransaction setBoundsChangeTransaction(@NonNull android.window.WindowContainerToken, @NonNull android.view.SurfaceControl.Transaction); method @NonNull public android.window.WindowContainerTransaction setErrorCallbackToken(@NonNull android.os.IBinder); method @NonNull public android.window.WindowContainerTransaction setFocusable(@NonNull android.window.WindowContainerToken, boolean); method @NonNull public android.window.WindowContainerTransaction setHidden(@NonNull android.window.WindowContainerToken, boolean); method @NonNull public android.window.WindowContainerTransaction setLaunchRoot(@NonNull android.window.WindowContainerToken, @Nullable int[], @Nullable int[]); method @NonNull public android.window.WindowContainerTransaction setScreenSizeDp(@NonNull android.window.WindowContainerToken, int, int); method @NonNull public android.window.WindowContainerTransaction setSmallestScreenWidthDp(@NonNull android.window.WindowContainerToken, int); method @NonNull public android.window.WindowContainerTransaction setWindowingMode(@NonNull android.window.WindowContainerToken, int); method @NonNull public android.window.WindowContainerTransaction startActivityInTaskFragment(@NonNull android.os.IBinder, @NonNull android.os.IBinder, @NonNull android.content.Intent, @Nullable android.os.Bundle); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.window.WindowContainerTransaction> CREATOR; } Loading
core/java/android/window/TaskFragmentAppearedInfo.java +7 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package android.window; import android.annotation.NonNull; import android.annotation.TestApi; import android.os.Parcel; import android.os.Parcelable; import android.view.SurfaceControl; Loading @@ -25,6 +26,7 @@ import android.view.SurfaceControl; * Data object for the TaskFragment info provided when a TaskFragment is presented to an organizer. * @hide */ @TestApi public final class TaskFragmentAppearedInfo implements Parcelable { @NonNull Loading @@ -33,16 +35,19 @@ public final class TaskFragmentAppearedInfo implements Parcelable { @NonNull private final SurfaceControl mLeash; /** @hide */ public TaskFragmentAppearedInfo( @NonNull TaskFragmentInfo taskFragmentInfo, @NonNull SurfaceControl leash) { mTaskFragmentInfo = taskFragmentInfo; mLeash = leash; } @NonNull public TaskFragmentInfo getTaskFragmentInfo() { return mTaskFragmentInfo; } @NonNull public SurfaceControl getLeash() { return mLeash; } Loading @@ -52,6 +57,7 @@ public final class TaskFragmentAppearedInfo implements Parcelable { mLeash = in.readTypedObject(SurfaceControl.CREATOR); } /** @hide */ @Override public void writeToParcel(@NonNull Parcel dest, int flags) { dest.writeTypedObject(mTaskFragmentInfo, flags); Loading Loading @@ -79,6 +85,7 @@ public final class TaskFragmentAppearedInfo implements Parcelable { + "}"; } /** @hide */ @Override public int describeContents() { return 0; Loading
core/java/android/window/TaskFragmentCreationParams.java +21 −10 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED; import static android.app.WindowConfiguration.WindowingMode; import android.annotation.NonNull; import android.annotation.TestApi; import android.graphics.Rect; import android.os.IBinder; import android.os.Parcel; Loading @@ -29,11 +30,12 @@ import android.os.Parcelable; * Data object for options to create TaskFragment with. * @hide */ @TestApi public final class TaskFragmentCreationParams implements Parcelable { /** The organizer that will organize this TaskFragment. */ @NonNull private final ITaskFragmentOrganizer mOrganizer; private final TaskFragmentOrganizerToken mOrganizer; /** * Unique token assigned from the client organizer to identify the {@link TaskFragmentInfo} when Loading @@ -58,25 +60,29 @@ public final class TaskFragmentCreationParams implements Parcelable { private int mWindowingMode = WINDOWING_MODE_UNDEFINED; private TaskFragmentCreationParams( @NonNull ITaskFragmentOrganizer organizer, @NonNull IBinder fragmentToken, @NonNull IBinder ownerToken) { @NonNull TaskFragmentOrganizerToken organizer, @NonNull IBinder fragmentToken, @NonNull IBinder ownerToken) { mOrganizer = organizer; mFragmentToken = fragmentToken; mOwnerToken = ownerToken; } public ITaskFragmentOrganizer getOrganizer() { @NonNull public TaskFragmentOrganizerToken getOrganizer() { return mOrganizer; } @NonNull public IBinder getFragmentToken() { return mFragmentToken; } @NonNull public IBinder getOwnerToken() { return mOwnerToken; } @NonNull public Rect getInitialBounds() { return mInitialBounds; } Loading @@ -87,16 +93,17 @@ public final class TaskFragmentCreationParams implements Parcelable { } private TaskFragmentCreationParams(Parcel in) { mOrganizer = ITaskFragmentOrganizer.Stub.asInterface(in.readStrongBinder()); mOrganizer = TaskFragmentOrganizerToken.CREATOR.createFromParcel(in); mFragmentToken = in.readStrongBinder(); mOwnerToken = in.readStrongBinder(); mInitialBounds.readFromParcel(in); mWindowingMode = in.readInt(); } /** @hide */ @Override public void writeToParcel(@NonNull Parcel dest, int flags) { dest.writeStrongInterface(mOrganizer); mOrganizer.writeToParcel(dest, flags); dest.writeStrongBinder(mFragmentToken); dest.writeStrongBinder(mOwnerToken); mInitialBounds.writeToParcel(dest, flags); Loading Loading @@ -128,16 +135,17 @@ public final class TaskFragmentCreationParams implements Parcelable { + "}"; } /** @hide */ @Override public int describeContents() { return 0; } /** Builder to construct the options to create TaskFragment with. */ public static class Builder { public static final class Builder { @NonNull private final ITaskFragmentOrganizer mOrganizer; private final TaskFragmentOrganizerToken mOrganizer; @NonNull private final IBinder mFragmentToken; Loading @@ -151,26 +159,29 @@ public final class TaskFragmentCreationParams implements Parcelable { @WindowingMode private int mWindowingMode = WINDOWING_MODE_UNDEFINED; public Builder(@NonNull ITaskFragmentOrganizer organizer, @NonNull IBinder fragmentToken, @NonNull IBinder ownerToken) { public Builder(@NonNull TaskFragmentOrganizerToken organizer, @NonNull IBinder fragmentToken, @NonNull IBinder ownerToken) { mOrganizer = organizer; mFragmentToken = fragmentToken; mOwnerToken = ownerToken; } /** Sets the initial bounds for the TaskFragment. */ @NonNull public Builder setInitialBounds(@NonNull Rect bounds) { mInitialBounds.set(bounds); return this; } /** Sets the initial windowing mode for the TaskFragment. */ @NonNull public Builder setWindowingMode(@WindowingMode int windowingMode) { mWindowingMode = windowingMode; return this; } /** Constructs the options to create TaskFragment with. */ @NonNull public TaskFragmentCreationParams build() { final TaskFragmentCreationParams result = new TaskFragmentCreationParams( mOrganizer, mFragmentToken, mOwnerToken); Loading
core/java/android/window/TaskFragmentInfo.java +10 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import static java.util.Objects.requireNonNull; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.TestApi; import android.content.res.Configuration; import android.graphics.Point; import android.os.IBinder; Loading @@ -35,6 +36,7 @@ import java.util.List; * Stores information about a particular TaskFragment. * @hide */ @TestApi public final class TaskFragmentInfo implements Parcelable { /** Loading Loading @@ -63,11 +65,13 @@ public final class TaskFragmentInfo implements Parcelable { * List of Activity tokens that are children of this TaskFragment. It only contains Activities * that belong to the organizer process for security. */ @NonNull private final List<IBinder> mActivities = new ArrayList<>(); /** Relative position of the fragment's top left corner in the parent container. */ private final Point mPositionInParent; /** @hide */ public TaskFragmentInfo( @NonNull IBinder fragmentToken, @NonNull WindowContainerToken token, @NonNull Configuration configuration, boolean isEmpty, boolean hasRunningActivity, Loading @@ -82,14 +86,17 @@ public final class TaskFragmentInfo implements Parcelable { mPositionInParent = requireNonNull(positionInParent); } @NonNull public IBinder getFragmentToken() { return mFragmentToken; } @NonNull public WindowContainerToken getToken() { return mToken; } @NonNull public Configuration getConfiguration() { return mConfiguration; } Loading @@ -106,6 +113,7 @@ public final class TaskFragmentInfo implements Parcelable { return mIsVisible; } @NonNull public List<IBinder> getActivities() { return mActivities; } Loading Loading @@ -151,6 +159,7 @@ public final class TaskFragmentInfo implements Parcelable { mPositionInParent = requireNonNull(in.readTypedObject(Point.CREATOR)); } /** @hide */ @Override public void writeToParcel(@NonNull Parcel dest, int flags) { dest.writeStrongBinder(mFragmentToken); Loading Loading @@ -189,6 +198,7 @@ public final class TaskFragmentInfo implements Parcelable { + "}"; } /** @hide */ @Override public int describeContents() { return 0; Loading
core/java/android/window/TaskFragmentOrganizer.java +11 −3 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.window; import android.annotation.CallSuper; import android.annotation.NonNull; import android.annotation.TestApi; import android.content.res.Configuration; import android.os.Bundle; import android.os.IBinder; Loading @@ -26,9 +27,10 @@ import android.os.RemoteException; import java.util.concurrent.Executor; /** * Interface for WindowManager to delegate control of {@link com.android.server.wm.TaskFragment}. * Interface for WindowManager to delegate control of {@code TaskFragment}. * @hide */ @TestApi public class TaskFragmentOrganizer extends WindowOrganizer { /** Loading @@ -39,6 +41,7 @@ public class TaskFragmentOrganizer extends WindowOrganizer { /** * Creates a {@link Bundle} with an exception that can be passed to * {@link ITaskFragmentOrganizer#onTaskFragmentError}. * @hide */ public static Bundle putExceptionInBundle(@NonNull Throwable exception) { final Bundle exceptionBundle = new Bundle(); Loading Loading @@ -126,6 +129,8 @@ public class TaskFragmentOrganizer extends WindowOrganizer { super.applyTransaction(t); } // Suppress the lint because it is not a registration method. @SuppressWarnings("ExecutorRegistration") @Override public int applySyncTransaction(@NonNull WindowContainerTransaction t, @NonNull WindowContainerTransactionCallback callback) { Loading Loading @@ -169,8 +174,11 @@ public class TaskFragmentOrganizer extends WindowOrganizer { } }; public ITaskFragmentOrganizer getIOrganizer() { return mInterface; private final TaskFragmentOrganizerToken mToken = new TaskFragmentOrganizerToken(mInterface); @NonNull public TaskFragmentOrganizerToken getOrganizerToken() { return mToken; } private ITaskFragmentOrganizerController getController() { Loading