Merge #1377 into sdk602patch0911 from refs/changes/1377/head
author袁清梦 <3449750381@qq.com>
Sat, 9 Nov 2024 08:56:54 +0000 (08:56 +0000)
committersnickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Sat, 9 Nov 2024 08:56:54 +0000 (08:56 +0000)
Code review from 袁清梦

* refs/changes/1377/head: (4 commits squashed)

  - 系统:优化vote获取显示

  - 系统:修复vote的显示

  - #1149 APP--黑曜表盘显示图替换成实际表盘效果图

  - #1000 手表,开启睡眠模式后,在开室内走路运动,之后关闭掉回主表盘,顶部的睡眠模式图标消失,进出菜单后恢复

Signed-off-by: Caisking <3449750381@qq.com>
Reviewed-by: Caisking <3449750381@qq.com>
Reviewed-by: 罗正 <1732036298@qq.com>
Reviewed-by: aliyun8003852482 <1224667075@qq.com>
Reviewed-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Reviewed-by: aliyun6865282430 <1624952103@qq.com>
Merged-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
link: https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230/change/1377
17 files changed:
code/sdk/application/wearable/fd230app/nativeui/clock/include/MainClockView.h
code/sdk/application/wearable/fd230app/nativeui/clock/src/MainClockView.cpp
code/sdk/application/wearable/fd230app/nativeui/main/include/MainViewSample.h
code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialViewGroup.h
code/sdk/application/wearable/fd230app/nativeui/main/src/MainModel.cpp
code/sdk/application/wearable/fd230app/nativeui/main/src/MainViewSample.cpp
code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialViewGroup.cpp
code/sdk/application/wearable/service/msg_center/src/notify/debug_output_notification/debug_output_notification.cpp
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/dial/res_dial/mirrorvoyager.bin
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/dial/res_dial/obsidianrhythm.bin
code/sdk/drivers/peripheral/utils/custom_utils.c
code/sdk/drivers/peripheral/utils/custom_utils.h
tools/dial_converter_tool/dial_lzma/114/obsidianrhythm.lzma
tools/dial_converter_tool/dial_lzma/114/obsidianrhythm.png
tools/dial_converter_tool/dial_lzma/115/mirrorvoyager.lzma
tools/dial_converter_tool/instance/114/obsidianrhythm.png
tools/dial_converter_tool/instance/115/mirrorvoyager.png

index 7c83d81..068b647 100644 (file)
@@ -100,6 +100,8 @@ namespace OHOS
         bool InitBatteryView(BatteryDisplayType type); // 电量
         bool InitColor(ColorTypeSet type);             // 颜色
 
+        void UpdateStateShow(void);
+
     private:
         void InitStepValue();
         bool InitLabelView(void);
@@ -141,6 +143,9 @@ namespace OHOS
         Image *medCircle{nullptr};
         Image *smallCircle{nullptr};
 
+        UIImageView *dialstateicon_{nullptr}; // 勿扰
+        UIImageView *messageicon_{nullptr};   // 未读图标   
+
         bool viewiInitStatus{false};
         bool resLoadStatus{false};
 
index 72edf73..a3cbbf3 100644 (file)
@@ -12,6 +12,7 @@
  */
 
 #include "MainClockView.h"
+#include "MainModel.h"
 #include "MainPresenterSample.h"
 #include "SetDialModel.h"
 #include "battery_hal.h"
@@ -44,6 +45,11 @@ static constexpr const char *CHAGE_BATTERY = "/user/res/Battery/Icon.bin";
 static constexpr const char *WHITE_BATTERY = "/user/res/Battery/Battery_White.bin";
 static constexpr const char *BLACK_BATTERY = "/user/res/Battery/Battery_Black.bin";
 
+static constexpr const char *DISTURBICON = "user/res/dial_state/disturbicon.bin";
+static constexpr const char *MESSAGEICON = "user/res/dial_state/unread.bin";
+static constexpr const char *SLEEPICON = "user/res/dial_state/sleep.bin";
+static constexpr const char *LOCKICON = "user/res/dial_state/lock.bin";
+
 // 定义一些常量
 constexpr int HOURS_IN_DAY = 24;
 constexpr int MINUTES_IN_HOUR = 60;
@@ -124,6 +130,15 @@ namespace OHOS
         stepLabel = nullptr;
         delete heartlabel; // 心率
         heartlabel = nullptr;
+        if (dialstateicon_ != nullptr) {
+          delete dialstateicon_;
+          dialstateicon_ = nullptr;
+        }
+
+        if (messageicon_ != nullptr) {
+          delete messageicon_;
+          messageicon_ = nullptr;
+        }
 
         g_pMainClockView = nullptr;
     }
@@ -413,12 +428,51 @@ namespace OHOS
         return true;
     }
 
+    void MainClockView::UpdateStateShow()
+    {
+        if (messageicon_ == nullptr || dialstateicon_ == nullptr)
+            return;
+
+        /*配置未读状态*/
+        messageicon_->SetVisible(MainModel::GetInstance().getMessageActiveState());
+        /*配置表盘状态*/
+        dialstateicon_->SetVisible(true);
+        switch (MainModel::GetInstance().getHighestPriorityActiveState())
+        {
+        case DialState::DO_NOT_DISTURB:
+            dialstateicon_->SetSrc(DISTURBICON);
+            break;
+        case DialState::SLEEP:
+            dialstateicon_->SetSrc(SLEEPICON);
+            break;
+        case DialState::LOCK:
+            dialstateicon_->SetSrc(LOCKICON);
+            break;
+        default:
+            dialstateicon_->SetVisible(false);
+            break;
+        }
+    }
+
     void MainClockView::PreLoad(void)
     {
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainClockView::PreLoad");
         if (!viewiInitStatus)
         {
             InitView();
+          
+            /*增加手表状态图标*/
+            InitImageView(dialstateicon_, 213, 2, 40, 40, "disturbicon", DISTURBICON);
+            // dialstateicon_->SetVisible(false);
+
+            /*增加未读图标*/
+            InitImageView(messageicon_, 223, 444, 20, 20, "messageicon_", MESSAGEICON);
+
+            UpdateStateShow();
+
+            Add(dialstateicon_);
+            Add(messageicon_);
+
             viewiInitStatus = true;
         }
 
index 219dbad..9a98930 100644 (file)
@@ -97,8 +97,9 @@ namespace OHOS
         void SetDragFg(bool continFg);
         bool GetDragFg(void);
         void SetPage(int16_t page);
-        void UpdateStateShow();
+        void UpdateStateShow(UIImageView *&messageicon,UIImageView *&dialstateicon);
         void HandOnKeyEventSwitchMainPullDownView(void);
+        void UpdateStateShow(void);
 
     private:
         PullUpDownView *dropDownView{nullptr};
@@ -120,8 +121,8 @@ namespace OHOS
         // ApplistCardView *applistCardView{nullptr};
         UIButton *changebut{nullptr};
 
-        UIImageView *dialstateicon_{nullptr}; // 勿扰图标
-        UIImageView *messageicon_{nullptr};     // 未读图标
+        // UIImageView *dialstateicon_{nullptr}; // 勿扰图标
+        // UIImageView *messageicon_{nullptr};     // 未读图标
         /* -------------------------------------------------------------------------- */
         UICardPage *recordCard[MAX_CARD]{nullptr};
         bool pageStatus[MAX_CARD]{false};
index 49a94cc..ee1a8ad 100644 (file)
@@ -119,6 +119,9 @@ public:
     void StopDial();
     void StartDial();
 
+    /*外部接口更新表盘状态*/
+    void UpdateStateShow();
+
     MediaVideoPlay* GetVideoPlay();
 
 private:
@@ -137,7 +140,9 @@ private:
     std::string filePath_;
     FILE* fp_ = nullptr;
     DialVideoView* video_ = nullptr;
-    UIKaleidoscopeView* kaleidoscope_ = nullptr;
+    UIKaleidoscopeView *kaleidoscope_ = nullptr;
+    UIImageView *dialstateicon_{nullptr}; // 勿扰图标
+    UIImageView *messageicon_{nullptr};     // 未读图标   
 
     typedef struct {
         Rect area;
index 9532268..093ac62 100644 (file)
@@ -18,6 +18,7 @@
 #include "SetDialModel.h"\r
 #include "dnotdisturb/include/DnotDisturbModel.h"\r
 #include "custom_utils.h"\r
+#include "DialViewGroup.h"\r
 \r
 extern "C" void uapi_dev_runtime_set_lock_status(uint8_t status);\r
 \r
index 17acaad..6bdd96b 100644 (file)
@@ -16,10 +16,6 @@ extern "C" uint8_t uapi_dev_runtime_get_lock_status(void);
 
 namespace OHOS
 {
-    static constexpr const char *DISTURBICON = "user/res/dial_state/disturbicon.bin";
-    static constexpr const char *MESSAGEICON = "user/res/dial_state/unread.bin";
-    static constexpr const char *SLEEPICON = "user/res/dial_state/sleep.bin";
-    static constexpr const char *LOCKICON = "user/res/dial_state/lock.bin";
 
     static MainViewSample *g_pMainView = nullptr;
     static constexpr uint16_t MESLABLE_X_TMP = 177;
@@ -114,18 +110,18 @@ namespace OHOS
             delete MessageLable;
             MessageLable = nullptr;
         }
-        if (dialstateicon_ != nullptr)
-        {
-            mainClockView->Remove(dialstateicon_);
-            delete dialstateicon_;
-            dialstateicon_ = nullptr;
-        }
-        if (messageicon_ != nullptr)
-        {
-            mainClockView->Remove(messageicon_);
-            delete messageicon_;
-            messageicon_ = nullptr;
-        }
+        // if (dialstateicon != nullptr)
+        // {
+        //     mainClockView->Remove(dialstateicon);
+        //     delete dialstateicon;
+        //     dialstateicon = nullptr;
+        // }
+        // if (messageicon != nullptr)
+        // {
+        //     mainClockView->Remove(messageicon);
+        //     delete messageicon;
+        //     messageicon = nullptr;
+        // }
         if (compassControlView != nullptr)
         {
             compassControlView->RemoveAll();
@@ -194,31 +190,7 @@ namespace OHOS
     {
         return g_pMainView;
     }
-    void MainViewSample::UpdateStateShow()
-    {
-        if (messageicon_ == nullptr || dialstateicon_ == nullptr)
-            return;
 
-        /*配置未读状态*/
-        messageicon_->SetVisible(MainModel::GetInstance().getMessageActiveState());
-        /*配置表盘状态*/
-        dialstateicon_->SetVisible(true);
-        switch (MainModel::GetInstance().getHighestPriorityActiveState())
-        {
-        case DialState::DO_NOT_DISTURB:
-            dialstateicon_->SetSrc(DISTURBICON);
-            break;
-        case DialState::SLEEP:
-            dialstateicon_->SetSrc(SLEEPICON);
-            break;
-        case DialState::LOCK:
-            dialstateicon_->SetSrc(LOCKICON);
-            break;
-        default:
-            dialstateicon_->SetVisible(false);
-            break;
-        }
-    }
     void MainViewSample::OnStart()
     {
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::OnStart");
@@ -292,23 +264,26 @@ namespace OHOS
             }
         }
 
-#if DIALSTATE
-
-        /*增加手表状态图标*/
-        InitImageView(dialstateicon_, 213, 2, 40, 40, "disturbicon", DISTURBICON);
-        // dialstateicon_->SetVisible(false);
-
-        /*增加未读图标*/
-        InitImageView(messageicon_, 223, 444, 20, 20, "messageicon_", MESSAGEICON);
-
-        UpdateStateShow();
-
-        mainClockView->Add(dialstateicon_);
-        mainClockView->Add(messageicon_);
-#endif
         SetContainerView(mainSwipeGroup);
     }
 
+    void MainViewSample::UpdateStateShow() {
+        DialSetting &setting = presenter_->GetDialSetting();
+        //离线表盘
+        if (setting.dialFlag) {
+          if (mainClockView != nullptr) {
+                dynamic_cast<DialViewGroup *>(mainClockView)->UpdateStateShow();
+            }
+        }
+        //在线表盘
+        else {
+          if (mainClockView != nullptr) {
+                dynamic_cast<MainClockView *>(mainClockView)->UpdateStateShow();
+            }
+          
+        }
+    }
+    
     bool MainViewSample::HorizontalViewInit(void)
     {
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::HorizontalViewInit");
index 3c163ff..201cda5 100644 (file)
 #include "message/include/MessageControlView.h"
 #include "hal_tick.h"
 #include "common/image_cache_manager.h"
+#include "MainViewSample.h"
 #include "alipay_feature.h"
 #ifdef SUPPORT_AT_OHOSFWK
 #include "ui_screennotify.h"
 #endif
 namespace OHOS
 {
-    static DialVideoView *g_video = nullptr;
+static DialVideoView *g_video = nullptr;
+
+    static constexpr const char *DISTURBICON = "user/res/dial_state/disturbicon.bin";
+    static constexpr const char *MESSAGEICON = "user/res/dial_state/unread.bin";
+    static constexpr const char *SLEEPICON = "user/res/dial_state/sleep.bin";
+    static constexpr const char *LOCKICON = "user/res/dial_state/lock.bin";
 
 #ifdef SUPPORT_AT_OHOSFWK
     static void ScreenStatusNotify(ScreenStatus status)
@@ -111,6 +117,16 @@ namespace OHOS
 
         video_ = nullptr;
 
+        if (dialstateicon_ != nullptr) {
+          delete dialstateicon_;
+          dialstateicon_ = nullptr;
+        }
+
+        if (messageicon_ != nullptr) {
+          delete messageicon_;
+          messageicon_ = nullptr;
+        }
+        
         if (fp_ != nullptr)
         {
             fclose(fp_);
@@ -125,6 +141,31 @@ namespace OHOS
         filePath_ = filePath;
     }
 
+    void DialViewGroup::UpdateStateShow()
+    {
+        if (messageicon_ == nullptr || dialstateicon_ == nullptr)
+            return;
+
+        /*配置未读状态*/
+        messageicon_->SetVisible(MainModel::GetInstance().getMessageActiveState());
+        /*配置表盘状态*/
+        dialstateicon_->SetVisible(true);
+        switch (MainModel::GetInstance().getHighestPriorityActiveState())
+        {
+        case DialState::DO_NOT_DISTURB:
+            dialstateicon_->SetSrc(DISTURBICON);
+            break;
+        case DialState::SLEEP:
+            dialstateicon_->SetSrc(SLEEPICON);
+            break;
+        case DialState::LOCK:
+            dialstateicon_->SetSrc(LOCKICON);
+            break;
+        default:
+            dialstateicon_->SetVisible(false);
+            break;
+        }
+    }
     void DialViewGroup::PreLoad(void)
     {
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DialViewGroup::PreLoad");
@@ -137,7 +178,21 @@ namespace OHOS
                 GRAPHIC_LOGE("cannot open file: %s\n", filePath_.c_str());
                 return;
             }
-            DialBinParser::GetInstance()->UpdateDial(filePath_, fp_, this);
+            DialBinParser::GetInstance()->UpdateDial(filePath_, fp_, this); // 添加主表盘卡片内容
+            // 添加自定义logo,例如勿扰模式
+
+            /*增加手表状态图标*/
+            InitImageView(dialstateicon_, 213, 2, 40, 40, "disturbicon", DISTURBICON);
+            // dialstateicon_->SetVisible(false);
+
+            /*增加未读图标*/
+            InitImageView(messageicon_, 223, 444, 20, 20, "messageicon_", MESSAGEICON);
+
+            UpdateStateShow();
+
+            Add(dialstateicon_);
+            Add(messageicon_);
+
             resPreloaded_ = true;
         }
 
@@ -159,6 +214,7 @@ namespace OHOS
             resLoadStatus = false;
         }
     }
+        
 
     void DialViewGroup::ProcessData(DialDataType type, DialView *view)
     {
index 4af0518..a02b1c0 100644 (file)
@@ -607,7 +607,7 @@ namespace OHOS
     std::string DebugOutputViewEventListener::get_current_vote_status() {
       // 获取系统日志实例
       char buf[256];
-      get_vote_status(buf);
+      get_vote_status(buf,sizeof(buf));
       return std::string(buf);
     }
     
index 6f29368..1d394fe 100644 (file)
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:21b21f7733f7fdf755190222c462c4f0292aaa861cd7bacb7c9e9d4240c153d0
-size 386125
+oid sha256:6b6c9f9c0d4aba16c42db41d8feaf527c0b42a652b32ea7b14921205ce861989
+size 300109
index 6a38bb0..3b1d155 100644 (file)
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:144892621b0bd8bb7ffdae13bb1c811e1ad99f5827813719cea9bb2820a4187a
-size 1399243
+oid sha256:9c14c9cb4b2bb308968a66e5c4a9de5ec5a02658522c8c47629031b024a02ad0
+size 1688324
index 2a82025..5838ed3 100644 (file)
@@ -1290,23 +1290,35 @@ void uapi_set_screen_on_api(void) {
 }
 
 //获取vote正在执行的状态
-errcode_t get_vote_status(char*str)
-{
-    uint8_t i = 0;
-    uint8_t falg = 0;
-    pm_veto_t *pm_veto_ptr = pm_veto_get_info();
-    for (i = 0; i < PM_ID_MAX; i++) {
-      if (pm_veto_ptr->veto_counts.sub_counts[i] == 1) {
-        sprintf(str, "%s %s", str, get_pm_id_name(i));
-        falg = 1;
-        }
-    }
-    if (falg==0) {
-      str = "没有正在进行的服务";
-      }
-    PRINT("***************get_vote_status***************\n %s\n", str);
-    return ERRCODE_SUCC; 
-}
+// 获取 vote 正在执行的状态  
+errcode_t get_vote_status(char* str, size_t str_size) {  
+    uint8_t i;  
+    uint8_t flag = 0;  
+    pm_veto_t* pm_veto_ptr = pm_veto_get_info();  
+    
+    PRINT("***************get_vote_status***************\n");  
+    
+    // 初始化字符串为空  
+    str[0] = '\0';  
+
+    for (i = 0; i < PM_ID_MAX; i++) {  
+        if (pm_veto_ptr->veto_counts.sub_counts[i] == 1) {  
+            // 拼接当前 pm ID 并添加换行符  
+            snprintf(str + strlen(str), str_size - strlen(str), "%s%s\n", (flag ? " " : ""), get_pm_id_name(i));  
+            flag = 1;  
+            PRINT("vote_status: %s %d\n", get_pm_id_name(i), pm_veto_ptr->veto_counts.sub_counts[i]);  
+        } else {  
+            PRINT("vote_status: %s %d\n", get_pm_id_name(i), pm_veto_ptr->veto_counts.sub_counts[i]);  
+        }  
+    }  
+
+    if (flag == 0) {  
+        snprintf(str, str_size, "没有正在进行的服务");  
+    }  
+
+    PRINT("***************get_vote_status*************** %s\n", str);  
+    return ERRCODE_SUCC;  
+} 
 
 /*系统声音设置*/
 void uapi_systemVolumeSet(int32_t sounding)
index 3c58459..9d65c0d 100644 (file)
@@ -87,7 +87,7 @@ errcode_t uapi_get_WeekStr(char *p_week);
 /*设置屏幕亮屏*/
 void uapi_set_screen_on_api(void);
 /*获取Vote状态*/
-errcode_t get_vote_status(char *str);
+errcode_t get_vote_status(char *str,size_t str_size);
 
 /**
  * @brief 日期格式选项枚举
index f98e4a6..cc7ef55 100644 (file)
Binary files a/tools/dial_converter_tool/dial_lzma/114/obsidianrhythm.lzma and b/tools/dial_converter_tool/dial_lzma/114/obsidianrhythm.lzma differ
index 3991796..70acebf 100644 (file)
Binary files a/tools/dial_converter_tool/dial_lzma/114/obsidianrhythm.png and b/tools/dial_converter_tool/dial_lzma/114/obsidianrhythm.png differ
index e8647b5..028b257 100644 (file)
Binary files a/tools/dial_converter_tool/dial_lzma/115/mirrorvoyager.lzma and b/tools/dial_converter_tool/dial_lzma/115/mirrorvoyager.lzma differ
index f30682c..fd88e03 100644 (file)
Binary files a/tools/dial_converter_tool/instance/114/obsidianrhythm.png and b/tools/dial_converter_tool/instance/114/obsidianrhythm.png differ
index 742bb51..602b221 100644 (file)
Binary files a/tools/dial_converter_tool/instance/115/mirrorvoyager.png and b/tools/dial_converter_tool/instance/115/mirrorvoyager.png differ