Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 01d38936 authored by Wes Okuhara's avatar Wes Okuhara Committed by Android (Google) Code Review
Browse files

Merge "Desktop screenshots: Save partial screenshot under current user" into main

parents 177b131b 4ac4f54b
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -18,13 +18,13 @@ package com.android.systemui.screencapture.record.largescreen.domain.interactor

import android.graphics.Rect
import android.os.Handler
import android.os.UserHandle
import android.view.WindowManager
import com.android.internal.util.ScreenshotHelper
import com.android.internal.util.ScreenshotRequest
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Background
import com.android.systemui.screenshot.ImageCapture
import com.android.systemui.user.data.repository.UserRepository
import javax.inject.Inject
import kotlin.coroutines.CoroutineContext
import kotlinx.coroutines.withContext
@@ -38,6 +38,7 @@ constructor(
    private val screenshotHelper: ScreenshotHelper,
    @Background private val backgroundContext: CoroutineContext,
    @Background private val backgroundHandler: Handler,
    private val userRepository: UserRepository,
) {
    suspend fun takeFullscreenScreenshot(displayId: Int) {
        val request =
@@ -64,7 +65,7 @@ constructor(
                .setBitmap(bitmap)
                .setBoundsOnScreen(regionBounds)
                .setDisplayId(displayId)
                .setUserId(UserHandle.USER_CURRENT)
                .setUserId(userRepository.getSelectedUserInfo().id)
                .build()

        takeScreenshot(request)
+8 −2
Original line number Diff line number Diff line
@@ -16,9 +16,9 @@

package com.android.systemui.screencapture.record.largescreen.domain.interactor

import android.content.pm.UserInfo
import android.graphics.Bitmap
import android.graphics.Rect
import android.os.UserHandle
import android.view.WindowManager
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
@@ -29,6 +29,7 @@ import com.android.systemui.kosmos.testScope
import com.android.systemui.kosmos.useUnconfinedTestDispatcher
import com.android.systemui.screenshot.mockImageCapture
import com.android.systemui.testKosmos
import com.android.systemui.user.data.repository.fakeUserRepository
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.test.runTest
import org.junit.Before
@@ -85,6 +86,11 @@ class ScreenshotInteractorTest : SysuiTestCase() {
            whenever(kosmos.mockImageCapture.captureDisplay(eq(displayId), eq(bounds)))
                .thenReturn(mockBitmap)

            val mainUser = UserInfo(0, "primary user", UserInfo.FLAG_MAIN)
            val secondaryUser = UserInfo(1, "secondary user", 0)
            kosmos.fakeUserRepository.setUserInfos(listOf(mainUser, secondaryUser))
            kosmos.fakeUserRepository.setSelectedUserInfo(secondaryUser)

            interactor.takePartialScreenshot(bounds, displayId)

            val screenshotRequestCaptor = argumentCaptor<ScreenshotRequest>()
@@ -99,7 +105,7 @@ class ScreenshotInteractorTest : SysuiTestCase() {
            assertThat(capturedRequest.bitmap).isEqualTo(mockBitmap)
            assertThat(capturedRequest.boundsInScreen).isEqualTo(bounds)
            assertThat(capturedRequest.displayId).isEqualTo(displayId)
            assertThat(capturedRequest.userId).isEqualTo(UserHandle.USER_CURRENT)
            assertThat(capturedRequest.userId).isEqualTo(secondaryUser.id)
        }
    }
}
+2 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import com.android.internal.util.mockScreenshotHelper
import com.android.systemui.kosmos.Kosmos
import com.android.systemui.kosmos.backgroundCoroutineContext
import com.android.systemui.screenshot.mockImageCapture
import com.android.systemui.user.data.repository.userRepository

val Kosmos.screenshotInteractor by
    Kosmos.Fixture {
@@ -29,5 +30,6 @@ val Kosmos.screenshotInteractor by
            screenshotHelper = mockScreenshotHelper,
            backgroundContext = backgroundCoroutineContext,
            backgroundHandler = fakeHandler,
            userRepository = userRepository,
        )
    }