diff --git a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/root/CreateRoomRootEvents.kt b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/root/CreateRoomRootEvents.kt index d90708ed2b..d3cd1e0287 100644 --- a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/root/CreateRoomRootEvents.kt +++ b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/root/CreateRoomRootEvents.kt @@ -20,7 +20,5 @@ import io.element.android.libraries.matrix.ui.model.MatrixUser sealed interface CreateRoomRootEvents { object InvitePeople : CreateRoomRootEvents - data class SelectUser(val matrixUser: MatrixUser) : CreateRoomRootEvents - data class CreateDM(val matrixUser: MatrixUser) : CreateRoomRootEvents - object CancelCreateDM : CreateRoomRootEvents + data class StartDM(val matrixUser: MatrixUser) : CreateRoomRootEvents } diff --git a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/root/CreateRoomRootPresenter.kt b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/root/CreateRoomRootPresenter.kt index 68901037f0..2ec32c7bac 100644 --- a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/root/CreateRoomRootPresenter.kt +++ b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/root/CreateRoomRootPresenter.kt @@ -18,13 +18,9 @@ package io.element.android.features.createroom.impl.root import androidx.compose.runtime.Composable import androidx.compose.runtime.MutableState -import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope -import androidx.compose.runtime.saveable.rememberSaveable -import androidx.compose.runtime.setValue -import io.element.android.features.selectusers.api.SelectUsersEvents import io.element.android.features.selectusers.api.SelectUsersPresenter import io.element.android.features.selectusers.api.SelectUsersPresenterArgs import io.element.android.features.selectusers.api.SelectionMode @@ -52,35 +48,24 @@ class CreateRoomRootPresenter @Inject constructor( val selectUsersState = presenter.present() val localCoroutineScope = rememberCoroutineScope() - - var showCreateDmConfirmationDialog by rememberSaveable { mutableStateOf(false) } val startDmAction: MutableState> = remember { mutableStateOf(Async.Uninitialized) } fun handleEvents(event: CreateRoomRootEvents) { when (event) { - is CreateRoomRootEvents.SelectUser -> { + is CreateRoomRootEvents.StartDM -> { val existingDM = matrixClient.findDM(event.matrixUser.id) if (existingDM == null) { - showCreateDmConfirmationDialog = true + localCoroutineScope.createDM(event.matrixUser, startDmAction) } else { startDmAction.value = Async.Success(existingDM.roomId) } } - is CreateRoomRootEvents.CreateDM -> { - showCreateDmConfirmationDialog = false - localCoroutineScope.createDM(event.matrixUser, startDmAction) - } - CreateRoomRootEvents.CancelCreateDM -> { - showCreateDmConfirmationDialog = false - selectUsersState.eventSink(SelectUsersEvents.ClearSelection) - } CreateRoomRootEvents.InvitePeople -> Unit // Todo Handle invite people action } } return CreateRoomRootState( selectUsersState = selectUsersState, - showCreateDmConfirmationDialog = showCreateDmConfirmationDialog, startDmAction = startDmAction.value, eventSink = ::handleEvents, ) diff --git a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/root/CreateRoomRootState.kt b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/root/CreateRoomRootState.kt index 89b702a011..9b8b81aef1 100644 --- a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/root/CreateRoomRootState.kt +++ b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/root/CreateRoomRootState.kt @@ -22,7 +22,6 @@ import io.element.android.libraries.matrix.api.core.RoomId data class CreateRoomRootState( val selectUsersState: SelectUsersState, - val showCreateDmConfirmationDialog: Boolean, val startDmAction: Async, val eventSink: (CreateRoomRootEvents) -> Unit, ) diff --git a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/root/CreateRoomRootStateProvider.kt b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/root/CreateRoomRootStateProvider.kt index be720de5b2..e0e3152318 100644 --- a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/root/CreateRoomRootStateProvider.kt +++ b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/root/CreateRoomRootStateProvider.kt @@ -27,7 +27,7 @@ open class CreateRoomRootStateProvider : PreviewParameterProvider selectedUsers.value = selectedUsers.value.minus(event.matrixUser).toImmutableList() - SelectUsersEvents.ClearSelection -> selectedUsers.value = persistentListOf() } }