From 7f57d81ddba65c6d0e2107b6941e9b3e1a790774 Mon Sep 17 00:00:00 2001 From: VelikovPetar Date: Thu, 19 Mar 2026 09:15:37 +0100 Subject: [PATCH 1/4] Add members dialog (part 1). --- .../sample/ui/channel/AddMembersDialog.kt | 283 ------------------ .../ui/channel/GroupChannelInfoActivity.kt | 12 - .../compose/sample/ui/chats/ChatsActivity.kt | 12 - .../api/stream-chat-android-compose.api | 31 ++ .../ui/channel/info/AddMembersBottomSheet.kt | 261 ++++++++++++++++ .../ui/channel/info/GroupChannelInfoScreen.kt | 18 +- .../compose/ui/theme/ChatComponentFactory.kt | 15 + .../ui/theme/ChatComponentFactoryParams.kt | 12 + .../viewmodel/channel/AddMembersViewModel.kt | 65 ++++ .../channel/AddMembersViewModelFactory.kt | 38 +++ .../channel/ChannelInfoViewModelFactory.kt | 1 + .../src/main/res/values/strings.xml | 4 + .../api/stream-chat-android-ui-common.api | 66 ++++ .../channel/info/AddMembersViewAction.kt | 44 +++ .../channel/info/AddMembersViewController.kt | 137 ++++----- .../channel/info/AddMembersViewEvent.kt | 28 ++ .../state/channel/info/AddMembersViewState.kt | 34 +++ 17 files changed, 674 insertions(+), 387 deletions(-) delete mode 100644 stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/ui/channel/AddMembersDialog.kt create mode 100644 stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/channel/info/AddMembersBottomSheet.kt create mode 100644 stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/viewmodel/channel/AddMembersViewModel.kt create mode 100644 stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/viewmodel/channel/AddMembersViewModelFactory.kt create mode 100644 stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewAction.kt rename stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/ui/channel/AddMembersViewModel.kt => stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewController.kt (55%) create mode 100644 stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewEvent.kt create mode 100644 stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/state/channel/info/AddMembersViewState.kt diff --git a/stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/ui/channel/AddMembersDialog.kt b/stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/ui/channel/AddMembersDialog.kt deleted file mode 100644 index 6a99b610dd6..00000000000 --- a/stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/ui/channel/AddMembersDialog.kt +++ /dev/null @@ -1,283 +0,0 @@ -/* - * Copyright (c) 2014-2026 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.sample.ui.channel - -import androidx.compose.animation.AnimatedVisibility -import androidx.compose.animation.expandIn -import androidx.compose.animation.fadeIn -import androidx.compose.animation.fadeOut -import androidx.compose.animation.shrinkOut -import androidx.compose.foundation.Image -import androidx.compose.foundation.background -import androidx.compose.foundation.clickable -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.PaddingValues -import androidx.compose.foundation.layout.aspectRatio -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.size -import androidx.compose.foundation.lazy.grid.GridCells -import androidx.compose.foundation.lazy.grid.LazyVerticalGrid -import androidx.compose.foundation.lazy.grid.items -import androidx.compose.foundation.shape.CircleShape -import androidx.compose.material3.AlertDialog -import androidx.compose.material3.ButtonDefaults -import androidx.compose.material3.Icon -import androidx.compose.material3.Text -import androidx.compose.material3.TextButton -import androidx.compose.runtime.Composable -import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.focus.FocusRequester -import androidx.compose.ui.focus.focusRequester -import androidx.compose.ui.res.painterResource -import androidx.compose.ui.res.stringResource -import androidx.compose.ui.text.style.TextAlign -import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.unit.dp -import androidx.lifecycle.compose.collectAsStateWithLifecycle -import androidx.lifecycle.viewmodel.compose.viewModel -import io.getstream.chat.android.compose.sample.R -import io.getstream.chat.android.compose.ui.components.LoadingIndicator -import io.getstream.chat.android.compose.ui.components.SearchInput -import io.getstream.chat.android.compose.ui.components.avatar.UserAvatar -import io.getstream.chat.android.compose.ui.theme.ChatTheme -import io.getstream.chat.android.compose.ui.util.adaptivelayout.AdaptiveLayoutInfo -import io.getstream.chat.android.models.User -import kotlinx.coroutines.flow.collectLatest -import java.util.UUID - -@Composable -fun AddMembersDialog( - cid: String, - onDismiss: () -> Unit, -) { - val viewModelKey by remember { mutableStateOf(UUID.randomUUID().toString()) } - - @Suppress("MagicNumber") - val resultLimit = if (AdaptiveLayoutInfo.singlePaneWindow()) 6 else 10 - val viewModel = viewModel( - AddMembersViewModel::class, - key = viewModelKey, - factory = AddMembersViewModelFactory(cid, resultLimit), - ) - val state by viewModel.state.collectAsStateWithLifecycle() - AlertDialog( - onDismissRequest = onDismiss, - text = { - AddMembersContent( - state = state, - onViewAction = viewModel::onViewAction, - ) - }, - confirmButton = { - TextButton( - colors = ButtonDefaults.textButtonColors(contentColor = ChatTheme.colors.accentPrimary), - onClick = { viewModel.onViewAction(AddMembersViewAction.ConfirmClick) }, - ) { - Text(text = stringResource(id = io.getstream.chat.android.compose.R.string.stream_compose_ok)) - } - }, - dismissButton = { - TextButton( - colors = ButtonDefaults.textButtonColors(contentColor = ChatTheme.colors.textSecondary), - onClick = onDismiss, - ) { - Text(text = stringResource(id = io.getstream.chat.android.compose.R.string.stream_compose_cancel)) - } - }, - containerColor = ChatTheme.colors.backgroundElevationElevation1, - ) - LaunchedEffect(viewModel) { - viewModel.events.collectLatest { event -> - when (event) { - AddMembersViewEvent.MembersAdded -> onDismiss() - } - } - } -} - -@Composable -private fun AddMembersContent( - state: AddMembersViewState, - onViewAction: (AddMembersViewAction) -> Unit = {}, -) { - val focusRequester = remember { FocusRequester() } - LaunchedEffect(Unit) { - focusRequester.requestFocus() - } - - Column( - horizontalAlignment = Alignment.CenterHorizontally, - ) { - SearchInput( - modifier = Modifier - .focusRequester(focusRequester) - .fillMaxWidth(), - query = state.query, - onValueChange = { onViewAction(AddMembersViewAction.QueryChanged(it)) }, - ) - Box( - contentAlignment = Alignment.Center, - ) { - LazyVerticalGrid( - columns = GridCells.Adaptive(64.dp), - contentPadding = PaddingValues(16.dp), - verticalArrangement = Arrangement.spacedBy(8.dp), - horizontalArrangement = Arrangement.spacedBy(24.dp), - ) { - items( - items = state.searchResult, - key = User::id, - ) { user -> - SearchResultItem( - user = user, - isSelected = state.selectedUsers.contains(user), - onViewAction = onViewAction, - ) - } - } - if (state.isLoading) { - LoadingIndicator( - modifier = Modifier - .size(172.dp), - ) - } - } - if (!state.isLoading && state.searchResult.isEmpty()) { - SearchResultEmpty( - modifier = Modifier, - ) - } - } -} - -@Composable -private fun SearchResultItem( - user: User, - isSelected: Boolean, - onViewAction: (AddMembersViewAction) -> Unit, -) { - Box { - Column( - verticalArrangement = Arrangement.spacedBy(4.dp), - horizontalAlignment = Alignment.CenterHorizontally, - ) { - UserAvatar( - modifier = Modifier - .aspectRatio(1f) - .clickable { onViewAction(AddMembersViewAction.UserClick(user)) }, - user = user, - ) - Text( - text = user.name, - style = ChatTheme.typography.bodyEmphasis, - maxLines = 2, - textAlign = TextAlign.Center, - ) - } - AnimatedVisibility( - visible = isSelected, - enter = fadeIn() + expandIn(initialSize = { fullSize -> fullSize }), - exit = shrinkOut(targetSize = { fullSize -> fullSize }) + fadeOut(), - ) { - Icon( - modifier = Modifier.background(ChatTheme.colors.backgroundElevationElevation1, CircleShape), - tint = ChatTheme.colors.accentPrimary, - painter = painterResource(id = R.drawable.ic_check_filled), - contentDescription = null, - ) - } - } -} - -@Composable -private fun SearchResultEmpty( - modifier: Modifier, -) { - Column( - modifier = modifier, - verticalArrangement = Arrangement.Center, - horizontalAlignment = Alignment.CenterHorizontally, - ) { - Image( - painter = painterResource(id = R.drawable.empty_user_search), - contentDescription = null, - ) - Text( - text = stringResource(id = R.string.add_channel_no_matches), - color = ChatTheme.colors.textSecondary, - textAlign = TextAlign.Center, - ) - } -} - -@Preview(showBackground = true) -@Composable -private fun AddMembersLoadingPreview() { - ChatTheme { - AddMembersContent( - state = AddMembersViewState( - isLoading = true, - ), - ) - } -} - -@Preview(showBackground = true) -@Composable -private fun AddMembersContentPreview() { - ChatTheme { - AddMembersContent( - state = AddMembersViewState( - isLoading = false, - query = "query", - searchResult = listOf(user1, user2), - selectedUsers = listOf(user2), - ), - ) - } -} - -@Preview(showBackground = true) -@Composable -private fun AddMembersEmptyPreview() { - ChatTheme { - AddMembersContent( - state = AddMembersViewState( - isLoading = false, - ), - ) - } -} - -private val user1: User = User( - id = "jc", - name = "Jc MiƱarro", - image = "https://ca.slack-edge.com/T02RM6X6B-U011KEXDPB2-891dbb8df64f-128", - online = true, -) -private val user2: User = User( - id = "leia_organa", - name = "Leia Organa", - image = "https://vignette.wikia.nocookie.net/starwars/images/f/fc/Leia_Organa_TLJ.png", -) diff --git a/stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/ui/channel/GroupChannelInfoActivity.kt b/stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/ui/channel/GroupChannelInfoActivity.kt index a9b47a87283..6fe0121c1af 100644 --- a/stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/ui/channel/GroupChannelInfoActivity.kt +++ b/stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/ui/channel/GroupChannelInfoActivity.kt @@ -25,10 +25,6 @@ import androidx.activity.compose.setContent import androidx.activity.viewModels import androidx.compose.foundation.layout.statusBarsPadding import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import io.getstream.chat.android.compose.sample.R import io.getstream.chat.android.compose.sample.feature.channel.draft.DraftChannelActivity @@ -75,20 +71,12 @@ class GroupChannelInfoActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { - var showAddMembers by remember { mutableStateOf(false) } ChatTheme { GroupChannelInfoScreen( modifier = Modifier.statusBarsPadding(), viewModelFactory = viewModelFactory, onNavigationIconClick = ::finish, - onAddMembersClick = { showAddMembers = true }, ) - if (showAddMembers) { - AddMembersDialog( - cid = channelId, - onDismiss = { showAddMembers = false }, - ) - } } LaunchedEffect(viewModel) { viewModel.events.collectLatest { event -> diff --git a/stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/ui/chats/ChatsActivity.kt b/stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/ui/chats/ChatsActivity.kt index ac069b38518..cfd0f8f5cf8 100644 --- a/stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/ui/chats/ChatsActivity.kt +++ b/stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/ui/chats/ChatsActivity.kt @@ -55,7 +55,6 @@ import io.getstream.chat.android.compose.sample.feature.channel.ChannelConstants import io.getstream.chat.android.compose.sample.feature.channel.add.AddChannelActivity import io.getstream.chat.android.compose.sample.feature.channel.isGroupChannel import io.getstream.chat.android.compose.sample.feature.channel.list.CustomChatEventHandlerFactory -import io.getstream.chat.android.compose.sample.ui.channel.AddMembersDialog import io.getstream.chat.android.compose.sample.ui.component.AppBottomBar import io.getstream.chat.android.compose.sample.ui.component.AppBottomBarOption import io.getstream.chat.android.compose.sample.ui.component.CustomChatComponentFactory @@ -397,13 +396,10 @@ class ChatsActivity : ComponentActivity() { onNavigateToChannel = onNavigateToChannel, ) - var showAddMembers by remember { mutableStateOf(false) } - if (AdaptiveLayoutInfo.singlePaneWindow()) { GroupChannelInfoScreen( viewModelFactory = viewModelFactory, onNavigationIconClick = onNavigationIconClick, - onAddMembersClick = { showAddMembers = true }, ) } else { CompoundComponentFactory( @@ -425,17 +421,9 @@ class ChatsActivity : ComponentActivity() { GroupChannelInfoScreen( viewModelFactory = viewModelFactory, onNavigationIconClick = onNavigationIconClick, - onAddMembersClick = { showAddMembers = true }, ) } } - - if (showAddMembers) { - AddMembersDialog( - cid = channelId, - onDismiss = { showAddMembers = false }, - ) - } } @Composable 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 21eef9f3a3c..bf125eda609 100644 --- a/stream-chat-android-compose/api/stream-chat-android-compose.api +++ b/stream-chat-android-compose/api/stream-chat-android-compose.api @@ -2510,6 +2510,20 @@ public final class io/getstream/chat/android/compose/ui/pinned/PinnedMessageList public static final fun PinnedMessageList (Lio/getstream/chat/android/compose/viewmodel/pinned/PinnedMessageListViewModel;Landroidx/compose/ui/Modifier;Lio/getstream/chat/android/models/User;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)V } +public final class io/getstream/chat/android/compose/ui/theme/AddMembersBottomSheetParams { + public static final field $stable I + public fun (Lio/getstream/chat/android/compose/viewmodel/channel/AddMembersViewModel;Lkotlin/jvm/functions/Function0;)V + public final fun component1 ()Lio/getstream/chat/android/compose/viewmodel/channel/AddMembersViewModel; + public final fun component2 ()Lkotlin/jvm/functions/Function0; + public final fun copy (Lio/getstream/chat/android/compose/viewmodel/channel/AddMembersViewModel;Lkotlin/jvm/functions/Function0;)Lio/getstream/chat/android/compose/ui/theme/AddMembersBottomSheetParams; + public static synthetic fun copy$default (Lio/getstream/chat/android/compose/ui/theme/AddMembersBottomSheetParams;Lio/getstream/chat/android/compose/viewmodel/channel/AddMembersViewModel;Lkotlin/jvm/functions/Function0;ILjava/lang/Object;)Lio/getstream/chat/android/compose/ui/theme/AddMembersBottomSheetParams; + public fun equals (Ljava/lang/Object;)Z + public final fun getOnDismiss ()Lkotlin/jvm/functions/Function0; + public final fun getViewModel ()Lio/getstream/chat/android/compose/viewmodel/channel/AddMembersViewModel; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + public final class io/getstream/chat/android/compose/ui/theme/AttachmentCameraPickerParams { public static final field $stable I public fun (Lio/getstream/chat/android/compose/state/messages/attachments/CameraPickerMode;Lkotlin/jvm/functions/Function1;)V @@ -3510,6 +3524,7 @@ public final class io/getstream/chat/android/compose/ui/theme/ChannelSwipeAction } public abstract interface class io/getstream/chat/android/compose/ui/theme/ChatComponentFactory { + public abstract fun AddMembersBottomSheet (Lio/getstream/chat/android/compose/ui/theme/AddMembersBottomSheetParams;Landroidx/compose/runtime/Composer;I)V public abstract fun AttachmentCameraPicker (Lio/getstream/chat/android/compose/ui/theme/AttachmentCameraPickerParams;Landroidx/compose/runtime/Composer;I)V public abstract fun AttachmentCommandPicker (Lio/getstream/chat/android/compose/ui/theme/AttachmentCommandPickerParams;Landroidx/compose/runtime/Composer;I)V public abstract fun AttachmentFilePicker (Lio/getstream/chat/android/compose/ui/theme/AttachmentFilePickerParams;Landroidx/compose/runtime/Composer;I)V @@ -3697,6 +3712,7 @@ public abstract interface class io/getstream/chat/android/compose/ui/theme/ChatC } public final class io/getstream/chat/android/compose/ui/theme/ChatComponentFactory$DefaultImpls { + public static fun AddMembersBottomSheet (Lio/getstream/chat/android/compose/ui/theme/ChatComponentFactory;Lio/getstream/chat/android/compose/ui/theme/AddMembersBottomSheetParams;Landroidx/compose/runtime/Composer;I)V public static fun AttachmentCameraPicker (Lio/getstream/chat/android/compose/ui/theme/ChatComponentFactory;Lio/getstream/chat/android/compose/ui/theme/AttachmentCameraPickerParams;Landroidx/compose/runtime/Composer;I)V public static fun AttachmentCommandPicker (Lio/getstream/chat/android/compose/ui/theme/ChatComponentFactory;Lio/getstream/chat/android/compose/ui/theme/AttachmentCommandPickerParams;Landroidx/compose/runtime/Composer;I)V public static fun AttachmentFilePicker (Lio/getstream/chat/android/compose/ui/theme/ChatComponentFactory;Lio/getstream/chat/android/compose/ui/theme/AttachmentFilePickerParams;Landroidx/compose/runtime/Composer;I)V @@ -6898,6 +6914,21 @@ public final class io/getstream/chat/android/compose/util/KeyValuePair { public fun toString ()Ljava/lang/String; } +public final class io/getstream/chat/android/compose/viewmodel/channel/AddMembersViewModel : androidx/lifecycle/ViewModel { + public static final field $stable I + public fun (Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V + public synthetic fun (Ljava/lang/String;Lkotlin/jvm/functions/Function1;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun getEvents ()Lkotlinx/coroutines/flow/SharedFlow; + public final fun getState ()Lkotlinx/coroutines/flow/StateFlow; + public final fun onViewAction (Lio/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewAction;)V +} + +public final class io/getstream/chat/android/compose/viewmodel/channel/AddMembersViewModelFactory : androidx/lifecycle/ViewModelProvider$Factory { + public static final field $stable I + public fun (Ljava/lang/String;)V + public fun create (Ljava/lang/Class;)Landroidx/lifecycle/ViewModel; +} + public final class io/getstream/chat/android/compose/viewmodel/channel/ChannelAttachmentsViewModel : androidx/lifecycle/ViewModel { public static final field $stable I public fun (Ljava/lang/String;Ljava/util/List;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)V diff --git a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/channel/info/AddMembersBottomSheet.kt b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/channel/info/AddMembersBottomSheet.kt new file mode 100644 index 00000000000..7da008ee678 --- /dev/null +++ b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/channel/info/AddMembersBottomSheet.kt @@ -0,0 +1,261 @@ +/* + * Copyright (c) 2014-2026 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.channel.info + +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.statusBarsPadding +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.Icon +import androidx.compose.material3.ModalBottomSheet +import androidx.compose.material3.Text +import androidx.compose.material3.rememberModalBottomSheetState +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.dp +import androidx.lifecycle.compose.collectAsStateWithLifecycle +import io.getstream.chat.android.compose.R +import io.getstream.chat.android.compose.ui.components.LoadingIndicator +import io.getstream.chat.android.compose.ui.components.SearchInput +import io.getstream.chat.android.compose.ui.components.avatar.AvatarSize +import io.getstream.chat.android.compose.ui.components.avatar.UserAvatar +import io.getstream.chat.android.compose.ui.components.button.StreamButton +import io.getstream.chat.android.compose.ui.components.button.StreamButtonStyleDefaults +import io.getstream.chat.android.compose.ui.components.common.RadioCheck +import io.getstream.chat.android.compose.ui.theme.ChatTheme +import io.getstream.chat.android.compose.ui.theme.StreamTokens +import io.getstream.chat.android.compose.ui.util.clickable +import io.getstream.chat.android.compose.viewmodel.channel.AddMembersViewModel +import io.getstream.chat.android.models.User +import io.getstream.chat.android.ui.common.feature.channel.info.AddMembersViewAction +import io.getstream.chat.android.ui.common.feature.channel.info.AddMembersViewEvent +import kotlinx.coroutines.flow.collectLatest + +/** + * A bottom sheet that allows users to search for and add members to a channel. + * + * @param viewModel The [AddMembersViewModel] managing the state and actions. + * @param onDismiss Callback invoked when the bottom sheet is dismissed. + */ +@OptIn(ExperimentalMaterial3Api::class) +@Composable +internal fun AddMembersBottomSheet( + viewModel: AddMembersViewModel, + onDismiss: () -> Unit, +) { + val sheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true) + val state by viewModel.state.collectAsStateWithLifecycle() + + LaunchedEffect(viewModel) { + viewModel.events.collectLatest { event -> + when (event) { + AddMembersViewEvent.MembersAdded -> onDismiss() + } + } + } + + ModalBottomSheet( + modifier = Modifier.statusBarsPadding(), + sheetState = sheetState, + containerColor = ChatTheme.colors.backgroundElevationElevation1, + onDismissRequest = onDismiss, + ) { + Column(modifier = Modifier.fillMaxSize()) { + AddMembersHeader( + hasSelection = state.selectedUsers.isNotEmpty(), + onDismiss = onDismiss, + onConfirm = { viewModel.onViewAction(AddMembersViewAction.ConfirmClick) }, + ) + SearchInput( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = StreamTokens.spacingMd), + query = state.query, + onValueChange = { viewModel.onViewAction(AddMembersViewAction.QueryChanged(it)) }, + ) + when { + state.isLoading -> { + Box( + modifier = Modifier.fillMaxWidth().weight(1f), + contentAlignment = Alignment.Center, + ) { + LoadingIndicator(modifier = Modifier.size(172.dp)) + } + } + state.searchResult.isEmpty() -> { + AddMembersEmptyState() + } + else -> { + AddMembersUserList( + users = state.searchResult, + selectedUsers = state.selectedUsers, + onUserClick = { user -> viewModel.onViewAction(AddMembersViewAction.UserClick(user)) }, + ) + } + } + } + } +} + +@Composable +private fun AddMembersHeader( + hasSelection: Boolean, + onDismiss: () -> Unit, + onConfirm: () -> Unit, +) { + Row( + modifier = Modifier + .fillMaxWidth() + .padding(StreamTokens.spacingSm), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(StreamTokens.spacingSm), + ) { + StreamButton( + onClick = onDismiss, + style = StreamButtonStyleDefaults.secondaryOutline, + ) { + Icon( + modifier = Modifier.size(20.dp), + painter = painterResource(id = R.drawable.stream_compose_ic_close), + contentDescription = stringResource(id = R.string.stream_compose_cancel), + ) + } + Text( + modifier = Modifier.weight(1f), + text = stringResource(id = R.string.stream_compose_add_members_title), + style = ChatTheme.typography.headingSmall, + color = ChatTheme.colors.textPrimary, + textAlign = TextAlign.Center, + maxLines = 1, + ) + StreamButton( + onClick = onConfirm, + style = StreamButtonStyleDefaults.primarySolid, + enabled = hasSelection, + ) { + Icon( + modifier = Modifier.size(20.dp), + painter = painterResource(id = R.drawable.stream_compose_ic_checkmark), + contentDescription = stringResource(id = R.string.stream_compose_add_members_title), + ) + } + } +} + +@Composable +private fun AddMembersUserList( + users: List, + selectedUsers: List, + onUserClick: (User) -> Unit, +) { + LazyColumn( + modifier = Modifier.fillMaxWidth(), + contentPadding = PaddingValues( + top = StreamTokens.spacingSm, + bottom = StreamTokens.spacing3xl, + ), + ) { + items( + items = users, + key = User::id, + ) { user -> + AddMembersUserItem( + user = user, + isSelected = selectedUsers.contains(user), + onClick = { onUserClick(user) }, + ) + } + } +} + +@Composable +private fun AddMembersUserItem( + user: User, + isSelected: Boolean, + onClick: () -> Unit, +) { + Row( + modifier = Modifier + .fillMaxWidth() + .height(52.dp) + .clickable(onClick = onClick) + .padding(horizontal = StreamTokens.spacing2xs) + .padding(horizontal = StreamTokens.spacingSm, vertical = StreamTokens.spacingXs), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(StreamTokens.spacingSm), + ) { + UserAvatar( + modifier = Modifier.size(AvatarSize.Medium), + user = user, + showIndicator = false, + showBorder = false, + ) + Text( + modifier = Modifier.weight(1f), + text = user.name.takeIf(String::isNotBlank) ?: user.id, + style = ChatTheme.typography.bodyDefault, + color = ChatTheme.colors.textPrimary, + maxLines = 1, + overflow = TextOverflow.Ellipsis, + ) + RadioCheck( + checked = isSelected, + onCheckedChange = null, + ) + } +} + +@Composable +private fun AddMembersEmptyState() { + Column( + modifier = Modifier + .fillMaxWidth() + .padding(vertical = StreamTokens.spacing3xl), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(StreamTokens.spacingXs), + ) { + Icon( + modifier = Modifier.size(48.dp), + painter = painterResource(id = R.drawable.stream_compose_ic_search), + tint = ChatTheme.colors.textTertiary, + contentDescription = null, + ) + Text( + text = stringResource(id = R.string.stream_compose_add_members_no_results), + style = ChatTheme.typography.bodyDefault, + color = ChatTheme.colors.textSecondary, + textAlign = TextAlign.Center, + ) + } +} diff --git a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/channel/info/GroupChannelInfoScreen.kt b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/channel/info/GroupChannelInfoScreen.kt index 71a1ac8d18b..d682abb6cf3 100644 --- a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/channel/info/GroupChannelInfoScreen.kt +++ b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/channel/info/GroupChannelInfoScreen.kt @@ -53,6 +53,7 @@ import io.getstream.chat.android.client.ChatClient import io.getstream.chat.android.compose.R import io.getstream.chat.android.compose.ui.components.ContentBox import io.getstream.chat.android.compose.ui.components.avatar.AvatarSize +import io.getstream.chat.android.compose.ui.theme.AddMembersBottomSheetParams import io.getstream.chat.android.compose.ui.theme.ChannelAvatarParams import io.getstream.chat.android.compose.ui.theme.ChannelInfoScreenModalParams import io.getstream.chat.android.compose.ui.theme.ChatTheme @@ -65,6 +66,7 @@ import io.getstream.chat.android.compose.ui.theme.GroupChannelInfoTopBarParams import io.getstream.chat.android.compose.ui.theme.StreamTokens import io.getstream.chat.android.compose.ui.theme.UserAvatarParams import io.getstream.chat.android.compose.ui.util.getLastSeenText +import io.getstream.chat.android.compose.viewmodel.channel.AddMembersViewModel import io.getstream.chat.android.compose.viewmodel.channel.ChannelHeaderViewModel import io.getstream.chat.android.compose.viewmodel.channel.ChannelInfoViewModel import io.getstream.chat.android.compose.viewmodel.channel.ChannelInfoViewModelFactory @@ -90,7 +92,7 @@ import java.util.Date * @param modifier The [Modifier] to be applied to this screen. * @param currentUser The current logged-in user. Defaults to the current user from the [ChatClient]. * @param onNavigationIconClick Callback invoked when the navigation icon is clicked. - * @param onAddMembersClick Callback invoked when the "Add Members" button is clicked. + * @param onAddMembersClick Deprecated. The screen now manages the "Add Members" bottom sheet internally. */ @Composable public fun GroupChannelInfoScreen( @@ -98,24 +100,36 @@ public fun GroupChannelInfoScreen( modifier: Modifier = Modifier, currentUser: User? = ChatClient.instance().getCurrentUser(), onNavigationIconClick: () -> Unit = {}, + @Suppress("UNUSED_PARAMETER") onAddMembersClick: () -> Unit = {}, ) { val headerViewModel = viewModel(factory = viewModelFactory) val infoViewModel = viewModel(factory = viewModelFactory) + val addMembersViewModel = viewModel(factory = viewModelFactory) val headerState by headerViewModel.state.collectAsStateWithLifecycle() val infoState by infoViewModel.state.collectAsStateWithLifecycle() + var showAddMembers by remember { mutableStateOf(false) } + GroupChannelInfoScaffold( modifier = modifier, currentUser = currentUser, headerState = headerState, infoState = infoState, onNavigationIconClick = onNavigationIconClick, - onAddMembersClick = onAddMembersClick, + onAddMembersClick = { showAddMembers = true }, onViewAction = infoViewModel::onViewAction, ) GroupChannelInfoScreenModal(infoViewModel) + if (showAddMembers) { + ChatTheme.componentFactory.AddMembersBottomSheet( + params = AddMembersBottomSheetParams( + viewModel = addMembersViewModel, + onDismiss = { showAddMembers = false }, + ), + ) + } } @Composable diff --git a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/ChatComponentFactory.kt b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/ChatComponentFactory.kt index b4c41422dfc..ae873f25b49 100644 --- a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/ChatComponentFactory.kt +++ b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/ChatComponentFactory.kt @@ -2468,6 +2468,21 @@ public interface ChatComponentFactory { * * @param params Parameters for this component. */ + /** + * Factory method for creating the "Add Members" bottom sheet. + * + * Override this method to provide a custom implementation of the "Add Members" bottom sheet. + * + * @param params Parameters for this component. + */ + @Composable + public fun AddMembersBottomSheet(params: AddMembersBottomSheetParams) { + io.getstream.chat.android.compose.ui.channel.info.AddMembersBottomSheet( + viewModel = params.viewModel, + onDismiss = params.onDismiss, + ) + } + @Composable public fun GroupChannelInfoAddMembersButton(params: GroupChannelInfoAddMembersButtonParams) { IconButton(onClick = params.onClick) { diff --git a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/ChatComponentFactoryParams.kt b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/ChatComponentFactoryParams.kt index d168008ebe3..689eec3176b 100644 --- a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/ChatComponentFactoryParams.kt +++ b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/ChatComponentFactoryParams.kt @@ -53,6 +53,7 @@ import io.getstream.chat.android.compose.ui.messages.attachments.AttachmentPicke import io.getstream.chat.android.compose.ui.messages.composer.actions.AudioRecordingActions import io.getstream.chat.android.compose.ui.messages.list.MessagesLazyListState import io.getstream.chat.android.compose.ui.threads.ThreadListBannerState +import io.getstream.chat.android.compose.viewmodel.channel.AddMembersViewModel import io.getstream.chat.android.compose.viewmodel.messages.AttachmentsPickerViewModel import io.getstream.chat.android.compose.viewmodel.messages.MessageComposerViewModel import io.getstream.chat.android.models.Attachment @@ -1849,6 +1850,17 @@ public data class GroupChannelInfoAddMembersButtonParams( val onClick: () -> Unit, ) +/** + * Parameters for [ChatComponentFactory.AddMembersBottomSheet]. + * + * @param viewModel The [AddMembersViewModel] managing the state and actions. + * @param onDismiss Action invoked when the bottom sheet is dismissed. + */ +public data class AddMembersBottomSheetParams( + val viewModel: AddMembersViewModel, + val onDismiss: () -> Unit, +) + /** * Parameters for [ChatComponentFactory.ChannelInfoSeparatorItem]. */ diff --git a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/viewmodel/channel/AddMembersViewModel.kt b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/viewmodel/channel/AddMembersViewModel.kt new file mode 100644 index 00000000000..7053408f270 --- /dev/null +++ b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/viewmodel/channel/AddMembersViewModel.kt @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2014-2026 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. + */ + +@file:OptIn(InternalStreamChatApi::class) + +package io.getstream.chat.android.compose.viewmodel.channel + +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import io.getstream.chat.android.core.internal.InternalStreamChatApi +import io.getstream.chat.android.ui.common.feature.channel.info.AddMembersViewAction +import io.getstream.chat.android.ui.common.feature.channel.info.AddMembersViewController +import io.getstream.chat.android.ui.common.feature.channel.info.AddMembersViewEvent +import io.getstream.chat.android.ui.common.state.channel.info.AddMembersViewState +import kotlinx.coroutines.flow.SharedFlow +import kotlinx.coroutines.flow.StateFlow + +/** + * ViewModel for managing the "Add Members" view and its actions. + * + * @param cid The full channel identifier (e.g., "messaging:123"). + * @param controllerProvider The provider for [AddMembersViewController]. + */ +public class AddMembersViewModel( + private val cid: String, + private val controllerProvider: ViewModel.() -> AddMembersViewController = { + AddMembersViewController( + cid = cid, + scope = viewModelScope, + ) + }, +) : ViewModel() { + + private val controller: AddMembersViewController by lazy { controllerProvider() } + + /** + * @see [AddMembersViewController.state] + */ + public val state: StateFlow get() = controller.state + + /** + * @see [AddMembersViewController.events] + */ + public val events: SharedFlow get() = controller.events + + /** + * @see [AddMembersViewController.onViewAction] + */ + public fun onViewAction(action: AddMembersViewAction) { + controller.onViewAction(action) + } +} diff --git a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/viewmodel/channel/AddMembersViewModelFactory.kt b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/viewmodel/channel/AddMembersViewModelFactory.kt new file mode 100644 index 00000000000..3a909ffab9e --- /dev/null +++ b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/viewmodel/channel/AddMembersViewModelFactory.kt @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2014-2026 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.viewmodel.channel + +import androidx.lifecycle.ViewModel +import androidx.lifecycle.ViewModelProvider + +/** + * Factory for creating instances of [AddMembersViewModel]. + * + * @param cid The full channel identifier (e.g., "messaging:123"). + */ +public class AddMembersViewModelFactory( + private val cid: String, +) : ViewModelProvider.Factory { + + override fun create(modelClass: Class): T { + require(modelClass == AddMembersViewModel::class.java) { + "AddMembersViewModelFactory can only create instances of AddMembersViewModel" + } + @Suppress("UNCHECKED_CAST") + return AddMembersViewModel(cid = cid) as T + } +} diff --git a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/viewmodel/channel/ChannelInfoViewModelFactory.kt b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/viewmodel/channel/ChannelInfoViewModelFactory.kt index 9684bb9e213..04e768347a7 100644 --- a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/viewmodel/channel/ChannelInfoViewModelFactory.kt +++ b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/viewmodel/channel/ChannelInfoViewModelFactory.kt @@ -45,6 +45,7 @@ public class ChannelInfoViewModelFactory( optionFilter = optionFilter, ) }, + AddMembersViewModel::class.java to { AddMembersViewModel(cid = cid) }, ) override fun create(modelClass: Class): T { 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 e9ec460ecb2..6599c13bfeb 100644 --- a/stream-chat-android-compose/src/main/res/values/strings.xml +++ b/stream-chat-android-compose/src/main/res/values/strings.xml @@ -372,6 +372,10 @@ Confirm Dismiss + + Add Members + No user found + Reply to a message to start a thread " in " diff --git a/stream-chat-android-ui-common/api/stream-chat-android-ui-common.api b/stream-chat-android-ui-common/api/stream-chat-android-ui-common.api index 2556bec9994..6150e05f7fe 100644 --- a/stream-chat-android-ui-common/api/stream-chat-android-ui-common.api +++ b/stream-chat-android-ui-common/api/stream-chat-android-ui-common.api @@ -41,6 +41,52 @@ public final class io/getstream/chat/android/ui/common/feature/channel/attachmen public fun toString ()Ljava/lang/String; } +public abstract interface class io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewAction { +} + +public final class io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewAction$ConfirmClick : io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewAction { + public static final field $stable I + public static final field INSTANCE Lio/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewAction$ConfirmClick; + public fun equals (Ljava/lang/Object;)Z + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewAction$QueryChanged : io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewAction { + public static final field $stable I + public fun (Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lio/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewAction$QueryChanged; + public static synthetic fun copy$default (Lio/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewAction$QueryChanged;Ljava/lang/String;ILjava/lang/Object;)Lio/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewAction$QueryChanged; + public fun equals (Ljava/lang/Object;)Z + public final fun getQuery ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewAction$UserClick : io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewAction { + public static final field $stable I + public fun (Lio/getstream/chat/android/models/User;)V + public final fun component1 ()Lio/getstream/chat/android/models/User; + public final fun copy (Lio/getstream/chat/android/models/User;)Lio/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewAction$UserClick; + public static synthetic fun copy$default (Lio/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewAction$UserClick;Lio/getstream/chat/android/models/User;ILjava/lang/Object;)Lio/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewAction$UserClick; + public fun equals (Ljava/lang/Object;)Z + public final fun getUser ()Lio/getstream/chat/android/models/User; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public abstract interface class io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewEvent { +} + +public final class io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewEvent$MembersAdded : io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewEvent { + public static final field $stable I + public static final field INSTANCE Lio/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewEvent$MembersAdded; + public fun equals (Ljava/lang/Object;)Z + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + public abstract interface class io/getstream/chat/android/ui/common/feature/channel/info/ChannelInfoMemberViewAction { } @@ -1596,6 +1642,26 @@ public final class io/getstream/chat/android/ui/common/state/channel/attachments public fun toString ()Ljava/lang/String; } +public final class io/getstream/chat/android/ui/common/state/channel/info/AddMembersViewState { + public static final field $stable I + public fun ()V + public fun (ZLjava/lang/String;Ljava/util/List;Ljava/util/List;)V + public synthetic fun (ZLjava/lang/String;Ljava/util/List;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Z + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/util/List; + public final fun component4 ()Ljava/util/List; + public final fun copy (ZLjava/lang/String;Ljava/util/List;Ljava/util/List;)Lio/getstream/chat/android/ui/common/state/channel/info/AddMembersViewState; + public static synthetic fun copy$default (Lio/getstream/chat/android/ui/common/state/channel/info/AddMembersViewState;ZLjava/lang/String;Ljava/util/List;Ljava/util/List;ILjava/lang/Object;)Lio/getstream/chat/android/ui/common/state/channel/info/AddMembersViewState; + public fun equals (Ljava/lang/Object;)Z + public final fun getQuery ()Ljava/lang/String; + public final fun getSearchResult ()Ljava/util/List; + public final fun getSelectedUsers ()Ljava/util/List; + public fun hashCode ()I + public final fun isLoading ()Z + public fun toString ()Ljava/lang/String; +} + public final class io/getstream/chat/android/ui/common/state/channel/info/BanMember : io/getstream/chat/android/ui/common/state/channel/info/MemberAction { public static final field $stable I public fun (Lio/getstream/chat/android/models/Member;Ljava/lang/String;Lkotlin/jvm/functions/Function0;)V diff --git a/stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewAction.kt b/stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewAction.kt new file mode 100644 index 00000000000..91412574c50 --- /dev/null +++ b/stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewAction.kt @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2014-2026 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.ui.common.feature.channel.info + +import io.getstream.chat.android.models.User + +/** + * Represents actions that can be performed from the "Add Members" view. + */ +public sealed interface AddMembersViewAction { + + /** + * Represents a change in the search query. + * + * @param query The new search query. + */ + public data class QueryChanged(val query: String) : AddMembersViewAction + + /** + * Represents a click on a user in the search results. + * + * @param user The user that was clicked. + */ + public data class UserClick(val user: User) : AddMembersViewAction + + /** + * Represents a click on the confirm button to add the selected members. + */ + public data object ConfirmClick : AddMembersViewAction +} diff --git a/stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/ui/channel/AddMembersViewModel.kt b/stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewController.kt similarity index 55% rename from stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/ui/channel/AddMembersViewModel.kt rename to stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewController.kt index 2c3a15ab325..10cd7fd1450 100644 --- a/stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/ui/channel/AddMembersViewModel.kt +++ b/stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewController.kt @@ -14,20 +14,21 @@ * limitations under the License. */ -package io.getstream.chat.android.compose.sample.ui.channel +package io.getstream.chat.android.ui.common.feature.channel.info -import androidx.lifecycle.ViewModel -import androidx.lifecycle.ViewModelProvider -import androidx.lifecycle.viewModelScope import io.getstream.chat.android.client.ChatClient import io.getstream.chat.android.client.api.models.QueryUsersRequest import io.getstream.chat.android.client.api.state.watchChannelAsState +import io.getstream.chat.android.client.channel.state.ChannelState import io.getstream.chat.android.client.query.AddMembersParams +import io.getstream.chat.android.core.internal.InternalStreamChatApi import io.getstream.chat.android.models.Filters import io.getstream.chat.android.models.Member import io.getstream.chat.android.models.MemberData -import io.getstream.chat.android.models.User import io.getstream.chat.android.models.querysort.QuerySortByField +import io.getstream.chat.android.ui.common.state.channel.info.AddMembersViewState +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.SharedFlow @@ -45,80 +46,90 @@ import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.flow.update import kotlinx.coroutines.launch -class AddMembersViewModel( +/** + * Controller responsible for managing the state and events related to adding members to a channel. + * + * It provides functionality to search for users, select them, and add them as members to the channel. + * + * @param cid The unique identifier of the channel. + * @param scope The [CoroutineScope] used for launching coroutines. + * @param resultLimit The maximum number of search results to return. + * @param chatClient The [ChatClient] instance used for interacting with the chat API. + * @param channelState A [Flow] representing the state of the channel. + */ +@InternalStreamChatApi +public class AddMembersViewController( private val cid: String, - private val resultLimit: Int, + private val scope: CoroutineScope, + private val resultLimit: Int = DEFAULT_RESULT_LIMIT, private val chatClient: ChatClient = ChatClient.instance(), -) : ViewModel() { + channelState: Flow = chatClient + .watchChannelAsState(cid = cid, messageLimit = 0, coroutineScope = scope) + .filterNotNull(), +) { + + private val channelMembers = channelState.flatMapLatest { it.members } - private val channelMembers = chatClient - .watchChannelAsState(cid, messageLimit = 0, viewModelScope) - .filterNotNull() - .flatMapLatest { it.members } + private val _state = MutableStateFlow(AddMembersViewState()) - private val _state = MutableStateFlow(AddMembersViewState(currentUser = chatClient.getCurrentUser())) - val state: StateFlow = _state.asStateFlow() + /** + * A [StateFlow] representing the current state of the "Add Members" view. + */ + public val state: StateFlow = _state.asStateFlow() private val _events = MutableSharedFlow(extraBufferCapacity = 1) - val events: SharedFlow = _events.asSharedFlow() + + /** + * A [SharedFlow] that emits one-shot events related to the "Add Members" view. + */ + public val events: SharedFlow = _events.asSharedFlow() init { _state .map { it.query } - .debounce(TypingDebounceTimeoutInMillis) + .debounce(TYPING_DEBOUNCE_TIMEOUT_MS) .distinctUntilChanged() .onEach { query -> - _state.update { currentState -> - currentState.copy( - isLoading = true, - ) - } - val channelMemberIds = (channelMembers.firstOrNull() ?: emptyList()).map(Member::getUserId) + _state.update { it.copy(isLoading = true) } + val channelMemberIds = (channelMembers.firstOrNull() ?: emptyList()) + .map(Member::getUserId) chatClient.queryUsers(query.toRequest()) .await() .onSuccess { users -> val searchResult = users.filterNot { it.id in channelMemberIds } - _state.update { currentState -> - currentState.copy( - isLoading = false, - searchResult = searchResult, - ) - } + _state.update { it.copy(isLoading = false, searchResult = searchResult) } } } - .launchIn(viewModelScope) + .launchIn(scope) } - fun onViewAction(viewAction: AddMembersViewAction) { - when (viewAction) { + /** + * Handles actions dispatched from the "Add Members" view. + * + * @param action The [AddMembersViewAction] to handle. + */ + public fun onViewAction(action: AddMembersViewAction) { + when (action) { is AddMembersViewAction.QueryChanged -> { - _state.update { currentState -> - currentState.copy( - query = viewAction.query.trim(), - ) - } + _state.update { it.copy(query = action.query.trim()) } } is AddMembersViewAction.UserClick -> { _state.update { currentState -> - val user = viewAction.user + val user = action.user val isSelected = currentState.selectedUsers.contains(user) val newSelectedUsers = if (isSelected) { currentState.selectedUsers - user } else { currentState.selectedUsers + user } - currentState.copy( - selectedUsers = newSelectedUsers, - ) + currentState.copy(selectedUsers = newSelectedUsers) } } - AddMembersViewAction.ConfirmClick -> { - _state.update { currentState -> - currentState.copy(isLoading = true) - } - viewModelScope.launch { + is AddMembersViewAction.ConfirmClick -> { + _state.update { it.copy(isLoading = true) } + scope.launch { val params = AddMembersParams( members = _state.value.selectedUsers.map { user -> MemberData(user.id) }, systemMessage = null, @@ -147,39 +158,9 @@ class AddMembersViewModel( presence = true, ) } -} - -private const val TypingDebounceTimeoutInMillis = 300L - -data class AddMembersViewState( - val currentUser: User? = null, - val isLoading: Boolean = true, - val query: String = "", - val searchResult: List = emptyList(), - val selectedUsers: List = emptyList(), -) - -sealed class AddMembersViewAction { - data class QueryChanged(val query: String) : AddMembersViewAction() - data class UserClick(val user: User) : AddMembersViewAction() - data object ConfirmClick : AddMembersViewAction() -} -sealed class AddMembersViewEvent { - data object MembersAdded : AddMembersViewEvent() -} - -class AddMembersViewModelFactory( - private val cid: String, - private val resultLimit: Int = 6, - private val chatClient: ChatClient = ChatClient.instance(), -) : ViewModelProvider.Factory { - - override fun create(modelClass: Class): T { - require(modelClass == AddMembersViewModel::class.java) { - "AddMembersViewModelFactory can only create instances of AddMembersViewModel" - } - @Suppress("UNCHECKED_CAST") - return AddMembersViewModel(cid, resultLimit, chatClient) as T + private companion object { + private const val DEFAULT_RESULT_LIMIT = 30 + private const val TYPING_DEBOUNCE_TIMEOUT_MS = 300L } } diff --git a/stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewEvent.kt b/stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewEvent.kt new file mode 100644 index 00000000000..71bb0b709b5 --- /dev/null +++ b/stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewEvent.kt @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2014-2026 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.ui.common.feature.channel.info + +/** + * Represents side-effect events related to the "Add Members" view. + */ +public sealed interface AddMembersViewEvent { + + /** + * Indicates that members were successfully added to the channel. + */ + public data object MembersAdded : AddMembersViewEvent +} diff --git a/stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/state/channel/info/AddMembersViewState.kt b/stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/state/channel/info/AddMembersViewState.kt new file mode 100644 index 00000000000..a56aa9008c0 --- /dev/null +++ b/stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/state/channel/info/AddMembersViewState.kt @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2014-2026 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.ui.common.state.channel.info + +import io.getstream.chat.android.models.User + +/** + * Represents the state of the "Add Members" view. + * + * @param isLoading Whether the view is currently loading search results. + * @param query The current search query. + * @param searchResult The list of users matching the search query. + * @param selectedUsers The list of users selected to be added as members. + */ +public data class AddMembersViewState( + val isLoading: Boolean = true, + val query: String = "", + val searchResult: List = emptyList(), + val selectedUsers: List = emptyList(), +) From 3907b3d701ef726e2a2a6c9f29977c4b9cfcff04 Mon Sep 17 00:00:00 2001 From: VelikovPetar Date: Fri, 20 Mar 2026 12:12:25 +0100 Subject: [PATCH 2/4] Add members. --- .../api/stream-chat-android-compose.api | 41 +- .../ui/channel/info/AddMembersBottomSheet.kt | 368 ++++++++++++++---- .../ui/channel/info/GroupChannelInfoScreen.kt | 21 +- .../compose/ui/theme/ChatComponentFactory.kt | 1 + .../ui/theme/ChatComponentFactoryParams.kt | 5 +- .../viewmodel/channel/AddMembersViewModel.kt | 14 +- .../channel/AddMembersViewModelFactory.kt | 38 -- .../viewmodel/channel/ChannelInfoViewModel.kt | 7 + .../src/main/res/values/strings.xml | 1 + .../channel/info/AddMembersBottomSheetTest.kt | 99 +++++ .../channel/AddMembersViewModelTest.kt | 113 ++++++ ...l.info_AddMembersBottomSheetTest_empty.png | Bin 0 -> 17080 bytes ...bersBottomSheetTest_empty_in_dark_mode.png | Bin 0 -> 15966 bytes ...info_AddMembersBottomSheetTest_loading.png | Bin 0 -> 13813 bytes ...rsBottomSheetTest_loading_in_dark_mode.png | Bin 0 -> 13224 bytes ...AddMembersBottomSheetTest_loading_more.png | Bin 0 -> 33356 bytes ...tomSheetTest_loading_more_in_dark_mode.png | Bin 0 -> 31815 bytes ...info_AddMembersBottomSheetTest_results.png | Bin 0 -> 32103 bytes ...rsBottomSheetTest_results_in_dark_mode.png | Bin 0 -> 30503 bytes ...SheetTest_results_with_existing_member.png | Bin 0 -> 34477 bytes ...ults_with_existing_member_in_dark_mode.png | Bin 0 -> 32451 bytes ...bersBottomSheetTest_results_with_query.png | Bin 0 -> 31426 bytes ...etTest_results_with_query_in_dark_mode.png | Bin 0 -> 29991 bytes ...BottomSheetTest_results_with_selection.png | Bin 0 -> 32214 bytes ...st_results_with_selection_in_dark_mode.png | Bin 0 -> 31303 bytes .../android/previewdata/PreviewUserData.kt | 2 +- .../api/stream-chat-android-ui-common.api | 34 +- .../channel/info/AddMembersViewAction.kt | 6 +- .../channel/info/AddMembersViewController.kt | 117 +++--- .../channel/info/AddMembersViewEvent.kt | 28 -- .../channel/info/ChannelInfoViewController.kt | 23 ++ .../state/channel/info/AddMembersViewState.kt | 27 +- .../info/AddMembersViewControllerTest.kt | 328 ++++++++++++++++ 33 files changed, 1030 insertions(+), 243 deletions(-) delete mode 100644 stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/viewmodel/channel/AddMembersViewModelFactory.kt create mode 100644 stream-chat-android-compose/src/test/kotlin/io/getstream/chat/android/compose/ui/channel/info/AddMembersBottomSheetTest.kt create mode 100644 stream-chat-android-compose/src/test/kotlin/io/getstream/chat/android/compose/viewmodel/channel/AddMembersViewModelTest.kt create mode 100644 stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_AddMembersBottomSheetTest_empty.png create mode 100644 stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_AddMembersBottomSheetTest_empty_in_dark_mode.png create mode 100644 stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_AddMembersBottomSheetTest_loading.png create mode 100644 stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_AddMembersBottomSheetTest_loading_in_dark_mode.png create mode 100644 stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_AddMembersBottomSheetTest_loading_more.png create mode 100644 stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_AddMembersBottomSheetTest_loading_more_in_dark_mode.png create mode 100644 stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_AddMembersBottomSheetTest_results.png create mode 100644 stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_AddMembersBottomSheetTest_results_in_dark_mode.png create mode 100644 stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_AddMembersBottomSheetTest_results_with_existing_member.png create mode 100644 stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_AddMembersBottomSheetTest_results_with_existing_member_in_dark_mode.png create mode 100644 stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_AddMembersBottomSheetTest_results_with_query.png create mode 100644 stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_AddMembersBottomSheetTest_results_with_query_in_dark_mode.png create mode 100644 stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_AddMembersBottomSheetTest_results_with_selection.png create mode 100644 stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_AddMembersBottomSheetTest_results_with_selection_in_dark_mode.png delete mode 100644 stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewEvent.kt create mode 100644 stream-chat-android-ui-common/src/test/kotlin/io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewControllerTest.kt 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 7484ecf5b22..8709637f397 100644 --- a/stream-chat-android-compose/api/stream-chat-android-compose.api +++ b/stream-chat-android-compose/api/stream-chat-android-compose.api @@ -833,6 +833,31 @@ public final class io/getstream/chat/android/compose/ui/channel/info/ChannelInfo public static final fun buildDefaultMemberActions (Lio/getstream/chat/android/models/Member;Ljava/util/Set;ZZLkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;I)Ljava/util/List; } +public final class io/getstream/chat/android/compose/ui/channel/info/ComposableSingletons$AddMembersBottomSheetKt { + public static final field INSTANCE Lio/getstream/chat/android/compose/ui/channel/info/ComposableSingletons$AddMembersBottomSheetKt; + public static field lambda-1 Lkotlin/jvm/functions/Function2; + public static field lambda-10 Lkotlin/jvm/functions/Function2; + public static field lambda-2 Lkotlin/jvm/functions/Function2; + public static field lambda-3 Lkotlin/jvm/functions/Function3; + public static field lambda-4 Lkotlin/jvm/functions/Function2; + public static field lambda-5 Lkotlin/jvm/functions/Function2; + public static field lambda-6 Lkotlin/jvm/functions/Function2; + public static field lambda-7 Lkotlin/jvm/functions/Function2; + public static field lambda-8 Lkotlin/jvm/functions/Function2; + public static field lambda-9 Lkotlin/jvm/functions/Function2; + public fun ()V + public final fun getLambda-1$stream_chat_android_compose_release ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-10$stream_chat_android_compose_release ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-2$stream_chat_android_compose_release ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-3$stream_chat_android_compose_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-4$stream_chat_android_compose_release ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-5$stream_chat_android_compose_release ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-6$stream_chat_android_compose_release ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-7$stream_chat_android_compose_release ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-8$stream_chat_android_compose_release ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-9$stream_chat_android_compose_release ()Lkotlin/jvm/functions/Function2; +} + public final class io/getstream/chat/android/compose/ui/channel/info/ComposableSingletons$ChannelInfoMemberInfoModalSheetKt { public static final field INSTANCE Lio/getstream/chat/android/compose/ui/channel/info/ComposableSingletons$ChannelInfoMemberInfoModalSheetKt; public static field lambda-1 Lkotlin/jvm/functions/Function2; @@ -2495,12 +2520,14 @@ public final class io/getstream/chat/android/compose/ui/pinned/PinnedMessageList public final class io/getstream/chat/android/compose/ui/theme/AddMembersBottomSheetParams { public static final field $stable I - public fun (Lio/getstream/chat/android/compose/viewmodel/channel/AddMembersViewModel;Lkotlin/jvm/functions/Function0;)V + public fun (Lio/getstream/chat/android/compose/viewmodel/channel/AddMembersViewModel;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;)V public final fun component1 ()Lio/getstream/chat/android/compose/viewmodel/channel/AddMembersViewModel; public final fun component2 ()Lkotlin/jvm/functions/Function0; - public final fun copy (Lio/getstream/chat/android/compose/viewmodel/channel/AddMembersViewModel;Lkotlin/jvm/functions/Function0;)Lio/getstream/chat/android/compose/ui/theme/AddMembersBottomSheetParams; - public static synthetic fun copy$default (Lio/getstream/chat/android/compose/ui/theme/AddMembersBottomSheetParams;Lio/getstream/chat/android/compose/viewmodel/channel/AddMembersViewModel;Lkotlin/jvm/functions/Function0;ILjava/lang/Object;)Lio/getstream/chat/android/compose/ui/theme/AddMembersBottomSheetParams; + public final fun component3 ()Lkotlin/jvm/functions/Function1; + public final fun copy (Lio/getstream/chat/android/compose/viewmodel/channel/AddMembersViewModel;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;)Lio/getstream/chat/android/compose/ui/theme/AddMembersBottomSheetParams; + public static synthetic fun copy$default (Lio/getstream/chat/android/compose/ui/theme/AddMembersBottomSheetParams;Lio/getstream/chat/android/compose/viewmodel/channel/AddMembersViewModel;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lio/getstream/chat/android/compose/ui/theme/AddMembersBottomSheetParams; public fun equals (Ljava/lang/Object;)Z + public final fun getOnConfirm ()Lkotlin/jvm/functions/Function1; public final fun getOnDismiss ()Lkotlin/jvm/functions/Function0; public final fun getViewModel ()Lio/getstream/chat/android/compose/viewmodel/channel/AddMembersViewModel; public fun hashCode ()I @@ -6901,17 +6928,10 @@ public final class io/getstream/chat/android/compose/viewmodel/channel/AddMember public static final field $stable I public fun (Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V public synthetic fun (Ljava/lang/String;Lkotlin/jvm/functions/Function1;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun getEvents ()Lkotlinx/coroutines/flow/SharedFlow; public final fun getState ()Lkotlinx/coroutines/flow/StateFlow; public final fun onViewAction (Lio/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewAction;)V } -public final class io/getstream/chat/android/compose/viewmodel/channel/AddMembersViewModelFactory : androidx/lifecycle/ViewModelProvider$Factory { - public static final field $stable I - public fun (Ljava/lang/String;)V - public fun create (Ljava/lang/Class;)Landroidx/lifecycle/ViewModel; -} - public final class io/getstream/chat/android/compose/viewmodel/channel/ChannelAttachmentsViewModel : androidx/lifecycle/ViewModel { public static final field $stable I public fun (Ljava/lang/String;Ljava/util/List;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)V @@ -6960,6 +6980,7 @@ public final class io/getstream/chat/android/compose/viewmodel/channel/ChannelIn public static final field $stable I public fun (Ljava/lang/String;Lio/getstream/chat/android/ui/common/helper/CopyToClipboardHandler;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)V public synthetic fun (Ljava/lang/String;Lio/getstream/chat/android/ui/common/helper/CopyToClipboardHandler;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun addMembers (Ljava/util/Set;)V public final fun getEvents ()Lkotlinx/coroutines/flow/SharedFlow; public final fun getState ()Lkotlinx/coroutines/flow/StateFlow; public final fun onMemberViewEvent (Lio/getstream/chat/android/ui/common/feature/channel/info/ChannelInfoMemberViewEvent;)V diff --git a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/channel/info/AddMembersBottomSheet.kt b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/channel/info/AddMembersBottomSheet.kt index 7da008ee678..392145ea532 100644 --- a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/channel/info/AddMembersBottomSheet.kt +++ b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/channel/info/AddMembersBottomSheet.kt @@ -14,28 +14,29 @@ * limitations under the License. */ +@file:Suppress("TooManyFunctions") + package io.getstream.chat.android.compose.ui.channel.info import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.PaddingValues -import androidx.compose.foundation.layout.statusBarsPadding import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.statusBarsPadding import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.lazy.itemsIndexed +import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.ModalBottomSheet import androidx.compose.material3.Text import androidx.compose.material3.rememberModalBottomSheetState import androidx.compose.runtime.Composable -import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -43,9 +44,11 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import io.getstream.chat.android.compose.R +import io.getstream.chat.android.compose.handlers.LoadMoreHandler import io.getstream.chat.android.compose.ui.components.LoadingIndicator import io.getstream.chat.android.compose.ui.components.SearchInput import io.getstream.chat.android.compose.ui.components.avatar.AvatarSize @@ -58,72 +61,94 @@ import io.getstream.chat.android.compose.ui.theme.StreamTokens import io.getstream.chat.android.compose.ui.util.clickable import io.getstream.chat.android.compose.viewmodel.channel.AddMembersViewModel import io.getstream.chat.android.models.User +import io.getstream.chat.android.previewdata.PreviewUserData import io.getstream.chat.android.ui.common.feature.channel.info.AddMembersViewAction -import io.getstream.chat.android.ui.common.feature.channel.info.AddMembersViewEvent -import kotlinx.coroutines.flow.collectLatest +import io.getstream.chat.android.ui.common.state.channel.info.AddMembersViewState /** * A bottom sheet that allows users to search for and add members to a channel. * * @param viewModel The [AddMembersViewModel] managing the state and actions. - * @param onDismiss Callback invoked when the bottom sheet is dismissed. + * @param onDismiss Callback invoked when the bottom sheet is dismissed without adding members. + * @param onConfirm Callback invoked with the selected [User] list when the user confirms. + * The caller is responsible for performing the actual API call and dismissing the sheet. */ @OptIn(ExperimentalMaterial3Api::class) @Composable internal fun AddMembersBottomSheet( viewModel: AddMembersViewModel, onDismiss: () -> Unit, + onConfirm: (List) -> Unit, ) { val sheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true) val state by viewModel.state.collectAsStateWithLifecycle() - LaunchedEffect(viewModel) { - viewModel.events.collectLatest { event -> - when (event) { - AddMembersViewEvent.MembersAdded -> onDismiss() - } - } - } - ModalBottomSheet( modifier = Modifier.statusBarsPadding(), sheetState = sheetState, containerColor = ChatTheme.colors.backgroundElevationElevation1, onDismissRequest = onDismiss, ) { - Column(modifier = Modifier.fillMaxSize()) { - AddMembersHeader( - hasSelection = state.selectedUsers.isNotEmpty(), - onDismiss = onDismiss, - onConfirm = { viewModel.onViewAction(AddMembersViewAction.ConfirmClick) }, - ) - SearchInput( - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = StreamTokens.spacingMd), - query = state.query, - onValueChange = { viewModel.onViewAction(AddMembersViewAction.QueryChanged(it)) }, - ) - when { - state.isLoading -> { - Box( - modifier = Modifier.fillMaxWidth().weight(1f), - contentAlignment = Alignment.Center, - ) { - LoadingIndicator(modifier = Modifier.size(172.dp)) - } - } - state.searchResult.isEmpty() -> { - AddMembersEmptyState() - } - else -> { - AddMembersUserList( - users = state.searchResult, - selectedUsers = state.selectedUsers, - onUserClick = { user -> viewModel.onViewAction(AddMembersViewAction.UserClick(user)) }, - ) + AddMembersBottomSheet( + state = state, + onQueryChange = { viewModel.onViewAction(AddMembersViewAction.QueryChanged(it)) }, + onUserClick = { viewModel.onViewAction(AddMembersViewAction.UserClick(it)) }, + onLoadMore = { viewModel.onViewAction(AddMembersViewAction.LoadMore) }, + onDismiss = onDismiss, + onConfirm = { onConfirm(state.selectedUsers) }, + ) + } +} + +@Suppress("LongParameterList") +@Composable +internal fun AddMembersBottomSheet( + state: AddMembersViewState, + onQueryChange: (String) -> Unit, + onUserClick: (User) -> Unit, + onLoadMore: () -> Unit, + onDismiss: () -> Unit, + onConfirm: () -> Unit, +) { + Column(modifier = Modifier.fillMaxSize()) { + AddMembersHeader( + hasSelection = state.selectedUserIds.isNotEmpty(), + onDismiss = onDismiss, + onConfirm = onConfirm, + ) + SearchInput( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = StreamTokens.spacingMd), + query = state.query, + onValueChange = onQueryChange, + ) + when { + state.isLoading -> { + Box( + modifier = Modifier + .fillMaxWidth() + .weight(1f), + contentAlignment = Alignment.Center, + ) { + LoadingIndicator(modifier = Modifier.size(172.dp)) } } + + state.searchResult.isEmpty() -> { + AddMembersEmptyState() + } + + else -> { + AddMembersList( + users = state.searchResult, + isSelected = state::isSelected, + isAlreadyMember = state::isAlreadyMember, + isLoadingMore = state.isLoadingMore, + onUserClick = onUserClick, + onLoadMore = onLoadMore, + ) + } } } } @@ -173,29 +198,54 @@ private fun AddMembersHeader( } } +@Suppress("LongParameterList") @Composable -private fun AddMembersUserList( +private fun AddMembersList( users: List, - selectedUsers: List, + isSelected: (User) -> Boolean, + isAlreadyMember: (User) -> Boolean, + isLoadingMore: Boolean, onUserClick: (User) -> Unit, + onLoadMore: () -> Unit, ) { + val listState = rememberLazyListState() + + LoadMoreHandler( + lazyListState = listState, + loadMore = onLoadMore, + ) + LazyColumn( + state = listState, modifier = Modifier.fillMaxWidth(), contentPadding = PaddingValues( top = StreamTokens.spacingSm, bottom = StreamTokens.spacing3xl, ), ) { - items( + itemsIndexed( items = users, - key = User::id, - ) { user -> + key = { _, user -> user.id }, + ) { _, user -> AddMembersUserItem( user = user, - isSelected = selectedUsers.contains(user), - onClick = { onUserClick(user) }, + isSelected = isSelected(user), + isAlreadyMember = isAlreadyMember(user), + onClick = { if (!isAlreadyMember(user)) onUserClick(user) }, ) } + if (isLoadingMore) { + item { + Box( + modifier = Modifier + .fillMaxWidth() + .padding(vertical = StreamTokens.spacingMd), + contentAlignment = Alignment.Center, + ) { + LoadingIndicator(modifier = Modifier.size(36.dp)) + } + } + } } } @@ -203,13 +253,13 @@ private fun AddMembersUserList( private fun AddMembersUserItem( user: User, isSelected: Boolean, + isAlreadyMember: Boolean, onClick: () -> Unit, ) { Row( modifier = Modifier .fillMaxWidth() - .height(52.dp) - .clickable(onClick = onClick) + .clickable(onClick = onClick, enabled = !isAlreadyMember) .padding(horizontal = StreamTokens.spacing2xs) .padding(horizontal = StreamTokens.spacingSm, vertical = StreamTokens.spacingXs), verticalAlignment = Alignment.CenterVertically, @@ -221,18 +271,29 @@ private fun AddMembersUserItem( showIndicator = false, showBorder = false, ) - Text( - modifier = Modifier.weight(1f), - text = user.name.takeIf(String::isNotBlank) ?: user.id, - style = ChatTheme.typography.bodyDefault, - color = ChatTheme.colors.textPrimary, - maxLines = 1, - overflow = TextOverflow.Ellipsis, - ) - RadioCheck( - checked = isSelected, - onCheckedChange = null, - ) + Column(modifier = Modifier.weight(1f)) { + Text( + text = user.name.takeIf(String::isNotBlank) ?: user.id, + style = ChatTheme.typography.bodyDefault, + color = if (isAlreadyMember) ChatTheme.colors.textSecondary else ChatTheme.colors.textPrimary, + maxLines = 1, + overflow = TextOverflow.Ellipsis, + ) + if (isAlreadyMember) { + Text( + text = stringResource(id = R.string.stream_compose_add_members_already_member), + style = ChatTheme.typography.metadataDefault, + color = ChatTheme.colors.textTertiary, + maxLines = 1, + ) + } + } + if (!isAlreadyMember) { + RadioCheck( + checked = isSelected, + onCheckedChange = null, + ) + } } } @@ -259,3 +320,176 @@ private fun AddMembersEmptyState() { ) } } + +// ---- Previews ---- + +@Preview(showBackground = true) +@Composable +private fun AddMembersBottomSheetLoadingPreview() { + ChatTheme { + AddMembersBottomSheetLoading() + } +} + +@Composable +internal fun AddMembersBottomSheetLoading() { + AddMembersBottomSheet( + state = AddMembersViewState(isLoading = true), + onQueryChange = {}, + onUserClick = {}, + onLoadMore = {}, + onDismiss = {}, + onConfirm = {}, + ) +} + +@Preview(showBackground = true) +@Composable +private fun AddMembersBottomSheetEmptyPreview() { + ChatTheme { + AddMembersBottomSheetEmpty() + } +} + +@Composable +internal fun AddMembersBottomSheetEmpty() { + AddMembersBottomSheet( + state = AddMembersViewState( + isLoading = false, + query = "Darth Vader", + searchResult = emptyList(), + ), + onQueryChange = {}, + onUserClick = {}, + onLoadMore = {}, + onDismiss = {}, + onConfirm = {}, + ) +} + +@Preview(showBackground = true) +@Composable +private fun AddMembersBottomSheetResultsWithQueryPreview() { + ChatTheme { + AddMembersBottomSheetResultsWithQuery() + } +} + +@Composable +internal fun AddMembersBottomSheetResultsWithQuery() { + AddMembersBottomSheet( + state = AddMembersViewState( + isLoading = false, + query = "Han", + searchResult = previewUsers, + ), + onQueryChange = {}, + onUserClick = {}, + onLoadMore = {}, + onDismiss = {}, + onConfirm = {}, + ) +} + +@Preview(showBackground = true) +@Composable +private fun AddMembersBottomSheetResultsPreview() { + ChatTheme { + AddMembersBottomSheetResults() + } +} + +@Composable +internal fun AddMembersBottomSheetResults() { + AddMembersBottomSheet( + state = AddMembersViewState( + isLoading = false, + searchResult = previewUsers, + ), + onQueryChange = {}, + onUserClick = {}, + onLoadMore = {}, + onDismiss = {}, + onConfirm = {}, + ) +} + +@Preview(showBackground = true) +@Composable +private fun AddMembersBottomSheetResultsWithSelectionPreview() { + ChatTheme { + AddMembersBottomSheetResultsWithSelection() + } +} + +@Composable +internal fun AddMembersBottomSheetResultsWithSelection() { + AddMembersBottomSheet( + state = AddMembersViewState( + isLoading = false, + searchResult = previewUsers, + selectedUserIds = setOf(previewUsers[0].id, previewUsers[2].id), + ), + onQueryChange = {}, + onUserClick = {}, + onLoadMore = {}, + onDismiss = {}, + onConfirm = {}, + ) +} + +@Preview(showBackground = true) +@Composable +private fun AddMembersBottomSheetResultsWithMemberPreview() { + ChatTheme { + AddMembersBottomSheetResultsWithMember() + } +} + +@Composable +internal fun AddMembersBottomSheetResultsWithMember() { + AddMembersBottomSheet( + state = AddMembersViewState( + isLoading = false, + searchResult = previewUsers, + loadedMemberIds = setOf(previewUsers[0].id, previewUsers[1].id), + ), + onQueryChange = {}, + onUserClick = {}, + onLoadMore = {}, + onDismiss = {}, + onConfirm = {}, + ) +} + +@Preview(showBackground = true) +@Composable +private fun AddMembersBottomSheetLoadingMorePreview() { + ChatTheme { + AddMembersBottomSheetLoadingMore() + } +} + +@Composable +internal fun AddMembersBottomSheetLoadingMore() { + AddMembersBottomSheet( + state = AddMembersViewState( + isLoading = false, + searchResult = previewUsers, + isLoadingMore = true, + ), + onQueryChange = {}, + onUserClick = {}, + onLoadMore = {}, + onDismiss = {}, + onConfirm = {}, + ) +} + +private val previewUsers = listOf( + PreviewUserData.user2, + PreviewUserData.user3, + PreviewUserData.user4, + PreviewUserData.user5, + PreviewUserData.user6, +) diff --git a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/channel/info/GroupChannelInfoScreen.kt b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/channel/info/GroupChannelInfoScreen.kt index d682abb6cf3..245c0b0c632 100644 --- a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/channel/info/GroupChannelInfoScreen.kt +++ b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/channel/info/GroupChannelInfoScreen.kt @@ -65,6 +65,7 @@ import io.getstream.chat.android.compose.ui.theme.GroupChannelInfoMemberSectionP import io.getstream.chat.android.compose.ui.theme.GroupChannelInfoTopBarParams import io.getstream.chat.android.compose.ui.theme.StreamTokens import io.getstream.chat.android.compose.ui.theme.UserAvatarParams +import io.getstream.chat.android.compose.ui.util.ViewModelStore import io.getstream.chat.android.compose.ui.util.getLastSeenText import io.getstream.chat.android.compose.viewmodel.channel.AddMembersViewModel import io.getstream.chat.android.compose.viewmodel.channel.ChannelHeaderViewModel @@ -105,7 +106,6 @@ public fun GroupChannelInfoScreen( ) { val headerViewModel = viewModel(factory = viewModelFactory) val infoViewModel = viewModel(factory = viewModelFactory) - val addMembersViewModel = viewModel(factory = viewModelFactory) val headerState by headerViewModel.state.collectAsStateWithLifecycle() val infoState by infoViewModel.state.collectAsStateWithLifecycle() @@ -123,12 +123,19 @@ public fun GroupChannelInfoScreen( GroupChannelInfoScreenModal(infoViewModel) if (showAddMembers) { - ChatTheme.componentFactory.AddMembersBottomSheet( - params = AddMembersBottomSheetParams( - viewModel = addMembersViewModel, - onDismiss = { showAddMembers = false }, - ), - ) + ViewModelStore { + val addMembersViewModel = viewModel(factory = viewModelFactory) + ChatTheme.componentFactory.AddMembersBottomSheet( + params = AddMembersBottomSheetParams( + viewModel = addMembersViewModel, + onDismiss = { showAddMembers = false }, + onConfirm = { users -> + infoViewModel.addMembers(users.map { it.id }.toSet()) + showAddMembers = false + }, + ), + ) + } } } diff --git a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/ChatComponentFactory.kt b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/ChatComponentFactory.kt index ae873f25b49..8f7c85688c1 100644 --- a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/ChatComponentFactory.kt +++ b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/ChatComponentFactory.kt @@ -2480,6 +2480,7 @@ public interface ChatComponentFactory { io.getstream.chat.android.compose.ui.channel.info.AddMembersBottomSheet( viewModel = params.viewModel, onDismiss = params.onDismiss, + onConfirm = params.onConfirm, ) } diff --git a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/ChatComponentFactoryParams.kt b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/ChatComponentFactoryParams.kt index 689eec3176b..130c0829979 100644 --- a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/ChatComponentFactoryParams.kt +++ b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/ChatComponentFactoryParams.kt @@ -1854,11 +1854,14 @@ public data class GroupChannelInfoAddMembersButtonParams( * Parameters for [ChatComponentFactory.AddMembersBottomSheet]. * * @param viewModel The [AddMembersViewModel] managing the state and actions. - * @param onDismiss Action invoked when the bottom sheet is dismissed. + * @param onDismiss Action invoked when the bottom sheet is dismissed without adding members. + * @param onConfirm Action invoked with the selected users when the user confirms. + * The caller is responsible for performing the API call and dismissing the sheet. */ public data class AddMembersBottomSheetParams( val viewModel: AddMembersViewModel, val onDismiss: () -> Unit, + val onConfirm: (List) -> Unit, ) /** diff --git a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/viewmodel/channel/AddMembersViewModel.kt b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/viewmodel/channel/AddMembersViewModel.kt index 7053408f270..5d8dd599a6e 100644 --- a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/viewmodel/channel/AddMembersViewModel.kt +++ b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/viewmodel/channel/AddMembersViewModel.kt @@ -20,13 +20,14 @@ package io.getstream.chat.android.compose.viewmodel.channel import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope +import io.getstream.chat.android.client.ChatClient +import io.getstream.chat.android.client.api.state.watchChannelAsState import io.getstream.chat.android.core.internal.InternalStreamChatApi import io.getstream.chat.android.ui.common.feature.channel.info.AddMembersViewAction import io.getstream.chat.android.ui.common.feature.channel.info.AddMembersViewController -import io.getstream.chat.android.ui.common.feature.channel.info.AddMembersViewEvent import io.getstream.chat.android.ui.common.state.channel.info.AddMembersViewState -import kotlinx.coroutines.flow.SharedFlow import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.filterNotNull /** * ViewModel for managing the "Add Members" view and its actions. @@ -38,8 +39,10 @@ public class AddMembersViewModel( private val cid: String, private val controllerProvider: ViewModel.() -> AddMembersViewController = { AddMembersViewController( - cid = cid, scope = viewModelScope, + channelState = ChatClient.instance() + .watchChannelAsState(cid = cid, messageLimit = 0, coroutineScope = viewModelScope) + .filterNotNull(), ) }, ) : ViewModel() { @@ -51,11 +54,6 @@ public class AddMembersViewModel( */ public val state: StateFlow get() = controller.state - /** - * @see [AddMembersViewController.events] - */ - public val events: SharedFlow get() = controller.events - /** * @see [AddMembersViewController.onViewAction] */ diff --git a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/viewmodel/channel/AddMembersViewModelFactory.kt b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/viewmodel/channel/AddMembersViewModelFactory.kt deleted file mode 100644 index 3a909ffab9e..00000000000 --- a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/viewmodel/channel/AddMembersViewModelFactory.kt +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (c) 2014-2026 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.viewmodel.channel - -import androidx.lifecycle.ViewModel -import androidx.lifecycle.ViewModelProvider - -/** - * Factory for creating instances of [AddMembersViewModel]. - * - * @param cid The full channel identifier (e.g., "messaging:123"). - */ -public class AddMembersViewModelFactory( - private val cid: String, -) : ViewModelProvider.Factory { - - override fun create(modelClass: Class): T { - require(modelClass == AddMembersViewModel::class.java) { - "AddMembersViewModelFactory can only create instances of AddMembersViewModel" - } - @Suppress("UNCHECKED_CAST") - return AddMembersViewModel(cid = cid) as T - } -} diff --git a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/viewmodel/channel/ChannelInfoViewModel.kt b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/viewmodel/channel/ChannelInfoViewModel.kt index 07ecc103da3..1bdf11e48e4 100644 --- a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/viewmodel/channel/ChannelInfoViewModel.kt +++ b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/viewmodel/channel/ChannelInfoViewModel.kt @@ -78,4 +78,11 @@ public class ChannelInfoViewModel( public fun onMemberViewEvent(event: ChannelInfoMemberViewEvent) { controller.onMemberViewEvent(event) } + + /** + * @see [ChannelInfoViewController.addMembers] + */ + public fun addMembers(userIds: Set) { + controller.addMembers(userIds) + } } 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 6599c13bfeb..02e34cef5e1 100644 --- a/stream-chat-android-compose/src/main/res/values/strings.xml +++ b/stream-chat-android-compose/src/main/res/values/strings.xml @@ -375,6 +375,7 @@ Add Members No user found + Already a member Reply to a message to start a thread diff --git a/stream-chat-android-compose/src/test/kotlin/io/getstream/chat/android/compose/ui/channel/info/AddMembersBottomSheetTest.kt b/stream-chat-android-compose/src/test/kotlin/io/getstream/chat/android/compose/ui/channel/info/AddMembersBottomSheetTest.kt new file mode 100644 index 00000000000..5e305f571e5 --- /dev/null +++ b/stream-chat-android-compose/src/test/kotlin/io/getstream/chat/android/compose/ui/channel/info/AddMembersBottomSheetTest.kt @@ -0,0 +1,99 @@ +/* + * Copyright (c) 2014-2026 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.channel.info + +import app.cash.paparazzi.DeviceConfig +import app.cash.paparazzi.Paparazzi +import io.getstream.chat.android.compose.ui.PaparazziComposeTest +import org.junit.Rule +import org.junit.Test + +internal class AddMembersBottomSheetTest : PaparazziComposeTest { + + @get:Rule + override val paparazzi = Paparazzi(deviceConfig = DeviceConfig.PIXEL_2) + + @Test + fun loading() { + snapshot { AddMembersBottomSheetLoading() } + } + + @Test + fun `loading in dark mode`() { + snapshot(isInDarkMode = true) { AddMembersBottomSheetLoading() } + } + + @Test + fun empty() { + snapshot { AddMembersBottomSheetEmpty() } + } + + @Test + fun `empty in dark mode`() { + snapshot(isInDarkMode = true) { AddMembersBottomSheetEmpty() } + } + + @Test + fun `results with query`() { + snapshot { AddMembersBottomSheetResultsWithQuery() } + } + + @Test + fun `results with query in dark mode`() { + snapshot(isInDarkMode = true) { AddMembersBottomSheetResultsWithQuery() } + } + + @Test + fun results() { + snapshot { AddMembersBottomSheetResults() } + } + + @Test + fun `results in dark mode`() { + snapshot(isInDarkMode = true) { AddMembersBottomSheetResults() } + } + + @Test + fun `results with selection`() { + snapshot { AddMembersBottomSheetResultsWithSelection() } + } + + @Test + fun `results with selection in dark mode`() { + snapshot(isInDarkMode = true) { AddMembersBottomSheetResultsWithSelection() } + } + + @Test + fun `results with existing member`() { + snapshot { AddMembersBottomSheetResultsWithMember() } + } + + @Test + fun `results with existing member in dark mode`() { + snapshot(isInDarkMode = true) { AddMembersBottomSheetResultsWithMember() } + } + + @Test + fun `loading more`() { + snapshot { AddMembersBottomSheetLoadingMore() } + } + + @Test + fun `loading more in dark mode`() { + snapshot(isInDarkMode = true) { AddMembersBottomSheetLoadingMore() } + } +} diff --git a/stream-chat-android-compose/src/test/kotlin/io/getstream/chat/android/compose/viewmodel/channel/AddMembersViewModelTest.kt b/stream-chat-android-compose/src/test/kotlin/io/getstream/chat/android/compose/viewmodel/channel/AddMembersViewModelTest.kt new file mode 100644 index 00000000000..dd5a5cc1475 --- /dev/null +++ b/stream-chat-android-compose/src/test/kotlin/io/getstream/chat/android/compose/viewmodel/channel/AddMembersViewModelTest.kt @@ -0,0 +1,113 @@ +/* + * Copyright (c) 2014-2026 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.viewmodel.channel + +import app.cash.turbine.test +import io.getstream.chat.android.randomCID +import io.getstream.chat.android.randomUser +import io.getstream.chat.android.ui.common.feature.channel.info.AddMembersViewAction +import io.getstream.chat.android.ui.common.feature.channel.info.AddMembersViewController +import io.getstream.chat.android.ui.common.state.channel.info.AddMembersViewState +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.test.runTest +import org.junit.Assert.assertEquals +import org.junit.Test +import org.mockito.kotlin.doReturn +import org.mockito.kotlin.mock +import org.mockito.kotlin.verify +import org.mockito.kotlin.whenever + +internal class AddMembersViewModelTest { + + @Test + fun `state should reflect controller state`() = runTest { + val stateFlow = MutableStateFlow(AddMembersViewState()) + val sut = Fixture() + .givenControllerStateFlow(stateFlow) + .get() + + sut.state.test { + assertEquals(AddMembersViewState(), awaitItem()) + } + } + + @Test + fun `state updates are propagated from controller`() = runTest { + val stateFlow = MutableStateFlow(AddMembersViewState()) + val sut = Fixture() + .givenControllerStateFlow(stateFlow) + .get() + + sut.state.test { + skipItems(1) // Skip initial state + + val updatedState = AddMembersViewState(isLoading = false, query = "Alice") + stateFlow.value = updatedState + + assertEquals(updatedState, awaitItem()) + } + } + + @Test + fun `onViewAction should delegate to controller`() = runTest { + val fixture = Fixture() + val sut = fixture.get() + + val action = AddMembersViewAction.UserClick(user = randomUser()) + sut.onViewAction(action) + + fixture.verifyControllerOnViewAction(action) + } + + @Test + fun `onViewAction QueryChanged should delegate to controller`() = runTest { + val fixture = Fixture() + val sut = fixture.get() + + val action = AddMembersViewAction.QueryChanged(query = "search query") + sut.onViewAction(action) + + fixture.verifyControllerOnViewAction(action) + } + + @Test + fun `onViewAction LoadMore should delegate to controller`() = runTest { + val fixture = Fixture() + val sut = fixture.get() + + sut.onViewAction(AddMembersViewAction.LoadMore) + + fixture.verifyControllerOnViewAction(AddMembersViewAction.LoadMore) + } + + private class Fixture { + private val mockController: AddMembersViewController = mock() + + fun givenControllerStateFlow(stateFlow: MutableStateFlow) = apply { + whenever(mockController.state) doReturn stateFlow + } + + fun verifyControllerOnViewAction(action: AddMembersViewAction) = apply { + verify(mockController).onViewAction(action) + } + + fun get() = AddMembersViewModel( + cid = randomCID(), + controllerProvider = { mockController }, + ) + } +} diff --git a/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_AddMembersBottomSheetTest_empty.png b/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_AddMembersBottomSheetTest_empty.png new file mode 100644 index 0000000000000000000000000000000000000000..399f6c0f5eb209dc80eea529a9054775c663db11 GIT binary patch literal 17080 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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.channel.info_AddMembersBottomSheetTest_empty_in_dark_mode.png b/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_AddMembersBottomSheetTest_empty_in_dark_mode.png new file mode 100644 index 0000000000000000000000000000000000000000..a18f78138b001330873cfc424e8a48d24c978507 GIT binary patch literal 15966 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%0A_gz z21da+1oNO09S^~{7XgSQ)yo$Lt>%Ys;SRzC$shFCiITV(EpJ;Wxgde5omwr!f~N9i zG8i3FJqkOvJ!-PI&a~v8f~8EH4`jF6-oL-_n8aHLVavQ`y6oi*WW}`GlKyvBLFMrlM1*e% z{df@5`#at}{P{_G+w(}vW-J=pF;EVIZM2IgQ>P_~ZPv;I>b(kFgeSa;t;)Is+m4~F z!vfY^)qs(lZWqJ=Olxcnv~KzCIJ$W+m`VA0L8d!0Oao+F!`n-oaXa$ruV<6>L5Jqg z?E!L-!IV#boedru8Z}-R0|7y!oRT1&u?3J6oGQ0`PB&n%`>S$O8&M{oNo(yQI|2ql z>ZTrP9?V#!&tc~Q-FBI%WLCO!RcRhydF@h5mEC2o3m?M)z9xVf=BZzNBAt=s>AD8O zEzZtL@+WkA$tqDOt7I zK+QrM3{SSRlG&4J`ZF13!osZ$5I*zZO%d{gIZD9w((JgQcQ9rgu*twwAYJS4&*~1) zJc6)NEfc^ZoimsA?nXARY7#8hRA&&ndDhpMIhy}ae8bMhckE)_#GkZY{UA=oE9Q$slq!lYu(xAy z-fbOK#)`BWR9kht?kUG1Y}@8knySMX3zxFqg4RQ)k$9vM^iei{n$M^pVNX|YlV;Lj#{R;gTdzjYV5^rYN}t1I zzirzEak<_FKv?%k?IWLs1UAWcn;fj$i%lEvhTbYw&;IV-z)+8ncV;7=ta{pd2$uW1 zxxVL2*}N87o5No0EXuRc9N+QTr;wrrk}rDBBB@joOh{HJG8wcNg$|hIu0A*dn{kYm ziarys)4}+vQ2#CnS<_xD*8M&Pu6*%fCh1~|xdBU0k)6vHZK9G%*mb|kbyyrU<*_9>aI}jJ7HxSpv!Soj~oG^|P zqMD^D6v??zq|+~_Q+b7MK(4-(ppy{RuPZH@_WsVSZvi#o>(mrPYL|<-YslI^6-@`E{)vH2W!!yWgID|G_Tx@ zWJapU;c%Ssj43AsM5U>r}NwDXz`D>=`A44aP|RdU?B9QT7o z;IxeY<&-c3f`QVnH6W1R6x)V<${z?9*{cUV8#)f88yz`kNRO*ITXoPz%StMfqPnIt zf&^%RzE&*tBlS1lzbAv0Im0v{m*F8PHk-+ig{NzoJ+F!}kY{*zYd{mk8ebc{AV`(e zV#qs}72z3KUC5a8pK>jobS{{LA{|O7my%&zcgjT|_R|j!{cv^HnT{W4wr%={RF|Uh zJ#!0gRWYqJX zwHSJ|qOa!|GXd<`rxEopbN1X(g>DME6rwu@QlwMqrWnE}sRL_%?dK0*6LS+EiFU-N zcXNo%Ijm`46+Pe{Z3fh%@8Q8p3~E&(Uzm`PU+Usxk(KvOxw7Z8Zh9;SE-$dYq)uRO zKh2*yXErtj;?GE|pn-afT!+YcSeZJngajFc%=~28Zq)wrHr-c|pSZD+rlk(Ol(WRo zMc(KvpDvX5&hI7@5VVcU0H!Us%+D=bMpM5c#?tH$R9GP#2fc3Tl$zII?FT6=gxIpu zIDN@>5k`c5K&%UFwCo+oN+Hb8a{kxf?)>G~fB1Ii@89|S{Zf#r{q-(?x#3?9nJ4|_ zhJQKyzrFW=@MFIId%s!w*TMb=ztF#YJN0kp^q)WG!+(Pz9QbF}_n%}I|BhAouRnzU z?>6T@Uj>i9{ck@g{QqZj{&U~=@V~(j_Wjpih5!0P_%GukkD)AB|NJue-$u88NJ0Mj quK7>T82&p90rJ;XuyNkrgUqtUuv(L>W5IXh5X5brTSYf)LjMOIG*vDD literal 0 HcmV?d00001 diff --git a/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_AddMembersBottomSheetTest_loading.png b/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_AddMembersBottomSheetTest_loading.png new file mode 100644 index 0000000000000000000000000000000000000000..65444eda02696d3bc1cf9445e95c91503e5888fe GIT binary patch literal 13813 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 XKRll31p|J812R2tZd_{Q`0M`xh|(Hl literal 0 HcmV?d00001 diff --git a/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_AddMembersBottomSheetTest_loading_more.png b/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_AddMembersBottomSheetTest_loading_more.png new file mode 100644 index 0000000000000000000000000000000000000000..f3d4838000c5bdfc80feba6d10995cdd516920e1 GIT binary patch literal 33356 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%0DOvY(@$pF|%W3k&B34LaO5!k_0W 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 CjpQf* literal 0 HcmV?d00001 diff --git a/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_AddMembersBottomSheetTest_results.png b/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_AddMembersBottomSheetTest_results.png new file mode 100644 index 0000000000000000000000000000000000000000..75158b1876d30d37b5ef99d27c861e0277a721ce GIT binary patch literal 32103 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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.channel.info_AddMembersBottomSheetTest_results_in_dark_mode.png b/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_AddMembersBottomSheetTest_results_in_dark_mode.png new file mode 100644 index 0000000000000000000000000000000000000000..4a4fa8df3e34282a684e4f709d9c110bad6f3bf6 GIT binary patch literal 30503 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

~F5Gow4TlLo_e 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 GAOAP(P!b^k literal 0 HcmV?d00001 diff --git a/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_AddMembersBottomSheetTest_results_with_existing_member_in_dark_mode.png b/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_AddMembersBottomSheetTest_results_with_existing_member_in_dark_mode.png new file mode 100644 index 0000000000000000000000000000000000000000..cb172628c058b8ce8a012bf9ce190a805faf6e9d GIT binary patch literal 32451 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 cMNzf2NWC8(x4Z-or^k?!QkE2U0pH335?T zyr2rw5?UTJd#$L61QRKTVh{6+t?m!aH*>AcaFq+Ir}U^jnNM-GqH&)|Jd;t!^nZkg z{uRU`@tT^2>FZNmX`I*8)bjDEjGG7P!eb&LY58NHcSS_BUDe#xN_SqL-U$zRzAskQ z)z+Q-d)5DW!A14)BcN@R4ra85XUISN5y*d0#3BFwqXxS7Kc}JKkRm_*ANl^5G?ZXW zWOizB^2!;Wr!b{+-V3NhhdF*}sH$ zZ9Bu-GT#Xp>#L^oqXLD7DVEbiuBDB43>3pGogyq5!E>8k^Ac?23Z#O#D;i^a{J%9# zYeNeow!C@=-G+(c zY)M|3O(6_ZE{Gr8?kNORDcm;XF74C1a=ql* zD5Dh^fZPee7Rr`Na|&VL?l6VBbTVz3z=Y@TX$phe?a9)OlPc!F6(VPjBtQHHrZB=sXCq%Yl%KQqDXk*5$x$#F)uG&r~|^Skfm6;9b=Q&8Q# z>s!pDqM=>SEe~aASUn3LL%J+W04-yMymBn6INR}N2BXc?5iHxVDfZn5pP=@v@y!+c z=Y3AO`T4Ae?%P#rN5lRMa;0Hfqw9oY@kV|xps>F3*6tl2irU9i#ld01I|a<8Mjhs- zt0GlT%|gS;>xUQ1ZRmShEBZeUbDbZ|S5T~WK*wtT)KBjz`fzY0u-Y%xbD++z9cyGE zTQ?bx=>z-R#SSX`Mk^GRhzmjB4fGNOyA8S>e6E$Cj~nmX<;oY-ZYC@?45?D6@>$ag z1!H>#Ei*HH=D`_X%{K%J&KI$&9Cj{&K*^DCEhDoAL)9MJpHDq^YN~+&wKUZx&$%2j z?fhxYxE#go4!}q#H19U%vHi=hU6zoCnUmm8mYbXZOyT!0DLHdv$U)2Q!VmSHJSDL& zK+UGvtxawbSxluJsqpB9CEi3cSqT5vEY7!lVzMs{+;`?uMn}P4hdk+_`t{o^J9DG! zI@&`6_^ZdCA7@tfXFRld$U4}&g?hwaJxB$LzTMqb&UfzZ@6Z4G^|v52tZ$tmZBSfK zZyHiNO~wXhci1VsU9{$THsK~{G+uHczAiGs0Jd~_W?{AYR#lZlk1cCbzf!+!R5TQ^ zdz{v;(AX$=d|v_&JXDgkjQ?wVwjwgg0G5&Ij7?8h2ndj={X{I33-?$*O;*ky_9L9# zU(vUFlXBuBE6WgU^|O$tGN|jtov7 zPDC2nJxQopeDcw!KrJKhja@U8Gw=MBS1_j}>AhLg_J(Sk&;IAP8X8qi*vds{p5V+8 z$FKWk^;kqh+vbsCDpbBT*@`HFK?4%YUEa&TEkL?5_OadJet~uNcU+|iM@W^)Lv!4n z-OQ)F{aJTjc}Ua6R>iH~?0K4mTO^ej&AE}gkAc_C{>AT*u%Z^jy-lB!WBr;v`3$xP z&{nH^TVCXpm}f7KpyLvb+y0EMC)Pt{)#nRir@KDU+t~8Py4os-pZikMUmciWp7#L> zHh*?cA0Pbcurkga9j%JGxZUO5?L51h%-}j5pw3zz`g(Cj<;a&N^4Stm+WHs0xMl z^bVE4jfqcqIaPhNi`uJ(>x}CCyPBI2xk^LuxkP81iKbAxtF&)TAv-K!qoxH}H8pRE zp3NfB8Jp|B(~4T#)kAPhW-#0HyX$#EYMnCu#q3+*YuGW3OxJ_RkG(65;aKJh=)>vV z5pe{Ekv*Y0YzNdHaF|lzi)u0ZQz%gB?3FK!ErE_dChqRmXROZ1eSLGm=Ku#c5y+Pj z{?OQVYg;z;uy8}gG|R8i4`P*zXuNG$WxO@>Z@?v$l291lqSG@QG*k{x((@%}2gi+? z=+15F3K}JQ`|Fm|jfS%eGSRZ!!sqxgOP{q!ZpQH&aH4lmstF4y2$%59O{JGcQ@G?X z%aJyI!SekR^B6?y<&!>TEYkSL1R@*Ztu@`|aU9ep#*w?&lVFlGK@D5(N@zBRc=q-* zUJL2y=`ok5)caLB^RnxmILX77t%JQ=ET}jt@SgLv>d;FVau~PZX+T8pT=Vd@eGYS%!}XR zSm7`6NUwyp)^#mMo7_@5jy&>>K4&}?0dJtuXB!wAW+QYfjO$m4pNx~M(aHceNL+%Uo&d<^c`%cLGws+h^tO8DAdVoF6nN zbJtkz2U5ctcMonJ({@MC^?;9a=@P*ddMkF`SQFbLF8+9V(eTAv83sOGs=s7crydur z^b^@GK{kEycG1%NKRHng;Rp{h4zMsB0|OB;FIOZU9n;j3UpP(|s2QZVXZKN6SvfQ; zK9t@0cdDO98u^##XpMa`ntF236SB^xvy|A)xKr)hjP(+e2js$s_< z`SVuCW!rXOj_j1u@Z0ak^nVQLO(p?XCtpXRXV6z)0 z5SwLtQ@xkJp~^Zs5ml{f8A6ZG(*)ggrZ28GO(s~tVX3+OMoyT1L5MR{EJ|G0GB&dl zUxE5A6NuzU+0De2N0+FeMAINQqV|b8ev(hn;M2jgDs!=Q!ni-zO)6sdl=^05{DMWY zFsDv`1b=Z;yzO=NM@*@W=kBlUj{ResVO|IV3_QL&rWlqbk$X6!?5D8Fl;P zhpt)`7Cl%l@{Tk%bo3qU*dcQrSGjt#g*{sD>S4a=3?F{lpIE8(9NNzX|3G#%oWtY3 z&`i_!)twj>iYX@pEYg{MF|dLAzCYX{`g>m{7QUXVb!KMeejbeJo)K^-g|H{iX|^0l zCXd?cL;F2JYlULX4A#}CmQqB+&U>R3LmDyuaiLNy8xNnmr|qD4d9ua1COK8aUE*3} zKg+xEdWgQ=XY)iJ>t#SeZf=p6{V~e>OI~a03iz>3+QaB3Q`l|lu{EVriE5Sv?XJs_b+;A#M85#EZ)eg9W*r{;)en z4eiX9_BX0%-=k7oqzO}ij3QKd#k9AX8k*{cdSJqvHu(% zs8aU>^cV{s@d!3z`%C_+FC6~bW6IX;vhT~ybf*b)G~s(PWS5JE(wbl7^Sm*ybAB2L zG&aKo=dDLg+JhrR;9;d?Vv%Wf!Ow4d0^XHt;+k&5H(p3DaF}CWu<*zw*RU;h${My@ zh%>aj=0}lUozDO}hBF-CmESk_9s2$H+L;{M54_Omg?@XNXfpa61D|!LIj~zdE{=99 zK7XbAzT1m`23Q{CZ@d|^ISf5^UieumW;4shKPq$=QVLJOIYjg*Wm#+_NX5cpzr!e?7*StQ?U6FIB}y7i7vcF=jPW_Y~WJK6=zHRCjD`=2=aHP)m9 zo~LP?Oak|mp`I?BUWg?u`=mPxV-aIxnHSKCfZ^7wRpJih6b{B^nmY!}1J z&!#=7RG~M^Vi#c#?&zWMsTdss;+iJOswMPUseBG!=pdprX%~M!yWx@E-$EqTmzRaJ zsMV6|KkYxy3xzUvJ;|iu`2_viZVF*A6d-;CW#&!RZsY?@%bt%m&Y`k8@AfYT9-UeK z-71-vYWABYuA|&EG)((mUICunZ}UNYe8S?LJ^bc`os@wj zn)puVNQaaVM~oNEW4%nq7KZDYcP<}6L)~H$`)qKN9EWT}vt($~PFh&YFR98Ypq@_R zV-|y{SATn1tEHFSzWm0hHYnA1drxJyu`wPac-io3ks$>iK@(bDEmiR^&;$WXS_BCv!M-Cb1GvqXpeFDPX z>=f!`Lgxxz2UiI;7YFYfS50TUDLf^`NYhyr+sY$FjdAG&PTKBJUxwHT@7A}3AJWJf zFeqF^<|qycb0bxNV3h(*Q z+zYVpZ8eW&f6U+UG0tF5|KcI?r{X?uKYUtDhFG>^f8N^5s|g;UDE)(2dRlA$gUAy+ z;;(zD+>7XRzydt4#Ox01KgyQlhM%aTuege#nC;U;`f6bXyw3G_L%uHn*Q*21GE{{Z zdXzvKpEyRW31Z<|C)AlZ2(<;Zb7NOMo#J^X3^v172nfd;*1)bqpTw~iA4)e1>|GAVNlR`&%^{x2?Fs|$p6I!kpX}J^`GTB#WGxF7#lrH zgx07Qgrx1)oJx+RPL&Q~(w41$sUFBAZunl?^lOVeai~hlFL5;e`8775tl<8mr!JKt zowmeAiYlh}*6pSMoof~LO!0Z<*A>F1Rw=4?HfNpaT}R3H z-tM7M;-ww{TNo}~x*7rfiK9zn)u;8x&-RSbGv-HoNAxm%D35D;Kvxg`6(%)r!0MdTrgK# zt1epu-(m+nww&eatY!Y2=>$-T|LCBzT7drJb{kOT=paMKX!yn!8U_X%7bIq3Yi-rI`K5oiDujfNIppd_Q3meBCW}@Oz{*k!I&&TM}NKECwu)_bs1yTOr z(@;RbW&~F4AAa~>`TmzQ6d1DCDAEjG9>T^|)2uy^y0@lKnDa>p6Z@<0@9;=m z4F$o!Uu^MjJKB2KoQ`u!j~!!u)?B=E3OWpm5~oTWm)su#QIc(O4!tBin%ieyx`$M-hc2|RY81+d z4dfq2u{W>A3dkNHw5u3@?qWdECy5^eT6Jxdo>C%8#LFR7BL;HeNGOJ_hYUNW?7245 zfZb@|4a#VCPI!30CzR}<%DL>CzGt1X!OHynAL->x`DxG^Ie{0W^(IU*GHwL91X23^(lH8Wx#hB}L-SUIB<1&HO+4y5Fohn7HAQ-a6U<(S+Wfbd- zeaXN`i%foLi)7*}wZT>A=3`gjD~c0J{j`mCdu_Oe!2+91{%S<_opH49^9=q}jYnECznt*;dk}Kjg5?^}5>R&>XBXI{yS81SzP00QBC-s~PsbeG z8U};ak6mUd!y7F@EMSVjm0Ak^%E|rXr7EQ-2Q1NRDTRh=ixL1(QbBEddWpvnt`{Ex-0qLx^B1IiK-<|(n;r+ zvXGhAO&#_88!3vXO1^ymbx9+_QB2Rvo>EjBs3nv1S7YTKiW57y)ub`w`T2NHMsdGMH zaQTdoAZ`f_IbNRcul%iU*3+XK@JY=l_?=4z%CEu&9WP@+%xvtW(^-rQLbscGUUzBh z*$X8u@zJ7cch)0OS=hsNKB$@sHkWUcdmwmj*Vqjyh8)D{$UUQi7rKVh=DAj5kSxy) z8_`wK+#B(5LJ;))HBP;6i;CG7qbjTwt!QiATCL5#Pj%OgnkX)}uKlq1?f#PrD+|j@ zs$;-c2oan#S|mc=7@0kwi@_iG9cc*24tfVqr#`p)@}{I>+w8qTnn^pDyJE*JRrATe z%Yp};AF>mG%<7o!5Fs%uy=czJ`GPb_^swEF@ra?oVhp3ARW8Pgjlc~51IWC3y0E4u zOgaAquxFcCSy_7wYBK}o527NBWY^c%d*1+qp-zSPH+R@@ zB2e|=67+ei?+9ZXNB+0&!HzJ*yE2_*QS*o?&V)a9O`~6)1bvO*HtUcw^V85kFVn9L zEN?9jKS?%imkTjR?&Oi&%m(E#nH*mHq}(t=F4Bm21hiRC0E@eo%1@Nq82)K&FcF8e zd0y41d0uwXa5nh>{(w8v;Kbc}ItY?^+je9BK_0d}-dOKi`i941=fmGW28SameC|ZE z%@H%^b^cGtyY7o3Jmm=j=UZVWgM&;n(qA!~Q-nXS5cZ?-(ia5Z}o&{t# zvuZKN(=o;Z$OKsBqsiS_lYe>E-X29|tIBLSjf~|{+C@~SGw-!o?Tj=*(6bi;{6PKL z3PnYd{1S7}us`i(B%UkH+0lUmGkxuqwRlNQu>ibu5)+d{8LUpa$(LxEbPu{0-K*_;@`P_qf8(0o3*1N~lv?K{LykP-aDpIQLQcs^6P zx*270cdb&(a1$RJJ6fb^wY~I<79`fi2!16Q(htQi_+|`W`xe>Rw%V<>QV-aA;^Rx6 z>v*dgkWrT+t<_GDm~pK_Fk)~XmHh9udx8(WvER-f;e=Met!t#&yTZ!(U^Im=m z%y5e<-w-`Mnrd3Jq^2c1o-_F3ZfJY2GdHuGfr!M|(0Qk{q~yJefa~qY{@{L*3t_f8 zzw2#9XMPG0Ub|F9M(S&YkMQNL^ZyL&Su=_du=dKv>O~~>c^iKpcwr3lg?guAXi>3z zi#K5#em_F;+bEehLq(0HO89OIZ@n*vT)1e!n}bF;E}chhyAIX`w{Z6ip+cV^O0#TX zs(5gr&4CuepyMmco#+X|O!)<*B_(Y{iBdMI6!5Z&DS) zL7&Hb2A{tUt$Nsko)#On1K30e#7K1*D`?t~W@pa*fmY&!w3BathZVyZfQOE}`W85L zdv&M;-pZXQf#X(8!yk5Dl<5|rj$^=#E0|%w3sS>pcDU?+B;?h zV`A5@@DgRqC=|iK)gM$}U!Mn=5GD!uUW3vFfsHIqe?pHs?7UUG0gB0E9d_+hs=c(I zb?AMIB&bjdrEKFR8pP*9l%XSRl8QQUa?fpk{mQYjKBV$nDMH@GT0d=FUZ67Z+6W1h z=Yv*{y*e@B`V3dd!qn%8n3?;Izp4H*QLCzu#JLs_S6@Z#N@14};Fj^X6gPz`)ZEp*$c?9yUcow+<_9b%X$zo`Kf}v{I6A8xCIb@^ z*r|*(giYI}cTMK~K0UHQX>4OF_5N4pwQ_6TXfQAHrdvGN<*p1t=GbLdAPciDfBR0|KsI2vbPK<6(vm0rlFt=41hab{uECIvJD=Xim%{2mF7cqml8)SG2W}wWa}xBU;q6y;J@vd{$n4L zMSk)Bp8q~6PBj4%M^yQa(2pclGp2}DT;kuah-L1LGkK34y_{LY{zr5kw0|$T`03OC zZ{ET`kL16+ivRW?{)e>x5=Z=}jsME`zoh+_IO0DZ$^R*=`0q3x%E+{qb>bd_ngroS zazt8P>|D=jPfTmHu%}pb{hk`A`B4T4m`)TJ6ssk!b8WNh`Nx0^5HWr<3I{9wQYl0-EyoJKg)FX{^p{q|k>;uYi{jW|&d4g`wEd zX1M(TI9`eaV5YN%h)!Dv2GFXTOr1~>LsI4XQV}rf;k{#zRxL9gR6W=Q(@Ngg57ACu{r!b=C5iO;9=uV6&vf2 z?ov7^eGizt#AI ztY^+gLGBcQH~^pRh`f!Jqxu{Iu#x@_K;^;abM}#2s-wgNAAC80!}~(h*wn^5G^}80 zQV^rF(xGd#kn(|9@jQLgwk)IS14xAX@_AGJ7<}Z%rw2*e=6fOb^zoQdtAa^2ON|B1 zGZBY{mT;souHUjoJ8@{`C`C$feyeV z1WS2PlEjC~W5o;(aN@1xo^^Q6geY%VxeOF=h>Qyc4 zo|*efEynjD)b;%Y6WPMSL-78E`#oQA3xD;&ypreaswAXlZLbkyrAf%`Kq`)A1J6+~ zjprmwP9}|g(V@K_cp^G*yH3zm@V(oALE+m1p2y5!;}4dt*&sJu()bu5hifbK&0ic3 zs&y`3=H;#60+b8Vw z6Xgj4^!^I(?TmU(_eidS=JrjQ*q^Ig&bG_qh6A6Qm*2}=PR2>qt=157PqL-GMYyfn zm?2gpE7&%BIr!F{AwNHRE&Zf{33W`K_gBZ*Osc^{n1)OBTx{;HmxS{GEyMNJ>d+RH zk#VF@{Wh7oX1lpe;;bPwdq(v^zT-jEg-oRf(UQ;XruSkX63_%Yw9_QU=v_tj=IS;*Em-r7++8oE{w| zcZ(=$#^%iK3==Ln2LS$;w;Z%b>IB<)`?$~hWH6<=aBmJ=t+)+|J!t&&9L#{r8#SL1 z-UMP%F?SRyP0n_3$%=u~4a-aJ$_NSDK7%1!Pb7a_Qbsgv((JhGQdizxlg~u|!nvIM zS!wR4(XHB=yKAF#F?aepob-myZD-D4+;1bP=d$Yw3XgyX0q!P3nk)jvi4I|1*O7%7 zryZ#;2gO{jYAU9+h%p3}p8h&*jWtXX%n)-k9hcr%>15R~pN%*m;V}dhX>EEJW&DFu z*djVPh#%_HOSnppsGqZ*?)5@6KG+x^s2p3rtf8q`=PIeQ0Uma z)B*7sHkAMo9oUfH%bX`UcGnAFfX#$VPA6{Gi4LpRRnm~2%##Cl3_1**1|~q6*TLG8 zB*?jcq-k^86W^fL-xf4wh}jqeNG~n@ zeA5N~nJ2=<08bU7sHn6ZKx~q=-Uol-b$7hVC^J9pvN7rLYI{2=+j!B} z{g2mx^XTDpHSt$z22M_~LQxa)!`UCEF2ik_1%m+XnKZ&=+&&MPXmqAm821~f_%L7s z`8dH~vSQwIv&N+AL^tHJ9*zJE* zA;E1ZI0Qm)CJ7u=2A#Nq|C5UC6yI>-D{Km%&l!4#>sx=4qbl{V!&kU2pzIKr2%tYNW(6NUuo+ zTV5OAIj#N9V&YRls#8 z*IR3j_i$1qO7g}E^7+6B&g-5~JHI=%tvWn*iwrE~-YzFHd)P{U(7re=@FO9FF*7rl zDazZ)wcgC()|K9S8HIyRQ|TT{O6NAEwB4k0m?&h|)L?QwF5&>uVmxC!`SV=v9sf1R z-F<=%OmVyvtXXKSpaKx#a&4(8kB~$btorxiCLmh_NV_?au11-Z`rFL8iZmfVK;wmy zOb3$7?;troJz4wA2Bx=IPfn8(f)&Y6KrU+ygMv(iI0w+DhALt%DpI+qH-b!DApUv& z_&&RmOt41RtB_02xdy02PRtrd&Wv;*sptxgx^4yE_p)|@*M^(tU!AvCizb<$h3-qHL~{oo7`g+zl!FT%I9LE# zrt2C^$oYFt8>sp`C46NQ5VN5bXCx*XTEUh*jT#P)aIu5RxZMvPt8bRoFP2mzggMZN z4#j+~KMsqkwg4KFMZd#lKZmv})we$1Xy79tB(1u#`L?Ic`GgC=?T5#gC$~ws zPMrx5e174dHirR<^e;9!9k}&jm(z9k;Vwgh{`1gj_CdF%gXYe8^SR&1Qv5?Ho8It4 zlV7INEW^0Nv%M1~bzD+QfSSy{ua3z_XFjqTN?)|;Ph^bS&yo%dVhS~#!4{)D(vRt( zYYJK0lCnE81Pj|jH|_OmJoJX|seGqsHj*3j`pQNt`+)5?TYpG!a~LPxzIuVtQL+1{ z)gcOTbY!>iW+gr735X#zmUW1p+xM0mizo>oQE7cQ8qIH)M@&u(!JOj~w@AOSurMS{ zOPYU~kA0Tf@?rwdPKLqZ^EYV*LzqlpUr%`CnC6oT-Se}n!v~2&k$EFF-M1Aov@r{y zlO}CqQv0LBMt3a)c(8(I$za8jKlQ<$rnf~Z z5RV6QZM5I1e{Xh5s;zg%w_Obug(?_mZ;)cb{46OdEm@F=$gvEU!utZ%R>F}b=wosg zus8f#oBqm~m{iUG;^#MWB#NT3O*-xd_&X|(?yI9tAs_+fbYW6sSl8(!fGZm-$=>B= zKgzou=V1}Jb{=+q=60adt5>q~IbJ3||2Hh)r*&|e==~-4NMf&>NBq1+UwmlSI|jol z2VdVuA`ib=d)tWEg+{+V3+*WV$%`fS@|m0g5xYJ^8ocC0KV8@!sll@(EiXYJs<;4k zk7PeUI(z#YS5)j=d(mf#ZvIw|JMY_sSIT@&7IOHq6%wtxvGGDhN?MlaO@#jy9DcEA z!oqMBGo&jb2n^x)B_~Ob*)LC47`0}C8nfQDzqR)q6jLZu$gOe%JeIh^n;w=F6t)>* z%G?v9Xw=!BapKIqohLhE;!B3kw+09$SG<0sDf*aREkRaJoJ}SPB4vxyT~@I}Q;ahh zAu<@sqi#ROzb8KcZ6zCOb?xTGDyMDjjCc*us~!;M#D%RV!z-Q+I2eiqnaWjpjK(Vx zZ~Yo8;}W}T5qj@K7l@TcjDWxdR_fOP3mj#iiT6t9*C6YteZEoi-yr@WgZ2_*IWt)A z(|w1Ogt_R~9T1-U+sEm);R5dWW)og=tDX99rv(~8c(jZHE?>DAk#ue_=2djZkACY) z$fE~XuT-lh_{=OVPd*9<8spJ7)SZricuThZWz6K=opi`P5V=NOLvt#}U=%&wVgb4U z`<6qe=e6j#XGX|a?82WG-Ld84$^Yha$AX$-9+nG8 z{L3sRH98~(FmTmllTwQtEnKfU!&MQrQxs-xiEEf?BxM8&AO`T7Q-bl`Qkxn1+cW&$JRY5%_QjLmzr+Xl$BSlPav9LCe*`1gVMU#RK_BR?r*a zh45w5f^Deeb^X;9fl9>PSW4gECcy&o>!K46cH=|dps5RduuxwM(kHKzFavV<>n|0C z4j424QCQ(k)~Lpkbo97SYWc0f#TQ0V27QK?{mHUEV6Nv-R@`iX+Tlv(_X{N6mAMVW znW+A3w8lPHW~8gRg9rLdDQW?HKmp~@sM30#y2FH=>TDZd8!M5~pd$exaR?}|zA90e zJ_r$WtZ=tZzioFyQWsqhLhD0@F`(ciF|D%EI!r5^5Zo$L&dZ)a%BkIZo6W#N##{V5`fvoZWBwGIy(D8q!{V(L}Kgbrj!~WIuACmTe zAz%MHpR9IEJm$$3oK~&N`6Smz{26pDzs$Mvkzi7r@s4Vw*A z1HvGHz!Pb8Kj1TNC00JRfc7t^vwR%0)Y|Z6haF7B0_i}*aI@?-^*`G3Gwn!{Q zOMTz^Hzb()BTi4&=$g>q-F4DrqHmcq?K>9r#TXu!Je$9B zEyz2V=-HV#Sc$hE+Up%E>9oh5g%`<|!_ zV}D`$g%^HzGSfpAZ~OeRRZfG(ohJ4gM*{@4J`bhvIpAZRuh3IXymJVk6Er-$DVxo? zcVwi`dwcUzWD9U!hc6k^^DY){{DIe07LbX@0ZMqL@>4m5VdN>tf#+_nL8T4LnqrG- z-MNz3|L_wf)zBwH!}f160W8C$qpof8mNOZ=Vwo&ZEE2wbx2QND$8BF>a1nj%T1`lL zpy+kFH0ltE;~AZ@ISz58x6`s-k=* zQc}`^i%NivVF9^baLC=H0q&4|WeKMwoTT1f#7oB!;@IGI%oPnt%LYV6#&U2GRi$9X+?Qy5$Qnyh(cd2Fw;? zna8%~8ZlgNewr%Y0qm1phPTGe4GS9^-WkA|Qhnn10(h6hC+n=+2$=a7ILWhszrQgm zo*Hhl8`>=|=+RST`6X}F8x5@fESTw|Lx+*-L-JqNfqvBm93w1HzZlCW9Q9HZL)a}YvZ}uk~ zEMoI)Hx{kj)wC4h8#OqhEs6s-i#$JHU=A%T@L8Zt*Sm6~gm_EPYR~KlHO$k`%>DXc zp61bdpWYKGhMS0kE0f-HA^TgonVR=6;wb&}!kmjQyumD?{V5J@w9bmZ2~`ULXX8zZ z5zm5%*Gn8DrF%AyNk;xf1uP#Rdh2BOp!E?Fe8`v9xApm{ITk?Y-DZ((B$+W8zx^8xP-PjoKk zE5bM#Uv|2JzWo%<{CCX)7B%=usk~TtNi!jEL@-CboRIp^!{v>?;Dzg@ZtsJ+;=Bxl zdTXN!1XlE+=tI>ZAV-zCE8&P*&!ghY6=59Vhu*zCBqah^K^ofB|jgrkF&Vr z>m4iYH_x%ia8KTe-PIWEWt?5lk;z!Db`6-3%fTeMEP6kfiNOISpm_UnIAs-pmCW4- z6ISu2ZtDucMjULS5NrU{>idpIII}c~n+XV%sZ38(6^dU_`etw+qY=4oITQkOYYxn< z*CHlOk6FLH3N;N)6(?7PG+;n!$p9UyT(j?WoaoKRxWXZ+?2^#_LiN?J#zSZgqOiui zL0l}8lONjBkcL_Lc+!YJj^GN+J}d`pzQ$Lf*x0iN%L(EXijeE`X3dXd+maWvC#k{{ z>wt1n{1&RLDjX74zvZst0+EdC4drHDowVA%AM_)1LtQwE1bQ?sQyi)+{ZNWhSJw8E;<5z;8-Irn3`LtKVZ^AF8eZ1418CHoQsvoUX2S&sH|qGkkH+ z-BSPd(H5+^1cd-fkk<|vd@Z*Cvfdla4m@*MK`}m9^5IB9PJV5(Dpu;K-5w&81KFy@a*LOfhY0NKk}{9%1SS+)Iq{mQ%3 zg%f(2Q+cNQtC8+>biIrmMK*Icy78bruCJqVX zIXU`}BJwiGBxX|PAlEY)+TS)rr4jAT2u#5zACHXSj*s3q9Au+2i~{Zpe}~*srt8I9 z&mzcZ!BwwY;EpywluH+Lp@`etQ-|yYp9?X(y1_N(F>k42v76D0_sPATNA{HG10&fx zEpP6y)E|IQs1F25v9Ua`!dpb*u>@LYTwL6^-%p&8&OeEy0l;$}^$x199K0E}_uZrE zcI7e+C-N9lHqIj#Xm#<*abD~@#e4_YWjhGXO;Bw5)Jzhhp`jtuK6piMHDru4%fiA| z<8{WTD2f)zrlAS(SV%;rB*~H2Kt^grHrM{~t**3HO^Aq%i7DAzwP)}h_!garFp~17 zOh?TJAW6{3q&3eUCa|F&ATbHqS4!~B?l(1mld>JBYX#kpVN`490|-{0Xho|Dyl3k$ z<81K)o9v2nkmjvinl$LRyI{M$$47b@h=o4foG4wtllv2fHl^zdDaJ{z@0yoHLjUy{ zTavR0VbrJFHg2hy4$$Jm#>$>H;fF9bb~c(e?ZVkmT*+HMN)@_LsJ;N$!a|me@1AtM zMY!Y$*m637W~U!pQD0J^dtfmhw{hLrRXzX+b@0=5`}rGa#^*Ci`JSGlM`!IS!MeuA zs#1BACv7iZeGXYg9NqwcJG9Xa*mFFTo}WzAz7vJ7Y1iqc_p+{djL0u~DLL?Xcg?>b zh+Ib1UOefEvD%8$wH)Du9~4zC9Ks)Hc7PC_t*F*3+%ZU~zhihcl$bNrbi^=& zmhfb+Z4Pl-HzfK1-Xam^#5_z9_+XzF?bG-&!>W#sF)}hm-n>gx0SG69{VAQN&X!zW zTE|HDySH#EW1~!+#8VV~_wmw8lK#bMqo?H(GC+yKYBaaVED7n}?5LYoqE#|+CG(0A z_h~rir&qZ?OU_`GIOU6J6%3Twz&e?6K6V9iS`$GO&0wj(OQNFxyN~7v4-lPu+{3yxgk>H1s-(EZ}ZCpo~$+kp2==pJw}S20eQHdYG^Qis9Zf4Lk`y((@#y{ zD$3ORWuy$<7Kkn5q>JqRFzxg-ke*@oElK4CJ}!(#j;0acs#}ML!4Eav66oas-e8RB z^3s|~Ez!n$(zmO`IXA+dPG5YG8>r$~YcE)N=VtU-<1rnwpLJUAe0tz>6Od{?j)VXg z2WdK46B2bOv=AY`A)bDlRymTl#@3DxcoUh^s{rw6=2adQ70V_funT+I-xh6RSlrT< zIVHcq)DrYPIDKH3PVHI_5E4}I;;V50UCDd_P3Rrap`n$u2A_d`YuNI{OdQ}~h&jJ9 z=IhZi&AZLksGR%4_8Jgs7DceyPG;a7b2qU^_j{APf-=MX8IkJo7ZbwGB7jHnJrSXS zU+!qH;-uFYyd|CTy)ZS7mOJo}mXQlu&1Hggc;3o+Siez1kCZfPT%Pu1f72Y?Yb}DR z;vF0|WQj0vmOmA+6t+=<8d?g+0lCHT>1cLz-%rLcx~E-B#+*deAf@Uv#O5a~qAra>W{N8cl_Y+*(mb0a9@P|F=^+_iqgUQ!D>dn*S6rX+U)~iIvvaWG?s~zOlBYf7+W|TJ2 zPhu$;D(FOzqX(Q^N-I*&le!oor%&^1^o9y18=-%qh%=CT0R=WfQXkL~@R^MBwS?p; zjc4O7ASL=o&>zh>({I1kdtXebHb`btj+|=1*=1o4lb@T=c>h>&R2WoGn1PfYqQGoQ z+Z%dfYQfHUtGX|GegaA2W&A8@T3WW*6jHc(7UWFKA_-Mz0kOJTig^s&o~@NJL1a#_ zV~7tfA@n$oFITMqM~w+6_7*F2Kot-qE5_!oE9$G3(KFK~U_PTCP=W{tz@^pA*6j1^ zUtj#&RsrqXxj?uNh>5~&IXG-~pC)p$MB3!?fig14kb^I&pGdK9Q1d$jyrFbEG;Gp? z;Tn%NAxte-tpi#B$ce?Pf#67aXmpq(0U#yLUNDl4i#~#^ZD3?641izs*hB+#_gak5 z@xT-=Ddj-y1#S9!pnC&&MDc*2iH5rA*39{{aJV3)yOI;73J`lx`blmKA8@`jl@-F6 zpw;xhSbmTFJD>{6by;uaF&Y0BKXaGMgKW!u@3sw1?YHIt8>bkbHky%9#BqJ>#Q)EQ za>d5RMK61HDkD(UZluh{6E}$HU(Rnt09zKS0Bt0TvuTs6Iz6SQRa4FfqK6xNu#w=Q z2mx`z(k!rUwqH))zca%O$V*OZ-zX%=$pAZ_(1Mi>3}8+M<0f9>XNF0yirXw&7sTNY z_o#UVRvoub01CYs>1&SsDVy2AnBM;+=(IvmW_*X`bGckl1CXvwj>}an-Sd zbYoyvy1mJxM-GP+3b2Km@OyXYsbk}L)0^H0Dhh%4-d-|dtl|np!@Padec-1RUbZy- zb}2#wz#$z>h>i|)&_F6HaTVE!33Uvl2fK5UJl@q8z@Qx?gn-HP|K$4h-d*2bJiOhx zNlVv$n%=V!$~Sh6>y2L|2Xo+zNwMBRm6{mkccQ0Rgji8rc3O&l;3^R z;5w=mm-GM&ifFkx!1LNnlfi8sV%7Cksc1ca4gz?nEgAFN=+vSdL#egrjYskfwfG^l zfJ(%faY)w)g8ot^%lP4nSpD#e!99zy`+4(m&0eSIKMup}CbZq5I013AGmArdMvHrg zI>!!r4Zo}7yxfi=JG(icVjqN?cdOwN0y+?D`*)?HMF0hdE5ga?5LGnxhFF^$c3k%H zuBjLVuxOzNE!!C~Xc*5^nbPY-BC?#{kC{4NS7{MdXXX^(m@5J1rQJfX-btY1f&Kmw9t{> zrArY+YN#q*I!JF)Lk|#0NJ7HfocDeAoioP0W4!zBcgOwb{lVBHu-D#u?X}is&-t5k zW?pUO)sry-o_K3q@99|mo_uMGLf|!jwb0Oe?lX^ag9-H6O5oTm-KQ~J9r^l}mZGT7 zr!Mq+3qJSFZ7eV+Q>`o0!%Ff}E^IZhca^R6Qh#oo%ZRrk zXSlsLQw$NIcy^#sX$=Ay{tm^+ z;ioy%zWlj)TU3Inzd%R=3>UfH%eL$p^XnTGi;~30xA60R94w)=S`GJR>OdT&IaiMS zPRs#a#Z0+QG?4*yk*;{I4vMXj7gSeT!{UZx94vfy520-@`-gHnl)1-n=~B*>o39U3 z3kNeB#=NJ97pX))&v}tJt*Jl<;*<$I^&;lAAUR#L^%H=-unun6$9E1B&?$Bw0cq;H zp*{qr=LU6w_s+f0vw>@rtb89b@l3uwcdD1pXEF1M{O!zMaTvI`O)h!kz0`hQRGrIA z0wssiqp78ldz;L9*>dmQorvz6_-c67D;*Vht!v!iKkv@%rQ0*Kur+wCa~#zOqBQOC zeBC5~LY`<~bu4J406lR~;>(u(R`5j8!&abt^HfmxRts7M4QE{Zh*k)BfvXlR&jtir3y)5SVd@!a-}O49ig zYJ9S?MlP!fk0zQuPa9e39p@?o9{eJ^o9lK*h7zJj_O6s>aYG<$4yj1s62$Dx@e4T zO+Lwa?FufI1S?V#21lVy!u3EEl=jo*;jO$m?4sb1sj+=$gA~y%9zYW&BqRxt27sP6 z0x;KWIq^%JWL>Wky7YN-$cQtaPKFQ) z&@V^i%4Tp)Q6*c^2&sn^khIwphP6~~Np3{og~_D8TL_!Sam$veo}MkrtAn<=Brdyg zFdvx!I{2?&4WcVnUX0DmyoJDo+4v0o?pF=~#1nm0Fkt(9A3HcIUWwq?BcV?q2^SV2 zBuM$O_;7|ki{Aq*)KU1E8QIhNYeXSD%+NLhe1n%7@Ejby2F9sGI>vCDjy39-OYk-le(hX?sM&AXb^7>+m+%<&Z*k8ZTk9OEI4t^o?%R>=8t>~Dt zhTaRHoUIx*Q@6ud9fQ;hc-JbtA;6~rJSWl z8a-&Y-V&E9p##_{BRl)JI#gyH`^qxfoF9xX{D@CxbQpUprVjm3ySn8Mifp(G*h^&@vZ#Jk`E4%uysYG5 z%qqkZaN0nahQe5QaL~q#AYf9KCGDi`_E=?#wBr5#TaK2$&14nFd?7nP0F>oPQ?SCy zCXk{)UDb-L4A_d9aUXxEslgy>ZtR|5TJPeQtriA*wfx~mt?_4f{UIr@&C9j!OK(5g z97t7QJ!3wQbru0Wj$fi;W! zGe~(%L;3usl(DT0;t@~FqMti({{e%FPYiXs_f8vqm7j{!7v~i~_d|UmlMX9J4{O%z z>H6yS!P5DlSK4F4^TJuGi;{a!&#xvVWpTv{Y7dSU1cyO56l}55TgX)n$|=Zkb;%zg z1x>wxBeGOGx$_B!D^EWUP|f28m4|D25Riwxv%LdRjds z?Fl(AS~^X1p<6IcL~C~s0o%0hncdDi^eW<)7x0D&qC`CXtMcYDrnjow`w z1fu*De7Isas2avtd#qNuPr~rE3<7A(C>kH-!1)vvWzI{S8`|=f`t@ZJ4)uO)sM-X# zm1*&8m?i*fA)>nYr>*t(tTofZ;`91TE^I8rd3(>an_>Wd_SK(alFGe#a{r*0+S|bk z$^tn5Gu#r{_Zir3n}4iHh6q!tk#_=rkap|DexMLs~ya-JYV#vsfv=icfXf72R}lkq!l zjjdmz?eSob$>8c36_PCp=hkISUsknBX$L4DD40Xm)2QC}o<&A$@4&DDWdwc8er~YuA9d?SiC>L!XHthHg9#6-z22OAgKL)? z6mi?$$};Kc>T5tfz~)=^tk32HNryoSS+;XBv6lRbn|qm|rwkdA4oVm9{nPa3&%fxH z!kWLD2(48r!MsxT=jvVM-^W%%aJoe-nxbdV7$ndA+#Uk%`_W1>cNW%LF9Q`UE1!RR z!@1(n<^$BB-#lAeqbI5Ut+~zhRgwTC9P|Y>%wL~COih{C$|LT zf+L(nC4@<f{*ZsK*hl=3>w_i}tSrv@=OiPR0ebh58^dx$1i4?1U~+9wDaJ&*(H0O6)JopjEPW8TNAVIFkQtfVxJ1CdkHrdwh;7h#Ws3^`QM&2Jks zq1=KLY=fQsR0p;JqtDVLI6v^0BfehE&;U)Qj)lq`Ub&#fP=LFd`oRm5)AzXk^Q)<^94)0o51zLK5>ut1*v`+`B!u63f1gU-*?m-hwR# z=#9l$+*2yw81OnKG{^XAct3J$i)Yf^nDEbUzR3XC3#to0$a}ciHYIvaLHqu6L5^@Hl#gRHwPVtz_~ zWN3|}m2V{%?9F{!Yl^C>S6@Ya=%GKL&Fnu4UthHUo0Q^T;v~5^>fed8zdKI;xANoP z`yJ8YEeXoF@JLqOChPh!sDvcm(xosP!&^J?7}QMGzp0@qn=NfB(C<`2nwqI#8F-Ob z2pH@mWm+wT036!J#qB!DI8pABcqP23XB%}R>q3eFFkR%a#f7FWwOx;&xW6SaLeZt@ z7xldV)3E-g_hr=L{*47Sr|Y1TukF(jdKb|NZ+bsb`JCS^Br9!OC)NZ!Cl|*7q$)`F0KVi)C$TxxXf{hA!H`i;Bm<~|S zNg1vm*FbE%Mes4e@~;KxEdWUau%m|6Goq7x|-a%4M=e ze*#&WFA|D)rK=)HwW0xcNn)Q%-VXzAz=$cxEp1iWW8JYbE(}N#jgeQSUt-78Sg>3WSHF&mb-fl&T(>fu%|

r47mX)j(zh`6rldG>gY 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 b4ng^>>?5-$0FVIr3z4Rpu4?7O=kNX(=;r5d literal 0 HcmV?d00001 diff --git a/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_AddMembersBottomSheetTest_results_with_query_in_dark_mode.png b/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_AddMembersBottomSheetTest_results_with_query_in_dark_mode.png new file mode 100644 index 0000000000000000000000000000000000000000..20c19b6986944736158fc20d6faa3559a402c666 GIT binary patch literal 29991 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 H=EMI23$tw6 literal 0 HcmV?d00001 diff --git a/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_AddMembersBottomSheetTest_results_with_selection_in_dark_mode.png b/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_AddMembersBottomSheetTest_results_with_selection_in_dark_mode.png new file mode 100644 index 0000000000000000000000000000000000000000..2499341a9141d5f0b031d9fb1f991bac1d709759 GIT binary patch literal 31303 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 P29c9`Az3JH^x>ZXS3Kym literal 0 HcmV?d00001 diff --git a/stream-chat-android-previewdata/src/main/kotlin/io/getstream/chat/android/previewdata/PreviewUserData.kt b/stream-chat-android-previewdata/src/main/kotlin/io/getstream/chat/android/previewdata/PreviewUserData.kt index 01c1ea71557..495e215963c 100644 --- a/stream-chat-android-previewdata/src/main/kotlin/io/getstream/chat/android/previewdata/PreviewUserData.kt +++ b/stream-chat-android-previewdata/src/main/kotlin/io/getstream/chat/android/previewdata/PreviewUserData.kt @@ -52,7 +52,7 @@ public object PreviewUserData { image = "https://vignette.wikia.nocookie.net/starwars/images/4/48/Chewbacca_TLJ.png", ) - private val user6: User = User( + public val user6: User = User( id = "c-3po", name = "C-3PO", image = "https://vignette.wikia.nocookie.net/starwars/images/3/3f/C-3PO_TLJ_Card_Trader_Award_Card.png", diff --git a/stream-chat-android-ui-common/api/stream-chat-android-ui-common.api b/stream-chat-android-ui-common/api/stream-chat-android-ui-common.api index f494621c2d1..092522ba7ef 100644 --- a/stream-chat-android-ui-common/api/stream-chat-android-ui-common.api +++ b/stream-chat-android-ui-common/api/stream-chat-android-ui-common.api @@ -44,9 +44,9 @@ public final class io/getstream/chat/android/ui/common/feature/channel/attachmen public abstract interface class io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewAction { } -public final class io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewAction$ConfirmClick : io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewAction { +public final class io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewAction$LoadMore : io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewAction { public static final field $stable I - public static final field INSTANCE Lio/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewAction$ConfirmClick; + public static final field INSTANCE Lio/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewAction$LoadMore; public fun equals (Ljava/lang/Object;)Z public fun hashCode ()I public fun toString ()Ljava/lang/String; @@ -76,17 +76,6 @@ public final class io/getstream/chat/android/ui/common/feature/channel/info/AddM public fun toString ()Ljava/lang/String; } -public abstract interface class io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewEvent { -} - -public final class io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewEvent$MembersAdded : io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewEvent { - public static final field $stable I - public static final field INSTANCE Lio/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewEvent$MembersAdded; - public fun equals (Ljava/lang/Object;)Z - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - public abstract interface class io/getstream/chat/android/ui/common/feature/channel/info/ChannelInfoMemberViewAction { } @@ -1645,20 +1634,27 @@ public final class io/getstream/chat/android/ui/common/state/channel/attachments public final class io/getstream/chat/android/ui/common/state/channel/info/AddMembersViewState { public static final field $stable I public fun ()V - public fun (ZLjava/lang/String;Ljava/util/List;Ljava/util/List;)V - public synthetic fun (ZLjava/lang/String;Ljava/util/List;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun (ZZLjava/lang/String;Ljava/util/List;Ljava/util/Set;Ljava/util/Set;)V + public synthetic fun (ZZLjava/lang/String;Ljava/util/List;Ljava/util/Set;Ljava/util/Set;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Z - public final fun component2 ()Ljava/lang/String; - public final fun component3 ()Ljava/util/List; + public final fun component2 ()Z + public final fun component3 ()Ljava/lang/String; public final fun component4 ()Ljava/util/List; - public final fun copy (ZLjava/lang/String;Ljava/util/List;Ljava/util/List;)Lio/getstream/chat/android/ui/common/state/channel/info/AddMembersViewState; - public static synthetic fun copy$default (Lio/getstream/chat/android/ui/common/state/channel/info/AddMembersViewState;ZLjava/lang/String;Ljava/util/List;Ljava/util/List;ILjava/lang/Object;)Lio/getstream/chat/android/ui/common/state/channel/info/AddMembersViewState; + public final fun component5 ()Ljava/util/Set; + public final fun component6 ()Ljava/util/Set; + public final fun copy (ZZLjava/lang/String;Ljava/util/List;Ljava/util/Set;Ljava/util/Set;)Lio/getstream/chat/android/ui/common/state/channel/info/AddMembersViewState; + public static synthetic fun copy$default (Lio/getstream/chat/android/ui/common/state/channel/info/AddMembersViewState;ZZLjava/lang/String;Ljava/util/List;Ljava/util/Set;Ljava/util/Set;ILjava/lang/Object;)Lio/getstream/chat/android/ui/common/state/channel/info/AddMembersViewState; public fun equals (Ljava/lang/Object;)Z + public final fun getLoadedMemberIds ()Ljava/util/Set; public final fun getQuery ()Ljava/lang/String; public final fun getSearchResult ()Ljava/util/List; + public final fun getSelectedUserIds ()Ljava/util/Set; public final fun getSelectedUsers ()Ljava/util/List; public fun hashCode ()I + public final fun isAlreadyMember (Lio/getstream/chat/android/models/User;)Z public final fun isLoading ()Z + public final fun isLoadingMore ()Z + public final fun isSelected (Lio/getstream/chat/android/models/User;)Z public fun toString ()Ljava/lang/String; } diff --git a/stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewAction.kt b/stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewAction.kt index 91412574c50..1e6ad6f9a5e 100644 --- a/stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewAction.kt +++ b/stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewAction.kt @@ -31,14 +31,14 @@ public sealed interface AddMembersViewAction { public data class QueryChanged(val query: String) : AddMembersViewAction /** - * Represents a click on a user in the search results. + * Represents a click on a user in the search results, toggling their selection. * * @param user The user that was clicked. */ public data class UserClick(val user: User) : AddMembersViewAction /** - * Represents a click on the confirm button to add the selected members. + * Requests the next page of search results to be loaded and appended to the current list. */ - public data object ConfirmClick : AddMembersViewAction + public data object LoadMore : AddMembersViewAction } diff --git a/stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewController.kt b/stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewController.kt index 10cd7fd1450..229585559ef 100644 --- a/stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewController.kt +++ b/stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewController.kt @@ -18,27 +18,21 @@ package io.getstream.chat.android.ui.common.feature.channel.info import io.getstream.chat.android.client.ChatClient import io.getstream.chat.android.client.api.models.QueryUsersRequest -import io.getstream.chat.android.client.api.state.watchChannelAsState import io.getstream.chat.android.client.channel.state.ChannelState -import io.getstream.chat.android.client.query.AddMembersParams import io.getstream.chat.android.core.internal.InternalStreamChatApi import io.getstream.chat.android.models.Filters import io.getstream.chat.android.models.Member -import io.getstream.chat.android.models.MemberData import io.getstream.chat.android.models.querysort.QuerySortByField import io.getstream.chat.android.ui.common.state.channel.info.AddMembersViewState import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.FlowPreview import kotlinx.coroutines.flow.Flow -import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.MutableStateFlow -import kotlinx.coroutines.flow.SharedFlow import kotlinx.coroutines.flow.StateFlow -import kotlinx.coroutines.flow.asSharedFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.debounce import kotlinx.coroutines.flow.distinctUntilChanged -import kotlinx.coroutines.flow.filterNotNull -import kotlinx.coroutines.flow.firstOrNull import kotlinx.coroutines.flow.flatMapLatest import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.map @@ -47,25 +41,24 @@ import kotlinx.coroutines.flow.update import kotlinx.coroutines.launch /** - * Controller responsible for managing the state and events related to adding members to a channel. + * Controller responsible for managing the state and actions related to adding members to a channel. * - * It provides functionality to search for users, select them, and add them as members to the channel. + * It provides functionality to search for users, select/deselect them, and paginate results. + * Adding the selected members to the channel is delegated to the parent (e.g. [ChannelInfoViewController]). * - * @param cid The unique identifier of the channel. * @param scope The [CoroutineScope] used for launching coroutines. - * @param resultLimit The maximum number of search results to return. + * @param resultLimit The maximum number of search results per page. * @param chatClient The [ChatClient] instance used for interacting with the chat API. - * @param channelState A [Flow] representing the state of the channel. + * @param channelState A [Flow] representing the live state of the channel, used to keep track of + * current members reactively so that the list remains accurate when the sheet is re-opened. */ +@OptIn(ExperimentalCoroutinesApi::class, FlowPreview::class) @InternalStreamChatApi public class AddMembersViewController( - private val cid: String, private val scope: CoroutineScope, private val resultLimit: Int = DEFAULT_RESULT_LIMIT, private val chatClient: ChatClient = ChatClient.instance(), - channelState: Flow = chatClient - .watchChannelAsState(cid = cid, messageLimit = 0, coroutineScope = scope) - .filterNotNull(), + channelState: Flow, ) { private val channelMembers = channelState.flatMapLatest { it.members } @@ -77,29 +70,20 @@ public class AddMembersViewController( */ public val state: StateFlow = _state.asStateFlow() - private val _events = MutableSharedFlow(extraBufferCapacity = 1) - - /** - * A [SharedFlow] that emits one-shot events related to the "Add Members" view. - */ - public val events: SharedFlow = _events.asSharedFlow() - init { + // Keep loadedMemberIds in sync with the live channel member list. + channelMembers + .map { members -> members.map(Member::getUserId).toSet() } + .distinctUntilChanged() + .onEach { memberIds -> _state.update { it.copy(loadedMemberIds = memberIds) } } + .launchIn(scope) + + // Re-run search whenever the query changes, with debounce. _state .map { it.query } .debounce(TYPING_DEBOUNCE_TIMEOUT_MS) .distinctUntilChanged() - .onEach { query -> - _state.update { it.copy(isLoading = true) } - val channelMemberIds = (channelMembers.firstOrNull() ?: emptyList()) - .map(Member::getUserId) - chatClient.queryUsers(query.toRequest()) - .await() - .onSuccess { users -> - val searchResult = users.filterNot { it.id in channelMemberIds } - _state.update { it.copy(isLoading = false, searchResult = searchResult) } - } - } + .onEach { query -> searchUsers(query) } .launchIn(scope) } @@ -116,43 +100,62 @@ public class AddMembersViewController( is AddMembersViewAction.UserClick -> { _state.update { currentState -> - val user = action.user - val isSelected = currentState.selectedUsers.contains(user) - val newSelectedUsers = if (isSelected) { - currentState.selectedUsers - user + val userId = action.user.id + val newSelectedIds = if (userId in currentState.selectedUserIds) { + currentState.selectedUserIds - userId } else { - currentState.selectedUsers + user + currentState.selectedUserIds + userId } - currentState.copy(selectedUsers = newSelectedUsers) + currentState.copy(selectedUserIds = newSelectedIds) } } - is AddMembersViewAction.ConfirmClick -> { - _state.update { it.copy(isLoading = true) } - scope.launch { - val params = AddMembersParams( - members = _state.value.selectedUsers.map { user -> MemberData(user.id) }, - systemMessage = null, - ) - chatClient - .channel(cid) - .addMembers(params) - .await() - .onSuccess { _events.tryEmit(AddMembersViewEvent.MembersAdded) } + is AddMembersViewAction.LoadMore -> loadMore() + } + } + + private fun searchUsers(query: String) { + scope.launch { + _state.update { it.copy(isLoading = true) } + chatClient.queryUsers(query.toSearchRequest(offset = 0)) + .await() + .onSuccess { users -> + _state.update { it.copy(isLoading = false, searchResult = users) } + } + .onError { + _state.update { it.copy(isLoading = false) } + } + } + } + + private fun loadMore() { + if (_state.value.isLoadingMore) return + scope.launch { + val currentResult = _state.value.searchResult + _state.update { it.copy(isLoadingMore = true) } + chatClient.queryUsers(_state.value.query.toSearchRequest(offset = currentResult.size)) + .await() + .onSuccess { newUsers -> + _state.update { it.copy(isLoadingMore = false, searchResult = it.searchResult + newUsers) } + } + .onError { + _state.update { it.copy(isLoadingMore = false) } } - } } } - private fun String.toRequest(): QueryUsersRequest { + private fun String.toSearchRequest(offset: Int): QueryUsersRequest { val filter = if (isEmpty()) { Filters.neutral() } else { - Filters.autocomplete("name", this) + Filters.or( + Filters.autocomplete("name", this), + Filters.autocomplete("id", this), + ) } return QueryUsersRequest( filter = filter, - offset = 0, + offset = offset, limit = resultLimit, querySort = QuerySortByField.ascByName("name"), presence = true, diff --git a/stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewEvent.kt b/stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewEvent.kt deleted file mode 100644 index 71bb0b709b5..00000000000 --- a/stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewEvent.kt +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (c) 2014-2026 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.ui.common.feature.channel.info - -/** - * Represents side-effect events related to the "Add Members" view. - */ -public sealed interface AddMembersViewEvent { - - /** - * Indicates that members were successfully added to the channel. - */ - public data object MembersAdded : AddMembersViewEvent -} diff --git a/stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/feature/channel/info/ChannelInfoViewController.kt b/stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/feature/channel/info/ChannelInfoViewController.kt index fcb0d4bf231..43cb7dfebf7 100644 --- a/stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/feature/channel/info/ChannelInfoViewController.kt +++ b/stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/feature/channel/info/ChannelInfoViewController.kt @@ -22,11 +22,13 @@ import io.getstream.chat.android.client.api.state.globalStateFlow import io.getstream.chat.android.client.api.state.watchChannelAsState import io.getstream.chat.android.client.channel.ChannelClient import io.getstream.chat.android.client.channel.state.ChannelState +import io.getstream.chat.android.client.query.AddMembersParams import io.getstream.chat.android.core.internal.InternalStreamChatApi import io.getstream.chat.android.models.Channel import io.getstream.chat.android.models.ChannelCapabilities import io.getstream.chat.android.models.ChannelData import io.getstream.chat.android.models.Member +import io.getstream.chat.android.models.MemberData import io.getstream.chat.android.models.Message import io.getstream.chat.android.models.Mute import io.getstream.chat.android.models.User @@ -218,6 +220,27 @@ public class ChannelInfoViewController( } } + /** + * Adds the given members to the channel. + * + * @param userIds The set of user IDs to add as members. + */ + public fun addMembers(userIds: Set) { + if (userIds.isEmpty()) return + logger.d { "[addMembers] userIds: $userIds" } + scope.launch { + channelClient.addMembers( + AddMembersParams( + members = userIds.map { MemberData(it) }, + systemMessage = null, + ), + ).await() + .onError { error -> + logger.e { "[addMembers] error: ${error.message}" } + } + } + } + /** * Propagates events from the [ChannelInfoMemberViewEvent] to the [ChannelInfoViewEvent]. */ diff --git a/stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/state/channel/info/AddMembersViewState.kt b/stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/state/channel/info/AddMembersViewState.kt index a56aa9008c0..47ae75cfb40 100644 --- a/stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/state/channel/info/AddMembersViewState.kt +++ b/stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/state/channel/info/AddMembersViewState.kt @@ -21,14 +21,33 @@ import io.getstream.chat.android.models.User /** * Represents the state of the "Add Members" view. * - * @param isLoading Whether the view is currently loading search results. + * @param isLoading Whether the view is currently loading the initial search results. + * @param isLoadingMore Whether the view is currently loading additional (paginated) results. * @param query The current search query. * @param searchResult The list of users matching the search query. - * @param selectedUsers The list of users selected to be added as members. + * @param selectedUserIds The set of IDs of users selected to be added as members. + * @param loadedMemberIds The set of IDs of users who are already members of the channel. */ public data class AddMembersViewState( val isLoading: Boolean = true, + val isLoadingMore: Boolean = false, val query: String = "", val searchResult: List = emptyList(), - val selectedUsers: List = emptyList(), -) + val selectedUserIds: Set = emptySet(), + val loadedMemberIds: Set = emptySet(), +) { + /** + * The list of users selected to be added as members, derived from [searchResult] and [selectedUserIds]. + */ + public val selectedUsers: List get() = searchResult.filter { it.id in selectedUserIds } + + /** + * Returns true if the given [user] is selected to be added as a member. + */ + public fun isSelected(user: User): Boolean = user.id in selectedUserIds + + /** + * Returns true if the given [user] is already a member of the channel. + */ + public fun isAlreadyMember(user: User): Boolean = user.id in loadedMemberIds +} diff --git a/stream-chat-android-ui-common/src/test/kotlin/io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewControllerTest.kt b/stream-chat-android-ui-common/src/test/kotlin/io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewControllerTest.kt new file mode 100644 index 00000000000..9cce832c1cc --- /dev/null +++ b/stream-chat-android-ui-common/src/test/kotlin/io/getstream/chat/android/ui/common/feature/channel/info/AddMembersViewControllerTest.kt @@ -0,0 +1,328 @@ +/* + * Copyright (c) 2014-2026 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.ui.common.feature.channel.info + +import app.cash.turbine.test +import io.getstream.chat.android.client.ChatClient +import io.getstream.chat.android.client.channel.state.ChannelState +import io.getstream.chat.android.models.Member +import io.getstream.chat.android.models.User +import io.getstream.chat.android.randomGenericError +import io.getstream.chat.android.randomMembers +import io.getstream.chat.android.randomUser +import io.getstream.chat.android.test.asCall +import io.getstream.chat.android.ui.common.state.channel.info.AddMembersViewState +import io.getstream.result.Error +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.test.runTest +import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.Assertions.assertFalse +import org.junit.jupiter.api.Assertions.assertTrue +import org.junit.jupiter.api.Test +import org.mockito.kotlin.any +import org.mockito.kotlin.doAnswer +import org.mockito.kotlin.doReturn +import org.mockito.kotlin.mock +import org.mockito.kotlin.whenever + +internal class AddMembersViewControllerTest { + + @Test + fun `initial state`() = runTest { + val sut = Fixture().get(backgroundScope) + + assertEquals(AddMembersViewState(), sut.state.value) + } + + @Test + fun `channel members are synced into loadedMemberIds`() = runTest { + val members = randomMembers(3) + val sut = Fixture() + .givenMembers(members) + .get(backgroundScope) + + sut.state.test { + skipItems(1) // Skip initial state + + val state = awaitItem() + assertEquals(members.map(Member::getUserId).toSet(), state.loadedMemberIds) + } + } + + @Test + fun `channel members update is reflected reactively`() = runTest { + val fixture = Fixture() + val sut = fixture.get(backgroundScope) + + sut.state.test { + skipItems(2) // Skip initial state and first search result + + val newMembers = randomMembers(2) + fixture.givenMembers(newMembers) + + val state = awaitItem() + assertEquals(newMembers.map(Member::getUserId).toSet(), state.loadedMemberIds) + } + } + + @Test + fun `initial search loads users after debounce`() = runTest { + val users = listOf(randomUser(), randomUser()) + val sut = Fixture() + .givenQueryUsers(users = users) + .get(backgroundScope) + + sut.state.test { + skipItems(1) // Skip initial loading state + + val state = awaitItem() + assertFalse(state.isLoading) + assertEquals(users, state.searchResult) + } + } + + @Test + fun `initial search error clears loading state`() = runTest { + val sut = Fixture() + .givenQueryUsers(error = randomGenericError()) + .get(backgroundScope) + + sut.state.test { + skipItems(1) // Skip initial loading state + + val state = awaitItem() + assertFalse(state.isLoading) + assertTrue(state.searchResult.isEmpty()) + } + } + + @Test + fun `QueryChanged updates the query`() = runTest { + val sut = Fixture() + .givenQueryUsers(users = emptyList()) + .get(backgroundScope) + + sut.state.test { + skipItems(2) // Skip initial state and initial search result + + sut.onViewAction(AddMembersViewAction.QueryChanged("John")) + + assertEquals("John", awaitItem().query) + } + } + + @Test + fun `QueryChanged trims whitespace from the query`() = runTest { + val sut = Fixture() + .givenQueryUsers(users = emptyList()) + .get(backgroundScope) + + sut.state.test { + skipItems(2) // Skip initial state and initial search result + + sut.onViewAction(AddMembersViewAction.QueryChanged(" John ")) + + assertEquals("John", awaitItem().query) + cancelAndIgnoreRemainingEvents() + } + } + + @Test + fun `QueryChanged triggers a new search after debounce`() = runTest { + val query = "Alice" + val users = listOf(randomUser(), randomUser()) + val sut = Fixture() + .givenQueryUsers(users = emptyList()) // initial empty-query search + .givenQueryUsers(users = users) // search for "Alice" + .get(backgroundScope) + + sut.state.test { + skipItems(2) // Skip initial state and empty-query search result + + sut.onViewAction(AddMembersViewAction.QueryChanged(query)) + skipItems(1) // Skip the query-only state update + + assertTrue(awaitItem().isLoading) // New search triggered + + val state = awaitItem() + assertFalse(state.isLoading) + assertEquals(query, state.query) + assertEquals(users, state.searchResult) + } + } + + @Test + fun `QueryChanged search error clears loading state`() = runTest { + val sut = Fixture() + .givenQueryUsers(users = emptyList()) // initial search + .givenQueryUsers(error = randomGenericError()) // error on next search + .get(backgroundScope) + + sut.state.test { + skipItems(2) // Skip initial state and empty-query search result + + sut.onViewAction(AddMembersViewAction.QueryChanged("Bob")) + skipItems(1) // Skip query state update + + assertTrue(awaitItem().isLoading) + + val state = awaitItem() + assertFalse(state.isLoading) + } + } + + @Test + fun `UserClick selects a user`() = runTest { + val user = randomUser() + val sut = Fixture() + .givenQueryUsers(users = listOf(user)) + .get(backgroundScope) + + sut.state.test { + skipItems(2) // Skip initial state and search result + + sut.onViewAction(AddMembersViewAction.UserClick(user)) + + val state = awaitItem() + assertTrue(user.id in state.selectedUserIds) + assertTrue(state.isSelected(user)) + } + } + + @Test + fun `UserClick deselects an already selected user`() = runTest { + val user = randomUser() + val sut = Fixture() + .givenQueryUsers(users = listOf(user)) + .get(backgroundScope) + + sut.state.test { + skipItems(2) // Skip initial state and search result + + sut.onViewAction(AddMembersViewAction.UserClick(user)) + skipItems(1) // Skip selected state + + sut.onViewAction(AddMembersViewAction.UserClick(user)) + + val state = awaitItem() + assertFalse(user.id in state.selectedUserIds) + assertFalse(state.isSelected(user)) + } + } + + @Test + fun `UserClick toggles selection independently for multiple users`() = runTest { + val user1 = randomUser() + val user2 = randomUser() + val sut = Fixture() + .givenQueryUsers(users = listOf(user1, user2)) + .get(backgroundScope) + + sut.state.test { + skipItems(2) // Skip initial state and search result + + sut.onViewAction(AddMembersViewAction.UserClick(user1)) + skipItems(1) // Skip user1 selected state + + sut.onViewAction(AddMembersViewAction.UserClick(user2)) + + val state = awaitItem() + assertTrue(user1.id in state.selectedUserIds) + assertTrue(user2.id in state.selectedUserIds) + assertEquals(listOf(user1, user2), state.selectedUsers) + } + } + + @Test + fun `LoadMore appends results to searchResult`() = runTest { + val initialUsers = listOf(randomUser(), randomUser()) + val moreUsers = listOf(randomUser(), randomUser()) + val sut = Fixture() + .givenQueryUsers(users = initialUsers) + .givenQueryUsers(users = moreUsers) + .get(backgroundScope) + + sut.state.test { + skipItems(2) // Skip initial state and initial search result + + sut.onViewAction(AddMembersViewAction.LoadMore) + + assertTrue(awaitItem().isLoadingMore) // Loading more + + val state = awaitItem() + assertFalse(state.isLoadingMore) + assertEquals(initialUsers + moreUsers, state.searchResult) + } + } + + @Test + fun `LoadMore error clears isLoadingMore and retains existing results`() = runTest { + val initialUsers = listOf(randomUser(), randomUser()) + val sut = Fixture() + .givenQueryUsers(users = initialUsers) + .givenQueryUsers(error = randomGenericError()) + .get(backgroundScope) + + sut.state.test { + skipItems(2) // Skip initial state and initial search result + + sut.onViewAction(AddMembersViewAction.LoadMore) + + assertTrue(awaitItem().isLoadingMore) // Loading more + + val state = awaitItem() + assertFalse(state.isLoadingMore) + assertEquals(initialUsers, state.searchResult) + } + } + + private class Fixture { + private val channelMembers = MutableStateFlow(emptyList()) + private val channelState: ChannelState = mock { + on { members } doReturn channelMembers + } + private val chatClient: ChatClient = mock() + private val queryUsersResults = mutableListOf?, Error?>>() + private var callCount = 0 + + init { + whenever(chatClient.queryUsers(any())) doAnswer { + val index = callCount++ + val (users, err) = queryUsersResults.getOrElse(index) { Pair(emptyList(), null) } + err?.asCall() ?: (users ?: emptyList()).asCall() + } + } + + fun givenMembers(members: List) = apply { + channelMembers.value = members + } + + fun givenQueryUsers( + users: List? = null, + error: Error? = null, + ) = apply { + queryUsersResults.add(Pair(users, error)) + } + + fun get(scope: CoroutineScope) = AddMembersViewController( + scope = scope, + chatClient = chatClient, + channelState = MutableStateFlow(channelState), + ) + } +} From a54cf5309f9ff2cdf1cae71d60ae2d0e92da9160 Mon Sep 17 00:00:00 2001 From: VelikovPetar Date: Fri, 20 Mar 2026 12:19:59 +0100 Subject: [PATCH 3/4] Add members. --- .../ui/channel/info/AddMembersBottomSheet.kt | 13 +++++++++---- ...l.info_AddMembersBottomSheetTest_empty.png | Bin 17080 -> 17140 bytes ...bersBottomSheetTest_empty_in_dark_mode.png | Bin 15966 -> 16000 bytes 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/channel/info/AddMembersBottomSheet.kt b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/channel/info/AddMembersBottomSheet.kt index 392145ea532..62af5ced790 100644 --- a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/channel/info/AddMembersBottomSheet.kt +++ b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/channel/info/AddMembersBottomSheet.kt @@ -136,7 +136,14 @@ internal fun AddMembersBottomSheet( } state.searchResult.isEmpty() -> { - AddMembersEmptyState() + Box( + modifier = Modifier + .fillMaxWidth() + .weight(1f), + contentAlignment = Alignment.Center, + ) { + AddMembersEmptyState() + } } else -> { @@ -300,9 +307,7 @@ private fun AddMembersUserItem( @Composable private fun AddMembersEmptyState() { Column( - modifier = Modifier - .fillMaxWidth() - .padding(vertical = StreamTokens.spacing3xl), + modifier = Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.spacedBy(StreamTokens.spacingXs), ) { diff --git a/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_AddMembersBottomSheetTest_empty.png b/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_AddMembersBottomSheetTest_empty.png index 399f6c0f5eb209dc80eea529a9054775c663db11..8ab4fe3366aeca6358dd5c2fc1a5935ec2f5f133 100644 GIT binary patch literal 17140 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 L-738K`1OAS;_s(Q delta 14416 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 Y*`42Kk;3ZdA>iL_eUtx6ZajYVfAvpAVgLXD diff --git a/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_AddMembersBottomSheetTest_empty_in_dark_mode.png b/stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.channel.info_AddMembersBottomSheetTest_empty_in_dark_mode.png index a18f78138b001330873cfc424e8a48d24c978507..ff722b8fefb4f48d1d378b854b1ca1b16a385b12 100644 GIT binary patch literal 16000 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 literal 15966 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%0A_gz z21da+1oNO09S^~{7XgSQ)yo$Lt>%Ys;SRzC$shFCiITV(EpJ;Wxgde5omwr!f~N9i zG8i3FJqkOvJ!-PI&a~v8f~8EH4`jF6-oL-_n8aHLVavQ`y6oi*WW}`GlKyvBLFMrlM1*e% z{df@5`#at}{P{_G+w(}vW-J=pF;EVIZM2IgQ>P_~ZPv;I>b(kFgeSa;t;)Is+m4~F z!vfY^)qs(lZWqJ=Olxcnv~KzCIJ$W+m`VA0L8d!0Oao+F!`n-oaXa$ruV<6>L5Jqg z?E!L-!IV#boedru8Z}-R0|7y!oRT1&u?3J6oGQ0`PB&n%`>S$O8&M{oNo(yQI|2ql z>ZTrP9?V#!&tc~Q-FBI%WLCO!RcRhydF@h5mEC2o3m?M)z9xVf=BZzNBAt=s>AD8O zEzZtL@+WkA$tqDOt7I zK+QrM3{SSRlG&4J`ZF13!osZ$5I*zZO%d{gIZD9w((JgQcQ9rgu*twwAYJS4&*~1) zJc6)NEfc^ZoimsA?nXARY7#8hRA&&ndDhpMIhy}ae8bMhckE)_#GkZY{UA=oE9Q$slq!lYu(xAy z-fbOK#)`BWR9kht?kUG1Y}@8knySMX3zxFqg4RQ)k$9vM^iei{n$M^pVNX|YlV;Lj#{R;gTdzjYV5^rYN}t1I zzirzEak<_FKv?%k?IWLs1UAWcn;fj$i%lEvhTbYw&;IV-z)+8ncV;7=ta{pd2$uW1 zxxVL2*}N87o5No0EXuRc9N+QTr;wrrk}rDBBB@joOh{HJG8wcNg$|hIu0A*dn{kYm ziarys)4}+vQ2#CnS<_xD*8M&Pu6*%fCh1~|xdBU0k)6vHZK9G%*mb|kbyyrU<*_9>aI}jJ7HxSpv!Soj~oG^|P zqMD^D6v??zq|+~_Q+b7MK(4-(ppy{RuPZH@_WsVSZvi#o>(mrPYL|<-YslI^6-@`E{)vH2W!!yWgID|G_Tx@ zWJapU;c%Ssj43AsM5U>r}NwDXz`D>=`A44aP|RdU?B9QT7o z;IxeY<&-c3f`QVnH6W1R6x)V<${z?9*{cUV8#)f88yz`kNRO*ITXoPz%StMfqPnIt zf&^%RzE&*tBlS1lzbAv0Im0v{m*F8PHk-+ig{NzoJ+F!}kY{*zYd{mk8ebc{AV`(e zV#qs}72z3KUC5a8pK>jobS{{LA{|O7my%&zcgjT|_R|j!{cv^HnT{W4wr%={RF|Uh zJ#!0gRWYqJX zwHSJ|qOa!|GXd<`rxEopbN1X(g>DME6rwu@QlwMqrWnE}sRL_%?dK0*6LS+EiFU-N zcXNo%Ijm`46+Pe{Z3fh%@8Q8p3~E&(Uzm`PU+Usxk(KvOxw7Z8Zh9;SE-$dYq)uRO zKh2*yXErtj;?GE|pn-afT!+YcSeZJngajFc%=~28Zq)wrHr-c|pSZD+rlk(Ol(WRo zMc(KvpDvX5&hI7@5VVcU0H!Us%+D=bMpM5c#?tH$R9GP#2fc3Tl$zII?FT6=gxIpu zIDN@>5k`c5K&%UFwCo+oN+Hb8a{kxf?)>G~fB1Ii@89|S{Zf#r{q-(?x#3?9nJ4|_ zhJQKyzrFW=@MFIId%s!w*TMb=ztF#YJN0kp^q)WG!+(Pz9QbF}_n%}I|BhAouRnzU z?>6T@Uj>i9{ck@g{QqZj{&U~=@V~(j_Wjpih5!0P_%GukkD)AB|NJue-$u88NJ0Mj quK7>T82&p90rJ;XuyNkrgUqtUuv(L>W5IXh5X5brTSYf)LjMOIG*vDD From acc5c521e1558b081966e4a42f9f76d367e28794 Mon Sep 17 00:00:00 2001 From: VelikovPetar Date: Fri, 20 Mar 2026 12:54:56 +0100 Subject: [PATCH 4/4] Fix tests --- .../channel/ChannelInfoViewModelFactoryTest.kt | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/stream-chat-android-compose/src/test/kotlin/io/getstream/chat/android/compose/viewmodel/channel/ChannelInfoViewModelFactoryTest.kt b/stream-chat-android-compose/src/test/kotlin/io/getstream/chat/android/compose/viewmodel/channel/ChannelInfoViewModelFactoryTest.kt index 795b39f0c42..b42758386a7 100644 --- a/stream-chat-android-compose/src/test/kotlin/io/getstream/chat/android/compose/viewmodel/channel/ChannelInfoViewModelFactoryTest.kt +++ b/stream-chat-android-compose/src/test/kotlin/io/getstream/chat/android/compose/viewmodel/channel/ChannelInfoViewModelFactoryTest.kt @@ -46,6 +46,15 @@ internal class ChannelInfoViewModelFactoryTest { assertInstanceOf(viewModel) } + @Test + fun `create should return correct AddMembersViewModel instance`() { + val sut = Fixture().get() + + val viewModel = sut.create(AddMembersViewModel::class.java) + + assertInstanceOf(viewModel) + } + @Test fun `create should throw IllegalArgumentException for unsupported ViewModel class`() { val sut = Fixture().get() @@ -56,7 +65,7 @@ internal class ChannelInfoViewModelFactoryTest { assertEquals( "ChannelInfoViewModelFactory can only create instances of " + - "[ChannelHeaderViewModel, ChannelInfoViewModel]", + "[ChannelHeaderViewModel, ChannelInfoViewModel, AddMembersViewModel]", exception.message, ) }