change(edit room details): expose isSpace
This commit is contained in:
parent
1eaa09975a
commit
ee124b22fd
4 changed files with 14 additions and 8 deletions
|
|
@ -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<String?>(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,
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,5 +27,6 @@ data class RoomDetailsEditState(
|
|||
val saveButtonEnabled: Boolean,
|
||||
val saveAction: AsyncAction<Unit>,
|
||||
val cameraPermissionState: PermissionsState,
|
||||
val isSpace: Boolean,
|
||||
val eventSink: (RoomDetailsEditEvents) -> Unit
|
||||
)
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ open class RoomDetailsEditStateProvider : PreviewParameterProvider<RoomDetailsEd
|
|||
aRoomDetailsEditState(roomTopic = ""),
|
||||
aRoomDetailsEditState(roomRawName = ""),
|
||||
aRoomDetailsEditState(roomAvatarUrl = "example://uri"),
|
||||
aRoomDetailsEditState(roomAvatarUrl = "example://uri", isSpace = true),
|
||||
aRoomDetailsEditState(canChangeName = true, canChangeTopic = false, canChangeAvatar = true, saveButtonEnabled = false),
|
||||
aRoomDetailsEditState(canChangeName = false, canChangeTopic = true, canChangeAvatar = false, saveButtonEnabled = false),
|
||||
aRoomDetailsEditState(saveAction = AsyncAction.Loading),
|
||||
|
|
@ -43,6 +44,7 @@ fun aRoomDetailsEditState(
|
|||
saveButtonEnabled: Boolean = true,
|
||||
saveAction: AsyncAction<Unit> = 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,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -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(),
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue