将录音删除视图修改为录音视图的子视图
authorluozheng <1732036298@qq.com>
Thu, 7 Mar 2024 03:06:19 +0000 (11:06 +0800)
committerluozheng <1732036298@qq.com>
Thu, 7 Mar 2024 03:06:19 +0000 (11:06 +0800)
14 files changed:
code/sdk/application/wearable/fd230app/CMakeLists.txt
code/sdk/application/wearable/fd230app/nativelauncher/include/AppViewIDs.h
code/sdk/application/wearable/fd230app/nativelauncher/include/NativeLauncher.h
code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp
code/sdk/application/wearable/fd230app/nativeui/record/include/RecordDeletePresenter.h [deleted file]
code/sdk/application/wearable/fd230app/nativeui/record/include/RecordDeleteView.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/RecordDeletePresenter.cpp [deleted file]
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/RecordingPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingView.cpp
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/record/RECORD_DELETE_BACKGROUND.bin [deleted file]

index aca2248..1b9228f 100644 (file)
@@ -312,9 +312,7 @@ set(SOURCES
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/classicbluetooth/src/ClassicBlueToothView.cpp
 
     #录音
-    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/record/src/RecordDeletePresenter.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/record/src/RecordDeleteView.cpp
-    
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/record/src/RecordGoingView.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/record/src/RecordingPlayerView.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/record/src/RecordingListAdapter.cpp
index bf6d211..26f6093 100644 (file)
@@ -57,7 +57,6 @@ typedef enum : uint16_t
     VIEW_FAST_TRAINING_ATTENTION, // 快速训练项目选择超出提示
     /* ----------------------------------- 录音 ----------------------------------- */
     VIEW_RECORD,
-    VIEW_RECORD_DELETE,
     /* ---------------------------------- 界面 ---------------------------------- */
     VIEW_DIAL,     // 切换表盘
     VIEW_MESSAGE,  // 信息通知
index 3c204b4..13ac2e9 100644 (file)
@@ -32,8 +32,6 @@ namespace OHOS
         void InitUISampleSlice(void);
         /* ----------------------------------- 录音 ----------------------------------- */
         void InitRecordingSlice(void);
-        void InitRecordingPlaySlice(void);
-        void InitRecordingDeleteSlice(void);
         /* ----------------------------------- 天气 ----------------------------------- */
         void InitWeatherSlice(void);
         void InitWeatherReportSlice(void);
index da6d71b..79b9aac 100644 (file)
 
 #include "record/include/RecordingPresenter.h"
 #include "record/include/RecordingView.h"
-#include "record/include/RecordDeletePresenter.h"
-#include "record/include/RecordDeleteView.h"
 
 #include "BluetoothHeadsetEvent.h"
 #include "graphic_hardware_config.h"
@@ -163,8 +161,7 @@ namespace OHOS
         {VIEW_FAST_TRAINING_ATTENTION, &NativeLauncher::InitFastTrainingAttentionSlice},
 
         {VIEW_RECORD, &NativeLauncher::InitRecordingSlice}, // 录音实例化地址
-        {VIEW_RECORD_DELETE, &NativeLauncher::InitRecordingDeleteSlice},
-
+        
         {VIEW_MESSAGE, &NativeLauncher::InitMessageSlice},
         {VIEW_ROTATE, &NativeLauncher::InitRotateSlice},
         {VIEW_DIALUPDATE, &NativeLauncher::InitDialUpdateSlice},
@@ -651,16 +648,5 @@ namespace OHOS
         }
         NativeAbility::GetInstance().AddSliceProxy(VIEW_RECORD, record);
     }
-
-    void NativeLauncher::InitRecordingDeleteSlice(void)
-    {
-        SliceProxy *recorddelete = new AbilitySliceProxy<RecordDeleteView, RecordDeletePresenter>;
-        if (recorddelete == nullptr)
-        {
-            return;
-        }
-        NativeAbility::GetInstance().AddSliceProxy(VIEW_RECORD_DELETE, recorddelete);
-    }
-
     
 }
diff --git a/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordDeletePresenter.h b/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordDeletePresenter.h
deleted file mode 100644 (file)
index e43232e..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef RECORD_DELETE_PRESENTER_H\r
-#define RECORD_DELETE_PRESENTER_H\r
-\r
-#include "Presenter.h"\r
-#include "RecordDeleteView.h"\r
-#include <iostream>\r
-#include <string>\r
-#include <cstdio>\r
-namespace OHOS\r
-{\r
-    class RecordDeleteView;\r
-\r
-    class RecordDeletePresenter : public Presenter<RecordDeleteView>,\r
-                                  public UIView::OnClickListener,\r
-                                  public UIView::OnDragListener\r
-    {\r
-    public:\r
-        RecordDeletePresenter();\r
-        virtual ~RecordDeletePresenter();\r
-\r
-        void OnStart() override;\r
-        void OnPause() override;\r
-        void OnResume() override;\r
-        void OnStop() override;\r
-\r
-        static RecordDeletePresenter *GetInstance();\r
-        void deleteFile(const char *filepath);\r
-\r
-    private:\r
-        // 因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承;\r
-        bool OnClick(UIView &view, const ClickEvent &event) override;\r
-        bool OnDrag(UIView &view, const DragEvent &event) override;\r
-    };\r
-} // namespace OHOS\r
-\r
-#endif // SLEEPDETAIL_PRESENTER_H
\ No newline at end of file
index e210c41..0487760 100644 (file)
@@ -4,38 +4,45 @@
 #include "BaseView.h"\r
 #include "View.h"\r
 \r
-#include "components/ui_view_group.h"\r
+#include "components/ui_scroll_view.h"\r
 #include "components/ui_image_view.h"\r
 #include "components/ui_button.h"\r
+#include "components/ui_label_ext.h"\r
 namespace OHOS\r
 {\r
-    static const char *RECORD_DELETE_ON_BUTTON_VIEWID = "RECORD_DELETE_ON_BUTTON";   // 录音删除\r
-    static const char *RECORD_DELETE_OFF_BUTTON_VIEWID = "RECORD_DELETE_OFF_BUTTON"; // 录音不删除\r
-    class RecordDeletePresenter;\r
-    class RecordDeleteView : public View<RecordDeletePresenter>\r
+\r
+    class RecordDeleteView\r
     {\r
 \r
     public:\r
+        struct LabelConfig\r
+        {\r
+            int16_t left;\r
+            int16_t top;\r
+            int16_t width;\r
+            int16_t height;\r
+            int16_t fontSize;      // 字体大小\r
+            int16_t lineHeigh;     // 行高\r
+            const char *text;      // 文本\r
+            uint8_t lineBreakMode; // 断行模式。\r
+        };\r
         RecordDeleteView();\r
         virtual ~RecordDeleteView();\r
         static RecordDeleteView *GetInstance(void);\r
-\r
-        void OnStart() override;\r
-        void OnSetUpView() override;\r
-        void OnTearDownView() override;\r
-        void OnStop() override;\r
+        UIScrollView *RecordDeleteViewInit(void);\r
+        void ClearAll(void);\r
 \r
     private:\r
-        void InitView(void);\r
-        void DeInitView(void);\r
-\r
-        UIViewGroup *container_ = nullptr;\r
-        UIImageView *RECORD_DELETE_BACKGROUND_IMAGE = nullptr;\r
-        UIButton *RECORD_DELETE_ON_BUTTON = nullptr;  // 是否删除录音:是\r
-        UIButton *RECORD_DELETE_OFF_BUTTON = nullptr; // 是否删除录音:否\r
-\r
-        UIView::OnClickListener *RECORD_DELETE_ON_BUTTON_CLICK{nullptr}; //删除录音按钮点击回调\r
-        UIView::OnClickListener *RECORD_DELETE_OFF_BUTTON_CLICK{nullptr};//不删除录音按钮点击回调\r
+        bool SetUpScrollView(void);\r
+        UILabelExt *SetUpLabel(LabelConfig &labelconfig); // 设置标签\r
+        bool SetRecordDeleteViewLabel(void);\r
+        bool SetUpButton(void);\r
+        UIScrollView *RecordDeleteViewScrollView{nullptr};\r
+        UILabelExt *TitleLabel{nullptr};\r
+        UILabelExt *AttentionLabel[2]{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 c93de5b..0b9e427 100644 (file)
@@ -14,10 +14,17 @@ namespace OHOS
         RECORDINGLISTVIEW,   // 录音列表视图(subView)\r
         RECORDGOINGVIEW,     // 正在录音视图(subView)\r
         RECORDINGPLAYERVIEW, // 录音播放视图(subView)\r
+        RECORDINGDELETEVIEW, // 录音删除视图(subView)\r
         MAX_RECORDINGVIEWID,\r
     } RECORDINGVIEWID;\r
-    static const char *RECORD_GOING_BUTTON_VIEWID = "RECORD_GOING_BUTTON";               // 停止录音按钮id\r
-    static const char *RECORD_BUTTON = "RecordButton";                                   // 录音按钮id\r
+\r
+    /*正在录音视图*/\r
+    static const char *RECORD_GOING_BUTTON_VIEWID = "RECORD_GOING_BUTTON"; // 停止录音按钮id\r
+\r
+    /*录音视图*/\r
+    static const char *RECORD_BUTTON = "RecordButton"; // 录音按钮id\r
+\r
+    /*录音播放视图*/\r
     static const char *RECORD_PLAY_PAUSE_CHECKBOX_VIEWID = "RECORD_PLAY_PAUSE_CHECKBOX"; // 播放和暂停复选框视图id\r
     static const char *RECORD_PLAY_PROVE_BUTTON_VIEWID = "RECORD_PLAY_PROVE_BUTTON";     // 上一首按钮的视图id\r
     static const char *RECORD_PLAY_NEXT_BUTTON_VIEWID = "RECORD_PLAY_NEXT_BUTTON";       // 下一首按钮的视图id\r
@@ -25,9 +32,13 @@ namespace OHOS
     static const char *RECORD_PLAY_VOLUME_BUTTON_VIEWID = "RECORD_PLAY_VOLUME_BUTTON";   // 音量按钮的视图id\r
     static const char *RECORD_PLAY_PLAYERPROGRESSBAR = "RECORD_PLAY_PLAYERPROGRESSBAR";  // 播放进度条视图id\r
 \r
+    /*录音删除视图*/\r
+    static const char *RECORD_DELETE_ON_BUTTON_VIEWID = "RECORD_DELETE_ON_BUTTON";   // 录音删除\r
+    static const char *RECORD_DELETE_OFF_BUTTON_VIEWID = "RECORD_DELETE_OFF_BUTTON"; // 录音不删除\r
+\r
     /*\r
-    *录音播放器界面点击监听类\r
-    */\r
+     *录音播放器界面点击监听类\r
+     */\r
     class RecordingPlayerViewOnClickListener : public UIView::OnClickListener\r
     {\r
     public:\r
@@ -39,8 +50,8 @@ namespace OHOS
     };\r
 \r
     /*\r
-    *录音列表点击监听类\r
-    */\r
+     *录音列表点击监听类\r
+     */\r
     class RecordListViewOnClickListener : public UIView::OnClickListener\r
     {\r
     public:\r
@@ -69,6 +80,7 @@ namespace OHOS
 \r
         static RecordingPresenter *GetInstance();\r
         int convertNumericDateTime(const char *numericDateTime, char *formattedDateTime);\r
+        void deleteFile(const char *filepath);\r
 \r
     private:\r
         // 因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承;\r
index 437ab5d..846eb1a 100644 (file)
 #include "record/include/RecordListView.h"\r
 #include "record/include/RecordGoingView.h"\r
 #include "record/include/RecordingPlayerView.h"\r
+#include "record/include/RecordDeleteView.h"\r
 \r
 #define NUM_MAX_RECORDINGVIEWSCROLLVIEW 10\r
 namespace OHOS\r
 {\r
-\r
     class RecordingPresenter;\r
     class RecordingView : public View<RecordingPresenter>\r
     {\r
@@ -41,6 +41,7 @@ namespace OHOS
         bool ChangeRecordListView(int16_t thisView);      // 切换到"录音列表"视图\r
         bool ChangeRecordGoingView(int16_t thisView);     // 切换到“正在录音”视图\r
         bool ChangeRecordingPlayerView(int16_t thisView); // 切换到“录音播放”视图\r
+        bool ChangeRecordDeleteView(int16_t thisView);    // 切换到“录音删除”视图\r
         bool ClickFunc(int16_t interface);\r
         void ChangeView(int16_t hideView, int16_t showView);\r
         UIScrollView *GetRecordingViewScrollView(int i);\r
@@ -55,6 +56,7 @@ namespace OHOS
         RecordListView *p_RecordListView{nullptr};\r
         RecordGoingView *p_RecordGoingView{nullptr};\r
         RecordingPlayerView *p_RecordingPlayerView{nullptr};\r
+        RecordDeleteView *p_RecordDeleteView{nullptr};\r
 \r
     private:\r
         void RecordingViewInit(void);\r
diff --git a/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordDeletePresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordDeletePresenter.cpp
deleted file mode 100644 (file)
index bef41c0..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-#include "AppViewIDs.h"\r
-#include "NativeAbility.h"\r
-#include "graphic_math.h"\r
-#include "string.h"\r
-#include "record/include/RecordDeletePresenter.h"\r
-\r
-namespace OHOS\r
-{\r
-\r
-    // 当前Presenter属性实例化的内存指针\r
-    static RecordDeletePresenter *g_pRecordDeletePresenter = nullptr;\r
-\r
-    RecordDeletePresenter::RecordDeletePresenter()\r
-    {\r
-\r
-        g_pRecordDeletePresenter = this;\r
-    }\r
-\r
-    RecordDeletePresenter::~RecordDeletePresenter()\r
-    {\r
-\r
-        g_pRecordDeletePresenter = nullptr;\r
-    }\r
-\r
-    RecordDeletePresenter *RecordDeletePresenter::GetInstance()\r
-    {\r
-\r
-        return g_pRecordDeletePresenter;\r
-    }\r
-\r
-    void RecordDeletePresenter::OnStart()\r
-    {\r
-\r
-        Presenter<RecordDeleteView>::OnStart();\r
-    }\r
-\r
-    void RecordDeletePresenter::OnPause(void)\r
-    {\r
-\r
-        Presenter<RecordDeleteView>::OnPause();\r
-    }\r
-\r
-    void RecordDeletePresenter::OnResume(void)\r
-    {\r
-\r
-        Presenter<RecordDeleteView>::OnResume();\r
-    }\r
-\r
-    void RecordDeletePresenter::OnStop(void)\r
-    {\r
-\r
-        Presenter<RecordDeleteView>::OnStop();\r
-    }\r
-\r
-    bool RecordDeletePresenter::OnDrag(UIView &view, const DragEvent &event)\r
-    {\r
-        UNUSED(view);\r
-        UNUSED(event);\r
-    }\r
-\r
-    // 删除文件\r
-    void RecordDeletePresenter::deleteFile(const char *filepath)\r
-    {\r
-        if (std::remove(filepath) == 0)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Deleted file: %s", filepath);\r
-        }\r
-        else\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to delete file!");\r
-        }\r
-    }\r
-\r
-    bool RecordDeletePresenter::OnClick(UIView &view, const ClickEvent &event)\r
-    {\r
-        UNUSED(event);\r
-        // 根据控件id查找是哪个控件触发了点击回调\r
-        if (strcmp(view.GetViewId(), RECORD_DELETE_ON_BUTTON_VIEWID) == 0)\r
-        {\r
-            deleteFile("/user/res/record/recording/record_test.mp3");\r
-            //NativeAbility::GetInstance().ChangeSlice(VIEW_RECORD_PLAY);\r
-            return true;\r
-        }\r
-        else if (strcmp(view.GetViewId(), RECORD_DELETE_OFF_BUTTON_VIEWID) == 0)\r
-        {\r
-            //NativeAbility::GetInstance().ChangeSlice(VIEW_RECORD_PLAY);\r
-            return true;\r
-        }\r
-        return false;\r
-    }\r
-}
\ No newline at end of file
index b48232a..ba4bacf 100644 (file)
 #include "record/include/RecordDeleteView.h"\r
-#include "record/include/RecordDeletePresenter.h"\r
-\r
-#include "UiConfig.h"\r
+#include "record/include/RecordingPresenter.h"\r
+#include "wearable_log.h"\r
 \r
 namespace OHOS\r
 {\r
-    static constexpr const char *PNG_RECORD_DELETE_BACKGROUND_IMAGE = APP_RES_PATH "/record/RECORD_DELETE_BACKGROUND.bin"; // 删除录音的背景图\r
     static RecordDeleteView *g_pRecordDeleteView{nullptr};\r
 \r
     RecordDeleteView::RecordDeleteView()\r
     {\r
-\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordDeleteView::RecordDeleteView");\r
         g_pRecordDeleteView = this;\r
     }\r
 \r
     RecordDeleteView::~RecordDeleteView()\r
     {\r
-        DeInitView();\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordDeleteView::~RecordDeleteView");\r
+        ClearAll();\r
         g_pRecordDeleteView = nullptr;\r
     }\r
 \r
     RecordDeleteView *RecordDeleteView::GetInstance()\r
     {\r
-\r
         return g_pRecordDeleteView;\r
     }\r
 \r
-    void RecordDeleteView::InitView()\r
+    void RecordDeleteView::ClearAll()\r
     {\r
-        if (container_ == nullptr)\r
+        if (initViewStatus == true)\r
         {\r
-            container_ = new UIViewGroup();\r
-            container_->SetPosition(0, 0, 466, 466);\r
-            container_->SetStyle(STYLE_BACKGROUND_OPA, 0);\r
-        }\r
+            RecordDeleteViewScrollView->RemoveAll();\r
 \r
-        // Add ImageView to App\r
-        if (RECORD_DELETE_BACKGROUND_IMAGE == nullptr)\r
-        {\r
-            RECORD_DELETE_BACKGROUND_IMAGE = new UIImageView();\r
-        }\r
-        RECORD_DELETE_BACKGROUND_IMAGE->SetPosition(0, 0);\r
-        RECORD_DELETE_BACKGROUND_IMAGE->Resize(466, 466);\r
-        RECORD_DELETE_BACKGROUND_IMAGE->SetViewId("RECORD_DELETE_BACKGROUND_IMAGE");\r
-        RECORD_DELETE_BACKGROUND_IMAGE->SetSrc(PNG_RECORD_DELETE_BACKGROUND_IMAGE);\r
+            delete TitleLabel;\r
+            TitleLabel = nullptr;\r
 \r
-        // Add to rootView\r
-        container_->Add(RECORD_DELETE_BACKGROUND_IMAGE);\r
-        RECORD_DELETE_BACKGROUND_IMAGE->SetVisible(true);\r
+            for (int i = 0; i < 2; i++)\r
+            {\r
+                delete AttentionLabel[i];\r
+                AttentionLabel[i] = nullptr;\r
+            }\r
 \r
-        // Add Button to App\r
-        if (RECORD_DELETE_ON_BUTTON == nullptr)\r
-        {\r
-            RECORD_DELETE_ON_BUTTON = new UIButton();\r
+            delete RECORD_DELETE_ON_BUTTON;\r
+            RECORD_DELETE_ON_BUTTON = nullptr;\r
+\r
+            delete RECORD_DELETE_OFF_BUTTON;\r
+            RECORD_DELETE_OFF_BUTTON = nullptr;\r
+\r
+            delete RecordDeleteViewScrollView;\r
+            RecordDeleteViewScrollView = nullptr;\r
         }\r
-        RECORD_DELETE_ON_BUTTON->SetPosition(254, 299);\r
-        RECORD_DELETE_ON_BUTTON->Resize(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->SetStyle(STYLE_BORDER_COLOR, 0xffffffff);\r
-        RECORD_DELETE_ON_BUTTON->SetImageSrc(PNG_SYSTEM_CHECK_ON_IMAGE, nullptr);\r
-        RECORD_DELETE_ON_BUTTON->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xffffffff, UIButton::PRESSED);\r
-        RECORD_DELETE_ON_BUTTON->SetStyleForState(STYLE_BACKGROUND_OPA, 0x2b, UIButton::PRESSED);\r
-        RECORD_DELETE_ON_BUTTON->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);\r
-\r
-        // Add the CallBack about events\r
-        RECORD_DELETE_ON_BUTTON_CLICK = static_cast<UIView::OnClickListener *>(RecordDeletePresenter::GetInstance());\r
-        RECORD_DELETE_ON_BUTTON->SetOnClickListener(RECORD_DELETE_ON_BUTTON_CLICK);\r
-        // Add to rootView\r
-        container_->Add(RECORD_DELETE_ON_BUTTON);\r
-        RECORD_DELETE_ON_BUTTON->SetVisible(true);\r
-\r
-        // Add Button to App\r
-        if (RECORD_DELETE_OFF_BUTTON == nullptr)\r
+    }\r
+\r
+    bool RecordDeleteView::SetUpScrollView(void)\r
+    {\r
+        RecordDeleteViewScrollView = new UIScrollView();\r
+        if (RecordDeleteViewScrollView == nullptr)\r
         {\r
-            RECORD_DELETE_OFF_BUTTON = new UIButton();\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordDeleteView::RecordDeleteViewScrollView new fail!");\r
+            return false;\r
         }\r
-        RECORD_DELETE_OFF_BUTTON->SetPosition(111, 299);\r
-        RECORD_DELETE_OFF_BUTTON->Resize(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->SetStyle(STYLE_BORDER_COLOR, 0xffffffff);\r
-        RECORD_DELETE_OFF_BUTTON->SetImageSrc(PNG_SYSTEM_CHECK_OFF_IMAGE, nullptr);\r
-        RECORD_DELETE_OFF_BUTTON->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xffffffff, UIButton::PRESSED);\r
-        RECORD_DELETE_OFF_BUTTON->SetStyleForState(STYLE_BACKGROUND_OPA, 0x2b, UIButton::PRESSED);\r
-        RECORD_DELETE_OFF_BUTTON->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);\r
-\r
-        // Add the CallBack about events\r
-        RECORD_DELETE_OFF_BUTTON_CLICK = static_cast<UIView::OnClickListener *>(RecordDeletePresenter::GetInstance());\r
-        RECORD_DELETE_OFF_BUTTON->SetOnClickListener(RECORD_DELETE_OFF_BUTTON_CLICK);\r
-        // Add to rootView\r
-        container_->Add(RECORD_DELETE_OFF_BUTTON);\r
-        RECORD_DELETE_OFF_BUTTON->SetVisible(true);\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
-    void RecordDeleteView::DeInitView()\r
+    UILabelExt *RecordDeleteView::SetUpLabel(LabelConfig &labelconfig) // 设置标签\r
     {\r
-        if (container_ != nullptr)\r
+        UILabelExt *label = new UILabelExt();\r
+        if (label == nullptr)\r
         {\r
-            container_->RemoveAll();\r
+            return nullptr;\r
         }\r
-        if (RECORD_DELETE_BACKGROUND_IMAGE != nullptr)\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->SetText(labelconfig.text);                                                             // 内容\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 RecordDeleteView::SetRecordDeleteViewLabel(void)\r
+    {\r
+        LabelConfig labelconfig = {\r
+            .left = 173,\r
+            .top = 52,\r
+            .width = 200,\r
+            .height = 40,\r
+            .fontSize = 30,\r
+            .lineHeigh = 35,\r
+            .text = "删除录音",\r
+            .lineBreakMode = UILabel::LINE_BREAK_ADAPT,\r
+        };\r
+        TitleLabel = SetUpLabel(labelconfig);\r
+        if (nullptr == TitleLabel)\r
         {\r
-            delete RECORD_DELETE_BACKGROUND_IMAGE;\r
-            RECORD_DELETE_BACKGROUND_IMAGE = nullptr;\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordDeleteView::TitleLabel is nullptr!");\r
+            return false;\r
         }\r
-        if (RECORD_DELETE_ON_BUTTON != nullptr)\r
+\r
+        labelconfig = {\r
+            .left = 33,\r
+            .top = 145,\r
+            .width = 400,\r
+            .height = 124,\r
+            .fontSize = 30,\r
+            .lineHeigh = 35,\r
+            .text = "此操作将               该录音\n\n是否确认?",\r
+            .lineBreakMode = UILabel::LINE_BREAK_ELLIPSIS,\r
+        };\r
+\r
+        AttentionLabel[0] = SetUpLabel(labelconfig);\r
+        if (nullptr == AttentionLabel[0])\r
         {\r
-            delete RECORD_DELETE_ON_BUTTON;\r
-            RECORD_DELETE_ON_BUTTON = nullptr;\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordDeleteView::AttentionLabel[0] is nullptr!");\r
+            return false;\r
         }\r
-        if (RECORD_DELETE_OFF_BUTTON != nullptr)\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
         {\r
-            delete RECORD_DELETE_OFF_BUTTON;\r
-            RECORD_DELETE_OFF_BUTTON = nullptr;\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordDeleteView::AttentionLabel[1] is nullptr!");\r
+            return false;\r
         }\r
-        delete container_;\r
-        container_ = nullptr;\r
-    }\r
 \r
-    void RecordDeleteView::OnStart()\r
-    {\r
-        View<RecordDeletePresenter>::OnStart();\r
-        InitView();\r
-        RootView::GetInstance()->Add(container_);\r
+        return true;\r
     }\r
 \r
-    void RecordDeleteView::OnSetUpView()\r
+    bool RecordDeleteView::SetUpButton(void)\r
     {\r
+        UIView::OnClickListener *clickLister = static_cast<UIView::OnClickListener *>(RecordingPresenter::GetInstance());\r
+        RECORD_DELETE_OFF_BUTTON = new UIButton();\r
+        if (RECORD_DELETE_OFF_BUTTON == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordDeleteView::RECORD_DELETE_OFF_BUTTON is new fail!");\r
+            return false;\r
+        }\r
+        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->SetImageSrc("/user/res/SYSTEM_CheckOff.bin", "/user/res/SYSTEM_CheckOff.bin");\r
+        RECORD_DELETE_OFF_BUTTON->SetOnClickListener(clickLister);\r
 \r
-        View<RecordDeletePresenter>::OnSetUpView();\r
-        Draw();\r
-    }\r
-\r
-    void RecordDeleteView::OnTearDownView()\r
-    {\r
+        RECORD_DELETE_ON_BUTTON = new UIButton();\r
+        if (RECORD_DELETE_ON_BUTTON == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordDeleteView::RECORD_DELETE_ON_BUTTON is new fail!");\r
+            return false;\r
+        }\r
+        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->SetImageSrc("/user/res/SYSTEM_CheckOn.bin", "/user/res/SYSTEM_CheckOn.bin");\r
+        RECORD_DELETE_ON_BUTTON->SetOnClickListener(clickLister);\r
 \r
-        View<RecordDeletePresenter>::OnTearDownView();\r
-        return;\r
+        return true;\r
     }\r
 \r
-    void RecordDeleteView::OnStop()\r
+    UIScrollView *RecordDeleteView::RecordDeleteViewInit(void)\r
     {\r
+        if (!SetUpScrollView())\r
+        {\r
+            return nullptr;\r
+        }\r
 \r
-        View<RecordDeletePresenter>::OnStop();\r
-        RootView::GetInstance()->RemoveAll();\r
-        return;\r
+        if (!SetRecordDeleteViewLabel())\r
+        {\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
 }
\ No newline at end of file
index ac2ebfc..23de4b7 100644 (file)
@@ -104,7 +104,7 @@ namespace OHOS
         TitleLabel = SetUpLabel(labelconfig);\r
         if (nullptr == TitleLabel)\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordGoingView::SetRecordGoingViewLabel is nullptr!");\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordGoingView::TitleLabel is nullptr!");\r
             return false;\r
         }\r
         labelconfig.top = 370;\r
index 833fba4..84160cc 100644 (file)
@@ -120,6 +120,21 @@ namespace OHOS
         return 1; // 转换成功\r
     }\r
 \r
+    /*\r
+     * @brief 删除文件\r
+     */\r
+    void RecordingPresenter::deleteFile(const char *filepath)\r
+    {\r
+        if (std::remove(filepath) == 0)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Deleted file: %s", filepath);\r
+        }\r
+        else\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to delete file!");\r
+        }\r
+    }\r
+\r
 #ifdef __cplusplus\r
     extern "C"\r
     {\r
@@ -187,6 +202,17 @@ namespace OHOS
             RecordingModel::GetInstance()->Recording_StopTimer();\r
             return true;\r
         }\r
+        else if (strcmp(view.GetViewId(), RECORD_DELETE_ON_BUTTON_VIEWID) == 0)\r
+        {\r
+            deleteFile("/user/res/record/recording/record_test.mp3");\r
+            p_RecordingView->ChangeView(RECORDINGDELETEVIEW, RECORDINGPLAYERVIEW);\r
+            return true;\r
+        }\r
+        else if (strcmp(view.GetViewId(), RECORD_DELETE_OFF_BUTTON_VIEWID) == 0)\r
+        {\r
+            p_RecordingView->ChangeView(RECORDINGDELETEVIEW, RECORDINGPLAYERVIEW);\r
+            return true;\r
+        }\r
         return true;\r
     }\r
 \r
@@ -245,27 +271,30 @@ namespace OHOS
 \r
     bool RecordingPlayerViewOnClickListener::OnClick(UIView &view, const ClickEvent &event)\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
+\r
         if (strcmp(view.GetViewId(), RECORD_PLAY_PROVE_BUTTON_VIEWID) == 0)\r
         {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "recording player prove button being clicked!");\r
-\r
         }\r
         else if (strcmp(view.GetViewId(), RECORD_PLAY_NEXT_BUTTON_VIEWID) == 0)\r
         {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "recording player next button being clicked!");\r
-            \r
         }\r
         else if (strcmp(view.GetViewId(), RECORD_PLAY_DELETE_BUTTON_VIEWID) == 0)\r
         {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "recording player delete button being clicked!");\r
-            NativeAbility::GetInstance().ChangeSlice(VIEW_RECORD_DELETE);\r
-            \r
+            p_RecordingView->ChangeView(RECORDINGPLAYERVIEW, RECORDINGDELETEVIEW);\r
         }\r
         else if (strcmp(view.GetViewId(), RECORD_PLAY_VOLUME_BUTTON_VIEWID) == 0)\r
         {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "recording player volume button being clicked!");\r
             NativeAbility::GetInstance().ChangeSlice(VIEW_SYSTEM_VOLUME);\r
-            \r
         }\r
         return true;\r
     }\r
index 122d204..5314e21 100644 (file)
@@ -60,6 +60,9 @@ namespace OHOS
             delete p_RecordingPlayerView;\r
             p_RecordingPlayerView = nullptr;\r
 \r
+            delete p_RecordDeleteView;\r
+            p_RecordDeleteView = nullptr;\r
+\r
             delete RecordingViewScrollView[RECORDINGVIEW];\r
             RecordingViewScrollView[RECORDINGVIEW] = nullptr;\r
         }\r
@@ -197,7 +200,9 @@ namespace OHOS
         return RecordingViewScrollView[i];\r
     }\r
 \r
-    // 切换到“录音”视图\r
+    /*\r
+     * @brief 切换到“录音”视图\r
+     */\r
     bool RecordingView::ChangeRecordingView(int16_t thisView)\r
     {\r
         if (RecordingViewScrollView[thisView] == nullptr)\r
@@ -208,7 +213,9 @@ namespace OHOS
         return true;\r
     }\r
 \r
-    // 切换到录音列表视图\r
+    /*\r
+     * @brief 切换到录音列表视图\r
+     */\r
     bool RecordingView::ChangeRecordListView(int16_t thisView)\r
     {\r
         if (RecordingViewScrollView[thisView] == nullptr)\r
@@ -230,7 +237,9 @@ namespace OHOS
         return true;\r
     }\r
 \r
-    // 切换到“正在录音”视图\r
+    /*\r
+     * @brief 切换到“正在录音”视图\r
+     */\r
     bool RecordingView::ChangeRecordGoingView(int16_t thisView)\r
     {\r
         if (RecordingViewScrollView[thisView] == nullptr)\r
@@ -248,7 +257,9 @@ namespace OHOS
         return true;\r
     }\r
 \r
-    // 切换到“录音播放”视图\r
+    /*\r
+     * @brief 切换到“录音播放”视图\r
+     */\r
     bool RecordingView::ChangeRecordingPlayerView(int16_t thisView)\r
     {\r
         if (RecordingViewScrollView[thisView] == nullptr)\r
@@ -265,6 +276,26 @@ namespace OHOS
         }\r
         return true;\r
     }\r
+\r
+    /*\r
+     * @brief 切换到“录音删除”视图\r
+     */\r
+    bool RecordingView::ChangeRecordDeleteView(int16_t thisView)\r
+    {\r
+        if (RecordingViewScrollView[thisView] == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingView::ChangeRecordDeleteView");\r
+            p_RecordDeleteView = new RecordDeleteView();\r
+            if (p_RecordDeleteView == nullptr)\r
+            {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingView:: new scrollView[%d] fail", thisView);\r
+                return false;\r
+            }\r
+            RecordingViewScrollView[thisView] = p_RecordDeleteView->RecordDeleteViewInit();\r
+            RootView::GetInstance()->Add(RecordingViewScrollView[thisView]);\r
+        }\r
+        return true;\r
+    }\r
     /* -------------------------------------------------------------------------- */\r
     // 1.RecordingViewMapper:结构体定义了一个将视图ID映射到特定成员函数指针的映射表。\r
     struct RecordingViewMapper\r
@@ -278,7 +309,8 @@ namespace OHOS
         {RECORDINGVIEW, &RecordingView::ChangeRecordingView},\r
         {RECORDINGLISTVIEW, &RecordingView::ChangeRecordListView},\r
         {RECORDGOINGVIEW, &RecordingView::ChangeRecordGoingView},\r
-        {RECORDINGPLAYERVIEW,&RecordingView::ChangeRecordingPlayerView},\r
+        {RECORDINGPLAYERVIEW, &RecordingView::ChangeRecordingPlayerView},\r
+        {RECORDINGDELETEVIEW, &RecordingView::ChangeRecordDeleteView},\r
     };\r
 \r
     // 3.根据传入的interface参数执行相应视图ID关联的成员函数。\r
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/record/RECORD_DELETE_BACKGROUND.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/record/RECORD_DELETE_BACKGROUND.bin
deleted file mode 100644 (file)
index 6948674..0000000
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/record/RECORD_DELETE_BACKGROUND.bin and /dev/null differ