From 317188cdf1e43dad2691d224a22417d84814aa5e Mon Sep 17 00:00:00 2001 From: ganfra Date: Fri, 29 Nov 2024 12:13:23 +0100 Subject: [PATCH] change : knock message supporting text display number of characters --- .../joinroom/impl/JoinRoomPresenter.kt | 2 -- .../features/joinroom/impl/JoinRoomState.kt | 2 ++ .../joinroom/impl/JoinRoomStateProvider.kt | 34 +++++++++++++------ .../features/joinroom/impl/JoinRoomView.kt | 7 +++- 4 files changed, 31 insertions(+), 14 deletions(-) diff --git a/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomPresenter.kt b/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomPresenter.kt index ba909a147b..1984c0c4b3 100644 --- a/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomPresenter.kt +++ b/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomPresenter.kt @@ -48,8 +48,6 @@ import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.launch import java.util.Optional -private const val MAX_KNOCK_MESSAGE_LENGTH = 500 - class JoinRoomPresenter @AssistedInject constructor( @Assisted private val roomId: RoomId, @Assisted private val roomIdOrAlias: RoomIdOrAlias, diff --git a/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomState.kt b/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomState.kt index 6049e6cd5a..b53c1e0f7d 100644 --- a/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomState.kt +++ b/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomState.kt @@ -18,6 +18,8 @@ import io.element.android.libraries.matrix.api.core.RoomIdOrAlias import io.element.android.libraries.matrix.api.room.RoomType import io.element.android.libraries.matrix.ui.model.InviteSender +internal const val MAX_KNOCK_MESSAGE_LENGTH = 500 + @Immutable data class JoinRoomState( val contentState: ContentState, diff --git a/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomStateProvider.kt b/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomStateProvider.kt index 33dcf786e5..d3bbc59c0c 100644 --- a/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomStateProvider.kt +++ b/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomStateProvider.kt @@ -40,17 +40,6 @@ open class JoinRoomStateProvider : PreviewParameterProvider { aJoinRoomState( contentState = aLoadedContentState(joinAuthorisationStatus = JoinAuthorisationStatus.CanJoin) ), - aJoinRoomState( - contentState = aLoadedContentState( - joinAuthorisationStatus = JoinAuthorisationStatus.CanKnock, - topic = "lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor incididunt" + - " ut labore et dolore magna aliqua ut enim ad minim veniam quis nostrud exercitation ullamco" + - " laboris nisi ut aliquip ex ea commodo consequat duis aute irure dolor in reprehenderit in" + - " voluptate velit esse cillum dolore eu fugiat nulla pariatur excepteur sint occaecat cupidatat" + - " non proident sunt in culpa qui officia deserunt mollit anim id est laborum", - numberOfMembers = 888, - ) - ), aJoinRoomState( contentState = aLoadedContentState(joinAuthorisationStatus = JoinAuthorisationStatus.IsInvited(null)) ), @@ -81,6 +70,29 @@ open class JoinRoomStateProvider : PreviewParameterProvider { isDm = true, ) ), + aJoinRoomState( + contentState = aLoadedContentState( + joinAuthorisationStatus = JoinAuthorisationStatus.CanKnock, + topic = "lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor incididunt" + + " ut labore et dolore magna aliqua ut enim ad minim veniam quis nostrud exercitation ullamco" + + " laboris nisi ut aliquip ex ea commodo consequat duis aute irure dolor in reprehenderit in" + + " voluptate velit esse cillum dolore eu fugiat nulla pariatur excepteur sint occaecat cupidatat" + + " non proident sunt in culpa qui officia deserunt mollit anim id est laborum", + numberOfMembers = 888, + ) + ), + aJoinRoomState( + knockMessage = "Let me in please!", + contentState = aLoadedContentState( + joinAuthorisationStatus = JoinAuthorisationStatus.CanKnock, + topic = "lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor incididunt" + + " ut labore et dolore magna aliqua ut enim ad minim veniam quis nostrud exercitation ullamco" + + " laboris nisi ut aliquip ex ea commodo consequat duis aute irure dolor in reprehenderit in" + + " voluptate velit esse cillum dolore eu fugiat nulla pariatur excepteur sint occaecat cupidatat" + + " non proident sunt in culpa qui officia deserunt mollit anim id est laborum", + numberOfMembers = 888, + ) + ), aJoinRoomState( contentState = aLoadedContentState( name = "A knocked Room", diff --git a/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomView.kt b/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomView.kt index 3a1c7c8421..d06b5badf3 100644 --- a/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomView.kt +++ b/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomView.kt @@ -390,13 +390,18 @@ private fun DefaultLoadedContent( ) } else if (contentState.joinAuthorisationStatus is JoinAuthorisationStatus.CanKnock) { Spacer(modifier = Modifier.height(24.dp)) + val supportingText = if (knockMessage.isNotEmpty()) { + "${knockMessage.length}/$MAX_KNOCK_MESSAGE_LENGTH" + } else { + stringResource(R.string.screen_join_room_knock_message_description) + } TextField( value = knockMessage, onValueChange = onKnockMessageUpdate, maxLines = 3, minLines = 3, modifier = Modifier.fillMaxWidth(), - supportingText = stringResource(R.string.screen_join_room_knock_message_description) + supportingText = supportingText ) } }