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

Commit d807b51e authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Adds common ScreenCaptureTarget" into main

parents 7aa6289b 3dc69f9a
Loading
Loading
Loading
Loading
+2 −7
Original line number Diff line number Diff line
@@ -16,14 +16,12 @@

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

import android.app.ActivityOptions
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
import com.android.systemui.kosmos.collectLastValue
import com.android.systemui.kosmos.runTest
import com.android.systemui.mediaprojection.MediaProjectionCaptureTarget
import com.android.systemui.screencapture.record.shared.model.RecordTargetModel
import com.android.systemui.screencapture.common.shared.model.ScreenCaptureTarget
import com.android.systemui.screenrecord.ScreenRecordingAudioSource
import com.android.systemui.testKosmosNew
import com.google.common.truth.Truth.assertThat
@@ -54,10 +52,7 @@ class ScreenCaptureRecordParametersModelInteractorTest : SysuiTestCase() {
    @Test
    fun testChangingTarget() =
        kosmos.runTest {
            val newTarget =
                RecordTargetModel.App(
                    MediaProjectionCaptureTarget(ActivityOptions.LaunchCookie(), 1)
                )
            val newTarget = ScreenCaptureTarget.App(taskId = 1)
            val target by collectLastValue(underTest.parameters.map { it.target })
            assertThat(target).isNotEqualTo(newTarget)

+11 −10
Original line number Diff line number Diff line
@@ -14,20 +14,21 @@
 * limitations under the License.
 */

package com.android.systemui.screencapture.record.shared.model
package com.android.systemui.screencapture.common.shared.model

import android.graphics.Rect
import com.android.systemui.mediaprojection.MediaProjectionCaptureTarget

/** Models the target to be recorded. */
sealed interface RecordTargetModel {
/** The target to be captured. */
sealed interface ScreenCaptureTarget {
    /** A full display. */
    data class Fullscreen(val displayId: Int) : ScreenCaptureTarget

    /** A single app should be recorded. */
    data class App(val target: MediaProjectionCaptureTarget) : RecordTargetModel
    /** A region on a display. */
    data class Region(val displayId: Int, val rect: Rect) : ScreenCaptureTarget

    /** The whole screen should be recorded. */
    data object WholeScreen : RecordTargetModel
    /** A full app. */
    data class App(val taskId: Int) : ScreenCaptureTarget

    /** The region of the screen should be recorded. */
    data class Region(val rect: Rect) : RecordTargetModel
    /** Content within an app. */
    data class AppContent(val contentId: Int) : ScreenCaptureTarget
}
+3 −2
Original line number Diff line number Diff line
@@ -16,8 +16,9 @@

package com.android.systemui.screencapture.record.data.repository

import android.view.Display
import com.android.systemui.screencapture.common.ScreenCapture
import com.android.systemui.screencapture.record.shared.model.RecordTargetModel
import com.android.systemui.screencapture.common.shared.model.ScreenCaptureTarget
import com.android.systemui.screencapture.record.shared.model.ScreenCaptureRecordParametersModel
import com.android.systemui.screenrecord.ScreenRecordingAudioSource
import javax.inject.Inject
@@ -31,7 +32,7 @@ class ScreenCaptureRecordParametersRepository @Inject constructor() {
    private val _parameters =
        MutableStateFlow(
            ScreenCaptureRecordParametersModel(
                target = RecordTargetModel.WholeScreen,
                target = ScreenCaptureTarget.Fullscreen(Display.DEFAULT_DISPLAY),
                audioSource = ScreenRecordingAudioSource.NONE,
                shouldShowTaps = false,
            )
+2 −2
Original line number Diff line number Diff line
@@ -17,8 +17,8 @@
package com.android.systemui.screencapture.record.domain.interactor

import com.android.systemui.screencapture.common.ScreenCapture
import com.android.systemui.screencapture.common.shared.model.ScreenCaptureTarget
import com.android.systemui.screencapture.record.data.repository.ScreenCaptureRecordParametersRepository
import com.android.systemui.screencapture.record.shared.model.RecordTargetModel
import com.android.systemui.screenrecord.ScreenRecordingAudioSource
import javax.inject.Inject

@@ -33,7 +33,7 @@ constructor(private val repository: ScreenCaptureRecordParametersRepository) {
        repository.updateParameters { it.copy(audioSource = audioSource) }
    }

    fun setRecordTarget(target: RecordTargetModel) {
    fun setRecordTarget(target: ScreenCaptureTarget) {
        repository.updateParameters { it.copy(target = target) }
    }

+2 −1
Original line number Diff line number Diff line
@@ -16,11 +16,12 @@

package com.android.systemui.screencapture.record.shared.model

import com.android.systemui.screencapture.common.shared.model.ScreenCaptureTarget
import com.android.systemui.screenrecord.ScreenRecordingAudioSource

/** Models a set of parameters necessary to start a screen recording. */
data class ScreenCaptureRecordParametersModel(
    val target: RecordTargetModel,
    val target: ScreenCaptureTarget,
    val audioSource: ScreenRecordingAudioSource,
    val shouldShowTaps: Boolean,
)
Loading