Merge "[12/n] Fix tiling bug causing crash because of HSUM" into main
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/tiling/DesktopTilingWindowDecoration.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/tiling/DesktopTilingWindowDecoration.kt
index 8f089dc..2303ec9 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/tiling/DesktopTilingWindowDecoration.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/tiling/DesktopTilingWindowDecoration.kt
@@ -23,6 +23,7 @@
import android.graphics.Bitmap
import android.graphics.Rect
import android.os.IBinder
+import android.os.UserHandle
import android.util.Slog
import android.view.SurfaceControl
import android.view.SurfaceControl.Transaction
@@ -361,6 +362,8 @@
private lateinit var resizeVeilBitmap: Bitmap
private lateinit var resizeVeil: ResizeVeil
private val displayContext = displayController.getDisplayContext(taskInfo.displayId)
+ private val userContext =
+ context.createContextAsUser(UserHandle.of(taskInfo.userId), /* flags= */ 0)
fun initIfNeeded() {
if (!isInitialised) {
@@ -379,7 +382,7 @@
displayContext?.let {
createIconFactory(displayContext, R.dimen.desktop_mode_resize_veil_icon_size)
} ?: return
- val pm = context.getApplicationContext().getPackageManager()
+ val pm = userContext.getPackageManager()
val activityInfo = pm.getActivityInfo(baseActivity, 0 /* flags */)
val provider = IconProvider(displayContext)
val appIconDrawable = provider.getIcon(activityInfo)
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/tiling/DesktopTilingDecorViewModelTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/tiling/DesktopTilingDecorViewModelTest.kt
index 0ccd424..52e93bb 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/tiling/DesktopTilingDecorViewModelTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/tiling/DesktopTilingDecorViewModelTest.kt
@@ -39,6 +39,7 @@
import org.mockito.kotlin.mock
import org.mockito.kotlin.times
import org.mockito.kotlin.verify
+import org.mockito.kotlin.whenever
@SmallTest
@RunWith(AndroidTestingRunner::class)
@@ -73,6 +74,7 @@
returnToDragStartAnimatorMock,
desktopRepository,
)
+ whenever(contextMock.createContextAsUser(any(), any())).thenReturn(contextMock)
}
@Test
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/tiling/DesktopTilingWindowDecorationTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/tiling/DesktopTilingWindowDecorationTest.kt
index 0b04a21..5b0cdc3 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/tiling/DesktopTilingWindowDecorationTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/tiling/DesktopTilingWindowDecorationTest.kt
@@ -112,6 +112,7 @@
returnToDragStartAnimator,
desktopRepository,
)
+ whenever(context.createContextAsUser(any(), any())).thenReturn(context)
}
@Test
@@ -479,6 +480,7 @@
assertThat(tilingDecoration.rightTaskResizingHelper).isNull()
verify(desktopWindowDecoration, times(2)).removeDragResizeListener(any())
verify(tiledTaskHelper, times(2)).dispose()
+ verify(context, never()).getApplicationContext()
}
private fun initTiledTaskHelperMock(taskInfo: ActivityManager.RunningTaskInfo) {