From: luozheng <1732036298@qq.com> Date: Thu, 7 Mar 2024 03:06:19 +0000 (+0800) Subject: 将录音删除视图修改为录音视图的子视图 X-Git-Tag: release_V1.2.70_20241020_135402~1274^2~19^2~10 X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=323a5cf9ea6439ac170b83d1ffd2cdcfc5680d58;p=mirrors%2FFD230.git 将录音删除视图修改为录音视图的子视图 --- diff --git a/code/sdk/application/wearable/fd230app/CMakeLists.txt b/code/sdk/application/wearable/fd230app/CMakeLists.txt index aca22488b..1b9228f3e 100644 --- a/code/sdk/application/wearable/fd230app/CMakeLists.txt +++ b/code/sdk/application/wearable/fd230app/CMakeLists.txt @@ -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 diff --git a/code/sdk/application/wearable/fd230app/nativelauncher/include/AppViewIDs.h b/code/sdk/application/wearable/fd230app/nativelauncher/include/AppViewIDs.h index bf6d21100..26f609361 100644 --- a/code/sdk/application/wearable/fd230app/nativelauncher/include/AppViewIDs.h +++ b/code/sdk/application/wearable/fd230app/nativelauncher/include/AppViewIDs.h @@ -57,7 +57,6 @@ typedef enum : uint16_t VIEW_FAST_TRAINING_ATTENTION, // 快速训练项目选择超出提示 /* ----------------------------------- 录音 ----------------------------------- */ VIEW_RECORD, - VIEW_RECORD_DELETE, /* ---------------------------------- 界面 ---------------------------------- */ VIEW_DIAL, // 切换表盘 VIEW_MESSAGE, // 信息通知 diff --git a/code/sdk/application/wearable/fd230app/nativelauncher/include/NativeLauncher.h b/code/sdk/application/wearable/fd230app/nativelauncher/include/NativeLauncher.h index 3c204b419..13ac2e994 100644 --- a/code/sdk/application/wearable/fd230app/nativelauncher/include/NativeLauncher.h +++ b/code/sdk/application/wearable/fd230app/nativelauncher/include/NativeLauncher.h @@ -32,8 +32,6 @@ namespace OHOS void InitUISampleSlice(void); /* ----------------------------------- 录音 ----------------------------------- */ void InitRecordingSlice(void); - void InitRecordingPlaySlice(void); - void InitRecordingDeleteSlice(void); /* ----------------------------------- 天气 ----------------------------------- */ void InitWeatherSlice(void); void InitWeatherReportSlice(void); diff --git a/code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp b/code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp index da6d71b28..79b9aac07 100644 --- a/code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp +++ b/code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp @@ -100,8 +100,6 @@ #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; - 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 index e43232efd..000000000 --- a/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordDeletePresenter.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef RECORD_DELETE_PRESENTER_H -#define RECORD_DELETE_PRESENTER_H - -#include "Presenter.h" -#include "RecordDeleteView.h" -#include -#include -#include -namespace OHOS -{ - class RecordDeleteView; - - class RecordDeletePresenter : public Presenter, - public UIView::OnClickListener, - public UIView::OnDragListener - { - public: - RecordDeletePresenter(); - virtual ~RecordDeletePresenter(); - - void OnStart() override; - void OnPause() override; - void OnResume() override; - void OnStop() override; - - static RecordDeletePresenter *GetInstance(); - void deleteFile(const char *filepath); - - private: - // 因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承; - bool OnClick(UIView &view, const ClickEvent &event) override; - bool OnDrag(UIView &view, const DragEvent &event) override; - }; -} // namespace OHOS - -#endif // SLEEPDETAIL_PRESENTER_H \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordDeleteView.h b/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordDeleteView.h index e210c4185..048776003 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordDeleteView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordDeleteView.h @@ -4,38 +4,45 @@ #include "BaseView.h" #include "View.h" -#include "components/ui_view_group.h" +#include "components/ui_scroll_view.h" #include "components/ui_image_view.h" #include "components/ui_button.h" +#include "components/ui_label_ext.h" namespace OHOS { - static const char *RECORD_DELETE_ON_BUTTON_VIEWID = "RECORD_DELETE_ON_BUTTON"; // 录音删除 - static const char *RECORD_DELETE_OFF_BUTTON_VIEWID = "RECORD_DELETE_OFF_BUTTON"; // 录音不删除 - class RecordDeletePresenter; - class RecordDeleteView : public View + + class RecordDeleteView { public: + struct LabelConfig + { + int16_t left; + int16_t top; + int16_t width; + int16_t height; + int16_t fontSize; // 字体大小 + int16_t lineHeigh; // 行高 + const char *text; // 文本 + uint8_t lineBreakMode; // 断行模式。 + }; RecordDeleteView(); virtual ~RecordDeleteView(); static RecordDeleteView *GetInstance(void); - - void OnStart() override; - void OnSetUpView() override; - void OnTearDownView() override; - void OnStop() override; + UIScrollView *RecordDeleteViewInit(void); + void ClearAll(void); private: - void InitView(void); - void DeInitView(void); - - UIViewGroup *container_ = nullptr; - UIImageView *RECORD_DELETE_BACKGROUND_IMAGE = nullptr; - UIButton *RECORD_DELETE_ON_BUTTON = nullptr; // 是否删除录音:是 - UIButton *RECORD_DELETE_OFF_BUTTON = nullptr; // 是否删除录音:否 - - UIView::OnClickListener *RECORD_DELETE_ON_BUTTON_CLICK{nullptr}; //删除录音按钮点击回调 - UIView::OnClickListener *RECORD_DELETE_OFF_BUTTON_CLICK{nullptr};//不删除录音按钮点击回调 + bool SetUpScrollView(void); + UILabelExt *SetUpLabel(LabelConfig &labelconfig); // 设置标签 + bool SetRecordDeleteViewLabel(void); + bool SetUpButton(void); + UIScrollView *RecordDeleteViewScrollView{nullptr}; + UILabelExt *TitleLabel{nullptr}; + UILabelExt *AttentionLabel[2]{nullptr}; + UIButton *RECORD_DELETE_ON_BUTTON{nullptr}; // 是否删除录音:是 + UIButton *RECORD_DELETE_OFF_BUTTON{nullptr}; // 是否删除录音:否 + bool initViewStatus{false}; }; } // namespace OHOS #endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordingPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordingPresenter.h index c93de5b32..0b9e42738 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordingPresenter.h +++ b/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordingPresenter.h @@ -14,10 +14,17 @@ namespace OHOS RECORDINGLISTVIEW, // 录音列表视图(subView) RECORDGOINGVIEW, // 正在录音视图(subView) RECORDINGPLAYERVIEW, // 录音播放视图(subView) + RECORDINGDELETEVIEW, // 录音删除视图(subView) MAX_RECORDINGVIEWID, } RECORDINGVIEWID; - static const char *RECORD_GOING_BUTTON_VIEWID = "RECORD_GOING_BUTTON"; // 停止录音按钮id - static const char *RECORD_BUTTON = "RecordButton"; // 录音按钮id + + /*正在录音视图*/ + static const char *RECORD_GOING_BUTTON_VIEWID = "RECORD_GOING_BUTTON"; // 停止录音按钮id + + /*录音视图*/ + static const char *RECORD_BUTTON = "RecordButton"; // 录音按钮id + + /*录音播放视图*/ static const char *RECORD_PLAY_PAUSE_CHECKBOX_VIEWID = "RECORD_PLAY_PAUSE_CHECKBOX"; // 播放和暂停复选框视图id static const char *RECORD_PLAY_PROVE_BUTTON_VIEWID = "RECORD_PLAY_PROVE_BUTTON"; // 上一首按钮的视图id static const char *RECORD_PLAY_NEXT_BUTTON_VIEWID = "RECORD_PLAY_NEXT_BUTTON"; // 下一首按钮的视图id @@ -25,9 +32,13 @@ namespace OHOS static const char *RECORD_PLAY_VOLUME_BUTTON_VIEWID = "RECORD_PLAY_VOLUME_BUTTON"; // 音量按钮的视图id static const char *RECORD_PLAY_PLAYERPROGRESSBAR = "RECORD_PLAY_PLAYERPROGRESSBAR"; // 播放进度条视图id + /*录音删除视图*/ + static const char *RECORD_DELETE_ON_BUTTON_VIEWID = "RECORD_DELETE_ON_BUTTON"; // 录音删除 + static const char *RECORD_DELETE_OFF_BUTTON_VIEWID = "RECORD_DELETE_OFF_BUTTON"; // 录音不删除 + /* - *录音播放器界面点击监听类 - */ + *录音播放器界面点击监听类 + */ class RecordingPlayerViewOnClickListener : public UIView::OnClickListener { public: @@ -39,8 +50,8 @@ namespace OHOS }; /* - *录音列表点击监听类 - */ + *录音列表点击监听类 + */ class RecordListViewOnClickListener : public UIView::OnClickListener { public: @@ -69,6 +80,7 @@ namespace OHOS static RecordingPresenter *GetInstance(); int convertNumericDateTime(const char *numericDateTime, char *formattedDateTime); + void deleteFile(const char *filepath); private: // 因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承; diff --git a/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordingView.h b/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordingView.h index 437ab5df0..846eb1ada 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordingView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordingView.h @@ -14,11 +14,11 @@ #include "record/include/RecordListView.h" #include "record/include/RecordGoingView.h" #include "record/include/RecordingPlayerView.h" +#include "record/include/RecordDeleteView.h" #define NUM_MAX_RECORDINGVIEWSCROLLVIEW 10 namespace OHOS { - class RecordingPresenter; class RecordingView : public View { @@ -41,6 +41,7 @@ namespace OHOS bool ChangeRecordListView(int16_t thisView); // 切换到"录音列表"视图 bool ChangeRecordGoingView(int16_t thisView); // 切换到“正在录音”视图 bool ChangeRecordingPlayerView(int16_t thisView); // 切换到“录音播放”视图 + bool ChangeRecordDeleteView(int16_t thisView); // 切换到“录音删除”视图 bool ClickFunc(int16_t interface); void ChangeView(int16_t hideView, int16_t showView); UIScrollView *GetRecordingViewScrollView(int i); @@ -55,6 +56,7 @@ namespace OHOS RecordListView *p_RecordListView{nullptr}; RecordGoingView *p_RecordGoingView{nullptr}; RecordingPlayerView *p_RecordingPlayerView{nullptr}; + RecordDeleteView *p_RecordDeleteView{nullptr}; private: void RecordingViewInit(void); 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 index bef41c095..000000000 --- a/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordDeletePresenter.cpp +++ /dev/null @@ -1,91 +0,0 @@ -#include "AppViewIDs.h" -#include "NativeAbility.h" -#include "graphic_math.h" -#include "string.h" -#include "record/include/RecordDeletePresenter.h" - -namespace OHOS -{ - - // 当前Presenter属性实例化的内存指针 - static RecordDeletePresenter *g_pRecordDeletePresenter = nullptr; - - RecordDeletePresenter::RecordDeletePresenter() - { - - g_pRecordDeletePresenter = this; - } - - RecordDeletePresenter::~RecordDeletePresenter() - { - - g_pRecordDeletePresenter = nullptr; - } - - RecordDeletePresenter *RecordDeletePresenter::GetInstance() - { - - return g_pRecordDeletePresenter; - } - - void RecordDeletePresenter::OnStart() - { - - Presenter::OnStart(); - } - - void RecordDeletePresenter::OnPause(void) - { - - Presenter::OnPause(); - } - - void RecordDeletePresenter::OnResume(void) - { - - Presenter::OnResume(); - } - - void RecordDeletePresenter::OnStop(void) - { - - Presenter::OnStop(); - } - - bool RecordDeletePresenter::OnDrag(UIView &view, const DragEvent &event) - { - UNUSED(view); - UNUSED(event); - } - - // 删除文件 - void RecordDeletePresenter::deleteFile(const char *filepath) - { - if (std::remove(filepath) == 0) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Deleted file: %s", filepath); - } - else - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to delete file!"); - } - } - - bool RecordDeletePresenter::OnClick(UIView &view, const ClickEvent &event) - { - UNUSED(event); - // 根据控件id查找是哪个控件触发了点击回调 - if (strcmp(view.GetViewId(), RECORD_DELETE_ON_BUTTON_VIEWID) == 0) - { - deleteFile("/user/res/record/recording/record_test.mp3"); - //NativeAbility::GetInstance().ChangeSlice(VIEW_RECORD_PLAY); - return true; - } - else if (strcmp(view.GetViewId(), RECORD_DELETE_OFF_BUTTON_VIEWID) == 0) - { - //NativeAbility::GetInstance().ChangeSlice(VIEW_RECORD_PLAY); - return true; - } - return false; - } -} \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordDeleteView.cpp b/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordDeleteView.cpp index b48232a01..ba4bacfc9 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordDeleteView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordDeleteView.cpp @@ -1,150 +1,198 @@ #include "record/include/RecordDeleteView.h" -#include "record/include/RecordDeletePresenter.h" - -#include "UiConfig.h" +#include "record/include/RecordingPresenter.h" +#include "wearable_log.h" namespace OHOS { - static constexpr const char *PNG_RECORD_DELETE_BACKGROUND_IMAGE = APP_RES_PATH "/record/RECORD_DELETE_BACKGROUND.bin"; // 删除录音的背景图 static RecordDeleteView *g_pRecordDeleteView{nullptr}; RecordDeleteView::RecordDeleteView() { - + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordDeleteView::RecordDeleteView"); g_pRecordDeleteView = this; } RecordDeleteView::~RecordDeleteView() { - DeInitView(); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordDeleteView::~RecordDeleteView"); + ClearAll(); g_pRecordDeleteView = nullptr; } RecordDeleteView *RecordDeleteView::GetInstance() { - return g_pRecordDeleteView; } - void RecordDeleteView::InitView() + void RecordDeleteView::ClearAll() { - if (container_ == nullptr) + if (initViewStatus == true) { - container_ = new UIViewGroup(); - container_->SetPosition(0, 0, 466, 466); - container_->SetStyle(STYLE_BACKGROUND_OPA, 0); - } + RecordDeleteViewScrollView->RemoveAll(); - // Add ImageView to App - if (RECORD_DELETE_BACKGROUND_IMAGE == nullptr) - { - RECORD_DELETE_BACKGROUND_IMAGE = new UIImageView(); - } - RECORD_DELETE_BACKGROUND_IMAGE->SetPosition(0, 0); - RECORD_DELETE_BACKGROUND_IMAGE->Resize(466, 466); - RECORD_DELETE_BACKGROUND_IMAGE->SetViewId("RECORD_DELETE_BACKGROUND_IMAGE"); - RECORD_DELETE_BACKGROUND_IMAGE->SetSrc(PNG_RECORD_DELETE_BACKGROUND_IMAGE); + delete TitleLabel; + TitleLabel = nullptr; - // Add to rootView - container_->Add(RECORD_DELETE_BACKGROUND_IMAGE); - RECORD_DELETE_BACKGROUND_IMAGE->SetVisible(true); + for (int i = 0; i < 2; i++) + { + delete AttentionLabel[i]; + AttentionLabel[i] = nullptr; + } - // Add Button to App - if (RECORD_DELETE_ON_BUTTON == nullptr) - { - RECORD_DELETE_ON_BUTTON = new UIButton(); + delete RECORD_DELETE_ON_BUTTON; + RECORD_DELETE_ON_BUTTON = nullptr; + + delete RECORD_DELETE_OFF_BUTTON; + RECORD_DELETE_OFF_BUTTON = nullptr; + + delete RecordDeleteViewScrollView; + RecordDeleteViewScrollView = nullptr; } - RECORD_DELETE_ON_BUTTON->SetPosition(254, 299); - RECORD_DELETE_ON_BUTTON->Resize(100, 100); - RECORD_DELETE_ON_BUTTON->SetViewId(RECORD_DELETE_ON_BUTTON_VIEWID); - RECORD_DELETE_ON_BUTTON->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919); - RECORD_DELETE_ON_BUTTON->SetStyle(STYLE_BORDER_COLOR, 0xffffffff); - RECORD_DELETE_ON_BUTTON->SetImageSrc(PNG_SYSTEM_CHECK_ON_IMAGE, nullptr); - RECORD_DELETE_ON_BUTTON->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xffffffff, UIButton::PRESSED); - RECORD_DELETE_ON_BUTTON->SetStyleForState(STYLE_BACKGROUND_OPA, 0x2b, UIButton::PRESSED); - RECORD_DELETE_ON_BUTTON->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED); - - // Add the CallBack about events - RECORD_DELETE_ON_BUTTON_CLICK = static_cast(RecordDeletePresenter::GetInstance()); - RECORD_DELETE_ON_BUTTON->SetOnClickListener(RECORD_DELETE_ON_BUTTON_CLICK); - // Add to rootView - container_->Add(RECORD_DELETE_ON_BUTTON); - RECORD_DELETE_ON_BUTTON->SetVisible(true); - - // Add Button to App - if (RECORD_DELETE_OFF_BUTTON == nullptr) + } + + bool RecordDeleteView::SetUpScrollView(void) + { + RecordDeleteViewScrollView = new UIScrollView(); + if (RecordDeleteViewScrollView == nullptr) { - RECORD_DELETE_OFF_BUTTON = new UIButton(); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordDeleteView::RecordDeleteViewScrollView new fail!"); + return false; } - RECORD_DELETE_OFF_BUTTON->SetPosition(111, 299); - RECORD_DELETE_OFF_BUTTON->Resize(100, 100); - RECORD_DELETE_OFF_BUTTON->SetViewId(RECORD_DELETE_OFF_BUTTON_VIEWID); - RECORD_DELETE_OFF_BUTTON->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919); - RECORD_DELETE_OFF_BUTTON->SetStyle(STYLE_BORDER_COLOR, 0xffffffff); - RECORD_DELETE_OFF_BUTTON->SetImageSrc(PNG_SYSTEM_CHECK_OFF_IMAGE, nullptr); - RECORD_DELETE_OFF_BUTTON->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xffffffff, UIButton::PRESSED); - RECORD_DELETE_OFF_BUTTON->SetStyleForState(STYLE_BACKGROUND_OPA, 0x2b, UIButton::PRESSED); - RECORD_DELETE_OFF_BUTTON->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED); - - // Add the CallBack about events - RECORD_DELETE_OFF_BUTTON_CLICK = static_cast(RecordDeletePresenter::GetInstance()); - RECORD_DELETE_OFF_BUTTON->SetOnClickListener(RECORD_DELETE_OFF_BUTTON_CLICK); - // Add to rootView - container_->Add(RECORD_DELETE_OFF_BUTTON); - RECORD_DELETE_OFF_BUTTON->SetVisible(true); + RecordDeleteViewScrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight()); + RecordDeleteViewScrollView->SetTouchable(true); + RecordDeleteViewScrollView->SetDraggable(true); + return true; } - void RecordDeleteView::DeInitView() + UILabelExt *RecordDeleteView::SetUpLabel(LabelConfig &labelconfig) // 设置标签 { - if (container_ != nullptr) + UILabelExt *label = new UILabelExt(); + if (label == nullptr) { - container_->RemoveAll(); + return nullptr; } - if (RECORD_DELETE_BACKGROUND_IMAGE != nullptr) + label->SetPosition(labelconfig.left, labelconfig.top, labelconfig.width, labelconfig.height); // 位置大小 + label->SetStyle(STYLE_TEXT_FONT, labelconfig.fontSize); // 字体大小 + label->SetStyle(STYLE_LINE_HEIGHT, labelconfig.lineHeigh); // 字体行高 + label->SetText(labelconfig.text); // 内容 + label->SetLineBreakMode(labelconfig.lineBreakMode); // 断行模式。 + label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER); + label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, labelconfig.fontSize); + return label; + } + + bool RecordDeleteView::SetRecordDeleteViewLabel(void) + { + LabelConfig labelconfig = { + .left = 173, + .top = 52, + .width = 200, + .height = 40, + .fontSize = 30, + .lineHeigh = 35, + .text = "删除录音", + .lineBreakMode = UILabel::LINE_BREAK_ADAPT, + }; + TitleLabel = SetUpLabel(labelconfig); + if (nullptr == TitleLabel) { - delete RECORD_DELETE_BACKGROUND_IMAGE; - RECORD_DELETE_BACKGROUND_IMAGE = nullptr; + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordDeleteView::TitleLabel is nullptr!"); + return false; } - if (RECORD_DELETE_ON_BUTTON != nullptr) + + labelconfig = { + .left = 33, + .top = 145, + .width = 400, + .height = 124, + .fontSize = 30, + .lineHeigh = 35, + .text = "此操作将 该录音\n\n是否确认?", + .lineBreakMode = UILabel::LINE_BREAK_ELLIPSIS, + }; + + AttentionLabel[0] = SetUpLabel(labelconfig); + if (nullptr == AttentionLabel[0]) { - delete RECORD_DELETE_ON_BUTTON; - RECORD_DELETE_ON_BUTTON = nullptr; + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordDeleteView::AttentionLabel[0] is nullptr!"); + return false; } - if (RECORD_DELETE_OFF_BUTTON != nullptr) + + labelconfig = { + .left = 188, + .top = 154, + .width = 200, + .height = 40, + .fontSize = 30, + .lineHeigh = 35, + .text = "永久删除", + .lineBreakMode = UILabel::LINE_BREAK_ADAPT, + }; + AttentionLabel[1] = SetUpLabel(labelconfig); + AttentionLabel[1]->SetTextColor(Color::GetColorFromRGBA(0xff, 0x5a, 0x36, 0xff)); + if (nullptr == AttentionLabel[1]) { - delete RECORD_DELETE_OFF_BUTTON; - RECORD_DELETE_OFF_BUTTON = nullptr; + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordDeleteView::AttentionLabel[1] is nullptr!"); + return false; } - delete container_; - container_ = nullptr; - } - void RecordDeleteView::OnStart() - { - View::OnStart(); - InitView(); - RootView::GetInstance()->Add(container_); + return true; } - void RecordDeleteView::OnSetUpView() + bool RecordDeleteView::SetUpButton(void) { + UIView::OnClickListener *clickLister = static_cast(RecordingPresenter::GetInstance()); + RECORD_DELETE_OFF_BUTTON = new UIButton(); + if (RECORD_DELETE_OFF_BUTTON == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordDeleteView::RECORD_DELETE_OFF_BUTTON is new fail!"); + return false; + } + RECORD_DELETE_OFF_BUTTON->SetPosition(111, 299, 100, 100); + RECORD_DELETE_OFF_BUTTON->SetViewId(RECORD_DELETE_OFF_BUTTON_VIEWID); + RECORD_DELETE_OFF_BUTTON->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919); + RECORD_DELETE_OFF_BUTTON->SetImageSrc("/user/res/SYSTEM_CheckOff.bin", "/user/res/SYSTEM_CheckOff.bin"); + RECORD_DELETE_OFF_BUTTON->SetOnClickListener(clickLister); - View::OnSetUpView(); - Draw(); - } - - void RecordDeleteView::OnTearDownView() - { + RECORD_DELETE_ON_BUTTON = new UIButton(); + if (RECORD_DELETE_ON_BUTTON == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordDeleteView::RECORD_DELETE_ON_BUTTON is new fail!"); + return false; + } + RECORD_DELETE_ON_BUTTON->SetPosition(256, 299, 100, 100); + RECORD_DELETE_ON_BUTTON->SetViewId(RECORD_DELETE_ON_BUTTON_VIEWID); + RECORD_DELETE_ON_BUTTON->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919); + RECORD_DELETE_ON_BUTTON->SetImageSrc("/user/res/SYSTEM_CheckOn.bin", "/user/res/SYSTEM_CheckOn.bin"); + RECORD_DELETE_ON_BUTTON->SetOnClickListener(clickLister); - View::OnTearDownView(); - return; + return true; } - void RecordDeleteView::OnStop() + UIScrollView *RecordDeleteView::RecordDeleteViewInit(void) { + if (!SetUpScrollView()) + { + return nullptr; + } - View::OnStop(); - RootView::GetInstance()->RemoveAll(); - return; + if (!SetRecordDeleteViewLabel()) + { + return nullptr; + } + + if (!SetUpButton()) + { + return nullptr; + } + /* ----------------------------------- Add ---------------------------------- */ + RecordDeleteViewScrollView->Add(TitleLabel); + RecordDeleteViewScrollView->Add(AttentionLabel[0]); + RecordDeleteViewScrollView->Add(AttentionLabel[1]); + RecordDeleteViewScrollView->Add(RECORD_DELETE_ON_BUTTON); + RecordDeleteViewScrollView->Add(RECORD_DELETE_OFF_BUTTON); + initViewStatus = true; + return RecordDeleteViewScrollView; } + } \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordGoingView.cpp b/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordGoingView.cpp index ac2ebfc5f..23de4b75c 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordGoingView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordGoingView.cpp @@ -104,7 +104,7 @@ namespace OHOS TitleLabel = SetUpLabel(labelconfig); if (nullptr == TitleLabel) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordGoingView::SetRecordGoingViewLabel is nullptr!"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordGoingView::TitleLabel is nullptr!"); return false; } labelconfig.top = 370; diff --git a/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingPresenter.cpp index 833fba404..84160cc1c 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingPresenter.cpp @@ -120,6 +120,21 @@ namespace OHOS return 1; // 转换成功 } + /* + * @brief 删除文件 + */ + void RecordingPresenter::deleteFile(const char *filepath) + { + if (std::remove(filepath) == 0) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Deleted file: %s", filepath); + } + else + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to delete file!"); + } + } + #ifdef __cplusplus extern "C" { @@ -187,6 +202,17 @@ namespace OHOS RecordingModel::GetInstance()->Recording_StopTimer(); return true; } + else if (strcmp(view.GetViewId(), RECORD_DELETE_ON_BUTTON_VIEWID) == 0) + { + deleteFile("/user/res/record/recording/record_test.mp3"); + p_RecordingView->ChangeView(RECORDINGDELETEVIEW, RECORDINGPLAYERVIEW); + return true; + } + else if (strcmp(view.GetViewId(), RECORD_DELETE_OFF_BUTTON_VIEWID) == 0) + { + p_RecordingView->ChangeView(RECORDINGDELETEVIEW, RECORDINGPLAYERVIEW); + return true; + } return true; } @@ -245,27 +271,30 @@ namespace OHOS bool RecordingPlayerViewOnClickListener::OnClick(UIView &view, const ClickEvent &event) { + RecordingView *p_RecordingView = RecordingView::GetInstance(); + if (p_RecordingView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingView GetInstance fail"); + return false; + } + if (strcmp(view.GetViewId(), RECORD_PLAY_PROVE_BUTTON_VIEWID) == 0) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "recording player prove button being clicked!"); - } else if (strcmp(view.GetViewId(), RECORD_PLAY_NEXT_BUTTON_VIEWID) == 0) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "recording player next button being clicked!"); - } else if (strcmp(view.GetViewId(), RECORD_PLAY_DELETE_BUTTON_VIEWID) == 0) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "recording player delete button being clicked!"); - NativeAbility::GetInstance().ChangeSlice(VIEW_RECORD_DELETE); - + p_RecordingView->ChangeView(RECORDINGPLAYERVIEW, RECORDINGDELETEVIEW); } else if (strcmp(view.GetViewId(), RECORD_PLAY_VOLUME_BUTTON_VIEWID) == 0) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "recording player volume button being clicked!"); NativeAbility::GetInstance().ChangeSlice(VIEW_SYSTEM_VOLUME); - } return true; } diff --git a/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingView.cpp b/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingView.cpp index 122d20441..5314e2116 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingView.cpp @@ -60,6 +60,9 @@ namespace OHOS delete p_RecordingPlayerView; p_RecordingPlayerView = nullptr; + delete p_RecordDeleteView; + p_RecordDeleteView = nullptr; + delete RecordingViewScrollView[RECORDINGVIEW]; RecordingViewScrollView[RECORDINGVIEW] = nullptr; } @@ -197,7 +200,9 @@ namespace OHOS return RecordingViewScrollView[i]; } - // 切换到“录音”视图 + /* + * @brief 切换到“录音”视图 + */ bool RecordingView::ChangeRecordingView(int16_t thisView) { if (RecordingViewScrollView[thisView] == nullptr) @@ -208,7 +213,9 @@ namespace OHOS return true; } - // 切换到录音列表视图 + /* + * @brief 切换到录音列表视图 + */ bool RecordingView::ChangeRecordListView(int16_t thisView) { if (RecordingViewScrollView[thisView] == nullptr) @@ -230,7 +237,9 @@ namespace OHOS return true; } - // 切换到“正在录音”视图 + /* + * @brief 切换到“正在录音”视图 + */ bool RecordingView::ChangeRecordGoingView(int16_t thisView) { if (RecordingViewScrollView[thisView] == nullptr) @@ -248,7 +257,9 @@ namespace OHOS return true; } - // 切换到“录音播放”视图 + /* + * @brief 切换到“录音播放”视图 + */ bool RecordingView::ChangeRecordingPlayerView(int16_t thisView) { if (RecordingViewScrollView[thisView] == nullptr) @@ -265,6 +276,26 @@ namespace OHOS } return true; } + + /* + * @brief 切换到“录音删除”视图 + */ + bool RecordingView::ChangeRecordDeleteView(int16_t thisView) + { + if (RecordingViewScrollView[thisView] == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingView::ChangeRecordDeleteView"); + p_RecordDeleteView = new RecordDeleteView(); + if (p_RecordDeleteView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingView:: new scrollView[%d] fail", thisView); + return false; + } + RecordingViewScrollView[thisView] = p_RecordDeleteView->RecordDeleteViewInit(); + RootView::GetInstance()->Add(RecordingViewScrollView[thisView]); + } + return true; + } /* -------------------------------------------------------------------------- */ // 1.RecordingViewMapper:结构体定义了一个将视图ID映射到特定成员函数指针的映射表。 struct RecordingViewMapper @@ -278,7 +309,8 @@ namespace OHOS {RECORDINGVIEW, &RecordingView::ChangeRecordingView}, {RECORDINGLISTVIEW, &RecordingView::ChangeRecordListView}, {RECORDGOINGVIEW, &RecordingView::ChangeRecordGoingView}, - {RECORDINGPLAYERVIEW,&RecordingView::ChangeRecordingPlayerView}, + {RECORDINGPLAYERVIEW, &RecordingView::ChangeRecordingPlayerView}, + {RECORDINGDELETEVIEW, &RecordingView::ChangeRecordDeleteView}, }; // 3.根据传入的interface参数执行相应视图ID关联的成员函数。 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 index 694867488..000000000 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