|
|
@@ -57,6 +57,8 @@ class AiKeyboardProloguePanelComponent @JvmOverloads constructor(
|
|
|
private lateinit var vClearBtn: View
|
|
|
private lateinit var vSendBtn: View
|
|
|
|
|
|
+ private lateinit var vPrologueAiChatComponent: AiChatComponent
|
|
|
+
|
|
|
private lateinit var mKeyListItems: Items
|
|
|
private lateinit var mKeyListAdapter: MultiTypeAdapter
|
|
|
|
|
|
@@ -67,6 +69,11 @@ class AiKeyboardProloguePanelComponent @JvmOverloads constructor(
|
|
|
|
|
|
private lateinit var mWaitLoadingController: WaitLoadingController
|
|
|
|
|
|
+ /**
|
|
|
+ * 当前点击的条目,用于点击重新生成时,重新生成内容
|
|
|
+ */
|
|
|
+ private var mCurrentClickItem: AiKeyboardKeyModel? = null
|
|
|
+
|
|
|
override fun onInflateViewId(): Int {
|
|
|
return R.layout.component_ai_keyboard_prologue_panel
|
|
|
}
|
|
|
@@ -80,6 +87,7 @@ class AiKeyboardProloguePanelComponent @JvmOverloads constructor(
|
|
|
vDeleteBtn = view.findViewById(R.id.delete_btn)
|
|
|
vClearBtn = view.findViewById(R.id.clear_btn)
|
|
|
vSendBtn = view.findViewById(R.id.send_btn)
|
|
|
+ vPrologueAiChatComponent = view.findViewById(R.id.prologue_ai_chat_component)
|
|
|
}
|
|
|
|
|
|
override fun bindView(view: View) {
|
|
|
@@ -301,6 +309,16 @@ class AiKeyboardProloguePanelComponent @JvmOverloads constructor(
|
|
|
KeyboardHolder.getKeyboardService()?.getKeyboardViewModel()?.getPrologueList(onFail = {
|
|
|
ToastUtils.showShort(it)
|
|
|
})
|
|
|
+ // 监听重新生成按钮点击
|
|
|
+ vPrologueAiChatComponent.setOnActionClickListener(object :
|
|
|
+ AiChatComponent.OnActionClickListener {
|
|
|
+ override fun onReGenerateClick() {
|
|
|
+ mCurrentClickItem?.let {
|
|
|
+ // 重新生成内容
|
|
|
+ handleItemClickLogic(it)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -351,6 +369,9 @@ class AiKeyboardProloguePanelComponent @JvmOverloads constructor(
|
|
|
|
|
|
LogUtil.d("当前帮助模式 => $helpMode")
|
|
|
|
|
|
+ // 保存当前点击项的数据
|
|
|
+ mCurrentClickItem = item
|
|
|
+
|
|
|
// 获取剪切板内容
|
|
|
val clipboardText =
|
|
|
KeyboardHolder.getKeyboardService()?.getKeyboardViewModel()?.userClipboardData?.value
|