Merge #673 into sdk602patch0626 from refs/changes/673/head 668/target/2
author袁清梦 <3449750381@qq.com>
Sat, 10 Aug 2024 11:03:27 +0000 (11:03 +0000)
committersnickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Sat, 10 Aug 2024 11:03:27 +0000 (11:03 +0000)
Code review from 袁清梦

* refs/changes/673/head: (39 commits squashed)

  - 屏蔽血氧监测过程中的数值显示

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

  - 增加表盘星期string类model

  - 增加血氧&amp;心率数据重启之后恢复

  - 筛选表盘血氧无效数据

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

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

  - 修复星期显示

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

  - 适配早安闹钟小睡功能

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

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

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

  - 增加新的表盘数据类型

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

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

  - 更新表盘配置 详情见dial_readme

  - 同步表盘lzma文件更新

  - 更新表盘原资源文件

  - 增加离线表盘开发指南

  - 优化组件初始化函数

  - 优化 UIViewGroup Add 函数 添加错误可以查看组件信息

  - 删除缓存文件

  - 增加Dial星期数据类型

  - 增加日期Dial数据类型

  - 增加时间的4个数据位数据类型

  - 设置表盘界面增加表盘控制:目前只有覆盖流生效

  - DialLabel关闭不必要的打印 增加新数据类型

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

  - 修改遥控拍照的析构适配

  - 训练记录修改析构适配

  - 优化控件初始化函数

  - 对应组件进行nullptr初始化

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

  - 优化省电模式进入UI;并且适配按键回退

  - 实现消息列表自适应大小

  - 修改动画的反应速度为80ms

  - 关闭主界面到applist的动画效果

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

Signed-off-by: Caisking <3449750381@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/673
31 files changed:
code/sdk/application/wearable/CustomUIComponentTool/uicomponents/UIComponents.cpp
code/sdk/application/wearable/fd230app/nativeui/bloodoxygen/include/BloodDetectionView.h
code/sdk/application/wearable/fd230app/nativeui/bloodoxygen/include/BloodResultView.h
code/sdk/application/wearable/fd230app/nativeui/heart_blood/BloodCardView.h
code/sdk/application/wearable/fd230app/nativeui/heartrate/include/HeartDetectionView.h
code/sdk/application/wearable/fd230app/nativeui/heartrate/include/HeartResultView.h
code/sdk/application/wearable/fd230app/nativeui/key/src/KeyInputListener.cpp
code/sdk/application/wearable/fd230app/nativeui/main/src/MainViewSample.cpp
code/sdk/application/wearable/fd230app/nativeui/message/include/MessageAdapter.h
code/sdk/application/wearable/fd230app/nativeui/message/include/MessageCardView.h
code/sdk/application/wearable/fd230app/nativeui/message/include/MessageItemView.h
code/sdk/application/wearable/fd230app/nativeui/message/include/MessageLackView.h
code/sdk/application/wearable/fd230app/nativeui/message/include/MessageShowView.h
code/sdk/application/wearable/fd230app/nativeui/message/include/MessageView.h
code/sdk/application/wearable/fd230app/nativeui/message/src/MessageAdapter.cpp
code/sdk/application/wearable/fd230app/nativeui/message/src/MessageCardView.cpp
code/sdk/application/wearable/fd230app/nativeui/message/src/MessageControlView.cpp
code/sdk/application/wearable/fd230app/nativeui/message/src/MessageItemView.cpp
code/sdk/application/wearable/fd230app/nativeui/message/src/MessageShowView.cpp
code/sdk/application/wearable/fd230app/nativeui/message/src/MessageView.cpp
code/sdk/application/wearable/fd230app/nativeui/saveele/include/SaveElePresenter.h
code/sdk/application/wearable/fd230app/nativeui/saveele/include/SaveEleView.h
code/sdk/application/wearable/fd230app/nativeui/saveele/src/SaveElePresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/saveele/src/SaveEleView.cpp
code/sdk/application/wearable/fd230app/nativeui/takephotos/src/TakephotosView.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/include/TrainingSetCaluliView.h
code/sdk/application/wearable/fd230app/nativeui/traing/include/TrainingSetMileView.h
code/sdk/application/wearable/fd230app/nativeui/traing/include/TrainingSetStepView.h
code/sdk/application/wearable/fd230app/nativeui/traing/include/TrainingSetTimeView.h
code/sdk/application/wearable/fd230app/nativeui/traingrecord/src/TraingRecordView.cpp
code/sdk/application/wearable/nativeabilityfwk/src/transition/ZoomTransition.cpp

index bc3df8d..6b80116 100644 (file)
@@ -31,9 +31,18 @@ namespace OHOS
     bool InitUILabel(UILabel *&label, int left, int top, int width, int height, const char *viewId, const char *text, const char *fontName, int fontSize)
     {
         // 检查标签指针是否为空
-        label = new UILabel();
         if (label == nullptr)
         {
+            label = new UILabel();
+            if (label == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitUILabel is error");
+                return false; // 内存分配失败,返回false
+            }
+        }
+        else
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitUILabel is not nullptr");
             return false; // 内存分配失败,返回false
         }
         // 设置标签的位置和大小
@@ -68,11 +77,18 @@ namespace OHOS
     bool InitLabel(UILabelExt *&label, int left, int top, int width, int height, const char *viewId, const char *text, const char *fontName, int fontSize)
     {
         // 检查标签指针是否为空
-
-        label = new UILabelExt();
         if (label == nullptr)
         {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitLabel is error");
+            label = new UILabelExt();
+            if (label == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitLabel is error");
+                return false; // 内存分配失败,返回false
+            }
+        }
+        else
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitLabel is not nullptr");
             return false; // 内存分配失败,返回false
         }
         // 设置标签的位置和大小
@@ -94,10 +110,18 @@ namespace OHOS
     bool InitLabelAdapt(UILabelExt *&label, int left, int top, int width, int height, const char *viewId, const char *text, const char *fontName, int fontSize)
     {
         // 检查标签指针是否为空
-        label = new UILabelExt();
         if (label == nullptr)
         {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitLabelAdapt is error");
+            label = new UILabelExt();
+            if (label == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitLabelAdapt is error");
+                return false; // 内存分配失败,返回false
+            }
+        }
+        else
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitLabelAdapt  is not nullptr");
             return false; // 内存分配失败,返回false
         }
         // 设置标签的位置和大小
@@ -133,10 +157,18 @@ namespace OHOS
     bool InitLabelExt(UILabelExt *&label, int left, int top, int width, int height, const char *viewId, UIResourceTextId id, const char *fontName, int fontSize)
     {
         // 检查标签指针是否为空
-        label = new UILabelExt();
         if (label == nullptr)
         {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitLabelExt is error");
+            label = new UILabelExt();
+            if (label == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitLabelExt is error");
+                return false; // 内存分配失败,返回false
+            }
+        }
+        else
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitLabelExt is not nullptr");
             return false; // 内存分配失败,返回false
         }
         // 设置标签的位置和大小
@@ -179,6 +211,11 @@ namespace OHOS
                 return false; // 内存分配失败,返回false
             }
         }
+        else
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "UILabelButtonExt UILabelButtonExt is not nullptr");
+            return false; // 内存分配失败,返回false
+        }
         button->SetPosition(left, top);
         button->Resize(width, height);
         button->SetViewId(viewId);
@@ -198,6 +235,7 @@ namespace OHOS
     {
         if (label == nullptr)
         {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "UpdateLabelText label is nullptr");
             return nullptr;
         }
         /*取Id对应的字符串*/
@@ -232,7 +270,6 @@ namespace OHOS
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "label is error");
             return nullptr;
         }
-
         std::string str = UpdateLabelText(label, std::to_string(num), id);
         return str;
     }
@@ -255,6 +292,7 @@ namespace OHOS
     {
         if (label == nullptr)
         {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "label is error");
             return;
         }
 
@@ -285,10 +323,18 @@ namespace OHOS
     bool InitButton(UIButton *&button, int left, int top, int width, int height, const char *viewId)
     {
         // 创建新按钮(如果当前按钮为空)
-        button = new UIButton();
         if (button == nullptr)
         {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "new UIButton fail");
+            button = new UIButton();
+            if (button == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "new UIButton fail");
+                return false; // 内存分配失败,返回false
+            }
+        }
+        else
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitButton is not nullptr");
             return false; // 内存分配失败,返回false
         }
         button->SetPosition(left, top);
@@ -314,11 +360,20 @@ namespace OHOS
      */
     bool InitImageView(UIImageView *&imageView, int left, int top, int width, int height, const char *viewId, const char *imagePath)
     {
-        imageView = new UIImageView();
+        // 创建新图片(如果当前图片为空)
         if (imageView == nullptr)
         {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "imagePath %s fail", imagePath);
-            return false;
+            imageView = new UIImageView();
+            if (imageView == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "imagePath %s fail", imagePath);
+                return false;
+            }
+        }
+        else
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitImageView is not nullptr");
+            return false; // 内存分配失败,返回false
         }
         if (imagePath == nullptr)
         {
index 0add3ee..6391754 100644 (file)
@@ -53,11 +53,11 @@ namespace OHOS
         void UpShowBloodText(void);
 
     private:
-        UIImageAnimatorView *imageAnimator;
-        UILabelExt *titleLabel;
-        UILabel *Spo2Text;
-        UIScrollView *BloodDetectionScrollView;
-        UILabelButtonExt *testButton;
+        UIImageAnimatorView *imageAnimator{nullptr};
+        UILabelExt *titleLabel{nullptr};
+        UILabel *Spo2Text{nullptr};
+        UIScrollView *BloodDetectionScrollView{nullptr};
+        UILabelButtonExt *testButton{nullptr};
 
         uint32_t spo2_;
     };
index 29b220d..a29d6c8 100644 (file)
@@ -63,7 +63,7 @@ namespace OHOS
         UILabelExt *titleLabel = nullptr;
         UILabelExt *timeLabel = nullptr;
         UILabel *bloodLabel = nullptr;
-        UILabelButtonExt *checkButton;
+        UILabelButtonExt *checkButton{nullptr};
     };
 }
 
index 8678423..0d18755 100644 (file)
@@ -68,7 +68,7 @@ namespace OHOS
         UILabelExt *timeLabel = nullptr;\r
         UILabel *bloodLabel = nullptr;\r
 \r
-        UILabelButtonExt *checkButton;\r
+        UILabelButtonExt *checkButton{nullptr};\r
 \r
         bool viewiInitStatus{false};\r
         bool resLoadStatus{false};\r
index 76d57ef..a8d92f5 100644 (file)
@@ -65,11 +65,11 @@ namespace OHOS
         void UpShowHeartText(void);
 
     private:
-        UIImageAnimatorView *imageAnimator;
-        UILabelExt *titleLabel;
-        UILabel *HeartText;
-        UIScrollView *HeartDetectionScrollView;
-        UILabelButtonExt *testButton;
+        UIImageAnimatorView *imageAnimator{nullptr};
+        UILabelExt *titleLabel{nullptr};
+        UILabel *HeartText{nullptr};
+        UIScrollView *HeartDetectionScrollView{nullptr};
+        UILabelButtonExt *testButton{nullptr};
 
         uint32_t heart_;
     };
index 6ce0b90..06227c4 100644 (file)
@@ -45,7 +45,7 @@ namespace OHOS
         UILabelExt *titleLabel = nullptr;
         UILabelExt *timeLabel = nullptr;
         UILabel *heartLabel = nullptr;
-        UILabelButtonExt *checkButton;
+        UILabelButtonExt *checkButton{nullptr};
     };
 }
 
index c6163d9..55f9ec1 100644 (file)
@@ -9,7 +9,7 @@
 #include "common/key_code.h"
 #include "AppViewIDs.h"
 #include "components/ui_label_ext.h"
-#include"ui_resource_string.h"
+#include "ui_resource_string.h"
 #include "View.h"
 #include "MainViewSample.h"
 #include "wearable_log.h"
@@ -62,8 +62,8 @@ namespace OHOS
         uint16 keyID = event.GetKeyId();
         if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER))
         { // 电源按键
-            // 切换到关机/重启卡片
-            // NativeAbility::GetInstance().ChangeSlice(VIEW_SHUTDOWN_OR_REBOOT);
+          // 切换到关机/重启卡片
+          // NativeAbility::GetInstance().ChangeSlice(VIEW_SHUTDOWN_OR_REBOOT);
         }
         else if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_FUNC))
         { // 功能按键
@@ -72,42 +72,53 @@ namespace OHOS
         return;
     }
 
-void KeyInputListener::CallVolumeDipSwitchControl(VolumeChangeStatus status)
-{
-    if (MainCallingPresenter::GetInstance() != nullptr && CallerLogModel::GetInstance()->GetCallStatus()) {
-        if (CallerLogModel::GetInstance()->GetVolumeScreenStatus()) {
-            VolumeSettingView *settingView = MainCallingPresenter::GetInstance()->GetvolumeSetting();
-            if (settingView == nullptr) {
-                return;
+    void KeyInputListener::CallVolumeDipSwitchControl(VolumeChangeStatus status)
+    {
+        if (MainCallingPresenter::GetInstance() != nullptr && CallerLogModel::GetInstance()->GetCallStatus())
+        {
+            if (CallerLogModel::GetInstance()->GetVolumeScreenStatus())
+            {
+                VolumeSettingView *settingView = MainCallingPresenter::GetInstance()->GetvolumeSetting();
+                if (settingView == nullptr)
+                {
+                    return;
+                }
+                volumeSliderEventListener = settingView->GetVolumeEventListener();
+                if (volumeSliderEventListener == nullptr)
+                {
+                    return;
+                }
+                volumeSliderEventListener->ChangeVolume(status);
             }
-            volumeSliderEventListener = settingView->GetVolumeEventListener();
-            if (volumeSliderEventListener == nullptr) {
-                return;
+            else
+            {
+                MainCallingPresenter::GetInstance()->HonrsViewChange();
+                CallerLogModel::GetInstance()->SetVolumeScreenStatus(true);
             }
-            volumeSliderEventListener->ChangeVolume(status);
-        } else {
-            MainCallingPresenter::GetInstance()->HonrsViewChange();
-            CallerLogModel::GetInstance()->SetVolumeScreenStatus(true);
         }
-    }
-    if (IsNotifyCallStatus()) {
-        if (NotificationManager::GetInstance()->GetVolumeScreenStatus()) {
-            VolumeSettingView *settingView = GetvolumeSetting();
-            if (settingView == nullptr) {
-                return;
+        if (IsNotifyCallStatus())
+        {
+            if (NotificationManager::GetInstance()->GetVolumeScreenStatus())
+            {
+                VolumeSettingView *settingView = GetvolumeSetting();
+                if (settingView == nullptr)
+                {
+                    return;
+                }
+                volumeSliderEventListener = settingView->GetVolumeEventListener();
+                if (volumeSliderEventListener == nullptr)
+                {
+                    return;
+                }
+                volumeSliderEventListener->ChangeVolume(status);
             }
-            volumeSliderEventListener = settingView->GetVolumeEventListener();
-            if (volumeSliderEventListener == nullptr) {
-                return;
+            else
+            {
+                HonrsViewChange();
+                NotificationManager::GetInstance()->SetVolumeScreenStatus(true);
             }
-            volumeSliderEventListener->ChangeVolume(status);
-        } else {
-            HonrsViewChange();
-            NotificationManager::GetInstance()->SetVolumeScreenStatus(true);
         }
     }
-}
-
 
     extern "C"
     {
@@ -125,17 +136,19 @@ void KeyInputListener::CallVolumeDipSwitchControl(VolumeChangeStatus status)
             if (longPressFlag == 0 && pressFlag == 1)
             {
                 // 如果当前页面是音量卡片或正在通话中,则执行音量+操作
-                if (currentViewId == VIEW_INCOMING_CALL || 
-                    NotificationManager::GetInstance()->GetWatchCallStatus()) { // 音量卡片
+                if (currentViewId == VIEW_INCOMING_CALL ||
+                    NotificationManager::GetInstance()->GetWatchCallStatus())
+                { // 音量卡片
                     // 音量+
-                    CallVolumeDipSwitchControl(VOLUMEUP); 
+                    CallVolumeDipSwitchControl(VOLUMEUP);
                 }
                 else if (currentViewId != VIEW_MAIN) // 如果当前页面不是主表盘,如果屏幕亮起,则先处理闹钟通知再切换到主表盘页面
                 {
                     if (mcu_pms_is_screen_on())
                     {
                         PressAlarmNotify();
-                        NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN, TransitionType::TRANSITION_ZOOM);
+                        NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN);
+                        // NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN, TransitionType::TRANSITION_ZOOM);
                     }
                 }
                 else // 如果当前页面是主表盘:
@@ -149,7 +162,8 @@ void KeyInputListener::CallVolumeDipSwitchControl(VolumeChangeStatus status)
                         }
                         else
                         {
-                            NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST, TransitionType::TRANSITION_ZOOM);
+                            NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST);
+                            // NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST, TransitionType::TRANSITION_ZOOM);
                             // NativeAbility::GetInstance().EnterSlice(VIEW_APPLIST, TransitionType::TRANSITION_ZOOM);
                         }
                     }
@@ -162,17 +176,18 @@ void KeyInputListener::CallVolumeDipSwitchControl(VolumeChangeStatus status)
             if (longPressFlag == 0 && pressFlag == 1)
             {
                 // 如果当前页面是音量卡片或正在通话中,则执行音量减操作
-                if (currentViewId == VIEW_INCOMING_CALL || 
-                    NotificationManager::GetInstance()->GetWatchCallStatus()) { // 音量卡片
+                if (currentViewId == VIEW_INCOMING_CALL ||
+                    NotificationManager::GetInstance()->GetWatchCallStatus())
+                { // 音量卡片
                     // 音量-
-                    CallVolumeDipSwitchControl(VOLUMEDOWN); 
+                    CallVolumeDipSwitchControl(VOLUMEDOWN);
                 }
                 else if (currentViewId != VIEW_MAIN) // 如果当前页面不是主表盘,如果屏幕亮起,则先处理闹钟通知再切换到主表盘页面。
                 {
                     if (mcu_pms_is_screen_on())
                     {
                         PressAlarmNotify();
-                        //NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN, TransitionType::TRANSITION_ZOOM);
+                        // NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN, TransitionType::TRANSITION_ZOOM);
                     }
                 }
                 else // 如果当前页面是主表盘,如果屏幕亮起,则先处理闹钟通知再切换到用户配置的快捷卡片
index 247c87c..a9f1aac 100644 (file)
@@ -308,10 +308,6 @@ namespace OHOS
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "messageView new fail");
             return;
         }
-        if (MessageLable == nullptr)
-        {
-            MessageLable = new UILabel();
-        }
         messageView->SetViewId("messageView");
         messageView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
         messageView->PreLoad();
@@ -392,6 +388,7 @@ namespace OHOS
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainClockView new fail");
             return nullptr;
         }
+        
         /*增加勿扰图标*/
         InitImageView(disturbIcon, 213, 0, 40, 40, "disturbIcon", DISTURBICON);
         /*获取勿扰状态*/
@@ -399,6 +396,7 @@ namespace OHOS
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "disturb:state[%d]\r\n", state);
         disturbIcon->SetVisible(state);
         mainClockView->Add(disturbIcon);
+
         return mainClockView;
     }
     // 指南针卡片
index 98a3521..5ac2f8f 100644 (file)
@@ -1,3 +1,9 @@
+/***
+ * @Date: 2024-06-28 19:21:39
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-08-09 11:44:39
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/message/include/MessageAdapter.h
+ */
 /***
  * @Date: 2024-04-15 10:55:58
  * @LastEditors: Caisking 3449750381@qq.com
@@ -22,6 +28,7 @@
 #include "components/ui_label.h"
 #include "components/ui_label_ext.h"
 #include "components/ui_checkbox.h"
+#include "components/ui_label_button_ext.h"
 
 namespace OHOS
 {
@@ -30,7 +37,7 @@ namespace OHOS
     {
         int index;
         bool read;                // 是否未读
-        std::string labeltitle;   // 来信标签
+        std::string labeltitle;   // 来信人
         std::string labeldetails; // 信息内容
         std::string labeltime;    // 来信时间
     } MessageListItem;
@@ -57,6 +64,7 @@ namespace OHOS
     private:
         std::list<MessageListItem> listData;
         UIView::OnClickListener *itemClickListener{nullptr};
+        UILabelButtonExt *DeleteButton{nullptr};
     };
 }
 
index 25ca110..c1737a9 100644 (file)
@@ -65,6 +65,7 @@ namespace OHOS
         UIList *MessageList = nullptr;
         UILabelButtonExt *DeleteButton = nullptr; // 删除按键
         MessageModel *p_MessageModel{nullptr};
+        UIImageView *imageline{nullptr};
     };
 }
 #endif
\ No newline at end of file
index 50b8603..51330cb 100644 (file)
@@ -1,3 +1,9 @@
+/***
+ * @Date: 2024-04-15 10:55:58
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-08-09 11:55:24
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/message/include/MessageItemView.h
+ */
 /***
  * @Date: 2024-04-15 10:55:58
  * @LastEditors: Caisking 3449750381@qq.com
@@ -25,6 +31,7 @@ namespace OHOS
         virtual ~MessageItemView();
         virtual void SetItemInfo(const MessageListItem itemInfo);
         virtual void SetUpChild();
+        void TearDownChild();
         int GetMessageListIndex();
 
     private:
@@ -35,6 +42,7 @@ namespace OHOS
         UILabel stime;              // 时间
         UILabelButton sLabelButton; // 按键
         MessageListItem sItemInfo = {0, false, nullptr, nullptr, nullptr};
+        bool isSetupChild{false};
     };
 }
 #endif
\ No newline at end of file
index c882fbf..a617465 100644 (file)
@@ -1,3 +1,9 @@
+/*** 
+ * @Date: 2024-06-19 17:04:12
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-08-10 16:50:28
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/message/include/MessageLackView.h
+ */
 /***
  * @Date: 2024-06-19 17:04:12
  * @LastEditors: Caisking 3449750381@qq.com
index 2205141..8db3664 100644 (file)
@@ -1,4 +1,9 @@
-
+/***
+ * @Date: 2024-06-21 09:56:18
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-08-09 18:56:33
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/message/include/MessageShowView.h
+ */
 
 #ifndef MessageShow_VIEW_H
 #define MessageShow_VIEW_H
@@ -49,10 +54,13 @@ namespace OHOS
         UILabel *time{nullptr};
         UILabel *message{nullptr};
 
-        UILabelButton *messageButton;   // 消息
-        UILabelButtonExt *deleteButton; // 清除按键
+        UILabelButton *messageButton{nullptr};   // 消息
+        UILabelButtonExt *deleteButton{nullptr}; // 清除按键
 
         bool viewInitStatus{false};
+        std::string titleStr;
+        std::string timeStr;
+        std::string messageStr;
     };
 } // namespace OHOS
 #endif
\ No newline at end of file
index 93356a6..1a56c24 100644 (file)
@@ -1,21 +1,4 @@
-/***
- * @Date: 2024-04-15 10:55:58
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-07-05 18:36:27
- * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/message/include/MessageView.h
- */
-/***
- * @Date: 2024-04-15 10:55:58
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-06-21 17:13:44
- * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/message/include/MessageView.h
- */
-/***
- * @Date: 2024-04-15 10:55:58
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-06-19 10:54:53
- * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/message/include/MessageView.h
- */
+
 
 #ifndef Message_VIEW_H
 #define Message_VIEW_H
@@ -88,7 +71,7 @@ namespace OHOS
 
         bool viewInitStatus{false};
 
-        MessageModel *g_MessageModel;
+        MessageModel *g_MessageModel{nullptr};
     };
 } // namespace OHOS
 #endif
\ No newline at end of file
index 9b05ec7..58b0178 100644 (file)
@@ -1,4 +1,4 @@
-/*** 
+/***
  * @Author: Caisking 3449750381@qq.com
  * @Date: 2024-01-29 19:58:37
  * @LastEditors: Caisking 3449750381@qq.com
 #include "message/include/MessageAdapter.h"
 #include "message/include/MessageItemView.h"
 #include "wearable_log.h"
+#include "message/include/MessagePresenter.h"
+#include "message/include/MessageModel.h"
 
+#include "uicomponents/UIComponents.h"
 namespace OHOS
 {
     MessageListAdapter::MessageListAdapter() {}
@@ -22,7 +25,7 @@ namespace OHOS
 
     uint16_t MessageListAdapter::GetCount(void)
     {
-        return listData.size();
+        return listData.size() + 1;
     }
 
     void MessageListAdapter::SetData(std::list<MessageListItem> &data)
@@ -38,38 +41,56 @@ namespace OHOS
         }
     }
 
-    /// @brief 
+    /// @brief
     /// @param inView 一个指向已存在的视图对象的指
     /// @param index 要创建的视图在列表中的索引l。
     /// @return 返回该视图对象
     UIView *MessageListAdapter::GetView(UIView *inView, int16_t index)
     {
-       
-        //1.先检查列表数据是否为空,若为空则返回空指针
+        // 1.先检查列表数据是否为空,若为空则返回空指针
         if (listData.empty())
         {
             return nullptr;
         }
-        //2.接着检查索引是否小于0,若小于0则返回空指针
+        // 2.接着检查索引是否小于0,若小于0则返回空指针
         if (index < 0)
         {
             return nullptr;
         }
-        //3.检查是否超出列表数据大小,若超出则返回空指针
+        printf("GetView : index %d\r\n", index);
+        // 3.检查是否超出列表数据大小,若超出则返回空指针
         size_t uindex = index;
-        if (uindex >= listData.size())
-        {
+        if (uindex > listData.size())
             return nullptr;
+
+        MessageItemView *item = nullptr;
+        if (uindex == listData.size())
+        {
+            if (inView == nullptr)
+            {
+                item = new MessageItemView();
+            }
+            else
+            {
+                item = static_cast<MessageItemView *>(inView);
+                // item->TearDownChild();
+                item->RemoveAll();
+            }
+            InitButtonExt(DeleteButton, 0, 0, 380, 100, DELETEALLDATA, STR_CLEANALL, 30);
+            DeleteButton->SetOnClickListener(itemClickListener);
+            item->Add(DeleteButton);
+            item->SetViewIndex(index);
+            item->SetOnClickListener(nullptr);
+            return item;
         }
-        //4.通过迭代器访问列表中指定索引位置的元素,将其赋值给itemData变量
+        // 4.通过迭代器访问列表中指定索引位置的元素,将其赋值给itemData变量
         std::list<MessageListItem>::iterator it = listData.begin();
         for (int i = 0; i < index; i++)
         {
             it++;
         }
         MessageListItem itemData = *it;
-        MessageItemView *item = nullptr;
-        //5.根据传入的inView参数是否已经存在一个视图对象,若为空则创建一个新的MessageItemView对象,否则将inView转换成MessageItemView类型的指针
+        // 5.根据传入的inView参数是否已经存在一个视图对象,若为空则创建一个新的MessageItemView对象,否则将inView转换成MessageItemView类型的指针
         if (inView == nullptr)
         {
             item = new MessageItemView();
@@ -77,7 +98,9 @@ namespace OHOS
         else
         {
             item = static_cast<MessageItemView *>(inView);
+            item->RemoveAll();
         }
+        item->SetUpChild();
         item->SetItemInfo(itemData);
         item->SetViewIndex(index);
         item->SetOnClickListener(itemClickListener);
index e4f57fd..0df5381 100644 (file)
@@ -17,12 +17,14 @@ namespace OHOS
     static MessageCardView *g_pMessageCardView = nullptr;
     static const uint32_t BACK_GROUND_COLOR = 0xfff6f6f6;
     static constexpr int16_t MORE_LIST_POSITION_X = 43;
-    static constexpr int16_t MORE_LIST_POSITION_Y = 120;
+    static constexpr int16_t MORE_LIST_POSITION_Y = 95;
     static constexpr int16_t MORE_SCROLLBLANKSIZE = 35; // 设置此滚动视图的空白大小。
     static constexpr int16 MAX_SCR_DIS = 1000;
     static constexpr int16 LIST_POS = 20;
     static constexpr int16 SNUM_2 = 2;
     static constexpr uint8_t NUM_2 = 2;
+
+    static constexpr char *lineimagePath = "/user/res/message/Line.bin";
     MessageCardView::MessageCardView()
     {
         SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
@@ -39,10 +41,10 @@ namespace OHOS
     void MessageCardView::ClearAll(void)
     {
         RemoveAll();
-        if (title != nullptr)
+        if (imageline != nullptr)
         {
-            delete title;
-            title = nullptr;
+            delete imageline;
+            imageline = nullptr;
         }
         if (MessageList != nullptr)
         {
@@ -64,9 +66,10 @@ namespace OHOS
     bool MessageCardView::InitPage(void)
     {
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "InitPage is begin");
-        /*初始化label*/
-        InitLabelExt(title, 83, 50, 300, 35, "labletitle", STR_MESSAGE_NOTIFICATION, DEFAULT_VECTOR_FONT_FILENAME, 30);
-        Add(title);
+
+        /*初始化image*/
+        InitImageView(imageline, 193, 30, 365, 35, "image", lineimagePath);
+        Add(imageline);
 
         // UIList 的适配器
         p_MessageListAdapter = new MessageListAdapter();
@@ -76,34 +79,24 @@ namespace OHOS
             MessageList = new UIList();
         }
         MessageList->SetPosition(MORE_LIST_POSITION_X, MORE_LIST_POSITION_Y, 466, 466);
-        // MessageList->SetScrollStateListener(this);
+        MessageList->SetScrollBlankSize(35);
+        MessageList->SetReboundSize(50);
         MessageList->SetThrowDrag(true);
         MessageList->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);
-        // 设置手指抬起屏幕后的最大滚动距离
         MessageList->SetMaxScrollDistance(1000); // 1000: max scroll distance
-        // 设置手指抬起屏幕后的补偿距离
-        MessageList->SetSwipeACCLevel(800); // 800: compensation distance
-        // 设置拖动加速
-        MessageList->SetDragACCLevel(5); // 5: drag acceleration
-        MessageList->SetYScrollBarVisible(true);
+        MessageList->SetSwipeACCLevel(800);      // 800: compensation distance
+        MessageList->SetDragACCLevel(5);         // 5: drag acceleration
         MessageList->SetViewId(MAINMESSAGEVIEW);
-
-        // SetYScrollBarVisible(true); // 设置滑动滚动条
-        UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::MessageControlPresenter::GetInstance();
-        if (clickListener == nullptr)
-        {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AddButton::OnStart clickListener NULL");
-            return false;
-        }
-        MessageList->SetOnClickListener(clickListener);
-        UIView::OnDragListener *Messagedraglistener = (UIView::OnDragListener *)(MessageControlPresenter::GetInstance());
+        MessageList->SetOnClickListener((UIView::OnClickListener *)OHOS::MessageControlPresenter::GetInstance());
+        MessageList->SetIntercept(true);
 
         Add(MessageList);
         MessageList->SetAdapter(p_MessageListAdapter);
-        MessageList->RefreshList();
 
-        SetDraggable(false);
-        SetTouchable(false);
+        // MessageList->RefreshList();
+        // SetDraggable(true);
+        // SetTouchable(true);
+
         initViewStatus = true;
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "InitPage is end");
         return true;
@@ -150,7 +143,6 @@ namespace OHOS
     }
     void MessageCardView::UpdateMessageCard()
     {
-
     }
     UIList *MessageCardView::GetList()
     {
index e6f4d07..d734715 100644 (file)
@@ -1,27 +1,4 @@
-/***
- * @Date: 2024-07-11 14:52:39
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-07-25 10:28:36
- * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageControlView.cpp
- */
-/***
- * @Date: 2024-07-11 14:52:39
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-07-25 09:41:22
- * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageControlView.cpp
- */
-/***
- * @Date: 2024-07-11 14:52:39
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-07-25 09:32:03
- * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageControlView.cpp
- */
-/*
- * Copyright (c) CompanyNameMagicTag 2022-2022. All rights reserved.
- * Description: MessageControlView.cpp
- * Author:
- * Create: 2022-04-02
- */
+
 #include "message/include/MessageControlView.h"
 #include "message/include/MessageModel.h"
 #include "message/include/MessageControlPresenter.h"
index d860e73..c7b85fd 100644 (file)
@@ -4,22 +4,24 @@ namespace OHOS
 {
     static constexpr const char *ICON_IMAGE = "user/res/message/Icon.bin";
 
+#define SELF_ADAPTION 1
+
 #define RECTANGLE_WIDTH 380
 
-// 定义不同大小矩形的长度常量
+// 定义不同大小背景矩形的长度常量
 #define SMALL_RECTANGLE_LENGTH 180
 #define MEDIUM_RECTANGLE_LENGTH 210
 #define BIG_RECTANGLE_LENGTH 240
 
 // 定义不同大小标签的长度常量
 #define SMALL_LABEL_LENGTH 30
-#define MEDIUM_LABEL_LENGTH 70
-#define BIG_LABEL_LENGTH 105
+#define MEDIUM_LABEL_LENGTH 80
+#define BIG_LABEL_LENGTH 115
 
 // 时间的top
-#define SMALL_TIMELABEL_LENGTH 108
-#define MEDIUM_TIMELABEL_LENGTH 139
-#define BIG_LABELTIME_LENGTH 171
+#define SMALL_TIMELABEL_LENGTH 110
+#define MEDIUM_TIMELABEL_LENGTH 141
+#define BIG_LABELTIME_LENGTH 173
 
     // 定义全局变量
     static int item_length = BIG_RECTANGLE_LENGTH;
@@ -29,66 +31,75 @@ namespace OHOS
     MessageItemView::MessageItemView()
     {
         SetPosition(0, 0, RECTANGLE_WIDTH, item_length);
+        // SetStyle(STYLE_BACKGROUND_COLOR, 0xff303030);
         SetStyle(STYLE_BACKGROUND_OPA, 255);
         SetStyle(STYLE_BORDER_RADIUS, 20);
         SetTouchable(true);
-        SetUpChild();
-
-        Add(&sLabelButton);
-        Add(&sIcon);
-        Add(&stitle);
-        Add(&smessgae);
-        Add(&stime);
     }
 
     MessageItemView::~MessageItemView()
     {
-        Remove(&sIcon);
-        Remove(&stitle);
-        Remove(&smessgae);
-        Remove(&stime);
-        Remove(&sLabelButton);
+        RemoveAll();
     }
 
     void MessageItemView::SetItemInfo(const MessageListItem itemInfo)
     {
         sItemInfo = itemInfo;
-#if 0
+#if SELF_ADAPTION
         // 根据 labeldetails 的大小设置矩形和标签的长度
-        if (itemInfo.labeldetails.size() <= 10)
+        printf("itemInfo.labeldetails.size():%d\r\n", itemInfo.labeldetails.size());
+        if (itemInfo.labeldetails.size() <= 30) // 一行
         {
-            label_length = SMALL_LABEL_LENGTH;
             item_length = SMALL_RECTANGLE_LENGTH;
+            label_length = SMALL_LABEL_LENGTH;
             time_top = SMALL_TIMELABEL_LENGTH;
         }
-        else if (itemInfo.labeldetails.size() > 10 && itemInfo.labeldetails.size() <= 20)
+        else if (itemInfo.labeldetails.size() > 30 && itemInfo.labeldetails.size() <= 60) // 两行
         {
-            label_length = MEDIUM_LABEL_LENGTH;
             item_length = MEDIUM_RECTANGLE_LENGTH;
+            label_length = MEDIUM_LABEL_LENGTH;
             time_top = MEDIUM_TIMELABEL_LENGTH;
         }
         else
         {
-            label_length = BIG_LABEL_LENGTH;
             item_length = BIG_RECTANGLE_LENGTH;
+            label_length = BIG_LABEL_LENGTH;
             time_top = BIG_LABELTIME_LENGTH;
         }
-
+        /* 自适应消息列表配置 测试中 */
         SetPosition(0, 0, RECTANGLE_WIDTH, item_length);
+        smessgae.SetPosition(40, 69, 300, label_length);
+        stime.SetPosition(40, time_top, 300, 33);
+        sLabelButton.SetPosition(0, 0, 380, item_length - 20);
 #endif
-        if (!itemInfo.read)
-        {
-            sIcon.SetSrc(ICON_IMAGE);
-        }
+        sIcon.SetSrc(ICON_IMAGE);
         stitle.SetText(itemInfo.labeltitle.c_str());
         smessgae.SetText(itemInfo.labeldetails.c_str());
         stime.SetText(itemInfo.labeltime.c_str());
+        // 设置图标可见性
+        sIcon.SetVisible(!itemInfo.read);
 
-        // printf("%d %s %s %s\r\n", itemInfo.read, itemInfo.labeltitle.c_str(), itemInfo.labeldetails.c_str(), itemInfo.labeltime.c_str());
+        printf("MessageItemView   itemInfo %d %s %s\r\n", itemInfo.read, itemInfo.labeltitle.c_str(), itemInfo.labeldetails.c_str(), itemInfo.labeltime.c_str());
+        printf("MessageItemView   size %d %d %d\r\n", label_length, item_length, time_top);
     }
+    void MessageItemView::TearDownChild()
+    {
+        if (!isSetupChild)
+            return;
 
+        Remove(&sIcon);
+        Remove(&stitle);
+        Remove(&smessgae);
+        Remove(&stime);
+        Remove(&sLabelButton);
+
+        isSetupChild = false;
+    }
     void MessageItemView::SetUpChild()
     {
+        if (isSetupChild)
+            return;
+
         sIcon.SetPosition(40, 43);
         sIcon.SetStyle(STYLE_IMAGE_OPA, OPA_OPAQUE);
 
@@ -99,12 +110,10 @@ namespace OHOS
         stitle.SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);
         stitle.SetRollSpeed(70);
 
-        smessgae.SetPosition(40, 69, 300, label_length);
         smessgae.SetLineBreakMode(UILabel::LINE_BREAK_ELLIPSIS);
         smessgae.SetTextColor(Color::Gray());
         smessgae.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
 
-        stime.SetPosition(40, time_top, 300, 33);
         stime.SetLineBreakMode(UILabel::LINE_BREAK_ELLIPSIS);
         stime.SetTextColor(Color::Gray());
         stime.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 28);
@@ -112,9 +121,18 @@ namespace OHOS
         sLabelButton.SetPosition(0, 0, 380, item_length - 20);
         sLabelButton.SetStyle(STYLE_BACKGROUND_COLOR, 0xff303030);
         sLabelButton.SetStyle(STYLE_BORDER_RADIUS, 20);
-        sLabelButton.SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);
+
         sLabelButton.SetStyleForState(STYLE_BORDER_RADIUS, 20, UIButton::PRESSED);
+        sLabelButton.SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff000000, UIButton::PRESSED);
         sLabelButton.SetTouchable(true);
+
+        Add(&sLabelButton);
+        Add(&sIcon);
+        Add(&stitle);
+        Add(&smessgae);
+        Add(&stime);
+
+        isSetupChild = false;
     }
 
     int MessageItemView::GetMessageListIndex()
index c2bcc40..b3c7eb8 100644 (file)
@@ -41,7 +41,6 @@ namespace OHOS
     std::string timeStr = "2023.12.26 17:23";
     std::string messageStr = "【铁路12306】系统已自动为您生成订单EC09828333,04月23日G2231次,深圳北站13:31开。请您在2小时内完成支付。您可通过以下链接进行支付。https://www.12306.cn/index/";
 #endif
-    std::string titleStr, timeStr, messageStr;
 
     MessageShowView::MessageShowView()
     {
@@ -159,6 +158,7 @@ namespace OHOS
         container_->Add(messageButton);
         container_->Add(deleteButton);
         /* -------------------------------------------------------------------------- */
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitView is ok!");
         // UpdateMessage();
     }
 
@@ -200,7 +200,6 @@ namespace OHOS
 
         PreLoad();
 
-        RootView::GetInstance()->Add(container_);
         SetContainerView(container_);
 
         RootView::GetInstance()->SetOnKeyActListener(presenter_);
index 7d9ed08..9e86c6b 100644 (file)
@@ -1,4 +1,9 @@
-
+/***
+ * @Date: 2024-07-12 11:19:45
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-08-09 14:03:51
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageView.cpp
+ */
 
 #include "message/include/MessageView.h"
 #include "message/include/MessagePresenter.h"
@@ -30,10 +35,13 @@ namespace OHOS
 
     MessageView::~MessageView()
     {
-        if (viewInitStatus == true)
-        {
-            DeInitView();
-        }
+        // if (viewInitStatus == true)
+        // {
+        //     DeInitView();
+        // }
+        UIViewGroup *tmpGroup = dynamic_cast<UIViewGroup *>(container_);
+        UIViewGroup::RemoveAndDeleteAllRecursively(tmpGroup);
+
         g_pMessageView = nullptr;
     }
 
@@ -130,7 +138,7 @@ namespace OHOS
         lackView->Add(labeltitle);
         lackView->Add(labelmeage);
 
-        RootView::GetInstance()->Add(lackView);
+        container_->Add(lackView);
         lackView->SetDraggable(true);
         lackView->SetTouchable(true);
 
@@ -180,16 +188,7 @@ namespace OHOS
 
         MessageList->SetOnClickListener(presenter_);
         messageView->SetOnDragListener(presenter_);
-#if 0
-        /*删除按键*/
-        int top = MessageList->GetHeight();
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "old top %d", top);
-        top > 466 ? top += 130 : top -= 100;
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "new top %d", top);
-        InitButtonExt(DeleteButton, 43, top, 380, 100, DELETEALLDATA, STR_CLEANALL, 30);
-        DeleteButton->SetOnClickListener(presenter_);
-        messageView->Add(DeleteButton);
-#endif
+
         messageView->SetVisible(false); // 隐藏界面
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ShowmessageView end");
     }
@@ -205,27 +204,19 @@ namespace OHOS
     void MessageView::SetPopupViewStatus(PopupMessage view, bool status)
     {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetPopupViewStatus %d", view);
-        UIView *popupView = nullptr;
+
         if (view == PopupMessage::LackPopup)
         {
-            MessageModel::GetInstance().SetPopupViewState(false); // 设置状态为无记录
-            popupView = lackView;
+            MessageModel::GetInstance().SetPopupViewState(false); // 设置状态为无消息
+            lackView->SetVisible(true);                           // 隐藏界面
+            messageView->SetVisible(false);                       // 隐藏界面
         }
         else if (view == PopupMessage::MessagePopup)
         {
-            MessageModel::GetInstance().SetPopupViewState(true); // 设置状态为有记录
-            popupView = messageView;
-        }
-        if (popupView == nullptr)
-        {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PopupView is NULL");
-            return;
-        }
-        if (container_ != nullptr)
-        {
-            container_->SetVisible(!status);
+            MessageModel::GetInstance().SetPopupViewState(true); // 设置状态为有消息
+            lackView->SetVisible(false);                         // 隐藏界面
+            messageView->SetVisible(true);                       // 隐藏界面
         }
-        popupView->SetVisible(status);
     }
 
     /// @brief 页面启动时需要执行的代码逻辑
@@ -245,7 +236,6 @@ namespace OHOS
         ShowMessageView();
         PreLoad();
 
-        RootView::GetInstance()->Add(container_);
         SetContainerView(container_);
 
         RootView::GetInstance()->SetOnKeyActListener(presenter_);
@@ -266,8 +256,9 @@ namespace OHOS
         if (MessageModel::GetInstance().HasDataVector())
         {
             messageView->Add(MessageList);
+            messageView->Add(DeleteButton);
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MessageList is add");
-            RootView::GetInstance()->Add(messageView);
+            container_->Add(messageView);
             MessageList->SetAdapter(p_MessageListAdapter);
         }
         Draw();
index 2a3894e..56a6e06 100644 (file)
@@ -1,35 +1,43 @@
+/***\r
+ * @Date: 2024-04-15 10:55:58\r
+ * @LastEditors: Caisking 3449750381@qq.com\r
+ * @LastEditTime: 2024-08-09 15:01:58\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/saveele/include/SaveElePresenter.h\r
+ */\r
 #ifndef _SAVEELE_PRESENTER_H\r
 #define _SAVEELE_PRESENTER_H\r
- \r
 \r
 #include "Presenter.h"\r
 #include "SaveEleView.h"\r
- \r
+\r
 namespace OHOS\r
 {\r
+    static constexpr const char *SAVEBUTTONOK = "buttonok";\r
+    static constexpr const char *SAVEBUTTONNO = "buttonno";\r
+\r
     class SaveEleView;\r
-       \r
     class SaveElePresenter : public Presenter<SaveEleView>,\r
-                                 public UIView::OnClickListener,\r
-                                 public UIView::OnDragListener\r
+                             public UIView::OnClickListener,\r
+                             public UIView::OnDragListener,\r
+                             public RootView::OnKeyActListener\r
     {\r
     public:\r
         SaveElePresenter();\r
         virtual ~SaveElePresenter();\r
- \r
-        void OnStart() override;  \r
-        void OnPause() override;  \r
-        void OnResume() override; \r
-        void OnStop() override;   \r
- \r
-        static SaveElePresenter *GetInstance();     \r
- \r
+\r
+        void OnStart() override;\r
+        void OnPause() override;\r
+        void OnResume() override;\r
+        void OnStop() override;\r
+\r
+        static SaveElePresenter *GetInstance();\r
+\r
     private:\r
-        //因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承;\r
-        bool OnClick(UIView &view, const ClickEvent &event) override; \r
-        bool OnDrag(UIView &view, const DragEvent &event) override;   \r
+        // 因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承;\r
+        bool OnClick(UIView &view, const ClickEvent &event) override;\r
+        bool OnDrag(UIView &view, const DragEvent &event) override;\r
+        bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件\r
     };\r
-} //namespace OHOS\r
- \r
- \r
-#endif  //SLEEPDETAIL_PRESENTER_H
\ No newline at end of file
+} // namespace OHOS\r
+\r
+#endif // SLEEPDETAIL_PRESENTER_H
\ No newline at end of file
index 3464edc..b4602f9 100644 (file)
@@ -3,12 +3,13 @@
 \r
 #include "BaseView.h"\r
 #include "View.h"\r
-#include <ui_scroll_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_image_view.h"\r
 #include "components/ui_button.h"\r
+#include "components/ui_scroll_view.h"\r
 \r
 #include "SaveElePresenter.h"\r
 namespace OHOS\r
@@ -26,32 +27,23 @@ namespace OHOS
         void OnSetUpView() override;\r
         void OnTearDownView() override;\r
         void OnStop() override;\r
-        void Init();\r
+        void InitView();\r
         void DeInit();\r
-        UIView *GetView();\r
 \r
     private:\r
         UIView::OnDragListener *draglistener{nullptr};\r
 \r
-        // void InitImage(void);\r
-        // void InitLable(void);\r
-\r
-        // 以下控件属性通过new实例化后,add到对应root属性上;\r
-        // SaveEleView(constSaveEleView &) = delete;\r
-        // SaveEleView &operator=(constSaveEleView &) = delete;\r
         SaveEleView(SaveEleView &&) = delete;\r
         SaveEleView &operator=(SaveEleView &&) = delete;\r
 \r
-        UIViewGroup *container_ = nullptr;\r
-        UIScrollView *scrollView1_ = nullptr;\r
-        UILabel *label1_ = nullptr;\r
-        UILabel *label3_ = nullptr;\r
-        UILabel *label4_ = nullptr;\r
-        UIButton *button1_ = nullptr;\r
-        UIButton *button2_ = nullptr;\r
-        UIImageView *image2_ = nullptr;\r
-        UIImageView *image1_ = nullptr;\r
-        UILabel *label2_ = nullptr;\r
+        UILabelExt *labeltitle = nullptr;\r
+        UILabelExt *labelnote = nullptr;\r
+        UILabelExt *labelkown = nullptr;\r
+        UIButton *buttonok = nullptr;\r
+        UIButton *buttonno = nullptr;\r
+        UIImageView *iamgeicon = nullptr;\r
+\r
+        UIScrollView *container_{nullptr};\r
     };\r
 } // namespace OHOS\r
 #endif // SaveEle_PRESENTER_H\r
index 350f3eb..963e645 100644 (file)
@@ -1,7 +1,16 @@
+/*** \r
+ * @Date: 2024-05-30 15:59:37\r
+ * @LastEditors: Caisking 3449750381@qq.com\r
+ * @LastEditTime: 2024-08-09 15:14:49\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/saveele/src/SaveElePresenter.cpp\r
+ */\r
 #include "AppViewIDs.h"\r
 #include "components/ui_label_ext.h"\r
-#include"ui_resource_string.h"\r
+#include "ui_resource_string.h"\r
 #include "NativeAbility.h"\r
+#include "KeyInputListener.h"\r
+#include "custom_utils.h"\r
+#include "common/key_code.h"\r
 \r
 #include "saveele/include/SaveElePresenter.h"\r
 \r
@@ -56,27 +65,35 @@ namespace OHOS
     bool SaveElePresenter::OnDrag(UIView &view, const DragEvent &event)\r
     {\r
 \r
-        // if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)\r
-        // {\r
-        //     NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST);\r
-        // }\r
+        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT &&\r
+            (event.GetDeltaX() > 20) && (event.GetDeltaX() > (2 * MATH_ABS(event.GetDeltaY()))))\r
+        {\r
+            NativeAbility::GetInstance().Back();\r
+        }\r
         UNUSED(view);\r
         return true;\r
     }\r
 \r
     bool SaveElePresenter::OnClick(UIView &view, const ClickEvent &event)\r
     {\r
-        // 根据控件id查找是哪个控件触发了点击回调\r
-        // if (strcmp(view.GetViewId(), 控件ID) == 0)\r
-        if (strcmp(view.GetViewId(), "button1") == 0)\r
+        if (strcmp(view.GetViewId(), SAVEBUTTONNO) == 0)\r
+        {\r
+            NativeAbility::GetInstance().Back();\r
+        }\r
+        if (strcmp(view.GetViewId(), SAVEBUTTONOK) == 0)\r
         {\r
-            // NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN);\r
-            uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();\r
-            NativeAbility::GetInstance().ChangeSlice(preSlice);\r
+            NativeAbility::GetInstance().EnterSlice(VIEW_SAVEBAT);\r
         }\r
-        if (strcmp(view.GetViewId(), "button2") == 0)\r
+        return true;\r
+    }\r
+    bool SaveElePresenter::OnKeyAct(UIView &view, const KeyEvent &event)\r
+    {\r
+        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
         {\r
-            NativeAbility::GetInstance().ChangeSlice(VIEW_SAVEBAT);\r
+            NativeAbility::GetInstance().Back();\r
         }\r
         return true;\r
     }\r
index 967f2d8..14bbc29 100644 (file)
@@ -1,26 +1,41 @@
-\r
+/***\r
+ * @Date: 2024-04-15 10:55:58\r
+ * @LastEditors: Caisking 3449750381@qq.com\r
+ * @LastEditTime: 2024-08-09 14:41:32\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/saveele/src/SaveEleView.cpp\r
+ */\r
 \r
 #include "saveele/include/SaveEleView.h"\r
+#include "saveele/include/SaveElePresenter.h"\r
 \r
 #include "common/image_cache_manager.h"\r
 #include "UiConfig.h"\r
 #include "ui_resource_image.h"\r
 #include <ui_scroll_view.h>\r
 #include "components/ui_button.h"\r
+#include "uicomponents/UIComponents.h"\r
+#include "ui_resource_string.h"\r
+#include "components/ui_scroll_view.h"\r
+\r
 namespace OHOS\r
 {\r
 \r
     static SaveEleView *g_pSaveEleView{nullptr};\r
+    static const uint32_t BACK_GROUND_COLOR = 0xfff6f6f6;\r
+\r
+    static constexpr char *iconImgPath = "/user/res/Save_Ele/SaveEle.bin";\r
+    static constexpr char *butnoImgPath = "/user/res/Save_Ele/Save_Error.bin";\r
+    static constexpr char *butokImgPath = "/user/res/Save_Ele/Save_Right.bin";\r
 \r
     SaveEleView::SaveEleView()\r
     {\r
-\r
         g_pSaveEleView = this;\r
     }\r
 \r
     SaveEleView::~SaveEleView()\r
     {\r
-        DeInit();\r
+        UIViewGroup *tmpGroup = dynamic_cast<UIViewGroup *>(container_);\r
+        UIViewGroup::RemoveAndDeleteAllRecursively(tmpGroup);\r
         g_pSaveEleView = nullptr;\r
     }\r
 \r
@@ -29,306 +44,75 @@ namespace OHOS
         return g_pSaveEleView;\r
     }\r
 \r
-    void SaveEleView::Init()\r
+    void SaveEleView::InitView()\r
     {\r
         if (container_ == nullptr)\r
         {\r
-            container_ = new UIViewGroup();\r
+            container_ = new UIScrollView();\r
             container_->SetPosition(0, 0, 466, 466);\r
             container_->SetStyle(STYLE_BACKGROUND_OPA, 0);\r
         }\r
 \r
-        // Add ScrollView to App\r
-        if (scrollView1_ == nullptr)\r
-        {\r
-            scrollView1_ = new UIScrollView();\r
-        }\r
-        scrollView1_->SetPosition(0, 0);        // widget's left position and top position\r
-        scrollView1_->Resize(466, 466);         // widget's width and height\r
-        scrollView1_->SetViewId("scrollView1"); // Set style\r
-        scrollView1_->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
-\r
-        // Set additional property\r
-        scrollView1_->SetDirection(1);\r
-\r
-        // Add the CallBack about events\r
-        UIView::OnDragListener *scrollView1Drag = static_cast<UIView::OnDragListener *>(SaveElePresenter::GetInstance());\r
-        scrollView1_->SetOnDragListener(scrollView1Drag);\r
-        // Add to rootView\r
-        container_->Add(scrollView1_);\r
-        scrollView1_->SetVisible(true);\r
-\r
-        // Add Label to App\r
-        if (label1_ == nullptr)\r
-        {\r
-            label1_ = new UILabel();\r
-        }\r
-        label1_->SetPosition(173, 52); // widget's left position and top position\r
-        label1_->Resize(120, 35);      // widget's width and height\r
-        label1_->SetViewId("label1");  // Set style\r
-        label1_->SetStyle(STYLE_TEXT_FONT, 30);\r
-        label1_->SetStyle(STYLE_LINE_SPACE, 0);\r
-        label1_->SetStyle(STYLE_LETTER_SPACE, 1);\r
-        label1_->SetStyle(STYLE_LINE_HEIGHT, 35);\r
-\r
-        // Set additional property\r
-        label1_->SetText("省电模式");\r
-        label1_->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
-        label1_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
-        label1_->SetRollSpeed(0);\r
-        label1_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
-\r
-        // Add to scrollView1\r
-        scrollView1_->Add(label1_);\r
-        label1_->SetVisible(true);\r
-\r
-        // Add Label to App\r
-        if (label3_ == nullptr)\r
-        {\r
-            label3_ = new UILabel();\r
-        }\r
-        label3_->SetPosition(33, 440); // widget's left position and top position\r
-        label3_->Resize(200, 60);      // widget's width and height\r
-        label3_->SetViewId("label3");  // Set style\r
-        label3_->SetStyle(STYLE_TEXT_FONT, 30);\r
-        label3_->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+        /*初始化label*/\r
+        InitLabelExt(labeltitle, 83, 50, 300, 35, "labletitle", STR_POWER_SAVE_MODE, DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+        InitLabelExt(labelnote, 53, 217, 360, 200, "labletitle", STR_SAVENOTE, DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+        InitLabelExt(labelkown, 53, 385, 360, 100, "labelrecord", STR_SAVEBACK, DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+        labelkown->SetTextColor(Color::Orange());\r
 \r
-        // Set additional property\r
-        label3_->SetText("长按屏幕3秒以上或充电可退\n出省电模式");\r
-        label3_->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
-        label3_->SetTextColor(Color::GetColorFromRGBA(0xff, 0xc3, 0x00, 0xff));\r
-        label3_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
-        label3_->SetRollSpeed(0);\r
-        label3_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+        /*初始化图片*/\r
+        InitImageView(iamgeicon, 188, 121, 80, 90, "saveicon", iconImgPath);\r
 \r
-        // Add to scrollView1\r
-        scrollView1_->Add(label3_);\r
-        label3_->SetVisible(true);\r
+        /*初始化按键*/\r
+        InitButton(buttonno, 110, 501, 100, 100, SAVEBUTTONNO);\r
+        buttonno->SetImageSrc(butnoImgPath, butnoImgPath);\r
+        buttonno->SetOnClickListener(presenter_);\r
 \r
-        // Add Label to App\r
-        if (label4_ == nullptr)\r
-        {\r
-            label4_ = new UILabel();\r
-        }\r
-        label4_->SetPosition(173, 547); // widget's left position and top position\r
-        label4_->Resize(400, 395);      // widget's width and height\r
-        label4_->SetViewId("label4");   // Set style\r
-        label4_->SetStyle(STYLE_TEXT_FONT, 30);\r
-        label4_->SetStyle(STYLE_LINE_HEIGHT, 35);\r
-\r
-        // Set additional property\r
-        label4_->SetText("是否开启");\r
-        label4_->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
-        label4_->SetTextColor(Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff));\r
-        label4_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
-        label4_->SetRollSpeed(0);\r
-        label4_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
-\r
-        // Add to scrollView1\r
-        scrollView1_->Add(label4_);\r
-        label4_->SetVisible(true);\r
-\r
-        // Add Button to App\r
-        if (button1_ == nullptr)\r
-        {\r
-            button1_ = new UIButton();\r
-        }\r
-        button1_->SetPosition(110, 636); // widget's left position and top position\r
-        button1_->Resize(100, 100);      // widget's width and height\r
-        button1_->SetViewId("button1");  // Set style\r
-        button1_->SetStyle(STYLE_BACKGROUND_COLOR, 0xff000000);\r
-        button1_->SetStyle(STYLE_BACKGROUND_OPA, 0x00);\r
-\r
-        char *button1defaultImgSrc = "/user/res/Save_Ele/Save_Error.bin";\r
-        char *button1triggeredImgSrc = nullptr;\r
-        button1_->SetImageSrc(button1defaultImgSrc, button1triggeredImgSrc);\r
-        button1_->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xffff1919, UIButton::PRESSED);\r
-        button1_->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);\r
-\r
-        // Add the CallBack about events\r
-        UIView::OnClickListener *button1Click = static_cast<UIView::OnClickListener *>(SaveElePresenter::GetInstance());\r
-        button1_->SetOnClickListener(button1Click);\r
-        // Add to scrollView1\r
-        scrollView1_->Add(button1_);\r
-        button1_->SetVisible(true);\r
-\r
-        // Add Button to App\r
-        if (button2_ == nullptr)\r
-        {\r
-            button2_ = new UIButton();\r
-        }\r
-        button2_->SetPosition(255, 636); // widget's left position and top position\r
-        button2_->Resize(100, 100);      // widget's width and height\r
-        button2_->SetViewId("button2");  // Set style\r
-        button2_->SetStyle(STYLE_BACKGROUND_COLOR, 0xff000000);\r
-        button2_->SetStyle(STYLE_BACKGROUND_OPA, 0x00);\r
-\r
-        char *button2defaultImgSrc = "/user/res/Save_Ele/Save_Right.bin";\r
-        char *button2triggeredImgSrc = nullptr;\r
-        button2_->SetImageSrc(button2defaultImgSrc, button2triggeredImgSrc);\r
-        button2_->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff19ff5e, UIButton::PRESSED);\r
-        button2_->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);\r
-\r
-        // Add the CallBack about events\r
-        UIView::OnClickListener *button2Click = static_cast<UIView::OnClickListener *>(SaveElePresenter::GetInstance());\r
-        button2_->SetOnClickListener(button2Click);\r
-        // Add to scrollView1\r
-        scrollView1_->Add(button2_);\r
-        button2_->SetVisible(true);\r
-\r
-        // Add ImageView to App\r
-        if (image2_ == nullptr)\r
-        {\r
-            image2_ = new UIImageView();\r
-        }\r
-        image2_->SetPosition(183, 775); // widget's left position and top position\r
-        image2_->Resize(100, 100);      // widget's width and height\r
-        image2_->SetViewId("image2");   // Set style\r
-\r
-        // Set additional property\r
-\r
-        // Add to scrollView1\r
-        scrollView1_->Add(image2_);\r
-        image2_->SetVisible(true);\r
-\r
-        // Add ImageView to App\r
-        if (image1_ == nullptr)\r
-        {\r
-            image1_ = new UIImageView();\r
-        }\r
-        image1_->SetPosition(188, 121); // widget's left position and top position\r
-        image1_->Resize(90, 90);        // widget's width and height\r
-        image1_->SetViewId("image1");   // Set style\r
-\r
-        // Set additional property\r
-        char *image1imagesPath = "/user/res/Save_Ele/SaveEle.bin";\r
-        image1_->SetSrc(image1imagesPath);\r
-\r
-        // Add to scrollView1\r
-        scrollView1_->Add(image1_);\r
-        image1_->SetVisible(true);\r
-\r
-        // Add Label to App\r
-        if (label2_ == nullptr)\r
-        {\r
-            label2_ = new UILabel();\r
-        }\r
-        label2_->SetPosition(33, 217); // widget's left position and top position\r
-        label2_->Resize(400, 395);     // widget's width and height\r
-        label2_->SetViewId("label2");  // Set style\r
-        label2_->SetStyle(STYLE_TEXT_FONT, 30);\r
-        label2_->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+        InitButton(buttonok, 255, 501, 100, 100, SAVEBUTTONOK);\r
+        buttonok->SetImageSrc(butokImgPath, butokImgPath);\r
+        buttonok->SetOnClickListener(presenter_);\r
 \r
-        // Set additional property\r
-        label2_->SetText("开启省电模式会关闭非必要的\n蓝牙连接(通话/耳机蓝牙),以\n及传感器监测(心率监测及血\n氧监测等会停止)等功能\n 仅保留时间日期可查看");\r
-        label2_->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
-        label2_->SetTextColor(Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff));\r
-        label2_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
-        label2_->SetRollSpeed(0);\r
-        label2_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
-\r
-        // Add to scrollView1\r
-        scrollView1_->Add(label2_);\r
-        label2_->SetVisible(true);\r
-    }\r
-\r
-    void SaveEleView::DeInit()\r
-    {\r
-        scrollView1_->RemoveAll();\r
-        container_->RemoveAll();\r
-        if (label1_ != nullptr)\r
-        {\r
-            delete label1_;\r
-            label1_ = nullptr;\r
-        }\r
-        if (label3_ != nullptr)\r
-        {\r
-            delete label3_;\r
-            label3_ = nullptr;\r
-        }\r
-        if (label4_ != nullptr)\r
-        {\r
-            delete label4_;\r
-            label4_ = nullptr;\r
-        }\r
-        if (button1_ != nullptr)\r
-        {\r
-            delete button1_;\r
-            button1_ = nullptr;\r
-        }\r
-        if (button2_ != nullptr)\r
-        {\r
-            delete button2_;\r
-            button2_ = nullptr;\r
-        }\r
-        if (image2_ != nullptr)\r
-        {\r
-            delete image2_;\r
-            image2_ = nullptr;\r
-        }\r
-        if (image1_ != nullptr)\r
-        {\r
-            delete image1_;\r
-            image1_ = nullptr;\r
-        }\r
-        if (label2_ != nullptr)\r
-        {\r
-            delete label2_;\r
-            label2_ = nullptr;\r
-        }\r
-        if (scrollView1_ != nullptr)\r
-        {\r
-            delete scrollView1_;\r
-            scrollView1_ = nullptr;\r
-        }\r
-        if (container_ != nullptr)\r
-        {\r
-            delete container_;\r
-            container_ = nullptr;\r
-        }\r
+        container_->Add(labeltitle);\r
+        container_->Add(labelnote);\r
+        container_->Add(labelkown);\r
+        container_->Add(iamgeicon);\r
+        container_->Add(buttonno);\r
+        container_->Add(buttonok);\r
     }\r
 \r
-    UIView *SaveEleView::GetView()\r
-    {\r
-        Init();\r
-        return container_;\r
-    }\r
     void SaveEleView::OnStart()\r
     {\r
+\r
+        View<SaveElePresenter>::OnStart();\r
+\r
         container_ = new UIScrollView();\r
         if (container_ == nullptr)\r
         {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "container_ new fail");\r
             return;\r
         }\r
-        container_->SetPosition(0, 0);\r
-        container_->SetWidth(Screen::GetInstance().GetWidth());\r
-        container_->SetHeight(Screen::GetInstance().GetHeight() * 2);\r
-\r
-        // 创建 draglistener 实例并设置为拖动监听器\r
-        UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(SaveElePresenter::GetInstance());\r
-        if (draglistener == nullptr)\r
-        {\r
-            return;\r
-        }\r
-        container_->SetOnDragListener(draglistener);\r
+        container_->SetScrollBlankSize(35);\r
+        container_->SetReboundSize(50);\r
+        container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
 \r
+        container_->SetOnDragListener(presenter_);\r
         container_->SetTouchable(true);\r
         container_->SetDraggable(true);\r
+        container_->SetStyle(STYLE_BACKGROUND_COLOR, BACK_GROUND_COLOR);\r
+        container_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);\r
 \r
-        GetView();\r
-        RootView::GetInstance()->Add(container_);\r
+        InitView();\r
+        SetContainerView(container_);\r
+        RootView::GetInstance()->SetOnKeyActListener(presenter_);\r
     }\r
 \r
     void SaveEleView::OnSetUpView()\r
     {\r
-\r
         View<SaveElePresenter>::OnSetUpView();\r
         Draw();\r
     }\r
 \r
     void SaveEleView::OnTearDownView()\r
     {\r
-\r
         View<SaveElePresenter>::OnTearDownView();\r
         return;\r
     }\r
@@ -336,6 +120,12 @@ namespace OHOS
     void SaveEleView::OnStop()\r
     {\r
         View<SaveElePresenter>::OnStop();\r
+        if (container_ != nullptr)\r
+        {\r
+            container_->RemoveAll();\r
+            delete container_;\r
+            container_ = nullptr;\r
+        }\r
         RootView::GetInstance()->RemoveAll();\r
         return;\r
     }\r
index d4cee4d..9e98813 100644 (file)
@@ -22,7 +22,14 @@ namespace OHOS
 
     TakephotosView::~TakephotosView()
     {
-        DeInit();
+        // DeInit();
+
+        creamAnimator->Stop();
+        smileAnimator->Start();
+
+        UIViewGroup *tmpGroup = dynamic_cast<UIViewGroup *>(container_);
+        UIViewGroup::RemoveAndDeleteAllRecursively(tmpGroup);
+
         g_pTakephotosView = nullptr;
     }
 
@@ -140,7 +147,9 @@ namespace OHOS
         creamView->Add(labelnote_);
         creamView->Add(buttongo);
 
-        RootView::GetInstance()->Add(creamView);
+        // RootView::GetInstance()->Add(creamView);
+        container_->Add(creamView);
+
         creamView->SetDraggable(true);
         creamView->SetTouchable(true);
 
@@ -190,7 +199,9 @@ namespace OHOS
         takeView->Add(labelclick_);
         takeView->Add(buttontake);
 
-        RootView::GetInstance()->Add(takeView);
+        // RootView::GetInstance()->Add(takeView);
+        container_->Add(takeView);
+
         takeView->SetDraggable(true);
         takeView->SetTouchable(true);
 
@@ -208,32 +219,23 @@ namespace OHOS
     void TakephotosView::SetPopupViewStatus(PopupPhoto view, bool status)
     {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetPopupViewStatus %d", view);
-        UIView *popupView = nullptr;
+
         if (view == PopupPhoto::CreamPopup)
         {
-            popupView = creamView;
+            creamView->SetVisible(true);
+            takeView->SetVisible(false);
+
             creamAnimator->Start();
             smileAnimator->Stop();
         }
         else if (view == PopupPhoto::TakePopup)
         {
-            popupView = takeView;
+            takeView->SetVisible(true);
+            creamView->SetVisible(false);
+
             smileAnimator->Start();
             creamAnimator->Stop();
         }
-
-        if (popupView == nullptr)
-        {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PopupView is NULL");
-            return;
-        }
-
-        if (container_ != nullptr)
-        {
-            container_->SetVisible(!status);
-        }
-
-        popupView->SetVisible(status);
     }
 
     void TakephotosView::OnStart()
@@ -248,7 +250,6 @@ namespace OHOS
         ShowTakeView();
         PreLoad();
 
-        RootView::GetInstance()->Add(container_);
         SetContainerView(container_);
 
         RootView::GetInstance()->SetOnKeyActListener(presenter_);
index 5edd7ee..33ffda9 100644 (file)
@@ -46,7 +46,7 @@ namespace OHOS
         UILabelButtonExt *buttonok_ = nullptr;
         UIPicker *Picker_ = nullptr;
 
-        UIScrollView *SetCaluliScrollView;
+        UIScrollView *SetCaluliScrollView{nullptr};
     };
 } // namespace OHOS
 #endif
index 412bdd4..da510dd 100644 (file)
@@ -1,3 +1,9 @@
+/*** 
+ * @Date: 2024-04-18 11:59:51
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-08-10 10:28:21
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/traing/include/TrainingSetMileView.h
+ */
 /***
  * @Date: 2024-04-18 11:59:51
  * @LastEditors: Caisking 3449750381@qq.com
@@ -52,7 +58,7 @@ namespace OHOS
         UILabelButtonExt *buttonok_ = nullptr;
         UIPicker *Picker_ = nullptr;
 
-        UIScrollView *SetMileScrollView;
+        UIScrollView *SetMileScrollView{nullptr};
     };
 } // namespace OHOS
 #endif
index 66862e0..23bc49d 100644 (file)
@@ -52,7 +52,7 @@ namespace OHOS
         UILabelButtonExt *buttonok_ = nullptr;
         UIPicker *Picker_ = nullptr;
 
-        UIScrollView *SetStepScrollView;
+        UIScrollView *SetStepScrollView{nullptr};
     };
 } // namespace OHOS
 #endif
index 27a3b6a..763ad28 100644 (file)
@@ -1,3 +1,9 @@
+/*** 
+ * @Date: 2024-04-18 11:58:41
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-08-10 10:28:35
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/traing/include/TrainingSetTimeView.h
+ */
 /***
  * @Date: 2024-04-18 10:57:45
  * @LastEditors: Caisking 3449750381@qq.com
@@ -45,7 +51,7 @@ namespace OHOS
         UILabelButtonExt*buttonok_ = nullptr;
         UIPicker *Picker_ = nullptr;
 
-        UIScrollView *SetTimeScrollView;
+        UIScrollView *SetTimeScrollView{nullptr};
     };
 } // namespace OHOS
 #endif
index b91e8da..3b8a85d 100644 (file)
@@ -29,7 +29,10 @@ namespace OHOS
 
     TraingRecordView::~TraingRecordView()
     {
-        DeInit();
+        // DeInit();
+        UIViewGroup *tmpGroup = dynamic_cast<UIViewGroup *>(container_);
+        UIViewGroup::RemoveAndDeleteAllRecursively(tmpGroup);
+
         g_pTraingRecordView = nullptr;
     }
 
@@ -63,6 +66,7 @@ namespace OHOS
     /* DeInit:删除组件 */
     void TraingRecordView::DeInit()
     {
+
         lackView->RemoveAll();
         recordView->RemoveAll();
 
@@ -127,7 +131,10 @@ namespace OHOS
         lackView->Add(imagerecord);
         lackView->Add(buttongo);
 
-        RootView::GetInstance()->Add(lackView);
+        // RootView::GetInstance()->lackView
+        container_->Add(lackView);
+        printf("lackView Add\r\n");
+
         lackView->SetDraggable(true);
         lackView->SetTouchable(true);
 
@@ -150,7 +157,7 @@ namespace OHOS
             return;
         }
         recordView->SetPosition(0, 0);
-        recordView->Resize(VERTICAL_RESOLUTION, HORIZONTAL_RESOLUTION);
+        recordView->Resize(466, 466);
         recordView->SetScrollBlankSize(20);
         recordView->SetReboundSize(50);
         recordView->SetDirection(1);
@@ -192,27 +199,19 @@ namespace OHOS
     void TraingRecordView::SetPopupViewStatus(PopupRecord view, bool status)
     {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetPopupViewStatus %d", view);
-        UIView *popupView = nullptr;
+
         if (view == PopupRecord::LackPopup)
         {
             TraingRecordModel::GetInstance().SetPopupView(false); // 设置状态为无训练记录
-            popupView = lackView;
+            lackView->SetVisible(true);                           // 隐藏界面
+            recordView->SetVisible(false);                        // 隐藏界面
         }
         else if (view == PopupRecord::RecordPopup)
         {
             TraingRecordModel::GetInstance().SetPopupView(true); // 设置状态为有训练记录
-            popupView = recordView;
-        }
-        if (popupView == nullptr)
-        {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PopupView is NULL");
-            return;
-        }
-        if (container_ != nullptr)
-        {
-            container_->SetVisible(!status);
+            lackView->SetVisible(false);                         // 隐藏界面
+            recordView->SetVisible(true);                        // 隐藏界面
         }
-        popupView->SetVisible(status);
     }
     // 获取目前的view
     void TraingRecordView::OnStart()
@@ -226,13 +225,8 @@ namespace OHOS
             return;
         }
         container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
-        // 创建 draglistener 实例并设置为拖动监听器
-        UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(TraingRecordPresenter::GetInstance());
-        if (draglistener == nullptr)
-        {
-            return;
-        }
-        container_->SetOnDragListener(draglistener);
+
+        container_->SetOnDragListener(presenter_);
         container_->SetTouchable(true);
         container_->SetDraggable(true);
         container_->SetStyle(STYLE_BACKGROUND_COLOR, BACK_GROUND_COLOR);
@@ -241,8 +235,9 @@ namespace OHOS
         ShowLackView();
         ShowRecordView();
         PreLoad();
-        RootView::GetInstance()->Add(container_);
+
         SetContainerView(container_);
+
         // 增加按键监听
         RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::TraingRecordPresenter::GetInstance();
         RootView::GetInstance()->SetOnKeyActListener(keyactListener);
@@ -258,7 +253,8 @@ namespace OHOS
         {
             recordView->Add(TraingRecordList);
             recordView->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);
-            RootView::GetInstance()->Add(recordView);
+            container_->Add(recordView);
+            printf("recordView Add\r\n");
             TraingRecordList->SetAdapter(p_TraingRecordAdapter);
         }
         Draw();
index 6566f04..9d3e2da 100755 (executable)
@@ -1,7 +1,7 @@
 /*** 
  * @Date: 2024-05-30 15:59:37
  * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-07-04 19:20:34
+ * @LastEditTime: 2024-08-10 15:24:43
  * @FilePath: /FD230/code/sdk/application/wearable/nativeabilityfwk/src/transition/ZoomTransition.cpp
  */
 /*
@@ -17,7 +17,7 @@
 
 namespace OHOS {
 static constexpr int16_t RANGE = 1000;
-REGIST_TRANSITION(TransitionType::TRANSITION_ZOOM, ZoomTransition, 200, true, true);
+REGIST_TRANSITION(TransitionType::TRANSITION_ZOOM, ZoomTransition, 80, true, true);
 
 void ZoomTransition::OnTransitionStart(UIImageView* current, UIImageView* target)
 {