|
|
@@ -13,6 +13,7 @@ import com.atmob.keyboard_android.component.child.IAiChatComponent
|
|
|
import com.atmob.keyboard_android.component.child.IAiKeyboardProloguePanelComponent
|
|
|
import com.atmob.keyboard_android.component.item.AiKeyboardKeyViewBinder
|
|
|
import com.atmob.keyboard_android.constant.Constants
|
|
|
+import com.atmob.keyboard_android.enums.HelpMode
|
|
|
import com.atmob.keyboard_android.ext.click
|
|
|
import com.atmob.keyboard_android.ext.setGone
|
|
|
import com.atmob.keyboard_android.ext.setVisible
|
|
|
@@ -172,13 +173,13 @@ class AiKeyboardProloguePanelComponent @JvmOverloads constructor(
|
|
|
if (it.isVip) {
|
|
|
// 检查是否VIP
|
|
|
UserInfoHelper.checkVip {
|
|
|
- controlAiChatPageShowing(true)
|
|
|
- LogUtil.d("Ai键盘 => 开场白类型-键盘面板,已经是VIP,打开Ai内容面板")
|
|
|
+ handleItemClickLogic(it)
|
|
|
+ LogUtil.d("Ai键盘,已经是VIP,打开Ai内容面板")
|
|
|
}
|
|
|
} else {
|
|
|
// 不需要VIP,直接打开
|
|
|
- controlAiChatPageShowing(true)
|
|
|
- LogUtil.d("Ai键盘 => 开场白类型-键盘面板,不需要VIP,直接打开Ai内容面板")
|
|
|
+ handleItemClickLogic(it)
|
|
|
+ LogUtil.d("Ai键盘,不需要VIP,直接进行下一步")
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
@@ -307,6 +308,8 @@ class AiKeyboardProloguePanelComponent @JvmOverloads constructor(
|
|
|
AiKeyboardKeyModel(
|
|
|
// 显示的文本 = 名字
|
|
|
text = it.name,
|
|
|
+ // 拓展字段,存储话题名字
|
|
|
+ payload = it.name,
|
|
|
// 是否需要VIP
|
|
|
isVip = false
|
|
|
)
|
|
|
@@ -328,4 +331,73 @@ class AiKeyboardProloguePanelComponent @JvmOverloads constructor(
|
|
|
vPrologueRouteComponent.routeChildComponent(FakeComponent::class.java, true)
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 处理条目点击逻辑
|
|
|
+ */
|
|
|
+ private fun handleItemClickLogic(item: AiKeyboardKeyModel) {
|
|
|
+ // 判断帮助模式
|
|
|
+ val helpMode = KeyboardHolder.getKeyboardService()
|
|
|
+ ?.getKeyboardViewModel()?.helpMode?.value
|
|
|
+ if (helpMode == null) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ LogUtil.d("当前帮助模式 => $helpMode")
|
|
|
+
|
|
|
+ // 获取剪切板内容
|
|
|
+ val clipboardText =
|
|
|
+ KeyboardHolder.getKeyboardService()?.getKeyboardViewModel()?.userClipboardData?.value
|
|
|
+ ?: ""
|
|
|
+ if (clipboardText.isBlank()) {
|
|
|
+ ToastUtils.showShort(context.resources.getString(R.string.no_clipboard_data_tip))
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if (HelpMode.HELP_CHAT == helpMode) {
|
|
|
+ // 帮聊只会生成一条内容,直接添加到输入框
|
|
|
+ doChatSuperReply(item.payload)
|
|
|
+ } else {
|
|
|
+ // 教你说和开场白,有多条数据,需要添加到列表中展示
|
|
|
+ if (HelpMode.TEACH_YOU_SAY == helpMode) {
|
|
|
+ doChatSuperSpeak(item.payload)
|
|
|
+ controlAiChatPageShowing(true)
|
|
|
+ } else if (HelpMode.OPEN_REMARKS == helpMode) {
|
|
|
+ doChatPrologue(item.payload)
|
|
|
+ controlAiChatPageShowing(true)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 生成<帮聊>的内容
|
|
|
+ *
|
|
|
+ * @param characterId 人设Id
|
|
|
+ */
|
|
|
+ private fun doChatSuperReply(characterId: String) {
|
|
|
+ val viewModel = KeyboardHolder.getKeyboardService()?.getKeyboardViewModel()
|
|
|
+ viewModel?.chatSuperReply(characterId, onFail = {
|
|
|
+ ToastUtils.showShort(it)
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 生成<教你说>的内容
|
|
|
+ */
|
|
|
+ private fun doChatSuperSpeak(characterId: String) {
|
|
|
+ val viewModel = KeyboardHolder.getKeyboardService()?.getKeyboardViewModel()
|
|
|
+ viewModel?.chatSuperSpeak(characterId, onFail = {
|
|
|
+ ToastUtils.showShort(it)
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 生成<开场白>的内容
|
|
|
+ */
|
|
|
+ private fun doChatPrologue(name: String) {
|
|
|
+ val viewModel = KeyboardHolder.getKeyboardService()?.getKeyboardViewModel()
|
|
|
+ viewModel?.chatPrologue(name, onFail = {
|
|
|
+ ToastUtils.showShort(it)
|
|
|
+ })
|
|
|
+ }
|
|
|
}
|