button->SetStyleForState(STYLE_BACKGROUND_COLOR, DEFAULT_BACKGROUND_COLOR, UIButton::PRESSED);
button->SetStyleForState(STYLE_BORDER_COLOR, PRESSED_BORDER_COLOR, UIButton::PRESSED);
button->SetVisible(true);
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitButton is succeed");
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitButton is succeed");
return true;
}
/* -------------------------------------------------------------------------- */
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/message/src/MessageCardView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/message/src/MessageLackView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/message/src/MessageControlView.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/message/src/MessageControlPresenter.cpp
#遥控拍照
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/takephotos/src/TakephotosPresenter.cpp
+/***
+ * @Date: 2024-04-15 10:55:58
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-06-22 17:52:45
+ * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/message/include/MessageCardView.h
+ */
/***
* @Date: 2024-04-15 10:55:58
* @LastEditors: Caisking 3449750381@qq.com
#include "message/include/MessageModel.h"
namespace OHOS
{
+ #define MAINMESSAGEVIEW "messagecard"
class MessageCardView : public AppGroupView
{
public:
--- /dev/null
+/***
+ * @Date: 2024-06-22 11:36:07
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-06-22 14:57:34
+ * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/message/include/MessageControlPresenter.h
+ */
+/***
+ * @Date: 2024-06-22 11:36:16
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-06-22 11:39:50
+ * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageControlPresenter.cpp
+ */
+
+#ifndef MESSAGE_CONTROL_PRESENTER_H
+#define MESSAGE_CONTROL_PRESENTER_H
+
+#include "Presenter.h"
+#include "components/ui_view.h"
+#include "components/ui_image_view.h"
+#include "ohos_types.h"
+#include "UiConfig.h"
+#include "AppViewIDs.h"
+#include "components/ui_label_ext.h"
+#include "language/font/ui_resource_string.h"
+#include "message/include/MessageControlView.h"
+
+namespace OHOS
+{
+ class MessageControlView;
+ class MessageControlPresenter : public UIView::OnClickListener
+ {
+ public:
+ MessageControlPresenter(){};
+ virtual ~MessageControlPresenter(){};
+ static MessageControlPresenter *GetInstance()
+ {
+ static MessageControlPresenter instance;
+ return &instance;
+ }
+
+ bool OnClick(UIView &view, const ClickEvent &event) override;
+
+ private:
+ UIView *view_{nullptr};
+ };
+}
+#endif
\ No newline at end of file
#include "message/include/MessageCardView.h"
#include "message/include/MessagePresenter.h"
#include "uicomponents/UIComponents.h"
+#include "message/include/MessageControlPresenter.h"
namespace OHOS
{
MessageList->EnableAutoAlign(true);
MessageList->SetElastic(true); // 设置回弹效果
MessageList->SetMaxScrollDistance(MAX_SCR_DIS);
+ MessageList->SetViewId(MAINMESSAGEVIEW);
// SetYScrollBarVisible(true); // 设置滑动滚动条
- MessageList->SetOnClickListener(static_cast<UIView::OnClickListener *>(MessagePresenter::GetInstance()));
+ UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::MessageControlPresenter::GetInstance();
+ if (clickListener == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AddButton::OnStart clickListener NULL");
+ return false;
+ }
+ MessageList->SetOnClickListener(clickListener);
UIView::OnDragListener *Messagedraglistener = static_cast<UIView::OnDragListener *>(MessagePresenter::GetInstance());
#if 0
/*删除按键*/
--- /dev/null
+/***
+ * @Date: 2024-04-15 10:55:58
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-04-16 17:36:17
+ * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/message/training_card/src/MessageControlPresenter.cpp
+ */
+
+#include "message/include/MessageControlPresenter.h"
+#include "message/include/MessageControlView.h"
+#include "message/include/MessageModel.h"
+
+#include "AppViewIDs.h"
+#include "components/ui_label_ext.h"
+#include "language/font/ui_resource_string.h"
+#include "NativeAbility.h"
+#include "components/ui_label_ext.h"
+#include "language/font/ui_resource_string.h"
+#include "UiConfig.h"
+#include "wearable_log.h"
+
+#include "uicomponents/UIComponents.h"
+
+namespace OHOS
+{
+ bool MessageControlPresenter::OnClick(UIView &view, const ClickEvent &event)
+ {
+ UNUSED(event);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MessageControlView::OnClick %s", view.GetViewId());
+ if (strcmp(view.GetViewId(), MAINMESSAGEVIEW) != 0)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Error: View is not List");
+ return false;
+ }
+
+ if (!MessageModel::GetInstance().GetJsonLoadStatus())
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Error: Json data not loaded.");
+ return false;
+ }
+
+ // 获取 MessageItemView 并检查索引
+ MessageItemView *p_MessageItemView = static_cast<MessageItemView *>(&view);
+ if (!p_MessageItemView)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Error: Invalid view type.");
+ return false;
+ }
+ MessageCardView::GetInstance()->GetList()->GetViewIndex();
+ int index = p_MessageItemView->GetMessageListIndex();
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "index is %d", index);
+ // 读取json数据
+ std::vector<MessageData> messageDataVector = MessageModel::GetInstance().LoadMessageData();
+
+ if (messageDataVector.empty())
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Error: messageDataVector is empty");
+ return false;
+ }
+
+ if (index < 0)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Error: Invalid index (index < 0)");
+ return false;
+ }
+
+ if (index >= messageDataVector.size())
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Error: Invalid index (index out of range)");
+ return false;
+ }
+
+ int arraynum = messageDataVector.size() - 1;
+ MessageData &messageData = messageDataVector[arraynum - index];
+
+ MessageModel::GetInstance().SetCurrentMessageData(&messageData);
+ MessageModel::GetInstance().SetCurrentIndex(arraynum - index);
+ // 切换到详情界面
+ NativeAbility::GetInstance().ChangeSlice(VIEW_MESSAGE_SHOW);
+
+ return true; // 返回 true 表示点击事件处理成功
+ }
+} // namespace OHOS
\ No newline at end of file
*/
#include "message/include/MessageControlView.h"
#include "message/include/MessageModel.h"
+#include"message/include/MessageControlPresenter.h"
#include "wearable_log.h"
namespace OHOS
-/***
+/*
+ * @Date: 2024-06-21 09:56:18
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-06-22 15:32:37
+ * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageModel.cpp
+ */
+/*
* @Author: Caisking 3449750381@qq.com
* @Date: 2024-01-29 19:58:37
* @LastEditors: Caisking 3449750381@qq.com
// 这里根据解析的 JSON 数据类型修改 messagedata.isRead 的精确类型
messagedata.isRead = cJSON_GetObjectItem(item, "read")->valueint;
- PrintData(messagedata);
+ // PrintData(messagedata);
MessageVector.push_back(messagedata);
}
cJSON_Delete(root);
}
void MessageModel::PrintData(MessageData messagedata)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "**************************************");
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "--------------------------------------");
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Message Title: %s", (messagedata.labelTitle).c_str());
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Message Details: %s", (messagedata.labelDetails).c_str());
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Message Time: %s", (messagedata.labelTime).c_str());
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Message Read: %d", messagedata.isRead);
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "**************************************");
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "--------------------------------------");
}
void MessageModel::InitMessageListItems()
{
messageData.labelTitle = messageVector[i].labelTitle;
messageData.labelDetails = messageVector[i].labelDetails;
messageData.labelTime = messageVector[i].labelTime;
- PrintData(messageData);
+ // PrintData(messageData);
// 获取是否读取 来信 信息内容 时间
Messages[count] = {count, messageData.isRead, messageData.labelTitle, messageData.labelDetails, messageData.labelTime};
}
// 获取目前的message
MessageData *MessageModel::GetCurrentMessageData()
{
+ PrintData(message_);
return &message_;
}
// 设置目前的message
return true;
}
/* -------------------------------------------------------------------------- */
+ // 获取 MessageItemView 并检查索引
MessageItemView *p_MessageItemView = static_cast<MessageItemView *>(&view);
+ if (!p_MessageItemView)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Error: Invalid view type.");
+ return false;
+ }
+
int index = p_MessageItemView->GetMessageListIndex();
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "the index is %d", index);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "index is %d", index);
// 读取json数据
std::vector<MessageData> messageDataVector = MessageModel::GetInstance().LoadMessageData();
- if (!messageDataVector.empty())
+
+ if (messageDataVector.empty())
{
- // 选择点击按键的历史数据
- int arraynum = messageDataVector.size() - 1;
- MessageData messageData = messageDataVector[arraynum - index]; // 显示是倒序 id同理
- MessageModel::GetInstance().SetCurrentMessageData(&messageData);
- MessageModel::GetInstance().SetCurrentIndex(arraynum - index);
- NativeAbility::GetInstance().ChangeSlice(VIEW_MESSAGE_SHOW);
- return true;
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Error: messageDataVector is empty");
+ return false;
+ }
+
+ if (index < 0)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Error: Invalid index (index < 0)");
+ return false;
+ }
+
+ if (index >= messageDataVector.size())
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Error: Invalid index (index out of range)");
+ return false;
}
+
+ int arraynum = messageDataVector.size() - 1;
+ MessageData &messageData = messageDataVector[arraynum - index];
+
+ MessageModel::GetInstance().SetCurrentMessageData(&messageData);
+ MessageModel::GetInstance().SetCurrentIndex(arraynum - index);
+ // 切换到详情界面
+ NativeAbility::GetInstance().ChangeSlice(VIEW_MESSAGE_SHOW);
+
+ return true; // 返回 true 表示点击事件处理成功
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "the messageDataVector is error");
}
return true;
std::string messageStr = "【铁路12306】系统已自动为您生成订单EC09828333,04月23日G2231次,深圳北站13:31开。请您在2小时内完成支付。您可通过以下链接进行支付。https://www.12306.cn/index/";
#endif
std::string titleStr, timeStr, messageStr;
-
+
MessageShowView::MessageShowView()
{
g_pMessageShowView = this;
}
void MessageShowView::InitView()
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitView");
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitView");
/* -------------------------------------------------------------------------- */
title = new UILabel();
if (title == nullptr)
title->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
title->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
title->SetVisible(true);
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "title is ok!");
/* -------------------------------------------------------------------------- */
time = new UILabel();
if (time == nullptr)
time->SetLineBreakMode(UILabel::LINE_BREAK_ELLIPSIS);
time->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
time->SetVisible(true);
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "time is ok!");
/* -------------------------------------------------------------------------- */
/*初始化消息内容*/
InitializeButton(messageButton, 33, 157, 380, 350, "message");
messageButton->SetStyle(STYLE_BORDER_RADIUS, 30);
messageButton->SetText(messageStr.c_str());
- // messageButton->SetAlign(TEXT_ALIGNMENT_LEFT);
messageButton->SetTextColor(Color::Gray());
messageButton->SetTouchable(false);
messageButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "messageButton");
/*加载清除按键*/
- InitButtonExt(deleteButton, 43, 527, 380, 100, DELETEBUTTON, STR_CLOSE, 30);
+ InitButtonExt(deleteButton, 43, 527, 380, 100, DELETEBUTTON, STR_CLEAN, 30);
deleteButton->SetOnClickListener(static_cast<UIView::OnClickListener *>(MessageShowPresenter::GetInstance()));
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "deleteButton");
/* -------------------------------------------------------------------------- */
container_->Add(title);
container_->Add(time);
void MessageShowView::OnStart()
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OnStart");
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OnStart");
container_ = new UIScrollView();
if (container_ == nullptr)
{