From 8bdb6d0d9ad2f2d5f12f0ec788778a64ef1efe02 Mon Sep 17 00:00:00 2001 From: teamabron Date: Wed, 15 Oct 2025 15:54:15 +0330 Subject: [PATCH] feat: Add ability to add members to groups from Channel Info This commit introduces a new bottom sheet that allows users to add or remove members from a group directly from the channel info screen. - A new "Add Members" button is now available in the `ChannelInfoSheet` for group chats. - Tapping this button opens the `AddMemberToGroupSheet`, which lists all friends. - Users can search for friends and add or remove them from the group. - The "Manage Notifications" button is now hidden for group chats. Additionally, this commit includes the following changes: - **Changelog**: The changelog fetching and display functionality has been temporarily disabled. - **Splash Screen**: The splash screen icon has been updated and now uses an inset drawable (`splash_screen_icon_square.xml`) to adjust its padding, which also resolves an icon display issue on Android 13. - **Build**: All build variants are now signed with the debug key to simplify development builds. --- app/build.gradle.kts | 3 +- .../chat/zekochat/internals/Changelogs.kt | 16 +- .../zekochat/screens/chat/ChatRouterScreen.kt | 4 +- .../screens/settings/ChangelogsScreen.kt | 12 +- .../zekochat/sheets/AddMemberToGroupSheet.kt | 214 ++++++++++++++++++ .../chat/zekochat/sheets/ChannelInfoSheet.kt | 53 +++-- .../drawable/splash_screen_icon_square.xml | 7 + app/src/main/res/mipmap-hdpi/ic_launcher.png | Bin 1104 -> 4393 bytes app/src/main/res/mipmap-mdpi/ic_launcher.png | Bin 735 -> 2401 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 1369 -> 6043 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 2310 -> 11520 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 3337 -> 16879 bytes app/src/main/res/values-v31/themes.xml | 2 +- app/src/main/res/values-v33/themes.xml | 3 +- app/src/main/res/values/themes.xml | 2 +- 15 files changed, 282 insertions(+), 34 deletions(-) create mode 100644 app/src/main/java/chat/zekochat/sheets/AddMemberToGroupSheet.kt create mode 100644 app/src/main/res/drawable/splash_screen_icon_square.xml diff --git a/app/build.gradle.kts b/app/build.gradle.kts index fdeee54a..46c69763 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -100,6 +100,7 @@ android { "FLAVOUR_ID", "\"${buildproperty("build.flavour_id", "RVX_BUILD_FLAVOUR_ID")}\"" ) + signingConfig = signingConfigs.getByName("debug") } debug { @@ -110,7 +111,7 @@ android { resValue( "string", "app_name", - buildproperty("build.debug.app_name", "RVX_DEBUG_APP_NAME")!! + buildproperty("build.debug.app_name", "RVX_DEBUG_APP_NAME") ?: "ZekoChat Debug" ) // buildConfigField( diff --git a/app/src/main/java/chat/zekochat/internals/Changelogs.kt b/app/src/main/java/chat/zekochat/internals/Changelogs.kt index 57810cb6..0f44058d 100644 --- a/app/src/main/java/chat/zekochat/internals/Changelogs.kt +++ b/app/src/main/java/chat/zekochat/internals/Changelogs.kt @@ -59,7 +59,9 @@ class Changelogs(val context: Context, val kvStorage: KVStorage? = null) { cachedIndex = PeptideJson.decodeFromString(ChangelogIndex.serializer(), response.bodyAsText()) return cachedIndex as ChangelogIndex - } catch (e: Error) { + } catch (_: Error) { + return ChangelogIndex() + }catch (_: Exception) { return ChangelogIndex() } } @@ -95,7 +97,8 @@ class Changelogs(val context: Context, val kvStorage: KVStorage? = null) { } suspend fun getLatestChangelogCode(): String { - return getLatestChangelog().version.code.toString() +// return getLatestChangelog().version.code.toString() + return "" } suspend fun hasSeenCurrent(): Boolean { @@ -105,7 +108,7 @@ class Changelogs(val context: Context, val kvStorage: KVStorage? = null) { ) } - val latest = getLatestChangelog().version.code +// val latest = getLatestChangelog().version.code val lastRead = kvStorage.get("latestChangelogRead") if (lastRead == null) { @@ -113,7 +116,8 @@ class Changelogs(val context: Context, val kvStorage: KVStorage? = null) { } // If the last read changelog is >= the latest, it has been read - return lastRead.toLong() >= latest +// return lastRead.toLong() >= latest + return true } suspend fun markAsSeen() { @@ -124,7 +128,7 @@ class Changelogs(val context: Context, val kvStorage: KVStorage? = null) { } val index = fetchChangelogIndex() - val latest = index.changelogs.maxByOrNull { it.version.code }!!.version.code.toString() - kvStorage.set("latestChangelogRead", latest) +// val latest = index.changelogs.maxByOrNull { it.version.code }!!.version.code.toString() +// kvStorage.set("latestChangelogRead", latest) } } diff --git a/app/src/main/java/chat/zekochat/screens/chat/ChatRouterScreen.kt b/app/src/main/java/chat/zekochat/screens/chat/ChatRouterScreen.kt index f110102a..85611ead 100644 --- a/app/src/main/java/chat/zekochat/screens/chat/ChatRouterScreen.kt +++ b/app/src/main/java/chat/zekochat/screens/chat/ChatRouterScreen.kt @@ -187,8 +187,8 @@ class ChatRouterViewModel @Inject constructor( latestChangelogRead = changelogs.hasSeenCurrent() latestChangelog = changelogs.getLatestChangelogCode() - latestChangelogBody = - changelogs.fetchChangelogByVersionCode(latestChangelog.toLong()).rendered +// latestChangelogBody = +// changelogs.fetchChangelogByVersionCode(latestChangelog.toLong()).rendered if (!latestChangelogRead) { changelogs.markAsSeen() } diff --git a/app/src/main/java/chat/zekochat/screens/settings/ChangelogsScreen.kt b/app/src/main/java/chat/zekochat/screens/settings/ChangelogsScreen.kt index 96d05238..549012fc 100644 --- a/app/src/main/java/chat/zekochat/screens/settings/ChangelogsScreen.kt +++ b/app/src/main/java/chat/zekochat/screens/settings/ChangelogsScreen.kt @@ -60,12 +60,12 @@ class ChangelogsSettingsScreenViewModel @Inject constructor( var renderedChangelog by mutableStateOf("") suspend fun requestChangelog(version: String) { - viewModelScope.launch { - renderedChangelog = Changelogs( - context, - kvStorage - ).fetchChangelogByVersionCode(version.toLong()).rendered - } +// viewModelScope.launch { +// renderedChangelog = Changelogs( +// context, +// kvStorage +// ).fetchChangelogByVersionCode(version.toLong()).rendered +// } } suspend fun populate() { diff --git a/app/src/main/java/chat/zekochat/sheets/AddMemberToGroupSheet.kt b/app/src/main/java/chat/zekochat/sheets/AddMemberToGroupSheet.kt new file mode 100644 index 00000000..c22db64e --- /dev/null +++ b/app/src/main/java/chat/zekochat/sheets/AddMemberToGroupSheet.kt @@ -0,0 +1,214 @@ +package chat.zekochat.sheets + +import androidx.compose.animation.AnimatedVisibility +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.imePadding +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.material3.Checkbox +import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateListOf +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import androidx.lifecycle.viewmodel.compose.viewModel +import chat.zekochat.api.PeptideAPI +import chat.zekochat.api.PeptideHttp +import chat.zekochat.api.PeptideJson +import chat.zekochat.api.api +import chat.zekochat.api.internals.FriendRequests +import chat.zekochat.api.routes.channel.addMember +import chat.zekochat.api.routes.channel.removeMember +import chat.zekochat.api.schemas.User +import chat.zekochat.composables.chat.MemberListItem +import chat.zekochat.screens.create.MAX_ADDABLE_PEOPLE_IN_GROUP +import io.ktor.client.request.get +import io.ktor.client.statement.bodyAsText +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import kotlinx.serialization.builtins.ListSerializer + +class AddMemberToGroupSheetViewModel : ViewModel() { + var groupMembers = mutableStateListOf() + var friendSearchQuery by mutableStateOf("") + var loadingUser by mutableStateOf("") + var friendsFilteredBySearch = mutableStateListOf() + var error by mutableStateOf(null) + + suspend fun fetchGroupParticipants(channelId: String) { + val response = PeptideHttp.get("/channels/$channelId/members".api()) + .bodyAsText() + + val users = PeptideJson.decodeFromString( + ListSerializer(User.serializer()), + response + ).mapNotNull { it.id } + + groupMembers.clear() + groupMembers.addAll(users) + + } + + fun filterFriends() { + friendsFilteredBySearch.clear() + friendsFilteredBySearch.addAll(FriendRequests.getFriends().filter { + if (friendSearchQuery.isBlank()) { + return@filter true + } + + if (it.displayName == null || it.username == null) { + return@filter false + } + + it.displayName.contains(friendSearchQuery, ignoreCase = true) || + it.username.contains(friendSearchQuery, ignoreCase = true) + }.map { it.id!! }) + } + + fun addMemberToGroup(channelId: String, popBackStack: () -> Unit) { + if (groupMembers.size > MAX_ADDABLE_PEOPLE_IN_GROUP) { + error = "Too many members, maximum is $MAX_ADDABLE_PEOPLE_IN_GROUP" + return + } + + try { + error = null + viewModelScope.launch { + groupMembers.map { + CoroutineScope(Dispatchers.IO).launch { + addMember(channelId, it) + } + } + popBackStack() + } + } catch (e: Exception) { + error = e.message + } + } + + fun addMemberToGroup(channelId: String, userId: String) { + + if(loadingUser.isNotEmpty()) return + + viewModelScope.launch { + try { + loadingUser = userId + error = null + + addMember(channelId, userId) + groupMembers.add(userId) + + loadingUser = "" + } catch (e: Exception) { + loadingUser = "" + error = e.message + } catch (e: Error) { + loadingUser = "" + groupMembers.add(userId) + } + } + } + + fun removeMemberFromGroup(channelId: String, userId: String) { + + if(loadingUser.isNotEmpty()) return + + viewModelScope.launch { + try { + loadingUser = userId + error = null + + removeMember(channelId, userId) + groupMembers.remove(userId) + + loadingUser = "" + } catch (e: Exception) { + loadingUser = "" + error = e.message + } catch (e: Error) { + loadingUser = "" + groupMembers.remove(userId) + } + } + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun AddMemberToGroupSheet( + channelId: String, + viewModel: AddMemberToGroupSheetViewModel = viewModel(), + onHideSheet: suspend () -> Unit +) +{ + + LaunchedEffect(Unit) { + viewModel.filterFriends() + viewModel.fetchGroupParticipants(channelId); + } + + Column( + Modifier + .imePadding() + ) + { + AnimatedVisibility(visible = viewModel.error?.isNotBlank() ?: false) { + Text( + text = viewModel.error ?: "", + color = MaterialTheme.colorScheme.error, + modifier = Modifier + .fillMaxWidth() + .padding(16.dp) + ) + } + + LazyColumn(contentPadding = PaddingValues(bottom = 78.0.dp)) { + items(viewModel.friendsFilteredBySearch.size) { index -> + val friend = PeptideAPI.userCache[viewModel.friendsFilteredBySearch[index]] + ?: return@items + val isMember = viewModel.groupMembers.contains(friend.id) + val isLoading = viewModel.loadingUser == friend.id + + MemberListItem( + member = null, + user = friend, + serverId = null, + userId = friend.id!!, + modifier = Modifier.clickable { + if (isMember) { + viewModel.removeMemberFromGroup(channelId, friend.id) + } else { + viewModel.addMemberToGroup(channelId, friend.id) + } + }, + trailingContent = { + if(isLoading){ + CircularProgressIndicator(Modifier.size(24.dp)) + }else{ + + Checkbox( + checked = isMember, + onCheckedChange = null, + enabled = (isMember.not() && viewModel.groupMembers.size >= MAX_ADDABLE_PEOPLE_IN_GROUP).not() + ) + } + } + ) + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/chat/zekochat/sheets/ChannelInfoSheet.kt b/app/src/main/java/chat/zekochat/sheets/ChannelInfoSheet.kt index 8d63e660..7e826837 100644 --- a/app/src/main/java/chat/zekochat/sheets/ChannelInfoSheet.kt +++ b/app/src/main/java/chat/zekochat/sheets/ChannelInfoSheet.kt @@ -46,6 +46,7 @@ import kotlinx.coroutines.launch fun ChannelInfoSheet(channelId: String, onHideSheet: suspend () -> Unit) { val channel = PeptideAPI.channelCache[channelId] var memberListSheetShown by remember { mutableStateOf(false) } + var addMemberSheetShown by remember { mutableStateOf(false) } var inviteDialogShown by remember { mutableStateOf(false) } val scope = rememberCoroutineScope() val permissions by rememberChannelPermissions(channelId) @@ -66,6 +67,24 @@ fun ChannelInfoSheet(channelId: String, onHideSheet: suspend () -> Unit) { } } + if (addMemberSheetShown) { + val addMemberSheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true) + + ModalBottomSheet( + sheetState = addMemberSheetState, + onDismissRequest = { + addMemberSheetShown = false + } + ) { + AddMemberToGroupSheet( + channelId = channelId, + onHideSheet = { + addMemberSheetShown = false + } + ) + } + } + if (inviteDialogShown) { Dialog( onDismissRequest = { @@ -176,7 +195,9 @@ fun ChannelInfoSheet(channelId: String, onHideSheet: suspend () -> Unit) { contentDescription = null ) }, - onClick = {} + onClick = { + addMemberSheetShown = true + } ) } @@ -184,20 +205,22 @@ fun ChannelInfoSheet(channelId: String, onHideSheet: suspend () -> Unit) { } } - SheetButton( - headlineContent = { - Text( - text = stringResource(id = R.string.channel_info_sheet_options_notifications_manage), - ) - }, - leadingContent = { - Icon( - painter = painterResource(R.drawable.icn_notification_settings_24dp), - contentDescription = null - ) - }, - onClick = {} - ) + if(channel.channelType != ChannelType.Group){ + SheetButton( + headlineContent = { + Text( + text = stringResource(id = R.string.channel_info_sheet_options_notifications_manage), + ) + }, + leadingContent = { + Icon( + painter = painterResource(R.drawable.icn_notification_settings_24dp), + contentDescription = null + ) + }, + onClick = {} + ) + } if ( (permissions has PermissionBit.ManageChannel || permissions has PermissionBit.ManageRole) diff --git a/app/src/main/res/drawable/splash_screen_icon_square.xml b/app/src/main/res/drawable/splash_screen_icon_square.xml new file mode 100644 index 00000000..7b720f7e --- /dev/null +++ b/app/src/main/res/drawable/splash_screen_icon_square.xml @@ -0,0 +1,7 @@ + + diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png index a4ecf258cfc999c911fea440dc8df5efebf37b0c..64ee75049d6abc3eb73cf9546ae71b83388b9f43 100644 GIT binary patch literal 4393 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 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png index 2d842b14e302ec251c09f0eadbb2ee30d16ca149..481837f3f5289fb01a0067b2808950f3585f1e52 100644 GIT binary patch literal 11520 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 literal 2310 zcmaKuX*|?@7sh{MESXSfG-h&}td%4pS(~!VOj!mqWJDR+Nkl^OFG3c&YJkR#((s4y^9?vL8{pKuZ;=J2;y4ggHk z{jEe^@GytvUBiPNqIW(r1PNL%hu$mwfz)`Kj;0PB5Cs?V{m_qvfSSW)yC7a%#et_w z%>X;8QJIYY1Ce1^J7kLom*rC;Y;{4jZGC~nA;6>>J!pVK54dQ8=MSU=iOh>Uk#u_F zPCN5tZ>!sJwo_zBAU^F(oM_5Y32fh2GJLR1En>4Ne^za88^&D9)5Q1muP&7Vb0#rd z7?#I=z9UWZIcavZf@*@&zAubRQ6X!RQAg74KNPy>hQwbhg*D|AbPOEkp3u>9 zs7n+uUG0V02+*8B-J1poSu{2Q37Sci|0le_^RX{UJkHfA*~RDTUug1FuhYaI+^Xr>JJ+ecdnrk2e( zrD})dOnA?&7Rm@co1e+uP58|u1Z3yp(fx-KQF#0BkoD`Sae8+fLrx`g--K3y%>uXHA* zj$;2SL#`+!Lk0;*iDI{k@jJ@>u6x4jsY_qWf|#5l7jp4}`n3hTMZhgerufJvWOV z=|tC_67jFO_v^SzkDABuN1JLhp^741+@0*muF4rx#)k!)XOOi*Yu0RR?WCX0P6lj! zYDAQtY&&LOSTn0wi?ZKS_d5TDu~6r%fi1+V>uTQD_53k=iH0~;HtEE6R{VrX=55+` zbud8JAaQ%IYGcmt#bmhKCyY2@Ekn`2zfaxKnD%paC^Je8jO@=NOuUsLteK)C%}=># zNEs--MV6t*4{v^Gm{kvQ<3&!{(9sK?R#!-xjeX*l>1SH1=3&~CKa`YaIf9nXyTfwh z!*mk0IZgE0#+dis!W~Q95@j8}8Tj1A&7RHd#k{MCIX~lE%-4ZKu}u{~Y8bgMl;3gw zWsthh2+gBYt&(KMaqtrCxEoQltB$&$yhIh)G?YFVM~QzRCOIUMsnW;Em0D^~CRmL% zWR6R_Er$rMqn$lktwDqGJpNZjKmrw^D%cX8f8>cmR*vrwDD!YYF&0un0=sJAo!+W~ zCiv^odN@8lef8sha?X3)i=H0ZF@V4XK>W3-%N@ZzHYNODXctXWk@|O;r5Q<7ysD3u z+#Keaeii!r9_*b9sX;ZWM&=k(8~Jv7iN&%VZA?OM@Ahzc+nVq-qdN#sZN z{JPWmY>~`}o=`V-s{XWVZdTNTM)ALras4ZF6&WR{S7pXr;0j;zLN)~(WCYPwxFl1PIk zAB`F%7i#6qtQ8tKPv+BDTISRk@f2$655}>Fqx9vXbx+g!#U(GGJ$`HebA_JEm8!AR5>{l{hF1!yRP1 zq-PF*)ux=v!W^_rbuqv|Xr*hM&l?`Li^3R)N88zgvSlYhC(S4HgKmb6f>GO6Y-HS! z!H9uc9);y4CjR=YMrpFB z{hX}tcM(yRJw^#ShRia1mEWziiZXpDY0fn*UBpP^_jB>_T^jyjdCRf16T)FM+8O)5`Q&CfeYY&1)w~l_@a1x4KQnpv zC7}y`0l}Q(W>&5~GQP3oU5L9kV(72)?GW8XD`_k5DU-5Ed5)zk5qb%B%q%M+ACHc! z*4?;|&5Z(Kx01X0*%uFxxSpDimmfzpwZ6%=n?Zog&VYKVCiiPzL`*wqa)M!4jz^K_ zdqA+!>N&y>b>~+XNy4%A)8uv(uq^)c(nSdJPqxx?0!?TQR}3GZ*=c+7ia-Sx0u>ej zTfrzb9_ONf^Zx^}c2^A?hb0Uk&o4*=Rh7(v2{^V?>Gkk&Ky$#Az7@c^*g(}`;9U*m z614+rDS~V_1D3Z#{$iGtBY@EJ;VWGebP@@aR)D1_64=p#+zlWanHd(H HJb&{aes>rr diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png index 6d55bf2fe0770c60be3bcf39b3a5cdace87c4920..b539eaad8f447e265974243364cd260535c32871 100644 GIT binary patch literal 16879 zcmaL9Wk8c}*f&h0AfX5-NGUi01(fa(6(t4f7NkaZZM1;2NJux5Bc!{#Wps@g-8Hts zd-1=Y`+c8J?+4g+UE8_sJkI0z#c}QmRZ;ptMnXq|gM&l%QBGDBxNW`tyF�SDm*e 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 literal 3337 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 JDs_l={sV4T&k6tl diff --git a/app/src/main/res/values-v31/themes.xml b/app/src/main/res/values-v31/themes.xml index 97632d5b..5180ed83 100644 --- a/app/src/main/res/values-v31/themes.xml +++ b/app/src/main/res/values-v31/themes.xml @@ -5,6 +5,6 @@ @android:color/transparent @android:color/transparent @color/background - @drawable/splash_screen_icon + @drawable/splash_screen_icon_square \ No newline at end of file diff --git a/app/src/main/res/values-v33/themes.xml b/app/src/main/res/values-v33/themes.xml index cfebe11d..a5e0f1d9 100644 --- a/app/src/main/res/values-v33/themes.xml +++ b/app/src/main/res/values-v33/themes.xml @@ -2,9 +2,8 @@ \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index a0d6c1bf..e5823abb 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -11,7 +11,7 @@