Room list contextual menu (#427)
- Adds `ModalBottomSheet` to our design components (it wraps the homonimous Material3 one). - Adds a bottom sheet to the Room list using the aforementioned design component. - Adds navigation from the room list to a room detail (context menu "Settings" action). - Consolidates the "leave room flow" into a new `leaveroom` module used by both the room list and the room details. - Adds progress indicator to the leave room flow - Uses new `leaveroom` module in `roomdetails` module too. Parent issue: - https://github.com/vector-im/element-x-android/issues/261
This commit is contained in:
parent
897540ed04
commit
0dee0784ba
60 changed files with 1462 additions and 250 deletions
|
|
@ -57,6 +57,7 @@ dependencies {
|
|||
implementation(projects.libraries.dateformatter.impl)
|
||||
implementation(projects.features.invitelist.impl)
|
||||
implementation(projects.features.roomlist.impl)
|
||||
implementation(projects.features.leaveroom.impl)
|
||||
implementation(projects.features.login.impl)
|
||||
implementation(projects.features.networkmonitor.impl)
|
||||
implementation(libs.coroutines.core)
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ import androidx.compose.runtime.Composable
|
|||
import androidx.compose.runtime.DisposableEffect
|
||||
import androidx.compose.ui.Modifier
|
||||
import io.element.android.features.invitelist.impl.DefaultSeenInvitesStore
|
||||
import io.element.android.features.leaveroom.impl.LeaveRoomPresenterImpl
|
||||
import io.element.android.features.networkmonitor.impl.NetworkMonitorImpl
|
||||
import io.element.android.features.roomlist.impl.DefaultInviteStateDataSource
|
||||
import io.element.android.features.roomlist.impl.DefaultRoomLastMessageFormatter
|
||||
|
|
@ -33,6 +34,7 @@ import io.element.android.libraries.dateformatter.impl.LocalDateTimeProvider
|
|||
import io.element.android.libraries.designsystem.utils.SnackbarDispatcher
|
||||
import io.element.android.libraries.matrix.api.MatrixClient
|
||||
import io.element.android.libraries.matrix.api.core.RoomId
|
||||
import io.element.android.libraries.matrix.api.room.RoomMembershipObserver
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import kotlinx.datetime.Clock
|
||||
|
|
@ -57,7 +59,8 @@ class RoomListScreen(
|
|||
sessionVerificationService = sessionVerificationService,
|
||||
networkMonitor = NetworkMonitorImpl(context),
|
||||
snackbarDispatcher = SnackbarDispatcher(),
|
||||
inviteStateDataSource = DefaultInviteStateDataSource(matrixClient, DefaultSeenInvitesStore(context), coroutineDispatchers)
|
||||
inviteStateDataSource = DefaultInviteStateDataSource(matrixClient, DefaultSeenInvitesStore(context), coroutineDispatchers),
|
||||
leaveRoomPresenter = LeaveRoomPresenterImpl(matrixClient, RoomMembershipObserver() ,coroutineDispatchers)
|
||||
)
|
||||
|
||||
@Composable
|
||||
|
|
@ -82,8 +85,13 @@ class RoomListScreen(
|
|||
val state = presenter.present()
|
||||
RoomListView(
|
||||
state = state,
|
||||
modifier = modifier,
|
||||
onRoomClicked = ::onRoomClicked,
|
||||
onSettingsClicked = {},
|
||||
onVerifyClicked = {},
|
||||
onCreateRoomClicked = {},
|
||||
onInvitesClicked = {},
|
||||
onRoomSettingsClicked = {},
|
||||
modifier = modifier,
|
||||
)
|
||||
|
||||
DisposableEffect(Unit) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue