From d90390145785ea9980d95f1f6a0159422a23bf72 Mon Sep 17 00:00:00 2001 From: Florian Renaud Date: Thu, 11 May 2023 23:46:37 +0200 Subject: [PATCH] Select private privacy by default --- .../android/features/createroom/impl/CreateRoomConfig.kt | 2 +- .../features/createroom/impl/CreateRoomDataStore.kt | 2 +- .../createroom/impl/configureroom/ConfigureRoomEvents.kt | 2 +- .../impl/configureroom/ConfigureRoomPresenter.kt | 6 ------ .../createroom/impl/configureroom/ConfigureRoomState.kt | 5 +++-- .../impl/configureroom/ConfigureRoomStateProvider.kt | 4 +--- .../impl/configureroom/ConfigureRoomPresenterTests.kt | 9 +-------- ...igureRoomViewDarkPreview_0_null_0,NEXUS_5,1.0,en].png | 4 ++-- ...igureRoomViewDarkPreview_0_null_1,NEXUS_5,1.0,en].png | 4 ++-- ...gureRoomViewLightPreview_0_null_0,NEXUS_5,1.0,en].png | 4 ++-- ...gureRoomViewLightPreview_0_null_1,NEXUS_5,1.0,en].png | 4 ++-- 11 files changed, 16 insertions(+), 30 deletions(-) diff --git a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/CreateRoomConfig.kt b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/CreateRoomConfig.kt index 23b6f3239d..8f6f6e14d9 100644 --- a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/CreateRoomConfig.kt +++ b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/CreateRoomConfig.kt @@ -27,5 +27,5 @@ data class CreateRoomConfig( val topic: String? = null, val avatarUri: Uri? = null, val invites: ImmutableList = persistentListOf(), - val privacy: RoomPrivacy? = null, + val privacy: RoomPrivacy = RoomPrivacy.Private, ) diff --git a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/CreateRoomDataStore.kt b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/CreateRoomDataStore.kt index 3c594a0f1e..2a0dedc3e5 100644 --- a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/CreateRoomDataStore.kt +++ b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/CreateRoomDataStore.kt @@ -60,7 +60,7 @@ class CreateRoomDataStore @Inject constructor( createRoomConfigFlow.tryEmit(createRoomConfigFlow.value.copy(avatarUri = uri)) } - fun setPrivacy(privacy: RoomPrivacy?) { + fun setPrivacy(privacy: RoomPrivacy) { createRoomConfigFlow.tryEmit(createRoomConfigFlow.value.copy(privacy = privacy)) } diff --git a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/configureroom/ConfigureRoomEvents.kt b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/configureroom/ConfigureRoomEvents.kt index 52389d97fb..9082849954 100644 --- a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/configureroom/ConfigureRoomEvents.kt +++ b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/configureroom/ConfigureRoomEvents.kt @@ -23,7 +23,7 @@ import io.element.android.libraries.matrix.api.user.MatrixUser sealed interface ConfigureRoomEvents { data class RoomNameChanged(val name: String) : ConfigureRoomEvents data class TopicChanged(val topic: String) : ConfigureRoomEvents - data class RoomPrivacyChanged(val privacy: RoomPrivacy?) : ConfigureRoomEvents + data class RoomPrivacyChanged(val privacy: RoomPrivacy) : ConfigureRoomEvents data class RemoveFromSelection(val matrixUser: MatrixUser) : ConfigureRoomEvents data class CreateRoom(val config: CreateRoomConfig) : ConfigureRoomEvents data class HandleAvatarAction(val action: AvatarAction) : ConfigureRoomEvents diff --git a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/configureroom/ConfigureRoomPresenter.kt b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/configureroom/ConfigureRoomPresenter.kt index 7659226bd9..cf43c9ceb6 100644 --- a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/configureroom/ConfigureRoomPresenter.kt +++ b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/configureroom/ConfigureRoomPresenter.kt @@ -56,11 +56,6 @@ class ConfigureRoomPresenter @Inject constructor( @Composable override fun present(): ConfigureRoomState { val createRoomConfig = dataStore.getCreateRoomConfig().collectAsState(CreateRoomConfig()) - val isCreateButtonEnabled by remember(createRoomConfig.value.roomName, createRoomConfig.value.privacy) { - derivedStateOf { - createRoomConfig.value.roomName.isNullOrEmpty().not() && createRoomConfig.value.privacy != null - } - } val cameraPhotoPicker = mediaPickerProvider.registerCameraPhotoPicker( onResult = { uri -> if (uri != null) dataStore.setAvatarUri(uri = uri, cached = true) }, @@ -108,7 +103,6 @@ class ConfigureRoomPresenter @Inject constructor( return ConfigureRoomState( config = createRoomConfig.value, - isCreateButtonEnabled = isCreateButtonEnabled, avatarActions = avatarActions, createRoomAction = createRoomAction.value, eventSink = ::handleEvents, diff --git a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/configureroom/ConfigureRoomState.kt b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/configureroom/ConfigureRoomState.kt index 0e0c465b52..b99d70bb13 100644 --- a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/configureroom/ConfigureRoomState.kt +++ b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/configureroom/ConfigureRoomState.kt @@ -24,8 +24,9 @@ import kotlinx.collections.immutable.ImmutableList data class ConfigureRoomState( val config: CreateRoomConfig, - val isCreateButtonEnabled: Boolean, val avatarActions: ImmutableList, val createRoomAction: Async, val eventSink: (ConfigureRoomEvents) -> Unit -) +) { + val isCreateButtonEnabled: Boolean = config.roomName.isNullOrEmpty().not() +} diff --git a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/configureroom/ConfigureRoomStateProvider.kt b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/configureroom/ConfigureRoomStateProvider.kt index 2dd4854f3a..9cb62d4f28 100644 --- a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/configureroom/ConfigureRoomStateProvider.kt +++ b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/configureroom/ConfigureRoomStateProvider.kt @@ -31,16 +31,14 @@ open class ConfigureRoomStateProvider : PreviewParameterProvider