Merge "Do not set a disallowedAreaForEndBounds for caption window decors" into udc-dev
This commit is contained in:
@@ -22,7 +22,6 @@ import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
|
|||||||
|
|
||||||
import android.app.ActivityManager.RunningTaskInfo;
|
import android.app.ActivityManager.RunningTaskInfo;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.Rect;
|
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.util.SparseArray;
|
import android.util.SparseArray;
|
||||||
@@ -186,8 +185,9 @@ public class CaptionWindowDecorViewModel implements WindowDecorViewModel {
|
|||||||
mSyncQueue);
|
mSyncQueue);
|
||||||
mWindowDecorByTaskId.put(taskInfo.taskId, windowDecoration);
|
mWindowDecorByTaskId.put(taskInfo.taskId, windowDecoration);
|
||||||
|
|
||||||
final DragPositioningCallback dragPositioningCallback = createDragPositioningCallback(
|
final DragPositioningCallback dragPositioningCallback =
|
||||||
windowDecoration, taskInfo);
|
new FluidResizeTaskPositioner(mTaskOrganizer, windowDecoration, mDisplayController,
|
||||||
|
null /* disallowedAreaForEndBounds */);
|
||||||
final CaptionTouchEventListener touchEventListener =
|
final CaptionTouchEventListener touchEventListener =
|
||||||
new CaptionTouchEventListener(taskInfo, dragPositioningCallback);
|
new CaptionTouchEventListener(taskInfo, dragPositioningCallback);
|
||||||
windowDecoration.setCaptionListeners(touchEventListener, touchEventListener);
|
windowDecoration.setCaptionListeners(touchEventListener, touchEventListener);
|
||||||
@@ -198,17 +198,6 @@ public class CaptionWindowDecorViewModel implements WindowDecorViewModel {
|
|||||||
setupCaptionColor(taskInfo, windowDecoration);
|
setupCaptionColor(taskInfo, windowDecoration);
|
||||||
}
|
}
|
||||||
|
|
||||||
private FluidResizeTaskPositioner createDragPositioningCallback(
|
|
||||||
CaptionWindowDecoration windowDecoration, RunningTaskInfo taskInfo) {
|
|
||||||
final int screenWidth = mDisplayController.getDisplayLayout(taskInfo.displayId).width();
|
|
||||||
final int statusBarHeight = mDisplayController.getDisplayLayout(taskInfo.displayId)
|
|
||||||
.stableInsets().top;
|
|
||||||
final Rect disallowedAreaForEndBounds = new Rect(0, 0, screenWidth,
|
|
||||||
statusBarHeight);
|
|
||||||
return new FluidResizeTaskPositioner(mTaskOrganizer, windowDecoration,
|
|
||||||
mDisplayController, disallowedAreaForEndBounds);
|
|
||||||
}
|
|
||||||
|
|
||||||
private class CaptionTouchEventListener implements
|
private class CaptionTouchEventListener implements
|
||||||
View.OnClickListener, View.OnTouchListener, DragDetector.MotionEventHandler {
|
View.OnClickListener, View.OnTouchListener, DragDetector.MotionEventHandler {
|
||||||
|
|
||||||
|
|||||||
@@ -21,6 +21,8 @@ import android.graphics.Rect;
|
|||||||
import android.view.SurfaceControl;
|
import android.view.SurfaceControl;
|
||||||
import android.window.WindowContainerTransaction;
|
import android.window.WindowContainerTransaction;
|
||||||
|
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import com.android.wm.shell.ShellTaskOrganizer;
|
import com.android.wm.shell.ShellTaskOrganizer;
|
||||||
import com.android.wm.shell.common.DisplayController;
|
import com.android.wm.shell.common.DisplayController;
|
||||||
|
|
||||||
@@ -42,24 +44,24 @@ class FluidResizeTaskPositioner implements DragPositioningCallback {
|
|||||||
private final Rect mRepositionTaskBounds = new Rect();
|
private final Rect mRepositionTaskBounds = new Rect();
|
||||||
// If a task move (not resize) finishes in this region, the positioner will not attempt to
|
// If a task move (not resize) finishes in this region, the positioner will not attempt to
|
||||||
// finalize the bounds there using WCT#setBounds
|
// finalize the bounds there using WCT#setBounds
|
||||||
private final Rect mDisallowedAreaForEndBounds = new Rect();
|
private final Rect mDisallowedAreaForEndBounds;
|
||||||
private boolean mHasDragResized;
|
private boolean mHasDragResized;
|
||||||
private int mCtrlType;
|
private int mCtrlType;
|
||||||
|
|
||||||
FluidResizeTaskPositioner(ShellTaskOrganizer taskOrganizer, WindowDecoration windowDecoration,
|
FluidResizeTaskPositioner(ShellTaskOrganizer taskOrganizer, WindowDecoration windowDecoration,
|
||||||
DisplayController displayController, Rect disallowedAreaForEndBounds) {
|
DisplayController displayController, @Nullable Rect disallowedAreaForEndBounds) {
|
||||||
this(taskOrganizer, windowDecoration, displayController, disallowedAreaForEndBounds,
|
this(taskOrganizer, windowDecoration, displayController, disallowedAreaForEndBounds,
|
||||||
dragStartListener -> {}, SurfaceControl.Transaction::new);
|
dragStartListener -> {}, SurfaceControl.Transaction::new);
|
||||||
}
|
}
|
||||||
|
|
||||||
FluidResizeTaskPositioner(ShellTaskOrganizer taskOrganizer, WindowDecoration windowDecoration,
|
FluidResizeTaskPositioner(ShellTaskOrganizer taskOrganizer, WindowDecoration windowDecoration,
|
||||||
DisplayController displayController, Rect disallowedAreaForEndBounds,
|
DisplayController displayController, @Nullable Rect disallowedAreaForEndBounds,
|
||||||
DragPositioningCallbackUtility.DragStartListener dragStartListener,
|
DragPositioningCallbackUtility.DragStartListener dragStartListener,
|
||||||
Supplier<SurfaceControl.Transaction> supplier) {
|
Supplier<SurfaceControl.Transaction> supplier) {
|
||||||
mTaskOrganizer = taskOrganizer;
|
mTaskOrganizer = taskOrganizer;
|
||||||
mWindowDecoration = windowDecoration;
|
mWindowDecoration = windowDecoration;
|
||||||
mDisplayController = displayController;
|
mDisplayController = displayController;
|
||||||
mDisallowedAreaForEndBounds.set(disallowedAreaForEndBounds);
|
mDisallowedAreaForEndBounds = new Rect(disallowedAreaForEndBounds);
|
||||||
mDragStartListener = dragStartListener;
|
mDragStartListener = dragStartListener;
|
||||||
mTransactionSupplier = supplier;
|
mTransactionSupplier = supplier;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user