Merge #703 into sdk602patch0626 from refs/changes/703/head 704/target/2
author罗正 <1732036298@qq.com>
Fri, 16 Aug 2024 01:25:32 +0000 (01:25 +0000)
committersnickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Fri, 16 Aug 2024 01:25:32 +0000 (01:25 +0000)
Code review from 罗正

* refs/changes/703/head: (12 commits squashed)

  - 1.呼吸训练在训练结束取消常亮屏

  - 暂时关闭AI界面的常亮操作

  - 指南针界面关闭常亮屏

  - 蓝牙耳机界面中“蓝牙耳机设备未找到视图”优化修改。

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - 查看已连接的蓝牙耳机视图UI修改

  - 修改powerKey的返回条件为(powerKey&amp;&amp;按键按下&amp;&amp;亮屏状态),存在长按power键进入关机页面会先退出当前页面bug

  - 修复错误关闭了单击切换AI模型功能

  - 功能键优化,修复在进入AI模型界面中切换模型时候屏幕息屏

  - 优化久坐提醒

  - AI语音的按钮背景与图片更新

  - AI语音已经对照figma修改完成

Signed-off-by: 罗正 <1732036298@qq.com>
Reviewed-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Merged-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
link: https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230/change/703
85 files changed:
code/sdk/application/wearable/fd230app/nativeui/add_card/src/AddCardPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/aimodels/src/AiModelsPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/aivoice/include/AiVoiceView.h
code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoicePresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoiceView.cpp
code/sdk/application/wearable/fd230app/nativeui/aivoice/src/apikeys/ApiKeysPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/alarm/src/AlarmPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/bloodoxygen/src/BloodDetectionPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/bluetooth/include/BluetoothItemView.h
code/sdk/application/wearable/fd230app/nativeui/bluetooth/include/BluetoothModel.h
code/sdk/application/wearable/fd230app/nativeui/bluetooth/include/BluetoothOptionsView.h
code/sdk/application/wearable/fd230app/nativeui/bluetooth/include/BluetoothPresenter.h
code/sdk/application/wearable/fd230app/nativeui/bluetooth/include/TipsFailMessageView.h
code/sdk/application/wearable/fd230app/nativeui/bluetooth/src/BluetoothModel.cpp
code/sdk/application/wearable/fd230app/nativeui/bluetooth/src/BluetoothOptionsView.cpp
code/sdk/application/wearable/fd230app/nativeui/bluetooth/src/BluetoothPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/bluetooth/src/MainBluetoothView.cpp
code/sdk/application/wearable/fd230app/nativeui/bluetooth/src/TipsFailMessageView.cpp
code/sdk/application/wearable/fd230app/nativeui/brightnesslevel/src/BrightnessLevelPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/classicbluetooth/src/BluetoothServiceOptionsPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/classicbluetooth/src/ClassicBlueToothPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/compass/src/MainCompassPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/countdown/src/MainCountDownPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessPresent.cpp
code/sdk/application/wearable/fd230app/nativeui/dnotdisturb/src/DnotDisturbPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/findphone/src/FindPhonePresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/flashlight/src/FlashlightPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/goal/src/Maingoalpresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartDetectionPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartResultPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/languagecode/src/LanguageSwitchPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/message/src/MessagePresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/message/src/MessageShowPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/motionrecognition/src/MotionRecognitionPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/musicplayer/src/MusicPlayerPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/networkandcall/src/NetworkAndCallPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/obumessage/src/OBUMessagePresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/phone/src/DialingMethodPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/phone/src/MainPhonePresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/phone/src/PhoneCallPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/phone/src/PhoneDirPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/player/include/PlayersView.h
code/sdk/application/wearable/fd230app/nativeui/player/src/PlayersPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/player/src/PlayersView.cpp
code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/src/RebootAndShutdownModel.cpp
code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/src/RebootAndShutdownPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/rebootdevice/src/RebootPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/respiratorytraining/src/RespiratoryTrainingModel.cpp
code/sdk/application/wearable/fd230app/nativeui/respiratorytraining/src/RespiratoryTrainingPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/saveele/src/SaveElePresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/secondaryfunction/src/SecondaryFunctionPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/set_dial/src/SetDialPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/set_dial_style/src/SetDialStylePresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/settings/src/SettingPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/sleep/src/SleepControlPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/CallVolumePresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SoundAndVibrationPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SystemVolumePresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/stopwatch/src/MainStopWatchPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/system/src/SystemPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/systemupdate/src/SystemUpdatePresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/takephotos/src/TakephotosPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/themestyle/src/ThemeStylePresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingEnddataPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingNomalPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/src/TraingBallPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_dance/src/TraingDancePresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_fitness/src/TraingFitnessPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ice/src/TraingIcePresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_limit/src/TraingLimitPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_more/src/TraingMorePresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_other/src/TraingOtherPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_rest/src/TraingRestPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/traingrecord/src/TraingRecordPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/watchQRcode/src/WatchQRCodePresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/weather/src/MainWeatherPresenter.cpp
code/sdk/application/wearable/service/msg_center/src/msg_center_customer.cpp
code/sdk/application/wearable/service/msg_center/src/notify/sedentaryReminder_notification.cpp
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/AIVoice/ai_chart_icon.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/AIVoice/ai_chart_icon_bg.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/AIVoice/aimodels/aimodels_chatgpt.bin
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/AIVoice/aimodels/aimodels_kimi.bin

index 7da737c..893e4cc 100644 (file)
@@ -139,7 +139,7 @@ namespace OHOS
         unsigned short keyID = event.GetKeyId();
         unsigned short 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();
index 07a338b..876c9a0 100644 (file)
@@ -139,7 +139,7 @@ namespace OHOS
         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();
         }
index 1a5aeb4..62bddd8 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-06-08 09:36:01
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-08-09 20:14:30
+ * @LastEditTime: 2024-08-15 18:58:40
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/respiratorytraining/include/AiVoiceView.h
  */
 #ifndef AI_VOICE_VIEW_H
@@ -159,13 +159,15 @@ namespace OHOS
         void ClearAll(void);
         void SetComponentVisibility(UIView *component, bool isVisible);
         UILabelExt *title{nullptr};          /*标题*/
-        UILabelExt *startChatLabel{nullptr}; /*开始对话标签*/
+        UILabelExt *startChatLabel{nullptr}; /*开始对话标签,暂时不用*/
         UIButton *startChatButton{nullptr};  /*开始对话按钮*/
-        UILabelExt *chatLabel{nullptr};      /*对话标签*/
+        UILabelExt *chatLabel{nullptr};      /*对话标签,暂时不用*/
         UIButton *chatButton{nullptr};       /*对话按钮*/
         UIImageView *aiModelImage{nullptr};  /*ai模型图片*/
-        UILabelExt *apiKeysLabel{nullptr};   /*API Keys标签*/
-        UIButton *apiKeysButton{nullptr};    /*API Keys按钮*/
+        UIImageView *buttonBgImage{nullptr}; /*按钮背景图片*/
+        UIImageView *upImage{nullptr};       /*上拉箭头*/
+        UILabelExt *apiKeysLabel{nullptr};   /*API Keys标签,暂时不用*/
+        UIButton *apiKeysButton{nullptr};    /*API Keys按钮,,暂时不用*/
         UIPicker *aiModelPicker{nullptr};    /*ai模型选择器*/
         UIScrollView *AiVoiceScrollView[MAX_AIVOICE_VIEWID]{nullptr};
         bool viewInitStatus{false};
index e457419..6f09ea7 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-06-20 15:11:17
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-08-09 20:23:58
+ * @LastEditTime: 2024-08-15 18:53:14
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoicePresenter.cpp
  */
 #include "AppViewIDs.h"
@@ -58,7 +58,7 @@ namespace OHOS
     {
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AiVoicePresenter::OnStart");
         Presenter<AiVoiceView>::OnStart();
-        ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON);
+        // ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON);
     }
 
     // 页面已经展示后的调用逻辑
@@ -84,7 +84,7 @@ namespace OHOS
     {
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AiVoicePresenter::OnStop");
         Presenter<AiVoiceView>::OnStop();
-        ScreenAlwaysOnCtr(CANCEL_SCREEN_ALWAYS_ON);
+        // ScreenAlwaysOnCtr(CANCEL_SCREEN_ALWAYS_ON);
         model->StatusResume();
     }
 
@@ -265,7 +265,7 @@ namespace OHOS
             ChangeViewAndLogicOperator(AIVOICE_STARTCHAT_VIEWID, AIVOICE_NOTSETAPIKEYS); /*开始对话界面->API Keys notset界面*/
             return true;
         }
-        else if (viewId == AIVOICE_APIKEYS_BUTTON_VIEW_ID) // 如果点击的是API Keys按钮
+        else if (viewId == AIVOICE_APIKEYS_BUTTON_VIEW_ID) // 如果点击的是API Keys按钮(注:暂时不用)
         {
             if (model->IsExistOpenAIAPIKeys() == true)
             {
@@ -361,11 +361,11 @@ namespace OHOS
         {
             return false;
         }
-        if (event.GetDragDirection() == DragEvent::DIRECTION_RIGHT_TO_LEFT)
+        if (event.GetDragDirection() == DragEvent::DIRECTION_RIGHT_TO_LEFT) /*左滑*/
         {
             DragRightToLetfChangeAIModel();
         }
-        else if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && AiVoicePresenter::X_DRAG_FLAG)
+        else if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && AiVoicePresenter::X_DRAG_FLAG) /*右滑*/
         {
             if (scrollView == view_->GetAiVoiceScrollView(AIVOICE_STARTCHAT_VIEWID))
             {
@@ -405,6 +405,18 @@ namespace OHOS
             }
             AiVoicePresenter::X_DRAG_FLAG = false;
         }
+        else if (model->GetAiModelTextId() == STR_AIMODES_CHATGPT && event.GetDragDirection() == DragEvent::DIRECTION_BOTTOM_TO_TOP) /*上滑*/
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DIRECTION_BOTTOM_TO_TOP");
+            if (model->IsExistOpenAIAPIKeys() == true)
+            {
+                ChangeViewAndLogicOperator(AIVOICE_STARTCHAT_VIEWID, AIVOICE_SETAPIKEYS); /*开始对话界面->API Keys set界面*/
+            }
+            else
+            {
+                ChangeViewAndLogicOperator(AIVOICE_STARTCHAT_VIEWID, AIVOICE_NOTSETAPIKEYS); /*开始对话界面->API Keys notset界面*/
+            }
+        }
         return true;
     }
 
@@ -415,7 +427,7 @@ namespace OHOS
         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);
         }
index 63a1996..7ecc61f 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-05-07 11:25:58
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-08-03 16:45:06
+ * @LastEditTime: 2024-08-15 19:05:26
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/AiVoice/src/AiVoiceView.cpp
  */
 #include "aivoice/include/AiVoicePresenter.h"
@@ -76,6 +76,12 @@ namespace OHOS
                 delete aiModelPicker;
                 aiModelPicker = nullptr;
 
+                delete buttonBgImage;
+                buttonBgImage = nullptr;
+
+                delete upImage;
+                upImage = nullptr;
+
                 delete AiVoiceScrollView[AIVOICE_STARTCHAT_VIEWID];
                 AiVoiceScrollView[AIVOICE_STARTCHAT_VIEWID] = nullptr;
             }
@@ -182,8 +188,8 @@ namespace OHOS
         button->SetPosition(buttonconfig.x, buttonconfig.y, buttonconfig.w, buttonconfig.h);
         button->SetViewId(buttonconfig.ViewId);
         button->SetStyle(STYLE_BACKGROUND_COLOR, 0xff4fc34c);
-        button->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
-        button->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff383838, UIButton::PRESSED);
+        button->SetStyle(STYLE_BACKGROUND_OPA, 0x00);
+        button->SetStyleForState(STYLE_BACKGROUND_COLOR, 0x00, UIButton::PRESSED);
         button->SetOnTouchListener(presenter_);
 
         return button;
@@ -293,7 +299,34 @@ namespace OHOS
         aiModelImage->SetTouchable(true);
         aiModelImage->SetViewId(AIVOICE_IMGAE_VIEW_ID);
         aiModelImage->SetOnClickListener(presenter_);
-
+        /* -------------------------------- buttonBgImage -------------------------------- */
+        imagecinfig = {
+            .x = 208,
+            .y = 340,
+            .w = 48,
+            .h = 56,
+            .src = "/user/res/AIVoice/ai_chart_icon.bin",
+        };
+        buttonBgImage = AiVoiceViewImageView(imagecinfig);
+        if (buttonBgImage == nullptr)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AiVoiceView::aiModelImage is nullptr!!");
+            return false;
+        }
+        /* --------------------------------- upImage -------------------------------- */
+        imagecinfig = {
+            .x = 213,
+            .y = static_cast<int16_t>(buttonBgImage->GetY() + buttonBgImage->GetHeight() + 10),
+            .w = 40,
+            .h = 40,
+            .src = "/user/res/Sleep/up.bin",
+        };
+        upImage = AiVoiceViewImageView(imagecinfig);
+        if (upImage == nullptr)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AiVoiceView::aiModelImage is nullptr!!");
+            return false;
+        }
         return true;
     }
 
@@ -302,10 +335,10 @@ namespace OHOS
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AiVoiceView::CreateAiVoiceViewButton");
         /* ----------------------------- startChatButton ---------------------------- */
         ButtonConfig buttonconfig = {
-            .x = 93,
-            .y = 320,
-            .w = 280,
-            .h = 90,
+            .x = 43,
+            .y = 328,
+            .w = 380,
+            .h = 80,
             .ViewId = AIVOICE_START_CHAT_BUTTON_VIEW_ID,
         };
         startChatButton = AiVoiceViewButtonInit(buttonconfig);
@@ -315,12 +348,14 @@ namespace OHOS
             return false;
         }
         startChatButton->SetVisible(false);
+        const char *image = "/user/res/AIVoice/ai_chart_icon_bg.bin";
+        startChatButton->SetImageSrc(image, image);
         /* ------------------------------- chatButton ------------------------------- */
         buttonconfig = {
-            .x = 58,
-            .y = 320,
-            .w = 170,
-            .h = 90,
+            .x = 43,
+            .y = 328,
+            .w = 380,
+            .h = 80,
             .ViewId = AIVOICE_CHAT_BUTTON_VIEW_ID,
         };
         chatButton = AiVoiceViewButtonInit(buttonconfig);
@@ -330,6 +365,7 @@ namespace OHOS
             return false;
         }
         chatButton->SetVisible(false);
+        chatButton->SetImageSrc(image, image);
         /* ------------------------------ apiKeysButton ----------------------------- */
         buttonconfig = {
             .x = 238,
@@ -372,8 +408,8 @@ namespace OHOS
             aiModelPicker->RequestFocus();
             aiModelPicker->RegisterSelectedListener(presenter_);
             aiModelPicker->SetTextColor(Color::GetColorFromRGBA(0x00, 0x00, 0x00, 0xff), Color::GetColorFromRGBA(0xff, 0x00, 0x00, 0xff));
-            const char *uiPicker1Data[] = {"0", "1", "2", "3"};
-            aiModelPicker->SetValues(uiPicker1Data, 4);
+            const char *uiPicker1Data[] = {"0", "1", "2", "3", "4", "5"};
+            aiModelPicker->SetValues(uiPicker1Data, sizeof(uiPicker1Data) / sizeof(uiPicker1Data[0]));
         }
 
         return true;
@@ -415,6 +451,8 @@ namespace OHOS
         AiVoiceScrollView[AIVOICE_STARTCHAT_VIEWID]->Add(chatLabel);
         AiVoiceScrollView[AIVOICE_STARTCHAT_VIEWID]->Add(apiKeysButton);
         AiVoiceScrollView[AIVOICE_STARTCHAT_VIEWID]->Add(apiKeysLabel);
+        AiVoiceScrollView[AIVOICE_STARTCHAT_VIEWID]->Add(buttonBgImage);
+        AiVoiceScrollView[AIVOICE_STARTCHAT_VIEWID]->Add(upImage);
     }
 
     void AiVoiceView::OnStart()
@@ -780,11 +818,11 @@ namespace OHOS
         bool isAiModeChatGpt = (AiVoiceModel::GetInstance().GetAiModelTextId() == STR_AIMODES_CHATGPT);
 
         SetComponentVisibility(chatButton, isAiModeChatGpt);
-        SetComponentVisibility(chatLabel, isAiModeChatGpt);
-        SetComponentVisibility(apiKeysButton, isAiModeChatGpt);
-        SetComponentVisibility(apiKeysLabel, isAiModeChatGpt);
+        // SetComponentVisibility(chatLabel, isAiModeChatGpt);
+        // SetComponentVisibility(apiKeysButton, isAiModeChatGpt);
+        // SetComponentVisibility(apiKeysLabel, isAiModeChatGpt);
 
-        SetComponentVisibility(startChatLabel, !isAiModeChatGpt);
+        // SetComponentVisibility(startChatLabel, !isAiModeChatGpt);
         SetComponentVisibility(startChatButton, !isAiModeChatGpt);
     }
 
index 8fac1a6..cc07de1 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-07-29 16:14:16
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-30 15:52:11
+ * @LastEditTime: 2024-08-15 18:26:04
  * @FilePath: /xts_origin/FD230/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/apikeys/ApiKeysPresenter.cpp
  */
 
@@ -80,24 +80,38 @@ namespace OHOS
         UNUSED(view);
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ApiKeysPresenter::OnDragEnd");
         std::string viewId = view.GetViewId();
-
+        AiVoiceView *p_AiVoiceView = AiVoiceView::GetInstance();
+        if (p_AiVoiceView == nullptr)
+        {
+            return false;
+        }
         if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && X_DRAG_FLAG)
         {
-            AiVoiceView *p_AiVoiceView = AiVoiceView::GetInstance();
-
             std::map<std::string, std::pair<int, int>> viewMap = {
-                {SETAPIKEYS_SCROLLVIEW_VIEWID, {AIVOICE_SETAPIKEYS, AIVOICE_STARTCHAT_VIEWID}},
-                {NOTSETAPIKEYS_SCROLLVIEW_VIEWID, {AIVOICE_NOTSETAPIKEYS, AIVOICE_STARTCHAT_VIEWID}},
+                // {SETAPIKEYS_SCROLLVIEW_VIEWID, {AIVOICE_SETAPIKEYS, AIVOICE_STARTCHAT_VIEWID}},
+                // {NOTSETAPIKEYS_SCROLLVIEW_VIEWID, {AIVOICE_NOTSETAPIKEYS, AIVOICE_STARTCHAT_VIEWID}},
                 {APIKEYS_DELETE_SCROLLVIEW_VIEWID, {AIVOICE_APIKEYS_DELETE, AIVOICE_SETAPIKEYS}},
             };
 
             auto it = viewMap.find(viewId);
-            if (it != viewMap.end() && p_AiVoiceView != nullptr)
+            if (it != viewMap.end())
             {
                 p_AiVoiceView->ChangeView(it->second.first, it->second.second);
             }
             X_DRAG_FLAG = false;
         }
+        else if (event.GetDragDirection() == DragEvent::DIRECTION_TOP_TO_BOTTOM) /*下滑*/
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DIRECTION_TOP_TO_BOTTOM");
+            if (viewId == SETAPIKEYS_SCROLLVIEW_VIEWID)
+            {
+                p_AiVoiceView->ChangeView(AIVOICE_SETAPIKEYS, AIVOICE_STARTCHAT_VIEWID); /*API Keys set界面->开始对话界面*/
+            }
+            else if (viewId == NOTSETAPIKEYS_SCROLLVIEW_VIEWID)
+            {
+                p_AiVoiceView->ChangeView(AIVOICE_NOTSETAPIKEYS, AIVOICE_STARTCHAT_VIEWID); /*API Keys notset界面->开始对话界面*/
+            }
+        }
         return true;
     }
 }
\ No newline at end of file
index 186a213..37f304c 100644 (file)
@@ -437,7 +437,7 @@ bool AlarmPresenter::OnKeyAct(UIView &view, const KeyEvent &event)
     uint16_t keyID = event.GetKeyId();\r
     uint16_t keyState = event.GetState();\r
     // 如果是power键,且是亮屏状态,按键释放就返回上一级\r
-    if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)\r
+    if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)\r
     {\r
         NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
     }\r
index 5d553f4..fd87133 100644 (file)
@@ -113,7 +113,7 @@ namespace OHOS
         unsigned short keyID = event.GetKeyId();
         unsigned short 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)
         {
             NavigateBack();
         }
index 602897b..bfddc3f 100644 (file)
@@ -1,10 +1,12 @@
 /*\r
- * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.\r
- * Description: BluetoothItem view\r
- * Author:\r
- * Create: 2021-10-13\r
+ * @Author: luozheng 1732036298@qq.com\r
+ * @Date: 2024-08-05 15:20:01\r
+ * @LastEditors: luozheng 1732036298@qq.com\r
+ * @LastEditTime: 2024-08-15 14:19:01\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/bluetooth/include/BluetoothItemView.h\r
  */\r
 \r
+\r
 #ifndef BLUETOOTH_ITEM_VIEW_H\r
 #define BLUETOOTH_ITEM_VIEW_H\r
 \r
@@ -35,9 +37,9 @@ private:
     ImageAnimatorInfo connectImageInfo[BLUETOOTH_CONNECT_IMAGE_NUM];\r
     UIImageView image;\r
     UIButton button;\r
-    UILabel connectStateLabel;\r
+    UILabel connectStateLabel;/*连接状态标签*/\r
     UILabel namelabel;\r
-    UIImageAnimatorView connectionAnimator;\r
+    UIImageAnimatorView connectionAnimator; /*连接动画*/\r
     BluetoothCaseInfo itemInfo_{};\r
     void BtConnectImageAnimator();\r
 };\r
index 1857e05..86ba575 100644 (file)
@@ -24,10 +24,11 @@ typedef enum : uint16_t {
     CALLERPLAYERS,\r
 } CallerFactor;\r
 \r
+/*整合和存储与蓝牙设备相关的各种信息*/\r
 typedef struct {\r
     unsigned char deviceName[BD_NAME_LEN]; /* Name of the device record, must be in UTF-8 */\r
-    unsigned char addr[BD_ADDR_LEN];\r
-    int16_t index;\r
+    unsigned char addr[BD_ADDR_LEN]; /*存储蓝牙设备的地址*/\r
+    int16_t index;/*用于表示设备在某个特定列表或数据结构中的索引位置。*/\r
     int16_t connIndex;\r
     int16_t temp;\r
 } BluetoothCaseInfo;\r
@@ -94,8 +95,8 @@ private:
     void SetUpListCase();\r
     void SetUpConnedDevicesList();\r
     bool FindNameByAddr(BluetoothCaseInfo &listInfo, BluetoothCaseInfo *caseInfo);\r
-    bool aclConnected{false};\r
-    BluetoothCaseInfo tempMacValue{};\r
+    bool aclConnected{false};/*ACL(Asynchronous Connectionless,异步无连接)连接状态*/\r
+    BluetoothCaseInfo tempMacValue{};/*临时蓝牙设备地址*/\r
     bd_addr_t lastConnedAddr{};\r
     bd_addr_t remoteConnectAddr{0};\r
     BluetoothItemView *selectItemView{nullptr};\r
index 7a6d174..2f52947 100644 (file)
@@ -1,8 +1,10 @@
 /*\r
- * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.\r
- * Description: BluetoothOptions view\r
- * Author:\r
- * Create: 2021-10-13\r
+ * @Author: luozheng 1732036298@qq.com\r
+ * @Date: 2024-08-05 15:20:01\r
+ * @LastEditors: luozheng 1732036298@qq.com\r
+ * @LastEditTime: 2024-08-15 10:18:02\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/bluetooth/include/BluetoothOptionsView.h\r
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE\r
  */\r
 #ifndef BLUETOOTH_OPTIONS_VIEW_H\r
 #define BLUETOOTH_OPTIONS_VIEW_H\r
 #include "components/ui_view_group.h"\r
 #include "components/ui_label.h"\r
 #include "components/ui_label_ext.h"\r
-#include "components/ui_label_button.h"\r
+#include "components/ui_label_button_ext.h"\r
 #include "components/ui_image_animator.h"\r
 #include "BluetoothCaseListAdapter.h"\r
 \r
-namespace OHOS {\r
-class BluetoothOptionsView {\r
-public:\r
-    BluetoothOptionsView();\r
-    ~BluetoothOptionsView();\r
-    static BluetoothOptionsView *GetInstance();\r
-    UIViewGroup *InitShowUpView(void);\r
-    UILabelButton *GetOptionsOneButton(void);\r
-    UILabelButton *GetUnpairButton(void);\r
-    void SetUnpair(void);\r
-    void SetBtconnect(void);\r
-    void SetBtDisconnect(void);\r
-    void SetCurrentAddr(bd_addr_t addr);\r
-    bd_addr_t GetCurrentAddr(void);\r
-    void RefreshText(void);\r
-private:\r
-    void InItTitleLabel(void);\r
-    void InItLabelButton(void);\r
-    UILabelButton *optionsOneButton{nullptr};\r
-    UILabelButton *unpairButton{nullptr};\r
-    UILabel *titleLabel{nullptr};\r
-    UILabel *connectStateLabel{nullptr};\r
-    UIViewGroup *group{nullptr};\r
-    bd_addr_t currentAddr;\r
-};\r
+namespace OHOS\r
+{\r
+    // 已连接的蓝牙耳机设备视图\r
+    class BluetoothOptionsView\r
+    {\r
+    public:\r
+        BluetoothOptionsView();\r
+        ~BluetoothOptionsView();\r
+        static BluetoothOptionsView *GetInstance();\r
+        UIViewGroup *CreateBluetoothOptionsView(void);\r
+        UILabelButtonExt *GetOptionsOneButton(void);\r
+        UILabelButtonExt *GetUnpairButton(void);\r
+        void SetUnpair(void);\r
+        void SetBtconnect(void);\r
+        void SetBtDisconnect(void);\r
+        void SetCurrentAddr(bd_addr_t addr);\r
+        bd_addr_t GetCurrentAddr(void);\r
+        void RefreshText(void);\r
+\r
+    private:\r
+        bool CreateBluetoothOptionsLabelView(void);\r
+        bool CreateBluetoothOptionsLabelButton(void);\r
+        bool CreateBluetoothOptionsImageView(void);\r
+\r
+        void InItTitleLabel(void);\r
+        void InItLabelButton(void);\r
+        UIViewGroup *group{nullptr};\r
+        UILabelExt *titleLabel{nullptr};          /*标题:蓝牙耳机*/\r
+        UIImageView *btHeadsetIconUmage{nullptr}; // 绿色耳机图标\r
+        UILabelExt *EarPhoneDeviceName{nullptr};  // 蓝牙耳机设备名\r
+        UILabelExt *pairState{nullptr};           // 已配对或者未配对\r
+        UILabelButtonExt *unpairButton{nullptr};     // 取消配对按钮\r
+        bd_addr_t currentAddr;\r
+\r
+        /*下面两个组件暂时设为不可见待到需要时使用*/\r
+        UILabelButtonExt *optionsOneButton{nullptr}; /*重新连接和断开连接按钮*/\r
+        UILabel *connectStateLabel{nullptr};      /*已连接或未连接标签*/\r
+        };\r
 } // namespace OHOS\r
 #endif // BLUETOOTH_OPTIONS_VIEW_H
\ No newline at end of file
index 05f0502..c4ef734 100644 (file)
@@ -25,8 +25,8 @@ enum BluetoothPresenterNum : uint8_t {
         BLUETOOTHEARPHONEVIEW = 0,\r
         BLUETOOTHEARLISTVIEW,\r
         BLUETOOTHDEVICELISTVIEW,\r
-        BLUETOOTHEOPTIONSVIEW,\r
-        BLUETOOTHRECONNECTVIEW,\r
+        BLUETOOTHEOPTIONSVIEW,/*已连接的蓝牙耳机设备视图*/\r
+        BLUETOOTHRECONNECTVIEW,/*蓝牙重新连接视图*/\r
         TIPSSUCCMESSAGEVIEW,\r
         TIPSCONNFAILMESSAGEVIEW,\r
         TIPSFAILMESSAGEVIEW,\r
index b99dba6..000cc6b 100644 (file)
@@ -1,31 +1,42 @@
 /*\r
- * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.\r
- * Description: TipsFailMessageView view\r
- * Author:\r
- * Create: 2021-10-13\r
+ * @Author: luozheng 1732036298@qq.com\r
+ * @Date: 2024-08-05 15:20:01\r
+ * @LastEditors: luozheng 1732036298@qq.com\r
+ * @LastEditTime: 2024-08-14 17:36:25\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/bluetooth/include/TipsFailMessageView.h\r
  */\r
+\r
 #ifndef TIPS_FAIL_MESSAGE_VIEW_H\r
 #define TIPS_FAIL_MESSAGE_VIEW_H\r
 \r
 #include "components/ui_view_group.h"\r
 #include "components/ui_label.h"\r
 #include "components/ui_label_ext.h"\r
-#include "components/ui_label_button.h"\r
+#include "components/ui_label_button_ext.h"\r
 #include "components/ui_image_view.h"\r
 \r
-namespace OHOS {\r
-class TipsFailMessageView {\r
-public:\r
-    TipsFailMessageView();\r
-    ~TipsFailMessageView();\r
-    static TipsFailMessageView *GetInstance();\r
-    UIViewGroup *ShowUpViewInit(void);\r
-private:\r
-    int ShowUpButtonBack(void);\r
-    UILabel *titleLabel{nullptr};\r
-    UILabelButton *backButton{nullptr};\r
-    UIImageView *tipImg{nullptr};\r
-    UIViewGroup *group{nullptr};\r
-};\r
+namespace OHOS\r
+{\r
+    /*蓝牙设备搜索不到视图*/\r
+    class TipsFailMessageView\r
+    {\r
+    public:\r
+        TipsFailMessageView();\r
+        ~TipsFailMessageView();\r
+        static TipsFailMessageView *GetInstance();\r
+        UIViewGroup *CreateTipsFailMessageView(void);\r
+\r
+    private:\r
+        bool CreateTipsFailMessageLabelView(void);\r
+        bool CreateTipsFailMessageLabelButton(void);\r
+        bool CreateTipsFailMessageImageView(void);\r
+\r
+        int ShowUpButtonBack(void);\r
+        UIViewGroup *group{nullptr};\r
+        UILabelExt *titleLabel{nullptr};             /*标题:蓝牙耳机 */\r
+        UIImageView *btIconImage{nullptr};           /*灰色的蓝牙图标*/\r
+        UILabelExt *btHeadsetNotFoundLabel{nullptr}; /*当前搜索不到耳机蓝牙设备*/\r
+        UILabelButtonExt *rescanButton{nullptr};     /*重新搜索按钮*/\r
+    };\r
 } // namespace OHOS\r
 #endif // TIPS_FAIL_MESSAGE_VIEW_H
\ No newline at end of file
index 9981e57..325e748 100644 (file)
@@ -415,6 +415,11 @@ List<BluetoothCaseInfo>& BluetoothModel::GetConnedDevicesCase()
     return *btConnedDevicesList_;\r
 }\r
 \r
+/*\r
+* @brief 用于检查特定蓝牙设备(其地址存储在 tempMacValue 中)是否处于 ACL 连接状态。\r
+*\r
+*eg:如果是在控制与手机配对的蓝牙手环,通过这个函数就能确定手环当前与手机的连接情况。\r
+*/\r
 void BluetoothModel::SetBtStatus(void)\r
 {\r
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetBtStatus tempMacValue: %02x%02x%02x%02x%02x%02x",\r
index a2c3671..050556d 100644 (file)
  * Author:\r
  * Create: 2021-10-13\r
  */\r
-#include "BluetoothOptionsView.h"\r
-#include "BluetoothModel.h"\r
+#include "bluetooth/include/BluetoothOptionsView.h"\r
+#include "bluetooth/include/BluetoothModel.h"\r
 #include "wearable_log.h"\r
 #include "UiConfig.h"\r
-#include "PlayersPresenter.h"\r
-#include "BluetoothPresenter.h"\r
-\r
-namespace OHOS {\r
-static BluetoothOptionsView *g_pBluetoothOptionsView{nullptr};\r
-\r
-BluetoothOptionsView::BluetoothOptionsView()\r
+#include "player/include/PlayersPresenter.h"\r
+#include "player/include/PlayersView.h"\r
+#include "bluetooth/include/BluetoothPresenter.h"\r
+#include "ui_resource_string.h"\r
+#include "ui_resource_image.h"\r
+namespace OHOS\r
 {\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothOptionsView::BluetoothOptionsView");\r
-    g_pBluetoothOptionsView = this;\r
-}\r
+    static BluetoothOptionsView *g_pBluetoothOptionsView{nullptr};\r
 \r
-BluetoothOptionsView::~BluetoothOptionsView()\r
-{\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothOptionsView::~BluetoothOptionsView");\r
-    group->RemoveAll();\r
-    delete titleLabel;\r
-    titleLabel = nullptr;\r
-    delete connectStateLabel;\r
-    connectStateLabel = nullptr;\r
-    delete optionsOneButton;\r
-    optionsOneButton = nullptr;\r
-    delete unpairButton;\r
-    unpairButton = nullptr;\r
-    delete group;\r
-    group = nullptr;\r
-    g_pBluetoothOptionsView = nullptr;\r
-}\r
-\r
-BluetoothOptionsView *BluetoothOptionsView::GetInstance()\r
-{\r
-    return g_pBluetoothOptionsView;\r
-}\r
+    BluetoothOptionsView::BluetoothOptionsView()\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothOptionsView::BluetoothOptionsView");\r
+        g_pBluetoothOptionsView = this;\r
+    }\r
 \r
-void BluetoothOptionsView::RefreshText(void)\r
-{\r
-    // 刷新状态和文字\r
-    BluetoothModel::GetInstance()->SetBtStatus();\r
-    if (BluetoothModel::GetInstance()->GetAclConnected()) {\r
-        connectStateLabel->SetText("已连接");\r
-        optionsOneButton->SetText("断开连接");\r
-    } else {\r
-        connectStateLabel->SetText("已断开");\r
-        optionsOneButton->SetText("重新连接");\r
+    BluetoothOptionsView::~BluetoothOptionsView()\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothOptionsView::~BluetoothOptionsView");\r
+        if (group != nullptr)\r
+        {\r
+            group->RemoveAll();\r
+            if (titleLabel)\r
+            {\r
+                delete titleLabel;\r
+                titleLabel = nullptr;\r
+            }\r
+            if (btHeadsetIconUmage)\r
+            {\r
+                delete btHeadsetIconUmage;\r
+                btHeadsetIconUmage = nullptr;\r
+            }\r
+            if (EarPhoneDeviceName)\r
+            {\r
+                delete EarPhoneDeviceName;\r
+                EarPhoneDeviceName = nullptr;\r
+            }\r
+            if (pairState)\r
+            {\r
+                delete pairState;\r
+                pairState = nullptr;\r
+            }\r
+            if (unpairButton)\r
+            {\r
+                delete unpairButton;\r
+                unpairButton = nullptr;\r
+            }\r
+            if (connectStateLabel)\r
+            {\r
+                delete connectStateLabel;\r
+                connectStateLabel = nullptr;\r
+            }\r
+            if (optionsOneButton)\r
+            {\r
+                delete optionsOneButton;\r
+                optionsOneButton = nullptr;\r
+            }\r
+            delete group;\r
+            group = nullptr;\r
+        }\r
+        g_pBluetoothOptionsView = nullptr;\r
     }\r
-    BluetoothCaseInfo *caseInfo = BluetoothModel::GetInstance()->GetTempMacValue();\r
-    titleLabel->SetText(reinterpret_cast<const char *>(caseInfo->deviceName));\r
-    optionsOneButton->Invalidate();\r
-}\r
 \r
-void BluetoothOptionsView::InItTitleLabel()\r
-{\r
-    if (titleLabel == nullptr) {\r
-        titleLabel = new UILabel();\r
-        if (titleLabel == nullptr) {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothOptionsView titleLabel new fail");\r
-            return;\r
+    BluetoothOptionsView *BluetoothOptionsView::GetInstance()\r
+    {\r
+        return g_pBluetoothOptionsView;\r
+    }\r
+\r
+    bool BluetoothOptionsView::CreateBluetoothOptionsLabelView(void)\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothOptionsView::CreateBluetoothOptionsLabelView");\r
+        /* ------------------------------- titleLabel ------------------------------- */\r
+        if (titleLabel == nullptr)\r
+        {\r
+            titleLabel = new UILabelExt();\r
+            if (titleLabel == nullptr)\r
+            {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "titleLabel new fail");\r
+                return false;\r
+            }\r
+        }\r
+        titleLabel->SetPosition(83, 50, 300, 35);\r
+        titleLabel->SetStyle(STYLE_TEXT_FONT, 30);\r
+        titleLabel->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+        titleLabel->SetTextId(STR_BLUETOOTH_HEADPHONES); /*蓝牙耳机*/\r
+        titleLabel->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
+        titleLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+        titleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+        /* --------------------------- EarPhoneDeviceName --------------------------- */\r
+        if (EarPhoneDeviceName == nullptr)\r
+        {\r
+            EarPhoneDeviceName = new UILabelExt();\r
+            if (EarPhoneDeviceName == nullptr)\r
+            {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "EarPhoneDeviceName new fail");\r
+                return false;\r
+            }\r
         }\r
-        titleLabel->SetPosition(60, 100, 333, 45); // 60:x 100:y 333:width 45:height\r
+        EarPhoneDeviceName->SetPosition(53, 246, 360, 35);\r
+        EarPhoneDeviceName->SetStyle(STYLE_TEXT_FONT, 30);\r
+        EarPhoneDeviceName->SetStyle(STYLE_LINE_HEIGHT, 35);\r
         BluetoothCaseInfo *caseInfo = BluetoothModel::GetInstance()->GetTempMacValue();\r
-        titleLabel->SetText(reinterpret_cast<const char *>(caseInfo->deviceName));\r
-        titleLabel->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);\r
-        titleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_FORTY_SIZE);\r
-        titleLabel->SetStyle(STYLE_BACKGROUND_COLOR, OPA_OPAQUE);\r
-        titleLabel->SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER, UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER);\r
-        group->Add(titleLabel);\r
-    }\r
-    if (connectStateLabel == nullptr) {\r
-        connectStateLabel = new UILabel();\r
-        if (connectStateLabel == nullptr) {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothOptionsView connectStateLabel new fail");\r
-            return;\r
+        EarPhoneDeviceName->SetText(reinterpret_cast<const char *>(caseInfo->deviceName));\r
+        EarPhoneDeviceName->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
+        EarPhoneDeviceName->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+        EarPhoneDeviceName->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+        /* -------------------------------- pairState ------------------------------- */\r
+        if (pairState == nullptr)\r
+        {\r
+            pairState = new UILabelExt();\r
+            if (pairState == nullptr)\r
+            {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "pairState new fail");\r
+                return false;\r
+            }\r
         }\r
-        connectStateLabel->SetPosition(60, 148, 333, 33); // 60:x 148:y 333:width 33:height\r
+        pairState->SetPosition(53, 284, 360, 35);\r
+        pairState->SetStyle(STYLE_TEXT_FONT, 30);\r
+        pairState->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+        pairState->SetTextColor(Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0x7f));\r
+        caseInfo = BluetoothModel::GetInstance()->GetTempMacValue();\r
+        pairState->SetTextId(STR_PAIRED);\r
+        pairState->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
+        pairState->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+        pairState->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+        /* ---------------------------- connectStateLabel 注:暂时不用--------------------------- */\r
+        if (connectStateLabel == nullptr)\r
+        {\r
+            connectStateLabel = new UILabel();\r
+            if (connectStateLabel == nullptr)\r
+            {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothOptionsView connectStateLabel new fail");\r
+                return false;\r
+            }\r
+        }\r
+        connectStateLabel->SetPosition(60, 148, 333, 33);\r
         connectStateLabel->SetText("已连接");\r
         connectStateLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_THIRTY_SIZE);\r
         connectStateLabel->SetStyle(STYLE_BACKGROUND_COLOR, OPA_OPAQUE);\r
         connectStateLabel->SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER, UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER);\r
-        group->Add(connectStateLabel);\r
+        connectStateLabel->SetVisible(false);\r
+        /* -------------------------------------------------------------------------- */\r
+        return true;\r
     }\r
-}\r
 \r
-void BluetoothOptionsView::InItLabelButton()\r
-{\r
-    UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::PlayersPresenter::GetInstance();\r
-    UIView::OnClickListener *clickListener2 = (UIView::OnClickListener *)OHOS::BluetoothPresenter::GetInstance();\r
-    if ((clickListener == nullptr) && (clickListener2 == nullptr)) {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "clickListener GetInstance fail");\r
-        return;\r
-    }\r
-    if (optionsOneButton == nullptr) {\r
-        optionsOneButton = new UILabelButton();\r
-        if (optionsOneButton == nullptr) {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothOptionsView optionsOneButton new fail");\r
-            return;\r
+    bool BluetoothOptionsView::CreateBluetoothOptionsLabelButton(void)\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothOptionsView::CreateBluetoothOptionsLabelButton");\r
+        UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::PlayersPresenter::GetInstance();\r
+        UIView::OnClickListener *clickListener2 = (UIView::OnClickListener *)OHOS::BluetoothPresenter::GetInstance();\r
+        if ((clickListener == nullptr) && (clickListener2 == nullptr))\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "clickListener GetInstance fail");\r
+            return false;\r
+        }\r
+        /* ---------------------------- optionsOneButton 注:暂时不用---------------------------- */\r
+        if (optionsOneButton == nullptr)\r
+        {\r
+            optionsOneButton = new UILabelButtonExt();\r
+            if (optionsOneButton == nullptr)\r
+            {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothOptionsView optionsOneButton new fail");\r
+                return false;\r
+            }\r
         }\r
         optionsOneButton->SetPosition(157, 210, 139, 47); // 157:x, 210:y, 139:width 47:height\r
         optionsOneButton->SetText("断开连接");\r
         optionsOneButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_THIRTY_SIZE);\r
         optionsOneButton->SetViewId(BLUETOOTH_OPTIONONE_BUTTON);\r
         optionsOneButton->SetImageSrc(PNG_SELECTION_BOX, PNG_SELECTION_BOX);\r
-        if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS) {\r
+        if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS)\r
+        {\r
             optionsOneButton->SetTextColor(Color::Red());\r
             optionsOneButton->SetOnClickListener(clickListener);\r
-        } else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING) {\r
+        }\r
+        else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING)\r
+        {\r
             optionsOneButton->SetTextColor(Color::Blue());\r
             optionsOneButton->SetOnClickListener(clickListener2);\r
         }\r
-        group->Add(optionsOneButton);\r
-    }\r
-    if (unpairButton == nullptr) {\r
-        unpairButton = new UILabelButton();\r
-        if (unpairButton == nullptr) {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothOptionsView unpairButton new fail");\r
-            return;\r
-        }\r
-        unpairButton->SetPosition(157, 284, 139, 47); // 157:x, 284:y, 139:width 47:height\r
-        unpairButton->SetText("取消配对");\r
-        unpairButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_THIRTY_SIZE);\r
+        optionsOneButton->SetVisible(false);\r
+        /* ------------------------------ unpairButton ------------------------------ */\r
+        if (unpairButton == nullptr)\r
+        {\r
+            unpairButton = new UILabelButtonExt();\r
+            if (unpairButton == nullptr)\r
+            {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothOptionsView unpairButton new fail");\r
+                return false;\r
+            }\r
+        }\r
+        unpairButton->SetPosition(0, 366, 466, 100);\r
+        unpairButton->SetTextId(STR_UNPAIR); // 取消配对\r
+        unpairButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
         unpairButton->SetViewId(BLUETOOTH_UNPAIR_BUTTON);\r
-        unpairButton->SetImageSrc(PNG_SELECTION_BOX, PNG_SELECTION_BOX);\r
-        if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS) {\r
-            unpairButton->SetTextColor(Color::Red());\r
+        unpairButton->SetImageSrc(PNG_BUTTON_466x100_IMAGE, PNG_BUTTON_466x100_IMAGE);\r
+        unpairButton->SetStyleForState(STYLE_BACKGROUND_COLOR, 0x00, UIButton::PRESSED);\r
+        unpairButton->SetTextColor(Color::GetColorFromRGBA(0xff, 0x5a, 0x36, 0xff));\r
+        if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS)\r
+        {\r
             unpairButton->SetOnClickListener(clickListener);\r
-        } else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING) {\r
-            unpairButton->SetTextColor(Color::Blue());\r
+        }\r
+        else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING)\r
+        {\r
             unpairButton->SetOnClickListener(clickListener2);\r
         }\r
-        group->Add(unpairButton);\r
+        return true;\r
     }\r
-}\r
 \r
-UIViewGroup *BluetoothOptionsView::InitShowUpView()\r
-{\r
-    // 获取currentBdAddr db值 model待开发\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothOptionsView init");\r
-    if (group == nullptr) {\r
-        group = new UIViewGroup();\r
-        if (group == nullptr) {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group new fail");\r
-            return nullptr;\r
+    bool BluetoothOptionsView::CreateBluetoothOptionsImageView(void)\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothOptionsView::CreateBluetoothOptionsImageView");\r
+        /* --------------------------- btHeadsetIconUmage --------------------------- */\r
+        if (btHeadsetIconUmage == nullptr)\r
+        {\r
+            btHeadsetIconUmage = new UIImageView();\r
+            if (btHeadsetIconUmage == nullptr)\r
+            {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "btHeadsetIconUmage new fail");\r
+                return false;\r
+            }\r
+        }\r
+        btHeadsetIconUmage->SetPosition(193, 134, 80, 80);\r
+        btHeadsetIconUmage->SetAutoEnable(false);\r
+        btHeadsetIconUmage->SetResizeMode(UIImageView::CENTER);\r
+        if (!PlayersView::LoadPlayerImage(btHeadsetIconUmage, PLAYER_EARPHONE))\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "btHeadsetIconUmage LoadPlayerImage fail");\r
+            return false;\r
         }\r
-        group->SetPosition(0, 0);\r
-        group->SetWidth(HORIZONTAL_RESOLUTION);\r
-        group->SetHeight(VERTICAL_RESOLUTION);\r
+        return true;\r
     }\r
-    InItLabelButton();\r
-    InItTitleLabel();\r
-    UIView::OnDragListener *earDragListener = (UIView::OnDragListener *)OHOS::PlayerOnDragListener::GetInstance();\r
-    UIView::OnDragListener *earDragListener2 = (UIView::OnDragListener *)OHOS::BluetoothPresenter::GetInstance();\r
-    if ((earDragListener == nullptr) && (earDragListener2 == nullptr)) {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "earDragListener GetInstance fail");\r
-        return nullptr;\r
+\r
+    // 刷新状态和文字\r
+    void BluetoothOptionsView::RefreshText(void)\r
+    {\r
+        BluetoothModel::GetInstance()->SetBtStatus();\r
+        if (BluetoothModel::GetInstance()->GetAclConnected())\r
+        {\r
+            connectStateLabel->SetText("已连接");\r
+            optionsOneButton->SetText("断开连接");\r
+        }\r
+        else\r
+        {\r
+            connectStateLabel->SetText("已断开");\r
+            optionsOneButton->SetText("重新连接");\r
+        }\r
+        BluetoothCaseInfo *caseInfo = BluetoothModel::GetInstance()->GetTempMacValue();\r
+        EarPhoneDeviceName->SetText(reinterpret_cast<const char *>(caseInfo->deviceName));\r
+        optionsOneButton->Invalidate();\r
     }\r
-    if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS) {\r
-        group->SetOnDragListener(earDragListener);\r
-    } else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING) {\r
-        group->SetOnDragListener(earDragListener2);\r
+\r
+    UIViewGroup *BluetoothOptionsView::CreateBluetoothOptionsView()\r
+    {\r
+        // 获取currentBdAddr db值 model待开发\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothOptionsView init");\r
+        if (group == nullptr)\r
+        {\r
+            group = new UIViewGroup();\r
+            if (group == nullptr)\r
+            {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group new fail");\r
+                return nullptr;\r
+            }\r
+            group->SetPosition(0, 0);\r
+            group->SetWidth(HORIZONTAL_RESOLUTION);\r
+            group->SetHeight(VERTICAL_RESOLUTION);\r
+        }\r
+        UIView::OnDragListener *earDragListener = (UIView::OnDragListener *)OHOS::PlayerOnDragListener::GetInstance();\r
+        UIView::OnDragListener *earDragListener2 = (UIView::OnDragListener *)OHOS::BluetoothPresenter::GetInstance();\r
+        if ((earDragListener == nullptr) && (earDragListener2 == nullptr))\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "earDragListener GetInstance fail");\r
+            return nullptr;\r
+        }\r
+        if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS)\r
+        {\r
+            group->SetOnDragListener(earDragListener);\r
+        }\r
+        else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING)\r
+        {\r
+            group->SetOnDragListener(earDragListener2);\r
+        }\r
+        group->SetViewId(BLUETOOTH_OPTIONS_VIEW);\r
+        group->SetDraggable(true);\r
+        group->SetTouchable(true);\r
+        /* -------------------------------------------------------------------------- */\r
+        if (!CreateBluetoothOptionsLabelView() || !CreateBluetoothOptionsImageView() || !CreateBluetoothOptionsLabelButton())\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TipsFailMessageView::CreateTipsFailMessageView fail!!");\r
+            return nullptr;\r
+        }\r
+        /* ----------------------------------- Add ---------------------------------- */\r
+        group->Add(titleLabel);\r
+        group->Add(btHeadsetIconUmage);\r
+        group->Add(EarPhoneDeviceName);\r
+        group->Add(pairState);\r
+        group->Add(unpairButton);\r
+        group->Add(optionsOneButton);\r
+        group->Add(connectStateLabel);\r
+\r
+        return group;\r
     }\r
-    group->SetViewId(BLUETOOTH_OPTIONS_VIEW);\r
-    group->SetDraggable(true);\r
-    group->SetTouchable(true);\r
-    return group;\r
-}\r
 \r
-UILabelButton *BluetoothOptionsView::GetOptionsOneButton(void)\r
-{\r
-    return optionsOneButton;\r
-}\r
+    UILabelButtonExt *BluetoothOptionsView::GetOptionsOneButton(void)\r
+    {\r
+        return optionsOneButton;\r
+    }\r
 \r
-UILabelButton *BluetoothOptionsView::GetUnpairButton(void)\r
-{\r
-    return unpairButton;\r
-}\r
+    UILabelButtonExt *BluetoothOptionsView::GetUnpairButton(void)\r
+    {\r
+        return unpairButton;\r
+    }\r
 \r
+    /*\r
+     * @brief 获取蓝牙Model中的最后连接设备的地址,然后调用 gap_disconnect_remote_device 函数来断开与该远程设备的连接,并记录相关的日志信息。\r
+     *\r
+     * eg:比如之前连接的设备是一个蓝牙耳机,当用户主动触发断开操作时,该函数就会执行,断开与该耳机的连接。\r
+     */\r
+    void BluetoothOptionsView::SetBtDisconnect(void)\r
+    {\r
+        bd_addr_t *lastAddr = BluetoothModel::GetInstance()->GetLastConnedAddr();\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetBtDisconnect Addr: %02x%02x%02x%02x%02x%02x",\r
+                      lastAddr->addr[5], lastAddr->addr[4], lastAddr->addr[3],  /* mac下标 0 1 2 3 4 5 */\r
+                      lastAddr->addr[2], lastAddr->addr[1], lastAddr->addr[0]); /* mac下标 0 1 2 3 4 5 */\r
+        errcode_t retVal = gap_disconnect_remote_device(lastAddr);\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "gap_disconnect_remote_device %d", retVal);\r
+    }\r
 \r
-void BluetoothOptionsView::SetBtDisconnect(void)\r
-{\r
-    bd_addr_t *lastAddr = BluetoothModel::GetInstance()->GetLastConnedAddr();\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetBtDisconnect Addr: %02x%02x%02x%02x%02x%02x",\r
-        lastAddr->addr[5], lastAddr->addr[4], lastAddr->addr[3], /* mac下标 0 1 2 3 4 5 */\r
-        lastAddr->addr[2], lastAddr->addr[1], lastAddr->addr[0]); /* mac下标 0 1 2 3 4 5 */\r
-    errcode_t retVal  = gap_disconnect_remote_device(lastAddr);\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "gap_disconnect_remote_device %d", retVal);\r
-}\r
-\r
-void BluetoothOptionsView::SetBtconnect(void)\r
-{\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetBtconnect currentAddr: %02x%02x%02x%02x%02x%02x",\r
-        currentAddr.addr[5], currentAddr.addr[4], currentAddr.addr[3], /* mac下标 0 1 2 3 4 5 */\r
-        currentAddr.addr[2], currentAddr.addr[1], currentAddr.addr[0]); /* mac下标 0 1 2 3 4 5 */\r
-    errcode_t retVal = BluetoothModel::GetInstance()->ConnectRemoteDevice(&currentAddr);\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetBtconnect ConnectRemoteDevice %d", retVal);\r
-}\r
-\r
-void BluetoothOptionsView::SetUnpair(void)\r
-{\r
-    bool ret;\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetUnpair currentAddr: %02x%02x%02x%02x%02x%02x",\r
-        currentAddr.addr[5], currentAddr.addr[4], currentAddr.addr[3], /* mac下标 0 1 2 3 4 5 */\r
-        currentAddr.addr[2], currentAddr.addr[1], currentAddr.addr[0]); /* mac下标 0 1 2 3 4 5 */\r
-    ret = gap_remove_pair(&currentAddr);\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetUnpair gap_remove_pair %d", ret);\r
-}\r
+    /*\r
+     * @brief 记录当前要连接的设备地址的相关日志信息,然后通过蓝牙Model的 ConnectRemoteDevice 函数尝试连接该远程设备,并记录连接结果的日志。 \r
+     *\r
+     * 当用户选择连接一个新的蓝牙设备时,这个函数会被调用,尝试建立与该设备的连接。\r
+     */\r
+    void BluetoothOptionsView::SetBtconnect(void)\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetBtconnect currentAddr: %02x%02x%02x%02x%02x%02x",\r
+                      currentAddr.addr[5], currentAddr.addr[4], currentAddr.addr[3],  /* mac下标 0 1 2 3 4 5 */\r
+                      currentAddr.addr[2], currentAddr.addr[1], currentAddr.addr[0]); /* mac下标 0 1 2 3 4 5 */\r
+        errcode_t retVal = BluetoothModel::GetInstance()->ConnectRemoteDevice(&currentAddr);\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetBtconnect ConnectRemoteDevice %d", retVal);\r
+    }\r
 \r
+    /*\r
+    * @brief 记录当前设备地址的日志,然后调用 gap_remove_pair 函数来解除与该设备的配对,并记录操作结果的日志。\r
+    *\r
+    * 如果用户不再希望与某个已配对的蓝牙设备保持配对关系,例如一个旧手机,触发此操作时该函数执行。\r
+    */\r
+    void BluetoothOptionsView::SetUnpair(void)\r
+    {\r
+        bool ret;\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetUnpair currentAddr: %02x%02x%02x%02x%02x%02x",\r
+                      currentAddr.addr[5], currentAddr.addr[4], currentAddr.addr[3],  /* mac下标 0 1 2 3 4 5 */\r
+                      currentAddr.addr[2], currentAddr.addr[1], currentAddr.addr[0]); /* mac下标 0 1 2 3 4 5 */\r
+        ret = gap_remove_pair(&currentAddr);\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetUnpair gap_remove_pair %d", ret);\r
+    }\r
 \r
-void BluetoothOptionsView::SetCurrentAddr(bd_addr_t addr)\r
-{\r
-    (void)memcpy_s(currentAddr.addr, BD_ADDR_LEN,\r
-                   addr.addr, BD_ADDR_LEN); // 源和目标内存长度一样,不做返回值判断\r
-}\r
+    /*\r
+    * @brief 使用 memcpy_s 函数将传入的地址 addr 复制到 currentAddr 中。\r
+    *\r
+    * 当获取到新的有效的蓝牙设备地址时,通过这个函数更新当前要操作的地址。\r
+    */\r
+    void BluetoothOptionsView::SetCurrentAddr(bd_addr_t addr)\r
+    {\r
+        (void)memcpy_s(currentAddr.addr, BD_ADDR_LEN,\r
+                       addr.addr, BD_ADDR_LEN); // 源和目标内存长度一样,不做返回值判断\r
+    }\r
 \r
-bd_addr_t BluetoothOptionsView::GetCurrentAddr(void)\r
-{\r
-    return currentAddr;\r
-}\r
+    /*\r
+     * @brief 返回当前保存的蓝牙设备地址。\r
+     *\r
+     * 其他函数需要获取当前正在操作的蓝牙地址时,会调用这个函数来获取。\r
+     */\r
+    bd_addr_t BluetoothOptionsView::GetCurrentAddr(void)\r
+    {\r
+        return currentAddr;\r
+    }\r
 }
\ No newline at end of file
index 18b5bae..878c2e2 100644 (file)
@@ -136,6 +136,7 @@ void BluetoothPresenter::ClickUnpairButton(void)
     view_->ChangeView(BLUETOOTHEOPTIONSVIEW, BLUETOOTHDEVICELISTVIEW);\r
 }\r
 \r
+/*已连接的蓝牙耳机设备视图中【重新连接或断开连接】按钮*/\r
 void BluetoothPresenter::ClickOptionsOneButton(void)\r
 {\r
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothPresenter::OnClick BLUETOOTH_OPTIONONE_BUTTON");\r
@@ -147,7 +148,7 @@ void BluetoothPresenter::ClickOptionsOneButton(void)
     bluetoothMode_->SetBtStatus();\r
     if (bluetoothMode_->GetAclConnected()) {\r
         bluetoothMode_->SetTagConnectNew(false);\r
-        bluetoothOptionsView->SetBtDisconnect();\r
+        bluetoothOptionsView->SetBtDisconnect();/*断开与该远程设备的连接*/\r
         view_->ChangeView(BLUETOOTHEOPTIONSVIEW, BLUETOOTHDEVICELISTVIEW);\r
     } else {\r
         bluetoothMode_->SetTagReconnectJump(true);\r
@@ -224,7 +225,7 @@ bool BluetoothPresenter::OnKeyAct(UIView &view, const KeyEvent &event)
     uint16 keyID = event.GetKeyId();\r
     uint16 keyState = event.GetState();\r
     // 如果是power键就返回上一级\r
-    if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)\r
+    if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)\r
     {\r
         NativeAbility::GetInstance().Back();\r
     }\r
index 3c6aa8c..27846c3 100644 (file)
@@ -155,7 +155,7 @@ bool MainBluetoothView::ChangeTipsFailMessageView(int16_t hideView, int16_t this
             return false;\r
         }\r
         // init view\r
-        UIViewGroup *group = tipsFailMessageView->ShowUpViewInit();\r
+        UIViewGroup *group = tipsFailMessageView->CreateTipsFailMessageView();\r
         if (group == nullptr) {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group nullptr fail");\r
             return false;\r
@@ -281,7 +281,7 @@ bool MainBluetoothView::ChangeBluetoothOptionsView(int16_t hideView, int16_t thi
             return false;\r
         }\r
         // init view\r
-        UIViewGroup *group = bluetoothOptionsView->InitShowUpView();\r
+        UIViewGroup *group = bluetoothOptionsView->CreateBluetoothOptionsView();\r
         if (group == nullptr) {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group nullptr fail");\r
             return false;\r
index 4d732b8..49982ff 100644 (file)
 #include "BluetoothModel.h"\r
 #include "wearable_log.h"\r
 #include "UiConfig.h"\r
-#include "PlayersPresenter.h"\r
-#include "BluetoothPresenter.h"\r
+#include "player/include/PlayersPresenter.h"\r
+#include "player/include/PlayersView.h"\r
+#include "bluetooth/include/BluetoothPresenter.h"\r
+#include "ui_resource_string.h"\r
+#include "ui_resource_image.h"\r
 \r
-namespace OHOS {\r
-static TipsFailMessageView *g_pFailMessageView{nullptr};\r
-TipsFailMessageView::TipsFailMessageView()\r
+namespace OHOS\r
 {\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TipsFailMessageView::TipsFailMessageView");\r
-    g_pFailMessageView = this;\r
-}\r
+    static TipsFailMessageView *g_pFailMessageView{nullptr};\r
+    TipsFailMessageView::TipsFailMessageView()\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TipsFailMessageView::TipsFailMessageView");\r
+        g_pFailMessageView = this;\r
+    }\r
 \r
-TipsFailMessageView::~TipsFailMessageView()\r
-{\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TipsFailMessageView::~TipsFailMessageView");\r
-    group->RemoveAll();\r
-    delete titleLabel;\r
-    titleLabel = nullptr;\r
-    delete backButton;\r
-    backButton = nullptr;\r
-    delete group;\r
-    group = nullptr;\r
-    delete tipImg;\r
-    tipImg = nullptr;\r
-    g_pFailMessageView = nullptr;\r
-}\r
+    TipsFailMessageView::~TipsFailMessageView()\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TipsFailMessageView::~TipsFailMessageView");\r
+        if (group != nullptr)\r
+        {\r
+            group->RemoveAll();\r
+            if (titleLabel)\r
+            {\r
+                delete titleLabel;\r
+                titleLabel = nullptr;\r
+            }\r
+            if (btIconImage)\r
+            {\r
+                delete btIconImage;\r
+                btIconImage = nullptr;\r
+                ImageCacheManager::GetInstance().UnloadOneInMultiRes(PLAYER_BLUETOOTH_GRAY, PLAYER_IAMGES);\r
+            }\r
+            if (btHeadsetNotFoundLabel)\r
+            {\r
+                delete btHeadsetNotFoundLabel;\r
+                btHeadsetNotFoundLabel = nullptr;\r
+            }\r
+            if (rescanButton)\r
+            {\r
+                delete rescanButton;\r
+                rescanButton = nullptr;\r
+            }\r
+            delete group;\r
+            group = nullptr;\r
+        }\r
+        g_pFailMessageView = nullptr;\r
+    }\r
 \r
-TipsFailMessageView *TipsFailMessageView::GetInstance()\r
-{\r
-    return g_pFailMessageView;\r
-}\r
+    TipsFailMessageView *TipsFailMessageView::GetInstance()\r
+    {\r
+        return g_pFailMessageView;\r
+    }\r
 \r
-int TipsFailMessageView::ShowUpButtonBack()\r
-{\r
-    if (backButton == nullptr) {\r
-        backButton = new UILabelButton();\r
-        if (backButton == nullptr) {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TipsFailMessageView backButton new fail");\r
-            return OHOS_FAILURE;\r
+    bool TipsFailMessageView::CreateTipsFailMessageLabelView(void)\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TipsFailMessageView::CreateTipsFailMessageLabelView");\r
+        /* ------------------------------- titleLabel ------------------------------- */\r
+        if (titleLabel == nullptr)\r
+        {\r
+            titleLabel = new UILabelExt();\r
+            if (titleLabel == nullptr)\r
+            {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "titleLabel new fail");\r
+                return false;\r
+            }\r
         }\r
-        UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::PlayersPresenter::GetInstance();\r
-        UIView::OnClickListener *clickListener2 = (UIView::OnClickListener *)OHOS::BluetoothPresenter::GetInstance();\r
-        if ((clickListener == nullptr) && (clickListener2 == nullptr)) {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "clickListener GetInstance fail");\r
-            return OHOS_FAILURE;\r
+        titleLabel->SetPosition(83, 50, 300, 35);\r
+        titleLabel->SetStyle(STYLE_TEXT_FONT, 30);\r
+        titleLabel->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+        titleLabel->SetTextId(STR_BLUETOOTH_HEADPHONES); /*蓝牙耳机*/\r
+        titleLabel->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
+        titleLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+        titleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+        /* ------------------------- btHeadsetNotFoundLabel ------------------------- */\r
+        if (btHeadsetNotFoundLabel == nullptr)\r
+        {\r
+            btHeadsetNotFoundLabel = new UILabelExt();\r
+            if (btHeadsetNotFoundLabel == nullptr)\r
+            {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "titleLabel new fail");\r
+                return false;\r
+            }\r
         }\r
-        backButton->SetPosition(65, 359, 324, 101); // 65:x, 359:y, 324:width 101:height\r
-        backButton->SetText("重试");\r
-        backButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 40); // 40:font data\r
-        backButton->SetImageSrc(PNG_NEW_DEVICE, PNG_NEW_DEVICE);\r
-        backButton->SetViewId(BLUETOOTH_FAIL_BACK_BUTTON);\r
-        if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS) {\r
-            backButton->SetTextColor(Color::Red());\r
-            backButton->SetOnClickListener(clickListener);\r
-        } else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING) {\r
-            backButton->SetTextColor(Color::Blue());\r
-            backButton->SetOnClickListener(clickListener2);\r
+        btHeadsetNotFoundLabel->SetPosition(53, 305, 360, 30);\r
+        btHeadsetNotFoundLabel->SetStyle(STYLE_TEXT_FONT, 26);\r
+        btHeadsetNotFoundLabel->SetStyle(STYLE_LINE_HEIGHT, 30);\r
+        btHeadsetNotFoundLabel->SetTextId(STR_BT_HEADSET_NOFOND); /*当前搜索不到耳机蓝牙设备*/\r
+        btHeadsetNotFoundLabel->SetTextColor(Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff));\r
+        btHeadsetNotFoundLabel->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
+        btHeadsetNotFoundLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+        btHeadsetNotFoundLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 26);\r
+\r
+        return true;\r
+    }\r
+\r
+    bool TipsFailMessageView::CreateTipsFailMessageImageView(void)\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TipsFailMessageView::CreateTipsFailMessageImageView");\r
+        if (btIconImage == nullptr)\r
+        {\r
+            btIconImage = new UIImageView();\r
+            if (btIconImage == nullptr)\r
+            {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group new fail");\r
+                return false;\r
+            }\r
+            btIconImage->SetPosition(163, 126, 140, 140);\r
+            btIconImage->SetAutoEnable(false);\r
+            btIconImage->SetResizeMode(UIImageView::CENTER);\r
+            if (!PlayersView::LoadPlayerImage(btIconImage, PLAYER_BLUETOOTH_GRAY))\r
+            {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "btIconImage LoadPlayerImage fail");\r
+                return false;\r
+            }\r
         }\r
-        group->Add(backButton);\r
+        return true;\r
     }\r
-    if (tipImg == nullptr) {\r
-        tipImg = new UIImageView();\r
-        if (tipImg == nullptr) {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TipsFailMessageView tipImg new fail");\r
-            return OHOS_FAILURE;\r
+\r
+    bool TipsFailMessageView::CreateTipsFailMessageLabelButton()\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TipsFailMessageView::CreateTipsFailMessageLabelButton");\r
+        if (rescanButton == nullptr)\r
+        {\r
+            rescanButton = new UILabelButtonExt();\r
+            if (rescanButton == nullptr)\r
+            {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TipsFailMessageView rescanButton new fail");\r
+                return false;\r
+            }\r
+            UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::PlayersPresenter::GetInstance();\r
+            UIView::OnClickListener *clickListener2 = (UIView::OnClickListener *)OHOS::BluetoothPresenter::GetInstance();\r
+            if ((clickListener == nullptr) && (clickListener2 == nullptr))\r
+            {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "clickListener GetInstance fail");\r
+                return false;\r
+            }\r
+            rescanButton->SetPosition(73, 350, 320, 100);\r
+            rescanButton->SetTextId(STR_BT_HEADSET_RESCAN); /*重新搜索*/\r
+            rescanButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);\r
+            rescanButton->SetStyle(STYLE_BACKGROUND_OPA, 0x00);\r
+            rescanButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+            rescanButton->SetViewId(BLUETOOTH_FAIL_BACK_BUTTON);\r
+            rescanButton->SetTextColor(Color::GetColorFromRGBA(0x35, 0x49, 0xff, 0xff));\r
+            rescanButton->SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED);\r
+            if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS)\r
+            {\r
+                rescanButton->SetOnClickListener(clickListener);\r
+            }\r
+            else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING)\r
+            {\r
+                rescanButton->SetOnClickListener(clickListener2);\r
+            }\r
         }\r
-        tipImg->SetPosition(181, 111, 90, 90); // 181:x 111:y 90:width 90:height\r
-        tipImg->SetSrc(PNG_GANTAN);\r
-        group->Add(tipImg);\r
+        return true;\r
     }\r
-    return OHOS_SUCCESS;\r
-}\r
 \r
-UIViewGroup *TipsFailMessageView::ShowUpViewInit(void)\r
-{\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TipsFailMessageView::ShowUpViewInit");\r
-    if (group == nullptr) {\r
-        group = new UIViewGroup();\r
-        if (group == nullptr) {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group new fail");\r
+    UIViewGroup *TipsFailMessageView::CreateTipsFailMessageView(void)\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TipsFailMessageView::CreateTipsFailMessageView");\r
+        if (group == nullptr)\r
+        {\r
+            group = new UIViewGroup();\r
+            if (group == nullptr)\r
+            {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group new fail");\r
+                return nullptr;\r
+            }\r
+            group->SetPosition(0, 0, 466, 466);\r
+        }\r
+        UIView::OnDragListener *tipsDragListener = (UIView::OnDragListener *)OHOS::PlayerOnDragListener::GetInstance();\r
+        UIView::OnDragListener *tipsDragListener2 = (UIView::OnDragListener *)OHOS::BluetoothPresenter::GetInstance();\r
+        if ((tipsDragListener == nullptr) && (tipsDragListener2 == nullptr))\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "tipsDragListener GetInstance fail");\r
             return nullptr;\r
         }\r
-        group->SetPosition(0, 0);\r
-        group->SetWidth(HORIZONTAL_RESOLUTION);\r
-        group->SetHeight(VERTICAL_RESOLUTION);\r
-    }\r
-    if (titleLabel == nullptr) {\r
-        titleLabel = new UILabel();\r
-        if (titleLabel == nullptr) {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TipsFailMessageView titleLabel new fail");\r
+        if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS)\r
+        {\r
+            group->SetOnDragListener(tipsDragListener);\r
+        }\r
+        else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING)\r
+        {\r
+            group->SetOnDragListener(tipsDragListener2);\r
+        }\r
+        group->SetViewId(TIPS_FAIL_MESSAGE_VIEW);\r
+        group->SetDraggable(true);\r
+        group->SetTouchable(true);\r
+        /* -------------------------------------------------------------------------- */\r
+        if (!CreateTipsFailMessageLabelView() || !CreateTipsFailMessageImageView() || !CreateTipsFailMessageLabelButton())\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TipsFailMessageView::CreateTipsFailMessageView fail!!");\r
             return nullptr;\r
         }\r
-        titleLabel->SetPosition(0, 234, HORIZONTAL_RESOLUTION, 45); // 0:x 234:y 454:width 45:height\r
-        titleLabel->SetText("未发现蓝牙耳机");\r
-        titleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 40); // 40:font data\r
-        titleLabel->SetStyle(STYLE_BACKGROUND_COLOR, OPA_OPAQUE);\r
-        titleLabel->SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER,\r
-                             UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER);\r
+        /* ----------------------------------- Add ---------------------------------- */\r
         group->Add(titleLabel);\r
+        group->Add(btIconImage);\r
+        group->Add(btHeadsetNotFoundLabel);\r
+        group->Add(rescanButton);\r
+        /* -------------------------------------------------------------------------- */\r
+        return group;\r
     }\r
-    ShowUpButtonBack();\r
-    UIView::OnDragListener *tipsDragListener = (UIView::OnDragListener *)OHOS::PlayerOnDragListener::GetInstance();\r
-    UIView::OnDragListener *tipsDragListener2 = (UIView::OnDragListener *)OHOS::BluetoothPresenter::GetInstance();\r
-    if ((tipsDragListener == nullptr) && (tipsDragListener2 == nullptr)) {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "tipsDragListener GetInstance fail");\r
-        return nullptr;\r
-    }\r
-    if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS) {\r
-        group->SetOnDragListener(tipsDragListener);\r
-    } else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING) {\r
-        group->SetOnDragListener(tipsDragListener2);\r
-    }\r
-    group->SetViewId(TIPS_FAIL_MESSAGE_VIEW);\r
-    group->SetDraggable(true);\r
-    group->SetTouchable(true);\r
-    return group;\r
-}\r
 }
\ No newline at end of file
index 54241b4..ffbb19b 100644 (file)
@@ -81,7 +81,7 @@ namespace OHOS
         unsigned short keyID = event.GetKeyId();
         unsigned short 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);
         }
index ce09b4c..5fb38d7 100644 (file)
@@ -150,7 +150,7 @@ namespace OHOS
         uint16 keyID = event.GetKeyId();
         uint16 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();
         }
index b63e968..aa764e3 100644 (file)
@@ -139,7 +139,7 @@ namespace OHOS
         uint16 keyID = event.GetKeyId();\r
         uint16 keyState = event.GetState();\r
         // 如果是power键,且是亮屏状态,按键释放就返回上一级\r
-        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)\r
+        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)\r
         {\r
             NativeAbility::GetInstance().Back();\r
         }\r
index a8ed9d5..bdd21b4 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-03-14 15:02:03
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-06-27 09:37:31
+ * @LastEditTime: 2024-08-14 10:07:26
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/compass/src/MainCompassPresenter.cpp
  */
 
@@ -30,7 +30,7 @@ namespace OHOS
     void MainCompassPresenter::OnStart()
     {
         Presenter<CompassView>::OnStart();
-        ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON);
+        // ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON);
     }
 
     void MainCompassPresenter::OnPause(void) {}
@@ -39,7 +39,7 @@ namespace OHOS
 
     void MainCompassPresenter::OnStop(void)
     {
-        ScreenAlwaysOnCtr(CANCEL_SCREEN_ALWAYS_ON);
+        // ScreenAlwaysOnCtr(CANCEL_SCREEN_ALWAYS_ON);
     }
 
     MainCompassPresenter *MainCompassPresenter::GetInstance()
@@ -81,7 +81,7 @@ bool MainCompassPresenter::OnKeyAct(UIView &view, const KeyEvent &event)
     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);
     }
index 84aa804..333afb5 100644 (file)
@@ -231,7 +231,7 @@ namespace OHOS
         uint16_t keyID = event.GetKeyId();\r
         uint16_t keyState = event.GetState();\r
         // 如果是power键就返回上一级\r
-        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)\r
+        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)\r
         {\r
             NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
         }\r
index 1a61702..102fc09 100644 (file)
@@ -244,7 +244,7 @@ namespace OHOS
         unsigned short keyID = event.GetKeyId();\r
         unsigned short keyState = event.GetState();\r
         // 如果是power键,且是亮屏状态,按键释放就返回上一级\r
-        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)\r
+        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)\r
         {\r
             NativeAbility::GetInstance().Back();\r
         }\r
index 0954996..f9d1ab0 100644 (file)
@@ -106,7 +106,7 @@ namespace OHOS
         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);
         }
index 4b53e97..4c9f25f 100644 (file)
@@ -102,7 +102,7 @@ namespace OHOS
         unsigned short keyID = event.GetKeyId();
         unsigned short 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)
         {
             // 发送指令停止震动
             if (FindPhoneModel::GetInstance().GetBlueToothConnectedState())
index d96dc1a..083e87d 100644 (file)
@@ -96,7 +96,7 @@ namespace OHOS
         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();
         }
index fcc4b04..f57041a 100644 (file)
@@ -90,7 +90,7 @@ namespace OHOS
         uint16 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();
         }
index d1dc5cc..8406d01 100644 (file)
@@ -112,7 +112,7 @@ namespace OHOS
         unsigned short keyID = event.GetKeyId();
         unsigned short 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)
         {
             NavigateBack();
         }
index 7c9e38d..8b1295e 100644 (file)
@@ -117,7 +117,7 @@ namespace OHOS
         unsigned short keyID = event.GetKeyId();
         unsigned short 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().ChangeSlice(VIEW_APPLIST);
             NativeAbility::GetInstance().Back(TransitionType::TRANSITION_ZOOM);
index 711f3a9..c291f43 100644 (file)
@@ -156,7 +156,7 @@ namespace OHOS
         unsigned short keyID = event.GetKeyId();
         unsigned short 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();
         }
index 7ad9329..f06a2dc 100644 (file)
@@ -131,7 +131,7 @@ namespace OHOS
         unsigned short keyID = event.GetKeyId();
         unsigned short 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_ZOOM);
         }
index a513d40..0151804 100644 (file)
@@ -89,7 +89,7 @@ namespace OHOS
         unsigned short keyID = event.GetKeyId();
         unsigned short 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().ChangeSlice(VIEW_APPLIST);
             NativeAbility::GetInstance().Back(TransitionType::TRANSITION_ZOOM);
index 4205998..846cfcc 100644 (file)
@@ -143,7 +143,7 @@ namespace OHOS
         unsigned short keyID = event.GetKeyId();
         unsigned short 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();
         }
index 2d2b0e0..53065b9 100644 (file)
@@ -105,7 +105,7 @@ namespace OHOS
         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);
         }
index 39526c7..331ef62 100644 (file)
@@ -156,7 +156,7 @@ namespace OHOS
         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();
         }
index 3deabbb..68451cd 100644 (file)
@@ -113,7 +113,7 @@ namespace OHOS
         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);
         }
index 985b613..10f5143 100644 (file)
@@ -189,7 +189,7 @@ namespace OHOS
         unsigned short keyID = event.GetKeyId();
         unsigned short 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();
             set_address_number(NULL);
index fe02bfd..a80a294 100644 (file)
@@ -114,7 +114,7 @@ namespace OHOS
         unsigned short keyID = event.GetKeyId();
         unsigned short 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();
         }
index 93328c0..34d94e0 100644 (file)
@@ -224,7 +224,7 @@ namespace OHOS
         unsigned short keyID = event.GetKeyId();\r
         unsigned short keyState = event.GetState();\r
         // 如果是power键,且是亮屏状态,按键释放就返回上一级\r
-        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)\r
+        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)\r
         {\r
             NativeAbility::GetInstance().Back();\r
         }\r
index 20f9bf9..0203d1a 100644 (file)
@@ -114,7 +114,7 @@ namespace OHOS
         unsigned short keyID = event.GetKeyId();\r
         unsigned short keyState = event.GetState();\r
         // 如果是power键,且是亮屏状态,按键释放就返回上一级\r
-        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)\r
+        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)\r
         {\r
             NativeAbility::GetInstance().Back();\r
         }\r
index 28bf93c..d8b5f97 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-08-05 15:20:03\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-08-13 16:11:48\r
+ * @LastEditTime: 2024-08-14 11:26:39\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/player/include/PlayersView.h\r
  */\r
 \r
@@ -100,6 +100,7 @@ namespace OHOS
 \r
         void UpdatePlayerView(bool musicSourceType, bool phoneMusicConnectStatus);\r
         void UpdateMusicListStatus(void);\r
+        void OnClickBackKeyToMainMusicPlayerView(void);\r
 \r
         VolumeSettingView *GetVolumeSettingView();\r
         PlayerListDelSongView *GetPlayerListDelSongView();\r
@@ -113,6 +114,7 @@ namespace OHOS
         bool ChangeToMusicDeleteView(int16_t thisView);\r
         bool ChangeToMusicBluetoothDisConnectView(int16_t thisView);\r
         bool ChangeToMusicBluetoothConnectFailedView(int16_t thisView);\r
+        bool ChangeToMusicConnectingView(int16_t thisView);\r
 \r
     private:\r
         UIButton *PlayerViewButtonInit(ButtonConfig &buttonconfig);\r
index b6ddbea..2190639 100644 (file)
@@ -185,7 +185,7 @@ bool JumpView::ChangeBluetoothOptionsView(int16_t hideView, int16_t thisView)
             return false;\r
         }\r
         // init view\r
-        UIViewGroup *group = bluetoothOptionsView->InitShowUpView();\r
+        UIViewGroup *group = bluetoothOptionsView->CreateBluetoothOptionsView();\r
         if (group == nullptr) {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group nullptr fail");\r
             return false;\r
@@ -338,7 +338,7 @@ bool JumpView::ChangeTipsFailMessageView(int16_t hideView, int16_t thisView)
             return false;\r
         }\r
         // init view\r
-        UIViewGroup *group = tipsFailMessageView->ShowUpViewInit();\r
+        UIViewGroup *group = tipsFailMessageView->CreateTipsFailMessageView();\r
         if (group == nullptr) {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group nullptr fail");\r
             return false;\r
index 443ba94..6cde8c3 100644 (file)
@@ -882,6 +882,34 @@ namespace OHOS
         }\r
     }\r
 \r
+    /*点击返回键回到音乐主视图*/\r
+    void PlayersView::OnClickBackKeyToMainMusicPlayerView(void)\r
+    {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PlayersView::OnClickBackKeyToMainMusicPlayerView");\r
+        int index = 0;\r
+        for (int i = MAIN_MUSICPLAYER_VIEW; i < MUSICPLAYERJUMPVIEWID_MAX; i++)\r
+        {\r
+            if (group[i] != nullptr)\r
+            {\r
+                if (group[index]->IsVisible() == true)\r
+                {\r
+                    index = i;\r
+                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group[%d] IsVisible ", index);\r
+                    break;\r
+                }\r
+            }\r
+            else\r
+            {\r
+                continue;\r
+            }\r
+        }\r
+        if (index == MAIN_MUSICPLAYER_VIEW) /*如果是音乐主视图是可见的不做ChangeView*/\r
+        {\r
+            return;\r
+        }\r
+        ChangeView(index, MAIN_MUSICPLAYER_VIEW);\r
+    }\r
+\r
     /*刷新播放器界面的组件状态*/\r
     void PlayersView::UpdatePlayerView(bool musicSourceType, bool phoneMusicConnectStatus)\r
     {\r
@@ -1407,4 +1435,28 @@ namespace OHOS
         }\r
         return true;\r
     }\r
+\r
+    /*切换到蓝牙未连接视图*/\r
+    bool PlayersView::ChangeToMusicConnectingView(int16_t thisView)\r
+    {\r
+        //  WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PlayersView::ChangeToMusicBluetoothConnectFailedView");\r
+        // if (group[thisView] == nullptr)\r
+        // {\r
+        //     musicPlayerBTConnectFailedView = new MusicPlayerBTConnectFailedView();\r
+        //     if (musicPlayerBTConnectFailedView == nullptr)\r
+        //     {\r
+        //         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "new playerListDelSongView fail");\r
+        //         return false;\r
+        //     }\r
+        //     UIViewGroup *groupview = musicPlayerBTConnectFailedView->CreateMusicPlayerBTConnectFailedView();\r
+        //     if (groupview == nullptr)\r
+        //     {\r
+        //         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "new group[%d] fail", thisView);\r
+        //         return false;\r
+        //     }\r
+        //     group[thisView] = groupview;\r
+        //     Add(group[thisView]);\r
+        // }\r
+        return true;\r
+    }\r
 }\r
index 70c4868..b258fd9 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-07-18 14:55:27
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-08-03 20:21:43
+ * @LastEditTime: 2024-08-15 16:22:03
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/src/RebootAndShutdownModel.cpp
  */
 
@@ -171,7 +171,22 @@ namespace OHOS
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "power_display_svr_get_api returned nullptr");
             return;
         }
+        /* -------------------------------------------------------------------------- */
         display_api->turn_on_screen();
+        /* -------------------------------------------------------------------------- */
+        if(display_api->get_screen_state() == SCREEN_ON)
+        {
+            uint16_t curSliceId = NativeAbility::GetInstance().GetCurSliceId();
+            if (curSliceId == VIEW_AI_VOICE) // 如果当前已在ai语音界面不做切换
+            {
+                AiVoiceModel::GetInstance().FunctionKeyOnClickToChangeAIModel();
+            }
+            else
+            {
+                NativeAbility::GetInstance().EnterSlice(VIEW_AI_VOICE); // 切换到Ai语音界面
+            }
+        }
+
         return;
     }
 
@@ -370,7 +385,7 @@ namespace OHOS
         RegisterPowerKeyLongPressEvent();
         RegisterFuncKeyPressEvent();
         // RegisterFuncKeyLongPressEvent();
-        RegisterFuncKeyClickEvent();
+        // RegisterFuncKeyClickEvent();
         // RegisterFuncKeyDoubleClickEvent();
     }
 }
index 460f98e..edffae1 100644 (file)
@@ -212,7 +212,7 @@ namespace OHOS
         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)
         {
             if (!isShutDownImageAnimatorStart)
             {
index b2f20fe..d137eaa 100644 (file)
@@ -130,7 +130,7 @@ namespace OHOS
         uint16 keyID = event.GetKeyId();
         uint16 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)
         {
             // uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();
             // NativeAbility::GetInstance().ChangeSlice(preSlice);
index 4bc4ef8..ba00207 100644 (file)
@@ -263,7 +263,7 @@ namespace OHOS
         uint16 keyID = event.GetKeyId();\r
         uint16_t keyState = event.GetState();\r
         // 如果是power键就返回上一级\r
-        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)\r
+        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)\r
         {\r
             NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
         }\r
index 0b30109..2ab0dfa 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-06-11 16:26:20
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-06-13 15:10:37
+ * @LastEditTime: 2024-08-14 10:21:32
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/respiratorytraining/src/RespiratoryTrainingModel.cpp
  */
 #include "respiratorytraining/include/RespiratoryTrainingModel.h"
@@ -14,6 +14,7 @@
 #include <iostream>
 #include "respiratorytraining/include/RespiratoryTrainingView.h"
 #include "heartrate/include/HeartModel.h"
+#include <custom_utils.h>
 namespace OHOS
 {
     // 声明定时器变量
@@ -80,6 +81,7 @@ namespace OHOS
                 p_RespiratoryTrainingView->GetRespiratoryTrainingAnimator_()->Stop();  // 关闭呼吸动画
                 HeartModel::GetInstance()->Heart_Control(HeartState::End,HeartCheck::INITIATIVE);             // 关闭心率检测
                 p_RespiratoryTrainingView->ChangeView(RESPIRATORYTRAINING, RESPIRATORYTRAININGCOMPLETED);
+                ScreenAlwaysOnCtr(CANCEL_SCREEN_ALWAYS_ON);/*取消常亮屏*/
             }
             else
             {
index 0a3412b..1cf5bb9 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-05-07 11:26:06
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-06-13 15:17:08
+ * @LastEditTime: 2024-08-14 10:24:30
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/RespiratoryTraining/src/RespiratoryTrainingPresenter.cpp
  */
 
@@ -102,7 +102,7 @@ namespace OHOS
         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);
         }
index 963e645..02ae0c0 100644 (file)
@@ -91,7 +91,7 @@ namespace OHOS
         unsigned short keyID = event.GetKeyId();\r
         unsigned short keyState = event.GetState();\r
         // 如果是power键,且是亮屏状态,按键释放就返回上一级\r
-        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)\r
+        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)\r
         {\r
             NativeAbility::GetInstance().Back();\r
         }\r
index 68c4dbf..0feea05 100644 (file)
@@ -122,7 +122,7 @@ namespace OHOS
         uint16 keyID = event.GetKeyId();\r
         uint16 keyState = event.GetState();\r
         // 如果是power键,且是亮屏状态,按键释放就返回上一级\r
-        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)\r
+        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)\r
         {\r
             NativeAbility::GetInstance().ChangeSlice(VIEW_SETTING);\r
         }\r
index 30ca758..a62750d 100644 (file)
@@ -108,7 +108,7 @@ namespace OHOS
         unsigned short keyID = event.GetKeyId();
         unsigned short 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();
index e3bb503..d89c52e 100644 (file)
@@ -64,7 +64,7 @@ namespace OHOS
         unsigned short keyID = event.GetKeyId();
         unsigned short 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();
index 8761ed3..6ef81bc 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-06-12 11:44:04
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-22 11:08:39
+ * @LastEditTime: 2024-08-15 14:28:46
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/settings/src/SettingPresenter.cpp
  */
 /*
@@ -104,7 +104,7 @@ namespace OHOS
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingPresenter::OnKeyAct");
         uint16 keyID = event.GetKeyId();
         uint16 keyState = event.GetState();
-        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);
         }
index 5179e7c..25120a9 100644 (file)
@@ -94,7 +94,7 @@ namespace OHOS
         uint16 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();
         }
index ef7b5bc..805c22a 100644 (file)
@@ -95,7 +95,7 @@ namespace OHOS
         uint16 keyID = event.GetKeyId();\r
         uint16 keyState = event.GetState();\r
         // 如果是power键,且是亮屏状态,按键释放就返回上一级\r
-        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)\r
+        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)\r
         {\r
             NativeAbility::GetInstance().Back();\r
         }\r
index 2258d9c..159ab12 100644 (file)
@@ -110,7 +110,7 @@ namespace OHOS
         uint16 keyID = event.GetKeyId();\r
         uint16 keyState = event.GetState();\r
         // 如果是power键,且是亮屏状态,按键释放就返回上一级\r
-        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)\r
+        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)\r
         {\r
             NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
         }\r
index 04c1351..1a9edf1 100644 (file)
@@ -98,7 +98,7 @@ namespace OHOS
         uint16 keyID = event.GetKeyId();\r
         uint16 keyState = event.GetState();\r
         // 如果是power键,且是亮屏状态,按键释放就返回上一级\r
-        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)\r
+        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)\r
         {\r
             NativeAbility::GetInstance().Back();\r
         }\r
index db22636..d9284b7 100644 (file)
@@ -285,7 +285,7 @@ namespace OHOS
         uint16_t keyID = event.GetKeyId();\r
         uint16_t keyState = event.GetState();\r
         // 如果是power键就返回上一级\r
-        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)\r
+        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)\r
         {\r
             NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
         }\r
index 5d96810..3bb688b 100644 (file)
@@ -206,7 +206,7 @@ namespace OHOS
         uint16 keyID = event.GetKeyId();\r
         uint16 keyState = event.GetState();\r
         // 如果是power键,且是亮屏状态,按键释放就返回上一级\r
-        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)\r
+        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)\r
         {\r
             NativeAbility::GetInstance().Back();\r
         }\r
index 17b9ff1..f25e354 100644 (file)
@@ -109,7 +109,7 @@ namespace OHOS
         unsigned short keyID = event.GetKeyId();
         unsigned short 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();
         }
index 091d526..e758ede 100644 (file)
@@ -101,7 +101,7 @@ namespace OHOS
         unsigned short keyID = event.GetKeyId();
         unsigned short 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();
             /*如果是拍照界面需要发送拍照结束的消息*/
index ed2ae47..13aa916 100644 (file)
@@ -129,7 +129,7 @@ namespace OHOS
         uint16 keyID = event.GetKeyId();
         uint16 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);
         }
index 0b6736e..f9782fc 100644 (file)
@@ -94,7 +94,7 @@ namespace OHOS
         unsigned short 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)
         {
             NavigateBack();
         }
index 140290d..ce95461 100644 (file)
@@ -113,7 +113,7 @@ namespace OHOS
         unsigned short keyID = event.GetKeyId();\r
         unsigned short keyState = event.GetState();\r
         // 如果是power键,且是亮屏状态,按键释放就返回上一级\r
-        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)\r
+        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)\r
         {\r
             NavigateBack();\r
         }\r
index fea9365..b2a8d21 100644 (file)
@@ -88,7 +88,7 @@ namespace OHOS
         unsigned short keyID = event.GetKeyId();\r
         unsigned short keyState = event.GetState();\r
         // 如果是power键,且是亮屏状态,按键释放就返回上一级\r
-        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)\r
+        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)\r
         {\r
             NavigateBack();\r
         }\r
index 0486265..adc489d 100644 (file)
@@ -111,7 +111,7 @@ namespace OHOS
         unsigned short 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();
         }
index 6ef37b4..cd788bf 100644 (file)
@@ -112,7 +112,7 @@ namespace OHOS
         unsigned short 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();
         }
index 9972a62..0696242 100644 (file)
@@ -111,7 +111,7 @@ namespace OHOS
         unsigned short 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();
         }
index f411950..59d7395 100644 (file)
@@ -123,7 +123,7 @@ namespace OHOS
         unsigned short 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();
         }
index 455947b..577a2c4 100644 (file)
@@ -110,7 +110,7 @@ namespace OHOS
         unsigned short 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();
         }
index 6e43f47..59468d0 100644 (file)
@@ -109,7 +109,7 @@ namespace OHOS
         unsigned short keyState = event.GetState();\r
 \r
         // 如果是power键,且是亮屏状态,按键释放就返回上一级\r
-        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)\r
+        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)\r
         {\r
             NativeAbility::GetInstance().Back();\r
         }\r
index 5e9a99b..b2ea91b 100644 (file)
@@ -171,7 +171,7 @@ namespace OHOS
         unsigned short keyState = event.GetState();\r
 \r
         // 如果是power键,且是亮屏状态,按键释放就返回上一级\r
-        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)\r
+        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)\r
         {\r
             NavigateBack();\r
         }\r
index 4ad1fd7..cd4989e 100644 (file)
@@ -125,7 +125,7 @@ namespace OHOS
         unsigned short 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();
         }
index 3a560e5..d121c34 100644 (file)
@@ -110,7 +110,7 @@ namespace OHOS
         unsigned short 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();
         }
index 3e714fc..a2b1210 100644 (file)
@@ -146,7 +146,7 @@ namespace OHOS
         unsigned short keyID = event.GetKeyId();
         unsigned short 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)
         {
             NavigateBack();
         }
index 2b8d024..65491b6 100644 (file)
@@ -86,7 +86,7 @@ namespace OHOS
         uint16 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();
         }
index edeae73..9f867b2 100644 (file)
@@ -90,7 +90,7 @@ namespace OHOS
         uint16 keyID = event.GetKeyId();\r
         uint16_t keyState = event.GetState();\r
         // 如果是power键就返回上一级\r
-        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)\r
+        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)\r
         {\r
             NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
         }\r
index 8dd5329..be9207f 100644 (file)
@@ -1152,19 +1152,12 @@ void MsgCenterNotifyInactivityProc(const Topic topic, Request *req)
       
     WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "cywee_Inactivity_Info->output_number = %d", cywee_Inactivity_Info->output_number);
 
-    static int interval = 0;//久坐间隔时间
     switch (cywee_Inactivity_Info->output_number)
     {
         case INACTIVITY_MODE_SEDENTARY_OUTPUT:
             if(cywee_Inactivity_Info->status == 1)
             {
-                //NotificationManager::GetInstance()->ShowNotify(showSedentaryReminderNotify, (uint16_t)topic, true);
-                //根据久坐间隔时间和是否在设置的提醒时间段内判断是否弹出久坐视图
-                interval++;
-                if( interval % SedentaryReminderViewEventListener::GetInstance().GetIntervalTime() == 0){ 
-                    SedentaryReminderViewEventListener::GetInstance().SetSedentaryReminderNoteIntervalTime(interval);
-                    NotificationManager::GetInstance()->ShowNotify(showSedentaryReminderNotify, (uint16_t)topic, true);
-                }
+                NotificationManager::GetInstance()->ShowNotify(showSedentaryReminderNotify, (uint16_t)topic, true);
             } 
             else if(cywee_Inactivity_Info->status==9)
             {
index 004fa7a..5a28f09 100644 (file)
@@ -194,6 +194,7 @@ namespace OHOS
             SedentaryReminderNoteLabel->SetTextId(STR_SEDENTARY_REMINDER_NOTE);
 #endif
             // UpdateLabel(SedentaryReminderNoteLabel,"1",STR_SEDENTARY_REMINDER_NOTE);
+            SedentaryReminderViewEventListener::GetInstance().SetSedentaryReminderNoteIntervalTime(SedentaryReminderViewEventListener::GetInstance().GetIntervalTime());
             SedentaryReminderNoteLabel->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
             SedentaryReminderNoteLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
             SedentaryReminderNoteLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/AIVoice/ai_chart_icon.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/AIVoice/ai_chart_icon.bin
new file mode 100644 (file)
index 0000000..0b17061
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4b7152b9dfd5e2ee0c45c36e98a54778910358b39617880779ceee7d60a907b2
+size 1944
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/AIVoice/ai_chart_icon_bg.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/AIVoice/ai_chart_icon_bg.bin
new file mode 100644 (file)
index 0000000..e17f48c
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2b7a2a2a12eb5042502cd7a345ece2fa16fb0dcd7601f7ce4eeddabd45d7c4ae
+size 20504