-/***
+/***
+ * @Date: 2024-07-10 16:58:06
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-07-25 10:57:25
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/message/include/MessageCardView.h
+ */
+/***
* @Date: 2024-04-15 10:55:58
* @LastEditors: Caisking 3449750381@qq.com
* @LastEditTime: 2024-06-22 17:52:45
#include "message/include/MessageModel.h"
namespace OHOS
{
- #define MAINMESSAGEVIEW "messagecard"
+#define MAINMESSAGEVIEW "messagecard"
class MessageCardView : public AppGroupView
{
public:
bool InitView(void *caller) override;
bool GetInitViewState(void);
void SetUpView(MessageCardView *messageCardView);
- UIList *GetList();
+ void UpdateMessageCard(void);
+ UIList *GetList(void);
private:
void ClearAll(void);
void PreLoad(void) override;
void UnLoad(void) override;
void SetLackView(bool flag);
+
private:
MessageLackView *messageLackView{nullptr};
MessageCardView *messageCardView{nullptr};
bool viewiInitStatus{false};
- bool isLack{false};
+ bool isLack{true};
void ClearAll(void);
};
void SetPopupViewState(bool state); // 设置弹出视图状态
bool GetPopupViewState(); // 获取弹出视图状态
bool HasDataVector(); // 判断数组是否存在数据
+ void UpdateMessageView();
private:
MessageModel &operator=(const MessageModel &);
MessageList->SetAdapter(p_MessageListAdapter);
MessageList->RefreshList();
- // /*删除按键*/
- // int top = MessageList->GetWidth() + 130;
- // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "top %d", top);
- // InitButtonExt(DeleteButton, 43, top, 380, 100, DELETEALLDATA, STR_CLEANALL, 30);
- // DeleteButton->SetOnClickListener((UIView::OnClickListener *)OHOS::MessageControlPresenter::GetInstance());
- // Add(DeleteButton);
-
SetDraggable(false);
SetTouchable(false);
initViewStatus = true;
{
messageCardView->AddMessageToList(itemInfo[i]);
}
+ }
+ void MessageCardView::UpdateMessageCard()
+ {
+
}
UIList *MessageCardView::GetList()
{
+/***
+ * @Date: 2024-07-11 14:52:39
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-07-25 10:28:36
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageControlView.cpp
+ */
+/***
+ * @Date: 2024-07-11 14:52:39
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-07-25 09:41:22
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageControlView.cpp
+ */
+/***
+ * @Date: 2024-07-11 14:52:39
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-07-25 09:32:03
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageControlView.cpp
+ */
/*
* Copyright (c) CompanyNameMagicTag 2022-2022. All rights reserved.
* Description: MessageControlView.cpp
}
Add(messageCardView);
Add(messageLackView);
- uint8_t status = MessageModel::GetInstance().HasDataVector();
- if (status == 0)
+
+ isLack = MessageModel::GetInstance().HasDataVector();
+ if (!isLack)
{
messageCardView->SetVisible(false);
messageLackView->SetVisible(true);
void MessageControlView::SetLackView(bool flag)
{
- if (flag)
+ // 避免相同设置多次赋值
+ if (flag == isLack)
+ return;
+
+ isLack = flag;
+
+ if (isLack)
{
messageLackView->SetVisible(true);
messageCardView->SetVisible(false);
#include "broadcast_feature.h"
#include "broadcast_service.h"
#include "bleANCS.h"
+#include "AppViewIDs.h"
+#include "NativeAbility.h"
+#include "MainModel.h"
+#include "MainViewSample.h"
+#include "message/include/MessageCardView.h"
+#include "message/include/MessageView.h"
+#include "message/include/MessageControlView.h"
#define MESSAGE_JSON_FILE "user/userdata/ancs.json"
#define MESSAGE_JSON_DIR "user/userdata/message/"
// 加载Message文件
bool MessageModel::LoadMessagesFromStorage()
{
- //加载消息过滤文件
+ // 加载消息过滤文件
filtration_file_read();
std::ifstream file(MESSAGE_JSON_FILE);
if (!file.is_open())
// 保存Message文件
bool MessageModel::SaveMessagesToStorage()
{
- //消息过滤文件保存
+ // 消息过滤文件保存
filtration_file_save();
if (MessageVector.empty())
{
{
return popupViewState_;
}
+ void MessageModel::UpdateMessageView()
+ {
+ // 更新主界面卡片
+ if (MessageControlView::GetInstance())
+ {
+#if 0
+ MessageControlView::GetInstance()->SetLackView(false);
+ auto messageCard = MessageCardView::GetInstance();
+ if (messageCard) // 检查主界面卡片实例
+ {
+ uint8_t status = MessageModel::GetInstance().HasDataVector();
+ if (status)
+ {
+ InitMessageListItems(); // 更新列表item
+ MessageListAdapter *p_MessageListAdapter = new MessageListAdapter();
+ messageCard->GetList()->RefreshList();
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "UpdateListView messageCardView");
+ }
+ else
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "No new data to refresh the message card list.");
+ }
+ }
+ else
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "UpdateListView: messageCardView instance is nullptr");
+ }
+#endif
+ // 配置主界面回退界面
+ CardId Id = MainViewSample::GetInstance()->GetHorCurrentCard();
+ MainModel::GetInstance().SetFromSetCardView(true);
+ MainModel::GetInstance().SetFromCardId(Id);
+
+ NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN);
+ return;
+ }
+
+ // 更新Message界面
+ auto messageView = MessageView::GetInstance();
+ if (messageView) // 检查Message界面实例
+ {
+ NativeAbility::GetInstance().ChangeSlice(VIEW_MESSAGE);
+ }
+ else
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "UpdateListView: MessageView instance is nullptr");
+ }
+ }
}
/***
* @Date: 2024-07-12 19:25:33
* @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-07-12 20:20:44
+ * @LastEditTime: 2024-07-25 10:22:03
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/uiservice/include/ui_service.h
*/
/*
UI_UPDATE_SILENT_MODE, //更新静音模式
UI_UPDATE_WEATHER_DATA, //天气数据更新
- UI_UPDATE_SLEEP_DATA, //睡眠数据更新
+ UI_UPDATE_SLEEP_DATA, //更新睡眠数据
+ UI_UPDATE_MESSAGE_DATA, //更新消息数据
UI_AI_JUMP_TO_RESULT_VIEW, //跳转到返回结果视图
UI_UPDATE_USER_QUESTION_STR,//更新用户问题的字符串
#include "soundandvibration/include/SoundAndVibrationModel.h"
#include "rebootandshutdown/include/RebootAndShutdownModel.h"
#include "sleep/include/SleepModel.h"
+#include "message/include/MessageModel.h"
#include "aivoice/include/AiVoiceModel.h"
#include "weather/include/WeatherModel.h"
#include "uiservice/include/ui_service.h"
static void HandleUpdateAIAnswerStr(Request *request);
static void HandleWatchFirstPaired(Request *request);
static void HandleUpdateSleep(Request *request);
+static void HandleUpdateMessage(Request *request);
// 消息处理程序项数组(每个消息类型对应一个处理函数,函数名以 Handle 开头)
{UI_HAND_WATCH_FIRST_PAIRED,HandleWatchFirstPaired},
{UI_UPDATE_SLEEP_DATA, HandleUpdateSleep},
+ {UI_UPDATE_MESSAGE_DATA, HandleUpdateMessage},
};
/* -------------------------------------------------------------------------- */
static void ScreenTurnOn(Request *request)
GraphicService::GetInstance()->PostGraphicEvent(
std::bind(&OHOS::RebootAndShutdownModel::HandFirstTimeStartJumpToMainView, &OHOS::RebootAndShutdownModel::GetInstance()));
}
-
+//更新睡眠数据
void HandleUpdateSleep(Request *request)
{
- WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleEarphoneConnected");
+ WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateSleep");
GraphicService::GetInstance()->PostGraphicEvent(
std::bind(&OHOS::SleepModel::UpdateSleepView, &OHOS::SleepModel::GetInstance()));
}
+//更新消息数据
+void HandleUpdateMessage(Request *request)
+{
+ WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateMessage");
+ GraphicService::GetInstance()->PostGraphicEvent(
+ std::bind(&OHOS::MessageModel::UpdateMessageView, &OHOS::MessageModel::GetInstance()));
+}
/* -------------------------------------------------------------------------- */
#ifdef __cplusplus
}
if (strcmp(view.GetViewId(), DELETEBUTTON) == 0)
{
NotificationManager::GetInstance()->StopNotify();
+ // 点击关闭之后通知list进行刷新
SendMsgToUIService(UI_UPDATE_MESSAGE_DATA, 0, nullptr, 0);
}