Loading libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java +4 −15 Original line number Diff line number Diff line Loading @@ -100,7 +100,6 @@ import com.android.wm.shell.unfold.qualifier.UnfoldShellTransition; import com.android.wm.shell.unfold.qualifier.UnfoldTransition; import com.android.wm.shell.windowdecor.CaptionWindowDecorViewModel; import com.android.wm.shell.windowdecor.DesktopModeWindowDecorViewModel; import com.android.wm.shell.windowdecor.ResizeHandleSizeRepository; import com.android.wm.shell.windowdecor.WindowDecorViewModel; import dagger.Binds; Loading Loading @@ -221,8 +220,7 @@ public abstract class WMShellModule { SyncTransactionQueue syncQueue, Transitions transitions, Optional<DesktopTasksController> desktopTasksController, RootTaskDisplayAreaOrganizer rootTaskDisplayAreaOrganizer, ResizeHandleSizeRepository resizeHandleSizeRepository) { RootTaskDisplayAreaOrganizer rootTaskDisplayAreaOrganizer) { if (DesktopModeStatus.canEnterDesktopMode(context)) { return new DesktopModeWindowDecorViewModel( context, Loading @@ -239,8 +237,7 @@ public abstract class WMShellModule { syncQueue, transitions, desktopTasksController, rootTaskDisplayAreaOrganizer, resizeHandleSizeRepository); rootTaskDisplayAreaOrganizer); } return new CaptionWindowDecorViewModel( context, Loading @@ -250,8 +247,7 @@ public abstract class WMShellModule { displayController, rootTaskDisplayAreaOrganizer, syncQueue, transitions, resizeHandleSizeRepository); transitions); } // Loading Loading @@ -533,8 +529,7 @@ public abstract class WMShellModule { exitDesktopTransitionHandler, toggleResizeDesktopTaskTransitionHandler, dragToDesktopTransitionHandler, desktopModeTaskRepository, desktopModeLoggerTransitionObserver, launchAdjacentController, recentsTransitionHandler, multiInstanceHelper, mainExecutor, desktopTasksLimiter); recentsTransitionHandler, multiInstanceHelper, mainExecutor, desktopTasksLimiter); } @WMSingleton Loading Loading @@ -627,12 +622,6 @@ public abstract class WMShellModule { return new DesktopModeEventLogger(); } @WMSingleton @Provides static ResizeHandleSizeRepository provideResizeHandleSizeRepository() { return new ResizeHandleSizeRepository(); } // // Drag and drop // Loading libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecorViewModel.java +2 −6 Original line number Diff line number Diff line Loading @@ -63,7 +63,6 @@ public class CaptionWindowDecorViewModel implements WindowDecorViewModel { private final RootTaskDisplayAreaOrganizer mRootTaskDisplayAreaOrganizer; private final SyncTransactionQueue mSyncQueue; private final Transitions mTransitions; private final ResizeHandleSizeRepository mResizeHandleSizeRepository; private TaskOperations mTaskOperations; private final SparseArray<CaptionWindowDecoration> mWindowDecorByTaskId = new SparseArray<>(); Loading @@ -76,8 +75,7 @@ public class CaptionWindowDecorViewModel implements WindowDecorViewModel { DisplayController displayController, RootTaskDisplayAreaOrganizer rootTaskDisplayAreaOrganizer, SyncTransactionQueue syncQueue, Transitions transitions, ResizeHandleSizeRepository resizeHandleSizeRepository) { Transitions transitions) { mContext = context; mMainHandler = mainHandler; mMainChoreographer = mainChoreographer; Loading @@ -86,7 +84,6 @@ public class CaptionWindowDecorViewModel implements WindowDecorViewModel { mRootTaskDisplayAreaOrganizer = rootTaskDisplayAreaOrganizer; mSyncQueue = syncQueue; mTransitions = transitions; mResizeHandleSizeRepository = resizeHandleSizeRepository; if (!Transitions.ENABLE_SHELL_TRANSITIONS) { mTaskOperations = new TaskOperations(null, mContext, mSyncQueue); } Loading Loading @@ -234,8 +231,7 @@ public class CaptionWindowDecorViewModel implements WindowDecorViewModel { taskSurface, mMainHandler, mMainChoreographer, mSyncQueue, mResizeHandleSizeRepository); mSyncQueue); mWindowDecorByTaskId.put(taskInfo.taskId, windowDecoration); final FluidResizeTaskPositioner taskPositioner = Loading libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecoration.java +8 −27 Original line number Diff line number Diff line Loading @@ -16,11 +16,11 @@ package com.android.wm.shell.windowdecor; import static com.android.wm.shell.windowdecor.ResizeHandleSizeRepository.getFineResizeCornerPixels; import static com.android.wm.shell.windowdecor.ResizeHandleSizeRepository.getLargeResizeCornerPixels; import static com.android.wm.shell.windowdecor.DragResizeWindowGeometry.getFineResizeCornerSize; import static com.android.wm.shell.windowdecor.DragResizeWindowGeometry.getLargeResizeCornerSize; import static com.android.wm.shell.windowdecor.DragResizeWindowGeometry.getResizeEdgeHandleSize; import android.annotation.NonNull; import android.annotation.Nullable; import android.app.ActivityManager.RunningTaskInfo; import android.app.WindowConfiguration; import android.app.WindowConfiguration.WindowingMode; Loading @@ -45,8 +45,6 @@ import com.android.wm.shell.common.DisplayController; import com.android.wm.shell.common.DisplayLayout; import com.android.wm.shell.common.SyncTransactionQueue; import java.util.function.Consumer; /** * Defines visuals and behaviors of a window decoration of a caption bar and shadows. It works with * {@link CaptionWindowDecorViewModel}. The caption bar contains a back button, minimize button, Loading @@ -60,28 +58,12 @@ public class CaptionWindowDecoration extends WindowDecoration<WindowDecorLinearL private View.OnClickListener mOnCaptionButtonClickListener; private View.OnTouchListener mOnCaptionTouchListener; private DragPositioningCallback mDragPositioningCallback; // Listener for handling drag resize events. Will be null if the task cannot be resized. @Nullable private DragResizeInputListener mDragResizeListener; private DragDetector mDragDetector; private RelayoutParams mRelayoutParams = new RelayoutParams(); private final RelayoutResult<WindowDecorLinearLayout> mResult = new RelayoutResult<>(); private final ResizeHandleSizeRepository mResizeHandleSizeRepository; private final Consumer<ResizeHandleSizeRepository> mResizeHandleSizeChangedFunction = (ResizeHandleSizeRepository sizeRepository) -> { if (mDragResizeListener == null) { return; } final Resources res = mResult.mRootView.getResources(); mDragResizeListener.setGeometry( new DragResizeWindowGeometry(0 /* taskCornerRadius */, new Size(mResult.mWidth, mResult.mHeight), sizeRepository.getResizeEdgeHandlePixels(res), getFineResizeCornerPixels(res), getLargeResizeCornerPixels(res)), mDragDetector.getTouchSlop()); }; CaptionWindowDecoration( Context context, Loading @@ -91,15 +73,11 @@ public class CaptionWindowDecoration extends WindowDecoration<WindowDecorLinearL SurfaceControl taskSurface, Handler handler, Choreographer choreographer, SyncTransactionQueue syncQueue, ResizeHandleSizeRepository resizeHandleSizeRepository) { SyncTransactionQueue syncQueue) { super(context, displayController, taskOrganizer, taskInfo, taskSurface); mHandler = handler; mChoreographer = choreographer; mSyncQueue = syncQueue; mResizeHandleSizeRepository = resizeHandleSizeRepository; mResizeHandleSizeRepository.registerSizeChangeFunction(mResizeHandleSizeChangedFunction); } void setCaptionListeners( Loading Loading @@ -258,7 +236,10 @@ public class CaptionWindowDecoration extends WindowDecoration<WindowDecorLinearL .getScaledTouchSlop(); mDragDetector.setTouchSlop(touchSlop); mResizeHandleSizeChangedFunction.accept(mResizeHandleSizeRepository); final Resources res = mResult.mRootView.getResources(); mDragResizeListener.setGeometry(new DragResizeWindowGeometry(0 /* taskCornerRadius */, new Size(mResult.mWidth, mResult.mHeight), getResizeEdgeHandleSize(res), getFineResizeCornerSize(res), getLargeResizeCornerSize(res)), touchSlop); } /** Loading libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java +4 −10 Original line number Diff line number Diff line Loading @@ -149,7 +149,6 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { new DesktopModeKeyguardChangeListener(); private final RootTaskDisplayAreaOrganizer mRootTaskDisplayAreaOrganizer; private final DisplayInsetsController mDisplayInsetsController; private final ResizeHandleSizeRepository mResizeHandleSizeRepository; private final Region mExclusionRegion = Region.obtain(); private boolean mInImmersiveMode; Loading Loading @@ -182,8 +181,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { SyncTransactionQueue syncQueue, Transitions transitions, Optional<DesktopTasksController> desktopTasksController, RootTaskDisplayAreaOrganizer rootTaskDisplayAreaOrganizer, ResizeHandleSizeRepository resizeHandleSizeRepository RootTaskDisplayAreaOrganizer rootTaskDisplayAreaOrganizer ) { this( context, Loading @@ -204,8 +202,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { new InputMonitorFactory(), SurfaceControl.Transaction::new, rootTaskDisplayAreaOrganizer, new SparseArray<>(), resizeHandleSizeRepository); new SparseArray<>()); } @VisibleForTesting Loading @@ -228,8 +225,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { InputMonitorFactory inputMonitorFactory, Supplier<SurfaceControl.Transaction> transactionFactory, RootTaskDisplayAreaOrganizer rootTaskDisplayAreaOrganizer, SparseArray<DesktopModeWindowDecoration> windowDecorByTaskId, ResizeHandleSizeRepository resizeHandleSizeRepository) { SparseArray<DesktopModeWindowDecoration> windowDecorByTaskId) { mContext = context; mMainExecutor = shellExecutor; mMainHandler = mainHandler; Loading @@ -250,7 +246,6 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { mRootTaskDisplayAreaOrganizer = rootTaskDisplayAreaOrganizer; mInputManager = mContext.getSystemService(InputManager.class); mWindowDecorByTaskId = windowDecorByTaskId; mResizeHandleSizeRepository = resizeHandleSizeRepository; shellInit.addInitCallback(this::onInit, this); } Loading Loading @@ -1065,8 +1060,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { mMainHandler, mMainChoreographer, mSyncQueue, mRootTaskDisplayAreaOrganizer, mResizeHandleSizeRepository); mRootTaskDisplayAreaOrganizer); mWindowDecorByTaskId.put(taskInfo.taskId, windowDecoration); final DragPositioningCallback dragPositioningCallback; Loading libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java +14 −33 Original line number Diff line number Diff line Loading @@ -24,11 +24,11 @@ import static android.view.MotionEvent.ACTION_DOWN; import static android.view.MotionEvent.ACTION_UP; import static com.android.launcher3.icons.BaseIconFactory.MODE_DEFAULT; import static com.android.wm.shell.windowdecor.ResizeHandleSizeRepository.getFineResizeCornerPixels; import static com.android.wm.shell.windowdecor.ResizeHandleSizeRepository.getLargeResizeCornerPixels; import static com.android.wm.shell.windowdecor.DragResizeWindowGeometry.getFineResizeCornerSize; import static com.android.wm.shell.windowdecor.DragResizeWindowGeometry.getLargeResizeCornerSize; import static com.android.wm.shell.windowdecor.DragResizeWindowGeometry.getResizeEdgeHandleSize; import android.annotation.NonNull; import android.annotation.Nullable; import android.app.ActivityManager; import android.app.WindowConfiguration.WindowingMode; import android.content.Context; Loading Loading @@ -75,7 +75,6 @@ import com.android.wm.shell.windowdecor.viewholder.DesktopModeWindowDecorationVi import kotlin.Unit; import java.util.function.Function; import java.util.function.Supplier; /** Loading @@ -97,8 +96,6 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin private View.OnLongClickListener mOnCaptionLongClickListener; private View.OnGenericMotionListener mOnCaptionGenericMotionListener; private DragPositioningCallback mDragPositioningCallback; // Listener for handling drag resize events. Will be null if the task cannot be resized. @Nullable private DragResizeInputListener mDragResizeListener; private DragDetector mDragDetector; Loading @@ -121,19 +118,6 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin private final RootTaskDisplayAreaOrganizer mRootTaskDisplayAreaOrganizer; private final ResizeHandleSizeRepository mResizeHandleSizeRepository; private final Function<ResizeHandleSizeRepository, Boolean> mResizeHandleSizeChangedFunction = (ResizeHandleSizeRepository sizeRepository) -> { final Resources res = mResult.mRootView.getResources(); return mDragResizeListener == null || mDragResizeListener.setGeometry( new DragResizeWindowGeometry(mRelayoutParams.mCornerRadius, new Size(mResult.mWidth, mResult.mHeight), sizeRepository.getResizeEdgeHandlePixels(res), getFineResizeCornerPixels(res), getLargeResizeCornerPixels(res)), mDragDetector.getTouchSlop()); }; DesktopModeWindowDecoration( Context context, DisplayController displayController, Loading @@ -143,13 +127,12 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin Handler handler, Choreographer choreographer, SyncTransactionQueue syncQueue, RootTaskDisplayAreaOrganizer rootTaskDisplayAreaOrganizer, ResizeHandleSizeRepository resizeHandleSizeRepository) { RootTaskDisplayAreaOrganizer rootTaskDisplayAreaOrganizer) { this (context, displayController, taskOrganizer, taskInfo, taskSurface, handler, choreographer, syncQueue, rootTaskDisplayAreaOrganizer, resizeHandleSizeRepository, SurfaceControl.Builder::new, SurfaceControl.Transaction::new, WindowContainerTransaction::new, SurfaceControl::new, new SurfaceControlViewHostFactory() {}); SurfaceControl.Builder::new, SurfaceControl.Transaction::new, WindowContainerTransaction::new, SurfaceControl::new, new SurfaceControlViewHostFactory() {}); } DesktopModeWindowDecoration( Loading @@ -162,7 +145,6 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin Choreographer choreographer, SyncTransactionQueue syncQueue, RootTaskDisplayAreaOrganizer rootTaskDisplayAreaOrganizer, ResizeHandleSizeRepository resizeHandleSizeRepository, Supplier<SurfaceControl.Builder> surfaceControlBuilderSupplier, Supplier<SurfaceControl.Transaction> surfaceControlTransactionSupplier, Supplier<WindowContainerTransaction> windowContainerTransactionSupplier, Loading @@ -176,9 +158,6 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin mChoreographer = choreographer; mSyncQueue = syncQueue; mRootTaskDisplayAreaOrganizer = rootTaskDisplayAreaOrganizer; mResizeHandleSizeRepository = resizeHandleSizeRepository; mResizeHandleSizeRepository.registerSizeChangeFunction( mResizeHandleSizeChangedFunction::apply); } void setCaptionListeners( Loading Loading @@ -324,7 +303,11 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin // If either task geometry or position have changed, update this task's // exclusion region listener if (mResizeHandleSizeChangedFunction.apply(mResizeHandleSizeRepository) final Resources res = mResult.mRootView.getResources(); if (mDragResizeListener.setGeometry( new DragResizeWindowGeometry(mRelayoutParams.mCornerRadius, new Size(mResult.mWidth, mResult.mHeight), getResizeEdgeHandleSize(res), getFineResizeCornerSize(res), getLargeResizeCornerSize(res)), touchSlop) || !mTaskInfo.positionInParent.equals(mPositionInParent)) { updateExclusionRegion(); } Loading Loading @@ -960,8 +943,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin Handler handler, Choreographer choreographer, SyncTransactionQueue syncQueue, RootTaskDisplayAreaOrganizer rootTaskDisplayAreaOrganizer, ResizeHandleSizeRepository resizeHandleSizeRepository) { RootTaskDisplayAreaOrganizer rootTaskDisplayAreaOrganizer) { return new DesktopModeWindowDecoration( context, displayController, Loading @@ -971,8 +953,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin handler, choreographer, syncQueue, rootTaskDisplayAreaOrganizer, resizeHandleSizeRepository); rootTaskDisplayAreaOrganizer); } } Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java +4 −15 Original line number Diff line number Diff line Loading @@ -100,7 +100,6 @@ import com.android.wm.shell.unfold.qualifier.UnfoldShellTransition; import com.android.wm.shell.unfold.qualifier.UnfoldTransition; import com.android.wm.shell.windowdecor.CaptionWindowDecorViewModel; import com.android.wm.shell.windowdecor.DesktopModeWindowDecorViewModel; import com.android.wm.shell.windowdecor.ResizeHandleSizeRepository; import com.android.wm.shell.windowdecor.WindowDecorViewModel; import dagger.Binds; Loading Loading @@ -221,8 +220,7 @@ public abstract class WMShellModule { SyncTransactionQueue syncQueue, Transitions transitions, Optional<DesktopTasksController> desktopTasksController, RootTaskDisplayAreaOrganizer rootTaskDisplayAreaOrganizer, ResizeHandleSizeRepository resizeHandleSizeRepository) { RootTaskDisplayAreaOrganizer rootTaskDisplayAreaOrganizer) { if (DesktopModeStatus.canEnterDesktopMode(context)) { return new DesktopModeWindowDecorViewModel( context, Loading @@ -239,8 +237,7 @@ public abstract class WMShellModule { syncQueue, transitions, desktopTasksController, rootTaskDisplayAreaOrganizer, resizeHandleSizeRepository); rootTaskDisplayAreaOrganizer); } return new CaptionWindowDecorViewModel( context, Loading @@ -250,8 +247,7 @@ public abstract class WMShellModule { displayController, rootTaskDisplayAreaOrganizer, syncQueue, transitions, resizeHandleSizeRepository); transitions); } // Loading Loading @@ -533,8 +529,7 @@ public abstract class WMShellModule { exitDesktopTransitionHandler, toggleResizeDesktopTaskTransitionHandler, dragToDesktopTransitionHandler, desktopModeTaskRepository, desktopModeLoggerTransitionObserver, launchAdjacentController, recentsTransitionHandler, multiInstanceHelper, mainExecutor, desktopTasksLimiter); recentsTransitionHandler, multiInstanceHelper, mainExecutor, desktopTasksLimiter); } @WMSingleton Loading Loading @@ -627,12 +622,6 @@ public abstract class WMShellModule { return new DesktopModeEventLogger(); } @WMSingleton @Provides static ResizeHandleSizeRepository provideResizeHandleSizeRepository() { return new ResizeHandleSizeRepository(); } // // Drag and drop // Loading
libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecorViewModel.java +2 −6 Original line number Diff line number Diff line Loading @@ -63,7 +63,6 @@ public class CaptionWindowDecorViewModel implements WindowDecorViewModel { private final RootTaskDisplayAreaOrganizer mRootTaskDisplayAreaOrganizer; private final SyncTransactionQueue mSyncQueue; private final Transitions mTransitions; private final ResizeHandleSizeRepository mResizeHandleSizeRepository; private TaskOperations mTaskOperations; private final SparseArray<CaptionWindowDecoration> mWindowDecorByTaskId = new SparseArray<>(); Loading @@ -76,8 +75,7 @@ public class CaptionWindowDecorViewModel implements WindowDecorViewModel { DisplayController displayController, RootTaskDisplayAreaOrganizer rootTaskDisplayAreaOrganizer, SyncTransactionQueue syncQueue, Transitions transitions, ResizeHandleSizeRepository resizeHandleSizeRepository) { Transitions transitions) { mContext = context; mMainHandler = mainHandler; mMainChoreographer = mainChoreographer; Loading @@ -86,7 +84,6 @@ public class CaptionWindowDecorViewModel implements WindowDecorViewModel { mRootTaskDisplayAreaOrganizer = rootTaskDisplayAreaOrganizer; mSyncQueue = syncQueue; mTransitions = transitions; mResizeHandleSizeRepository = resizeHandleSizeRepository; if (!Transitions.ENABLE_SHELL_TRANSITIONS) { mTaskOperations = new TaskOperations(null, mContext, mSyncQueue); } Loading Loading @@ -234,8 +231,7 @@ public class CaptionWindowDecorViewModel implements WindowDecorViewModel { taskSurface, mMainHandler, mMainChoreographer, mSyncQueue, mResizeHandleSizeRepository); mSyncQueue); mWindowDecorByTaskId.put(taskInfo.taskId, windowDecoration); final FluidResizeTaskPositioner taskPositioner = Loading
libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecoration.java +8 −27 Original line number Diff line number Diff line Loading @@ -16,11 +16,11 @@ package com.android.wm.shell.windowdecor; import static com.android.wm.shell.windowdecor.ResizeHandleSizeRepository.getFineResizeCornerPixels; import static com.android.wm.shell.windowdecor.ResizeHandleSizeRepository.getLargeResizeCornerPixels; import static com.android.wm.shell.windowdecor.DragResizeWindowGeometry.getFineResizeCornerSize; import static com.android.wm.shell.windowdecor.DragResizeWindowGeometry.getLargeResizeCornerSize; import static com.android.wm.shell.windowdecor.DragResizeWindowGeometry.getResizeEdgeHandleSize; import android.annotation.NonNull; import android.annotation.Nullable; import android.app.ActivityManager.RunningTaskInfo; import android.app.WindowConfiguration; import android.app.WindowConfiguration.WindowingMode; Loading @@ -45,8 +45,6 @@ import com.android.wm.shell.common.DisplayController; import com.android.wm.shell.common.DisplayLayout; import com.android.wm.shell.common.SyncTransactionQueue; import java.util.function.Consumer; /** * Defines visuals and behaviors of a window decoration of a caption bar and shadows. It works with * {@link CaptionWindowDecorViewModel}. The caption bar contains a back button, minimize button, Loading @@ -60,28 +58,12 @@ public class CaptionWindowDecoration extends WindowDecoration<WindowDecorLinearL private View.OnClickListener mOnCaptionButtonClickListener; private View.OnTouchListener mOnCaptionTouchListener; private DragPositioningCallback mDragPositioningCallback; // Listener for handling drag resize events. Will be null if the task cannot be resized. @Nullable private DragResizeInputListener mDragResizeListener; private DragDetector mDragDetector; private RelayoutParams mRelayoutParams = new RelayoutParams(); private final RelayoutResult<WindowDecorLinearLayout> mResult = new RelayoutResult<>(); private final ResizeHandleSizeRepository mResizeHandleSizeRepository; private final Consumer<ResizeHandleSizeRepository> mResizeHandleSizeChangedFunction = (ResizeHandleSizeRepository sizeRepository) -> { if (mDragResizeListener == null) { return; } final Resources res = mResult.mRootView.getResources(); mDragResizeListener.setGeometry( new DragResizeWindowGeometry(0 /* taskCornerRadius */, new Size(mResult.mWidth, mResult.mHeight), sizeRepository.getResizeEdgeHandlePixels(res), getFineResizeCornerPixels(res), getLargeResizeCornerPixels(res)), mDragDetector.getTouchSlop()); }; CaptionWindowDecoration( Context context, Loading @@ -91,15 +73,11 @@ public class CaptionWindowDecoration extends WindowDecoration<WindowDecorLinearL SurfaceControl taskSurface, Handler handler, Choreographer choreographer, SyncTransactionQueue syncQueue, ResizeHandleSizeRepository resizeHandleSizeRepository) { SyncTransactionQueue syncQueue) { super(context, displayController, taskOrganizer, taskInfo, taskSurface); mHandler = handler; mChoreographer = choreographer; mSyncQueue = syncQueue; mResizeHandleSizeRepository = resizeHandleSizeRepository; mResizeHandleSizeRepository.registerSizeChangeFunction(mResizeHandleSizeChangedFunction); } void setCaptionListeners( Loading Loading @@ -258,7 +236,10 @@ public class CaptionWindowDecoration extends WindowDecoration<WindowDecorLinearL .getScaledTouchSlop(); mDragDetector.setTouchSlop(touchSlop); mResizeHandleSizeChangedFunction.accept(mResizeHandleSizeRepository); final Resources res = mResult.mRootView.getResources(); mDragResizeListener.setGeometry(new DragResizeWindowGeometry(0 /* taskCornerRadius */, new Size(mResult.mWidth, mResult.mHeight), getResizeEdgeHandleSize(res), getFineResizeCornerSize(res), getLargeResizeCornerSize(res)), touchSlop); } /** Loading
libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java +4 −10 Original line number Diff line number Diff line Loading @@ -149,7 +149,6 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { new DesktopModeKeyguardChangeListener(); private final RootTaskDisplayAreaOrganizer mRootTaskDisplayAreaOrganizer; private final DisplayInsetsController mDisplayInsetsController; private final ResizeHandleSizeRepository mResizeHandleSizeRepository; private final Region mExclusionRegion = Region.obtain(); private boolean mInImmersiveMode; Loading Loading @@ -182,8 +181,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { SyncTransactionQueue syncQueue, Transitions transitions, Optional<DesktopTasksController> desktopTasksController, RootTaskDisplayAreaOrganizer rootTaskDisplayAreaOrganizer, ResizeHandleSizeRepository resizeHandleSizeRepository RootTaskDisplayAreaOrganizer rootTaskDisplayAreaOrganizer ) { this( context, Loading @@ -204,8 +202,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { new InputMonitorFactory(), SurfaceControl.Transaction::new, rootTaskDisplayAreaOrganizer, new SparseArray<>(), resizeHandleSizeRepository); new SparseArray<>()); } @VisibleForTesting Loading @@ -228,8 +225,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { InputMonitorFactory inputMonitorFactory, Supplier<SurfaceControl.Transaction> transactionFactory, RootTaskDisplayAreaOrganizer rootTaskDisplayAreaOrganizer, SparseArray<DesktopModeWindowDecoration> windowDecorByTaskId, ResizeHandleSizeRepository resizeHandleSizeRepository) { SparseArray<DesktopModeWindowDecoration> windowDecorByTaskId) { mContext = context; mMainExecutor = shellExecutor; mMainHandler = mainHandler; Loading @@ -250,7 +246,6 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { mRootTaskDisplayAreaOrganizer = rootTaskDisplayAreaOrganizer; mInputManager = mContext.getSystemService(InputManager.class); mWindowDecorByTaskId = windowDecorByTaskId; mResizeHandleSizeRepository = resizeHandleSizeRepository; shellInit.addInitCallback(this::onInit, this); } Loading Loading @@ -1065,8 +1060,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { mMainHandler, mMainChoreographer, mSyncQueue, mRootTaskDisplayAreaOrganizer, mResizeHandleSizeRepository); mRootTaskDisplayAreaOrganizer); mWindowDecorByTaskId.put(taskInfo.taskId, windowDecoration); final DragPositioningCallback dragPositioningCallback; Loading
libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java +14 −33 Original line number Diff line number Diff line Loading @@ -24,11 +24,11 @@ import static android.view.MotionEvent.ACTION_DOWN; import static android.view.MotionEvent.ACTION_UP; import static com.android.launcher3.icons.BaseIconFactory.MODE_DEFAULT; import static com.android.wm.shell.windowdecor.ResizeHandleSizeRepository.getFineResizeCornerPixels; import static com.android.wm.shell.windowdecor.ResizeHandleSizeRepository.getLargeResizeCornerPixels; import static com.android.wm.shell.windowdecor.DragResizeWindowGeometry.getFineResizeCornerSize; import static com.android.wm.shell.windowdecor.DragResizeWindowGeometry.getLargeResizeCornerSize; import static com.android.wm.shell.windowdecor.DragResizeWindowGeometry.getResizeEdgeHandleSize; import android.annotation.NonNull; import android.annotation.Nullable; import android.app.ActivityManager; import android.app.WindowConfiguration.WindowingMode; import android.content.Context; Loading Loading @@ -75,7 +75,6 @@ import com.android.wm.shell.windowdecor.viewholder.DesktopModeWindowDecorationVi import kotlin.Unit; import java.util.function.Function; import java.util.function.Supplier; /** Loading @@ -97,8 +96,6 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin private View.OnLongClickListener mOnCaptionLongClickListener; private View.OnGenericMotionListener mOnCaptionGenericMotionListener; private DragPositioningCallback mDragPositioningCallback; // Listener for handling drag resize events. Will be null if the task cannot be resized. @Nullable private DragResizeInputListener mDragResizeListener; private DragDetector mDragDetector; Loading @@ -121,19 +118,6 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin private final RootTaskDisplayAreaOrganizer mRootTaskDisplayAreaOrganizer; private final ResizeHandleSizeRepository mResizeHandleSizeRepository; private final Function<ResizeHandleSizeRepository, Boolean> mResizeHandleSizeChangedFunction = (ResizeHandleSizeRepository sizeRepository) -> { final Resources res = mResult.mRootView.getResources(); return mDragResizeListener == null || mDragResizeListener.setGeometry( new DragResizeWindowGeometry(mRelayoutParams.mCornerRadius, new Size(mResult.mWidth, mResult.mHeight), sizeRepository.getResizeEdgeHandlePixels(res), getFineResizeCornerPixels(res), getLargeResizeCornerPixels(res)), mDragDetector.getTouchSlop()); }; DesktopModeWindowDecoration( Context context, DisplayController displayController, Loading @@ -143,13 +127,12 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin Handler handler, Choreographer choreographer, SyncTransactionQueue syncQueue, RootTaskDisplayAreaOrganizer rootTaskDisplayAreaOrganizer, ResizeHandleSizeRepository resizeHandleSizeRepository) { RootTaskDisplayAreaOrganizer rootTaskDisplayAreaOrganizer) { this (context, displayController, taskOrganizer, taskInfo, taskSurface, handler, choreographer, syncQueue, rootTaskDisplayAreaOrganizer, resizeHandleSizeRepository, SurfaceControl.Builder::new, SurfaceControl.Transaction::new, WindowContainerTransaction::new, SurfaceControl::new, new SurfaceControlViewHostFactory() {}); SurfaceControl.Builder::new, SurfaceControl.Transaction::new, WindowContainerTransaction::new, SurfaceControl::new, new SurfaceControlViewHostFactory() {}); } DesktopModeWindowDecoration( Loading @@ -162,7 +145,6 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin Choreographer choreographer, SyncTransactionQueue syncQueue, RootTaskDisplayAreaOrganizer rootTaskDisplayAreaOrganizer, ResizeHandleSizeRepository resizeHandleSizeRepository, Supplier<SurfaceControl.Builder> surfaceControlBuilderSupplier, Supplier<SurfaceControl.Transaction> surfaceControlTransactionSupplier, Supplier<WindowContainerTransaction> windowContainerTransactionSupplier, Loading @@ -176,9 +158,6 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin mChoreographer = choreographer; mSyncQueue = syncQueue; mRootTaskDisplayAreaOrganizer = rootTaskDisplayAreaOrganizer; mResizeHandleSizeRepository = resizeHandleSizeRepository; mResizeHandleSizeRepository.registerSizeChangeFunction( mResizeHandleSizeChangedFunction::apply); } void setCaptionListeners( Loading Loading @@ -324,7 +303,11 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin // If either task geometry or position have changed, update this task's // exclusion region listener if (mResizeHandleSizeChangedFunction.apply(mResizeHandleSizeRepository) final Resources res = mResult.mRootView.getResources(); if (mDragResizeListener.setGeometry( new DragResizeWindowGeometry(mRelayoutParams.mCornerRadius, new Size(mResult.mWidth, mResult.mHeight), getResizeEdgeHandleSize(res), getFineResizeCornerSize(res), getLargeResizeCornerSize(res)), touchSlop) || !mTaskInfo.positionInParent.equals(mPositionInParent)) { updateExclusionRegion(); } Loading Loading @@ -960,8 +943,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin Handler handler, Choreographer choreographer, SyncTransactionQueue syncQueue, RootTaskDisplayAreaOrganizer rootTaskDisplayAreaOrganizer, ResizeHandleSizeRepository resizeHandleSizeRepository) { RootTaskDisplayAreaOrganizer rootTaskDisplayAreaOrganizer) { return new DesktopModeWindowDecoration( context, displayController, Loading @@ -971,8 +953,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin handler, choreographer, syncQueue, rootTaskDisplayAreaOrganizer, resizeHandleSizeRepository); rootTaskDisplayAreaOrganizer); } } Loading