群聊消息页面、群聊成员页面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.index.NavItem
import com.aiosman.ravenow.ui.modifiers.noRippleClickable
import com.aiosman.ravenow.ui.navigateToAddGroupMember
import com.aiosman.ravenow.ui.navigateToGroupMembers
import com.aiosman.ravenow.ui.navigateToGroupProfileSettings
import kotlinx.coroutines.launch
@@ -173,7 +174,7 @@ fun GroupChatInfoScreen(groupId: String) {
)
Spacer(modifier = Modifier.width(4.dp))
Text(
text = "${viewModel.groupInfo?.memberCount ?: 0}",
text = "${viewModel.groupInfo?.memberCount ?: 0}${stringResource(R.string.people)}",
style = androidx.compose.ui.text.TextStyle(
color = AppColors.text.copy(alpha = 0.7f),
fontSize = 11.sp
@@ -187,14 +188,17 @@ fun GroupChatInfoScreen(groupId: String) {
item {
Spacer(modifier = Modifier.height(10.dp))
Row(
modifier = Modifier.fillMaxWidth(),
modifier = Modifier
.padding(horizontal = 24.dp)
.fillMaxWidth(),
horizontalArrangement = Arrangement.SpaceEvenly
) {
if (viewModel.groupInfo?.isCreator == true) {
// 添加其他人
Column(
horizontalAlignment = Alignment.CenterHorizontally,
modifier = Modifier.noRippleClickable {
// TODO: 实现添加其他人功能
navController.navigateToAddGroupMember(groupId, viewModel.groupInfo?.groupName)
}
) {
Box(
@@ -220,6 +224,7 @@ fun GroupChatInfoScreen(groupId: String) {
)
)
}
}
// 通知设置
Column(
@@ -258,11 +263,11 @@ fun GroupChatInfoScreen(groupId: String) {
)
}
// 退出群聊
// 分享群聊
Column(
horizontalAlignment = Alignment.CenterHorizontally,
modifier = Modifier.noRippleClickable {
// TODO: 实现退出群聊功能
// TODO: 实现分享功能
}
) {
Box(
@@ -272,7 +277,7 @@ fun GroupChatInfoScreen(groupId: String) {
contentAlignment = Alignment.Center
) {
Image(
painter = painterResource(R.drawable.group_info_edit),
painter = painterResource(R.mipmap.icon_share),
modifier = Modifier.size(20.dp),
contentDescription = null,
colorFilter = ColorFilter.tint(AppColors.text)
@@ -303,10 +308,9 @@ fun GroupChatInfoScreen(groupId: String) {
) {
Row(verticalAlignment = Alignment.CenterVertically) {
Image(
painter = painterResource(R.drawable.group_info_edit),
modifier = Modifier.size(16.dp),
painter = painterResource(R.mipmap.icons_brain),
modifier = Modifier.size(20.dp),
contentDescription = null,
colorFilter = ColorFilter.tint(AppColors.text)
)
Spacer(modifier = Modifier.width(6.dp))
Column(modifier = Modifier.weight(1f)) {
@@ -315,7 +319,6 @@ fun GroupChatInfoScreen(groupId: String) {
style = androidx.compose.ui.text.TextStyle(
color = AppColors.text,
fontSize = 15.sp,
fontWeight = FontWeight.Bold
)
)
Spacer(modifier = Modifier.height(2.dp))
@@ -379,6 +382,8 @@ fun GroupChatInfoScreen(groupId: String) {
item {
Spacer(modifier = Modifier.height(13.dp))
// 仅当当前用户是群聊创建者时显示以下组件
if (viewModel.groupInfo?.isCreator == true) {
// 群资料设置
Row(
modifier = Modifier
@@ -391,7 +396,7 @@ fun GroupChatInfoScreen(groupId: String) {
verticalAlignment = Alignment.CenterVertically
) {
Image(
painter = painterResource(R.drawable.group_info_edit),
painter = painterResource(R.mipmap.fengm),
modifier = Modifier.size(20.dp),
contentDescription = null,
colorFilter = ColorFilter.tint(
@@ -455,6 +460,7 @@ fun GroupChatInfoScreen(groupId: String) {
contentDescription = null,
)
}
}
// 成员管理
Row(
@@ -468,15 +474,21 @@ fun GroupChatInfoScreen(groupId: String) {
verticalAlignment = Alignment.CenterVertically
) {
Image(
painter = painterResource(R.drawable.group_info_users),
modifier = Modifier.size(20.dp),
painter = painterResource(R.mipmap.icons_users),
modifier = Modifier.size(25.dp),
contentDescription = null,
colorFilter = ColorFilter.tint(
AppColors.text)
)
Spacer(modifier = Modifier.width(10.dp))
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(
color = AppColors.text,
fontSize = 15.sp
@@ -499,8 +511,8 @@ fun GroupChatInfoScreen(groupId: String) {
verticalAlignment = Alignment.CenterVertically
) {
Image(
painter = painterResource(R.drawable.group_info_edit),
modifier = Modifier.size(20.dp),
painter = painterResource(R.mipmap.iconsgallery),
modifier = Modifier.size(25.dp),
contentDescription = null,
colorFilter = ColorFilter.tint(
AppColors.text)
@@ -520,7 +532,8 @@ fun GroupChatInfoScreen(groupId: String) {
contentDescription = null,
)
}
// 解散群聊
if (viewModel.groupInfo?.isCreator == true) {
// 解散群聊(仅群主)
Row(
modifier = Modifier
.fillMaxWidth()
@@ -529,13 +542,14 @@ fun GroupChatInfoScreen(groupId: String) {
.noRippleClickable { },
verticalAlignment = Alignment.CenterVertically
) {
Spacer(modifier = Modifier.width(3.dp))
Image(
painter = painterResource(R.drawable.group_info_exit),
painter = painterResource(R.mipmap.iconslogout),
modifier = Modifier.size(20.dp),
contentDescription = null,
colorFilter = ColorFilter.tint(Color(0xFFFF3B30))
)
Spacer(modifier = Modifier.width(10.dp))
Spacer(modifier = Modifier.width(11.dp))
Text(
text = stringResource(R.string.group_chat_info_dissolve),
style = androidx.compose.ui.text.TextStyle(
@@ -547,9 +561,41 @@ fun GroupChatInfoScreen(groupId: String) {
Image(
painter = painterResource(R.drawable.rave_now_nav_right),
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,
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
)
androidx.compose.foundation.Image(
painter = painterResource(R.drawable.rider_pro_add_other),
contentDescription = stringResource(R.string.group_chat_info_add_member),
colorFilter = ColorFilter.tint(AppColors.text),
modifier = Modifier
.size(24.dp)
.noRippleClickable {
navController.navigateToAddGroupMember(groupId, viewModel.groupInfo?.groupName)
}
)
// androidx.compose.foundation.Image(
// painter = painterResource(R.drawable.rider_pro_add_other),
// contentDescription = stringResource(R.string.group_chat_info_add_member),
// colorFilter = ColorFilter.tint(AppColors.text),
// modifier = Modifier
// .size(24.dp)
// .noRippleClickable {
// navController.navigateToAddGroupMember(groupId, viewModel.groupInfo?.groupName)
// }
// )
}
}
@@ -391,7 +391,7 @@ private fun MemberItem(
Spacer(modifier = Modifier.weight(1f))
// 菜单按钮
if (isAdmin) {
IconButton(
onClick = { onMenuClick(itemPosition, itemHeight) },
modifier = Modifier.size(24.dp)
@@ -404,6 +404,7 @@ private fun MemberItem(
.size(24.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="add_memory">上部のボタンをクリックしてグループ記憶を追加してください</string>
<string name="recent_search">けんさくりれき</string>
<string name="people"></string>
<!-- Create Bottom Sheet -->
<string name="create_title">作成</string>
@@ -249,7 +250,7 @@
<string name="Reload">再ロード</string>
<!-- Login page -->
<string name="join_party_carnival">パーティーに参加して、一緒に盛り上がろ</string>
<string name="join_party_carnival">Paip.AIに参加して、パーティーを楽しも</string>
<!-- Tab labels -->
<string name="tab_recommend">おすすめ</string>
@@ -290,6 +291,7 @@
<string name="group_chat_info_member_manage">メンバー管理</string>
<string name="group_chat_info_wallpaper">グループチャット壁紙</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_member_count">%d人のメンバー</string>
<string name="group_chat_info_memory_input_hint">グループの記憶内容を入力、例えば、グループのメンバーは科学技術と設計を議論するのが好きである....</string>
@@ -358,7 +360,7 @@
<string name="how_to_earn">獲得方法</string>
<string name="total_earned">合計獲得</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="current_balance">現在の残高</string>
<string name="load_more">さらに読み込む</string>

View File

@@ -163,7 +163,7 @@
<string name="public_label">公开</string>
<string name="private_label">私有</string>
<string name="favourites_null">这里还空着呢~</string>
<string name="people"></string>
<string name="agent_chat_list_title">智能体聊天</string>
<string name="agent_chat_empty_title">AI 在等你的开场白</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_wallpaper">群聊壁纸</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_member_count">%d 位成员</string>
<string name="group_chat_info_memory_input_hint">输入群记忆内容,例如:群成员喜欢讨论科技和设计....</string>
@@ -362,7 +363,7 @@
<string name="how_to_earn">如何赚取</string>
<string name="total_earned">总获得</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="current_balance">当前余额</string>
<string name="load_more">加载更多</string>

View File

@@ -219,6 +219,7 @@
<string name="no_memory">No memory yet</string>
<string name="add_memory">Click the button above to add group memory</string>
<string name="recent_search">Recent Search</string>
<string name="people">people</string>
<!-- Create Bottom Sheet -->
<string name="create_title">Create</string>
@@ -248,7 +249,7 @@
<string name="Reload">Reload</string>
<!-- 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 -->
<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_wallpaper">Group Chat Wallpaper</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_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>