* - 训练
* - 训练记录
* - 活动
-- * - 文心一言
-- * - 豆包
-- * - KIMI
-- * - ChatGPT
++ * - AI全家桶
* - 支付宝
* - 消息通知
* - 指南针
* - 查找手机
* - 勿扰模式
* - 卡片管理
-- * - 勿扰模式
++ * - 更换表盘
* - 省电模式
* - 设置
*/
const AppItem g_nativeAppList[] = {
- /* ------------------------------- OBU MESSAGE ------------------------------ */
++#ifdef A5133_DEMO_CLIENT
+ {VIEW_OBU_MESSAGE, PNG_APPLIST_THEME_IMAGE, PNG_APPLIST_THEME_IMAGE, PNG_APPLIST_DEFAULT_IMG, "OBU", STR_OBU_MESSAGE, nullptr},
- /* -------------------------------------------------------------------------- */
-
++#endif
{VIEW_MAIN_PHONE, PNG_APPLIST_CALLER_IMAGE, PNG_APPLIST_CALLER_IMAGE, PNG_APPLIST_DEFAULT_IMG, "手机", STR_PHONE, nullptr},
{VIEW_HEART, PNG_APPLIST_HEART_IMAGE, PNG_APPLIST_HEART_IMAGE, PNG_APPLIST_DEFAULT_IMG, "心率", STR_HEART_RATE, nullptr},
{VIEW_BLOODOXY, PNG_APPLIST_SPO2_IMAGE, PNG_APPLIST_SPO2_IMAGE, PNG_APPLIST_DEFAULT_IMG, "血氧", STR_BLOOD_OXYGEN, nullptr},
{VIEW_SLEEP, PNG_APPLIST_SLEEP_IMAGE, PNG_APPLIST_SLEEP_IMAGE, PNG_APPLIST_DEFAULT_IMG, "睡眠", STR_SLEEP, nullptr},
{VIEW_SETTING, PNG_APPLIST_SETTING_IMAGE, PNG_APPLIST_SETTING_IMAGE, PNG_APPLIST_DEFAULT_IMG, "设置", STR_SETTINGS, nullptr},
-- // {VIEW_PHONEDIR, PNG_APPLIST_CALLLOG_IMAGE, PNG_APPLIST_CALLLOG_IMAGE, PNG_APPLIST_DEFAULT_IMG, "常用联系人", STR_FAVORITE_CONTACTS, nullptr},
-- // {VIEW_THEME_STYLE, PNG_APPLIST_THEME_IMAGE, PNG_APPLIST_THEME_IMAGE, PNG_APPLIST_DEFAULT_IMG, "显示方式", STR_DISPLAY_MODE, nullptr},
-- // {VIEW_BRIGHTNESSLEVEL, PNG_APPLIST_BRIGHTNESSLEVEL_IMAGE, PNG_APPLIST_BRIGHTNESSLEVEL_IMAGE, PNG_APPLIST_DEFAULT_IMG, "亮度调节", STR_BRIGHTNESS_ADJUSTMENT, nullptr},
-- // {VIEW_CLASSIC_BLUETOOTH, PNG_APPLIST_BLUETOOTH_IMAGE, PNG_APPLIST_BLUETOOTH_IMAGE, PNG_APPLIST_DEFAULT_IMG, "蓝牙", STR_BLUETOOTH, nullptr},
--
++ // {VIEW_PHONEDIR, PNG_APPLIST_CALLLOG_IMAGE, PNG_APPLIST_CALLLOG_IMAGE, PNG_APPLIST_DEFAULT_IMG, "常用联系人", STR_FAVORITE_CONTACTS, nullptr},
++ // {VIEW_THEME_STYLE, PNG_APPLIST_THEME_IMAGE, PNG_APPLIST_THEME_IMAGE, PNG_APPLIST_DEFAULT_IMG, "显示方式", STR_DISPLAY_MODE, nullptr},
++ // {VIEW_BRIGHTNESSLEVEL, PNG_APPLIST_BRIGHTNESSLEVEL_IMAGE, PNG_APPLIST_BRIGHTNESSLEVEL_IMAGE, PNG_APPLIST_DEFAULT_IMG, "亮度调节", STR_BRIGHTNESS_ADJUSTMENT, nullptr},
++ // {VIEW_CLASSIC_BLUETOOTH, PNG_APPLIST_BLUETOOTH_IMAGE, PNG_APPLIST_BLUETOOTH_IMAGE, PNG_APPLIST_DEFAULT_IMG, "蓝牙", STR_BLUETOOTH, nullptr},
#if 0
/*屏蔽Slice*/
{VIEW_LANGUAGE_SWITCH, PNG_CONNECT_PHONE_IMAGE, PNG_CONNECT_PHONE_IMAGE, PNG_APPLIST_DEFAULT_IMG,"语言切换", nullptr},
--- /dev/null
- * @LastEditTime: 2024-07-27 12:04:00
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-06-20 15:11:17
+ * @LastEditors: luozheng 1732036298@qq.com
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_ZOOM);
++ * @LastEditTime: 2024-07-27 12:33:15
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/OBUMessagePresenter.cpp
+ */
+#include "AppViewIDs.h"
+#include "NativeAbility.h"
+#include "common/key_code.h"
+#include <custom_utils.h>
+#include "UiConfig.h"
+#include "obumessage/include/OBUMessagePresenter.h"
+#include "obumessage/include/OBUMessageView.h"
+
+namespace OHOS
+{
+
+ // 当前Presenter属性实例化的内存指针
+ static OBUMessagePresenter *g_pOBUMessagePresenter = nullptr;
+
+ OBUMessagePresenter::OBUMessagePresenter()
+ {
+ g_pOBUMessagePresenter = this;
+ }
+
+ OBUMessagePresenter::~OBUMessagePresenter()
+ {
+ g_pOBUMessagePresenter = nullptr;
+ }
+
+ OBUMessagePresenter *OBUMessagePresenter::GetInstance()
+ {
+ return g_pOBUMessagePresenter;
+ }
+
+ void OBUMessagePresenter::UpdateOBUMessageViewData(void)
+ {
+ if (view_ != nullptr)
+ {
+ view_->UpdateOBUMessageViewDisplayData();
+ }
+ }
+
+ // 启动时执行的逻辑
+ void OBUMessagePresenter::OnStart()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OBUMessagePresenter::OnStart");
+ Presenter<OBUMessageView>::OnStart();
+ }
+
+ // 页面已经展示后的调用逻辑
+ void OBUMessagePresenter::OnResume(void)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OBUMessagePresenter::OnResume");
+ Presenter<OBUMessageView>::OnResume();
+ if (view_ == nullptr)
+ {
+ return;
+ }
+ }
+
+ // 页面准备切换到后台前执行的逻辑
+ void OBUMessagePresenter::OnPause(void)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OBUMessagePresenter::OnPause");
+ Presenter<OBUMessageView>::OnPause();
+ }
+
+ // 页面完全置于后台时的逻辑。
+ void OBUMessagePresenter::OnStop(void)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OBUMessagePresenter::OnStop");
+ Presenter<OBUMessageView>::OnStop();
+ }
+
+ bool OBUMessagePresenter::OnClick(UIView &view, const ClickEvent &event)
+ {
+ UNUSED(event);
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OBUMessagePresenter::OnClick");
+ return true;
+ }
+
+ bool OBUMessagePresenter::OnDrag(UIView &view, const DragEvent &event)
+ {
+ UNUSED(view);
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OBUMessagePresenter::OnDrag");
+ if ((event.GetDeltaX() > X_DRAG_OFFSET) && (event.GetDeltaX() > (DOUBLES * MATH_ABS(event.GetDeltaY())))) // 拖动过程中判断是否是水平滑动
+ {
+ OBUMessagePresenter::X_DRAG_FLAG = true;
+ }
+ return true;
+ }
+
+ bool OBUMessagePresenter::OnDragEnd(UIView &view, const DragEvent &event)
+ {
+ UNUSED(view);
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OBUMessagePresenter::OnDragEnd");
+ if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && OBUMessagePresenter::X_DRAG_FLAG)
+ {
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_ZOOM);
++ NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ OBUMessagePresenter::X_DRAG_FLAG = false;
+ }
+ return true;
+ }
+
+ bool OBUMessagePresenter::OnKeyAct(UIView &view, const KeyEvent &event) // 增加按键事件
+ {
+ UNUSED(view);
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OBUMessagePresenter::OnKeyAct");
+ 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)
+ {
++ NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ }
+ return true;
+ }
+}
--- /dev/null
- * @LastEditTime: 2024-07-27 12:02:22
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-05-07 11:25:58
+ * @LastEditors: luozheng 1732036298@qq.com
- displayTimeLabel->SetText("");
- obuMessageLabel->SetText("");
++ * @LastEditTime: 2024-07-27 12:36:48
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/OBUMessage/src/OBUMessageView.cpp
+ */
+#include "obumessage/include/OBUMessagePresenter.h"
+#include "obumessage/include/OBUMessageView.h"
+#include "wearable_log.h"
+
+namespace OHOS
+{
+
+ static OBUMessageView *g_pOBUMessageView{nullptr};
+
+ OBUMessageView::OBUMessageView()
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OBUMessageView::OBUMessageView");
+ g_pOBUMessageView = this;
+ }
+
+ OBUMessageView::~OBUMessageView()
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OBUMessageView::~OBUMessageView");
+ g_pOBUMessageView = nullptr;
+ }
+
+ OBUMessageView *OBUMessageView::GetInstance()
+ {
+ return g_pOBUMessageView;
+ }
+
+ void OBUMessageView::ClearAll(void)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OBUMessageView::ClearAll");
+ if (viewInitStatus)
+ {
+
+ if (OBUMessageScrollView != nullptr)
+ {
+ OBUMessageScrollView->RemoveAll();
+ if (title != nullptr)
+ {
+ delete title;
+ title = nullptr;
+ }
+ if (group != nullptr)
+ {
+ group->RemoveAll();
+ if (displayTimeLabel != nullptr)
+ {
+ delete displayTimeLabel;
+ displayTimeLabel = nullptr;
+ }
+ if (obuMessageLabel != nullptr)
+ {
+ delete obuMessageLabel;
+ obuMessageLabel = nullptr;
+ }
+ delete group;
+ group = nullptr;
+ }
+ delete OBUMessageScrollView;
+ OBUMessageScrollView = nullptr;
+ }
+ }
+ }
+
+ void OBUMessageView::CreateOBUMessageView(void)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OBUMessageView::CreateOBUMessageView");
+ /* -------------------------- OBUMessageScrollView -------------------------- */
+ if (OBUMessageScrollView == nullptr)
+ {
+ OBUMessageScrollView = new UIViewGroup();
+ if (OBUMessageScrollView == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OBUMessageScrollView fail!!");
+ return;
+ }
+ }
+ OBUMessageScrollView->SetPosition(0, 0, 466, 466);
+ OBUMessageScrollView->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
+ /* ---------------------------------- title --------------------------------- */
+ if (title == nullptr)
+ {
+ title = new UILabel();
+ if (title == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "title fail!!");
+ return;
+ }
+ }
+ title->SetPosition(83, 50, 300, 35);
+ title->SetStyle(STYLE_TEXT_FONT, 30);
+ title->SetStyle(STYLE_LINE_HEIGHT, 35);
+ title->SetText("OBU Message");
+ title->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);
+ title->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ title->SetRollSpeed(70);
+ title->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+ OBUMessageScrollView->Add(title);
+ /* -------------------------------------------------------------------------- */
+ /* ------------------------------- group ------------------------------- */
+ if (group == nullptr)
+ {
+ group = new UIViewGroup();
+ if (group == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group fail!!");
+ return;
+ }
+ }
+ group->SetPosition(0, 120, 466, 466);
+ group->SetStyle(STYLE_BACKGROUND_COLOR, 0xff4fc34c);
+ group->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
+ OBUMessageScrollView->Add(group);
+ /* ---------------------------- displayTimeLabel ---------------------------- */
+ if (displayTimeLabel == nullptr)
+ {
+ displayTimeLabel = new UILabel();
+ if (displayTimeLabel == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "displayTimeLabel fail!!");
+ return;
+ }
+ }
+ displayTimeLabel->SetPosition(83, 0, 300, 35);
+ displayTimeLabel->SetStyle(STYLE_TEXT_FONT, 30);
+ displayTimeLabel->SetStyle(STYLE_LINE_HEIGHT, 35);
+ displayTimeLabel->SetText("12:30:30");
+ displayTimeLabel->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);
+ displayTimeLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ displayTimeLabel->SetRollSpeed(70);
+ displayTimeLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+ group->Add(displayTimeLabel);
+ /* ----------------------------- obuMessageLabel ---------------------------- */
+ if (obuMessageLabel == nullptr)
+ {
+ obuMessageLabel = new UILabel();
+ if (obuMessageLabel == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "obuMessageLabel fail!!");
+ return;
+ }
+ }
+ obuMessageLabel->SetPosition(53, 30, 360, 250);
+ obuMessageLabel->SetStyle(STYLE_BORDER_RADIUS, 33);
+ obuMessageLabel->SetStyle(STYLE_TEXT_FONT, 30);
+ obuMessageLabel->SetStyle(STYLE_LINE_HEIGHT, 35);
+ obuMessageLabel->SetText("OBU MESSAGE DATA");
+ obuMessageLabel->SetLineBreakMode(UILabel::LINE_BREAK_ELLIPSIS);
+ obuMessageLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ obuMessageLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+ group->Add(obuMessageLabel);
+ viewInitStatus = true;
+ }
+
+ void OBUMessageView::OnStart()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OBUMessageView::OnStart");
+ View<OBUMessagePresenter>::OnStart();
+ SetContainerView(new UIViewGroup());
+ if (GetContainer() == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetContainerView fail!!");
+ return;
+ }
+ container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
+ container_->SetOnDragListener(presenter_);
+ container_->SetTouchable(true);
+ container_->SetDraggable(true);
+
+ if (!viewInitStatus)
+ {
+ CreateOBUMessageView();
+ }
+
+ RootView::GetInstance()->SetOnKeyActListener(presenter_);
+ return;
+ }
+
+ void OBUMessageView::OnSetUpView()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OBUMessageView::OnSetUpView");
+ View<OBUMessagePresenter>::OnSetUpView();
+
+ container_->Add(OBUMessageScrollView);
+ Draw();
+ return;
+ }
+
+ void OBUMessageView::OnTearDownView()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OBUMessageView::OnTearDownView");
+ View<OBUMessagePresenter>::OnTearDownView();
+ return;
+ }
+
+ void OBUMessageView::OnStop()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OBUMessageView::OnStop");
+ View<OBUMessagePresenter>::OnStop();
+ if (container_ != nullptr)
+ {
+ container_->RemoveAll();
+ delete container_;
+ container_ = nullptr;
+ }
+ RootView::GetInstance()->ClearOnKeyActListener();
+ ClearAll();
+ return;
+ }
+
+ void OBUMessageView::UpdateOBUMessageViewDisplayData(void)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OBUMessageView::UpdateOBUMessageViewDisplayDate");
++ displayTimeLabel->SetText("");/*时间更新:时:分:秒*/
++ obuMessageLabel->SetText("");/*数据更新*/
+ }
+}
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-06-12 11:44:04
* @LastEditors: luozheng 1732036298@qq.com
-- * @LastEditTime: 2024-07-20 19:11:16
++ * @LastEditTime: 2024-07-27 12:34:03
* @FilePath: /FD230/code/sdk/application/wearable/nativeapp/nativeui/uiservice/include/ui_service.h
*/
/*
UI_AI_JUMP_TO_RESULT_VIEW, //跳转到返回结果视图
UI_UPDATE_USER_QUESTION_STR,//更新用户问题的字符串
UI_UPDATE_AI_ANSWER_STR, //更新AI答案的字符串
-- UI_HAND_WATCH_FIRST_PAIRED, //手表已配对:给第一次手表启动用配对成功调用
++ UI_HAND_WATCH_FIRST_PAIRED, //手表已配对:给第一次手表启动用配对成功调用
++ UI_UPDATE_OBU_MESSAGE,
MAX_NUM_HANDLER,
} UiServiceMsgId;
#include "displaybrightness/include/DisplayBrightnessModel.h"
#include "soundandvibration/include/SoundAndVibrationModel.h"
#include "rebootandshutdown/include/RebootAndShutdownModel.h"
++#include "obumessage/include/OBUMessageModel.h"
#include "sleep/include/SleepModel.h"
#include "message/include/MessageModel.h"
#include "aivoice/include/AiVoiceModel.h"
static void HandleUpdateUserQuestionStr(Request *request);
static void HandleUpdateAIAnswerStr(Request *request);
static void HandleWatchFirstPaired(Request *request);
++static void HandleUpdateOBUMessage(Request *request);
static void HandleUpdateSleep(Request *request);
static void HandleUpdateMessage(Request *request);
{UI_UPDATE_USER_QUESTION_STR,HandleUpdateUserQuestionStr},
{UI_UPDATE_AI_ANSWER_STR, HandleUpdateAIAnswerStr},
{UI_HAND_WATCH_FIRST_PAIRED,HandleWatchFirstPaired},
++ {UI_UPDATE_OBU_MESSAGE,HandleUpdateOBUMessage},
{UI_UPDATE_SLEEP_DATA, HandleUpdateSleep},
{UI_UPDATE_MESSAGE_DATA, HandleUpdateMessage},
GraphicService::GetInstance()->PostGraphicEvent(
std::bind(&OHOS::RebootAndShutdownModel::HandFirstTimeStartJumpToMainView, &OHOS::RebootAndShutdownModel::GetInstance()));
}
++
++//处理更新OBU Message
++void HandleUpdateOBUMessage(Request *request)
++{
++ WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateAIAnswerStr");
++ GraphicService::GetInstance()->PostGraphicEvent(
++ std::bind(&OHOS::OBUMessageModel::UpdateOBUMessageViewData, &OHOS::OBUMessageModel::GetInstance()));
++}
++
//更新睡眠数据
void HandleUpdateSleep(Request *request)
{