Loading libs/WindowManager/Shell/src/com/android/wm/shell/common/MultiDisplayDragMoveIndicatorController.kt +2 −0 Original line number Diff line number Diff line Loading @@ -58,6 +58,7 @@ class MultiDisplayDragMoveIndicatorController( continue } val displayLayout = displayController.getDisplayLayout(displayId) ?: continue val displayContext = displayController.getDisplayContext(displayId) ?: continue val shouldBeVisible = RectF.intersects(RectF(boundsDp), displayLayout.globalBoundsDp()) if ( Loading Loading @@ -88,6 +89,7 @@ class MultiDisplayDragMoveIndicatorController( indicatorSurfaceFactory.create( taskInfo, displayController.getDisplay(displayId), displayContext, ) newIndicator.show( transactionSupplier(), Loading libs/WindowManager/Shell/src/com/android/wm/shell/common/MultiDisplayDragMoveIndicatorSurface.kt +7 −3 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.view.SurfaceControl import android.window.TaskConstants import androidx.compose.ui.graphics.toArgb import com.android.wm.shell.RootTaskDisplayAreaOrganizer import com.android.wm.shell.shared.R import com.android.wm.shell.windowdecor.common.DecorThemeUtil /** Loading @@ -46,6 +47,8 @@ class MultiDisplayDragMoveIndicatorSurface( private var veilSurface: SurfaceControl? = null private val decorThemeUtil = DecorThemeUtil(context) private val cornerRadius = context.resources .getDimensionPixelSize(R.dimen.desktop_windowing_freeform_rounded_corner_radius).toFloat() init { Trace.beginSection("DragIndicatorSurface#init") Loading Loading @@ -108,13 +111,13 @@ class MultiDisplayDragMoveIndicatorSurface( } isVisible = shouldBeVisible val veil = veilSurface ?: return transaction.setCrop(veil, bounds) transaction.setCrop(veil, bounds).setCornerRadius(veil, cornerRadius) } /** * Factory for creating [MultiDisplayDragMoveIndicatorSurface] instances with the [context]. */ class Factory(private val context: Context) { class Factory() { private val surfaceControlBuilderFactory: SurfaceControlBuilderFactory = object : SurfaceControlBuilderFactory {} Loading @@ -125,8 +128,9 @@ class MultiDisplayDragMoveIndicatorSurface( fun create( taskInfo: RunningTaskInfo, display: Display, displayContext: Context, ) = MultiDisplayDragMoveIndicatorSurface( context, displayContext, taskInfo, display, surfaceControlBuilderFactory, Loading libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java +2 −2 Original line number Diff line number Diff line Loading @@ -1136,8 +1136,8 @@ public abstract class WMShellModule { @WMSingleton @Provides static MultiDisplayDragMoveIndicatorSurface.Factory providesMultiDisplayDragMoveIndicatorSurfaceFactory(Context context) { return new MultiDisplayDragMoveIndicatorSurface.Factory(context); providesMultiDisplayDragMoveIndicatorSurfaceFactory() { return new MultiDisplayDragMoveIndicatorSurface.Factory(); } @WMSingleton Loading libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/common/MultiDisplayDragMoveIndicatorControllerTest.kt +6 −5 Original line number Diff line number Diff line Loading @@ -94,10 +94,11 @@ class MultiDisplayDragMoveIndicatorControllerTest : ShellTestCase() { taskInfo.taskId = TASK_ID whenever(displayController.getDisplayLayout(0)).thenReturn(spyDisplayLayout0) whenever(displayController.getDisplayLayout(1)).thenReturn(spyDisplayLayout1) whenever(displayController.getDisplayContext(any())).thenReturn(mContext) whenever(displayController.getDisplay(0)).thenReturn(display0) whenever(displayController.getDisplay(1)).thenReturn(display1) whenever(indicatorSurfaceFactory.create(taskInfo, display0)).thenReturn(indicatorSurface0) whenever(indicatorSurfaceFactory.create(taskInfo, display1)).thenReturn(indicatorSurface1) whenever(indicatorSurfaceFactory.create(eq(taskInfo), eq(display0), any())).thenReturn(indicatorSurface0) whenever(indicatorSurfaceFactory.create(eq(taskInfo), eq(display1), any())).thenReturn(indicatorSurface1) whenever(transactionSupplier.get()).thenReturn(transaction) } Loading @@ -111,7 +112,7 @@ class MultiDisplayDragMoveIndicatorControllerTest : ShellTestCase() { ) { transaction } executor.flushAll() verify(indicatorSurfaceFactory, never()).create(any(), any()) verify(indicatorSurfaceFactory, never()).create(any(), any(), any()) } @Test Loading @@ -124,7 +125,7 @@ class MultiDisplayDragMoveIndicatorControllerTest : ShellTestCase() { ) { transaction } executor.flushAll() verify(indicatorSurfaceFactory, never()).create(any(), any()) verify(indicatorSurfaceFactory, never()).create(any(), any(), any()) } @Test Loading @@ -137,7 +138,7 @@ class MultiDisplayDragMoveIndicatorControllerTest : ShellTestCase() { ) { transaction } executor.flushAll() verify(indicatorSurfaceFactory, times(1)).create(taskInfo, display1) verify(indicatorSurfaceFactory, times(1)).create(eq(taskInfo), eq(display1), any()) verify(indicatorSurface1, times(1)) .show(transaction, taskInfo, rootTaskDisplayAreaOrganizer, 1, Rect(0, 1800, 200, 2400)) Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/common/MultiDisplayDragMoveIndicatorController.kt +2 −0 Original line number Diff line number Diff line Loading @@ -58,6 +58,7 @@ class MultiDisplayDragMoveIndicatorController( continue } val displayLayout = displayController.getDisplayLayout(displayId) ?: continue val displayContext = displayController.getDisplayContext(displayId) ?: continue val shouldBeVisible = RectF.intersects(RectF(boundsDp), displayLayout.globalBoundsDp()) if ( Loading Loading @@ -88,6 +89,7 @@ class MultiDisplayDragMoveIndicatorController( indicatorSurfaceFactory.create( taskInfo, displayController.getDisplay(displayId), displayContext, ) newIndicator.show( transactionSupplier(), Loading
libs/WindowManager/Shell/src/com/android/wm/shell/common/MultiDisplayDragMoveIndicatorSurface.kt +7 −3 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.view.SurfaceControl import android.window.TaskConstants import androidx.compose.ui.graphics.toArgb import com.android.wm.shell.RootTaskDisplayAreaOrganizer import com.android.wm.shell.shared.R import com.android.wm.shell.windowdecor.common.DecorThemeUtil /** Loading @@ -46,6 +47,8 @@ class MultiDisplayDragMoveIndicatorSurface( private var veilSurface: SurfaceControl? = null private val decorThemeUtil = DecorThemeUtil(context) private val cornerRadius = context.resources .getDimensionPixelSize(R.dimen.desktop_windowing_freeform_rounded_corner_radius).toFloat() init { Trace.beginSection("DragIndicatorSurface#init") Loading Loading @@ -108,13 +111,13 @@ class MultiDisplayDragMoveIndicatorSurface( } isVisible = shouldBeVisible val veil = veilSurface ?: return transaction.setCrop(veil, bounds) transaction.setCrop(veil, bounds).setCornerRadius(veil, cornerRadius) } /** * Factory for creating [MultiDisplayDragMoveIndicatorSurface] instances with the [context]. */ class Factory(private val context: Context) { class Factory() { private val surfaceControlBuilderFactory: SurfaceControlBuilderFactory = object : SurfaceControlBuilderFactory {} Loading @@ -125,8 +128,9 @@ class MultiDisplayDragMoveIndicatorSurface( fun create( taskInfo: RunningTaskInfo, display: Display, displayContext: Context, ) = MultiDisplayDragMoveIndicatorSurface( context, displayContext, taskInfo, display, surfaceControlBuilderFactory, Loading
libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java +2 −2 Original line number Diff line number Diff line Loading @@ -1136,8 +1136,8 @@ public abstract class WMShellModule { @WMSingleton @Provides static MultiDisplayDragMoveIndicatorSurface.Factory providesMultiDisplayDragMoveIndicatorSurfaceFactory(Context context) { return new MultiDisplayDragMoveIndicatorSurface.Factory(context); providesMultiDisplayDragMoveIndicatorSurfaceFactory() { return new MultiDisplayDragMoveIndicatorSurface.Factory(); } @WMSingleton Loading
libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/common/MultiDisplayDragMoveIndicatorControllerTest.kt +6 −5 Original line number Diff line number Diff line Loading @@ -94,10 +94,11 @@ class MultiDisplayDragMoveIndicatorControllerTest : ShellTestCase() { taskInfo.taskId = TASK_ID whenever(displayController.getDisplayLayout(0)).thenReturn(spyDisplayLayout0) whenever(displayController.getDisplayLayout(1)).thenReturn(spyDisplayLayout1) whenever(displayController.getDisplayContext(any())).thenReturn(mContext) whenever(displayController.getDisplay(0)).thenReturn(display0) whenever(displayController.getDisplay(1)).thenReturn(display1) whenever(indicatorSurfaceFactory.create(taskInfo, display0)).thenReturn(indicatorSurface0) whenever(indicatorSurfaceFactory.create(taskInfo, display1)).thenReturn(indicatorSurface1) whenever(indicatorSurfaceFactory.create(eq(taskInfo), eq(display0), any())).thenReturn(indicatorSurface0) whenever(indicatorSurfaceFactory.create(eq(taskInfo), eq(display1), any())).thenReturn(indicatorSurface1) whenever(transactionSupplier.get()).thenReturn(transaction) } Loading @@ -111,7 +112,7 @@ class MultiDisplayDragMoveIndicatorControllerTest : ShellTestCase() { ) { transaction } executor.flushAll() verify(indicatorSurfaceFactory, never()).create(any(), any()) verify(indicatorSurfaceFactory, never()).create(any(), any(), any()) } @Test Loading @@ -124,7 +125,7 @@ class MultiDisplayDragMoveIndicatorControllerTest : ShellTestCase() { ) { transaction } executor.flushAll() verify(indicatorSurfaceFactory, never()).create(any(), any()) verify(indicatorSurfaceFactory, never()).create(any(), any(), any()) } @Test Loading @@ -137,7 +138,7 @@ class MultiDisplayDragMoveIndicatorControllerTest : ShellTestCase() { ) { transaction } executor.flushAll() verify(indicatorSurfaceFactory, times(1)).create(taskInfo, display1) verify(indicatorSurfaceFactory, times(1)).create(eq(taskInfo), eq(display1), any()) verify(indicatorSurface1, times(1)) .show(transaction, taskInfo, rootTaskDisplayAreaOrganizer, 1, Rect(0, 1800, 200, 2400)) Loading