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

Commit 7a6d153e authored by Wes Okuhara's avatar Wes Okuhara Committed by Android (Google) Code Review
Browse files

Merge "Desktop screenshots: Guard app window option behind feature flag" into main

parents ed89969a c3f3c7d1
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -1922,6 +1922,13 @@ flag {
    bug: "412421893"
}

flag {
    name: "desktop_screen_capture_app_window"
    namespace: "systemui"
    description: "Enables the app window region option for desktop screen capture."
    bug: "422833825"
}

flag {
    name: "new_screen_record_toolbar"
    namespace: "systemui"
+2 −2
Original line number Diff line number Diff line
@@ -16,11 +16,11 @@

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

import com.android.systemui.Flags
import com.android.systemui.dagger.SysUISingleton
import javax.inject.Inject

@SysUISingleton
class ScreenCaptureRecordLargeScreenFeaturesInteractor @Inject constructor() {
    // TODO(b/427497534) Guard behind a new feature flag specific for app window region.
    val appWindowRegionSupported = true
    val appWindowRegionSupported = Flags.desktopScreenCaptureAppWindow()
}
+22 −0
Original line number Diff line number Diff line
@@ -16,11 +16,14 @@

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

import android.platform.test.annotations.DisableFlags
import android.platform.test.annotations.EnableFlags
import android.view.WindowManager
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.internal.util.ScreenshotRequest
import com.android.internal.util.mockScreenshotHelper
import com.android.systemui.Flags
import com.android.systemui.SysuiTestCase
import com.android.systemui.kosmos.testScope
import com.android.systemui.kosmos.useUnconfinedTestDispatcher
@@ -93,6 +96,7 @@ class PreCaptureViewModelTest : SysuiTestCase() {
        }

    @Test
    @EnableFlags(Flags.FLAG_DESKTOP_SCREEN_CAPTURE_APP_WINDOW)
    fun updateCaptureRegion_updatesSelectedCaptureRegionButtonViewModel() =
        testScope.runTest {
            // Default region is fullscreen
@@ -154,4 +158,22 @@ class PreCaptureViewModelTest : SysuiTestCase() {
                viewModel.takeFullscreenScreenshot()
            }
        }

    @Test
    @DisableFlags(Flags.FLAG_DESKTOP_SCREEN_CAPTURE_APP_WINDOW)
    fun captureRegionButtonViewModels_excludesAppWindowWithFeatureDisabled() =
        testScope.runTest {
            // TODO(b/430364500) Once a11y label is available, use it for a more robust assertion.
            viewModel.updateCaptureRegion(ScreenCaptureRegion.APP_WINDOW)
            assertThat(viewModel.captureRegionButtonViewModels.none { it.isSelected }).isTrue()
        }

    @Test
    @EnableFlags(Flags.FLAG_DESKTOP_SCREEN_CAPTURE_APP_WINDOW)
    fun captureRegionButtonViewModels_includesAppWindowWithFeatureEnabled() =
        testScope.runTest {
            // TODO(b/430364500) Once a11y label is available, use it for a more robust assertion.
            viewModel.updateCaptureRegion(ScreenCaptureRegion.APP_WINDOW)
            assertThat(viewModel.captureRegionButtonViewModels.count { it.isSelected }).isEqualTo(1)
        }
}