HomeEvents -> HomeEvent
This commit is contained in:
parent
f2dfa3dc91
commit
c92d34f46a
6 changed files with 13 additions and 13 deletions
|
|
@ -10,7 +10,7 @@ package io.element.android.features.home.impl
|
||||||
|
|
||||||
import io.element.android.libraries.matrix.api.core.SessionId
|
import io.element.android.libraries.matrix.api.core.SessionId
|
||||||
|
|
||||||
sealed interface HomeEvents {
|
sealed interface HomeEvent {
|
||||||
data class SelectHomeNavigationBarItem(val item: HomeNavigationBarItem) : HomeEvents
|
data class SelectHomeNavigationBarItem(val item: HomeNavigationBarItem) : HomeEvent
|
||||||
data class SwitchToAccount(val sessionId: SessionId) : HomeEvents
|
data class SwitchToAccount(val sessionId: SessionId) : HomeEvent
|
||||||
}
|
}
|
||||||
|
|
@ -80,15 +80,15 @@ class HomePresenter(
|
||||||
val showAvatarIndicator by indicatorService.showRoomListTopBarIndicator()
|
val showAvatarIndicator by indicatorService.showRoomListTopBarIndicator()
|
||||||
val directLogoutState = logoutPresenter.present()
|
val directLogoutState = logoutPresenter.present()
|
||||||
|
|
||||||
fun handleEvent(event: HomeEvents) {
|
fun handleEvent(event: HomeEvent) {
|
||||||
when (event) {
|
when (event) {
|
||||||
is HomeEvents.SelectHomeNavigationBarItem -> coroutineState.launch {
|
is HomeEvent.SelectHomeNavigationBarItem -> coroutineState.launch {
|
||||||
if (event.item == HomeNavigationBarItem.Spaces) {
|
if (event.item == HomeNavigationBarItem.Spaces) {
|
||||||
announcementService.showAnnouncement(Announcement.Space)
|
announcementService.showAnnouncement(Announcement.Space)
|
||||||
}
|
}
|
||||||
currentHomeNavigationBarItemOrdinal = event.item.ordinal
|
currentHomeNavigationBarItemOrdinal = event.item.ordinal
|
||||||
}
|
}
|
||||||
is HomeEvents.SwitchToAccount -> coroutineState.launch {
|
is HomeEvent.SwitchToAccount -> coroutineState.launch {
|
||||||
sessionStore.setLatestSession(event.sessionId.value)
|
sessionStore.setLatestSession(event.sessionId.value)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ data class HomeState(
|
||||||
val snackbarMessage: SnackbarMessage?,
|
val snackbarMessage: SnackbarMessage?,
|
||||||
val canReportBug: Boolean,
|
val canReportBug: Boolean,
|
||||||
val directLogoutState: DirectLogoutState,
|
val directLogoutState: DirectLogoutState,
|
||||||
val eventSink: (HomeEvents) -> Unit,
|
val eventSink: (HomeEvent) -> Unit,
|
||||||
) {
|
) {
|
||||||
val displayActions = currentHomeNavigationBarItem == HomeNavigationBarItem.Chats
|
val displayActions = currentHomeNavigationBarItem == HomeNavigationBarItem.Chats
|
||||||
val displayRoomListFilters = currentHomeNavigationBarItem == HomeNavigationBarItem.Chats && roomListState.displayFilters
|
val displayRoomListFilters = currentHomeNavigationBarItem == HomeNavigationBarItem.Chats && roomListState.displayFilters
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,7 @@ internal fun aHomeState(
|
||||||
homeSpacesState: HomeSpacesState = aHomeSpacesState(),
|
homeSpacesState: HomeSpacesState = aHomeSpacesState(),
|
||||||
canReportBug: Boolean = true,
|
canReportBug: Boolean = true,
|
||||||
directLogoutState: DirectLogoutState = aDirectLogoutState(),
|
directLogoutState: DirectLogoutState = aDirectLogoutState(),
|
||||||
eventSink: (HomeEvents) -> Unit = {}
|
eventSink: (HomeEvent) -> Unit = {}
|
||||||
) = HomeState(
|
) = HomeState(
|
||||||
currentUserAndNeighbors = currentUserAndNeighbors.toImmutableList(),
|
currentUserAndNeighbors = currentUserAndNeighbors.toImmutableList(),
|
||||||
showAvatarIndicator = showAvatarIndicator,
|
showAvatarIndicator = showAvatarIndicator,
|
||||||
|
|
|
||||||
|
|
@ -156,7 +156,7 @@ private fun HomeScaffold(
|
||||||
BackHandler(
|
BackHandler(
|
||||||
enabled = state.currentHomeNavigationBarItem != HomeNavigationBarItem.Chats,
|
enabled = state.currentHomeNavigationBarItem != HomeNavigationBarItem.Chats,
|
||||||
) {
|
) {
|
||||||
state.eventSink(HomeEvents.SelectHomeNavigationBarItem(HomeNavigationBarItem.Chats))
|
state.eventSink(HomeEvent.SelectHomeNavigationBarItem(HomeNavigationBarItem.Chats))
|
||||||
}
|
}
|
||||||
|
|
||||||
val hazeState = rememberHazeState()
|
val hazeState = rememberHazeState()
|
||||||
|
|
@ -176,7 +176,7 @@ private fun HomeScaffold(
|
||||||
onMenuActionClick = onMenuActionClick,
|
onMenuActionClick = onMenuActionClick,
|
||||||
onOpenSettings = onOpenSettings,
|
onOpenSettings = onOpenSettings,
|
||||||
onAccountSwitch = {
|
onAccountSwitch = {
|
||||||
state.eventSink(HomeEvents.SwitchToAccount(it))
|
state.eventSink(HomeEvent.SwitchToAccount(it))
|
||||||
},
|
},
|
||||||
onCreateSpace = onCreateSpaceClick,
|
onCreateSpace = onCreateSpaceClick,
|
||||||
scrollBehavior = scrollBehavior,
|
scrollBehavior = scrollBehavior,
|
||||||
|
|
@ -211,7 +211,7 @@ private fun HomeScaffold(
|
||||||
lazyListStateTarget.animateScrollToItem(0)
|
lazyListStateTarget.animateScrollToItem(0)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
state.eventSink(HomeEvents.SelectHomeNavigationBarItem(item))
|
state.eventSink(HomeEvent.SelectHomeNavigationBarItem(item))
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
modifier = Modifier.hazeEffect(
|
modifier = Modifier.hazeEffect(
|
||||||
|
|
|
||||||
|
|
@ -164,7 +164,7 @@ class HomePresenterTest {
|
||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
assertThat(initialState.currentHomeNavigationBarItem).isEqualTo(HomeNavigationBarItem.Chats)
|
assertThat(initialState.currentHomeNavigationBarItem).isEqualTo(HomeNavigationBarItem.Chats)
|
||||||
initialState.eventSink(HomeEvents.SelectHomeNavigationBarItem(HomeNavigationBarItem.Spaces))
|
initialState.eventSink(HomeEvent.SelectHomeNavigationBarItem(HomeNavigationBarItem.Spaces))
|
||||||
val finalState = awaitItem()
|
val finalState = awaitItem()
|
||||||
assertThat(finalState.currentHomeNavigationBarItem).isEqualTo(HomeNavigationBarItem.Spaces)
|
assertThat(finalState.currentHomeNavigationBarItem).isEqualTo(HomeNavigationBarItem.Spaces)
|
||||||
showAnnouncementResult.assertions().isCalledOnce()
|
showAnnouncementResult.assertions().isCalledOnce()
|
||||||
|
|
@ -189,7 +189,7 @@ class HomePresenterTest {
|
||||||
assertThat(initialState.currentHomeNavigationBarItem).isEqualTo(HomeNavigationBarItem.Chats)
|
assertThat(initialState.currentHomeNavigationBarItem).isEqualTo(HomeNavigationBarItem.Chats)
|
||||||
assertThat(initialState.showNavigationBar).isTrue()
|
assertThat(initialState.showNavigationBar).isTrue()
|
||||||
// User navigate to Spaces
|
// User navigate to Spaces
|
||||||
initialState.eventSink(HomeEvents.SelectHomeNavigationBarItem(HomeNavigationBarItem.Spaces))
|
initialState.eventSink(HomeEvent.SelectHomeNavigationBarItem(HomeNavigationBarItem.Spaces))
|
||||||
val spaceState = awaitItem()
|
val spaceState = awaitItem()
|
||||||
assertThat(spaceState.currentHomeNavigationBarItem).isEqualTo(HomeNavigationBarItem.Spaces)
|
assertThat(spaceState.currentHomeNavigationBarItem).isEqualTo(HomeNavigationBarItem.Spaces)
|
||||||
// The last space is left
|
// The last space is left
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue