Loading core/api/test-current.txt +9 −2 Original line number Diff line number Diff line Loading @@ -2461,6 +2461,13 @@ package android.window { field public static final int FEATURE_WINDOW_TOKENS = 2; // 0x2 } public final class StartingWindowInfo implements android.os.Parcelable { ctor public StartingWindowInfo(); method public int describeContents(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.window.StartingWindowInfo> CREATOR; } public final class TaskAppearedInfo implements android.os.Parcelable { ctor public TaskAppearedInfo(@NonNull android.app.ActivityManager.RunningTaskInfo, @NonNull android.view.SurfaceControl); method public int describeContents(); Loading @@ -2472,7 +2479,7 @@ package android.window { public class TaskOrganizer extends android.window.WindowOrganizer { ctor public TaskOrganizer(); method @BinderThread public void addStartingWindow(@NonNull android.app.ActivityManager.RunningTaskInfo, @NonNull android.os.IBinder); method @BinderThread public void addStartingWindow(@NonNull android.window.StartingWindowInfo, @NonNull android.os.IBinder); method @Nullable @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_TASKS) public void createRootTask(int, int, @Nullable android.os.IBinder); method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_TASKS) public boolean deleteRootTask(@NonNull android.window.WindowContainerToken); method @Nullable @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_TASKS) public java.util.List<android.app.ActivityManager.RunningTaskInfo> getChildTasks(@NonNull android.window.WindowContainerToken, @NonNull int[]); Loading @@ -2483,7 +2490,7 @@ package android.window { method @BinderThread public void onTaskInfoChanged(@NonNull android.app.ActivityManager.RunningTaskInfo); method @BinderThread public void onTaskVanished(@NonNull android.app.ActivityManager.RunningTaskInfo); method @CallSuper @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_TASKS) public java.util.List<android.window.TaskAppearedInfo> registerOrganizer(); method @BinderThread public void removeStartingWindow(@NonNull android.app.ActivityManager.RunningTaskInfo); method @BinderThread public void removeStartingWindow(int); method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_TASKS) public void setInterceptBackPressedOnTaskRoot(@NonNull android.window.WindowContainerToken, boolean); method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_TASKS) public void setLaunchRoot(int, @NonNull android.window.WindowContainerToken); method @CallSuper @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_TASKS) public void unregisterOrganizer(); Loading core/java/android/window/ITaskOrganizer.aidl +4 −3 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.window; import android.view.SurfaceControl; import android.app.ActivityManager; import android.window.StartingWindowInfo; import android.window.WindowContainerToken; /** Loading @@ -30,15 +31,15 @@ oneway interface ITaskOrganizer { * application is starting. The client is responsible to add/remove the starting window if it * has create a starting window for the Task. * * @param taskInfo The information about the Task that's available * @param info The information about the Task that's available * @param appToken Token of the application being started. */ void addStartingWindow(in ActivityManager.RunningTaskInfo taskInfo, IBinder appToken); void addStartingWindow(in StartingWindowInfo info, IBinder appToken); /** * Called when the Task want to remove the starting window. */ void removeStartingWindow(in ActivityManager.RunningTaskInfo taskInfo); void removeStartingWindow(int taskId); /** * A callback when the Task is available for the registered organizer. The client is responsible Loading core/java/android/window/StartingWindowInfo.aidl 0 → 100644 +20 −0 Original line number Diff line number Diff line /** * Copyright (c) 2020, The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.window; /** @hide */ parcelable StartingWindowInfo; No newline at end of file core/java/android/window/StartingWindowInfo.java 0 → 100644 +150 −0 Original line number Diff line number Diff line /* * Copyright (C) 2020 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.window; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.TestApi; import android.app.ActivityManager; import android.app.TaskInfo; import android.os.Parcel; import android.os.Parcelable; import android.view.InsetsState; import android.view.WindowManager; /** * Information you can retrieve about a starting window of a particular task that is currently * start in the system. * @hide */ @TestApi public final class StartingWindowInfo implements Parcelable { /** * The {@link TaskInfo} from this task. * @hide */ @NonNull public ActivityManager.RunningTaskInfo taskInfo; /** * InsetsState of TopFullscreenOpaqueWindow * @hide */ @Nullable public InsetsState topOpaqueWindowInsetsState; /** * LayoutParams of TopFullscreenOpaqueWindow * @hide */ @Nullable public WindowManager.LayoutParams topOpaqueWindowLayoutParams; /** * LayoutParams of MainWindow * @hide */ @Nullable public WindowManager.LayoutParams mainWindowLayoutParams; /** * @hide */ @IntDef(flag = true, prefix = "TYPE_PARAMETER_", value = { TYPE_PARAMETER_NEW_TASK, TYPE_PARAMETER_TASK_SWITCH, TYPE_PARAMETER_PROCESS_RUNNING, TYPE_PARAMETER_ALLOW_TASK_SNAPSHOT, TYPE_PARAMETER_ACTIVITY_CREATED }) public @interface StartingTypeParams {} /** * The parameters of the starting window... * @hide */ public static final int TYPE_PARAMETER_NEW_TASK = 0x00000001; /** @hide */ public static final int TYPE_PARAMETER_TASK_SWITCH = 0x00000002; /** @hide */ public static final int TYPE_PARAMETER_PROCESS_RUNNING = 0x00000004; /** @hide */ public static final int TYPE_PARAMETER_ALLOW_TASK_SNAPSHOT = 0x00000008; /** @hide */ public static final int TYPE_PARAMETER_ACTIVITY_CREATED = 0x00000010; /** * The parameters which effect the starting window type. * @see android.window.StartingWindowInfo.StartingTypeParams * @hide */ public int startingWindowTypeParameter; public StartingWindowInfo() { } private StartingWindowInfo(@NonNull Parcel source) { readFromParcel(source); } @Override public int describeContents() { return 0; } @Override public void writeToParcel(@NonNull Parcel dest, int flags) { dest.writeTypedObject(taskInfo, flags); dest.writeInt(startingWindowTypeParameter); dest.writeTypedObject(topOpaqueWindowInsetsState, flags); dest.writeTypedObject(topOpaqueWindowLayoutParams, flags); dest.writeTypedObject(mainWindowLayoutParams, flags); } void readFromParcel(@NonNull Parcel source) { taskInfo = source.readTypedObject(ActivityManager.RunningTaskInfo.CREATOR); startingWindowTypeParameter = source.readInt(); topOpaqueWindowInsetsState = source.readTypedObject(InsetsState.CREATOR); topOpaqueWindowLayoutParams = source.readTypedObject( WindowManager.LayoutParams.CREATOR); mainWindowLayoutParams = source.readTypedObject(WindowManager.LayoutParams.CREATOR); } @Override public String toString() { return "StartingWindowInfo{taskId=" + taskInfo.taskId + " displayId=" + taskInfo.displayId + " topActivityType=" + taskInfo.topActivityType + " preferredStartingWindowType=" + Integer.toHexString(startingWindowTypeParameter) + " insetsState=" + topOpaqueWindowInsetsState + " topWindowLayoutParams=" + topOpaqueWindowLayoutParams + " mainWindowLayoutParams=" + mainWindowLayoutParams; } public static final @android.annotation.NonNull Creator<StartingWindowInfo> CREATOR = new Creator<StartingWindowInfo>() { public StartingWindowInfo createFromParcel(@NonNull Parcel source) { return new StartingWindowInfo(source); } public StartingWindowInfo[] newArray(int size) { return new StartingWindowInfo[size]; } }; } core/java/android/window/TaskOrganizer.java +9 −7 Original line number Diff line number Diff line Loading @@ -89,19 +89,19 @@ public class TaskOrganizer extends WindowOrganizer { * application is starting. The client is responsible to add/remove the starting window if it * has create a starting window for the Task. * * @param taskInfo The information about the Task that's available * @param info The information about the Task that's available * @param appToken Token of the application being started. * context to for resources */ @BinderThread public void addStartingWindow(@NonNull ActivityManager.RunningTaskInfo taskInfo, public void addStartingWindow(@NonNull StartingWindowInfo info, @NonNull IBinder appToken) {} /** * Called when the Task want to remove the starting window. */ @BinderThread public void removeStartingWindow(@NonNull ActivityManager.RunningTaskInfo taskInfo) {} public void removeStartingWindow(int taskId) {} /** * Called when a task with the registered windowing mode can be controlled by this task Loading Loading @@ -221,13 +221,15 @@ public class TaskOrganizer extends WindowOrganizer { private final ITaskOrganizer mInterface = new ITaskOrganizer.Stub() { @Override public void addStartingWindow(ActivityManager.RunningTaskInfo taskInfo, IBinder appToken) { mExecutor.execute(() -> TaskOrganizer.this.addStartingWindow(taskInfo, appToken)); public void addStartingWindow(StartingWindowInfo windowInfo, IBinder appToken) { mExecutor.execute(() -> TaskOrganizer.this.addStartingWindow(windowInfo, appToken)); } @Override public void removeStartingWindow(ActivityManager.RunningTaskInfo taskInfo) { mExecutor.execute(() -> TaskOrganizer.this.removeStartingWindow(taskInfo)); public void removeStartingWindow(int taskId) { mExecutor.execute(() -> TaskOrganizer.this.removeStartingWindow(taskId)); } @Override Loading Loading
core/api/test-current.txt +9 −2 Original line number Diff line number Diff line Loading @@ -2461,6 +2461,13 @@ package android.window { field public static final int FEATURE_WINDOW_TOKENS = 2; // 0x2 } public final class StartingWindowInfo implements android.os.Parcelable { ctor public StartingWindowInfo(); method public int describeContents(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.window.StartingWindowInfo> CREATOR; } public final class TaskAppearedInfo implements android.os.Parcelable { ctor public TaskAppearedInfo(@NonNull android.app.ActivityManager.RunningTaskInfo, @NonNull android.view.SurfaceControl); method public int describeContents(); Loading @@ -2472,7 +2479,7 @@ package android.window { public class TaskOrganizer extends android.window.WindowOrganizer { ctor public TaskOrganizer(); method @BinderThread public void addStartingWindow(@NonNull android.app.ActivityManager.RunningTaskInfo, @NonNull android.os.IBinder); method @BinderThread public void addStartingWindow(@NonNull android.window.StartingWindowInfo, @NonNull android.os.IBinder); method @Nullable @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_TASKS) public void createRootTask(int, int, @Nullable android.os.IBinder); method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_TASKS) public boolean deleteRootTask(@NonNull android.window.WindowContainerToken); method @Nullable @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_TASKS) public java.util.List<android.app.ActivityManager.RunningTaskInfo> getChildTasks(@NonNull android.window.WindowContainerToken, @NonNull int[]); Loading @@ -2483,7 +2490,7 @@ package android.window { method @BinderThread public void onTaskInfoChanged(@NonNull android.app.ActivityManager.RunningTaskInfo); method @BinderThread public void onTaskVanished(@NonNull android.app.ActivityManager.RunningTaskInfo); method @CallSuper @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_TASKS) public java.util.List<android.window.TaskAppearedInfo> registerOrganizer(); method @BinderThread public void removeStartingWindow(@NonNull android.app.ActivityManager.RunningTaskInfo); method @BinderThread public void removeStartingWindow(int); method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_TASKS) public void setInterceptBackPressedOnTaskRoot(@NonNull android.window.WindowContainerToken, boolean); method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_TASKS) public void setLaunchRoot(int, @NonNull android.window.WindowContainerToken); method @CallSuper @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_TASKS) public void unregisterOrganizer(); Loading
core/java/android/window/ITaskOrganizer.aidl +4 −3 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.window; import android.view.SurfaceControl; import android.app.ActivityManager; import android.window.StartingWindowInfo; import android.window.WindowContainerToken; /** Loading @@ -30,15 +31,15 @@ oneway interface ITaskOrganizer { * application is starting. The client is responsible to add/remove the starting window if it * has create a starting window for the Task. * * @param taskInfo The information about the Task that's available * @param info The information about the Task that's available * @param appToken Token of the application being started. */ void addStartingWindow(in ActivityManager.RunningTaskInfo taskInfo, IBinder appToken); void addStartingWindow(in StartingWindowInfo info, IBinder appToken); /** * Called when the Task want to remove the starting window. */ void removeStartingWindow(in ActivityManager.RunningTaskInfo taskInfo); void removeStartingWindow(int taskId); /** * A callback when the Task is available for the registered organizer. The client is responsible Loading
core/java/android/window/StartingWindowInfo.aidl 0 → 100644 +20 −0 Original line number Diff line number Diff line /** * Copyright (c) 2020, The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.window; /** @hide */ parcelable StartingWindowInfo; No newline at end of file
core/java/android/window/StartingWindowInfo.java 0 → 100644 +150 −0 Original line number Diff line number Diff line /* * Copyright (C) 2020 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.window; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.TestApi; import android.app.ActivityManager; import android.app.TaskInfo; import android.os.Parcel; import android.os.Parcelable; import android.view.InsetsState; import android.view.WindowManager; /** * Information you can retrieve about a starting window of a particular task that is currently * start in the system. * @hide */ @TestApi public final class StartingWindowInfo implements Parcelable { /** * The {@link TaskInfo} from this task. * @hide */ @NonNull public ActivityManager.RunningTaskInfo taskInfo; /** * InsetsState of TopFullscreenOpaqueWindow * @hide */ @Nullable public InsetsState topOpaqueWindowInsetsState; /** * LayoutParams of TopFullscreenOpaqueWindow * @hide */ @Nullable public WindowManager.LayoutParams topOpaqueWindowLayoutParams; /** * LayoutParams of MainWindow * @hide */ @Nullable public WindowManager.LayoutParams mainWindowLayoutParams; /** * @hide */ @IntDef(flag = true, prefix = "TYPE_PARAMETER_", value = { TYPE_PARAMETER_NEW_TASK, TYPE_PARAMETER_TASK_SWITCH, TYPE_PARAMETER_PROCESS_RUNNING, TYPE_PARAMETER_ALLOW_TASK_SNAPSHOT, TYPE_PARAMETER_ACTIVITY_CREATED }) public @interface StartingTypeParams {} /** * The parameters of the starting window... * @hide */ public static final int TYPE_PARAMETER_NEW_TASK = 0x00000001; /** @hide */ public static final int TYPE_PARAMETER_TASK_SWITCH = 0x00000002; /** @hide */ public static final int TYPE_PARAMETER_PROCESS_RUNNING = 0x00000004; /** @hide */ public static final int TYPE_PARAMETER_ALLOW_TASK_SNAPSHOT = 0x00000008; /** @hide */ public static final int TYPE_PARAMETER_ACTIVITY_CREATED = 0x00000010; /** * The parameters which effect the starting window type. * @see android.window.StartingWindowInfo.StartingTypeParams * @hide */ public int startingWindowTypeParameter; public StartingWindowInfo() { } private StartingWindowInfo(@NonNull Parcel source) { readFromParcel(source); } @Override public int describeContents() { return 0; } @Override public void writeToParcel(@NonNull Parcel dest, int flags) { dest.writeTypedObject(taskInfo, flags); dest.writeInt(startingWindowTypeParameter); dest.writeTypedObject(topOpaqueWindowInsetsState, flags); dest.writeTypedObject(topOpaqueWindowLayoutParams, flags); dest.writeTypedObject(mainWindowLayoutParams, flags); } void readFromParcel(@NonNull Parcel source) { taskInfo = source.readTypedObject(ActivityManager.RunningTaskInfo.CREATOR); startingWindowTypeParameter = source.readInt(); topOpaqueWindowInsetsState = source.readTypedObject(InsetsState.CREATOR); topOpaqueWindowLayoutParams = source.readTypedObject( WindowManager.LayoutParams.CREATOR); mainWindowLayoutParams = source.readTypedObject(WindowManager.LayoutParams.CREATOR); } @Override public String toString() { return "StartingWindowInfo{taskId=" + taskInfo.taskId + " displayId=" + taskInfo.displayId + " topActivityType=" + taskInfo.topActivityType + " preferredStartingWindowType=" + Integer.toHexString(startingWindowTypeParameter) + " insetsState=" + topOpaqueWindowInsetsState + " topWindowLayoutParams=" + topOpaqueWindowLayoutParams + " mainWindowLayoutParams=" + mainWindowLayoutParams; } public static final @android.annotation.NonNull Creator<StartingWindowInfo> CREATOR = new Creator<StartingWindowInfo>() { public StartingWindowInfo createFromParcel(@NonNull Parcel source) { return new StartingWindowInfo(source); } public StartingWindowInfo[] newArray(int size) { return new StartingWindowInfo[size]; } }; }
core/java/android/window/TaskOrganizer.java +9 −7 Original line number Diff line number Diff line Loading @@ -89,19 +89,19 @@ public class TaskOrganizer extends WindowOrganizer { * application is starting. The client is responsible to add/remove the starting window if it * has create a starting window for the Task. * * @param taskInfo The information about the Task that's available * @param info The information about the Task that's available * @param appToken Token of the application being started. * context to for resources */ @BinderThread public void addStartingWindow(@NonNull ActivityManager.RunningTaskInfo taskInfo, public void addStartingWindow(@NonNull StartingWindowInfo info, @NonNull IBinder appToken) {} /** * Called when the Task want to remove the starting window. */ @BinderThread public void removeStartingWindow(@NonNull ActivityManager.RunningTaskInfo taskInfo) {} public void removeStartingWindow(int taskId) {} /** * Called when a task with the registered windowing mode can be controlled by this task Loading Loading @@ -221,13 +221,15 @@ public class TaskOrganizer extends WindowOrganizer { private final ITaskOrganizer mInterface = new ITaskOrganizer.Stub() { @Override public void addStartingWindow(ActivityManager.RunningTaskInfo taskInfo, IBinder appToken) { mExecutor.execute(() -> TaskOrganizer.this.addStartingWindow(taskInfo, appToken)); public void addStartingWindow(StartingWindowInfo windowInfo, IBinder appToken) { mExecutor.execute(() -> TaskOrganizer.this.addStartingWindow(windowInfo, appToken)); } @Override public void removeStartingWindow(ActivityManager.RunningTaskInfo taskInfo) { mExecutor.execute(() -> TaskOrganizer.this.removeStartingWindow(taskInfo)); public void removeStartingWindow(int taskId) { mExecutor.execute(() -> TaskOrganizer.this.removeStartingWindow(taskId)); } @Override Loading