Browse Source

[feat]亲密度分析,修改生成专属键盘的Toast文案

hezihao 7 months ago
parent
commit
827b134092

+ 2 - 1
assets/string/base/string.xml

@@ -378,7 +378,8 @@
     <string name="intimacy_generate_character_input_tip">请输入人设名称</string>
     <string name="intimacy_generate_character_add_keyboard">添加到键盘</string>
     <string name="intimacy_generate_character">生成定制人设</string>
-    <string name="intimacy_generate_character_add_success">添加成功</string>
+    <string name="intimacy_generate_character_add_success">已添加到%s与%s专属键盘中</string>
+    <string name="intimacy_generate_character_add_fail">添加失败,请重试</string>
 
     <string name="uploading_tip">正在上传中,请稍后</string>
 

+ 22 - 5
lib/module/intimacy_analyse/intimacy_analyse_upload/intimacy_analyse_upload_controller.dart

@@ -9,6 +9,7 @@ import 'package:keyboard/data/bean/upload_info.dart';
 import 'package:keyboard/data/repository/account_repository.dart';
 import 'package:keyboard/resource/string.gen.dart';
 import 'package:keyboard/utils/error_handler.dart';
+import 'package:keyboard/utils/string_format_util.dart';
 import 'package:keyboard/utils/toast_util.dart';
 import 'package:keyboard/utils/upload/upload_scene_type.dart';
 import 'package:keyboard/utils/upload/upload_state.dart';
@@ -429,13 +430,29 @@ class IntimacyAnalyseUploadController extends BaseController {
     // 聊天策略
     String chatStrategy = intimacyAnalyzeResult.value?.chatStrategy ?? "";
 
-    // 弹出预测方向的编辑弹窗
+    // 弹出生成亲密度人设的编辑弹窗
     IntimacyGenerateCharacterEditDialog.show((String name) async {
       // 调用生成接口
-      await intimacyAnalyzeRepository.intimacyCharacterGenerate(
-        IntimacyGenerateCharacterRequest(keyboardId, name, chatStrategy),
-      );
-      ToastUtil.show(StringName.intimacyGenerateCharacterAddSuccess);
+      try {
+        await intimacyAnalyzeRepository.intimacyCharacterGenerate(
+          IntimacyGenerateCharacterRequest(keyboardId, name, chatStrategy),
+        );
+        // 获取我的用户信息和Ta的用户信息
+        String myName = userInfo.value?.name ?? "";
+        // 对方用户的头像
+        String taName = currentKeyboardInfo.value?.name ?? "";
+        ToastUtil.show(
+          StringFormatUtil.formatStrArr(
+            StringName.intimacyGenerateCharacterAddSuccess,
+            [myName, taName],
+          ),
+        );
+      } catch (e) {
+        ErrorHandler.toastError(
+          e,
+          message: StringName.intimacyGenerateCharacterAddFail,
+        );
+      }
     });
   }
 }

+ 4 - 2
lib/resource/string.gen.dart

@@ -274,7 +274,8 @@ class StringName {
   static final String intimacyGenerateCharacterInputTip = 'intimacy_generate_character_input_tip'.tr; // 请输入人设名称
   static final String intimacyGenerateCharacterAddKeyboard = 'intimacy_generate_character_add_keyboard'.tr; // 添加到键盘
   static final String intimacyGenerateCharacter = 'intimacy_generate_character'.tr; // 生成定制人设
-  static final String intimacyGenerateCharacterAddSuccess = 'intimacy_generate_character_add_success'.tr; // 添加成功
+  static final String intimacyGenerateCharacterAddSuccess = 'intimacy_generate_character_add_success'.tr; // 已添加到%s与%s专属键盘中
+  static final String intimacyGenerateCharacterAddFail = 'intimacy_generate_character_add_fail'.tr; // 添加失败,请重试
   static final String uploadingTip = 'uploading_tip'.tr; // 正在上传中,请稍后
   static final String preview = 'preview'.tr; // 预览
   static final String retry = 'retry'.tr; // 再试试
@@ -619,7 +620,8 @@ class StringMultiSource {
       'intimacy_generate_character_input_tip': '请输入人设名称',
       'intimacy_generate_character_add_keyboard': '添加到键盘',
       'intimacy_generate_character': '生成定制人设',
-      'intimacy_generate_character_add_success': '添加成功',
+      'intimacy_generate_character_add_success': '已添加到%s与%s专属键盘中',
+      'intimacy_generate_character_add_fail': '添加失败,请重试',
       'uploading_tip': '正在上传中,请稍后',
       'preview': '预览',
       'retry': '再试试',

+ 6 - 1
lib/utils/string_format_util.dart

@@ -7,8 +7,13 @@ class StringFormatUtil {
     return sprintf(str, [format]);
   }
 
+  /// 格式化字符串,可以传多个占位符的文字
+  static String formatStrArr(String str, List<String> formatArr) {
+    return sprintf(str, formatArr);
+  }
+
   /// 清除百分比符号
   static String removePercentSymbol(String str) {
     return str.replaceAll("%", "");
   }
-}
+}