From ee124b22fdc58584da17cdc1e3b1678a5ddf151e Mon Sep 17 00:00:00 2001 From: ganfra Date: Fri, 14 Nov 2025 10:40:37 +0100 Subject: [PATCH] change(edit room details): expose isSpace --- .../impl/edit/RoomDetailsEditPresenter.kt | 12 +++++------- .../roomdetails/impl/edit/RoomDetailsEditState.kt | 1 + .../impl/edit/RoomDetailsEditStateProvider.kt | 3 +++ .../roomdetails/impl/edit/RoomDetailsEditView.kt | 6 +++++- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/edit/RoomDetailsEditPresenter.kt b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/edit/RoomDetailsEditPresenter.kt index 542b15a776..930d63031a 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/edit/RoomDetailsEditPresenter.kt +++ b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/edit/RoomDetailsEditPresenter.kt @@ -32,9 +32,6 @@ import io.element.android.libraries.matrix.api.room.JoinedRoom import io.element.android.libraries.matrix.api.room.StateEventType import io.element.android.libraries.matrix.api.room.powerlevels.canSendState import io.element.android.libraries.matrix.ui.media.AvatarAction -import io.element.android.libraries.matrix.ui.room.avatarUrl -import io.element.android.libraries.matrix.ui.room.rawName -import io.element.android.libraries.matrix.ui.room.topic import io.element.android.libraries.mediapickers.api.PickerProvider import io.element.android.libraries.mediaupload.api.MediaOptimizationConfigProvider import io.element.android.libraries.mediaupload.api.MediaPreProcessor @@ -61,8 +58,8 @@ class RoomDetailsEditPresenter( override fun present(): RoomDetailsEditState { val cameraPermissionState = cameraPermissionPresenter.present() val roomSyncUpdateFlow = room.syncUpdateFlow.collectAsState() - - val roomAvatarUri = room.avatarUrl() + val roomInfo by room.roomInfoFlow.collectAsState() + val roomAvatarUri = roomInfo.avatarUrl var roomAvatarUriEdited by rememberSaveable { mutableStateOf(null) } LaunchedEffect(roomAvatarUri) { // Every time the roomAvatar change (from sync), we can set the new avatar. @@ -70,13 +67,13 @@ class RoomDetailsEditPresenter( roomAvatarUriEdited = roomAvatarUri } - val roomRawNameTrimmed = room.rawName().orEmpty().trim() + val roomRawNameTrimmed = roomInfo.rawName.orEmpty().trim() var roomRawNameEdited by rememberSaveable { mutableStateOf("") } LaunchedEffect(roomRawNameTrimmed) { // Every time the rawName change (from sync), we can set the new name. roomRawNameEdited = roomRawNameTrimmed } - val roomTopicTrimmed = room.topic().orEmpty().trim() + val roomTopicTrimmed = roomInfo.topic.orEmpty().trim() var roomTopicEdited by rememberSaveable { mutableStateOf("") } LaunchedEffect(roomTopicTrimmed) { // Every time the topic change (from sync), we can set the new topic. @@ -192,6 +189,7 @@ class RoomDetailsEditPresenter( saveButtonEnabled = saveButtonEnabled, saveAction = saveAction.value, cameraPermissionState = cameraPermissionState, + isSpace = roomInfo.isSpace, eventSink = ::handleEvent, ) } diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/edit/RoomDetailsEditState.kt b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/edit/RoomDetailsEditState.kt index 3c5e87a2cd..f1d7a8861b 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/edit/RoomDetailsEditState.kt +++ b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/edit/RoomDetailsEditState.kt @@ -27,5 +27,6 @@ data class RoomDetailsEditState( val saveButtonEnabled: Boolean, val saveAction: AsyncAction, val cameraPermissionState: PermissionsState, + val isSpace: Boolean, val eventSink: (RoomDetailsEditEvents) -> Unit ) diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/edit/RoomDetailsEditStateProvider.kt b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/edit/RoomDetailsEditStateProvider.kt index 33ed4a9e1e..7913620f04 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/edit/RoomDetailsEditStateProvider.kt +++ b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/edit/RoomDetailsEditStateProvider.kt @@ -23,6 +23,7 @@ open class RoomDetailsEditStateProvider : PreviewParameterProvider = AsyncAction.Uninitialized, cameraPermissionState: PermissionsState = aPermissionsState(showDialog = false), + isSpace: Boolean = false, eventSink: (RoomDetailsEditEvents) -> Unit = {}, ) = RoomDetailsEditState( roomId = roomId, @@ -56,5 +58,6 @@ fun aRoomDetailsEditState( saveButtonEnabled = saveButtonEnabled, saveAction = saveAction, cameraPermissionState = cameraPermissionState, + isSpace = isSpace, eventSink = eventSink, ) diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/edit/RoomDetailsEditView.kt b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/edit/RoomDetailsEditView.kt index b8f7e00069..870f48b60e 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/edit/RoomDetailsEditView.kt +++ b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/edit/RoomDetailsEditView.kt @@ -108,7 +108,11 @@ fun RoomDetailsEditView( displayName = state.roomRawName, avatarUrl = state.roomAvatarUrl, avatarSize = AvatarSize.EditRoomDetails, - avatarType = AvatarType.Room(), + avatarType = if(state.isSpace){ + AvatarType.Space() + }else { + AvatarType.Room() + }, onAvatarClick = ::onAvatarClick, modifier = Modifier.fillMaxWidth(), )