change(edit room details): expose isSpace
This commit is contained in:
parent
135dba79bd
commit
af6099106b
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.StateEventType
|
||||||
import io.element.android.libraries.matrix.api.room.powerlevels.canSendState
|
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.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.mediapickers.api.PickerProvider
|
||||||
import io.element.android.libraries.mediaupload.api.MediaOptimizationConfigProvider
|
import io.element.android.libraries.mediaupload.api.MediaOptimizationConfigProvider
|
||||||
import io.element.android.libraries.mediaupload.api.MediaPreProcessor
|
import io.element.android.libraries.mediaupload.api.MediaPreProcessor
|
||||||
|
|
@ -61,8 +58,8 @@ class RoomDetailsEditPresenter(
|
||||||
override fun present(): RoomDetailsEditState {
|
override fun present(): RoomDetailsEditState {
|
||||||
val cameraPermissionState = cameraPermissionPresenter.present()
|
val cameraPermissionState = cameraPermissionPresenter.present()
|
||||||
val roomSyncUpdateFlow = room.syncUpdateFlow.collectAsState()
|
val roomSyncUpdateFlow = room.syncUpdateFlow.collectAsState()
|
||||||
|
val roomInfo by room.roomInfoFlow.collectAsState()
|
||||||
val roomAvatarUri = room.avatarUrl()
|
val roomAvatarUri = roomInfo.avatarUrl
|
||||||
var roomAvatarUriEdited by rememberSaveable { mutableStateOf<String?>(null) }
|
var roomAvatarUriEdited by rememberSaveable { mutableStateOf<String?>(null) }
|
||||||
LaunchedEffect(roomAvatarUri) {
|
LaunchedEffect(roomAvatarUri) {
|
||||||
// Every time the roomAvatar change (from sync), we can set the new avatar.
|
// Every time the roomAvatar change (from sync), we can set the new avatar.
|
||||||
|
|
@ -70,13 +67,13 @@ class RoomDetailsEditPresenter(
|
||||||
roomAvatarUriEdited = roomAvatarUri
|
roomAvatarUriEdited = roomAvatarUri
|
||||||
}
|
}
|
||||||
|
|
||||||
val roomRawNameTrimmed = room.rawName().orEmpty().trim()
|
val roomRawNameTrimmed = roomInfo.rawName.orEmpty().trim()
|
||||||
var roomRawNameEdited by rememberSaveable { mutableStateOf("") }
|
var roomRawNameEdited by rememberSaveable { mutableStateOf("") }
|
||||||
LaunchedEffect(roomRawNameTrimmed) {
|
LaunchedEffect(roomRawNameTrimmed) {
|
||||||
// Every time the rawName change (from sync), we can set the new name.
|
// Every time the rawName change (from sync), we can set the new name.
|
||||||
roomRawNameEdited = roomRawNameTrimmed
|
roomRawNameEdited = roomRawNameTrimmed
|
||||||
}
|
}
|
||||||
val roomTopicTrimmed = room.topic().orEmpty().trim()
|
val roomTopicTrimmed = roomInfo.topic.orEmpty().trim()
|
||||||
var roomTopicEdited by rememberSaveable { mutableStateOf("") }
|
var roomTopicEdited by rememberSaveable { mutableStateOf("") }
|
||||||
LaunchedEffect(roomTopicTrimmed) {
|
LaunchedEffect(roomTopicTrimmed) {
|
||||||
// Every time the topic change (from sync), we can set the new topic.
|
// Every time the topic change (from sync), we can set the new topic.
|
||||||
|
|
@ -192,6 +189,7 @@ class RoomDetailsEditPresenter(
|
||||||
saveButtonEnabled = saveButtonEnabled,
|
saveButtonEnabled = saveButtonEnabled,
|
||||||
saveAction = saveAction.value,
|
saveAction = saveAction.value,
|
||||||
cameraPermissionState = cameraPermissionState,
|
cameraPermissionState = cameraPermissionState,
|
||||||
|
isSpace = roomInfo.isSpace,
|
||||||
eventSink = ::handleEvent,
|
eventSink = ::handleEvent,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -27,5 +27,6 @@ data class RoomDetailsEditState(
|
||||||
val saveButtonEnabled: Boolean,
|
val saveButtonEnabled: Boolean,
|
||||||
val saveAction: AsyncAction<Unit>,
|
val saveAction: AsyncAction<Unit>,
|
||||||
val cameraPermissionState: PermissionsState,
|
val cameraPermissionState: PermissionsState,
|
||||||
|
val isSpace: Boolean,
|
||||||
val eventSink: (RoomDetailsEditEvents) -> Unit
|
val eventSink: (RoomDetailsEditEvents) -> Unit
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,7 @@ open class RoomDetailsEditStateProvider : PreviewParameterProvider<RoomDetailsEd
|
||||||
aRoomDetailsEditState(roomTopic = ""),
|
aRoomDetailsEditState(roomTopic = ""),
|
||||||
aRoomDetailsEditState(roomRawName = ""),
|
aRoomDetailsEditState(roomRawName = ""),
|
||||||
aRoomDetailsEditState(roomAvatarUrl = "example://uri"),
|
aRoomDetailsEditState(roomAvatarUrl = "example://uri"),
|
||||||
|
aRoomDetailsEditState(roomAvatarUrl = "example://uri", isSpace = true),
|
||||||
aRoomDetailsEditState(canChangeName = true, canChangeTopic = false, canChangeAvatar = true, saveButtonEnabled = false),
|
aRoomDetailsEditState(canChangeName = true, canChangeTopic = false, canChangeAvatar = true, saveButtonEnabled = false),
|
||||||
aRoomDetailsEditState(canChangeName = false, canChangeTopic = true, canChangeAvatar = false, saveButtonEnabled = false),
|
aRoomDetailsEditState(canChangeName = false, canChangeTopic = true, canChangeAvatar = false, saveButtonEnabled = false),
|
||||||
aRoomDetailsEditState(saveAction = AsyncAction.Loading),
|
aRoomDetailsEditState(saveAction = AsyncAction.Loading),
|
||||||
|
|
@ -43,6 +44,7 @@ fun aRoomDetailsEditState(
|
||||||
saveButtonEnabled: Boolean = true,
|
saveButtonEnabled: Boolean = true,
|
||||||
saveAction: AsyncAction<Unit> = AsyncAction.Uninitialized,
|
saveAction: AsyncAction<Unit> = AsyncAction.Uninitialized,
|
||||||
cameraPermissionState: PermissionsState = aPermissionsState(showDialog = false),
|
cameraPermissionState: PermissionsState = aPermissionsState(showDialog = false),
|
||||||
|
isSpace: Boolean = false,
|
||||||
eventSink: (RoomDetailsEditEvents) -> Unit = {},
|
eventSink: (RoomDetailsEditEvents) -> Unit = {},
|
||||||
) = RoomDetailsEditState(
|
) = RoomDetailsEditState(
|
||||||
roomId = roomId,
|
roomId = roomId,
|
||||||
|
|
@ -56,5 +58,6 @@ fun aRoomDetailsEditState(
|
||||||
saveButtonEnabled = saveButtonEnabled,
|
saveButtonEnabled = saveButtonEnabled,
|
||||||
saveAction = saveAction,
|
saveAction = saveAction,
|
||||||
cameraPermissionState = cameraPermissionState,
|
cameraPermissionState = cameraPermissionState,
|
||||||
|
isSpace = isSpace,
|
||||||
eventSink = eventSink,
|
eventSink = eventSink,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -108,7 +108,11 @@ fun RoomDetailsEditView(
|
||||||
displayName = state.roomRawName,
|
displayName = state.roomRawName,
|
||||||
avatarUrl = state.roomAvatarUrl,
|
avatarUrl = state.roomAvatarUrl,
|
||||||
avatarSize = AvatarSize.EditRoomDetails,
|
avatarSize = AvatarSize.EditRoomDetails,
|
||||||
avatarType = AvatarType.Room(),
|
avatarType = if(state.isSpace){
|
||||||
|
AvatarType.Space()
|
||||||
|
}else {
|
||||||
|
AvatarType.Room()
|
||||||
|
},
|
||||||
onAvatarClick = ::onAvatarClick,
|
onAvatarClick = ::onAvatarClick,
|
||||||
modifier = Modifier.fillMaxWidth(),
|
modifier = Modifier.fillMaxWidth(),
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue