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

Commit 94ae2f13 authored by Aaron Liu's avatar Aaron Liu Committed by Android (Google) Code Review
Browse files

Merge "[Bouncer] Revert from shared flow..." into tm-qpr-dev

parents bef5efa8 32c40738
Loading
Loading
Loading
Loading
+3 −10
Original line number Diff line number Diff line
@@ -23,10 +23,7 @@ import com.android.systemui.keyguard.shared.model.BouncerShowMessageModel
import com.android.systemui.keyguard.shared.model.KeyguardBouncerModel
import com.android.systemui.statusbar.phone.KeyguardBouncer
import javax.inject.Inject
import kotlinx.coroutines.channels.BufferOverflow
import kotlinx.coroutines.flow.MutableSharedFlow
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.asSharedFlow
import kotlinx.coroutines.flow.asStateFlow

/** Encapsulates app state for the lock screen primary and alternate bouncer. */
@@ -71,12 +68,8 @@ constructor(
    private val _keyguardAuthenticated = MutableStateFlow<Boolean?>(null)
    /** Determines if user is already unlocked */
    val keyguardAuthenticated = _keyguardAuthenticated.asStateFlow()
    private val _showMessage =
        MutableSharedFlow<BouncerShowMessageModel?>(
            replay = 1,
            onBufferOverflow = BufferOverflow.DROP_OLDEST
        )
    val showMessage = _showMessage.asSharedFlow()
    private val _showMessage = MutableStateFlow<BouncerShowMessageModel?>(null)
    val showMessage = _showMessage.asStateFlow()
    private val _resourceUpdateRequests = MutableStateFlow(false)
    val resourceUpdateRequests = _resourceUpdateRequests.asStateFlow()
    val bouncerPromptReason: Int
@@ -125,7 +118,7 @@ constructor(
    }

    fun setShowMessage(bouncerShowMessageModel: BouncerShowMessageModel?) {
        _showMessage.tryEmit(bouncerShowMessageModel)
        _showMessage.value = bouncerShowMessageModel
    }

    fun setKeyguardAuthenticated(keyguardAuthenticated: Boolean?) {
+5 −0
Original line number Diff line number Diff line
@@ -271,6 +271,11 @@ constructor(
        repository.setKeyguardAuthenticated(null)
    }

    /** Notifies that the message was shown. */
    fun onMessageShown() {
        repository.setShowMessage(null)
    }

    /** Notify that view visibility has changed. */
    fun notifyBouncerVisibilityHasChanged(visibility: Int) {
        primaryBouncerCallbackInteractor.dispatchVisibilityChanged(visibility)
+1 −1
Original line number Diff line number Diff line
@@ -32,7 +32,6 @@ import com.android.systemui.lifecycle.repeatWhenAttached
import com.android.systemui.plugins.ActivityStarter
import com.android.systemui.statusbar.phone.KeyguardBouncer.EXPANSION_VISIBLE
import kotlinx.coroutines.awaitCancellation
import kotlinx.coroutines.flow.collect
import kotlinx.coroutines.flow.filter
import kotlinx.coroutines.launch

@@ -182,6 +181,7 @@ object KeyguardBouncerViewBinder {
                    launch {
                        viewModel.bouncerShowMessage.collect {
                            hostViewController.showMessage(it.message, it.colorStateList)
                            viewModel.onMessageShown()
                        }
                    }

+5 −0
Original line number Diff line number Diff line
@@ -86,6 +86,11 @@ constructor(
        interactor.notifyKeyguardAuthenticatedHandled()
    }

    /** Notifies that the message was shown. */
    fun onMessageShown() {
        interactor.onMessageShown()
    }

    /** Observe whether back button is enabled. */
    fun observeOnIsBackButtonEnabled(systemUiVisibility: () -> Int): Flow<Int> {
        return interactor.isBackButtonEnabled.map { enabled ->
+10 −1
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Answers
import org.mockito.ArgumentCaptor
import org.mockito.Mock
import org.mockito.Mockito.mock
import org.mockito.Mockito.never
@@ -170,8 +171,10 @@ class PrimaryBouncerInteractorTest : SysuiTestCase() {

    @Test
    fun testShowMessage() {
        val argCaptor = ArgumentCaptor.forClass(BouncerShowMessageModel::class.java)
        mPrimaryBouncerInteractor.showMessage("abc", null)
        verify(repository).setShowMessage(BouncerShowMessageModel("abc", null))
        verify(repository).setShowMessage(argCaptor.capture())
        assertThat(argCaptor.value.message).isEqualTo("abc")
    }

    @Test
@@ -194,6 +197,12 @@ class PrimaryBouncerInteractorTest : SysuiTestCase() {
        verify(repository).setKeyguardAuthenticated(true)
    }

    @Test
    fun testNotifyShowedMessage() {
        mPrimaryBouncerInteractor.onMessageShown()
        verify(repository).setShowMessage(null)
    }

    @Test
    fun testOnScreenTurnedOff() {
        mPrimaryBouncerInteractor.onScreenTurnedOff()
Loading