群聊消息页面、群聊成员页面UI调整

进入群聊后判断当前用户是否为群主,若为群主则显示“添加成员、群资料设置、群可见性、删除成员”组件;替换组件图标
This commit is contained in:
2025-11-19 18:37:43 +08:00
parent 2f602e37b1
commit f89564e60a
11 changed files with 211 additions and 159 deletions

View File

@@ -44,6 +44,7 @@ import com.aiosman.ravenow.ui.composables.PointsPaymentDialog
import com.aiosman.ravenow.ui.composables.StatusBarSpacer import com.aiosman.ravenow.ui.composables.StatusBarSpacer
import com.aiosman.ravenow.ui.index.NavItem import com.aiosman.ravenow.ui.index.NavItem
import com.aiosman.ravenow.ui.modifiers.noRippleClickable import com.aiosman.ravenow.ui.modifiers.noRippleClickable
import com.aiosman.ravenow.ui.navigateToAddGroupMember
import com.aiosman.ravenow.ui.navigateToGroupMembers import com.aiosman.ravenow.ui.navigateToGroupMembers
import com.aiosman.ravenow.ui.navigateToGroupProfileSettings import com.aiosman.ravenow.ui.navigateToGroupProfileSettings
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@@ -173,7 +174,7 @@ fun GroupChatInfoScreen(groupId: String) {
) )
Spacer(modifier = Modifier.width(4.dp)) Spacer(modifier = Modifier.width(4.dp))
Text( Text(
text = "${viewModel.groupInfo?.memberCount ?: 0}", text = "${viewModel.groupInfo?.memberCount ?: 0}${stringResource(R.string.people)}",
style = androidx.compose.ui.text.TextStyle( style = androidx.compose.ui.text.TextStyle(
color = AppColors.text.copy(alpha = 0.7f), color = AppColors.text.copy(alpha = 0.7f),
fontSize = 11.sp fontSize = 11.sp
@@ -187,14 +188,17 @@ fun GroupChatInfoScreen(groupId: String) {
item { item {
Spacer(modifier = Modifier.height(10.dp)) Spacer(modifier = Modifier.height(10.dp))
Row( Row(
modifier = Modifier.fillMaxWidth(), modifier = Modifier
.padding(horizontal = 24.dp)
.fillMaxWidth(),
horizontalArrangement = Arrangement.SpaceEvenly horizontalArrangement = Arrangement.SpaceEvenly
) { ) {
if (viewModel.groupInfo?.isCreator == true) {
// 添加其他人 // 添加其他人
Column( Column(
horizontalAlignment = Alignment.CenterHorizontally, horizontalAlignment = Alignment.CenterHorizontally,
modifier = Modifier.noRippleClickable { modifier = Modifier.noRippleClickable {
// TODO: 实现添加其他人功能 navController.navigateToAddGroupMember(groupId, viewModel.groupInfo?.groupName)
} }
) { ) {
Box( Box(
@@ -220,6 +224,7 @@ fun GroupChatInfoScreen(groupId: String) {
) )
) )
} }
}
// 通知设置 // 通知设置
Column( Column(
@@ -258,11 +263,11 @@ fun GroupChatInfoScreen(groupId: String) {
) )
} }
// 退出群聊 // 分享群聊
Column( Column(
horizontalAlignment = Alignment.CenterHorizontally, horizontalAlignment = Alignment.CenterHorizontally,
modifier = Modifier.noRippleClickable { modifier = Modifier.noRippleClickable {
// TODO: 实现退出群聊功能 // TODO: 实现分享功能
} }
) { ) {
Box( Box(
@@ -272,7 +277,7 @@ fun GroupChatInfoScreen(groupId: String) {
contentAlignment = Alignment.Center contentAlignment = Alignment.Center
) { ) {
Image( Image(
painter = painterResource(R.drawable.group_info_edit), painter = painterResource(R.mipmap.icon_share),
modifier = Modifier.size(20.dp), modifier = Modifier.size(20.dp),
contentDescription = null, contentDescription = null,
colorFilter = ColorFilter.tint(AppColors.text) colorFilter = ColorFilter.tint(AppColors.text)
@@ -303,10 +308,9 @@ fun GroupChatInfoScreen(groupId: String) {
) { ) {
Row(verticalAlignment = Alignment.CenterVertically) { Row(verticalAlignment = Alignment.CenterVertically) {
Image( Image(
painter = painterResource(R.drawable.group_info_edit), painter = painterResource(R.mipmap.icons_brain),
modifier = Modifier.size(16.dp), modifier = Modifier.size(20.dp),
contentDescription = null, contentDescription = null,
colorFilter = ColorFilter.tint(AppColors.text)
) )
Spacer(modifier = Modifier.width(6.dp)) Spacer(modifier = Modifier.width(6.dp))
Column(modifier = Modifier.weight(1f)) { Column(modifier = Modifier.weight(1f)) {
@@ -315,7 +319,6 @@ fun GroupChatInfoScreen(groupId: String) {
style = androidx.compose.ui.text.TextStyle( style = androidx.compose.ui.text.TextStyle(
color = AppColors.text, color = AppColors.text,
fontSize = 15.sp, fontSize = 15.sp,
fontWeight = FontWeight.Bold
) )
) )
Spacer(modifier = Modifier.height(2.dp)) Spacer(modifier = Modifier.height(2.dp))
@@ -379,6 +382,8 @@ fun GroupChatInfoScreen(groupId: String) {
item { item {
Spacer(modifier = Modifier.height(13.dp)) Spacer(modifier = Modifier.height(13.dp))
// 仅当当前用户是群聊创建者时显示以下组件
if (viewModel.groupInfo?.isCreator == true) {
// 群资料设置 // 群资料设置
Row( Row(
modifier = Modifier modifier = Modifier
@@ -391,7 +396,7 @@ fun GroupChatInfoScreen(groupId: String) {
verticalAlignment = Alignment.CenterVertically verticalAlignment = Alignment.CenterVertically
) { ) {
Image( Image(
painter = painterResource(R.drawable.group_info_edit), painter = painterResource(R.mipmap.fengm),
modifier = Modifier.size(20.dp), modifier = Modifier.size(20.dp),
contentDescription = null, contentDescription = null,
colorFilter = ColorFilter.tint( colorFilter = ColorFilter.tint(
@@ -455,6 +460,7 @@ fun GroupChatInfoScreen(groupId: String) {
contentDescription = null, contentDescription = null,
) )
} }
}
// 成员管理 // 成员管理
Row( Row(
@@ -468,15 +474,21 @@ fun GroupChatInfoScreen(groupId: String) {
verticalAlignment = Alignment.CenterVertically verticalAlignment = Alignment.CenterVertically
) { ) {
Image( Image(
painter = painterResource(R.drawable.group_info_users), painter = painterResource(R.mipmap.icons_users),
modifier = Modifier.size(20.dp), modifier = Modifier.size(25.dp),
contentDescription = null, contentDescription = null,
colorFilter = ColorFilter.tint( colorFilter = ColorFilter.tint(
AppColors.text) AppColors.text)
) )
Spacer(modifier = Modifier.width(10.dp)) Spacer(modifier = Modifier.width(10.dp))
Text( Text(
text = stringResource(R.string.group_chat_info_member_manage), text = stringResource(
if (viewModel.groupInfo?.isCreator == true) {
R.string.group_chat_info_member_manage
} else {
R.string.group_members_title
}
),
style = androidx.compose.ui.text.TextStyle( style = androidx.compose.ui.text.TextStyle(
color = AppColors.text, color = AppColors.text,
fontSize = 15.sp fontSize = 15.sp
@@ -499,8 +511,8 @@ fun GroupChatInfoScreen(groupId: String) {
verticalAlignment = Alignment.CenterVertically verticalAlignment = Alignment.CenterVertically
) { ) {
Image( Image(
painter = painterResource(R.drawable.group_info_edit), painter = painterResource(R.mipmap.iconsgallery),
modifier = Modifier.size(20.dp), modifier = Modifier.size(25.dp),
contentDescription = null, contentDescription = null,
colorFilter = ColorFilter.tint( colorFilter = ColorFilter.tint(
AppColors.text) AppColors.text)
@@ -520,7 +532,8 @@ fun GroupChatInfoScreen(groupId: String) {
contentDescription = null, contentDescription = null,
) )
} }
// 解散群聊 if (viewModel.groupInfo?.isCreator == true) {
// 解散群聊(仅群主)
Row( Row(
modifier = Modifier modifier = Modifier
.fillMaxWidth() .fillMaxWidth()
@@ -529,13 +542,14 @@ fun GroupChatInfoScreen(groupId: String) {
.noRippleClickable { }, .noRippleClickable { },
verticalAlignment = Alignment.CenterVertically verticalAlignment = Alignment.CenterVertically
) { ) {
Spacer(modifier = Modifier.width(3.dp))
Image( Image(
painter = painterResource(R.drawable.group_info_exit), painter = painterResource(R.mipmap.iconslogout),
modifier = Modifier.size(20.dp), modifier = Modifier.size(20.dp),
contentDescription = null, contentDescription = null,
colorFilter = ColorFilter.tint(Color(0xFFFF3B30)) colorFilter = ColorFilter.tint(Color(0xFFFF3B30))
) )
Spacer(modifier = Modifier.width(10.dp)) Spacer(modifier = Modifier.width(11.dp))
Text( Text(
text = stringResource(R.string.group_chat_info_dissolve), text = stringResource(R.string.group_chat_info_dissolve),
style = androidx.compose.ui.text.TextStyle( style = androidx.compose.ui.text.TextStyle(
@@ -547,9 +561,41 @@ fun GroupChatInfoScreen(groupId: String) {
Image( Image(
painter = painterResource(R.drawable.rave_now_nav_right), painter = painterResource(R.drawable.rave_now_nav_right),
modifier = Modifier.size(18.dp), modifier = Modifier.size(18.dp),
contentDescription = null
)
}
} else {
// 退出群聊(非群主)
Row(
modifier = Modifier
.fillMaxWidth()
.clip(RoundedCornerShape(8.dp))
.padding(12.dp)
.noRippleClickable { },
verticalAlignment = Alignment.CenterVertically
) {
Spacer(modifier = Modifier.width(3.dp))
Image(
painter = painterResource(R.drawable.group_info_exit),
modifier = Modifier.size(20.dp),
contentDescription = null, contentDescription = null,
colorFilter = ColorFilter.tint(Color(0xFFFF3B30)) colorFilter = ColorFilter.tint(Color(0xFFFF3B30))
) )
Spacer(modifier = Modifier.width(11.dp))
Text(
text = stringResource(R.string.group_chat_info_quit),
style = androidx.compose.ui.text.TextStyle(
color = Color(0xFFFF3B30),
fontSize = 15.sp
),
modifier = Modifier.weight(1f)
)
Image(
painter = painterResource(R.drawable.rave_now_nav_right),
modifier = Modifier.size(18.dp),
contentDescription = null
)
}
} }
} }
} }

View File

@@ -107,16 +107,16 @@ fun GroupMembersScreen(groupId: String) {
textAlign = TextAlign.Center textAlign = TextAlign.Center
) )
androidx.compose.foundation.Image( // androidx.compose.foundation.Image(
painter = painterResource(R.drawable.rider_pro_add_other), // painter = painterResource(R.drawable.rider_pro_add_other),
contentDescription = stringResource(R.string.group_chat_info_add_member), // contentDescription = stringResource(R.string.group_chat_info_add_member),
colorFilter = ColorFilter.tint(AppColors.text), // colorFilter = ColorFilter.tint(AppColors.text),
modifier = Modifier // modifier = Modifier
.size(24.dp) // .size(24.dp)
.noRippleClickable { // .noRippleClickable {
navController.navigateToAddGroupMember(groupId, viewModel.groupInfo?.groupName) // navController.navigateToAddGroupMember(groupId, viewModel.groupInfo?.groupName)
} // }
) // )
} }
} }
@@ -391,7 +391,7 @@ private fun MemberItem(
Spacer(modifier = Modifier.weight(1f)) Spacer(modifier = Modifier.weight(1f))
// 菜单按钮 // 菜单按钮
if (isAdmin) {
IconButton( IconButton(
onClick = { onMenuClick(itemPosition, itemHeight) }, onClick = { onMenuClick(itemPosition, itemHeight) },
modifier = Modifier.size(24.dp) modifier = Modifier.size(24.dp)
@@ -404,6 +404,7 @@ private fun MemberItem(
.size(24.dp) .size(24.dp)
) )
} }
}
Spacer(modifier = Modifier.width(8.dp)) Spacer(modifier = Modifier.width(8.dp))

Binary file not shown.

After

Width:  |  Height:  |  Size: 490 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 847 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 387 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 511 B

View File

@@ -220,6 +220,7 @@
<string name="no_memory">記憶がありません</string> <string name="no_memory">記憶がありません</string>
<string name="add_memory">上部のボタンをクリックしてグループ記憶を追加してください</string> <string name="add_memory">上部のボタンをクリックしてグループ記憶を追加してください</string>
<string name="recent_search">けんさくりれき</string> <string name="recent_search">けんさくりれき</string>
<string name="people"></string>
<!-- Create Bottom Sheet --> <!-- Create Bottom Sheet -->
<string name="create_title">作成</string> <string name="create_title">作成</string>
@@ -249,7 +250,7 @@
<string name="Reload">再ロード</string> <string name="Reload">再ロード</string>
<!-- Login page --> <!-- Login page -->
<string name="join_party_carnival">パーティーに参加して、一緒に盛り上がろ</string> <string name="join_party_carnival">Paip.AIに参加して、パーティーを楽しも</string>
<!-- Tab labels --> <!-- Tab labels -->
<string name="tab_recommend">おすすめ</string> <string name="tab_recommend">おすすめ</string>
@@ -290,6 +291,7 @@
<string name="group_chat_info_member_manage">メンバー管理</string> <string name="group_chat_info_member_manage">メンバー管理</string>
<string name="group_chat_info_wallpaper">グループチャット壁紙</string> <string name="group_chat_info_wallpaper">グループチャット壁紙</string>
<string name="group_chat_info_dissolve">グループチャットを解散</string> <string name="group_chat_info_dissolve">グループチャットを解散</string>
<string name="group_chat_info_quit">グループチャット終了</string>
<string name="group_chat_info_add_group_memory">グループメモリを追加</string> <string name="group_chat_info_add_group_memory">グループメモリを追加</string>
<string name="group_chat_info_member_count">%d人のメンバー</string> <string name="group_chat_info_member_count">%d人のメンバー</string>
<string name="group_chat_info_memory_input_hint">グループの記憶内容を入力、例えば、グループのメンバーは科学技術と設計を議論するのが好きである....</string> <string name="group_chat_info_memory_input_hint">グループの記憶内容を入力、例えば、グループのメンバーは科学技術と設計を議論するのが好きである....</string>
@@ -358,7 +360,7 @@
<string name="how_to_earn">獲得方法</string> <string name="how_to_earn">獲得方法</string>
<string name="total_earned">合計獲得</string> <string name="total_earned">合計獲得</string>
<string name="total_spent">合計支出</string> <string name="total_spent">合計支出</string>
<string name="my_pai_coin">マイパイコイン</string> <string name="my_pai_coin">私のPai coin</string>
<string name="recharge">チャージ</string> <string name="recharge">チャージ</string>
<string name="current_balance">現在の残高</string> <string name="current_balance">現在の残高</string>
<string name="load_more">さらに読み込む</string> <string name="load_more">さらに読み込む</string>

View File

@@ -163,7 +163,7 @@
<string name="public_label">公开</string> <string name="public_label">公开</string>
<string name="private_label">私有</string> <string name="private_label">私有</string>
<string name="favourites_null">这里还空着呢~</string> <string name="favourites_null">这里还空着呢~</string>
<string name="people"></string>
<string name="agent_chat_list_title">智能体聊天</string> <string name="agent_chat_list_title">智能体聊天</string>
<string name="agent_chat_empty_title">AI 在等你的开场白</string> <string name="agent_chat_empty_title">AI 在等你的开场白</string>
<string name="agent_chat_empty_subtitle">去首页探索一下,主动发起对话!</string> <string name="agent_chat_empty_subtitle">去首页探索一下,主动发起对话!</string>
@@ -292,6 +292,7 @@
<string name="group_chat_info_member_manage">成员管理</string> <string name="group_chat_info_member_manage">成员管理</string>
<string name="group_chat_info_wallpaper">群聊壁纸</string> <string name="group_chat_info_wallpaper">群聊壁纸</string>
<string name="group_chat_info_dissolve">解散群聊</string> <string name="group_chat_info_dissolve">解散群聊</string>
<string name="group_chat_info_quit">退出群聊</string>
<string name="group_chat_info_add_group_memory">添加群记忆</string> <string name="group_chat_info_add_group_memory">添加群记忆</string>
<string name="group_chat_info_member_count">%d 位成员</string> <string name="group_chat_info_member_count">%d 位成员</string>
<string name="group_chat_info_memory_input_hint">输入群记忆内容,例如:群成员喜欢讨论科技和设计....</string> <string name="group_chat_info_memory_input_hint">输入群记忆内容,例如:群成员喜欢讨论科技和设计....</string>
@@ -362,7 +363,7 @@
<string name="how_to_earn">如何赚取</string> <string name="how_to_earn">如何赚取</string>
<string name="total_earned">总获得</string> <string name="total_earned">总获得</string>
<string name="total_spent">总支出</string> <string name="total_spent">总支出</string>
<string name="my_pai_coin">我的派币</string> <string name="my_pai_coin">我的Pai coin</string>
<string name="recharge">充值</string> <string name="recharge">充值</string>
<string name="current_balance">当前余额</string> <string name="current_balance">当前余额</string>
<string name="load_more">加载更多</string> <string name="load_more">加载更多</string>

View File

@@ -219,6 +219,7 @@
<string name="no_memory">No memory yet</string> <string name="no_memory">No memory yet</string>
<string name="add_memory">Click the button above to add group memory</string> <string name="add_memory">Click the button above to add group memory</string>
<string name="recent_search">Recent Search</string> <string name="recent_search">Recent Search</string>
<string name="people">people</string>
<!-- Create Bottom Sheet --> <!-- Create Bottom Sheet -->
<string name="create_title">Create</string> <string name="create_title">Create</string>
@@ -248,7 +249,7 @@
<string name="Reload">Reload</string> <string name="Reload">Reload</string>
<!-- Login page --> <!-- Login page -->
<string name="join_party_carnival">Join the party, let\'s celebrate together</string> <string name="join_party_carnival">Join Paip.AI, let\'s Party</string>
<!-- Tab labels --> <!-- Tab labels -->
<string name="tab_recommend">Recommend</string> <string name="tab_recommend">Recommend</string>
@@ -289,6 +290,7 @@
<string name="group_chat_info_member_manage">Member Management</string> <string name="group_chat_info_member_manage">Member Management</string>
<string name="group_chat_info_wallpaper">Group Chat Wallpaper</string> <string name="group_chat_info_wallpaper">Group Chat Wallpaper</string>
<string name="group_chat_info_dissolve">Dissolve Group Chat</string> <string name="group_chat_info_dissolve">Dissolve Group Chat</string>
<string name="group_chat_info_quit">Quit the group</string>
<string name="group_chat_info_add_group_memory">Add Group Memory</string> <string name="group_chat_info_add_group_memory">Add Group Memory</string>
<string name="group_chat_info_member_count">%d members</string> <string name="group_chat_info_member_count">%d members</string>
<string name="group_chat_info_memory_input_hint">Input group memory content, for example: Group members enjoy discussing technology and design …</string> <string name="group_chat_info_memory_input_hint">Input group memory content, for example: Group members enjoy discussing technology and design …</string>