From 359bcfdfd72bb9c3c8427e09a7de8f8ab88f79d9 Mon Sep 17 00:00:00 2001 From: zhong <2724770085@qq.com> Date: Fri, 26 Sep 2025 17:00:12 +0800 Subject: [PATCH] =?UTF-8?q?Agent=E5=88=9B=E5=BB=BA=E6=88=90=E5=8A=9F?= =?UTF-8?q?=E5=85=A8=E5=B1=80=E6=98=BE=E7=A4=BA=EF=BC=9B=20=E9=80=82?= =?UTF-8?q?=E9=85=8D=E6=9A=97=E9=BB=91=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/aiosman/ravenow/AppState.kt | 1 + .../main/java/com/aiosman/ravenow/ui/Navi.kt | 2 + .../com/aiosman/ravenow/ui/agent/AddAgent.kt | 17 +++-- .../AgentCreatedSuccessIndicator.kt | 75 +++++++++++++++++++ .../ui/composables/form/FormTextInput.kt | 2 +- .../ui/composables/form/FormTextInput2.kt | 2 +- .../ravenow/ui/index/CreateBottomSheet.kt | 6 +- 7 files changed, 95 insertions(+), 10 deletions(-) create mode 100644 app/src/main/java/com/aiosman/ravenow/ui/composables/AgentCreatedSuccessIndicator.kt diff --git a/app/src/main/java/com/aiosman/ravenow/AppState.kt b/app/src/main/java/com/aiosman/ravenow/AppState.kt index 9b9eb57..77adf9c 100644 --- a/app/src/main/java/com/aiosman/ravenow/AppState.kt +++ b/app/src/main/java/com/aiosman/ravenow/AppState.kt @@ -45,6 +45,7 @@ object AppState { var googleClientId: String? = null var enableGoogleLogin: Boolean = false var enableChat = false + var agentCreatedSuccess by mutableStateOf(false) suspend fun initWithAccount(scope: CoroutineScope, context: Context) { // 如果是游客模式,使用简化的初始化流程 if (AppStore.isGuest) { diff --git a/app/src/main/java/com/aiosman/ravenow/ui/Navi.kt b/app/src/main/java/com/aiosman/ravenow/ui/Navi.kt index 3a56c49..83bb2f3 100644 --- a/app/src/main/java/com/aiosman/ravenow/ui/Navi.kt +++ b/app/src/main/java/com/aiosman/ravenow/ui/Navi.kt @@ -45,6 +45,7 @@ import com.aiosman.ravenow.ui.chat.ChatScreen import com.aiosman.ravenow.ui.chat.GroupChatScreen import com.aiosman.ravenow.ui.comment.CommentsScreen import com.aiosman.ravenow.ui.comment.notice.CommentNoticeScreen +import com.aiosman.ravenow.ui.composables.AgentCreatedSuccessIndicator import com.aiosman.ravenow.ui.crop.ImageCropScreen import com.aiosman.ravenow.ui.favourite.FavouriteListPage import com.aiosman.ravenow.ui.favourite.FavouriteNoticeScreen @@ -615,6 +616,7 @@ fun Navigation( navController = navController, startDestination = startDestination ) + AgentCreatedSuccessIndicator() } } } diff --git a/app/src/main/java/com/aiosman/ravenow/ui/agent/AddAgent.kt b/app/src/main/java/com/aiosman/ravenow/ui/agent/AddAgent.kt index 63b1cb8..3bb873c 100644 --- a/app/src/main/java/com/aiosman/ravenow/ui/agent/AddAgent.kt +++ b/app/src/main/java/com/aiosman/ravenow/ui/agent/AddAgent.kt @@ -227,6 +227,7 @@ fun AddAgentScreen() { Text( text = "${AppState.profile?.nickName ?: "User"} ${stringResource(R.string.welcome_1)}", fontSize = 16.sp, + color = appColors.text, fontWeight = FontWeight.W600 ) } @@ -240,7 +241,7 @@ fun AddAgentScreen() { Text( text = stringResource(R.string.welcome_2), fontSize = 14.sp, - color = LocalAppTheme.current.text.copy(alpha = 0.6f), + color = appColors.text.copy(alpha = 0.6f), ) } } @@ -457,7 +458,7 @@ fun AddAgentScreen() { Text( text = stringResource(R.string.ideaing), - color = Color.Black.copy(alpha = 0.6f), + color = appColors.text.copy(alpha = 0.6f), fontSize = 14.sp ) } @@ -575,12 +576,13 @@ fun AddAgentScreen() { Icon( painter = painterResource(id = R.mipmap.icons_infor_edit), contentDescription = null, + tint = appColors.text, modifier = Modifier.size(18.dp), ) Spacer(modifier = Modifier.width(8.dp)) Text( text = stringResource(R.string.create_agent_hand), - color = Color.Black, + color = appColors.text, fontWeight = FontWeight.W600, fontSize = 14.sp ) @@ -640,13 +642,13 @@ fun AddAgentScreen() { Icon( painter = painterResource(id = R.mipmap.icons_info_magic), contentDescription = null, - tint = Color.Black, + tint = appColors.text, modifier = Modifier.size(18.dp), ) Spacer(modifier = Modifier.width(8.dp)) Text( text = stringResource(R.string.create_agent_auto), - color = Color.Black, + color = appColors.text, fontWeight = FontWeight.W600, fontSize = 14.sp ) @@ -657,6 +659,7 @@ fun AddAgentScreen() { Text( text = stringResource(R.string.avatar), fontSize = 12.sp, + color = appColors.text, fontWeight = FontWeight.W600 ) Spacer(modifier = Modifier.height(4.dp)) @@ -710,6 +713,7 @@ fun AddAgentScreen() { Text( text = stringResource(R.string.agent_name), fontSize = 12.sp, + color = appColors.text, fontWeight = FontWeight.W600 ) Spacer(modifier = Modifier.height(4.dp)) @@ -724,6 +728,7 @@ fun AddAgentScreen() { Text( text = stringResource(R.string.agent_desc), fontSize = 12.sp, + color = appColors.text, fontWeight = FontWeight.W600 ) Spacer(modifier = Modifier.height(4.dp)) @@ -753,7 +758,6 @@ fun AddAgentScreen() { ) } } - ActionButton( modifier = Modifier .width(345.dp) @@ -797,6 +801,7 @@ fun AddAgentScreen() { // 创建成功,清空数据并关闭页面 model.clearData() navController.popBackStack() + AppState.agentCreatedSuccess = true } } catch (e: Exception) { // 显示错误信息 diff --git a/app/src/main/java/com/aiosman/ravenow/ui/composables/AgentCreatedSuccessIndicator.kt b/app/src/main/java/com/aiosman/ravenow/ui/composables/AgentCreatedSuccessIndicator.kt new file mode 100644 index 0000000..2d44741 --- /dev/null +++ b/app/src/main/java/com/aiosman/ravenow/ui/composables/AgentCreatedSuccessIndicator.kt @@ -0,0 +1,75 @@ +package com.aiosman.ravenow.ui.composables + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +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.width +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Icon +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.aiosman.ravenow.AppState +import com.aiosman.ravenow.LocalAppTheme +import com.aiosman.ravenow.R +import com.aiosman.ravenow.ui.composables.toolbar.CollapsingToolbarScaffoldScopeInstance.align +import kotlinx.coroutines.delay + +@Composable +fun AgentCreatedSuccessIndicator() { + val appColors = LocalAppTheme.current + if (AppState.agentCreatedSuccess) { + Box( + modifier = Modifier + .fillMaxSize() + .padding(bottom = 70.dp), + contentAlignment = Alignment.BottomCenter + ) { + Box( + modifier = Modifier + .width(150.dp) + .height(40.dp) + .background(appColors.text.copy(alpha = 0.5f), shape = RoundedCornerShape(15.dp)), + contentAlignment = Alignment.CenterStart + ) { + Row( + verticalAlignment = Alignment.CenterVertically, + modifier = Modifier.padding(horizontal = 8.dp, vertical = 6.dp) + ) { + Icon( + painter = painterResource(id = R.mipmap.bars_x_buttons_home_n_copy_2), + contentDescription = null, + modifier = Modifier.size(20.dp), + tint = Color.Unspecified + ) + Spacer(modifier = Modifier.width(7.dp)) + Text( + text = stringResource(R.string.create_success), + color = appColors.background, + fontSize = 13.sp + ) + } + } + } + + + LaunchedEffect(Unit) { + delay(3000) + AppState.agentCreatedSuccess = false + } + } +} + diff --git a/app/src/main/java/com/aiosman/ravenow/ui/composables/form/FormTextInput.kt b/app/src/main/java/com/aiosman/ravenow/ui/composables/form/FormTextInput.kt index 3fb8fcf..3f4c97b 100644 --- a/app/src/main/java/com/aiosman/ravenow/ui/composables/form/FormTextInput.kt +++ b/app/src/main/java/com/aiosman/ravenow/ui/composables/form/FormTextInput.kt @@ -100,7 +100,7 @@ fun FormTextInput( modifier = Modifier .size(16.dp) .align(Alignment.TopStart), - tint = Color.Unspecified.copy(alpha = 0.4f) + tint = AppColors.text.copy(alpha = 0.4f) ) Row( verticalAlignment = Alignment.CenterVertically diff --git a/app/src/main/java/com/aiosman/ravenow/ui/composables/form/FormTextInput2.kt b/app/src/main/java/com/aiosman/ravenow/ui/composables/form/FormTextInput2.kt index 46c4193..cf7bc18 100644 --- a/app/src/main/java/com/aiosman/ravenow/ui/composables/form/FormTextInput2.kt +++ b/app/src/main/java/com/aiosman/ravenow/ui/composables/form/FormTextInput2.kt @@ -101,7 +101,7 @@ fun FormTextInput2( modifier = Modifier .size(16.dp) .align(Alignment.TopStart), - tint = Color.Unspecified.copy(alpha = 0.4f) + tint = AppColors.text.copy(alpha = 0.4f) ) Row( verticalAlignment = Alignment.CenterVertically diff --git a/app/src/main/java/com/aiosman/ravenow/ui/index/CreateBottomSheet.kt b/app/src/main/java/com/aiosman/ravenow/ui/index/CreateBottomSheet.kt index dca8df0..f8ff1e5 100644 --- a/app/src/main/java/com/aiosman/ravenow/ui/index/CreateBottomSheet.kt +++ b/app/src/main/java/com/aiosman/ravenow/ui/index/CreateBottomSheet.kt @@ -66,7 +66,8 @@ fun CreateBottomSheet( painter = painterResource(R.mipmap.h_cj_rw_icon), contentDescription = null, modifier = Modifier - .padding(start = 16.dp) + .padding(start = 16.dp), + colorFilter = androidx.compose.ui.graphics.ColorFilter.tint(appColors.text) ) Spacer(modifier = Modifier.weight(1f)) Text( @@ -81,7 +82,8 @@ fun CreateBottomSheet( painter = painterResource(R.mipmap.h_cj_x_img), contentDescription = null, modifier = Modifier - .padding(end = 18.dp) + .padding(end = 18.dp), + colorFilter = androidx.compose.ui.graphics.ColorFilter.tint(appColors.text) ) }