-\r
+/***\r
+ * @Date: 2024-04-15 10:55:58\r
+ * @LastEditors: Caisking 3449750381@qq.com\r
+ * @LastEditTime: 2024-08-09 14:41:32\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/saveele/src/SaveEleView.cpp\r
+ */\r
\r
#include "saveele/include/SaveEleView.h"\r
+#include "saveele/include/SaveElePresenter.h"\r
\r
#include "common/image_cache_manager.h"\r
#include "UiConfig.h"\r
#include "ui_resource_image.h"\r
#include <ui_scroll_view.h>\r
#include "components/ui_button.h"\r
+#include "uicomponents/UIComponents.h"\r
+#include "ui_resource_string.h"\r
+#include "components/ui_scroll_view.h"\r
+\r
namespace OHOS\r
{\r
\r
static SaveEleView *g_pSaveEleView{nullptr};\r
+ static const uint32_t BACK_GROUND_COLOR = 0xfff6f6f6;\r
+\r
+ static constexpr char *iconImgPath = "/user/res/Save_Ele/SaveEle.bin";\r
+ static constexpr char *butnoImgPath = "/user/res/Save_Ele/Save_Error.bin";\r
+ static constexpr char *butokImgPath = "/user/res/Save_Ele/Save_Right.bin";\r
\r
SaveEleView::SaveEleView()\r
{\r
-\r
g_pSaveEleView = this;\r
}\r
\r
SaveEleView::~SaveEleView()\r
{\r
- DeInit();\r
+ UIViewGroup *tmpGroup = dynamic_cast<UIViewGroup *>(container_);\r
+ UIViewGroup::RemoveAndDeleteAllRecursively(tmpGroup);\r
g_pSaveEleView = nullptr;\r
}\r
\r
return g_pSaveEleView;\r
}\r
\r
- void SaveEleView::Init()\r
+ void SaveEleView::InitView()\r
{\r
if (container_ == nullptr)\r
{\r
- container_ = new UIViewGroup();\r
+ container_ = new UIScrollView();\r
container_->SetPosition(0, 0, 466, 466);\r
container_->SetStyle(STYLE_BACKGROUND_OPA, 0);\r
}\r
\r
- // Add ScrollView to App\r
- if (scrollView1_ == nullptr)\r
- {\r
- scrollView1_ = new UIScrollView();\r
- }\r
- scrollView1_->SetPosition(0, 0); // widget's left position and top position\r
- scrollView1_->Resize(466, 466); // widget's width and height\r
- scrollView1_->SetViewId("scrollView1"); // Set style\r
- scrollView1_->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
-\r
- // Set additional property\r
- scrollView1_->SetDirection(1);\r
-\r
- // Add the CallBack about events\r
- UIView::OnDragListener *scrollView1Drag = static_cast<UIView::OnDragListener *>(SaveElePresenter::GetInstance());\r
- scrollView1_->SetOnDragListener(scrollView1Drag);\r
- // Add to rootView\r
- container_->Add(scrollView1_);\r
- scrollView1_->SetVisible(true);\r
-\r
- // Add Label to App\r
- if (label1_ == nullptr)\r
- {\r
- label1_ = new UILabel();\r
- }\r
- label1_->SetPosition(173, 52); // widget's left position and top position\r
- label1_->Resize(120, 35); // widget's width and height\r
- label1_->SetViewId("label1"); // Set style\r
- label1_->SetStyle(STYLE_TEXT_FONT, 30);\r
- label1_->SetStyle(STYLE_LINE_SPACE, 0);\r
- label1_->SetStyle(STYLE_LETTER_SPACE, 1);\r
- label1_->SetStyle(STYLE_LINE_HEIGHT, 35);\r
-\r
- // Set additional property\r
- label1_->SetText("省电模式");\r
- label1_->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
- label1_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
- label1_->SetRollSpeed(0);\r
- label1_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
-\r
- // Add to scrollView1\r
- scrollView1_->Add(label1_);\r
- label1_->SetVisible(true);\r
-\r
- // Add Label to App\r
- if (label3_ == nullptr)\r
- {\r
- label3_ = new UILabel();\r
- }\r
- label3_->SetPosition(33, 440); // widget's left position and top position\r
- label3_->Resize(200, 60); // widget's width and height\r
- label3_->SetViewId("label3"); // Set style\r
- label3_->SetStyle(STYLE_TEXT_FONT, 30);\r
- label3_->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+ /*初始化label*/\r
+ InitLabelExt(labeltitle, 83, 50, 300, 35, "labletitle", STR_POWER_SAVE_MODE, DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ InitLabelExt(labelnote, 53, 217, 360, 200, "labletitle", STR_SAVENOTE, DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ InitLabelExt(labelkown, 53, 385, 360, 100, "labelrecord", STR_SAVEBACK, DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ labelkown->SetTextColor(Color::Orange());\r
\r
- // Set additional property\r
- label3_->SetText("长按屏幕3秒以上或充电可退\n出省电模式");\r
- label3_->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
- label3_->SetTextColor(Color::GetColorFromRGBA(0xff, 0xc3, 0x00, 0xff));\r
- label3_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
- label3_->SetRollSpeed(0);\r
- label3_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ /*初始化图片*/\r
+ InitImageView(iamgeicon, 188, 121, 80, 90, "saveicon", iconImgPath);\r
\r
- // Add to scrollView1\r
- scrollView1_->Add(label3_);\r
- label3_->SetVisible(true);\r
+ /*初始化按键*/\r
+ InitButton(buttonno, 110, 501, 100, 100, SAVEBUTTONNO);\r
+ buttonno->SetImageSrc(butnoImgPath, butnoImgPath);\r
+ buttonno->SetOnClickListener(presenter_);\r
\r
- // Add Label to App\r
- if (label4_ == nullptr)\r
- {\r
- label4_ = new UILabel();\r
- }\r
- label4_->SetPosition(173, 547); // widget's left position and top position\r
- label4_->Resize(400, 395); // widget's width and height\r
- label4_->SetViewId("label4"); // Set style\r
- label4_->SetStyle(STYLE_TEXT_FONT, 30);\r
- label4_->SetStyle(STYLE_LINE_HEIGHT, 35);\r
-\r
- // Set additional property\r
- label4_->SetText("是否开启");\r
- label4_->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
- label4_->SetTextColor(Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff));\r
- label4_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
- label4_->SetRollSpeed(0);\r
- label4_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
-\r
- // Add to scrollView1\r
- scrollView1_->Add(label4_);\r
- label4_->SetVisible(true);\r
-\r
- // Add Button to App\r
- if (button1_ == nullptr)\r
- {\r
- button1_ = new UIButton();\r
- }\r
- button1_->SetPosition(110, 636); // widget's left position and top position\r
- button1_->Resize(100, 100); // widget's width and height\r
- button1_->SetViewId("button1"); // Set style\r
- button1_->SetStyle(STYLE_BACKGROUND_COLOR, 0xff000000);\r
- button1_->SetStyle(STYLE_BACKGROUND_OPA, 0x00);\r
-\r
- char *button1defaultImgSrc = "/user/res/Save_Ele/Save_Error.bin";\r
- char *button1triggeredImgSrc = nullptr;\r
- button1_->SetImageSrc(button1defaultImgSrc, button1triggeredImgSrc);\r
- button1_->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xffff1919, UIButton::PRESSED);\r
- button1_->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);\r
-\r
- // Add the CallBack about events\r
- UIView::OnClickListener *button1Click = static_cast<UIView::OnClickListener *>(SaveElePresenter::GetInstance());\r
- button1_->SetOnClickListener(button1Click);\r
- // Add to scrollView1\r
- scrollView1_->Add(button1_);\r
- button1_->SetVisible(true);\r
-\r
- // Add Button to App\r
- if (button2_ == nullptr)\r
- {\r
- button2_ = new UIButton();\r
- }\r
- button2_->SetPosition(255, 636); // widget's left position and top position\r
- button2_->Resize(100, 100); // widget's width and height\r
- button2_->SetViewId("button2"); // Set style\r
- button2_->SetStyle(STYLE_BACKGROUND_COLOR, 0xff000000);\r
- button2_->SetStyle(STYLE_BACKGROUND_OPA, 0x00);\r
-\r
- char *button2defaultImgSrc = "/user/res/Save_Ele/Save_Right.bin";\r
- char *button2triggeredImgSrc = nullptr;\r
- button2_->SetImageSrc(button2defaultImgSrc, button2triggeredImgSrc);\r
- button2_->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff19ff5e, UIButton::PRESSED);\r
- button2_->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);\r
-\r
- // Add the CallBack about events\r
- UIView::OnClickListener *button2Click = static_cast<UIView::OnClickListener *>(SaveElePresenter::GetInstance());\r
- button2_->SetOnClickListener(button2Click);\r
- // Add to scrollView1\r
- scrollView1_->Add(button2_);\r
- button2_->SetVisible(true);\r
-\r
- // Add ImageView to App\r
- if (image2_ == nullptr)\r
- {\r
- image2_ = new UIImageView();\r
- }\r
- image2_->SetPosition(183, 775); // widget's left position and top position\r
- image2_->Resize(100, 100); // widget's width and height\r
- image2_->SetViewId("image2"); // Set style\r
-\r
- // Set additional property\r
-\r
- // Add to scrollView1\r
- scrollView1_->Add(image2_);\r
- image2_->SetVisible(true);\r
-\r
- // Add ImageView to App\r
- if (image1_ == nullptr)\r
- {\r
- image1_ = new UIImageView();\r
- }\r
- image1_->SetPosition(188, 121); // widget's left position and top position\r
- image1_->Resize(90, 90); // widget's width and height\r
- image1_->SetViewId("image1"); // Set style\r
-\r
- // Set additional property\r
- char *image1imagesPath = "/user/res/Save_Ele/SaveEle.bin";\r
- image1_->SetSrc(image1imagesPath);\r
-\r
- // Add to scrollView1\r
- scrollView1_->Add(image1_);\r
- image1_->SetVisible(true);\r
-\r
- // Add Label to App\r
- if (label2_ == nullptr)\r
- {\r
- label2_ = new UILabel();\r
- }\r
- label2_->SetPosition(33, 217); // widget's left position and top position\r
- label2_->Resize(400, 395); // widget's width and height\r
- label2_->SetViewId("label2"); // Set style\r
- label2_->SetStyle(STYLE_TEXT_FONT, 30);\r
- label2_->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+ InitButton(buttonok, 255, 501, 100, 100, SAVEBUTTONOK);\r
+ buttonok->SetImageSrc(butokImgPath, butokImgPath);\r
+ buttonok->SetOnClickListener(presenter_);\r
\r
- // Set additional property\r
- label2_->SetText("开启省电模式会关闭非必要的\n蓝牙连接(通话/耳机蓝牙),以\n及传感器监测(心率监测及血\n氧监测等会停止)等功能\n 仅保留时间日期可查看");\r
- label2_->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
- label2_->SetTextColor(Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff));\r
- label2_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
- label2_->SetRollSpeed(0);\r
- label2_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
-\r
- // Add to scrollView1\r
- scrollView1_->Add(label2_);\r
- label2_->SetVisible(true);\r
- }\r
-\r
- void SaveEleView::DeInit()\r
- {\r
- scrollView1_->RemoveAll();\r
- container_->RemoveAll();\r
- if (label1_ != nullptr)\r
- {\r
- delete label1_;\r
- label1_ = nullptr;\r
- }\r
- if (label3_ != nullptr)\r
- {\r
- delete label3_;\r
- label3_ = nullptr;\r
- }\r
- if (label4_ != nullptr)\r
- {\r
- delete label4_;\r
- label4_ = nullptr;\r
- }\r
- if (button1_ != nullptr)\r
- {\r
- delete button1_;\r
- button1_ = nullptr;\r
- }\r
- if (button2_ != nullptr)\r
- {\r
- delete button2_;\r
- button2_ = nullptr;\r
- }\r
- if (image2_ != nullptr)\r
- {\r
- delete image2_;\r
- image2_ = nullptr;\r
- }\r
- if (image1_ != nullptr)\r
- {\r
- delete image1_;\r
- image1_ = nullptr;\r
- }\r
- if (label2_ != nullptr)\r
- {\r
- delete label2_;\r
- label2_ = nullptr;\r
- }\r
- if (scrollView1_ != nullptr)\r
- {\r
- delete scrollView1_;\r
- scrollView1_ = nullptr;\r
- }\r
- if (container_ != nullptr)\r
- {\r
- delete container_;\r
- container_ = nullptr;\r
- }\r
+ container_->Add(labeltitle);\r
+ container_->Add(labelnote);\r
+ container_->Add(labelkown);\r
+ container_->Add(iamgeicon);\r
+ container_->Add(buttonno);\r
+ container_->Add(buttonok);\r
}\r
\r
- UIView *SaveEleView::GetView()\r
- {\r
- Init();\r
- return container_;\r
- }\r
void SaveEleView::OnStart()\r
{\r
+\r
+ View<SaveElePresenter>::OnStart();\r
+\r
container_ = new UIScrollView();\r
if (container_ == nullptr)\r
{\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "container_ new fail");\r
return;\r
}\r
- container_->SetPosition(0, 0);\r
- container_->SetWidth(Screen::GetInstance().GetWidth());\r
- container_->SetHeight(Screen::GetInstance().GetHeight() * 2);\r
-\r
- // 创建 draglistener 实例并设置为拖动监听器\r
- UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(SaveElePresenter::GetInstance());\r
- if (draglistener == nullptr)\r
- {\r
- return;\r
- }\r
- container_->SetOnDragListener(draglistener);\r
+ container_->SetScrollBlankSize(35);\r
+ container_->SetReboundSize(50);\r
+ container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
\r
+ container_->SetOnDragListener(presenter_);\r
container_->SetTouchable(true);\r
container_->SetDraggable(true);\r
+ container_->SetStyle(STYLE_BACKGROUND_COLOR, BACK_GROUND_COLOR);\r
+ container_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);\r
\r
- GetView();\r
- RootView::GetInstance()->Add(container_);\r
+ InitView();\r
+ SetContainerView(container_);\r
+ RootView::GetInstance()->SetOnKeyActListener(presenter_);\r
}\r
\r
void SaveEleView::OnSetUpView()\r
{\r
-\r
View<SaveElePresenter>::OnSetUpView();\r
Draw();\r
}\r
\r
void SaveEleView::OnTearDownView()\r
{\r
-\r
View<SaveElePresenter>::OnTearDownView();\r
return;\r
}\r
void SaveEleView::OnStop()\r
{\r
View<SaveElePresenter>::OnStop();\r
+ if (container_ != nullptr)\r
+ {\r
+ container_->RemoveAll();\r
+ delete container_;\r
+ container_ = nullptr;\r
+ }\r
RootView::GetInstance()->RemoveAll();\r
return;\r
}\r