From 6a97b0199277d2817edd9bde905a1c51d4d17e0a Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 7 Feb 2025 14:06:17 +0000 Subject: [PATCH 1/8] AUTOMATION: Version Bump and CHANGELOG Update --- CHANGELOG.md | 73 +------------------ .../getstream/chat/android/Configuration.kt | 2 +- 2 files changed, 2 insertions(+), 73 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index acacff44c01..06970e3e431 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,64 +1,12 @@ -# UNRELEASED CHANGELOG -## Common changes for all artifacts -### 🐞 Fixed - -### ⬆️ Improved - -### ✅ Added - -### ⚠️ Changed - -### ❌ Removed - -## stream-chat-android-client -### 🐞 Fixed - -### ⬆️ Improved - -### ✅ Added - -### ⚠️ Changed - -### ❌ Removed - +# February 07th, 2025 - 6.11.0 ## stream-chat-android-core ### ✅ Added - Expose `UserId` alias that Represents a user id. [#5616](https://github.com/GetStream/stream-chat-android/pull/5616) -## stream-chat-android-offline -### 🐞 Fixed - -### ⬆️ Improved - -### ✅ Added - -### ⚠️ Changed - -### ❌ Removed - -## stream-chat-android-state -### 🐞 Fixed - -### ⬆️ Improved - -### ✅ Added - -### ⚠️ Changed - -### ❌ Removed - ## stream-chat-android-ui-common -### 🐞 Fixed - -### ⬆️ Improved - ### ✅ Added - Added `DateFormatter::formatRelativeDate` method to format a relative date. [#5587](https://github.com/GetStream/stream-chat-android/pull/5587) -### ⚠️ Changed - -### ❌ Removed - ## stream-chat-android-ui-components ### 🐞 Fixed - Fix poll attachment picker not hidden if disabled in the dashboard. [#5562](https://github.com/GetStream/stream-chat-android/pull/5562) @@ -66,12 +14,6 @@ ### ⬆️ Improved - `DateDividerViewHolder` now uses `DateFormatter::formatRelativeDate` to format the date. [#5587](https://github.com/GetStream/stream-chat-android/pull/5587) -### ✅ Added - -### ⚠️ Changed - -### ❌ Removed - ## stream-chat-android-compose ### 🐞 Fixed - Fix poll attachment picker not hidden if disabled in the dashboard. [#5562](https://github.com/GetStream/stream-chat-android/pull/5562) @@ -103,19 +45,6 @@ ### ⚠️ Changed - 🚨 Breaking change: Change `@Composable public fun MessageContainer` function to `@Composable public fun LazyItemScope.MessageContainer`. [#5593](https://github.com/GetStream/stream-chat-android/pull/5593) -### ❌ Removed - -## stream-chat-android-markdown-transformer -### 🐞 Fixed - -### ⬆️ Improved - -### ✅ Added - -### ⚠️ Changed - -### ❌ Removed - # January 23th, 2025 - 6.10.0 ## Common changes for all artifacts ### ⬆️ Improved diff --git a/buildSrc/src/main/kotlin/io/getstream/chat/android/Configuration.kt b/buildSrc/src/main/kotlin/io/getstream/chat/android/Configuration.kt index ca648c03ebb..d7f06bc304b 100644 --- a/buildSrc/src/main/kotlin/io/getstream/chat/android/Configuration.kt +++ b/buildSrc/src/main/kotlin/io/getstream/chat/android/Configuration.kt @@ -6,7 +6,7 @@ object Configuration { const val sampleTargetSdk = 34 const val minSdk = 21 const val majorVersion = 6 - const val minorVersion = 10 + const val minorVersion = 11 const val patchVersion = 0 const val versionName = "$majorVersion.$minorVersion.$patchVersion" const val snapshotVersionName = "$majorVersion.$minorVersion.${patchVersion + 1}-SNAPSHOT" From d610e51fc8ceebb4cbc1a6cddc301473a06796b7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 7 Feb 2025 14:25:43 +0000 Subject: [PATCH 2/8] AUTOMATION: Changelog update --- CHANGELOG.md | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 06970e3e431..587c638dbf3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,92 @@ +# UNRELEASED CHANGELOG +## Common changes for all artifacts +### 🐞 Fixed + +### ⬆️ Improved + +### ✅ Added + +### ⚠️ Changed + +### ❌ Removed + +## stream-chat-android-client +### 🐞 Fixed + +### ⬆️ Improved + +### ✅ Added + +### ⚠️ Changed + +### ❌ Removed + +## stream-chat-android-offline +### 🐞 Fixed + +### ⬆️ Improved + +### ✅ Added + +### ⚠️ Changed + +### ❌ Removed + +## stream-chat-android-state +### 🐞 Fixed + +### ⬆️ Improved + +### ✅ Added + +### ⚠️ Changed + +### ❌ Removed + +## stream-chat-android-ui-common +### 🐞 Fixed + +### ⬆️ Improved + +### ✅ Added + +### ⚠️ Changed + +### ❌ Removed + +## stream-chat-android-ui-components +### 🐞 Fixed + +### ⬆️ Improved + +### ✅ Added + +### ⚠️ Changed + +### ❌ Removed + +## stream-chat-android-compose +### 🐞 Fixed + +### ⬆️ Improved + +### ✅ Added + +### ⚠️ Changed + +### ❌ Removed + +## stream-chat-android-markdown-transformer +### 🐞 Fixed + +### ⬆️ Improved + +### ✅ Added + +### ⚠️ Changed + +### ❌ Removed + # February 07th, 2025 - 6.11.0 ## stream-chat-android-core ### ✅ Added From 4cda08a72f513bffae9436d7b44f2389a5cab980 Mon Sep 17 00:00:00 2001 From: Petar Velikov Date: Wed, 12 Feb 2025 22:16:29 +0100 Subject: [PATCH 3/8] [AND-317] Add autofocus to input fields in create poll screen. (#5629) * [AND-317] Add autofocus to input fields in create poll screen. * [AND-317] Update CHANGELOG.md. * [AND-317] Suppress warning. * [AND-317] Update snapshot tests. * [AND-317] Apply spotless. --------- Co-authored-by: PetarVelikov --- CHANGELOG.md | 1 + .../ui/components/poll/PollOptionInput.kt | 12 ++++ .../ui/components/poll/PollOptionInputTest.kt | 53 ++++++++++++++++++ ...s.poll_PollOptionInputTest_empty_input.png | Bin 0 -> 8540 bytes ...ts.poll_PollOptionInputTest_with_input.png | Bin 0 -> 8939 bytes ...abFactory_content_dark_mode_composable.png | Bin 33818 -> 33903 bytes ...bFactory_content_light_mode_composable.png | Bin 33428 -> 33512 bytes 7 files changed, 66 insertions(+) create mode 100644 stream-chat-android-compose/src/test/kotlin/io/getstream/chat/android/compose/ui/components/poll/PollOptionInputTest.kt create mode 100644 stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.components.poll_PollOptionInputTest_empty_input.png create mode 100644 stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.components.poll_PollOptionInputTest_with_input.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 587c638dbf3..4d652bfbecb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -69,6 +69,7 @@ ### 🐞 Fixed ### ⬆️ Improved +- Autofocus the input fields in the poll creation screen. [#5629](https://github.com/GetStream/stream-chat-android/pull/5629) ### ✅ Added diff --git a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/components/poll/PollOptionInput.kt b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/components/poll/PollOptionInput.kt index 9d237e29880..b802f5e0c93 100644 --- a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/components/poll/PollOptionInput.kt +++ b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/components/poll/PollOptionInput.kt @@ -30,9 +30,13 @@ import androidx.compose.foundation.text.BasicTextField import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip +import androidx.compose.ui.focus.FocusRequester +import androidx.compose.ui.focus.focusRequester import androidx.compose.ui.graphics.Shape import androidx.compose.ui.graphics.SolidColor import androidx.compose.ui.res.stringResource @@ -69,6 +73,7 @@ import io.getstream.chat.android.compose.ui.util.buildAnnotatedMessageText * @param keyboardOptions The [KeyboardOptions] to be applied to the input. * @param decorationBox Composable function that represents the input field decoration as it's filled with content. */ +@Suppress("LongMethod") @Composable public fun PollOptionInput( value: String, @@ -86,6 +91,7 @@ public fun PollOptionInput( val typography = ChatTheme.typography val colors = ChatTheme.colors val textColor = ChatTheme.colors.textHighEmphasis + val focusRequester = remember { FocusRequester() } Box(modifier = modifier.height(ChatTheme.dimens.pollOptionInputHeight)) { BasicTextField( @@ -94,6 +100,7 @@ public fun PollOptionInput( .clip(shape = shape) .background(ChatTheme.colors.inputBackground) .padding(innerPadding) + .focusRequester(focusRequester) .semantics { contentDescription = description }, value = value, onValueChange = { @@ -139,6 +146,11 @@ public fun PollOptionInput( ) } } + + // Request focus initially when the Input is first drawn. + LaunchedEffect(Unit) { + focusRequester.requestFocus() + } } @Preview diff --git a/stream-chat-android-compose/src/test/kotlin/io/getstream/chat/android/compose/ui/components/poll/PollOptionInputTest.kt b/stream-chat-android-compose/src/test/kotlin/io/getstream/chat/android/compose/ui/components/poll/PollOptionInputTest.kt new file mode 100644 index 00000000000..0e9909954f5 --- /dev/null +++ b/stream-chat-android-compose/src/test/kotlin/io/getstream/chat/android/compose/ui/components/poll/PollOptionInputTest.kt @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2014-2025 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-chat-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.getstream.chat.android.compose.ui.components.poll + +import app.cash.paparazzi.DeviceConfig +import app.cash.paparazzi.Paparazzi +import io.getstream.chat.android.compose.ui.SnapshotTest +import org.junit.Rule +import org.junit.Test + +internal class PollOptionInputTest : SnapshotTest { + + @get:Rule + override val paparazzi: Paparazzi = Paparazzi(deviceConfig = DeviceConfig.PIXEL_2) + + @Test + fun `empty input`() { + snapshotWithDarkMode { + PollOptionInput( + value = "", + onValueChange = {}, + description = "Description", + decorationBox = { innerTextField -> innerTextField.invoke() }, + ) + } + } + + @Test + fun `with input`() { + snapshotWithDarkMode { + PollOptionInput( + value = "Entered text", + onValueChange = {}, + description = "Description", + decorationBox = { innerTextField -> innerTextField.invoke() }, + ) + } + } +} diff --git a/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.components.poll_PollOptionInputTest_empty_input.png b/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.components.poll_PollOptionInputTest_empty_input.png new file mode 100644 index 0000000000000000000000000000000000000000..27d01576761fba067b9e3c2aebb9866bdad65163 GIT binary patch literal 8540 zcmeHNc{r47|9_-Vwj4#4XpSfm8B5v5PO_a7hsaWyEZMS+Wth=PMG`eJ#(oqIin3=J z$~yKXgqX6A!Ng!NhTo&pImdaI>-wGReSh!oeXr~N=eg&4uKRm0-|zRnzn{QpxuKmOr9$f9m z1}O$0d$lRmw%;F;e9L)Mn?0oqX)+Vr6{QL6W76CEy+zeWJ=p_2JZuNQJ?}+I*`8Vm zSZ#ah+&QPLEKaZv4NavjDi`@WA&j%O0yx8NMi6`8bDqsO(?<+;6^-R? zjRU|@?qnY$U2|y*&nRUPD7#GY&B6~$p&V*J*JOrVhGK;pe2OwCuYMRF%M_-3I#F!s zsgbtRn>&2a>3u)~+4n|$pZ6lRV>44;{_a zs(Xhw-iX|OtiC!VYwa4>m(=tzemIMMZnoTf^Y*^5ARZ`P)K51!tmAprtRO+Aa_da! z>1ENE_H|rWLgI(kW+Hf#I&2SnK14bnXB7?h z+Zd`{Q8IOCMRB=3e~qYcpSDAoO*0*ZP1H}6|K$9POMPq&{=&b%b0E6YdqVC+CfV6J z8yxAvhHq8PCFg3+vqorG`Xw7u(1`B-(#)XRkV$qK`W`Ztl;$s>ojPGrj+q&H7xSlsJ* zWJ38=zNDoQ6)pBqaL7;JwJ3|`YlBDCl(1O#%X-OnC^Wdq39N-j`oO?qrQVAwa!Z`~6) zhbgF}+tV{!5!;{e?foOJ({|KyNfq|u6$CL~h2AT>zU7I`Zsk4)KYz8^y?l|6giDJ{ zS}4778veF)n37zRR<0w3r0DSmknL=8`Jvtt;_+T(;{i*=NO?Kp)`Dl8rs~wh+t|n} zQEV;oO}H#~D54uD3><`dd{7BlB2AxFjo>~h>N5UOkd-pTjNB9^H<1Uc65pdXxA-p4 zca8bCeFv5L%qbO z%fVN3vVWcu;uW*`*sQI@b-wK_nu0u!Dt$JyQa<;@ZX<^a7jbVj+}O5Ma%d|RNpU!$ zKffQR!=;+_&8Z|$Yqf>pEvu+Yt=d^9Eequ$hY5`D!Ruit$W^lAI|~P!A&<^bYLVaz zfiAzu;h!%lb zpLEAhBGwD-5F_$-d}fvNGk7t!LPDi?mIQlv`O}=yWNbbsZp_F?4x&7=y?V5!_)wX5 zQ(;1gZE?)$ve8!!S zdwyUr^JSmgf>Uk)-G9|Ksl99nKL{%w`J`$>KUea3)eXWN7VGNV{Ejz3>Uw}k-|PT7 zWpm*f+oJ@U&qVi$$(l-rDUmT{eUj|?#B4dbNR^dKo4YXKLc`k zyEb=4>=V-#roPf8Nu=Iy&4EElsvvDgR-e`t9XOBfT_oXR& zT03NtZiRlCi&NLOUN|v<+S6a*ebB*wW$O+rwStT-8~MSkW?KjLnq_|q zgJ!P^OKoEhi~Y$+hXp+3-~eA9;T$j8tRh+aIBmTg$H6+o0%$e^zcy?Fz(=A2+;XPq z{;glCagG(`FeeMpbu;7Yg;wdxs$Z)yAv0d_Yc*yxmGQ}c{oPJ1%Kq9VXS3$n0EkxD z!1^CARc54MEC}6x{r(%4eSpi6ZkeFw<+(w5Qqe^RW)N2(yQS5ouyLm#ynL5KByaD$ ziNYp{ld&MgNkXHXuLEJ8XeEinOugoCFUIs3%YI;{G~^|~ z8R_{J9=tqr^(AO19dk;Vj@$phHthSdd zS<;4XZ>nQPLoJnJfm+*v%Fa`+QN{hIGL`I&r;@zz@WIJoq3?hz`H`y;EUtOx7m8kK z-}t1*XA)1De<%T5>4@x)m`WIdNtQS^6p9csqEJR%0AMF_ru#^@;Jh1V^~Gj8{Np}; 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 literal 0 HcmV?d00001 diff --git a/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.components.poll_PollOptionInputTest_with_input.png b/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.components.poll_PollOptionInputTest_with_input.png new file mode 100644 index 0000000000000000000000000000000000000000..ee392b33c399621642ad98924d0e6842dbe0fe7e GIT binary patch literal 8939 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
(yd>p)%aAiX&%$RX-HAXguZ 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 Mc{RB*8M8P43*bhBq5uE@ literal 33428 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 NPFndz(KF+B{|76#C!PQR From 7c451cd26ecb387a9ec56e0a5b26aac4b3e6e9c5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 12 Feb 2025 21:20:37 +0000 Subject: [PATCH 4/8] [skip ci] Update SDK sizes --- README.md | 2 +- metrics/size.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 826f3542030..eba2d4b75d0 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ ![stream-chat-android-client](https://img.shields.io/badge/stream--chat--android--client-3.16%20MB-lightgreen) ![stream-chat-android-offline](https://img.shields.io/badge/stream--chat--android--offline-3.37%20MB-lightgreen) ![stream-chat-android-ui-components](https://img.shields.io/badge/stream--chat--android--ui--components-7.86%20MB-lightgreen) -![stream-chat-android-compose](https://img.shields.io/badge/stream--chat--android--compose-8.74%20MB-lightgreen) +![stream-chat-android-compose](https://img.shields.io/badge/stream--chat--android--compose-8.75%20MB-lightgreen) diff --git a/metrics/size.json b/metrics/size.json index 32ac1351bc6..4afb4822ca5 100644 --- a/metrics/size.json +++ b/metrics/size.json @@ -3,12 +3,12 @@ "stream-chat-android-client": 15308, "stream-chat-android-offline": 15620, "stream-chat-android-ui-components": 20992, - "stream-chat-android-compose": 22388 + "stream-chat-android-compose": 22392 }, "release": { "stream-chat-android-client": 3244, "stream-chat-android-offline": 3456, "stream-chat-android-ui-components": 8052, - "stream-chat-android-compose": 8956 + "stream-chat-android-compose": 8960 } } From e536e13a33f983e6de1bf96b0b70bee88dd046ce Mon Sep 17 00:00:00 2001 From: "stream-pr-merger[bot]" <117762243+stream-pr-merger[bot]@users.noreply.github.com> Date: Wed, 12 Feb 2025 21:38:28 +0000 Subject: [PATCH 5/8] AUTOMATION: Clean Detekt Baseline Files (#5623) Co-authored-by: adasiewiczr --- .../detekt-baseline.xml | 13 ------------- stream-chat-android-ui-utils/detekt-baseline.xml | 1 - 2 files changed, 14 deletions(-) diff --git a/stream-chat-android-ai-assistant/detekt-baseline.xml b/stream-chat-android-ai-assistant/detekt-baseline.xml index 251e2b443fc..97a8cda418e 100644 --- a/stream-chat-android-ai-assistant/detekt-baseline.xml +++ b/stream-chat-android-ai-assistant/detekt-baseline.xml @@ -2,27 +2,14 @@ - FunctionNaming:AiMessageText.kt$@Composable private fun ClickableText( text: AnnotatedString, modifier: Modifier = Modifier, style: TextStyle = TextStyle.Default, maxLines: Int = Int.MAX_VALUE, onLongPress: () -> Unit, onClick: (Int) -> Unit, ) - FunctionNaming:AiMessageText.kt$@Composable public fun AiMessageText( message: Message, currentUser: User?, typingState: TypingState, modifier: Modifier = Modifier, onAnimationState: (Boolean) -> Unit, onLongItemClick: (Message) -> Unit, onLinkClick: ((Message, String) -> Unit)? = null, ) - FunctionNaming:AiMessagesScreen.kt$@Composable internal fun BoxScope.DefaultAiStartButton( isAiStarted: Boolean, onStartAiAssistant: () -> Unit, onStopAiAssistant: () -> Unit, ) - FunctionNaming:AiMessagesScreen.kt$@Composable internal fun DefaultBottomBarContent( viewModelFactory: MessagesViewModelFactory, onComposerLinkPreviewClick: ((LinkPreview) -> Unit)? = null, skipPushNotification: Boolean = false, skipEnrichUrl: Boolean = false, ) - FunctionNaming:AiMessagesScreen.kt$@Composable internal fun DefaultTopBarContent( viewModelFactory: MessagesViewModelFactory, backAction: BackAction, onHeaderTitleClick: (channel: Channel) -> Unit, onChannelAvatarClick: () -> Unit, ) - FunctionNaming:AiMessagesScreen.kt$@Composable public fun AiMessagesScreen( viewModelFactory: MessagesViewModelFactory, isAiStarted: Boolean, onStartAiAssistant: () -> Unit, onStopAiAssistant: () -> Unit, showHeader: Boolean = true, typingState: TypingState, reactionSorting: ReactionSorting = ReactionSortingByFirstReactionAt, onBackPressed: () -> Unit = {}, onComposerLinkPreviewClick: ((LinkPreview) -> Unit)? = null, onHeaderTitleClick: (channel: Channel) -> Unit = {}, onChannelAvatarClick: () -> Unit = {}, onMessageLinkClick: ((Message, String) -> Unit)? = null, onUserAvatarClick: (User) -> Unit = {}, skipPushNotification: Boolean = false, skipEnrichUrl: Boolean = false, threadMessagesStart: ThreadMessagesStart = ThreadMessagesStart.BOTTOM, aiStartButton: @Composable BoxScope.() -> Unit = { DefaultAiStartButton( isAiStarted = isAiStarted, onStartAiAssistant = onStartAiAssistant, onStopAiAssistant = onStopAiAssistant, ) }, topBarContent: @Composable (BackAction) -> Unit = { DefaultTopBarContent( viewModelFactory = viewModelFactory, backAction = it, onHeaderTitleClick = onHeaderTitleClick, onChannelAvatarClick = onChannelAvatarClick, ) }, bottomBarContent: @Composable (isAnimating: Boolean) -> Unit = { DefaultBottomBarContent( viewModelFactory = viewModelFactory, onComposerLinkPreviewClick = onComposerLinkPreviewClick, skipPushNotification = skipPushNotification, skipEnrichUrl = skipEnrichUrl, ) }, ) - FunctionNaming:AiRegularMessageContent.kt$@Composable internal fun DefaultMessageTextContent( message: Message, currentUser: User?, typingState: TypingState, onAnimationState: (Boolean) -> Unit, onLongItemClick: (Message) -> Unit, onLinkClick: ((Message, String) -> Unit)? = null, ) - FunctionNaming:AiRegularMessageContent.kt$@Composable public fun AiRegularMessageContent( messageItem: MessageItemState, modifier: Modifier = Modifier, onLongItemClick: (Message) -> Unit = {}, onGiphyActionClick: (GiphyAction) -> Unit = {}, onQuotedMessageClick: (Message) -> Unit = {}, onAnimationState: (Boolean) -> Unit, onLinkClick: ((Message, String) -> Unit)? = null, typingState: TypingState, onMediaGalleryPreviewResult: (MediaGalleryPreviewResult?) -> Unit = {}, ) - FunctionNaming:AiTypingIndicator.kt$@Composable private fun SingleDot( scale: Float, shimmerInstance: Shimmer, ) - FunctionNaming:AiTypingIndicator.kt$@Composable public fun AiTypingIndicator( modifier: Modifier = Modifier, text: String, textStyle: TextStyle = TextStyle( fontSize = 16.sp, color = ChatTheme.colors.textHighEmphasis, ), ) LongMethod:AiMessageContentFactory.kt$AiMessageContentFactory$@Composable override fun MessageFooterContent(messageItem: MessageItemState) LongMethod:AiMessageText.kt$@Composable public fun AiMessageText( message: Message, currentUser: User?, typingState: TypingState, modifier: Modifier = Modifier, onAnimationState: (Boolean) -> Unit, onLongItemClick: (Message) -> Unit, onLinkClick: ((Message, String) -> Unit)? = null, ) - LongMethod:AiMessagesScreen.kt$@Composable public fun AiMessagesScreen( viewModelFactory: MessagesViewModelFactory, isAiStarted: Boolean, onStartAiAssistant: () -> Unit, onStopAiAssistant: () -> Unit, showHeader: Boolean = true, typingState: TypingState, reactionSorting: ReactionSorting = ReactionSortingByFirstReactionAt, onBackPressed: () -> Unit = {}, onComposerLinkPreviewClick: ((LinkPreview) -> Unit)? = null, onHeaderTitleClick: (channel: Channel) -> Unit = {}, onChannelAvatarClick: () -> Unit = {}, onMessageLinkClick: ((Message, String) -> Unit)? = null, onUserAvatarClick: (User) -> Unit = {}, skipPushNotification: Boolean = false, skipEnrichUrl: Boolean = false, threadMessagesStart: ThreadMessagesStart = ThreadMessagesStart.BOTTOM, aiStartButton: @Composable BoxScope.() -> Unit = { DefaultAiStartButton( isAiStarted = isAiStarted, onStartAiAssistant = onStartAiAssistant, onStopAiAssistant = onStopAiAssistant, ) }, topBarContent: @Composable (BackAction) -> Unit = { DefaultTopBarContent( viewModelFactory = viewModelFactory, backAction = it, onHeaderTitleClick = onHeaderTitleClick, onChannelAvatarClick = onChannelAvatarClick, ) }, bottomBarContent: @Composable (isAnimating: Boolean) -> Unit = { DefaultBottomBarContent( viewModelFactory = viewModelFactory, onComposerLinkPreviewClick = onComposerLinkPreviewClick, skipPushNotification = skipPushNotification, skipEnrichUrl = skipEnrichUrl, ) }, ) LongMethod:AiRegularMessageContent.kt$@Composable public fun AiRegularMessageContent( messageItem: MessageItemState, modifier: Modifier = Modifier, onLongItemClick: (Message) -> Unit = {}, onGiphyActionClick: (GiphyAction) -> Unit = {}, onQuotedMessageClick: (Message) -> Unit = {}, onAnimationState: (Boolean) -> Unit, onLinkClick: ((Message, String) -> Unit)? = null, typingState: TypingState, onMediaGalleryPreviewResult: (MediaGalleryPreviewResult?) -> Unit = {}, ) MagicNumber:AiMessageText.kt$10 MagicNumber:AiMessagesScreen.kt$0.75f MagicNumber:AiMessagesScreen.kt$300f MagicNumber:AiTypingIndicator.kt$0.55f MagicNumber:AiTypingIndicator.kt$4 - TopLevelPropertyNaming:AiMessageText.kt$/** * The tag used to annotate URLs in the message text. */ internal const val AnnotationTagUrl: AnnotationTag = "URL" - TopLevelPropertyNaming:AiMessageText.kt$/** * The tag used to annotate emails in the message text. */ internal const val AnnotationTagEmail: AnnotationTag = "EMAIL" TopLevelPropertyNaming:AiTypingIndicator.kt$private const val delayUnit = 200 diff --git a/stream-chat-android-ui-utils/detekt-baseline.xml b/stream-chat-android-ui-utils/detekt-baseline.xml index dba38f7b560..dcd115ea62b 100644 --- a/stream-chat-android-ui-utils/detekt-baseline.xml +++ b/stream-chat-android-ui-utils/detekt-baseline.xml @@ -3,6 +3,5 @@ LongMethod:ChannelKtTest.kt$ChannelKtTest.Companion$@JvmStatic fun arguments() - LongParameterList:Channel.kt$( context: Context, currentUser: User?, @StringRes userOnlineResId: Int, @StringRes userLastSeenJustNowResId: Int, @StringRes userLastSeenResId: Int, @PluralsRes memberCountResId: Int, @StringRes memberCountWithOnlineResId: Int, ) From 44f8f4905dea456458b6ccd1a39b90e3d8b44eb5 Mon Sep 17 00:00:00 2001 From: Petar Velikov Date: Thu, 13 Feb 2025 00:48:52 +0100 Subject: [PATCH 6/8] [AND-65] Fix crash and improve error handling in poll creation. (#5630) Co-authored-by: PetarVelikov --- .../api/stream-chat-android-compose.api | 12 +++--- .../AttachmentsPickerPollTabFactory.kt | 30 ++++++++++++-- .../attachments/poll/PollSwitchItem.kt | 5 ++- .../attachments/poll/PollSwitchList.kt | 39 ++++++++++++------- .../compose/ui/util/PollSwitchItemFactory.kt | 3 +- .../src/main/res/values/strings.xml | 2 +- .../util/DefaultPollSwitchItemFactoryTest.kt | 3 +- 7 files changed, 66 insertions(+), 28 deletions(-) diff --git a/stream-chat-android-compose/api/stream-chat-android-compose.api b/stream-chat-android-compose/api/stream-chat-android-compose.api index 971145c9b04..c7abe4f9d31 100644 --- a/stream-chat-android-compose/api/stream-chat-android-compose.api +++ b/stream-chat-android-compose/api/stream-chat-android-compose.api @@ -1774,18 +1774,20 @@ public final class io/getstream/chat/android/compose/ui/messages/attachments/pol public final class io/getstream/chat/android/compose/ui/messages/attachments/poll/PollSwitchInput { public static final field $stable I - public synthetic fun (Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;IILkotlin/jvm/internal/DefaultConstructorMarker;)V - public synthetic fun (Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;IILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Ljava/lang/Object; public final fun component2 ()Ljava/lang/String; public final fun component3 ()Ljava/lang/Object; - public final fun component4-PjHm6EE ()I - public final fun copy-YyDlPXQ (Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;I)Lio/getstream/chat/android/compose/ui/messages/attachments/poll/PollSwitchInput; - public static synthetic fun copy-YyDlPXQ$default (Lio/getstream/chat/android/compose/ui/messages/attachments/poll/PollSwitchInput;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;IILjava/lang/Object;)Lio/getstream/chat/android/compose/ui/messages/attachments/poll/PollSwitchInput; + public final fun component4 ()Ljava/lang/Object; + public final fun component5-PjHm6EE ()I + public final fun copy-l6dddJE (Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;I)Lio/getstream/chat/android/compose/ui/messages/attachments/poll/PollSwitchInput; + public static synthetic fun copy-l6dddJE$default (Lio/getstream/chat/android/compose/ui/messages/attachments/poll/PollSwitchInput;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;IILjava/lang/Object;)Lio/getstream/chat/android/compose/ui/messages/attachments/poll/PollSwitchInput; public fun equals (Ljava/lang/Object;)Z public final fun getDescription ()Ljava/lang/String; public final fun getKeyboardType-PjHm6EE ()I public final fun getMaxValue ()Ljava/lang/Object; + public final fun getMinValue ()Ljava/lang/Object; public final fun getValue ()Ljava/lang/Object; public fun hashCode ()I public final fun setValue (Ljava/lang/Object;)V diff --git a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/messages/attachments/factory/AttachmentsPickerPollTabFactory.kt b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/messages/attachments/factory/AttachmentsPickerPollTabFactory.kt index c096714e718..598a81b95ba 100644 --- a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/messages/attachments/factory/AttachmentsPickerPollTabFactory.kt +++ b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/messages/attachments/factory/AttachmentsPickerPollTabFactory.kt @@ -118,7 +118,7 @@ public class AttachmentsPickerPollTabFactory : AttachmentsPickerTabFactory { val pollSwitchItemFactory = ChatTheme.pollSwitchitemFactory var optionItemList by remember { mutableStateOf(emptyList()) } var switchItemList: List by remember { mutableStateOf(pollSwitchItemFactory.providePollSwitchItemList()) } - var hasErrorOnOptions by remember { mutableStateOf(false) } + var hasError by remember { mutableStateOf(false) } val nestedScrollConnection = remember { object : NestedScrollConnection { override fun onPreScroll(available: Offset, source: NestedScrollSource): Offset { @@ -139,7 +139,7 @@ public class AttachmentsPickerPollTabFactory : AttachmentsPickerTabFactory { .background(ChatTheme.colors.appBackground), ) { val (question, onQuestionChanged) = rememberSaveable { mutableStateOf("") } - val isEnabled = question.isNotBlank() && optionItemList.any { it.title.isNotBlank() } && !hasErrorOnOptions + val isEnabled = question.isNotBlank() && optionItemList.any { it.title.isNotBlank() } && !hasError val hasChanges = question.isNotBlank() || optionItemList.any { it.title.isNotBlank() } var isShowingDiscardDialog by remember { mutableStateOf(false) } @@ -175,7 +175,7 @@ public class AttachmentsPickerPollTabFactory : AttachmentsPickerTabFactory { onQuestionsChanged = { optionItemList = it switchItemList = updateMaxVotesAllowedSwitch(optionItemList, switchItemList) - hasErrorOnOptions = it.fastAny { item -> item.pollOptionError != null } + hasError = hasError(optionItemList, switchItemList) }, ) @@ -185,7 +185,7 @@ public class AttachmentsPickerPollTabFactory : AttachmentsPickerTabFactory { pollSwitchItems = switchItemList, onSwitchesChanged = { switchItemList = it - hasErrorOnOptions = it.fastAny { item -> item.pollOptionError != null } + hasError = hasError(optionItemList, switchItemList) }, ) @@ -202,6 +202,28 @@ public class AttachmentsPickerPollTabFactory : AttachmentsPickerTabFactory { } } +/** + * Checks if there are any errors in the 'options' list, or any errors or missing fields in the 'switches' list. + */ +private fun hasError( + options: List, + switches: List, +): Boolean { + // Check errors in options + val hasErrorInOptions = options.fastAny { item -> + item.pollOptionError != null + } + // Check errors or missing fields in switches + val hasErrorInSwitches = switches.fastAny { item -> + val hasError = item.pollOptionError != null + val isMissingMandatoryInput = item.enabled && + item.pollSwitchInput != null && + item.pollSwitchInput.value.toString().isEmpty() + hasError || isMissingMandatoryInput + } + return hasErrorInOptions || hasErrorInSwitches +} + /** * Updates the max votes allowed switch based on the number of options available. * diff --git a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/messages/attachments/poll/PollSwitchItem.kt b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/messages/attachments/poll/PollSwitchItem.kt index 7bcf9fa7d0c..c479df0d2c0 100644 --- a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/messages/attachments/poll/PollSwitchItem.kt +++ b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/messages/attachments/poll/PollSwitchItem.kt @@ -26,6 +26,7 @@ import java.util.UUID * @property title The title of this poll item. * @property enabled Indicates if this switch is enabled or not. * @property key The key that identifies this poll item. + * @property pollSwitchInput Optional input field to be presented when the switch is enabled. * @property pollOptionError Indicates this option has an error. */ @Immutable @@ -42,12 +43,14 @@ public data class PollSwitchItem( * * @property value The default value of the switch. * @property description The description of the input in the switch (shown as hint/contentDescription). - * @property maxValue The maximum vale of the switch. Normally, you can use the limit of the decimal format of the [value]. + * @property minValue The minimum value of the switch. Normally, you can use the limit of the decimal format of the [value]. + * @property maxValue The maximum value of the switch. Normally, you can use the limit of the decimal format of the [value]. * @property keyboardType The type of the input of the switch and decide the keyboard type of the input. */ public data class PollSwitchInput( public var value: Any, public val description: String = "", + public val minValue: Any? = null, public val maxValue: Any? = null, public val keyboardType: KeyboardType = KeyboardType.Text, ) diff --git a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/messages/attachments/poll/PollSwitchList.kt b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/messages/attachments/poll/PollSwitchList.kt index cb8c8dba00a..da4f26e335e 100644 --- a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/messages/attachments/poll/PollSwitchList.kt +++ b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/messages/attachments/poll/PollSwitchList.kt @@ -68,7 +68,6 @@ import io.getstream.chat.android.compose.ui.theme.ChatTheme * @param onSwitchesChanged A lambda that will be executed when a switch on the list is changed. * @param itemHeightSize The height size of the question item. * @param itemInnerPadding The inner padding size of the question item. - * It provides the index information [from] and [to] as a receiver, so you must swap the item of the [questions] list. */ @Composable public fun PollSwitchList( @@ -189,24 +188,34 @@ public fun PollSwitchList( if (switchInput.keyboardType == KeyboardType.Number || switchInput.keyboardType == KeyboardType.Decimal ) { - val newInt = if (newValue.isBlank()) 0 else newValue.toInt() - val maxInt = switchInput.maxValue?.toString()?.toInt() ?: 0 - - if (newInt > maxInt) { - this[index] = item.copy( - pollSwitchInput = item.pollSwitchInput.copy(value = newValue), - pollOptionError = PollOptionNumberExceed( - context.getString( - R.string.stream_compose_poll_option_error_exceed, - maxInt, - ), - ), - ) - } else { + if (newValue.isBlank()) { + // If newValue is empty, don't validate this[index] = item.copy( pollSwitchInput = item.pollSwitchInput.copy(value = newValue), pollOptionError = null, ) + } else { + // Validate min/max range + val min = switchInput.minValue?.toString()?.toIntOrNull() ?: 0 + val max = switchInput.maxValue?.toString()?.toIntOrNull() ?: 0 + val value = newValue.toInt() // assume it is always numeric + if (value < min || value > max) { + this[index] = item.copy( + pollSwitchInput = item.pollSwitchInput.copy(value = newValue), + pollOptionError = PollOptionNumberExceed( + context.getString( + R.string.stream_compose_poll_option_error_exceed, + min, + max, + ), + ), + ) + } else { + this[index] = item.copy( + pollSwitchInput = item.pollSwitchInput.copy(value = newValue), + pollOptionError = null, + ) + } } } else { this[index] = item.copy( diff --git a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/util/PollSwitchItemFactory.kt b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/util/PollSwitchItemFactory.kt index fb3420da3b4..767ed19111f 100644 --- a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/util/PollSwitchItemFactory.kt +++ b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/util/PollSwitchItemFactory.kt @@ -61,8 +61,9 @@ public class DefaultPollSwitchItemFactory( PollSwitchItem( title = context.getString(R.string.stream_compose_poll_option_switch_multiple_answers), pollSwitchInput = PollSwitchInput( - value = 0, + value = "", description = context.getString(R.string.stream_compose_poll_option_max_number_of_answers_hint), + minValue = 1, maxValue = 2, keyboardType = KeyboardType.Decimal, ), diff --git a/stream-chat-android-compose/src/main/res/values/strings.xml b/stream-chat-android-compose/src/main/res/values/strings.xml index 275ad9eeac6..64b847a90a9 100644 --- a/stream-chat-android-compose/src/main/res/values/strings.xml +++ b/stream-chat-android-compose/src/main/res/values/strings.xml @@ -209,7 +209,7 @@ Add an option Add an option This is already an option - Type a number under %d + Type a number between %d and %d Discard poll Are you sure want to discard your poll? Keep Editing diff --git a/stream-chat-android-compose/src/test/kotlin/io/getstream/chat/android/compose/ui/util/DefaultPollSwitchItemFactoryTest.kt b/stream-chat-android-compose/src/test/kotlin/io/getstream/chat/android/compose/ui/util/DefaultPollSwitchItemFactoryTest.kt index eae51fa94d2..941eff0665b 100644 --- a/stream-chat-android-compose/src/test/kotlin/io/getstream/chat/android/compose/ui/util/DefaultPollSwitchItemFactoryTest.kt +++ b/stream-chat-android-compose/src/test/kotlin/io/getstream/chat/android/compose/ui/util/DefaultPollSwitchItemFactoryTest.kt @@ -51,7 +51,8 @@ internal class DefaultPollSwitchItemFactoryTest { Assertions.assertEquals("Multiple answers", items[0].title) Assertions.assertEquals("maxVotesAllowed", items[0].key) Assertions.assertFalse(items[0].enabled) - Assertions.assertEquals(0, items[0].pollSwitchInput?.value) + Assertions.assertEquals("", items[0].pollSwitchInput?.value) + Assertions.assertEquals(1, items[0].pollSwitchInput?.minValue) Assertions.assertEquals(2, items[0].pollSwitchInput?.maxValue) Assertions.assertEquals("Max number of answers", items[0].pollSwitchInput?.description) Assertions.assertEquals(KeyboardType.Decimal, items[0].pollSwitchInput?.keyboardType) From e676f8ed0d072f55a449845bc872a31bb3ddbd57 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 12 Feb 2025 23:51:45 +0000 Subject: [PATCH 7/8] [skip ci] Update SDK sizes --- README.md | 2 +- metrics/size.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index eba2d4b75d0..826f3542030 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ ![stream-chat-android-client](https://img.shields.io/badge/stream--chat--android--client-3.16%20MB-lightgreen) ![stream-chat-android-offline](https://img.shields.io/badge/stream--chat--android--offline-3.37%20MB-lightgreen) ![stream-chat-android-ui-components](https://img.shields.io/badge/stream--chat--android--ui--components-7.86%20MB-lightgreen) -![stream-chat-android-compose](https://img.shields.io/badge/stream--chat--android--compose-8.75%20MB-lightgreen) +![stream-chat-android-compose](https://img.shields.io/badge/stream--chat--android--compose-8.74%20MB-lightgreen) diff --git a/metrics/size.json b/metrics/size.json index 4afb4822ca5..b2fa9a45c73 100644 --- a/metrics/size.json +++ b/metrics/size.json @@ -9,6 +9,6 @@ "stream-chat-android-client": 3244, "stream-chat-android-offline": 3456, "stream-chat-android-ui-components": 8052, - "stream-chat-android-compose": 8960 + "stream-chat-android-compose": 8956 } } From a60a95c25dee66da6921319ab8bc1c76f84fd671 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Feb 2025 11:16:28 +0000 Subject: [PATCH 8/8] Bump rack from 3.1.8 to 3.1.10 (#5632) --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index b9092ab280c..4d8a89d97a3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -186,7 +186,7 @@ GEM puma (6.4.3) nio4r (~> 2.0) racc (1.8.1) - rack (3.1.8) + rack (3.1.10) rack-protection (4.1.0) base64 (>= 0.1.0) logger (>= 1.6.0)