mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-03 06:55:41 +00:00
Add back navigation to clear space filter selection
This commit is contained in:
@@ -9,6 +9,7 @@
|
|||||||
package io.element.android.features.home.impl
|
package io.element.android.features.home.impl
|
||||||
|
|
||||||
import io.element.android.features.home.impl.roomlist.RoomListState
|
import io.element.android.features.home.impl.roomlist.RoomListState
|
||||||
|
import io.element.android.features.home.impl.spacefilters.SpaceFiltersState
|
||||||
import io.element.android.features.home.impl.spaces.HomeSpacesState
|
import io.element.android.features.home.impl.spaces.HomeSpacesState
|
||||||
import io.element.android.features.logout.api.direct.DirectLogoutState
|
import io.element.android.features.logout.api.direct.DirectLogoutState
|
||||||
import io.element.android.libraries.designsystem.utils.snackbar.SnackbarMessage
|
import io.element.android.libraries.designsystem.utils.snackbar.SnackbarMessage
|
||||||
@@ -31,6 +32,7 @@ data class HomeState(
|
|||||||
val directLogoutState: DirectLogoutState,
|
val directLogoutState: DirectLogoutState,
|
||||||
val eventSink: (HomeEvent) -> Unit,
|
val eventSink: (HomeEvent) -> Unit,
|
||||||
) {
|
) {
|
||||||
|
val isBackHandlerEnabled = currentHomeNavigationBarItem != HomeNavigationBarItem.Chats || roomListState.spaceFiltersState is SpaceFiltersState.Selected
|
||||||
val displayActions = currentHomeNavigationBarItem == HomeNavigationBarItem.Chats
|
val displayActions = currentHomeNavigationBarItem == HomeNavigationBarItem.Chats
|
||||||
val displayRoomListFilters = currentHomeNavigationBarItem == HomeNavigationBarItem.Chats && roomListState.displayFilters
|
val displayRoomListFilters = currentHomeNavigationBarItem == HomeNavigationBarItem.Chats && roomListState.displayFilters
|
||||||
val showNavigationBar = homeSpacesState.canCreateSpaces || homeSpacesState.spaceRooms.isNotEmpty()
|
val showNavigationBar = homeSpacesState.canCreateSpaces || homeSpacesState.spaceRooms.isNotEmpty()
|
||||||
|
|||||||
+11
-4
@@ -50,6 +50,8 @@ import io.element.android.features.home.impl.roomlist.RoomListDeclineInviteMenu
|
|||||||
import io.element.android.features.home.impl.roomlist.RoomListEvent
|
import io.element.android.features.home.impl.roomlist.RoomListEvent
|
||||||
import io.element.android.features.home.impl.roomlist.RoomListState
|
import io.element.android.features.home.impl.roomlist.RoomListState
|
||||||
import io.element.android.features.home.impl.search.RoomListSearchView
|
import io.element.android.features.home.impl.search.RoomListSearchView
|
||||||
|
import io.element.android.features.home.impl.spacefilters.SpaceFiltersEvent
|
||||||
|
import io.element.android.features.home.impl.spacefilters.SpaceFiltersState
|
||||||
import io.element.android.features.home.impl.spacefilters.SpaceFiltersView
|
import io.element.android.features.home.impl.spacefilters.SpaceFiltersView
|
||||||
import io.element.android.features.home.impl.spaces.HomeSpacesView
|
import io.element.android.features.home.impl.spaces.HomeSpacesView
|
||||||
import io.element.android.libraries.androidutils.throttler.FirstThrottler
|
import io.element.android.libraries.androidutils.throttler.FirstThrottler
|
||||||
@@ -154,10 +156,15 @@ private fun HomeScaffold(
|
|||||||
val snackbarHostState = rememberSnackbarHostState(snackbarMessage = state.snackbarMessage)
|
val snackbarHostState = rememberSnackbarHostState(snackbarMessage = state.snackbarMessage)
|
||||||
val roomListState: RoomListState = state.roomListState
|
val roomListState: RoomListState = state.roomListState
|
||||||
|
|
||||||
BackHandler(
|
BackHandler(enabled = state.isBackHandlerEnabled) {
|
||||||
enabled = state.currentHomeNavigationBarItem != HomeNavigationBarItem.Chats,
|
if (state.currentHomeNavigationBarItem != HomeNavigationBarItem.Chats) {
|
||||||
) {
|
state.eventSink(HomeEvent.SelectHomeNavigationBarItem(HomeNavigationBarItem.Chats))
|
||||||
state.eventSink(HomeEvent.SelectHomeNavigationBarItem(HomeNavigationBarItem.Chats))
|
} else {
|
||||||
|
val spaceFiltersState = state.roomListState.spaceFiltersState
|
||||||
|
if (spaceFiltersState is SpaceFiltersState.Selected) {
|
||||||
|
spaceFiltersState.eventSink(SpaceFiltersEvent.Selected.ClearSelection)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val hazeState = rememberHazeState()
|
val hazeState = rememberHazeState()
|
||||||
|
|||||||
Reference in New Issue
Block a user