录音视图优化
authorluozheng <1732036298@qq.com>
Thu, 13 Jun 2024 06:57:24 +0000 (14:57 +0800)
committerluozheng <1732036298@qq.com>
Thu, 13 Jun 2024 06:57:24 +0000 (14:57 +0800)
14 files changed:
code/sdk/application/wearable/fd230app/nativeui/record/include/RecordDeleteView.h
code/sdk/application/wearable/fd230app/nativeui/record/include/RecordGoingView.h
code/sdk/application/wearable/fd230app/nativeui/record/include/RecordListView.h
code/sdk/application/wearable/fd230app/nativeui/record/include/RecordingPresenter.h
code/sdk/application/wearable/fd230app/nativeui/record/include/RecordingView.h
code/sdk/application/wearable/fd230app/nativeui/record/include/RecordingVolumeSettingView.h
code/sdk/application/wearable/fd230app/nativeui/record/src/RecordDeleteView.cpp
code/sdk/application/wearable/fd230app/nativeui/record/src/RecordGoingView.cpp
code/sdk/application/wearable/fd230app/nativeui/record/src/RecordListView.cpp
code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingListitemView.cpp
code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingPlayerView.cpp
code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingView.cpp
code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingVolumeSettingView.cpp

index 92fc218..9bbbf26 100644 (file)
@@ -1,3 +1,11 @@
+/*\r
+ * @Author: luozheng 1732036298@qq.com\r
+ * @Date: 2024-03-30 09:14:38\r
+ * @LastEditors: luozheng 1732036298@qq.com\r
+ * @LastEditTime: 2024-06-13 10:44:21\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordDeleteView.h\r
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE\r
+ */\r
 #ifndef RECORD_DELETE_VIEW_H\r
 #define RECORD_DELETE_VIEW_H\r
 \r
@@ -8,7 +16,7 @@
 #include "components/ui_image_view.h"\r
 #include "components/ui_button.h"\r
 #include "components/ui_label_ext.h"\r
-#include"language/font/ui_resource_string.h"\r
+#include "language/font/ui_resource_string.h"\r
 namespace OHOS\r
 {\r
 \r
@@ -25,6 +33,7 @@ namespace OHOS
             int16_t fontSize;      // 字体大小\r
             int16_t lineHeigh;     // 行高\r
             const char *text;      // 文本\r
+            int16_t textId;        // 文本Id\r
             uint8_t lineBreakMode; // 断行模式。\r
         };\r
         RecordDeleteView();\r
@@ -34,16 +43,17 @@ namespace OHOS
         void ClearAll(void);\r
 \r
     private:\r
-        bool SetUpScrollView(void);\r
-        UILabelExt *SetUpLabel(LabelConfig &labelconfig); // 设置标签\r
-        bool SetRecordDeleteViewLabel(void);\r
-        bool SetUpButton(void);\r
+        UILabelExt *CreateRecordDeleteLabel(LabelConfig &labelconfig); // 设置标签\r
+        bool RecordDeleteScrollViewInit(void);\r
+        bool RecordDeleteLabelViewInit(void);\r
+        bool RecordDeleteButtonViewInit(void);\r
+\r
         UIScrollView *RecordDeleteViewScrollView{nullptr};\r
         UILabelExt *TitleLabel{nullptr};\r
-        UILabelExt *AttentionLabel[2]{nullptr};\r
+        UILabelExt *AttentionLabel{nullptr};\r
+        UILabelExt *DeleteNameLabel{nullptr};\r
         UIButton *RECORD_DELETE_ON_BUTTON{nullptr};  // 是否删除录音:是\r
         UIButton *RECORD_DELETE_OFF_BUTTON{nullptr}; // 是否删除录音:否\r
-        bool initViewStatus{false};\r
     };\r
 } // namespace OHOS\r
 #endif
\ No newline at end of file
index f8dfc48..362811a 100644 (file)
@@ -1,3 +1,10 @@
+/*\r
+ * @Author: luozheng 1732036298@qq.com\r
+ * @Date: 2024-03-30 09:14:38\r
+ * @LastEditors: luozheng 1732036298@qq.com\r
+ * @LastEditTime: 2024-06-13 14:32:55\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordGoingView.h\r
+ */\r
 #ifndef RECORD_GOING_VIEW_H\r
 #define RECORD_GOING_VIEW_H\r
 \r
@@ -12,7 +19,6 @@
 namespace OHOS\r
 {\r
 \r
-    \r
     class RecordGoingView\r
     {\r
     public:\r
@@ -25,6 +31,7 @@ namespace OHOS
             int16_t fontSize;      // 字体大小\r
             int16_t lineHeigh;     // 行高\r
             const char *text;      // 文本\r
+            int16_t textId;        // 文本Id\r
             uint8_t lineBreakMode; // 断行模式。\r
         };\r
         RecordGoingView();\r
@@ -33,21 +40,22 @@ namespace OHOS
         UIScrollView *RecordGoingViewInit(void);\r
         void ClearAll(void);\r
         UILabel *GetRecordingDurationLabel(void);\r
+\r
     private:\r
-        bool SetUpScrollView(void);\r
-        UILabel *SetUpLabel(LabelConfig &labelconfig); // 设置标签\r
-        bool SetRecordGoingViewLabel(void);\r
-        bool SetUpImageView(void);\r
-        bool SetUpButton(void);\r
+        UILabel *CreateRecordGoingLabel(LabelConfig &labelconfig);       // 设置标签\r
+        UILabelExt *CreateRecordGoingLabelExt(LabelConfig &labelconfig); // 设置标签\r
+        bool RecordGoingScrollViewInit(void);\r
+        bool RecordGoingLabelViewInit(void);\r
+        bool RecordGoingImageViewInit(void);\r
+        bool RecordGoingButtonViewInit(void);\r
+        void AddViewsToScrollView(UIScrollView *scrollView, UIView *views[], int numViews);\r
+        void AddViewsToRecordGoingViewScrollView();\r
         UIScrollView *RecordGoingViewScrollView{nullptr};\r
-        UILabel *TitleLabel{nullptr};       // 标题\r
-        UILabel *RecordGoingLabel{nullptr}; // “录音中”\r
-        UILabel *Timer{nullptr};            // 显示录音时长\r
+        UILabelExt *TitleLabel{nullptr};       // 标题\r
+        UILabelExt *RecordGoingLabel{nullptr}; // “录音中”\r
+        UILabel *Timer{nullptr};               // 显示录音时长\r
         UIImageView *RECORD_GOING_IMAGE{nullptr};\r
         UIButton *RECORD_GOING_BUTTON{nullptr};\r
-\r
-\r
-        bool initViewStatus{false};\r
     };\r
 } // namespace OHOS\r
 #endif
\ No newline at end of file
index 2e5e856..76a1953 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-03-30 09:14:38\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-06-12 17:54:46\r
+ * @LastEditTime: 2024-06-13 10:00:02\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordListView.h\r
  */\r
 #ifndef RECORD_LIST_VIEW_H\r
@@ -42,17 +42,19 @@ namespace OHOS
         virtual ~RecordListView();\r
         static RecordListView *GetInstance(void);\r
         UIScrollView *RecordListViewInit(void);\r
-        void ClearAll(void);\r
-        void IsVisibleLabel(bool value);\r
         void RefreshRecordingListData(void);\r
 \r
     private:\r
-        bool SetUpScrollView(void);\r
-        UILabelExt *SetUpLabel(LabelConfig &labelconfig); // 设置标签\r
-        bool SetUpRecordListViewLabel(void);\r
-        bool SetUpRecordingList(void);\r
+        UILabelExt *CreateRecordListLabel(LabelConfig &labelconfig); // 设置标签\r
+        bool RecordListScrollViewInit(void);\r
+        bool RecordListLabelViewInit(void);\r
+        bool RecordListListViewInit(void);\r
         void AddRecordingToList(const RecordingListItem &item);\r
         void InitRecordingInfo(void);\r
+        void UpdateVisibilityBasedOnRecordingList();\r
+        void ClearAll(void);\r
+        void IsVisibleLabel(bool value);\r
+\r
         UIScrollView *RecordListScrollView{nullptr};\r
         UILabelExt *RecordListViewTitleLabel{nullptr};         // "录音列表"\r
         UILabelExt *RecordListViewAttentionLabel{nullptr};     //"当前录音列表为空"\r
index f934f4a..67437aa 100644 (file)
@@ -2,13 +2,14 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-02-27 09:16:51\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-06-12 16:19:16\r
+ * @LastEditTime: 2024-06-13 11:23:15\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordingPresenter.h\r
  */\r
 \r
 #ifndef RECORD_PRESENTER_H\r
 #define RECORD_PRESENTER_H\r
 \r
+#include "BaseView.h"\r
 #include "Presenter.h"\r
 #include "RecordingView.h"\r
 #include "KeyInputListener.h"\r
 #include <media_thread_adapt.h>\r
 namespace OHOS\r
 {\r
-    typedef enum\r
-    {\r
-        RECORDINGVIEW = 0,          // 录音视图(slice)\r
-        RECORDINGLISTVIEW,          // 录音列表视图(subView)\r
-        RECORDGOINGVIEW,            // 正在录音视图(subView)\r
-        RECORDINGPLAYERVIEW,        // 录音播放视图(subView)\r
-        RECORDINGDELETEVIEW,        // 录音删除视图(subView)\r
-        RECORDINGVOLUMESETTINGVIEW, // 声音设置视图(subView)\r
-        MAX_RECORDINGVIEWID,\r
-    } RECORDINGVIEWID;\r
-\r
     /*正在录音视图*/\r
     static const char *RECORD_GOING_BUTTON_VIEWID = "RECORD_GOING_BUTTON"; // 停止录音按钮id\r
 \r
@@ -120,15 +110,6 @@ namespace OHOS
         bool X_DRAG_FLAG{false};\r
     };\r
 \r
-    class RecordingVolumeSettingViewDragLister : public UIView::OnDragListener\r
-    {\r
-    public:\r
-        RecordingVolumeSettingViewDragLister() {}\r
-        ~RecordingVolumeSettingViewDragLister(){}\r
-        bool OnDrag(UIView &view, const DragEvent &event) override;\r
-        bool OnDragEnd(UIView &view, const DragEvent &event) override;\r
-    };\r
-\r
     class RecordingModel;\r
     class RecordingView;\r
     class RecordingPresenter : public Presenter<RecordingView>,\r
index bddefe9..4fed53c 100644 (file)
@@ -1,3 +1,10 @@
+/*\r
+ * @Author: luozheng 1732036298@qq.com\r
+ * @Date: 2024-03-30 09:14:38\r
+ * @LastEditors: luozheng 1732036298@qq.com\r
+ * @LastEditTime: 2024-06-13 11:06:56\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordingView.h\r
+ */\r
 #ifndef RECORD_VIEW_H\r
 #define RECORD_VIEW_H\r
 \r
 #include "record/include/RecordDeleteView.h"\r
 #include "record/include/RecordingVolumeSettingView.h"\r
 \r
-#define NUM_MAX_RECORDINGVIEWSCROLLVIEW 10\r
 namespace OHOS\r
 {\r
+    typedef enum\r
+    {\r
+        RECORDINGVIEW = 0,          // 录音视图(slice)\r
+        RECORDINGLISTVIEW,          // 录音列表视图(subView)\r
+        RECORDGOINGVIEW,            // 正在录音视图(subView)\r
+        RECORDINGPLAYERVIEW,        // 录音播放视图(subView)\r
+        RECORDINGDELETEVIEW,        // 录音删除视图(subView)\r
+        RECORDINGVOLUMESETTINGVIEW, // 声音设置视图(subView)\r
+        MAX_RECORDINGVIEWID,\r
+    } RECORDINGVIEWID;\r
+\r
     class RecordingPresenter;\r
     class RecordingView : public View<RecordingPresenter>\r
     {\r
@@ -47,7 +64,7 @@ namespace OHOS
         bool ChangeRecordVolumeSettingView(int16_t thisView); // 切换到“声音设置”视图\r
         bool ClickFunc(int16_t interface);\r
         void ChangeView(int16_t hideView, int16_t showView);\r
-        UIScrollView *GetRecordingViewScrollView(int i);\r
+        int GetCurrentViewType(UIScrollView * view);\r
 \r
     public:\r
         void OnStart() override;\r
@@ -63,12 +80,16 @@ namespace OHOS
         RecordingVolumeSettingView *p_RecordingVolumeSettingView{nullptr};\r
 \r
     private:\r
+        bool RecordingScrollViewInit(void);\r
+        bool RecordingLabelViewInit(void);\r
+        bool RecordingButtonViewInit(void);\r
+        bool RecordingImageViewInit(void);\r
+        bool RecordingImageAnimatorViewInit(void);\r
+\r
         void RecordingViewInit(void);\r
         void ClearAll(void);\r
-        bool SetUpScrollView(void);\r
-        bool SetTheTitle(void);\r
         UIButton *SetTheButton(ButtonConfig &buttonconfig, UIView::OnClickListener *clickListener);\r
-        UIScrollView *RecordingViewScrollView[NUM_MAX_RECORDINGVIEWSCROLLVIEW]{nullptr};\r
+        UIScrollView *RecordingViewScrollView[MAX_RECORDINGVIEWID]{nullptr};\r
         UILabelExt *RecordingViewTitleLabel{nullptr};\r
         UIButton *RecordingViewButton{nullptr};\r
         UILabelExt *AttentionLabel{nullptr};\r
index e35bd16..a4aaf68 100644 (file)
@@ -1,3 +1,10 @@
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-03-13 17:34:03
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-06-13 11:21:14
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordingVolumeSettingView.h
+ */
 #ifndef RECORDING_VOLUME_SETTING_VIEW_H
 #define RECORDING_VOLUME_SETTING_VIEW_H
 
@@ -16,7 +23,6 @@ namespace OHOS
     private:
         SoundAndVibrationVolumeSettingView *p_SoundAndVibrationVolumeSettingView{nullptr};
         UIScrollView *RecordingVolumeSettingViewScrollView{nullptr};
-        UIView::OnDragListener *volumeDragListener{nullptr};
         bool initViewStatus{false};
     };
 
index ba4bacf..e5f276c 100644 (file)
@@ -1,7 +1,7 @@
 #include "record/include/RecordDeleteView.h"\r
 #include "record/include/RecordingPresenter.h"\r
 #include "wearable_log.h"\r
-\r
+#include "language/font/ui_resource_string.h"\r
 namespace OHOS\r
 {\r
     static RecordDeleteView *g_pRecordDeleteView{nullptr};\r
@@ -26,18 +26,19 @@ namespace OHOS
 \r
     void RecordDeleteView::ClearAll()\r
     {\r
-        if (initViewStatus == true)\r
+        if (RecordDeleteViewScrollView != nullptr)\r
         {\r
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordDeleteView::ClearAll");\r
             RecordDeleteViewScrollView->RemoveAll();\r
 \r
             delete TitleLabel;\r
             TitleLabel = nullptr;\r
 \r
-            for (int i = 0; i < 2; i++)\r
-            {\r
-                delete AttentionLabel[i];\r
-                AttentionLabel[i] = nullptr;\r
-            }\r
+            delete AttentionLabel;\r
+            AttentionLabel = nullptr;\r
+\r
+            delete DeleteNameLabel;\r
+            DeleteNameLabel = nullptr;\r
 \r
             delete RECORD_DELETE_ON_BUTTON;\r
             RECORD_DELETE_ON_BUTTON = nullptr;\r
@@ -50,21 +51,7 @@ namespace OHOS
         }\r
     }\r
 \r
-    bool RecordDeleteView::SetUpScrollView(void)\r
-    {\r
-        RecordDeleteViewScrollView = new UIScrollView();\r
-        if (RecordDeleteViewScrollView == nullptr)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordDeleteView::RecordDeleteViewScrollView new fail!");\r
-            return false;\r
-        }\r
-        RecordDeleteViewScrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
-        RecordDeleteViewScrollView->SetTouchable(true);\r
-        RecordDeleteViewScrollView->SetDraggable(true);\r
-        return true;\r
-    }\r
-\r
-    UILabelExt *RecordDeleteView::SetUpLabel(LabelConfig &labelconfig) // 设置标签\r
+    UILabelExt *RecordDeleteView::CreateRecordDeleteLabel(LabelConfig &labelconfig) // 设置标签\r
     {\r
         UILabelExt *label = new UILabelExt();\r
         if (label == nullptr)\r
@@ -74,74 +61,101 @@ namespace OHOS
         label->SetPosition(labelconfig.left, labelconfig.top, labelconfig.width, labelconfig.height); // 位置大小\r
         label->SetStyle(STYLE_TEXT_FONT, labelconfig.fontSize);                                       // 字体大小\r
         label->SetStyle(STYLE_LINE_HEIGHT, labelconfig.lineHeigh);                                    // 字体行高\r
-        label->SetText(labelconfig.text);                                                             // 内容\r
-        label->SetLineBreakMode(labelconfig.lineBreakMode);                                           // 断行模式。\r
+        // label->SetText(labelconfig.text);                                                             // 内容\r
+        label->SetTextId(labelconfig.textId);               // 内容\r
+        label->SetLineBreakMode(labelconfig.lineBreakMode); // 断行模式。\r
         label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
         label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, labelconfig.fontSize);\r
+\r
         return label;\r
     }\r
 \r
-    bool RecordDeleteView::SetRecordDeleteViewLabel(void)\r
+    bool RecordDeleteView::RecordDeleteScrollViewInit(void)\r
     {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordDeleteView::RecordDeleteScrollViewInit");\r
+        RecordDeleteViewScrollView = new UIScrollView();\r
+        if (RecordDeleteViewScrollView == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordDeleteView::RecordDeleteViewScrollView new fail!");\r
+            return false;\r
+        }\r
+        RecordDeleteViewScrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
+        UIView::OnDragListener *dragListener = static_cast<UIView::OnDragListener *>(RecordingPresenter::GetInstance());\r
+        if (dragListener == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dragListener is nullptr!!");\r
+            return false;\r
+        }\r
+        RecordDeleteViewScrollView->SetOnDragListener(dragListener);\r
+        RecordDeleteViewScrollView->SetTouchable(true);\r
+        RecordDeleteViewScrollView->SetDraggable(true);\r
+        return true;\r
+    }\r
+\r
+    bool RecordDeleteView::RecordDeleteLabelViewInit(void)\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordDeleteView::RecordDeleteLabelViewInit");\r
         LabelConfig labelconfig = {\r
-            .left = 173,\r
+            .left = 83,\r
             .top = 52,\r
-            .width = 200,\r
-            .height = 40,\r
+            .width = 300,\r
+            .height = 35,\r
             .fontSize = 30,\r
             .lineHeigh = 35,\r
-            .text = "删除录音",\r
-            .lineBreakMode = UILabel::LINE_BREAK_ADAPT,\r
+            //.text = "删除录音",\r
+            .textId = STR_DELETE_RECORDING,\r
+            .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
         };\r
-        TitleLabel = SetUpLabel(labelconfig);\r
+        TitleLabel = CreateRecordDeleteLabel(labelconfig);\r
         if (nullptr == TitleLabel)\r
         {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordDeleteView::TitleLabel is nullptr!");\r
             return false;\r
         }\r
-\r
+        RecordDeleteViewScrollView->Add(TitleLabel);\r
+        /* -------------------------------------------------------------------------- */\r
         labelconfig = {\r
-            .left = 33,\r
-            .top = 145,\r
-            .width = 400,\r
-            .height = 124,\r
+            .left = 53,\r
+            .top = 160,\r
+            .width = 360,\r
+            .height = 35,\r
             .fontSize = 30,\r
             .lineHeigh = 35,\r
-            .text = "此操作将               该录音\n\n是否确认?",\r
-            .lineBreakMode = UILabel::LINE_BREAK_ELLIPSIS,\r
+            //.text = "是否永久删除",\r
+            .textId = STR_DELETE_PERMANENTLY,\r
+            .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
         };\r
-\r
-        AttentionLabel[0] = SetUpLabel(labelconfig);\r
-        if (nullptr == AttentionLabel[0])\r
+        AttentionLabel = CreateRecordDeleteLabel(labelconfig);\r
+        if (nullptr == AttentionLabel)\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordDeleteView::AttentionLabel[0] is nullptr!");\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordDeleteView::AttentionLabel is nullptr!");\r
             return false;\r
         }\r
-\r
-        labelconfig = {\r
-            .left = 188,\r
-            .top = 154,\r
-            .width = 200,\r
-            .height = 40,\r
-            .fontSize = 30,\r
-            .lineHeigh = 35,\r
-            .text = "永久删除",\r
-            .lineBreakMode = UILabel::LINE_BREAK_ADAPT,\r
-        };\r
-        AttentionLabel[1] = SetUpLabel(labelconfig);\r
-        AttentionLabel[1]->SetTextColor(Color::GetColorFromRGBA(0xff, 0x5a, 0x36, 0xff));\r
-        if (nullptr == AttentionLabel[1])\r
+        AttentionLabel->SetTextColor(Color::GetColorFromRGBA(0xff, 0x5a, 0x36, 0xff));\r
+        RecordDeleteViewScrollView->Add(AttentionLabel);\r
+        /* -------------------------------------------------------------------------- */\r
+        labelconfig.top = 215;\r
+        labelconfig.textId = STR_AUDIO_XX;\r
+        DeleteNameLabel = CreateRecordDeleteLabel(labelconfig);\r
+        if (nullptr == DeleteNameLabel)\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordDeleteView::AttentionLabel[1] is nullptr!");\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordDeleteView::DeleteNameLabel is nullptr!");\r
             return false;\r
         }\r
+        RecordDeleteViewScrollView->Add(DeleteNameLabel);\r
 \r
         return true;\r
     }\r
 \r
-    bool RecordDeleteView::SetUpButton(void)\r
+    bool RecordDeleteView::RecordDeleteButtonViewInit(void)\r
     {\r
-        UIView::OnClickListener *clickLister = static_cast<UIView::OnClickListener *>(RecordingPresenter::GetInstance());\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordDeleteView::RecordDeleteButtonViewInit");\r
+        UIView::OnClickListener *clickListener = static_cast<UIView::OnClickListener *>(RecordingPresenter::GetInstance());\r
+        if (clickListener == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "clickListener is nullptr!!");\r
+            return false;\r
+        }\r
         RECORD_DELETE_OFF_BUTTON = new UIButton();\r
         if (RECORD_DELETE_OFF_BUTTON == nullptr)\r
         {\r
@@ -151,9 +165,11 @@ namespace OHOS
         RECORD_DELETE_OFF_BUTTON->SetPosition(111, 299, 100, 100);\r
         RECORD_DELETE_OFF_BUTTON->SetViewId(RECORD_DELETE_OFF_BUTTON_VIEWID);\r
         RECORD_DELETE_OFF_BUTTON->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
+        RECORD_DELETE_OFF_BUTTON->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff000000, UIButton::PRESSED);\r
         RECORD_DELETE_OFF_BUTTON->SetImageSrc("/user/res/SYSTEM_CheckOff.bin", "/user/res/SYSTEM_CheckOff.bin");\r
-        RECORD_DELETE_OFF_BUTTON->SetOnClickListener(clickLister);\r
-\r
+        RECORD_DELETE_OFF_BUTTON->SetOnClickListener(clickListener);\r
+        RecordDeleteViewScrollView->Add(RECORD_DELETE_OFF_BUTTON);\r
+        /* -------------------------------------------------------------------------- */\r
         RECORD_DELETE_ON_BUTTON = new UIButton();\r
         if (RECORD_DELETE_ON_BUTTON == nullptr)\r
         {\r
@@ -163,35 +179,22 @@ namespace OHOS
         RECORD_DELETE_ON_BUTTON->SetPosition(256, 299, 100, 100);\r
         RECORD_DELETE_ON_BUTTON->SetViewId(RECORD_DELETE_ON_BUTTON_VIEWID);\r
         RECORD_DELETE_ON_BUTTON->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
+        RECORD_DELETE_ON_BUTTON->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff000000, UIButton::PRESSED);\r
         RECORD_DELETE_ON_BUTTON->SetImageSrc("/user/res/SYSTEM_CheckOn.bin", "/user/res/SYSTEM_CheckOn.bin");\r
-        RECORD_DELETE_ON_BUTTON->SetOnClickListener(clickLister);\r
-\r
+        RECORD_DELETE_ON_BUTTON->SetOnClickListener(clickListener);\r
+        RecordDeleteViewScrollView->Add(RECORD_DELETE_ON_BUTTON);\r
         return true;\r
     }\r
 \r
     UIScrollView *RecordDeleteView::RecordDeleteViewInit(void)\r
     {\r
-        if (!SetUpScrollView())\r
-        {\r
-            return nullptr;\r
-        }\r
-\r
-        if (!SetRecordDeleteViewLabel())\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordDeleteViewInit");\r
+        if (!RecordDeleteScrollViewInit() || !RecordDeleteLabelViewInit() || !RecordDeleteButtonViewInit())\r
         {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordDeleteViewInit fail!!");\r
             return nullptr;\r
         }\r
 \r
-        if (!SetUpButton())\r
-        {\r
-            return nullptr;\r
-        }\r
-        /* ----------------------------------- Add ---------------------------------- */\r
-        RecordDeleteViewScrollView->Add(TitleLabel);\r
-        RecordDeleteViewScrollView->Add(AttentionLabel[0]);\r
-        RecordDeleteViewScrollView->Add(AttentionLabel[1]);\r
-        RecordDeleteViewScrollView->Add(RECORD_DELETE_ON_BUTTON);\r
-        RecordDeleteViewScrollView->Add(RECORD_DELETE_OFF_BUTTON);\r
-        initViewStatus = true;\r
         return RecordDeleteViewScrollView;\r
     }\r
 \r
index 23de4b7..739b811 100644 (file)
@@ -9,13 +9,13 @@ namespace OHOS
 \r
     RecordGoingView::RecordGoingView()\r
     {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordGoingView::RecordGoingView");\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordGoingView::RecordGoingView");\r
         g_pRecordGoingView = this;\r
     }\r
 \r
     RecordGoingView::~RecordGoingView()\r
     {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordGoingView::~RecordGoingView");\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordGoingView::~RecordGoingView");\r
         ClearAll();\r
         g_pRecordGoingView = nullptr;\r
     }\r
@@ -27,7 +27,7 @@ namespace OHOS
 \r
     void RecordGoingView::ClearAll()\r
     {\r
-        if (initViewStatus == true)\r
+        if (RecordGoingViewScrollView != nullptr)\r
         {\r
             RecordGoingViewScrollView->RemoveAll();\r
 \r
@@ -51,27 +51,39 @@ namespace OHOS
         }\r
     }\r
 \r
-    bool RecordGoingView::SetUpScrollView(void)\r
+    UILabel *RecordGoingView::GetRecordingDurationLabel(void)\r
     {\r
-        RecordGoingViewScrollView = new UIScrollView();\r
-        if (RecordGoingViewScrollView == nullptr)\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordGoingView::GetRecordingDurationLabel");\r
+        if (Timer == nullptr)\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordGoingView::RecordGoingViewScrollView new fail!");\r
-            return false;\r
+            return nullptr;\r
         }\r
-        UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(RecordingPresenter::GetInstance());\r
-        if (draglistener == nullptr)\r
+        return Timer;\r
+    }\r
+\r
+    void RecordGoingView::AddViewsToScrollView(UIScrollView *scrollView, UIView *views[], int numViews)\r
+    {\r
+        for (int i = 0; i < numViews; ++i)\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordGoingView::draglistener can not be nullptr!");\r
-            return false;\r
+            scrollView->Add(views[i]);\r
         }\r
-        RecordGoingViewScrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
-        RecordGoingViewScrollView->SetTouchable(true);\r
-        RecordGoingViewScrollView->SetDraggable(true);\r
-        return true;\r
     }\r
 \r
-    UILabel *RecordGoingView::SetUpLabel(LabelConfig &labelconfig) // 设置标签\r
+    void RecordGoingView::AddViewsToRecordGoingViewScrollView()\r
+    {\r
+        UIView *viewsToAdd[] = {\r
+            TitleLabel,\r
+            RECORD_GOING_IMAGE,\r
+            RECORD_GOING_BUTTON,\r
+            Timer,\r
+            RecordGoingLabel,\r
+        };\r
+\r
+        int numViews = sizeof(viewsToAdd) / sizeof(viewsToAdd[0]);\r
+        AddViewsToScrollView(RecordGoingViewScrollView, viewsToAdd, numViews);\r
+    }\r
+\r
+    UILabel *RecordGoingView::CreateRecordGoingLabel(LabelConfig &labelconfig)\r
     {\r
         UILabel *label = new UILabel();\r
         if (label == nullptr)\r
@@ -88,28 +100,78 @@ namespace OHOS
         return label;\r
     }\r
 \r
-    bool RecordGoingView::SetRecordGoingViewLabel(void)\r
+    UILabelExt *RecordGoingView::CreateRecordGoingLabelExt(LabelConfig &labelconfig)\r
+    {\r
+        UILabelExt *label = new UILabelExt();\r
+        if (label == nullptr)\r
+        {\r
+            return nullptr;\r
+        }\r
+        label->SetPosition(labelconfig.left, labelconfig.top, labelconfig.width, labelconfig.height); // 位置大小\r
+        label->SetStyle(STYLE_TEXT_FONT, labelconfig.fontSize);                                       // 字体大小\r
+        label->SetStyle(STYLE_LINE_HEIGHT, labelconfig.lineHeigh);                                    // 字体行高\r
+        label->SetTextId(labelconfig.textId);                                                         // 内容\r
+        label->SetLineBreakMode(labelconfig.lineBreakMode);                                           // 断行模式。\r
+        label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+        label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, labelconfig.fontSize);\r
+        return label;\r
+    }\r
+\r
+    bool RecordGoingView::RecordGoingScrollViewInit(void)\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordGoingView::RecordGoingScrollViewInit");\r
+        RecordGoingViewScrollView = new UIScrollView();\r
+        if (RecordGoingViewScrollView == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordGoingView::RecordGoingViewScrollView new fail!");\r
+            return false;\r
+        }\r
+        UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(RecordingPresenter::GetInstance());\r
+        if (draglistener == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordGoingView::draglistener can not be nullptr!");\r
+            return false;\r
+        }\r
+        RecordGoingViewScrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
+        RecordGoingViewScrollView->SetTouchable(true);\r
+        RecordGoingViewScrollView->SetDraggable(true);\r
+        return true;\r
+    }\r
+\r
+    bool RecordGoingView::RecordGoingLabelViewInit(void)\r
     {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordGoingView::RecordGoingLabelViewInit");\r
         LabelConfig labelconfig = {\r
-            .left = 188,\r
+            .left = 83,\r
             .top = 52,\r
-            .width = 90,\r
+            .width = 300,\r
             .height = 35,\r
             .fontSize = 30,\r
             .lineHeigh = 35,\r
-            .text = "录音机",\r
-            .lineBreakMode = UILabel::LINE_BREAK_ADAPT,\r
+            //.text = "录音机",\r
+            .textId = STR_RECORDER,\r
+            .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
         };\r
 \r
-        TitleLabel = SetUpLabel(labelconfig);\r
+        TitleLabel = CreateRecordGoingLabelExt(labelconfig);\r
         if (nullptr == TitleLabel)\r
         {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordGoingView::TitleLabel is nullptr!");\r
             return false;\r
         }\r
-        labelconfig.top = 370;\r
-        labelconfig.text = "录音中";\r
-        RecordGoingLabel = SetUpLabel(labelconfig);\r
+        /* -------------------------------------------------------------------------- */\r
+        labelconfig = {\r
+            .left = 83,\r
+            .top = 380,\r
+            .width = 300,\r
+            .height = 35,\r
+            .fontSize = 30,\r
+            .lineHeigh = 35,\r
+            //.text = "录音机",\r
+            .textId = STR_RECORDING,\r
+            .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
+        };\r
+        RecordGoingLabel = CreateRecordGoingLabelExt(labelconfig);\r
         if (nullptr == RecordGoingLabel)\r
         {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordGoingView::RecordGoingLabel is nullptr!");\r
@@ -118,15 +180,15 @@ namespace OHOS
 \r
         labelconfig = {\r
             .left = 83,\r
-            .top = 290,\r
+            .top = 300,\r
             .width = 300,\r
             .height = 77,\r
             .fontSize = 65,\r
             .lineHeigh = 76,\r
             .text = "00:00:00",\r
-            .lineBreakMode = UILabel::LINE_BREAK_WRAP,\r
+            .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
         };\r
-        Timer = SetUpLabel(labelconfig);\r
+        Timer = CreateRecordGoingLabel(labelconfig);\r
         if (nullptr == Timer)\r
         {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordGoingView::Timer is nullptr!");\r
@@ -136,11 +198,14 @@ namespace OHOS
         return true;\r
     }\r
 \r
-    bool RecordGoingView::SetUpImageView(void)\r
+    bool RecordGoingView::RecordGoingImageViewInit(void)\r
     {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordGoingView::RecordGoingImageViewInit");\r
         RECORD_GOING_IMAGE = new UIImageView();\r
         if (RECORD_GOING_IMAGE == nullptr)\r
         {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordGoingView::RECORD_GOING_IMAGE is nullptr!");\r
+            return false;\r
         }\r
         RECORD_GOING_IMAGE->SetPosition(158, 129, 150, 150);\r
         RECORD_GOING_IMAGE->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
@@ -150,65 +215,44 @@ namespace OHOS
         return true;\r
     }\r
 \r
-    bool RecordGoingView::SetUpButton(void)\r
+    bool RecordGoingView::RecordGoingButtonViewInit(void)\r
     {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordGoingView::RecordGoingButtonViewInit");\r
         RECORD_GOING_BUTTON = new UIButton();\r
         if (RECORD_GOING_BUTTON == nullptr)\r
         {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordGoingView::RECORD_GOING_BUTTON new fail!");\r
+            return false;\r
         }\r
         RECORD_GOING_BUTTON->SetPosition(210, 180, 60, 60);\r
         RECORD_GOING_BUTTON->SetViewId(RECORD_GOING_BUTTON_VIEWID);\r
         RECORD_GOING_BUTTON->SetStyle(STYLE_BACKGROUND_COLOR, 0xffff5a36);\r
         RECORD_GOING_BUTTON->SetStyle(STYLE_BORDER_RADIUS, 20);\r
-\r
         RECORD_GOING_BUTTON->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);\r
         RECORD_GOING_BUTTON->SetStyleForState(STYLE_BORDER_RADIUS, 20, UIButton::PRESSED);\r
-\r
         UIView::OnClickListener *clickListener = static_cast<UIView::OnClickListener *>(RecordingPresenter::GetInstance());\r
         RECORD_GOING_BUTTON->SetOnClickListener(clickListener);\r
-        return true;\r
-    }\r
 \r
-    UILabel *RecordGoingView::GetRecordingDurationLabel(void)\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordGoingView::GetRecordingDurationLabel");\r
-        if(Timer == nullptr)\r
-        {\r
-            return nullptr;\r
-        }\r
-        return Timer;\r
+        return true;\r
     }\r
 \r
     UIScrollView *RecordGoingView::RecordGoingViewInit()\r
     {\r
-        if (!SetUpScrollView())\r
-        {\r
-            return nullptr;\r
-        }\r
-\r
-        if (!SetRecordGoingViewLabel())\r
-        {\r
-            return nullptr;\r
-        }\r
-\r
-        if (!SetUpImageView())\r
-        {\r
-            return nullptr;\r
-        }\r
-\r
-        if (!SetUpButton())\r
+        if (!RecordGoingScrollViewInit() || !RecordGoingLabelViewInit() ||\r
+            !RecordGoingImageViewInit() || !RecordGoingButtonViewInit())\r
         {\r
             return nullptr;\r
         }\r
 \r
-        /* ----------------------------------- Add ---------------------------------- */\r
+#if 1\r
+        AddViewsToRecordGoingViewScrollView();\r
+#else\r
         RecordGoingViewScrollView->Add(TitleLabel);\r
         RecordGoingViewScrollView->Add(RECORD_GOING_IMAGE);\r
         RecordGoingViewScrollView->Add(RECORD_GOING_BUTTON);\r
         RecordGoingViewScrollView->Add(Timer);\r
         RecordGoingViewScrollView->Add(RecordGoingLabel);\r
-        initViewStatus = true;\r
+#endif\r
         return RecordGoingViewScrollView;\r
     }\r
 \r
index e94cf3e..440e98a 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-02-27 09:16:52\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-06-12 18:10:55\r
+ * @LastEditTime: 2024-06-13 09:42:18\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordListView.cpp\r
  */\r
 \r
@@ -80,32 +80,72 @@ namespace OHOS
         }\r
     }\r
 \r
-    bool RecordListView::SetUpScrollView(void)\r
+    // 添加录音到list\r
+    void RecordListView::AddRecordingToList(const RecordingListItem &item)\r
     {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordListView::SetUpScrollView");\r
-        RecordListScrollView = new UIScrollView();\r
-        if (RecordListScrollView == nullptr)\r
+        p_RecordingListAdapter->AddListItem(item);\r
+    }\r
+\r
+    // 把录音信息数据拿到存储到list中\r
+    void RecordListView::InitRecordingInfo(void)\r
+    {\r
+        std::vector<OHOS::RecordingListItem> &item = RecordingModel::GetInstance()->GetRecordinglistItems();\r
+        for (int i = 0; i < RecordingModel::GetInstance()->GetRecordingListNum(); i++)\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordListScrollView new fail!");\r
-            return false;\r
+            AddRecordingToList(item[i]);\r
         }\r
-        RecordListScrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
-        UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(new RecordListViewListener());\r
-        if (draglistener == nullptr)\r
+    }\r
+\r
+    // 每次录音完将数据刷新显示到list\r
+    void RecordListView::RefreshRecordingListData(void)\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordListView::RefreshRecordingListData");\r
+        RecordingModel::GetInstance()->InitRecordingListItem();\r
+        p_RecordingListAdapter->ClearData();\r
+        InitRecordingInfo();\r
+        recordList->RefreshList();\r
+        if (RecordingModel::GetInstance()->GetRecordingListNum() == 0)\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "draglistener can not be nullptr!");\r
-            return false;\r
+            IsVisibleLabel(true);\r
         }\r
-        RecordListScrollView->SetViewId(RECORDLISTSCROLLVIEW);\r
-        RecordListScrollView->SetOnDragListener(draglistener);\r
-        RecordListScrollView->SetTouchable(true);\r
-        RecordListScrollView->SetDraggable(true);\r
+        else\r
+        {\r
+            IsVisibleLabel(false);\r
+        }\r
+        return;\r
+    }\r
 \r
-        return true;\r
+    // 设置提醒标签是否可见\r
+    void RecordListView::IsVisibleLabel(bool value)\r
+    {\r
+        if (value == true)\r
+        {\r
+            RecordListViewAttentionLabel->SetVisible(true);\r
+            recordList->SetVisible(false); // 列表设置不可见\r
+            RecordListScrollView->SetVerticalScrollState(false);\r
+        }\r
+        else\r
+        {\r
+            RecordListViewAttentionLabel->SetVisible(false);\r
+            recordList->SetVisible(true); // 列表设置可见\r
+            RecordListScrollView->SetVerticalScrollState(true);\r
+        }\r
+    }\r
+\r
+    //根据录音列表中录音的数量来更新某个标签或视图的可见性。\r
+    void RecordListView::UpdateVisibilityBasedOnRecordingList()\r
+    {\r
+        if (RecordingModel::GetInstance()->GetRecordingListNum() == 0)\r
+        {\r
+            IsVisibleLabel(true);\r
+        }\r
+        else\r
+        {\r
+            IsVisibleLabel(false);\r
+        }\r
     }\r
 \r
-    // 设置标签\r
-    UILabelExt *RecordListView::SetUpLabel(LabelConfig &labelconfig)\r
+    UILabelExt *RecordListView::CreateRecordListLabel(LabelConfig &labelconfig)\r
     {\r
         UILabelExt *label = new UILabelExt();\r
         if (label == nullptr)\r
@@ -123,8 +163,31 @@ namespace OHOS
         return label;\r
     }\r
 \r
-    // 设置录音视图的标签\r
-    bool RecordListView::SetUpRecordListViewLabel(void)\r
+    bool RecordListView::RecordListScrollViewInit(void)\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordListView::RecordListScrollViewInit");\r
+        RecordListScrollView = new UIScrollView();\r
+        if (RecordListScrollView == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordListScrollView new fail!");\r
+            return false;\r
+        }\r
+        RecordListScrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
+        UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(new RecordListViewListener());\r
+        if (draglistener == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "draglistener can not be nullptr!");\r
+            return false;\r
+        }\r
+        RecordListScrollView->SetViewId(RECORDLISTSCROLLVIEW);\r
+        RecordListScrollView->SetOnDragListener(draglistener);\r
+        RecordListScrollView->SetTouchable(true);\r
+        RecordListScrollView->SetDraggable(true);\r
+\r
+        return true;\r
+    }\r
+\r
+    bool RecordListView::RecordListLabelViewInit(void)\r
     {\r
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordListView::SetUpRecordListViewLabel");\r
         LabelConfig labelconfig = {\r
@@ -139,7 +202,7 @@ namespace OHOS
             .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
         };\r
 \r
-        RecordListViewTitleLabel = SetUpLabel(labelconfig);\r
+        RecordListViewTitleLabel = CreateRecordListLabel(labelconfig);\r
         if (nullptr == RecordListViewTitleLabel)\r
         {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordListViewTitleLabel is nullptr!");\r
@@ -157,7 +220,7 @@ namespace OHOS
             .textId = STR_CRLEMPTY,\r
             .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
         };\r
-        RecordListViewAttentionLabel = SetUpLabel(labelconfig);\r
+        RecordListViewAttentionLabel = CreateRecordListLabel(labelconfig);\r
         if (nullptr == RecordListViewAttentionLabel)\r
         {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordListViewAttentionLabel is nullptr!");\r
@@ -171,10 +234,9 @@ namespace OHOS
         return true;\r
     }\r
 \r
-    bool RecordListView::SetUpRecordingList(void)\r
+    bool RecordListView::RecordListListViewInit(void)\r
     {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordListView::SetUpRecordingList");\r
-        // UIList 的适配器\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordListView::RecordListViewInit");\r
         p_RecordingListAdapter = new RecordingListAdapter();\r
         clickListener = static_cast<UIView::OnClickListener *>(new RecordListViewListener());\r
         p_RecordingListAdapter->SetItemClickListener(clickListener);\r
@@ -200,77 +262,16 @@ namespace OHOS
         return true;\r
     }\r
 \r
-    /// @brief 添加录音到list\r
-    /// @param item\r
-    void RecordListView::AddRecordingToList(const RecordingListItem &item)\r
-    {\r
-        p_RecordingListAdapter->AddListItem(item);\r
-    }\r
-\r
-    // 把录音信息数据拿到存储到list中\r
-    void RecordListView::InitRecordingInfo(void)\r
-    {\r
-        std::vector<OHOS::RecordingListItem> &item = RecordingModel::GetInstance()->GetRecordinglistItems();\r
-        for (int i = 0; i < RecordingModel::GetInstance()->GetRecordingListNum(); i++)\r
-        {\r
-            AddRecordingToList(item[i]);\r
-        }\r
-    }\r
-\r
-    /*\r
-     * @brief 每次录音完将数据刷新显示到list\r
-     */\r
-    void RecordListView::RefreshRecordingListData(void)\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordListView::RefreshRecordingListData");\r
-        RecordingModel::GetInstance()->InitRecordingListItem();\r
-        p_RecordingListAdapter->ClearData();\r
-        InitRecordingInfo();\r
-        recordList->RefreshList();\r
-        if (RecordingModel::GetInstance()->GetRecordingListNum() == 0)\r
-        {\r
-            IsVisibleLabel(true);\r
-        }\r
-        else\r
-        {\r
-            IsVisibleLabel(false);\r
-        }\r
-        return;\r
-    }\r
-\r
-    // 设置提醒标签是否可见\r
-    void RecordListView::IsVisibleLabel(bool value)\r
-    {\r
-        if (value == true)\r
-        {\r
-            RecordListViewAttentionLabel->SetVisible(true);\r
-            recordList->SetVisible(false); // 列表设置不可见\r
-            RecordListScrollView->SetVerticalScrollState(false);\r
-        }\r
-        else\r
-        {\r
-            RecordListViewAttentionLabel->SetVisible(false);\r
-            recordList->SetVisible(true); // 列表设置可见\r
-            RecordListScrollView->SetVerticalScrollState(true);\r
-        }\r
-    }\r
-\r
     UIScrollView *RecordListView::RecordListViewInit()\r
     {\r
-        if (!SetUpScrollView())\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingView::RecordListViewInit");\r
+        // 如果其中任何一个初始化函数返回 false(即初始化失败),则会打印错误日志并返回空指针。\r
+        if (!RecordListScrollViewInit() || !RecordListLabelViewInit() || !RecordListListViewInit())\r
         {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordListViewInit fail!!");\r
             return nullptr;\r
         }\r
 \r
-        if (!SetUpRecordingList())\r
-        {\r
-            return nullptr;\r
-        }\r
-\r
-        if (!SetUpRecordListViewLabel())\r
-        {\r
-            return nullptr;\r
-        }\r
         if (RecordingModel::GetInstance()->GetRecordingListNum() == 0)\r
         {\r
             IsVisibleLabel(true);\r
index 2f2888c..bbe4373 100644 (file)
@@ -1,3 +1,10 @@
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-03-02 20:10:18
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-06-13 11:41:18
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingListitemView.cpp
+ */
 #include "record/include/RecordingListitemView.h"
 #include "wearable_log.h"
 
@@ -43,7 +50,7 @@ namespace OHOS
 
         m_button.SetPosition(0, 0, 380, 100);
         m_button.SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);
-        m_button.SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff4FC34C, UIButton::PRESSED);
+        m_button.SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff383838, UIButton::PRESSED);
 
         SetLabelStyle(m_recordId, 35, 33, 96, 35, textColor, 25);
         SetLabelStyle(m_recordTotalTime, 268, 19, 73, 35, textColor, 25);
index 06d87ff..964f1ee 100644 (file)
@@ -11,13 +11,13 @@ namespace OHOS
 \r
     RecordingPlayerView::RecordingPlayerView()\r
     {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingPlayerView::RecordingPlayerView");\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingPlayerView::RecordingPlayerView");\r
         g_pRecordPlayView = this;\r
     }\r
 \r
     RecordingPlayerView::~RecordingPlayerView()\r
     {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingPlayerView::~RecordingPlayerView");\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingPlayerView::~RecordingPlayerView");\r
         ClearAll();\r
         g_pRecordPlayView = nullptr;\r
     }\r
@@ -68,28 +68,6 @@ namespace OHOS
         }\r
     }\r
 \r
-    // 亮屏时长视图“scrollView”初始化\r
-    bool RecordingPlayerView::SetUpScrollView(void)\r
-    {\r
-        RecordingPlayerViewScrollView = new UIScrollView();\r
-        if (RecordingPlayerViewScrollView == nullptr)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::RecordingPlayerViewScrollView new fail!");\r
-            return false;\r
-        }\r
-        RecordingPlayerViewScrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
-        UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(RecordingPresenter::GetInstance());\r
-        if (draglistener == nullptr)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::draglistener can not be nullptr!");\r
-            return false;\r
-        }\r
-        RecordingPlayerViewScrollView->SetOnDragListener(draglistener);\r
-        RecordingPlayerViewScrollView->SetTouchable(true);\r
-        RecordingPlayerViewScrollView->SetDraggable(true);\r
-        return true;\r
-    }\r
-\r
     // 设置标签\r
     UILabelExt *RecordingPlayerView::SetUpLabel(LabelConfig &labelconfig)\r
     {\r
@@ -128,17 +106,39 @@ namespace OHOS
         return button;\r
     }\r
 \r
+    // 亮屏时长视图“scrollView”初始化\r
+    bool RecordingPlayerView::SetUpScrollView(void)\r
+    {\r
+        RecordingPlayerViewScrollView = new UIScrollView();\r
+        if (RecordingPlayerViewScrollView == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::RecordingPlayerViewScrollView new fail!");\r
+            return false;\r
+        }\r
+        RecordingPlayerViewScrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
+        UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(RecordingPresenter::GetInstance());\r
+        if (draglistener == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::draglistener can not be nullptr!");\r
+            return false;\r
+        }\r
+        RecordingPlayerViewScrollView->SetOnDragListener(draglistener);\r
+        RecordingPlayerViewScrollView->SetTouchable(true);\r
+        RecordingPlayerViewScrollView->SetDraggable(true);\r
+        return true;\r
+    }\r
+\r
     bool RecordingPlayerView::SetUpRecordingPlayerViewLabel(void)\r
     {\r
         LabelConfig labelconfig = {\r
             .left = 83,\r
             .top = 52,\r
             .width = 300,\r
-            .height = 40,\r
+            .height = 35,\r
             .fontSize = 30,\r
             .lineHeigh = 35,\r
             .text = "录音3",\r
-            .lineBreakMode = UILabel::LINE_BREAK_ELLIPSIS,\r
+            .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
         };\r
 \r
         RecordingFileName = SetUpLabel(labelconfig);\r
index 5421f9c..dc6954c 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-03-30 09:14:38\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-06-12 19:03:16\r
+ * @LastEditTime: 2024-06-13 11:46:34\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingPresenter.cpp\r
  */\r
 \r
@@ -18,6 +18,7 @@
 #include "record/include/RecordingListitemView.h"\r
 #include <service/graphic_service.h>\r
 #include <unistd.h>\r
+#include "record/include/RecordingModel.h"\r
 \r
 namespace OHOS\r
 {\r
@@ -48,7 +49,7 @@ namespace OHOS
         p_RecordingModel->InitRecordingListItem();\r
         p_RecordingModel->AudioInit();\r
         Presenter<RecordingView>::OnStart();\r
-        ScreenAlwaysOnCtr(1);\r
+        //ScreenAlwaysOnCtr(1);\r
     }\r
 \r
     void RecordingPresenter::OnPause(void)\r
@@ -66,59 +67,68 @@ namespace OHOS
     {\r
         Presenter<RecordingView>::OnStop();\r
         p_RecordingModel->ClearRecordingPlayer();\r
-        ScreenAlwaysOnCtr(0);\r
+        //ScreenAlwaysOnCtr(0);\r
     }\r
 \r
     bool RecordingPresenter::OnDrag(UIView &view, const DragEvent &event)\r
     {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OnDrag");\r
+        UNUSED(view);\r
+        UNUSED(event);\r
         return true;\r
     }\r
 \r
     bool RecordingPresenter::OnDragEnd(UIView &view, const DragEvent &event)\r
     {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OnDragEnd");\r
+\r
         RecordingView *p_RecordingView = RecordingView::GetInstance();\r
         if (p_RecordingView == nullptr)\r
         {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingView GetInstance fail");\r
             return false;\r
         }\r
-        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)\r
+\r
+        UIScrollView *scrollView = static_cast<UIScrollView *>(&view);\r
+        if (scrollView == nullptr)\r
         {\r
-            for (int i = 0; i < MAX_RECORDINGVIEWID; i++)\r
-            {\r
-                if (p_RecordingView->GetRecordingViewScrollView(i) != nullptr &&\r
-                    p_RecordingView->GetRecordingViewScrollView(i)->IsVisible() == true)\r
-                {\r
-                    if (i == RECORDINGVIEW)\r
-                    {\r
-                        //NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST);\r
-                        NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
-                        return true;\r
-                    }\r
-                    else if (i == RECORDINGPLAYERVIEW)\r
-                    {\r
-                        p_RecordingView->ChangeView(i, RECORDINGLISTVIEW);\r
-                        return true;\r
-                    }\r
-                    else\r
-                    {\r
-                        p_RecordingView->ChangeView(i, RECORDINGVIEW);\r
-                        return true;\r
-                    }\r
-                    break;\r
-                }\r
-            }\r
-            return true;\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "scrollView is nullptr");\r
+            return false;\r
         }\r
-        else if (event.GetDragDirection() == DragEvent::DIRECTION_BOTTOM_TO_TOP)\r
+\r
+        auto currentView = p_RecordingView->GetCurrentViewType(scrollView);\r
+\r
+        switch (event.GetDragDirection())\r
         {\r
-            if (p_RecordingView->GetRecordingViewScrollView(RECORDINGVIEW) != nullptr &&\r
-                p_RecordingView->GetRecordingViewScrollView(RECORDINGVIEW)->IsVisible() == true)\r
+        case DragEvent::DIRECTION_LEFT_TO_RIGHT:\r
+            switch (currentView)\r
+            {\r
+            case RECORDINGVIEW:\r
+                NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
+                break;\r
+            case RECORDINGPLAYERVIEW:\r
+                p_RecordingView->ChangeView(RECORDINGPLAYERVIEW, RECORDINGLISTVIEW);\r
+                break;\r
+            case RECORDINGDELETEVIEW:\r
+                p_RecordingView->ChangeView(RECORDINGDELETEVIEW, RECORDINGPLAYERVIEW);\r
+                break;\r
+            case RECORDINGVOLUMESETTINGVIEW:\r
+                p_RecordingView->ChangeView(RECORDINGVOLUMESETTINGVIEW, RECORDINGPLAYERVIEW);\r
+                break;\r
+            default:\r
+                break;\r
+            }\r
+            break;\r
+        case DragEvent::DIRECTION_BOTTOM_TO_TOP:\r
+            if (currentView == RECORDINGVIEW)\r
             {\r
                 p_RecordingView->ChangeView(RECORDINGVIEW, RECORDINGLISTVIEW);\r
             }\r
-            return true;\r
+            break;\r
+        default:\r
+            break;\r
         }\r
+\r
         return true;\r
     }\r
 \r
@@ -255,8 +265,7 @@ namespace OHOS
         // 如果是power键就返回上一级\r
         if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)\r
         {\r
-            uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();\r
-            NativeAbility::GetInstance().ChangeSlice(preSlice);\r
+            NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
         }\r
         return true;\r
     }\r
@@ -328,27 +337,6 @@ namespace OHOS
         return true;\r
     }\r
 \r
-    bool RecordingVolumeSettingViewDragLister::OnDrag(UIView &view, const DragEvent &event)\r
-    {\r
-        return true;\r
-    }\r
-\r
-    bool RecordingVolumeSettingViewDragLister::OnDragEnd(UIView &view, const DragEvent &event)\r
-    {\r
-        UNUSED(view);\r
-        RecordingView *p_RecordingView = RecordingView::GetInstance();\r
-        if (p_RecordingView == nullptr)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingView GetInstance fail");\r
-            return false;\r
-        }\r
-        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)\r
-        {\r
-            p_RecordingView->ChangeView(RECORDINGVOLUMESETTINGVIEW, RECORDINGPLAYERVIEW);\r
-        }\r
-        return true;\r
-    }\r
-\r
     /*\r
      * @brief 播放按钮被点击\r
      */\r
index 457a992..6781eef 100644 (file)
@@ -29,197 +29,24 @@ namespace OHOS
         return g_pRecordView;\r
     }\r
 \r
-    void RecordingView::ClearAll(void)\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingView::~RecordingView");\r
-        if (container_ != nullptr)\r
-        {\r
-            container_->RemoveAll();\r
-            delete container_;\r
-            container_ = nullptr;\r
-        }\r
-\r
-        if (RecordingViewScrollView[RECORDINGVIEW] != nullptr)\r
-        {\r
-            RecordingViewScrollView[RECORDINGVIEW]->RemoveAll();\r
-            delete RecordingViewScrollView[RECORDINGVIEW];\r
-            RecordingViewScrollView[RECORDINGVIEW] = nullptr;\r
-        }\r
-        \r
-        RecordingViewImageAnimator->Stop();\r
-        delete RecordingViewImageAnimator;\r
-        RecordingViewImageAnimator = nullptr;\r
-\r
-        delete RecordingViewTitleLabel;\r
-        RecordingViewTitleLabel = nullptr;\r
-\r
-        delete RecordingViewButton;\r
-        RecordingViewButton = nullptr;\r
-\r
-        delete AttentionLabel;\r
-        AttentionLabel = nullptr;\r
-\r
-        delete RECORD1_Image;\r
-        RECORD1_Image = nullptr;\r
-\r
-        if (p_RecordListView != nullptr)\r
-        {\r
-            delete p_RecordListView;\r
-            p_RecordListView = nullptr;\r
-        }\r
-        if (p_RecordGoingView != nullptr)\r
-        {\r
-            delete p_RecordGoingView;\r
-            p_RecordGoingView = nullptr;\r
-        }\r
-        if (p_RecordingPlayerView != nullptr)\r
-        {\r
-            delete p_RecordingPlayerView;\r
-            p_RecordingPlayerView = nullptr;\r
-        }\r
-\r
-        if (p_RecordDeleteView != nullptr)\r
-        {\r
-            delete p_RecordDeleteView;\r
-            p_RecordDeleteView = nullptr;\r
-        }\r
-\r
-        if (p_RecordingVolumeSettingView != nullptr)\r
-        {\r
-            delete p_RecordingVolumeSettingView;\r
-            p_RecordingVolumeSettingView = nullptr;\r
-        }\r
-    }\r
-\r
-    // 录音视图scrollView初始化\r
-    bool RecordingView::SetUpScrollView(void)\r
-    {\r
-        RecordingViewScrollView[RECORDINGVIEW] = new UIScrollView();\r
-        if (RecordingViewScrollView[RECORDINGVIEW] == nullptr)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingView::RecordingViewScrollView[RECORDINGVIEW] new fail!");\r
-            return false;\r
-        }\r
-        RecordingViewScrollView[RECORDINGVIEW]->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
-        RecordingViewScrollView[RECORDINGVIEW]->SetScrollBlankSize(35);\r
-        RecordingViewScrollView[RECORDINGVIEW]->SetReboundSize(50);\r
-        RecordingViewScrollView[RECORDINGVIEW]->SetDirection(1);\r
-        UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(RecordingPresenter::GetInstance());\r
-        if (draglistener == nullptr)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingView::draglistener can not be nullptr!");\r
-            return false;\r
-        }\r
-        RecordingViewScrollView[RECORDINGVIEW]->SetOnDragListener(draglistener);\r
-        RecordingViewScrollView[RECORDINGVIEW]->SetTouchable(true);\r
-        RecordingViewScrollView[RECORDINGVIEW]->SetDraggable(true);\r
-        return true;\r
-    }\r
-\r
-    bool RecordingView::SetTheTitle(void)\r
+    int RecordingView::GetCurrentViewType(UIScrollView *view)\r
     {\r
-        RecordingViewTitleLabel = new UILabelExt();\r
-        if (RecordingViewTitleLabel == nullptr)\r
+        for (int i = 0; i < MAX_RECORDINGVIEWID; ++i)\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingView::RecordingViewTitleLabel new fail!");\r
-            return false;\r
-        }\r
-        RecordingViewTitleLabel->SetPosition(83, 52,300,35);\r
-        RecordingViewTitleLabel->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
-        RecordingViewTitleLabel->SetStyle(STYLE_TEXT_FONT, 30);\r
-        RecordingViewTitleLabel->SetStyle(STYLE_LINE_HEIGHT, 35);\r
-        //RecordingViewTitleLabel->SetText("录音机");\r
-        RecordingViewTitleLabel->SetTextId(STR_RECORDER);\r
-        RecordingViewTitleLabel->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);\r
-        RecordingViewTitleLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
-        RecordingViewTitleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
-        return true;\r
-    }\r
-\r
-    UIButton *RecordingView::SetTheButton(ButtonConfig &buttonconfig, UIView::OnClickListener *clickListener)\r
-    {\r
-        UIButton *button = new UIButton();\r
-        if (button == nullptr)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " RecordingView::SetTheButton: button new  fail!");\r
-            return nullptr;\r
-        }\r
-        button->SetPosition(buttonconfig.x, buttonconfig.y, buttonconfig.w, buttonconfig.h);\r
-        button->SetViewId(buttonconfig.ViewId);\r
-        button->SetStyle(STYLE_BACKGROUND_COLOR, 0xffff5a36);\r
-        button->SetStyle(STYLE_BORDER_RADIUS, 100);\r
-        button->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xffff5a36, UIButton::PRESSED);\r
-        button->SetOnClickListener(clickListener);\r
-        return button;\r
-    }\r
-\r
-    //录音视图初始化\r
-    void RecordingView::RecordingViewInit(void)\r
-    {\r
-        if (!SetUpScrollView() || !SetTheTitle())\r
-        {\r
-            return;\r
-        }\r
-\r
-        UIView::OnClickListener *buttonClick = static_cast<UIView::OnClickListener *>(RecordingPresenter::GetInstance());\r
-        ButtonConfig buttonconfig;\r
-        buttonconfig.x = 178;\r
-        buttonconfig.y = 150;\r
-        buttonconfig.w = 120;\r
-        buttonconfig.h = 120;\r
-        buttonconfig.ViewId = RECORD_BUTTON;\r
-        RecordingViewButton = SetTheButton(buttonconfig, buttonClick);\r
-\r
-        AttentionLabel = new UILabelExt();\r
-        if (AttentionLabel == nullptr)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingView::AttentionLabel new fail!");\r
-            return;\r
-        }\r
-        AttentionLabel->SetPosition(53, 330,360,35);\r
-        AttentionLabel->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
-        AttentionLabel->SetStyle(STYLE_TEXT_FONT, 30);\r
-        AttentionLabel->SetStyle(STYLE_LINE_HEIGHT, 35);\r
-        //AttentionLabel->SetText("点击开始录音");\r
-        AttentionLabel->SetTextId(STR_CLICK_TO_RECORD);\r
-        AttentionLabel->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);\r
-        AttentionLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
-        AttentionLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
-\r
-        if (RECORD1_Image == nullptr)\r
-        {\r
-            RECORD1_Image = new UIImageView();\r
-        }\r
-        RECORD1_Image->SetPosition(158, 129, 150, 150);\r
-        RECORD1_Image->SetStyle(STYLE_BORDER_RADIUS, 10);\r
-        RECORD1_Image->SetSrc(PNG_RECORD1_IMAGE);\r
-\r
-        RecordingViewImageAnimator = new UIImageAnimatorView();\r
-        if (RecordingViewImageAnimator == nullptr)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingView::RecordingViewImageAnimator new fail!");\r
-            return;\r
+            if (view == RecordingViewScrollView[i])\r
+            {\r
+                return i;\r
+            }\r
         }\r
-        RecordingViewImageAnimator->SetPosition(213, 400, 40, 40);\r
-        RecordingViewImageAnimator->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
-\r
-        RecordingViewImageAnimator->SetImageAnimatorSrc(RecordingViewImageAnimatorInfo, 2, 200);\r
-        RecordingViewImageAnimator->SetTimeOfPause(200);\r
-        RecordingViewImageAnimator->SetRepeatTimes(1);\r
-        RecordingViewImageAnimator->SetReverse(true);\r
-        RecordingViewImageAnimator->Start();\r
-\r
-        RecordingViewScrollView[RECORDINGVIEW]->Add(RecordingViewTitleLabel);\r
-        RecordingViewScrollView[RECORDINGVIEW]->Add(RECORD1_Image);\r
-        RecordingViewScrollView[RECORDINGVIEW]->Add(RecordingViewButton);\r
-        RecordingViewScrollView[RECORDINGVIEW]->Add(AttentionLabel);\r
-        RecordingViewScrollView[RECORDINGVIEW]->Add(RecordingViewImageAnimator);\r
-        container_->Add(RecordingViewScrollView[RECORDINGVIEW]);\r
+        return MAX_RECORDINGVIEWID;\r
     }\r
 \r
-    UIScrollView *RecordingView::GetRecordingViewScrollView(int i)\r
+    // 设置按键监听\r
+    static void SetKeyActListener()\r
     {\r
-        return RecordingViewScrollView[i];\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetKeyActListener");\r
+        RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::RecordingPresenter::GetInstance();\r
+        RootView::GetInstance()->SetOnKeyActListener(keyactListener);\r
     }\r
 \r
     /*\r
@@ -340,6 +167,7 @@ namespace OHOS
         }\r
         return true;\r
     }\r
+\r
     // 1.RecordingViewMapper:结构体定义了一个将视图ID映射到特定成员函数指针的映射表。\r
     struct RecordingViewMapper\r
     {\r
@@ -389,38 +217,250 @@ namespace OHOS
         RecordingViewScrollView[showView]->SetVisible(true);\r
         Draw();\r
     }\r
-    /* -------------------------------------------------------------------------- */\r
+\r
+    void RecordingView::ClearAll(void)\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingView::~RecordingView");\r
+        if (container_ != nullptr)\r
+        {\r
+            container_->RemoveAll();\r
+            delete container_;\r
+            container_ = nullptr;\r
+        }\r
+\r
+        if (RecordingViewScrollView[RECORDINGVIEW] != nullptr)\r
+        {\r
+            RecordingViewScrollView[RECORDINGVIEW]->RemoveAll();\r
+            delete RecordingViewScrollView[RECORDINGVIEW];\r
+            RecordingViewScrollView[RECORDINGVIEW] = nullptr;\r
+        }\r
+\r
+        RecordingViewImageAnimator->Stop();\r
+        delete RecordingViewImageAnimator;\r
+        RecordingViewImageAnimator = nullptr;\r
+\r
+        delete RecordingViewTitleLabel;\r
+        RecordingViewTitleLabel = nullptr;\r
+\r
+        delete RecordingViewButton;\r
+        RecordingViewButton = nullptr;\r
+\r
+        delete AttentionLabel;\r
+        AttentionLabel = nullptr;\r
+\r
+        delete RECORD1_Image;\r
+        RECORD1_Image = nullptr;\r
+\r
+        if (p_RecordListView != nullptr)\r
+        {\r
+            delete p_RecordListView;\r
+            p_RecordListView = nullptr;\r
+        }\r
+        if (p_RecordGoingView != nullptr)\r
+        {\r
+            delete p_RecordGoingView;\r
+            p_RecordGoingView = nullptr;\r
+        }\r
+        if (p_RecordingPlayerView != nullptr)\r
+        {\r
+            delete p_RecordingPlayerView;\r
+            p_RecordingPlayerView = nullptr;\r
+        }\r
+\r
+        if (p_RecordDeleteView != nullptr)\r
+        {\r
+            delete p_RecordDeleteView;\r
+            p_RecordDeleteView = nullptr;\r
+        }\r
+\r
+        if (p_RecordingVolumeSettingView != nullptr)\r
+        {\r
+            delete p_RecordingVolumeSettingView;\r
+            p_RecordingVolumeSettingView = nullptr;\r
+        }\r
+    }\r
+\r
+    UIButton *RecordingView::SetTheButton(ButtonConfig &buttonconfig, UIView::OnClickListener *clickListener)\r
+    {\r
+        UIButton *button = new UIButton();\r
+        if (button == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " SetTheButton: button new  fail!");\r
+            return nullptr;\r
+        }\r
+        button->SetPosition(buttonconfig.x, buttonconfig.y, buttonconfig.w, buttonconfig.h);\r
+        button->SetViewId(buttonconfig.ViewId);\r
+        button->SetStyle(STYLE_BACKGROUND_COLOR, 0xffff5a36);\r
+        button->SetStyle(STYLE_BORDER_RADIUS, 100);\r
+        button->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xffff5a36, UIButton::PRESSED);\r
+        button->SetOnClickListener(clickListener);\r
+        return button;\r
+    }\r
+\r
+    bool RecordingView::RecordingScrollViewInit(void)\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingView::RecordingScrollViewInit");\r
+        RecordingViewScrollView[RECORDINGVIEW] = new UIScrollView();\r
+        if (RecordingViewScrollView[RECORDINGVIEW] == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingViewScrollView[RECORDINGVIEW] new fail!");\r
+            return false;\r
+        }\r
+        RecordingViewScrollView[RECORDINGVIEW]->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
+        RecordingViewScrollView[RECORDINGVIEW]->SetScrollBlankSize(35);\r
+        RecordingViewScrollView[RECORDINGVIEW]->SetReboundSize(50);\r
+        RecordingViewScrollView[RECORDINGVIEW]->SetDirection(1);\r
+        RecordingViewScrollView[RECORDINGVIEW]->SetOnDragListener(presenter_);\r
+        RecordingViewScrollView[RECORDINGVIEW]->SetTouchable(true);\r
+        RecordingViewScrollView[RECORDINGVIEW]->SetDraggable(true);\r
+        return true;\r
+    }\r
+\r
+    bool RecordingView::RecordingLabelViewInit(void)\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingView::RecordingLabelViewInit");\r
+        RecordingViewTitleLabel = new UILabelExt();\r
+        if (RecordingViewTitleLabel == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingViewTitleLabel new fail!");\r
+            return false;\r
+        }\r
+        RecordingViewTitleLabel->SetPosition(83, 52, 300, 35);\r
+        RecordingViewTitleLabel->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+        RecordingViewTitleLabel->SetStyle(STYLE_TEXT_FONT, 30);\r
+        RecordingViewTitleLabel->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+        // RecordingViewTitleLabel->SetText("录音机");\r
+        RecordingViewTitleLabel->SetTextId(STR_RECORDER);\r
+        RecordingViewTitleLabel->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);\r
+        RecordingViewTitleLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+        RecordingViewTitleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+        /* -------------------------------------------------------------------------- */\r
+        AttentionLabel = new UILabelExt();\r
+        if (AttentionLabel == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AttentionLabel new fail!");\r
+            return false;\r
+        }\r
+        AttentionLabel->SetPosition(53, 330, 360, 35);\r
+        AttentionLabel->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+        AttentionLabel->SetStyle(STYLE_TEXT_FONT, 30);\r
+        AttentionLabel->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+        // AttentionLabel->SetText("点击开始录音");\r
+        AttentionLabel->SetTextId(STR_CLICK_TO_RECORD);\r
+        AttentionLabel->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);\r
+        AttentionLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+        AttentionLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+\r
+        return true;\r
+    }\r
+\r
+    bool RecordingView::RecordingButtonViewInit(void)\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingView::RecordingButtonViewInit");\r
+        ButtonConfig buttonconfig;\r
+        buttonconfig.x = 178;\r
+        buttonconfig.y = 150;\r
+        buttonconfig.w = 120;\r
+        buttonconfig.h = 120;\r
+        buttonconfig.ViewId = RECORD_BUTTON;\r
+        RecordingViewButton = SetTheButton(buttonconfig, presenter_);\r
+        if (RecordingViewButton == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingViewButton new fail!");\r
+            return false;\r
+        }\r
+\r
+        return true;\r
+    }\r
+\r
+    bool RecordingView::RecordingImageViewInit(void)\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingView::RecordingImageViewInit");\r
+        RECORD1_Image = new UIImageView();\r
+        if (RECORD1_Image == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RECORD1_Image new fail!");\r
+            return false;\r
+        }\r
+        RECORD1_Image->SetPosition(158, 129, 150, 150);\r
+        RECORD1_Image->SetStyle(STYLE_BORDER_RADIUS, 10);\r
+        RECORD1_Image->SetSrc(PNG_RECORD1_IMAGE);\r
+\r
+        return true;\r
+    }\r
+\r
+    bool RecordingView::RecordingImageAnimatorViewInit(void)\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingView::RecordingImageAnimatorViewInit");\r
+        RecordingViewImageAnimator = new UIImageAnimatorView();\r
+        if (RecordingViewImageAnimator == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingViewImageAnimator new fail!");\r
+            return false;\r
+        }\r
+        RecordingViewImageAnimator->SetPosition(213, 400, 40, 40);\r
+        RecordingViewImageAnimator->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+        RecordingViewImageAnimator->SetImageAnimatorSrc(RecordingViewImageAnimatorInfo, 2, 200);\r
+        RecordingViewImageAnimator->SetTimeOfPause(200);\r
+        RecordingViewImageAnimator->SetRepeatTimes(1);\r
+        RecordingViewImageAnimator->SetReverse(true);\r
+        RecordingViewImageAnimator->Start();\r
+\r
+        return true;\r
+    }\r
+\r
+    // 录音视图初始化\r
+    void RecordingView::RecordingViewInit(void)\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingView::RecordingViewInit");\r
+        // 如果其中任何一个初始化函数返回 false(即初始化失败),则会打印错误日志并返回空指针。\r
+        if (!RecordingScrollViewInit() || !RecordingLabelViewInit() ||\r
+            !RecordingButtonViewInit() || !RecordingImageViewInit() || !RecordingImageAnimatorViewInit())\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingViewInit fail!!");\r
+            return;\r
+        }\r
+        RecordingViewScrollView[RECORDINGVIEW]->Add(RecordingViewTitleLabel);\r
+        RecordingViewScrollView[RECORDINGVIEW]->Add(RECORD1_Image);\r
+        RecordingViewScrollView[RECORDINGVIEW]->Add(RecordingViewButton);\r
+        RecordingViewScrollView[RECORDINGVIEW]->Add(AttentionLabel);\r
+        RecordingViewScrollView[RECORDINGVIEW]->Add(RecordingViewImageAnimator);\r
+        container_->Add(RecordingViewScrollView[RECORDINGVIEW]);\r
+    }\r
 \r
     void RecordingView::OnStart()\r
     {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingView::OnStart");\r
         View<RecordingPresenter>::OnStart();\r
         SetContainerView(new UIViewGroup());\r
         container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
-        container_->SetOnDragListener(presenter_);\r
+        // container_->SetOnDragListener(presenter_);\r
         container_->SetTouchable(true);\r
         container_->SetDraggable(true);\r
 \r
         RecordingViewInit();\r
-\r
-        // 增加按键监听\r
-        RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::RecordingPresenter::GetInstance();\r
-        RootView::GetInstance()->SetOnKeyActListener(keyactListener);\r
+        SetKeyActListener();\r
+        return;\r
     }\r
 \r
     void RecordingView::OnSetUpView()\r
     {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingView::OnSetUpView");\r
         View<RecordingPresenter>::OnSetUpView();\r
         Draw();\r
+        return;\r
     }\r
 \r
     void RecordingView::OnTearDownView()\r
     {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingView::OnTearDownView");\r
         View<RecordingPresenter>::OnTearDownView();\r
         return;\r
     }\r
 \r
     void RecordingView::OnStop()\r
     {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingView::OnStop");\r
         View<RecordingPresenter>::OnStop();\r
         RootView::GetInstance()->ClearOnKeyActListener();\r
         ClearAll();\r
index 83c9b4b..28c8f54 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-03-13 17:38:18
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-19 15:02:48
+ * @LastEditTime: 2024-06-13 11:21:31
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingVolumeSettingView.cpp
  */
 #include "record/include/RecordingVolumeSettingView.h"
@@ -14,14 +14,14 @@ namespace OHOS
     static RecordingVolumeSettingView *g_pRecordingVolumeSettingView{nullptr};
     RecordingVolumeSettingView::RecordingVolumeSettingView()
     {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingVolumeSettingView::RecordingVolumeSettingView");
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingVolumeSettingView::RecordingVolumeSettingView");
 
         g_pRecordingVolumeSettingView = this;
     }
 
     RecordingVolumeSettingView::~RecordingVolumeSettingView()
     {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingVolumeSettingView::~RecordingVolumeSettingView");
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingVolumeSettingView::~RecordingVolumeSettingView");
         ClearAll();
         g_pRecordingVolumeSettingView = nullptr;
     }
@@ -35,9 +35,6 @@ namespace OHOS
     {
         if (initViewStatus == true)
         {
-            delete volumeDragListener;
-            volumeDragListener = nullptr;
-
             delete p_SoundAndVibrationVolumeSettingView;
             p_SoundAndVibrationVolumeSettingView = nullptr;
         }
@@ -45,7 +42,7 @@ namespace OHOS
 
     UIScrollView *RecordingVolumeSettingView::RecordingVolumeSettingViewInit(void)
     {
-
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingVolumeSettingView::RecordingVolumeSettingViewInit");
         p_SoundAndVibrationVolumeSettingView = new SoundAndVibrationVolumeSettingView(SYSTEM_VOLUME);
         if (p_SoundAndVibrationVolumeSettingView == nullptr)
         {
@@ -53,7 +50,7 @@ namespace OHOS
             return nullptr;
         }
         RecordingVolumeSettingViewScrollView = p_SoundAndVibrationVolumeSettingView->SetUpVolumeProcess();
-        volumeDragListener = static_cast<UIView::OnDragListener *>(new RecordingVolumeSettingViewDragLister());
+        UIView::OnDragListener * volumeDragListener = static_cast<UIView::OnDragListener *>(RecordingPresenter::GetInstance());
         if (volumeDragListener == nullptr)
         {
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingPresenter GetInstance fail");