Loading packages/SystemUI/src/com/android/systemui/screencapture/record/smallscreen/ui/compose/RecordDetailsSettings.kt +11 −9 Original line number Diff line number Diff line Loading @@ -62,6 +62,7 @@ fun RecordDetailsSettings( horizontalAlignment = Alignment.CenterHorizontally, modifier = Modifier.padding(vertical = 12.dp).fillMaxWidth(), ) { AnimatedVisibility(visible = targetViewModel.canChangeTarget) { CaptureTargetSelector( items = targetViewModel.items, selectedItemIndex = targetViewModel.selectedIndex, Loading @@ -71,6 +72,7 @@ fun RecordDetailsSettings( viewModel = drawableLoaderViewModel, modifier = Modifier.padding(vertical = 12.dp), ) } AnimatedVisibility(visible = targetViewModel.shouldShowAppSelector) { AppSelectorButton( appLabel = targetViewModel.selectedAppName?.getOrNull()?.toString(), Loading packages/SystemUI/src/com/android/systemui/screencapture/record/smallscreen/ui/viewmodel/RecordDetailsTargetViewModel.kt +12 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,8 @@ import com.android.systemui.screencapture.common.domain.interactor.ScreenCapture import com.android.systemui.screencapture.common.domain.interactor.ScreenCaptureRecentTaskInteractor import com.android.systemui.screencapture.common.domain.model.ScreenCaptureRecentTask import com.android.systemui.screencapture.common.shared.model.ScreenCaptureTarget import com.android.systemui.screenrecord.domain.interactor.ScreenRecordingServiceInteractor import com.android.systemui.screenrecord.domain.interactor.Status import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject import kotlinx.coroutines.coroutineScope Loading Loading @@ -74,6 +76,7 @@ class RecordDetailsTargetViewModel @AssistedInject constructor( @ScreenCaptureUi private val display: Display, private val screenRecordingServiceInteractor: ScreenRecordingServiceInteractor, private val screenCaptureRecentTaskInteractor: ScreenCaptureRecentTaskInteractor, private val labelInteractor: ScreenCaptureLabelInteractor, ) : HydratedActivatable() { Loading @@ -83,6 +86,13 @@ constructor( MutableStateFlow(null) private val _currentTarget = MutableStateFlow<RecordDetailsTargetItemViewModel?>(null) val canChangeTarget: Boolean by screenRecordingServiceInteractor.status .map { it.canChangeTarget() } .hydratedStateOf( traceName = "RecordDetailsTargetViewModel#canChangeTarget", initialValue = screenRecordingServiceInteractor.status.value.canChangeTarget(), ) val currentTarget: RecordDetailsTargetItemViewModel? by _currentTarget.hydratedStateOf(traceName = "RecordDetailsTargetViewModel#currentTarget") val items: List<RecordDetailsTargetItemViewModel>? by Loading Loading @@ -158,3 +168,5 @@ constructor( fun create(): RecordDetailsTargetViewModel } } private fun Status.canChangeTarget(): Boolean = this is Status.Stopped || this is Status.Initial Loading
packages/SystemUI/src/com/android/systemui/screencapture/record/smallscreen/ui/compose/RecordDetailsSettings.kt +11 −9 Original line number Diff line number Diff line Loading @@ -62,6 +62,7 @@ fun RecordDetailsSettings( horizontalAlignment = Alignment.CenterHorizontally, modifier = Modifier.padding(vertical = 12.dp).fillMaxWidth(), ) { AnimatedVisibility(visible = targetViewModel.canChangeTarget) { CaptureTargetSelector( items = targetViewModel.items, selectedItemIndex = targetViewModel.selectedIndex, Loading @@ -71,6 +72,7 @@ fun RecordDetailsSettings( viewModel = drawableLoaderViewModel, modifier = Modifier.padding(vertical = 12.dp), ) } AnimatedVisibility(visible = targetViewModel.shouldShowAppSelector) { AppSelectorButton( appLabel = targetViewModel.selectedAppName?.getOrNull()?.toString(), Loading
packages/SystemUI/src/com/android/systemui/screencapture/record/smallscreen/ui/viewmodel/RecordDetailsTargetViewModel.kt +12 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,8 @@ import com.android.systemui.screencapture.common.domain.interactor.ScreenCapture import com.android.systemui.screencapture.common.domain.interactor.ScreenCaptureRecentTaskInteractor import com.android.systemui.screencapture.common.domain.model.ScreenCaptureRecentTask import com.android.systemui.screencapture.common.shared.model.ScreenCaptureTarget import com.android.systemui.screenrecord.domain.interactor.ScreenRecordingServiceInteractor import com.android.systemui.screenrecord.domain.interactor.Status import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject import kotlinx.coroutines.coroutineScope Loading Loading @@ -74,6 +76,7 @@ class RecordDetailsTargetViewModel @AssistedInject constructor( @ScreenCaptureUi private val display: Display, private val screenRecordingServiceInteractor: ScreenRecordingServiceInteractor, private val screenCaptureRecentTaskInteractor: ScreenCaptureRecentTaskInteractor, private val labelInteractor: ScreenCaptureLabelInteractor, ) : HydratedActivatable() { Loading @@ -83,6 +86,13 @@ constructor( MutableStateFlow(null) private val _currentTarget = MutableStateFlow<RecordDetailsTargetItemViewModel?>(null) val canChangeTarget: Boolean by screenRecordingServiceInteractor.status .map { it.canChangeTarget() } .hydratedStateOf( traceName = "RecordDetailsTargetViewModel#canChangeTarget", initialValue = screenRecordingServiceInteractor.status.value.canChangeTarget(), ) val currentTarget: RecordDetailsTargetItemViewModel? by _currentTarget.hydratedStateOf(traceName = "RecordDetailsTargetViewModel#currentTarget") val items: List<RecordDetailsTargetItemViewModel>? by Loading Loading @@ -158,3 +168,5 @@ constructor( fun create(): RecordDetailsTargetViewModel } } private fun Status.canChangeTarget(): Boolean = this is Status.Stopped || this is Status.Initial