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

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

Merge "Desktop screenshots: Connect pre-capture UI to large-screen content" into main

parents 634d5420 69ac202c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -14,7 +14,7 @@
 * limitations under the License.
 */

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

import android.graphics.Rect
import android.os.Handler
+9 −3
Original line number Diff line number Diff line
@@ -16,15 +16,21 @@

package com.android.systemui.screencapture.record.largescreen.ui.compose

import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import com.android.systemui.lifecycle.rememberViewModel
import com.android.systemui.screencapture.common.ui.compose.ScreenCaptureContent
import com.android.systemui.screencapture.record.largescreen.ui.viewmodel.PreCaptureViewModel
import javax.inject.Inject

class LargeScreenCaptureRecordContent @Inject constructor() : ScreenCaptureContent {
class LargeScreenCaptureRecordContent
@Inject
constructor(private val viewModelFactory: PreCaptureViewModel.Factory) : ScreenCaptureContent {

    @Composable
    override fun Content() {
        Text("Not yet implemented")
        val viewModel: PreCaptureViewModel =
            rememberViewModel("PreCaptureViewModel") { viewModelFactory.create() }

        PreCaptureUI(viewModel = viewModel)
    }
}
+2 −2
Original line number Diff line number Diff line
@@ -29,12 +29,12 @@ import com.android.systemui.common.ui.compose.Icon
import com.android.systemui.screencapture.common.ui.compose.RadioButtonGroup
import com.android.systemui.screencapture.common.ui.compose.RadioButtonGroupItem
import com.android.systemui.screencapture.common.ui.compose.Toolbar
import com.android.systemui.screencapture.ui.viewmodel.ScreenCaptureViewModel
import com.android.systemui.screencapture.record.largescreen.ui.viewmodel.PreCaptureViewModel

@OptIn(ExperimentalMaterial3ExpressiveApi::class)
@Composable
fun PreCaptureToolbar(
    viewModel: ScreenCaptureViewModel,
    viewModel: PreCaptureViewModel,
    expanded: Boolean,
    onCloseClick: () -> Unit,
    modifier: Modifier = Modifier,
+4 −7
Original line number Diff line number Diff line
@@ -17,16 +17,13 @@
package com.android.systemui.screencapture.record.largescreen.ui.compose

import androidx.compose.runtime.Composable
import com.android.systemui.lifecycle.rememberViewModel
import com.android.systemui.screencapture.ui.viewmodel.ScreenCaptureViewModel
import com.android.systemui.screencapture.record.largescreen.ui.viewmodel.PreCaptureViewModel

/** Main component for the pre-capture UI. */
@Composable
fun PreCaptureUI(viewModelFactory: ScreenCaptureViewModel.Factory) {
    val viewModel: ScreenCaptureViewModel =
        rememberViewModel("ScreenCaptureViewModel") { viewModelFactory.create() }

fun PreCaptureUI(viewModel: PreCaptureViewModel) {
    PreCaptureToolbar(viewModel = viewModel, expanded = true, onCloseClick = {})

    // TODO: Add region box here
    // TODO(b/423967051) If the capture region is FULLSCREEN, show centered capture button.
    // TODO(b/422834671) If the capture region is PARTIAL, add region box here.
}
+4 −4
Original line number Diff line number Diff line
@@ -14,14 +14,14 @@
 * limitations under the License.
 */

package com.android.systemui.screencapture.ui.viewmodel
package com.android.systemui.screencapture.record.largescreen.ui.viewmodel

import android.content.Context
import com.android.systemui.dagger.qualifiers.Application
import com.android.systemui.lifecycle.HydratedActivatable
import com.android.systemui.res.R
import com.android.systemui.screencapture.domain.interactor.ScreenshotInteractor
import com.android.systemui.screencapture.record.largescreen.domain.interactor.ScreenCaptureRecordLargeScreenFeaturesInteractor
import com.android.systemui.screencapture.record.largescreen.domain.interactor.ScreenshotInteractor
import dagger.assisted.AssistedFactory
import dagger.assisted.AssistedInject
import kotlinx.coroutines.coroutineScope
@@ -41,7 +41,7 @@ enum class ScreenCaptureRegion {
}

/** Models UI for the Screen Capture UI for large screen devices. */
class ScreenCaptureViewModel
class PreCaptureViewModel
@AssistedInject
constructor(
    @Application private val applicationContext: Context,
@@ -154,6 +154,6 @@ constructor(

    @AssistedFactory
    interface Factory {
        fun create(): ScreenCaptureViewModel
        fun create(): PreCaptureViewModel
    }
}
Loading