Merge "Determine whether to support activities in multi window (2/n)" into sc-dev
This commit is contained in:
@@ -827,9 +827,9 @@ class ActivityClientController extends IActivityClientController.Stub {
|
||||
|
||||
if (rootTask.inFreeformWindowingMode()) {
|
||||
rootTask.setWindowingMode(WINDOWING_MODE_FULLSCREEN);
|
||||
} else if (!mService.mSupportsNonResizableMultiWindow && r.inSizeCompatMode()) {
|
||||
throw new IllegalStateException("Size-compat windows are currently not"
|
||||
+ "freeform-enabled");
|
||||
} else if (!r.supportsFreeform()) {
|
||||
throw new IllegalStateException(
|
||||
"This activity is currently not freeform-enabled");
|
||||
} else if (rootTask.getParent().inFreeformWindowingMode()) {
|
||||
// If the window is on a freeform display, set it to undefined. It will be
|
||||
// resolved to freeform and it can adjust windowing mode when the display mode
|
||||
|
||||
@@ -2465,8 +2465,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
|
||||
if (windowingMode == WINDOWING_MODE_PINNED && info.supportsPictureInPicture()) {
|
||||
return false;
|
||||
}
|
||||
if (WindowConfiguration.inMultiWindowMode(windowingMode)
|
||||
&& mAtmService.mSupportsNonResizableMultiWindow
|
||||
if (WindowConfiguration.inMultiWindowMode(windowingMode) && supportsMultiWindow()
|
||||
&& !mAtmService.mForceResizableActivities) {
|
||||
// The non resizable app will be letterboxed instead of being forced resizable.
|
||||
return false;
|
||||
|
||||
@@ -2836,14 +2836,13 @@ class Task extends WindowContainer<WindowContainer> {
|
||||
getResolvedOverrideConfiguration().windowConfiguration.setWindowingMode(windowingMode);
|
||||
}
|
||||
|
||||
// Do not allow non-resizable tasks to be in a multi-window mode, unless it is in pinned
|
||||
// windowing mode or supports non-resizable tasks in multi-window mode.
|
||||
if (!isResizeable()) {
|
||||
// Do not allow tasks not support multi window to be in a multi-window mode, unless it is in
|
||||
// pinned windowing mode.
|
||||
if (!supportsMultiWindow()) {
|
||||
final int candidateWindowingMode =
|
||||
windowingMode != WINDOWING_MODE_UNDEFINED ? windowingMode : parentWindowingMode;
|
||||
if (WindowConfiguration.inMultiWindowMode(candidateWindowingMode)
|
||||
&& candidateWindowingMode != WINDOWING_MODE_PINNED
|
||||
&& !mTaskSupervisor.mService.mSupportsNonResizableMultiWindow) {
|
||||
&& candidateWindowingMode != WINDOWING_MODE_PINNED) {
|
||||
getResolvedOverrideConfiguration().windowConfiguration.setWindowingMode(
|
||||
WINDOWING_MODE_FULLSCREEN);
|
||||
}
|
||||
|
||||
@@ -612,7 +612,7 @@ class TaskLaunchParamsModifier implements LaunchParamsModifier {
|
||||
|
||||
private boolean shouldLaunchUnresizableAppInFreeform(ActivityRecord activity,
|
||||
TaskDisplayArea displayArea) {
|
||||
if (!mSupervisor.mService.mSupportsNonResizableMultiWindow || activity.isResizeable()) {
|
||||
if (!activity.supportsFreeform() || activity.isResizeable()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user