Add test for DefaultNotificationDrawerManager
This commit is contained in:
parent
b61b45dd0c
commit
a02c5c2b44
5 changed files with 180 additions and 8 deletions
|
|
@ -36,6 +36,7 @@ import io.element.android.services.appnavstate.api.AppNavigationStateService
|
|||
import io.element.android.services.appnavstate.api.NavigationState
|
||||
import io.element.android.services.appnavstate.api.currentSessionId
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
|
|
@ -61,6 +62,8 @@ class DefaultNotificationDrawerManager @Inject constructor(
|
|||
private val buildMeta: BuildMeta,
|
||||
private val matrixClientProvider: MatrixClientProvider,
|
||||
) : NotificationDrawerManager {
|
||||
private var appNavigationStateObserver: Job? = null
|
||||
|
||||
/**
|
||||
* Lazily initializes the NotificationState as we rely on having a current session in order to fetch the persisted queue of events.
|
||||
*/
|
||||
|
|
@ -72,12 +75,17 @@ class DefaultNotificationDrawerManager @Inject constructor(
|
|||
|
||||
init {
|
||||
// Observe application state
|
||||
coroutineScope.launch {
|
||||
appNavigationStateObserver = coroutineScope.launch {
|
||||
appNavigationStateService.appNavigationState
|
||||
.collect { onAppNavigationStateChange(it.navigationState) }
|
||||
}
|
||||
}
|
||||
|
||||
// For test only
|
||||
fun destroy() {
|
||||
appNavigationStateObserver?.cancel()
|
||||
}
|
||||
|
||||
private var currentAppNavigationState: NavigationState? = null
|
||||
|
||||
private fun onAppNavigationStateChange(navigationState: NavigationState) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue