Loading packages/SystemUI/multivalentTests/src/com/android/systemui/screencapture/record/domain/interactor/ScreenCaptureRecordParametersModelInteractorTest.kt +2 −7 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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) Loading packages/SystemUI/src/com/android/systemui/screencapture/record/shared/model/RecordTargetModel.kt→packages/SystemUI/src/com/android/systemui/screencapture/common/shared/model/ScreenCaptureTarget.kt +11 −10 Original line number Diff line number Diff line Loading @@ -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 } packages/SystemUI/src/com/android/systemui/screencapture/record/data/repository/ScreenCaptureRecordParametersRepository.kt +3 −2 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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, ) Loading packages/SystemUI/src/com/android/systemui/screencapture/record/domain/interactor/ScreenCaptureRecordParametersInteractor.kt +2 −2 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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) } } Loading packages/SystemUI/src/com/android/systemui/screencapture/record/shared/model/ScreenCaptureRecordParametersModel.kt +2 −1 Original line number Diff line number Diff line Loading @@ -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
packages/SystemUI/multivalentTests/src/com/android/systemui/screencapture/record/domain/interactor/ScreenCaptureRecordParametersModelInteractorTest.kt +2 −7 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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) Loading
packages/SystemUI/src/com/android/systemui/screencapture/record/shared/model/RecordTargetModel.kt→packages/SystemUI/src/com/android/systemui/screencapture/common/shared/model/ScreenCaptureTarget.kt +11 −10 Original line number Diff line number Diff line Loading @@ -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 }
packages/SystemUI/src/com/android/systemui/screencapture/record/data/repository/ScreenCaptureRecordParametersRepository.kt +3 −2 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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, ) Loading
packages/SystemUI/src/com/android/systemui/screencapture/record/domain/interactor/ScreenCaptureRecordParametersInteractor.kt +2 −2 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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) } } Loading
packages/SystemUI/src/com/android/systemui/screencapture/record/shared/model/ScreenCaptureRecordParametersModel.kt +2 −1 Original line number Diff line number Diff line Loading @@ -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, )