#include "aivoice/include/AiVoiceSelectView.h"
#include "cat1_ws.h"
-
+#include <mutex>
namespace OHOS
{
#ifdef __cplusplus
if (model->GetSelect4gorbt() == AI_SELECT_4G)
{
preHeight = 0;
- ChangeViewAndLogicOperator(model->GetCurView(), AIVOICE_RETURN_RESULT_TEXT_VIEWID);
+ if (model->GetCurView() == AIVOICE_LISTENING_VIEWID || model->GetCurView() == AIVOICE_THINKING_VIEWID)
+ ChangeViewAndLogicOperator(model->GetCurView(), AIVOICE_RETURN_RESULT_TEXT_VIEWID);
}
else if (model->GetSelect4gorbt() == AI_SELECT_BT)
{
bool AiVoicePresenter::ChangeViewAndLogicOperator(int16_t hideView, int16_t showView)
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AiVoicePresenter::ChangeViewOperator");
+
+ // 加锁,作用域结束时自动释放锁
+ std::lock_guard<std::mutex> lock(m_mutex);
+
bool isSameView = (hideView == showView);
if (isSameView)
{
auto it = viewIdMap.find(viewId);
if (it != viewIdMap.end())
{
+ if (it->first != ALERT_APPBLUETOOTH_AND_4GNETWORK_ENSURE_BUTTON_VIEW_ID)
+ {
+ if (model->GetSelect4gorbt() == AI_SELECT_4G)
+ {
+ dinit_ai_task();
+ LOS_Msleep(50);
+ }
+ }
ChangeViewAndLogicOperator(it->second.first, it->second.second);
return true;
}