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

Commit 325d92db authored by Priyanka Advani (xWF)'s avatar Priyanka Advani (xWF) Committed by Android (Google) Code Review
Browse files

Merge "Revert "Implement the new Screen Recording toolbar."" into main

parents a99cc9cc 2184dba3
Loading
Loading
Loading
Loading
+5 −8
Original line number Diff line number Diff line
@@ -18,7 +18,6 @@ package com.android.systemui.screencapture.common

import com.android.systemui.screencapture.common.shared.model.ScreenCaptureActivityIntentParameters
import com.android.systemui.screencapture.common.ui.compose.ScreenCaptureContent
import com.android.systemui.screencapture.ui.ScreenCaptureActivity
import dagger.BindsInstance
import dagger.Subcomponent
import kotlinx.coroutines.CoroutineScope
@@ -33,8 +32,6 @@ import kotlinx.coroutines.CoroutineScope
@Subcomponent(modules = [CommonModule::class, FallbackModule::class])
interface ScreenCaptureComponent {

    val screenCaptureContent: ScreenCaptureContent

    /**
     * Dagger Subcomponent Builder for [ScreenCaptureComponent].
     *
@@ -45,14 +42,12 @@ interface ScreenCaptureComponent {
    interface Builder {

        /** The [CoroutineScope] to use coroutines limited to Screen Capture sessions. */
        @BindsInstance fun setScope(@ScreenCapture scope: CoroutineScope): Builder
        @BindsInstance @ScreenCapture fun setScope(scope: CoroutineScope): Builder

        /** [ScreenCaptureActivityIntentParameters] that has been used to start capture flow. */
        @BindsInstance
        fun setParameters(@ScreenCapture parameters: ScreenCaptureActivityIntentParameters): Builder

        @BindsInstance
        fun setScreenCaptureActivity(@ScreenCapture activity: ScreenCaptureActivity): Builder
        @ScreenCapture
        fun setParameters(parameters: ScreenCaptureActivityIntentParameters): Builder

        /**
         * Builds this [ScreenCaptureComponent]. Actual Subcomponent Builders should override this
@@ -60,4 +55,6 @@ interface ScreenCaptureComponent {
         */
        fun build(): ScreenCaptureComponent
    }

    val screenCaptureContent: ScreenCaptureContent
}
+4 −11
Original line number Diff line number Diff line
@@ -16,21 +16,16 @@

package com.android.systemui.screencapture.common.ui.compose

import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.size
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import com.android.compose.PlatformButton
import com.android.systemui.common.shared.model.Icon as IconModel
import com.android.systemui.common.ui.compose.Icon

private val ButtonPaddings = PaddingValues(horizontal = 16.dp, vertical = 8.dp)

/** Component for a primary button containing text and an optional leading icon. */
@Composable
fun PrimaryButton(
@@ -38,14 +33,12 @@ fun PrimaryButton(
    onClick: () -> Unit,
    modifier: Modifier = Modifier,
    icon: IconModel? = null,
    contentPadding: PaddingValues = ButtonPaddings,
    iconPadding: Dp = 5.dp,
) {
    PlatformButton(onClick = onClick, modifier = modifier, contentPadding = contentPadding) {
    PlatformButton(modifier = modifier, onClick = onClick) {
        if (icon != null) {
            Icon(icon = icon, modifier = Modifier.size(20.dp).align(Alignment.CenterVertically))
            Spacer(Modifier.size(iconPadding))
            Icon(icon = icon, modifier = Modifier.size(20.dp))
            Spacer(Modifier.size(5.dp))
        }
        Text(text = text, maxLines = 1, modifier = Modifier.align(Alignment.CenterVertically))
        Text(text = text, maxLines = 1)
    }
}
+1 −7
Original line number Diff line number Diff line
@@ -29,7 +29,6 @@ import androidx.compose.ui.unit.dp
import androidx.compose.ui.zIndex
import com.android.systemui.res.R
import com.android.systemui.screencapture.common.ui.compose.PrimaryButton
import com.android.systemui.screencapture.common.ui.compose.loadIcon
import com.android.systemui.screencapture.record.largescreen.ui.viewmodel.PreCaptureViewModel
import com.android.systemui.screencapture.record.largescreen.ui.viewmodel.ScreenCaptureRegion

@@ -59,12 +58,7 @@ fun PreCaptureUI(viewModel: PreCaptureViewModel) {
                    modifier = Modifier.fillMaxSize().wrapContentSize(Alignment.Center).zIndex(0f)
                ) {
                    PrimaryButton(
                        icon =
                            loadIcon(
                                viewModel = viewModel,
                                resId = R.drawable.ic_screen_capture_camera,
                                contentDescription = null,
                            ),
                        icon = viewModel.icons?.screenshotButton,
                        text = stringResource(R.string.screen_capture_fullscreen_screenshot_button),
                        onClick = { viewModel.takeFullscreenScreenshot() },
                    )
+7 −11
Original line number Diff line number Diff line
@@ -39,10 +39,9 @@ import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import com.android.systemui.common.shared.model.Icon as IconModel
import com.android.systemui.res.R
import com.android.systemui.screencapture.common.ui.compose.PrimaryButton
import com.android.systemui.screencapture.common.ui.compose.loadIcon
import com.android.systemui.screencapture.common.ui.viewmodel.DrawableLoaderViewModel

/**
 * Determines which zone (corner or edge) of a box is being touched based on the press offset.
@@ -97,7 +96,6 @@ fun RegionBox(
    initialWidth: Dp,
    initialHeight: Dp,
    onDragEnd: (offset: Offset, width: Dp, height: Dp) -> Unit,
    drawableLoaderViewModel: DrawableLoaderViewModel,
    initialOffset: Offset = Offset.Zero,
    modifier: Modifier = Modifier,
) {
@@ -145,7 +143,6 @@ fun RegionBox(
                with(density) { rect.height.toDp() },
            )
        },
        drawableLoaderViewModel = drawableLoaderViewModel,
        modifier = modifier,
    )
}
@@ -166,9 +163,13 @@ private fun ResizableRectangle(
    onResizeDrag: (dragAmount: Offset, zone: ResizeZone, maxWidth: Float, maxHeight: Float) -> Unit,
    onBoxDrag: (dragAmount: Offset, maxWidth: Float, maxHeight: Float) -> Unit,
    onDragEnd: () -> Unit,
    drawableLoaderViewModel: DrawableLoaderViewModel,
    modifier: Modifier = Modifier,
) {
    // TODO(b/422855266): Preload icons in the view model to avoid loading icons in UI thread and
    // improve performance
    val screenshotIcon =
        IconModel.Resource(res = R.drawable.ic_screen_capture_camera, contentDescription = null)

    // The width of the border stroke around the region box.
    val borderStrokeWidth = 4.dp
    // The touch area for detecting an edge or corner resize drag.
@@ -244,12 +245,7 @@ private fun ResizableRectangle(
                onClick = {
                    // TODO(b/417534202): trigger a screenshot of the selected area.
                },
                icon =
                    loadIcon(
                        viewModel = drawableLoaderViewModel,
                        resId = R.drawable.ic_screen_capture_camera,
                        contentDescription = null,
                    ),
                icon = screenshotIcon,
            )
        }
    }
+1 −4
Original line number Diff line number Diff line
@@ -23,8 +23,6 @@ import com.android.systemui.dagger.qualifiers.Application
import com.android.systemui.dagger.qualifiers.Background
import com.android.systemui.lifecycle.HydratedActivatable
import com.android.systemui.res.R
import com.android.systemui.screencapture.common.ui.viewmodel.DrawableLoaderViewModel
import com.android.systemui.screencapture.common.ui.viewmodel.DrawableLoaderViewModelImpl
import com.android.systemui.screencapture.record.largescreen.domain.interactor.ScreenCaptureRecordLargeScreenFeaturesInteractor
import com.android.systemui.screencapture.record.largescreen.domain.interactor.ScreenshotInteractor
import dagger.assisted.AssistedFactory
@@ -55,8 +53,7 @@ constructor(
    private val iconProvider: ScreenCaptureIconProvider,
    private val screenshotInteractor: ScreenshotInteractor,
    private val featuresInteractor: ScreenCaptureRecordLargeScreenFeaturesInteractor,
    private val drawableLoaderViewModelImpl: DrawableLoaderViewModelImpl,
) : HydratedActivatable(), DrawableLoaderViewModel by drawableLoaderViewModelImpl {
) : HydratedActivatable() {
    private val captureTypeSource = MutableStateFlow(ScreenCaptureType.SCREENSHOT)
    private val captureRegionSource = MutableStateFlow(ScreenCaptureRegion.FULLSCREEN)

Loading