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

Commit 2d5e8d23 authored by minch's avatar minch
Browse files

Show the privary indicator on clicking the share button

Bug: 437918351
Flag: com.android.systemui.large_screen_sharing
Test: m + PreShareToolbarViewModelTest
Change-Id: I2c7835f99c8a901faa20053337cc5ef85a94f812
parent cc71d215
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import com.android.systemui.screencapture.common.shared.model.ScreenCaptureType
import com.android.systemui.screencapture.common.ui.viewmodel.DrawableLoaderViewModel
import com.android.systemui.screencapture.common.ui.viewmodel.DrawableLoaderViewModelImpl
import com.android.systemui.screencapture.domain.interactor.ScreenCaptureUiInteractor
import com.android.systemui.statusbar.featurepods.sharescreen.domain.interactor.ShareScreenPrivacyIndicatorInteractor
import dagger.assisted.AssistedFactory
import dagger.assisted.AssistedInject

@@ -34,6 +35,7 @@ class PreShareToolbarViewModel
constructor(
    private val drawableLoaderViewModelImpl: DrawableLoaderViewModelImpl,
    private val screenCaptureUiInteractor: ScreenCaptureUiInteractor,
    private val shareScreenPrivacyIndicatorInteractor: ShareScreenPrivacyIndicatorInteractor,
) : HydratedActivatable(), DrawableLoaderViewModel by drawableLoaderViewModelImpl {
    var selectedScreenCaptureTarget: ScreenCaptureTarget by
        mutableStateOf(ScreenCaptureTarget.AppContent(contentId = 0))
@@ -44,6 +46,7 @@ constructor(

    fun onShareClicked() {
        screenCaptureUiInteractor.hide(ScreenCaptureType.SHARE_SCREEN)
        shareScreenPrivacyIndicatorInteractor.showChip()
    }

    @AssistedFactory
+16 −0
Original line number Diff line number Diff line
@@ -23,10 +23,12 @@ import com.android.systemui.kosmos.collectLastValue
import com.android.systemui.kosmos.runTest
import com.android.systemui.kosmos.testScope
import com.android.systemui.lifecycle.activateIn
import com.android.systemui.res.R
import com.android.systemui.screencapture.common.shared.model.ScreenCaptureTarget
import com.android.systemui.screencapture.common.shared.model.ScreenCaptureType
import com.android.systemui.screencapture.common.shared.model.ScreenCaptureUiState
import com.android.systemui.screencapture.data.repository.screenCaptureUiRepository
import com.android.systemui.statusbar.featurepods.sharescreen.domain.interactor.shareScreenPrivacyIndicatorInteractor
import com.android.systemui.testKosmosNew
import com.google.common.truth.Truth.assertThat
import org.junit.Before
@@ -42,6 +44,10 @@ class PreShareToolbarViewModelTest : SysuiTestCase() {

    @Before
    fun setUp() {
        mContext.orCreateTestableResources.addOverride(
            R.bool.config_largeScreenPrivacyIndicator,
            true,
        )
        viewModel.activateIn(kosmos.testScope)
    }

@@ -78,4 +84,14 @@ class PreShareToolbarViewModelTest : SysuiTestCase() {

            assertThat(uiState).isEqualTo(ScreenCaptureUiState.Invisible)
        }

    @Test
    fun onShareClicked_showsPrivacyIndicator() =
        kosmos.runTest {
            val isChipVisible by
                collectLastValue(kosmos.shareScreenPrivacyIndicatorInteractor.isChipVisible)
            assertThat(isChipVisible).isFalse()
            viewModel.onShareClicked()
            assertThat(isChipVisible).isTrue()
        }
}
+6 −1
Original line number Diff line number Diff line
@@ -20,11 +20,16 @@ import com.android.systemui.kosmos.Kosmos
import com.android.systemui.kosmos.Kosmos.Fixture
import com.android.systemui.screencapture.common.ui.viewmodel.drawableLoaderViewModelImpl
import com.android.systemui.screencapture.domain.interactor.screenCaptureUiInteractor
import com.android.systemui.statusbar.featurepods.sharescreen.domain.interactor.shareScreenPrivacyIndicatorInteractor

val Kosmos.preShareToolbarViewModelFactory by Fixture {
    object : PreShareToolbarViewModel.Factory {
        override fun create(): PreShareToolbarViewModel {
            return PreShareToolbarViewModel(drawableLoaderViewModelImpl, screenCaptureUiInteractor)
            return PreShareToolbarViewModel(
                drawableLoaderViewModelImpl,
                screenCaptureUiInteractor,
                shareScreenPrivacyIndicatorInteractor,
            )
        }
    }
}