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
<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>
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 {
+/*\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
#include "record/include/RecordingListAdapter.h"\r
namespace OHOS\r
{\r
-\r
+ static constexpr char *RECORDLISTSCROLLVIEW = "RecordListScrollView";\r
class RecordListView\r
{\r
\r
int16_t fontSize; // 字体大小\r
int16_t lineHeigh; // 行高\r
const char *text; // 文本\r
+ int16_t textId; // 文本id\r
uint8_t lineBreakMode; // 断行模式。\r
};\r
RecordListView();\r
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
+/*\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
{\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
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
+/*\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
\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
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
}\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
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
.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
\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
}\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
*/\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
IsVisibleLabel(false);\r
}\r
\r
- initViewStatus = true;\r
return RecordListScrollView;\r
}\r
-\r
}
\ No newline at end of file
+/*\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
{\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
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
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
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
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
\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
\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
\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
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
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
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
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
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
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
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
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
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
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
void RecordingView::OnStop()\r
{\r
View<RecordingPresenter>::OnStop();\r
- RootView::GetInstance()->RemoveAll();\r
RootView::GetInstance()->ClearOnKeyActListener();\r
+ ClearAll();\r
return;\r
}\r
\r
#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)
{
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;
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)
{
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 {