Loading packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardBouncerRepository.kt +3 −10 Original line number Diff line number Diff line Loading @@ -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. */ Loading Loading @@ -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 Loading Loading @@ -125,7 +118,7 @@ constructor( } fun setShowMessage(bouncerShowMessageModel: BouncerShowMessageModel?) { _showMessage.tryEmit(bouncerShowMessageModel) _showMessage.value = bouncerShowMessageModel } fun setKeyguardAuthenticated(keyguardAuthenticated: Boolean?) { Loading packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/PrimaryBouncerInteractor.kt +5 −0 Original line number Diff line number Diff line Loading @@ -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) Loading packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardBouncerViewBinder.kt +1 −1 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -182,6 +181,7 @@ object KeyguardBouncerViewBinder { launch { viewModel.bouncerShowMessage.collect { hostViewController.showMessage(it.message, it.colorStateList) viewModel.onMessageShown() } } Loading packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardBouncerViewModel.kt +5 −0 Original line number Diff line number Diff line Loading @@ -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 -> Loading packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/PrimaryBouncerInteractorTest.kt +10 −1 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading @@ -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 Loading
packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardBouncerRepository.kt +3 −10 Original line number Diff line number Diff line Loading @@ -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. */ Loading Loading @@ -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 Loading Loading @@ -125,7 +118,7 @@ constructor( } fun setShowMessage(bouncerShowMessageModel: BouncerShowMessageModel?) { _showMessage.tryEmit(bouncerShowMessageModel) _showMessage.value = bouncerShowMessageModel } fun setKeyguardAuthenticated(keyguardAuthenticated: Boolean?) { Loading
packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/PrimaryBouncerInteractor.kt +5 −0 Original line number Diff line number Diff line Loading @@ -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) Loading
packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardBouncerViewBinder.kt +1 −1 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -182,6 +181,7 @@ object KeyguardBouncerViewBinder { launch { viewModel.bouncerShowMessage.collect { hostViewController.showMessage(it.message, it.colorStateList) viewModel.onMessageShown() } } Loading
packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardBouncerViewModel.kt +5 −0 Original line number Diff line number Diff line Loading @@ -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 -> Loading
packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/PrimaryBouncerInteractorTest.kt +10 −1 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading @@ -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