Loading core/java/android/app/ActivityManager.java +3 −2 Original line number Diff line number Diff line Loading @@ -1947,8 +1947,9 @@ public class ActivityManager { pw.print(((baseIntent.getFlags() & FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS) != 0)); pw.print(" activityType="); pw.print(activityTypeToString(getActivityType())); pw.print(" windowingMode="); pw.print(windowingModeToString(getWindowingMode())); pw.print(" supportsSplitScreenMultiWindow="); pw.println(supportsSplitScreenMultiWindow); pw.print(" supportsSplitScreenMultiWindow="); pw.print(supportsSplitScreenMultiWindow); pw.print(" supportsMultiWindow="); pw.println(supportsMultiWindow); if (taskDescription != null) { pw.print(" "); final ActivityManager.TaskDescription td = taskDescription; Loading core/java/android/app/ActivityTaskManager.java +0 −14 Original line number Diff line number Diff line Loading @@ -348,20 +348,6 @@ public class ActivityTaskManager { } } /** * Whether to allow non-resizable apps to be shown in multi-window. The app will be letterboxed * if the request orientation is not met, and will be shown in size-compat mode if the container * size has changed. * @hide */ public static boolean supportsNonResizableMultiWindow() { try { return ActivityTaskManager.getService().supportsNonResizableMultiWindow(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * @return whether the UI mode of the given config supports error dialogs (ANR, crash, etc). * @hide Loading core/java/android/app/IActivityTaskManager.aidl +0 −7 Original line number Diff line number Diff line Loading @@ -259,13 +259,6 @@ interface IActivityTaskManager { void setSplitScreenResizing(boolean resizing); boolean supportsLocalVoiceInteraction(); /** * Whether to allow non-resizable apps to be shown in multi-window. The app will be letterboxed * if the request orientation is not met, and will be shown in size-compat mode if the container * size has changed. */ boolean supportsNonResizableMultiWindow(); // Get device configuration ConfigurationInfo getDeviceConfigurationInfo(); Loading core/java/android/app/TaskInfo.java +11 −0 Original line number Diff line number Diff line Loading @@ -137,6 +137,13 @@ public class TaskInfo { @UnsupportedAppUsage public boolean supportsSplitScreenMultiWindow; /** * Whether this task supports multi windowing modes based on the device settings and the * root activity resizability and configuration. * @hide */ public boolean supportsMultiWindow; /** * The resize mode of the task. See {@link ActivityInfo#resizeMode}. * @hide Loading Loading @@ -329,6 +336,7 @@ public class TaskInfo { } return topActivityType == that.topActivityType && isResizeable == that.isResizeable && supportsMultiWindow == that.supportsMultiWindow && Objects.equals(positionInParent, that.positionInParent) && Objects.equals(pictureInPictureParams, that.pictureInPictureParams) && getWindowingMode() == that.getWindowingMode() Loading Loading @@ -375,6 +383,7 @@ public class TaskInfo { taskDescription = source.readTypedObject(ActivityManager.TaskDescription.CREATOR); supportsSplitScreenMultiWindow = source.readBoolean(); supportsMultiWindow = source.readBoolean(); resizeMode = source.readInt(); configuration.readFromParcel(source); token = WindowContainerToken.CREATOR.createFromParcel(source); Loading Loading @@ -412,6 +421,7 @@ public class TaskInfo { dest.writeTypedObject(taskDescription, flags); dest.writeBoolean(supportsSplitScreenMultiWindow); dest.writeBoolean(supportsMultiWindow); dest.writeInt(resizeMode); configuration.writeToParcel(dest, flags); token.writeToParcel(dest, flags); Loading Loading @@ -440,6 +450,7 @@ public class TaskInfo { + " numActivities=" + numActivities + " lastActiveTime=" + lastActiveTime + " supportsSplitScreenMultiWindow=" + supportsSplitScreenMultiWindow + " supportsMultiWindow=" + supportsMultiWindow + " resizeMode=" + resizeMode + " isResizeable=" + isResizeable + " token=" + token Loading libs/WindowManager/Shell/src/com/android/wm/shell/apppairs/AppPair.java +4 −5 Original line number Diff line number Diff line Loading @@ -23,7 +23,6 @@ import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED; import static com.android.wm.shell.protolog.ShellProtoLogGroup.WM_SHELL_TASK_ORG; import android.app.ActivityManager; import android.app.ActivityTaskManager; import android.graphics.Rect; import android.view.SurfaceControl; import android.window.WindowContainerToken; Loading Loading @@ -89,11 +88,11 @@ class AppPair implements ShellTaskOrganizer.TaskListener, SplitLayout.LayoutChan ProtoLog.v(WM_SHELL_TASK_ORG, "pair task1=%d task2=%d in AppPair=%s", task1.taskId, task2.taskId, this); if ((!task1.isResizeable || !task2.isResizeable) && !ActivityTaskManager.supportsNonResizableMultiWindow()) { if (!task1.supportsMultiWindow || !task2.supportsMultiWindow) { ProtoLog.e(WM_SHELL_TASK_ORG, "Can't pair unresizeable tasks task1.isResizeable=%b task1.isResizeable=%b", task1.isResizeable, task2.isResizeable); "Can't pair tasks that doesn't support multi window, " + "task1.supportsMultiWindow=%b, task2.supportsMultiWindow=%b", task1.supportsMultiWindow, task2.supportsMultiWindow); return false; } Loading Loading
core/java/android/app/ActivityManager.java +3 −2 Original line number Diff line number Diff line Loading @@ -1947,8 +1947,9 @@ public class ActivityManager { pw.print(((baseIntent.getFlags() & FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS) != 0)); pw.print(" activityType="); pw.print(activityTypeToString(getActivityType())); pw.print(" windowingMode="); pw.print(windowingModeToString(getWindowingMode())); pw.print(" supportsSplitScreenMultiWindow="); pw.println(supportsSplitScreenMultiWindow); pw.print(" supportsSplitScreenMultiWindow="); pw.print(supportsSplitScreenMultiWindow); pw.print(" supportsMultiWindow="); pw.println(supportsMultiWindow); if (taskDescription != null) { pw.print(" "); final ActivityManager.TaskDescription td = taskDescription; Loading
core/java/android/app/ActivityTaskManager.java +0 −14 Original line number Diff line number Diff line Loading @@ -348,20 +348,6 @@ public class ActivityTaskManager { } } /** * Whether to allow non-resizable apps to be shown in multi-window. The app will be letterboxed * if the request orientation is not met, and will be shown in size-compat mode if the container * size has changed. * @hide */ public static boolean supportsNonResizableMultiWindow() { try { return ActivityTaskManager.getService().supportsNonResizableMultiWindow(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * @return whether the UI mode of the given config supports error dialogs (ANR, crash, etc). * @hide Loading
core/java/android/app/IActivityTaskManager.aidl +0 −7 Original line number Diff line number Diff line Loading @@ -259,13 +259,6 @@ interface IActivityTaskManager { void setSplitScreenResizing(boolean resizing); boolean supportsLocalVoiceInteraction(); /** * Whether to allow non-resizable apps to be shown in multi-window. The app will be letterboxed * if the request orientation is not met, and will be shown in size-compat mode if the container * size has changed. */ boolean supportsNonResizableMultiWindow(); // Get device configuration ConfigurationInfo getDeviceConfigurationInfo(); Loading
core/java/android/app/TaskInfo.java +11 −0 Original line number Diff line number Diff line Loading @@ -137,6 +137,13 @@ public class TaskInfo { @UnsupportedAppUsage public boolean supportsSplitScreenMultiWindow; /** * Whether this task supports multi windowing modes based on the device settings and the * root activity resizability and configuration. * @hide */ public boolean supportsMultiWindow; /** * The resize mode of the task. See {@link ActivityInfo#resizeMode}. * @hide Loading Loading @@ -329,6 +336,7 @@ public class TaskInfo { } return topActivityType == that.topActivityType && isResizeable == that.isResizeable && supportsMultiWindow == that.supportsMultiWindow && Objects.equals(positionInParent, that.positionInParent) && Objects.equals(pictureInPictureParams, that.pictureInPictureParams) && getWindowingMode() == that.getWindowingMode() Loading Loading @@ -375,6 +383,7 @@ public class TaskInfo { taskDescription = source.readTypedObject(ActivityManager.TaskDescription.CREATOR); supportsSplitScreenMultiWindow = source.readBoolean(); supportsMultiWindow = source.readBoolean(); resizeMode = source.readInt(); configuration.readFromParcel(source); token = WindowContainerToken.CREATOR.createFromParcel(source); Loading Loading @@ -412,6 +421,7 @@ public class TaskInfo { dest.writeTypedObject(taskDescription, flags); dest.writeBoolean(supportsSplitScreenMultiWindow); dest.writeBoolean(supportsMultiWindow); dest.writeInt(resizeMode); configuration.writeToParcel(dest, flags); token.writeToParcel(dest, flags); Loading Loading @@ -440,6 +450,7 @@ public class TaskInfo { + " numActivities=" + numActivities + " lastActiveTime=" + lastActiveTime + " supportsSplitScreenMultiWindow=" + supportsSplitScreenMultiWindow + " supportsMultiWindow=" + supportsMultiWindow + " resizeMode=" + resizeMode + " isResizeable=" + isResizeable + " token=" + token Loading
libs/WindowManager/Shell/src/com/android/wm/shell/apppairs/AppPair.java +4 −5 Original line number Diff line number Diff line Loading @@ -23,7 +23,6 @@ import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED; import static com.android.wm.shell.protolog.ShellProtoLogGroup.WM_SHELL_TASK_ORG; import android.app.ActivityManager; import android.app.ActivityTaskManager; import android.graphics.Rect; import android.view.SurfaceControl; import android.window.WindowContainerToken; Loading Loading @@ -89,11 +88,11 @@ class AppPair implements ShellTaskOrganizer.TaskListener, SplitLayout.LayoutChan ProtoLog.v(WM_SHELL_TASK_ORG, "pair task1=%d task2=%d in AppPair=%s", task1.taskId, task2.taskId, this); if ((!task1.isResizeable || !task2.isResizeable) && !ActivityTaskManager.supportsNonResizableMultiWindow()) { if (!task1.supportsMultiWindow || !task2.supportsMultiWindow) { ProtoLog.e(WM_SHELL_TASK_ORG, "Can't pair unresizeable tasks task1.isResizeable=%b task1.isResizeable=%b", task1.isResizeable, task2.isResizeable); "Can't pair tasks that doesn't support multi window, " + "task1.supportsMultiWindow=%b, task2.supportsMultiWindow=%b", task1.supportsMultiWindow, task2.supportsMultiWindow); return false; } Loading