录音视图修改
authorluozheng <1732036298@qq.com>
Wed, 12 Jun 2024 11:11:58 +0000 (19:11 +0800)
committerluozheng <1732036298@qq.com>
Wed, 12 Jun 2024 11:11:58 +0000 (19:11 +0800)
17 files changed:
code/sdk/application/wearable/fd230app/nativeui/language/Language_xml/input_list_zh.txt
code/sdk/application/wearable/fd230app/nativeui/language/Language_xml/language_zh.xml
code/sdk/application/wearable/fd230app/nativeui/language/font/en.lang
code/sdk/application/wearable/fd230app/nativeui/language/font/ja.lang
code/sdk/application/wearable/fd230app/nativeui/language/font/ui_resource_string.h
code/sdk/application/wearable/fd230app/nativeui/language/font/zh.lang
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/src/RecordListView.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/soundandvibration/src/SoundAndVibrationVolumeSettingView.cpp
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/en.lang
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/ja.lang
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/ui_resource_string.h
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/zh.lang

index 0193218..4a46198 100644 (file)
@@ -456,4 +456,6 @@ STR_SYSTEM_UPGRADING$系统升级中
 STR_NEWDEVICE_BIND_REMIND_NOTE$当前设备已经与 XX 绑定继续连接操作会解除与  XX 的绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作\r
 STR_TABULAR_DISPLAY$列表显示\r
 STR_GRID_DISPLAY$网格显示\r
-STR_CELLULAR_DISPLAY$蜂窝显示
\ No newline at end of file
+STR_CELLULAR_DISPLAY$蜂窝显示\r
+STR_RECORDING_LIST$录音列表\r
+STR_CRLEMPTY$当前录音列表为空
\ No newline at end of file
index 8d461f2..d30f515 100644 (file)
        <lanstr id="STR_TABULAR_DISPLAY" value="列表显示"/>
        <lanstr id="STR_GRID_DISPLAY" value="网格显示"/>
        <lanstr id="STR_CELLULAR_DISPLAY" value="蜂窝显示"/>
+       <lanstr id="STR_RECORDING_LIST" value="录音列表"/>
+       <lanstr id="STR_CRLEMPTY" value="当前录音列表为空"/>
 </language>
index b93a9ce..7dc97fa 100644 (file)
Binary files a/code/sdk/application/wearable/fd230app/nativeui/language/font/en.lang and b/code/sdk/application/wearable/fd230app/nativeui/language/font/en.lang differ
index 436b3d5..29e8216 100644 (file)
Binary files a/code/sdk/application/wearable/fd230app/nativeui/language/font/ja.lang and b/code/sdk/application/wearable/fd230app/nativeui/language/font/ja.lang differ
index 28707bb..0769074 100644 (file)
@@ -480,7 +480,9 @@ enum UIResourceTextId : uint16_t {
     STR_FRI = 467,\r
     STR_SATUR = 468,\r
     STR_SUN = 469,\r
-    STR_MAX_ID = 470,\r
+    STR_RECORDING_LIST = 470,\r
+    STR_CRLEMPTY = 471,\r
+    STR_MAX_ID = 472,\r
 }; // UIResourceTextId\r
 
 enum FontLanguageId : uint8_t {
index 81c0ab9..22553ae 100644 (file)
Binary files a/code/sdk/application/wearable/fd230app/nativeui/language/font/zh.lang and b/code/sdk/application/wearable/fd230app/nativeui/language/font/zh.lang differ
index 38576f1..2e5e856 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-12 17:54:46\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordListView.h\r
+ */\r
 #ifndef RECORD_LIST_VIEW_H\r
 #define RECORD_LIST_VIEW_H\r
 \r
@@ -14,7 +21,7 @@
 #include "record/include/RecordingListAdapter.h"\r
 namespace OHOS\r
 {\r
-\r
+    static constexpr char *RECORDLISTSCROLLVIEW = "RecordListScrollView";\r
     class RecordListView\r
     {\r
 \r
@@ -28,6 +35,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
         RecordListView();\r
@@ -37,19 +45,20 @@ namespace OHOS
         void ClearAll(void);\r
         void IsVisibleLabel(bool value);\r
         void RefreshRecordingListData(void);\r
+\r
     private:\r
         bool SetUpScrollView(void);\r
-        UILabel *SetUpLabel(LabelConfig &labelconfig); // 设置标签\r
+        UILabelExt *SetUpLabel(LabelConfig &labelconfig); // 设置标签\r
         bool SetUpRecordListViewLabel(void);\r
         bool SetUpRecordingList(void);\r
         void AddRecordingToList(const RecordingListItem &item);\r
         void InitRecordingInfo(void);\r
         UIScrollView *RecordListScrollView{nullptr};\r
-        UILabel *RecordListViewTitleLabel{nullptr};            // "录音列表"\r
-        UILabel *RecordListViewAttentionLabel{nullptr};        //"当前录音列表为空"\r
+        UILabelExt *RecordListViewTitleLabel{nullptr};         // "录音列表"\r
+        UILabelExt *RecordListViewAttentionLabel{nullptr};     //"当前录音列表为空"\r
         UIList *recordList{nullptr};                           // 录音列表\r
         RecordingListAdapter *p_RecordingListAdapter{nullptr}; // 录音列表适配器\r
-        bool initViewStatus{false};\r
+        UIView::OnClickListener *clickListener{nullptr};\r
     };\r
 } // namespace OHOS\r
 \r
index 6b4a047..f934f4a 100644 (file)
@@ -1,3 +1,11 @@
+/*\r
+ * @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
+ * @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
@@ -104,11 +112,12 @@ namespace OHOS
     {\r
     public:\r
         RecordListViewListener() {}\r
-\r
         ~RecordListViewListener() {}\r
 \r
         bool OnClick(UIView &view, const ClickEvent &event) override;\r
         bool OnDrag(UIView &view, const DragEvent &event) override;\r
+        bool OnDragEnd(UIView &view, const DragEvent &event) override;\r
+        bool X_DRAG_FLAG{false};\r
     };\r
 \r
     class RecordingVolumeSettingViewDragLister : public UIView::OnDragListener\r
index 7592a6b..bddefe9 100644 (file)
@@ -69,12 +69,11 @@ namespace OHOS
         bool SetTheTitle(void);\r
         UIButton *SetTheButton(ButtonConfig &buttonconfig, UIView::OnClickListener *clickListener);\r
         UIScrollView *RecordingViewScrollView[NUM_MAX_RECORDINGVIEWSCROLLVIEW]{nullptr};\r
-        UILabel *RecordingViewTitleLabel{nullptr};\r
+        UILabelExt *RecordingViewTitleLabel{nullptr};\r
         UIButton *RecordingViewButton{nullptr};\r
-        UILabel *AttentionLabel{nullptr};\r
+        UILabelExt *AttentionLabel{nullptr};\r
         UIImageAnimatorView *RecordingViewImageAnimator{nullptr};\r
         UIImageView *RECORD1_Image = nullptr;\r
-        bool initViewStatus{false};\r
     };\r
 } // namespace OHOS\r
 \r
index 3fd5f30..e94cf3e 100644 (file)
@@ -1,3 +1,11 @@
+/*\r
+ * @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
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordListView.cpp\r
+ */\r
+\r
 #include "record/include/RecordListView.h"\r
 #include "record/include/RecordingPresenter.h"\r
 #include "wearable_log.h"\r
@@ -9,29 +17,31 @@ namespace OHOS
 \r
     RecordListView::RecordListView()\r
     {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordListView::RecordListView");\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordListView::RecordListView");\r
         g_pRecordListView = this;\r
     }\r
 \r
     RecordListView::~RecordListView()\r
     {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordListView::~RecordListView");\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordListView::~RecordListView");\r
         ClearAll();\r
         g_pRecordListView = nullptr;\r
     }\r
 \r
     RecordListView *RecordListView::GetInstance()\r
     {\r
-\r
         return g_pRecordListView;\r
     }\r
 \r
     void RecordListView::ClearAll()\r
     {\r
-        if (initViewStatus == true)\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClearAll");\r
+        if (RecordListScrollView != nullptr)\r
         {\r
+            // 首先移除所有子视图\r
             RecordListScrollView->RemoveAll();\r
 \r
+            // 释放各个资源\r
             delete RecordListViewAttentionLabel;\r
             RecordListViewAttentionLabel = nullptr;\r
 \r
@@ -41,20 +51,27 @@ namespace OHOS
             delete p_RecordingListAdapter;\r
             p_RecordingListAdapter = nullptr;\r
 \r
-            UIView::OnClickListener *clicklister = recordList->GetOnClickListener();\r
-            if (clicklister != nullptr)\r
+            // 释放点击监听器\r
+            if (UIView::OnClickListener *clicklister = recordList->GetOnClickListener())\r
             {\r
                 delete clicklister;\r
                 clicklister = nullptr;\r
             }\r
-            \r
-            UIView::OnDragListener *dragLister = RecordListScrollView->GetOnDragListener();\r
-            if (dragLister != nullptr)\r
+\r
+            // 释放拖动监听器\r
+            if (UIView::OnDragListener *dragLister = RecordListScrollView->GetOnDragListener())\r
             {\r
                 delete dragLister;\r
                 dragLister = nullptr;\r
             }\r
 \r
+            if (clickListener != nullptr)\r
+            {\r
+                delete clickListener;\r
+                clickListener = nullptr;\r
+            }\r
+\r
+            // 最后释放 RecordListScrollView 及其子视图\r
             delete recordList;\r
             recordList = nullptr;\r
 \r
@@ -63,32 +80,34 @@ namespace OHOS
         }\r
     }\r
 \r
-    // 亮屏时长视图“scrollView”初始化\r
     bool RecordListView::SetUpScrollView(void)\r
     {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordListView::SetUpScrollView");\r
         RecordListScrollView = new UIScrollView();\r
         if (RecordListScrollView == nullptr)\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::RecordListScrollView new fail!");\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, "ScreenDurationView::draglistener can not be nullptr!");\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
     // 设置标签\r
-    UILabel *RecordListView::SetUpLabel(LabelConfig &labelconfig)\r
+    UILabelExt *RecordListView::SetUpLabel(LabelConfig &labelconfig)\r
     {\r
-        UILabel *label = new UILabel();\r
+        UILabelExt *label = new UILabelExt();\r
         if (label == nullptr)\r
         {\r
             return nullptr;\r
@@ -96,31 +115,34 @@ 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
         return label;\r
     }\r
 \r
+    // 设置录音视图的标签\r
     bool RecordListView::SetUpRecordListViewLabel(void)\r
     {\r
-        // 创建ScreenDurationTitleLabel\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordListView::SetUpRecordListViewLabel");\r
         LabelConfig labelconfig = {\r
-            .left = 173,\r
+            .left = 83,\r
             .top = 52,\r
-            .width = 120,\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_RECORDING_LIST,\r
+            .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
         };\r
 \r
         RecordListViewTitleLabel = SetUpLabel(labelconfig);\r
         if (nullptr == RecordListViewTitleLabel)\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordListView::RecordListViewTitleLabel is nullptr!");\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordListViewTitleLabel is nullptr!");\r
             return false;\r
         }\r
 \r
@@ -128,16 +150,17 @@ namespace OHOS
             .left = 33,\r
             .top = 273,\r
             .width = 400,\r
-            .height = 124,\r
+            .height = 30,\r
             .fontSize = 26,\r
             .lineHeigh = 30,\r
-            .text = "当前录音列表为空",\r
-            .lineBreakMode = UILabel::LINE_BREAK_ELLIPSIS,\r
+            //.text = "当前录音列表为空",\r
+            .textId = STR_CRLEMPTY,\r
+            .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
         };\r
         RecordListViewAttentionLabel = SetUpLabel(labelconfig);\r
         if (nullptr == RecordListViewAttentionLabel)\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordListView::RecordListViewAttentionLabel is nullptr!");\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordListViewAttentionLabel is nullptr!");\r
             return false;\r
         }\r
         RecordListViewAttentionLabel->SetTextColor(Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff));\r
@@ -150,9 +173,11 @@ namespace OHOS
 \r
     bool RecordListView::SetUpRecordingList(void)\r
     {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordListView::SetUpRecordingList");\r
         // UIList 的适配器\r
         p_RecordingListAdapter = new RecordingListAdapter();\r
-        p_RecordingListAdapter->SetItemClickListener(new RecordListViewListener());\r
+        clickListener = static_cast<UIView::OnClickListener *>(new RecordListViewListener());\r
+        p_RecordingListAdapter->SetItemClickListener(clickListener);\r
         recordList = new UIList();\r
         if (recordList == nullptr)\r
         {\r
@@ -161,19 +186,13 @@ namespace OHOS
         }\r
         recordList->SetPosition(43, 120, 380, 300);\r
         recordList->SetStyle(STYLE_BACKGROUND_COLOR, 0xff000000);\r
-        // recordList->SetScrollBlankSize(50); // 设置此滚动视图的空白大小。\r
-        /**\r
-         *设置在此列表滚动时选择子视图的位置,当子视图在指定位置被选中时,回调{@link ListScrollListener}将被调用。*你可以在回调中实现放大和变色效果。\r
-         */\r
         recordList->SetSelectPosition(233);\r
-        // recordList->EnableAutoAlign(true); // 设置此列表的自动对齐状态。当滚动停止时,子视图被选中,其位置自动与预设位置对齐\r
         recordList->SetThrowDrag(true); // 设置手指抬起屏幕后是否继续滚动。\r
         recordList->SetTouchable(true);\r
         recordList->SetDraggable(true);\r
         recordList->SetMaxScrollDistance(1000); // 设置手指抬起屏幕后的最大滚动距离。\r
         recordList->SetReboundSize(50);\r
-        //recordList->SetYScrollBarVisible(true); // 设置 Y 轴滚动条是否可见。\r
-        recordList->SetIntercept(true);         // 设置是否拦截输入事件。如果被截获,视图在本地处理后不会将输入事件传递给父视图。\r
+        recordList->SetIntercept(true); // 设置是否拦截输入事件。如果被截获,视图在本地处理后不会将输入事件传递给父视图。\r
         InitRecordingInfo();\r
         recordList->SetAdapter(p_RecordingListAdapter);\r
         recordList->RefreshList();\r
@@ -203,7 +222,7 @@ namespace OHOS
      */\r
     void RecordListView::RefreshRecordingListData(void)\r
     {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordListView::RefreshRecordingListData");\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordListView::RefreshRecordingListData");\r
         RecordingModel::GetInstance()->InitRecordingListItem();\r
         p_RecordingListAdapter->ClearData();\r
         InitRecordingInfo();\r
@@ -261,8 +280,6 @@ namespace OHOS
             IsVisibleLabel(false);\r
         }\r
 \r
-        initViewStatus = true;\r
         return RecordListScrollView;\r
     }\r
-\r
 }
\ No newline at end of file
index a2fb282..5421f9c 100644 (file)
@@ -1,6 +1,14 @@
+/*\r
+ * @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
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingPresenter.cpp\r
+ */\r
+\r
 #include "AppViewIDs.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
 #include "NativeAbility.h"\r
 #include "graphic_math.h"\r
 #include "string.h"\r
@@ -83,7 +91,8 @@ namespace OHOS
                 {\r
                     if (i == RECORDINGVIEW)\r
                     {\r
-                        NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST);\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
@@ -106,7 +115,7 @@ namespace OHOS
             if (p_RecordingView->GetRecordingViewScrollView(RECORDINGVIEW) != nullptr &&\r
                 p_RecordingView->GetRecordingViewScrollView(RECORDINGVIEW)->IsVisible() == true)\r
             {\r
-                 p_RecordingView->ChangeView(RECORDINGVIEW, RECORDINGLISTVIEW);\r
+                p_RecordingView->ChangeView(RECORDINGVIEW, RECORDINGLISTVIEW);\r
             }\r
             return true;\r
         }\r
@@ -188,7 +197,7 @@ namespace OHOS
             if (convertNumericDateTime(numericDateTime, formattedDateTime))\r
             {\r
                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Formatted DateTime: %s\n", formattedDateTime);\r
-                sprintf(args[5], "%s%s.mp3", RecordingModel::GetInstance()->GetRecordDirectory(),formattedDateTime);\r
+                sprintf(args[5], "%s%s.mp3", RecordingModel::GetInstance()->GetRecordDirectory(), formattedDateTime);\r
             }\r
             else\r
             {\r
@@ -252,8 +261,10 @@ namespace OHOS
         return true;\r
     }\r
 \r
+    // 录音列表点击监听\r
     bool RecordListViewListener::OnClick(UIView &view, const ClickEvent &event)\r
     {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordListViewListener::OnClick");\r
         UNUSED(event);\r
         RecordingListitemView *p_RecordingListitemView = static_cast<RecordingListitemView *>(&view);\r
         int index = p_RecordingListitemView->GetRecordingListIndex();\r
@@ -289,18 +300,30 @@ namespace OHOS
         return true;\r
     }\r
 \r
+    // 录音列表拖拽中监听\r
     bool RecordListViewListener::OnDrag(UIView &view, const DragEvent &event)\r
     {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordListViewListener::OnDrag");\r
         UNUSED(view);\r
-        RecordingView *p_RecordingView = RecordingView::GetInstance();\r
-        if (p_RecordingView == nullptr)\r
+        if ((event.GetDeltaY() > X_DRAG_OFFSET) && (event.GetDeltaY() > (DOUBLES * MATH_ABS(event.GetDeltaX())))) // 如果滑动的为直线\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingView GetInstance fail");\r
-            return false;\r
+            RecordListViewListener::X_DRAG_FLAG = true;\r
         }\r
-        if (event.GetDragDirection() == DragEvent::DIRECTION_TOP_TO_BOTTOM)\r
+        return true;\r
+    }\r
+\r
+    // 录音列表拖拽结束监听\r
+    bool RecordListViewListener::OnDragEnd(UIView &view, const DragEvent &event)\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordListViewListener::OnDragEnd");\r
+        std::string viewId = view.GetViewId();\r
+        if (event.GetDragDirection() == DragEvent::DIRECTION_TOP_TO_BOTTOM && RecordListViewListener::X_DRAG_FLAG)\r
         {\r
-            p_RecordingView->ChangeView(RECORDINGLISTVIEW, RECORDINGVIEW);\r
+            if (RecordingView::GetInstance() != nullptr && viewId == RECORDLISTSCROLLVIEW)\r
+            {\r
+                RecordingView::GetInstance()->ChangeView(RECORDINGLISTVIEW, RECORDINGVIEW);\r
+                RecordListViewListener::X_DRAG_FLAG = false;\r
+            }\r
         }\r
         return true;\r
     }\r
index 7893cc7..457a992 100644 (file)
@@ -14,14 +14,13 @@ namespace OHOS
 \r
     RecordingView::RecordingView()\r
     {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingView::RecordingView");\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingView::RecordingView");\r
         g_pRecordView = this;\r
     }\r
 \r
     RecordingView::~RecordingView()\r
     {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingView::~RecordingView");\r
-        RecordingViewInit();\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingView::~RecordingView");\r
         g_pRecordView = nullptr;\r
     }\r
 \r
@@ -32,56 +31,63 @@ namespace OHOS
 \r
     void RecordingView::ClearAll(void)\r
     {\r
-        if (initViewStatus == true)\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingView::~RecordingView");\r
+        if (container_ != nullptr)\r
         {\r
-            RecordingViewScrollView[RECORDINGVIEW]->RemoveAll();\r
+            container_->RemoveAll();\r
+            delete container_;\r
+            container_ = nullptr;\r
+        }\r
 \r
-            RecordingViewImageAnimator->Stop();\r
-            delete RecordingViewImageAnimator;\r
-            RecordingViewImageAnimator = nullptr;\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
+        delete RecordingViewTitleLabel;\r
+        RecordingViewTitleLabel = nullptr;\r
 \r
-            delete RecordingViewButton;\r
-            RecordingViewButton = nullptr;\r
+        delete RecordingViewButton;\r
+        RecordingViewButton = nullptr;\r
 \r
-            delete AttentionLabel;\r
-            AttentionLabel = nullptr;\r
+        delete AttentionLabel;\r
+        AttentionLabel = nullptr;\r
 \r
-            delete RECORD1_Image;\r
-            RECORD1_Image = nullptr;\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
+        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_RecordingVolumeSettingView != nullptr)\r
-            {\r
-                delete p_RecordingVolumeSettingView;\r
-                p_RecordingVolumeSettingView = nullptr;\r
-            }\r
+        if (p_RecordDeleteView != nullptr)\r
+        {\r
+            delete p_RecordDeleteView;\r
+            p_RecordDeleteView = nullptr;\r
+        }\r
 \r
-            delete RecordingViewScrollView[RECORDINGVIEW];\r
-            RecordingViewScrollView[RECORDINGVIEW] = nullptr;\r
+        if (p_RecordingVolumeSettingView != nullptr)\r
+        {\r
+            delete p_RecordingVolumeSettingView;\r
+            p_RecordingVolumeSettingView = nullptr;\r
         }\r
     }\r
 \r
@@ -112,18 +118,19 @@ namespace OHOS
 \r
     bool RecordingView::SetTheTitle(void)\r
     {\r
-        RecordingViewTitleLabel = new UILabel();\r
+        RecordingViewTitleLabel = new UILabelExt();\r
         if (RecordingViewTitleLabel == nullptr)\r
         {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingView::RecordingViewTitleLabel new fail!");\r
             return false;\r
         }\r
-        RecordingViewTitleLabel->SetPosition(188, 52);\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->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\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
@@ -146,14 +153,10 @@ namespace OHOS
         return button;\r
     }\r
 \r
+    //录音视图初始化\r
     void RecordingView::RecordingViewInit(void)\r
     {\r
-        if (!SetUpScrollView())\r
-        {\r
-            return;\r
-        }\r
-\r
-        if (!SetTheTitle())\r
+        if (!SetUpScrollView() || !SetTheTitle())\r
         {\r
             return;\r
         }\r
@@ -167,18 +170,19 @@ namespace OHOS
         buttonconfig.ViewId = RECORD_BUTTON;\r
         RecordingViewButton = SetTheButton(buttonconfig, buttonClick);\r
 \r
-        AttentionLabel = new UILabel();\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(143, 330);\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->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\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
@@ -205,11 +209,12 @@ namespace OHOS
         RecordingViewImageAnimator->SetReverse(true);\r
         RecordingViewImageAnimator->Start();\r
 \r
-        // 增加按键监听\r
-        RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::RecordingPresenter::GetInstance();\r
-        //(RootView::OnKeyActListener *)OHOS::RecordingPresenter::GetInstance();\r
-        RootView::GetInstance()->SetOnKeyActListener(keyactListener);\r
-        initViewStatus = true;\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
     UIScrollView *RecordingView::GetRecordingViewScrollView(int i)\r
@@ -225,7 +230,7 @@ namespace OHOS
         if (RecordingViewScrollView[thisView] == nullptr)\r
         {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingView::ChangeRecordingView");\r
-            RootView::GetInstance()->Add(RecordingViewScrollView[thisView]);\r
+            container_->Add(RecordingViewScrollView[thisView]);\r
         }\r
         return true;\r
     }\r
@@ -245,7 +250,7 @@ namespace OHOS
                 return false;\r
             }\r
             RecordingViewScrollView[thisView] = p_RecordListView->RecordListViewInit();\r
-            RootView::GetInstance()->Add(RecordingViewScrollView[thisView]);\r
+            container_->Add(RecordingViewScrollView[thisView]);\r
         }\r
         else\r
         {\r
@@ -269,7 +274,7 @@ namespace OHOS
                 return false;\r
             }\r
             RecordingViewScrollView[thisView] = p_RecordGoingView->RecordGoingViewInit();\r
-            RootView::GetInstance()->Add(RecordingViewScrollView[thisView]);\r
+            container_->Add(RecordingViewScrollView[thisView]);\r
         }\r
         return true;\r
     }\r
@@ -289,7 +294,7 @@ namespace OHOS
                 return false;\r
             }\r
             RecordingViewScrollView[thisView] = p_RecordingPlayerView->RecordingPlayerViewInit();\r
-            RootView::GetInstance()->Add(RecordingViewScrollView[thisView]);\r
+            container_->Add(RecordingViewScrollView[thisView]);\r
         }\r
         // 设置“录音播放器”【录音文件名标签】的"文本内容"为被点击的"录音"的录音名\r
         p_RecordingPlayerView->ResetComponentStatus();\r
@@ -311,7 +316,7 @@ namespace OHOS
                 return false;\r
             }\r
             RecordingViewScrollView[thisView] = p_RecordDeleteView->RecordDeleteViewInit();\r
-            RootView::GetInstance()->Add(RecordingViewScrollView[thisView]);\r
+            container_->Add(RecordingViewScrollView[thisView]);\r
         }\r
         return true;\r
     }\r
@@ -331,11 +336,10 @@ namespace OHOS
                 return false;\r
             }\r
             RecordingViewScrollView[thisView] = p_RecordingVolumeSettingView->RecordingVolumeSettingViewInit();\r
-            RootView::GetInstance()->Add(RecordingViewScrollView[thisView]);\r
+            container_->Add(RecordingViewScrollView[thisView]);\r
         }\r
         return true;\r
     }\r
-    /* -------------------------------------------------------------------------- */\r
     // 1.RecordingViewMapper:结构体定义了一个将视图ID映射到特定成员函数指针的映射表。\r
     struct RecordingViewMapper\r
     {\r
@@ -390,18 +394,22 @@ namespace OHOS
     void RecordingView::OnStart()\r
     {\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_->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
     }\r
 \r
     void RecordingView::OnSetUpView()\r
     {\r
         View<RecordingPresenter>::OnSetUpView();\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
-        RootView::GetInstance()->Add(RecordingViewScrollView[RECORDINGVIEW]);\r
         Draw();\r
     }\r
 \r
@@ -414,8 +422,8 @@ namespace OHOS
     void RecordingView::OnStop()\r
     {\r
         View<RecordingPresenter>::OnStop();\r
-        RootView::GetInstance()->RemoveAll();\r
         RootView::GetInstance()->ClearOnKeyActListener();\r
+        ClearAll();\r
         return;\r
     }\r
 \r
index d0bd5b7..bc6f1e0 100644 (file)
@@ -2,8 +2,12 @@
 #include "soundandvibration/include/SoundAndVibrationVolumeSettingPresenter.h"
 #include "wearable_log.h"
 #include "ConfigModel.h"
+#include "common/image_cache_manager.h"
+
 namespace OHOS
 {
+
+    static constexpr const char *VOLUMECONTROLVECTORIMAGEPATH = "/user/res/VolumeControlVector.bin";
     static SoundAndVibrationVolumeSettingView *g_pSoundAndVibrationVolumeSettingView{nullptr};
 
     SoundAndVibrationVolumeSettingView::SoundAndVibrationVolumeSettingView(uint8_t VolumeType)
@@ -31,19 +35,10 @@ namespace OHOS
         {
             ScrollView->RemoveAll();
 
-            // int volume = VolumeProcess->GetValue();
-            // if (m_VolumeType == SYSTEM_VOLUME)
-            // {
-            //     ConfigModel::GetInstance()->SetSystemVolume(volume);
-            // }
-            // else if (m_VolumeType == CALL_VOLUME)
-            // {
-            //     ConfigModel::GetInstance()->SetCallVolume(volume);
-            // }
-
             delete VolumeProcess;
             VolumeProcess = nullptr;
 
+            ImageCacheManager::GetInstance().UnloadSingleRes(VOLUMECONTROLVECTORIMAGEPATH);
             delete VolumeVetor;
             VolumeVetor = nullptr;
 
@@ -110,8 +105,13 @@ namespace OHOS
             return nullptr;
         }
         VolumeVetor->SetPosition(213, 213, 40, 40);
-        const char *image = "/user/res/VolumeControlVector.bin";
-        VolumeVetor->SetSrc(image);
+        ImageInfo *imgInfo = ImageCacheManager::GetInstance().LoadSingleRes(VOLUMECONTROLVECTORIMAGEPATH);
+        if (imgInfo == nullptr)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Load image failed!");
+            return nullptr;
+        }
+        VolumeVetor->SetSrc(imgInfo);
 
         if (listener == nullptr)
         {
index b93a9ce..7dc97fa 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/en.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/en.lang differ
index 436b3d5..29e8216 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/ja.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/ja.lang differ
index 28707bb..0769074 100644 (file)
@@ -480,7 +480,9 @@ enum UIResourceTextId : uint16_t {
     STR_FRI = 467,\r
     STR_SATUR = 468,\r
     STR_SUN = 469,\r
-    STR_MAX_ID = 470,\r
+    STR_RECORDING_LIST = 470,\r
+    STR_CRLEMPTY = 471,\r
+    STR_MAX_ID = 472,\r
 }; // UIResourceTextId\r
 
 enum FontLanguageId : uint8_t {
index 81c0ab9..22553ae 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/zh.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/zh.lang differ