* @Author: luozheng 1732036298@qq.com
* @Date: 2024-06-20 15:11:17
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-10-24 17:32:52
+ * @LastEditTime: 2024-10-24 18:35:43
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoicePresenter.cpp
*/
#include "AppViewIDs.h"
return true;
}
+ bool AiVoicePresenter::OnPress(UIView& view, const PressEvent& event)
+ {
+ UNUSED(event);
+ std::string viewId = view.GetViewId();
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AiVoicePresenter::OnRelease %s", viewId.c_str());
+ /* ----------------------------- 重置60s取消常亮屏timer ---------------------------- */
+ model->reset_ai_screen60s_timer_time();
+ /* -------------------------------------------------------------------------- */
+ std::unordered_map<std::string, std::pair<int16_t, int16_t>> viewIdMap = {
+ {AIVOICERETURNRESULTTEXT_RETURN_BUTTON_VIEW_ID, {AIVOICE_RETURN_RESULT_TEXT_VIEWID, AIVOICE_STARTCHAT_VIEWID}}, // 返回一级界面,并清除手表聊天记录
+ {AIVOICERETURNRESULTTEXT_CONTINUECHAT_BUTTON_VIEW_ID, {AIVOICE_RETURN_RESULT_TEXT_VIEWID, AIVOICE_LISTENING_VIEWID}}, // 返回继续聆听,并清除手表聊天记录
+ };
+ auto it = viewIdMap.find(viewId);
+ if (it != viewIdMap.end())
+ {
+ if (it->first == AIVOICERETURNRESULTTEXT_CONTINUECHAT_BUTTON_VIEW_ID) // 点击继续对话按钮要发取消当前对话指令,避免AI回应中途按继续对话按钮没有取消上一次对话问题
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CancelCurAIChat");
+ AiVoiceModel::GetInstance().CancelCurAIChat();
+ PlayersModel::GetInstance()->HandPausePhoneMusic(); // 暂停手机音乐
+ PlayersModel::GetInstance()->PlayerPause(); // 暂停手机音乐
+ }
+ ChangeViewAndLogicOperator(it->second.first, it->second.second);
+ return true;
+ }
+ else
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Return false if viewId doesn't match any entry in the map");
+ return false;
+ }
+ return true;
+ }
+
bool AiVoicePresenter::OnRelease(UIView &view, const ReleaseEvent &event)
{
UNUSED(event);
{AIVOICECONNECTTIMEOUT_ENSURE_BUTTON_VIEW_ID, {AIVOICE_CONNECT_TIMEOUT_VIEWID, AIVOICE_STARTCHAT_VIEWID}}, // 返回一级界面
{CANCEL_THINKING_BUTTON_VIEW_ID, {AIVOICE_THINKING_VIEWID, AIVOICE_STARTCHAT_VIEWID}}, // 返回一级界面
{AIVOICECONNECTINGVIEW_CANCEL_BUTTON_VIEW_ID, {AIVOICE_AIMODE_CONNECTING, AIVOICE_STARTCHAT_VIEWID}}, // 返回一级界面
- {AIVOICERETURNRESULTTEXT_RETURN_BUTTON_VIEW_ID, {AIVOICE_RETURN_RESULT_TEXT_VIEWID, AIVOICE_STARTCHAT_VIEWID}}, // 返回一级界面,并清除手表聊天记录
- {AIVOICERETURNRESULTTEXT_CONTINUECHAT_BUTTON_VIEW_ID, {AIVOICE_RETURN_RESULT_TEXT_VIEWID, AIVOICE_LISTENING_VIEWID}}, // 返回继续聆听,并清除手表聊天记录
+ // {AIVOICERETURNRESULTTEXT_RETURN_BUTTON_VIEW_ID, {AIVOICE_RETURN_RESULT_TEXT_VIEWID, AIVOICE_STARTCHAT_VIEWID}}, // 返回一级界面,并清除手表聊天记录
+ // {AIVOICERETURNRESULTTEXT_CONTINUECHAT_BUTTON_VIEW_ID, {AIVOICE_RETURN_RESULT_TEXT_VIEWID, AIVOICE_LISTENING_VIEWID}}, // 返回继续聆听,并清除手表聊天记录
};
auto it = viewIdMap.find(viewId);
if (it != viewIdMap.end())
{
- if (it->first == AIVOICERETURNRESULTTEXT_CONTINUECHAT_BUTTON_VIEW_ID) // 点击继续对话按钮要发取消当前对话指令,避免AI回应中途按继续对话按钮没有取消上一次对话问题
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CancelCurAIChat");
- AiVoiceModel::GetInstance().CancelCurAIChat();
- PlayersModel::GetInstance()->HandPausePhoneMusic(); // 暂停手机音乐
- PlayersModel::GetInstance()->PlayerPause(); // 暂停手机音乐
- }
+ // if (it->first == AIVOICERETURNRESULTTEXT_CONTINUECHAT_BUTTON_VIEW_ID) // 点击继续对话按钮要发取消当前对话指令,避免AI回应中途按继续对话按钮没有取消上一次对话问题
+ // {
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CancelCurAIChat");
+ // AiVoiceModel::GetInstance().CancelCurAIChat();
+ // PlayersModel::GetInstance()->HandPausePhoneMusic(); // 暂停手机音乐
+ // PlayersModel::GetInstance()->PlayerPause(); // 暂停手机音乐
+ // }
ChangeViewAndLogicOperator(it->second.first, it->second.second);
return true;
}
uint16_t keyID = event.GetKeyId();
uint16_t keyState = event.GetState();
// 如果是power键,且是亮屏状态,按键释放就返回上一级
- if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)
+ if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)
{
NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
AiVoiceModel::GetInstance().CancelCurAIChat();