From 04cc9ddee2345dbfe92bae2b442a338f33ed3c68 Mon Sep 17 00:00:00 2001 From: luozheng <1732036298@qq.com> Date: Thu, 22 Aug 2024 16:48:54 +0800 Subject: [PATCH] =?utf8?q?=E4=B8=8B=E6=8B=89=E7=95=8C=E9=9D=A2UI=E5=AE=8C?= =?utf8?q?=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../wearable/fd230app/CMakeLists.txt | 2 + .../nativeui/main/include/PullUpDownView.h | 244 +- .../main/include/dropdown/DropDownCardPage1.h | 47 + .../main/include/dropdown/DropDownCardPage2.h | 49 + .../nativeui/main/src/MainPresenterSample.cpp | 41 +- .../nativeui/main/src/PullUpDownView.cpp | 2367 ++++------------- .../main/src/dropdown/DropDownCardPage1.cpp | 150 ++ .../main/src/dropdown/DropDownCardPage2.cpp | 124 + .../user/res/dropdown/bluetooth_connect.bin | 3 + .../res/dropdown/bluetooth_disconnect.bin | 3 + .../user/res/dropdown/earphones_connect.bin | 3 + .../res/dropdown/earphones_disconnect.bin | 3 + .../fs/user/res/dropdown/phone_connect.bin | 3 + .../fs/user/res/dropdown/phone_disconnect.bin | 3 + 14 files changed, 1008 insertions(+), 2034 deletions(-) create mode 100644 code/sdk/application/wearable/fd230app/nativeui/main/include/dropdown/DropDownCardPage1.h create mode 100644 code/sdk/application/wearable/fd230app/nativeui/main/include/dropdown/DropDownCardPage2.h create mode 100644 code/sdk/application/wearable/fd230app/nativeui/main/src/dropdown/DropDownCardPage1.cpp create mode 100644 code/sdk/application/wearable/fd230app/nativeui/main/src/dropdown/DropDownCardPage2.cpp create mode 100644 code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/dropdown/bluetooth_connect.bin create mode 100644 code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/dropdown/bluetooth_disconnect.bin create mode 100644 code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/dropdown/earphones_connect.bin create mode 100644 code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/dropdown/earphones_disconnect.bin create mode 100644 code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/dropdown/phone_connect.bin create mode 100644 code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/dropdown/phone_disconnect.bin diff --git a/code/sdk/application/wearable/fd230app/CMakeLists.txt b/code/sdk/application/wearable/fd230app/CMakeLists.txt index 04d9dc4b7..aa61d16b9 100644 --- a/code/sdk/application/wearable/fd230app/CMakeLists.txt +++ b/code/sdk/application/wearable/fd230app/CMakeLists.txt @@ -143,6 +143,8 @@ set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/MainModel.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/MainPresenterSample.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/dropdown/DropDownCardPage1.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/dropdown/DropDownCardPage2.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/ModelListenerSample.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/PresenterTask.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/HealthModel.cpp diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/include/PullUpDownView.h b/code/sdk/application/wearable/fd230app/nativeui/main/include/PullUpDownView.h index e742f3763..7ff9e3b28 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/include/PullUpDownView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/main/include/PullUpDownView.h @@ -2,11 +2,10 @@ * @Author: luozheng 1732036298@qq.com * @Date: 2024-04-17 15:26:49 * @LastEditors: luozheng 1732036298@qq.com - * @LastEditTime: 2024-07-16 14:55:16 + * @LastEditTime: 2024-08-22 16:29:35 * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/include/PullUpDownView.h */ -#if 1 #ifndef PULL_UP_DOWN_VIEW_H #define PULL_UP_DOWN_VIEW_H @@ -20,8 +19,11 @@ #include "components/ui_label_button.h" #include "components/ui_box_progress.h" #include "components/ui_image_animator.h" +#include "components/ui_swipe_view.h" #include "battery_hal.h" #include "main/include/ConnectedStatusView.h" +#include "main/include/dropdown/DropDownCardPage1.h" +#include "main/include/dropdown/DropDownCardPage2.h" extern uint8_t battery_get_voltage(float *voltage); @@ -41,7 +43,7 @@ namespace OHOS MAX_DROPDOWNVIEWID, } DROPDOWNVIEWID; - class PullUpDownView : public UICardPage + class PullUpDownView : public UICardPage, public UISwipeView::OnSwipeListener { public: PullUpDownView(); @@ -49,222 +51,86 @@ namespace OHOS static PullUpDownView *GetInstance(void); void PreLoad(void) override; void UnLoad(void) override; - void UpdatePhoneStatus(int status); - void UpdateEarPhoneStatus(int status); - void UpdateBlueToothStatus(int status); void UpdateDnotDisturbStatus(int status); - void UpdateSignalStrengthStatusAndBatteryPosition(); bool ChangeDropDownView(int16_t thisView); // 切换到"下拉控制中心"视图 bool ChangeConnectedStatusView(int16_t thisView); // 切换到"连接状态"视图 bool ClickFunc(int16_t interface); void ChangeView(int16_t hideView, int16_t showView); ConnectedStatusView *GetConnectedStatusView(void); - UILabel *GetTimeLabel(); - UILabel *GetDateLabel(); - UILabel *GetWeekLabel(); - UIBoxProgress *GetProgress(); - - bool GetPhoneConnectedStatus(void); - bool GetEarPhoneConnectedStatus(void); - bool GetBlueToothConnectedStatus(void); - struct ImageConfig - { - int16_t x; - int16_t y; - int16_t w; - int16_t h; - const char *viewid; - const char *src; - UIView::OnClickListener *clicklistener; - }; - private: + void OnSwipe(UISwipeView &view) override; bool PullUpDownViewInit(); - bool InitBaseData(); // 初始化基础数据组件 - UIImageView *dropDownIconImageViweInit(ImageConfig &imageconfig); - void createDropDownIconImageViwe(void); - UIImageView *dropDownConnectedStatusImageViweInit(int16_t x, int16_t y, int16_t w, int16_t h); - void createDropDownConnectedStatusImageViwe(void); - - bool InitSingalComponentsView(); - void ClearAllConnectedStatusComponentsView(); - void ClearAllSingalComponentsView(); void ClearAll(); - - int GetSignalStrength(void); - int CalculateSignalBars(int signalStrength); - void UpdateSignalBarDisplay(int signalBars, bool state); - void UpdateBatteryPosition(bool state); - void updateSignalDisplay(); - void UpdateCat1NoSignalisplay(bool state); - void UpdateCat14GDisplay(bool state); - void UpdateCat1MobileDataDisplay(bool state); - - void PreLoadPullUpDownImageRes(void); - void UnLoadPullUpDownImageRes(void); - - private: - ConnectedStatusView *connectedStatusView{nullptr}; - - private: UIViewGroup *group[MAX_DROPDOWNVIEWID]{nullptr}; - UIImageView *dropSetting{nullptr}; // 设置 - UIImageView *dropBluetooth{nullptr}; // 蓝牙 - UIImageView *dropDnotDisturb{nullptr}; // 勿扰模式 - UIImageView *dropSavePower{nullptr}; // 省电 - UIImageView *drofindPhone{nullptr}; // 找手机 - UIImageView *dropLine{nullptr}; // 线 - UIButton *connectedStatusBackgroundButton{nullptr}; // 放置连接状态icon的背景按钮 - UIImageView *showPhoneConnectedStatus{nullptr}; // 显示手机连接状态 - UIImageView *showEarPhoneConnectedStatus{nullptr}; // 显示耳机连接状态 - UIImageView *showBluetoothConnectedStatus{nullptr}; // 显示蓝牙连接状态 - UILabel *showTimeLabel{nullptr}; // 显示时间 - UILabel *showDateLabel{nullptr}; // 显示日期 - UILabel *showWeekLabel{nullptr}; // 显示星期 - UIImageView *showSignalStrength[4]{nullptr}; // 信号强度 - UILabel *Singal_4{nullptr}; // 4G图标 - UIImageView *NoSignal{nullptr}; // 无信号 - UIImageView *MobileData{nullptr}; // 移动数据 - - UIImageView *batteryimage = nullptr; - UIBoxProgress *progress = nullptr; - + ConnectedStatusView *connectedStatusView{nullptr}; bool viewiInitStatus{false}; - }; -} -#endif - -#else -/* - * @Author: luozheng 1732036298@qq.com - * @Date: 2024-04-17 15:26:49 - * @LastEditors: luozheng 1732036298@qq.com - * @LastEditTime: 2024-06-28 14:30:04 - * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/include/PullUpDownView.h - */ -/* - * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. - * Description: WeekStep - * Author: - * Create: 2021-09-11 - */ - -#ifndef PULL_UP_DOWN_VIEW_H -#define PULL_UP_DOWN_VIEW_H - -#include "graphic_types.h" -#include "wearable_log.h" -#include "components/ui_card_page.h" -#include "components/ui_view_group.h" -#include "components/ui_image_view.h" -#include "components/ui_label.h" -#include "components/ui_label_ext.h" -#include "components/ui_label_button.h" -#include "components/ui_box_progress.h" -#include "components/ui_image_animator.h" -#include "battery_hal.h" -#include "main/include/ConnectedStatusView.h" -extern uint8_t battery_get_voltage(float *voltage); - -namespace OHOS -{ - static constexpr int16_t SETTING_INDEX = 0; - static constexpr int16_t LIGHTING_INDEX = 1; - static constexpr int16_t DNOTDISTURB_INDEX = 2; - static constexpr int16_t SAVEPOWER_INDEX = 3; - static constexpr int16_t FINDPHONE_INDEX = 4; - static constexpr int16_t MAX_INDEX = 5; - - typedef enum : uint8_t - { - DROPDOWNVIEW = 0, - CONNECTEDSTATUSVIEW, - MAX_DROPDOWNVIEWID, - } DROPDOWNVIEWID; - - class PullUpDownView : public UICardPage - { + /* ---------------------------------- 1.连接状态 ---------------------------------- */ public: - PullUpDownView(); - ~PullUpDownView() override; - static PullUpDownView *GetInstance(void); - void PreLoad(void) override; - void UnLoad(void) override; + bool GetPhoneConnectedStatus(void); + bool GetEarPhoneConnectedStatus(void); + bool GetBlueToothConnectedStatus(void); void UpdatePhoneStatus(int status); void UpdateEarPhoneStatus(int status); void UpdateBlueToothStatus(int status); - void UpdateDnotDisturbStatus(int status); - void UpdateSignalStrengthStatusAndBatteryPosition(); - bool ChangeDropDownView(int16_t thisView); // 切换到"下拉控制中心"视图 - bool ChangeConnectedStatusView(int16_t thisView); // 切换到"连接状态"视图 - bool ClickFunc(int16_t interface); - void ChangeView(int16_t hideView, int16_t showView); - ConnectedStatusView *GetConnectedStatusView(void); - UILabel *GetTimeLabel(); - UILabel *GetDateLabel(); - UILabel *GetWeekLabel(); + private: + UIImageView *DropDownConnectedStatusImageViweInit(int16_t x, int16_t y, int16_t w, int16_t h); + void CreateDropDownConnectionStatusImageViwe(void); + void ClearAll_1(void); + UIButton *connectedStatusBackgroundButton{nullptr}; // 放置连接状态icon的背景按钮 + UIImageView *showPhoneConnectedStatus{nullptr}; // 显示手机连接状态 + UIImageView *showEarPhoneConnectedStatus{nullptr}; // 显示耳机连接状态 + UIImageView *showBluetoothConnectedStatus{nullptr}; // 显示蓝牙连接状态 + /* --------------------------------- 2.基本数据显示-------------------------------- */ + public: UIBoxProgress *GetProgress(); - - bool GetPhoneConnectedStatus(void); - bool GetEarPhoneConnectedStatus(void); - bool GetBlueToothConnectedStatus(void); + UILabel *GetDateAndWeekLabel(void); + void UpdateSignalStrengthStatusAndBatteryPosition(); private: - bool PullUpDownViewInit(); - bool InitBaseData(); // 初始化基础数据组件 - void InitViewImgBackGround(void); - void InitViewImg(void); - void InitConnectedStatusImage(void); - bool InitSingalComponentsView(); - void ClearAllConnectedStatusComponentsView(); - void ClearAllSingalComponentsView(); - void ClearAll(); - + void InitBaseData(); + void ClearAll_2(void); int GetSignalStrength(void); int CalculateSignalBars(int signalStrength); void UpdateSignalBarDisplay(int signalBars, bool state); - void UpdateBatteryPosition(int signalBars); void updateSignalDisplay(); void UpdateCat1NoSignalisplay(bool state); void UpdateCat14GDisplay(bool state); - - void PreLoadPullUpDownImageRes(void); - void UnLoadPullUpDownImageRes(void); + void UpdateHDDisplay(bool state); + void UpdateCat1MobileDataDisplay(bool state); + void UpdateXPosition(void); + UIViewGroup *group1{nullptr}; + UIImageView *showSignalStrength[4]{nullptr}; // 信号强度 + UILabel *Singal_4{nullptr}; // 4G图标 + UIImageView *NoSignal{nullptr}; // 无信号 + UIImageView *MobileData{nullptr}; // 移动数据 + UIImageView *HD{nullptr}; // HD + UIImageView *batteryimage{nullptr}; // 电池图片 + UIBoxProgress *progress{nullptr}; // 电池进度条 + UILabel *showDateAndWeekLabel{nullptr}; // 显示日期和星期 + /* ---------------------------------- 3.滑动列表 ---------------------------------- */ + public: + AppGroupView *DropDownCardPage1Init(void); + AppGroupView *DropDownCardPage2Init(void); private: - ConnectedStatusView *connectedStatusView{nullptr}; - + AppGroupView *CreatePage(int32_t WeatherPageId); + void CreateDropDownswipeViewListView(void); + void ClearAll_3(void); + UISwipeView *dropDownswipeViewList{nullptr}; // 滑动列表 + AppGroupView *recordCard[2]{nullptr}; + DropDownCardPage1 *dropDownCardPage1{nullptr}; + DropDownCardPage2 *dropDownCardPage2{nullptr}; + /* ------------------------------------ 4 ----------------------------------- */ + public: + void UpdateSwipviewSelect(bool value); private: - UIViewGroup *group[MAX_DROPDOWNVIEWID]{nullptr}; - UIImageView *dropSetting{nullptr}; // 设置 - UIImageView *dropLighting{nullptr}; // 蓝牙 - UIImageView *dropDnotDisturb{nullptr}; // 勿扰模式 - UIImageView *dropSavePower{nullptr}; // 省电 - UIImageView *drofindPhone{nullptr}; // 找手机 - UIImageView *dropIconBackground[MAX_INDEX]{nullptr}; // 放置各个icon的背景 - UIButton *connectedStatusBackgroundButton{nullptr}; // 放置连接状态icon的背景按钮 - UIImageView *showPhoneConnectedStatus{nullptr}; // 显示手机连接状态 - UIImageView *showEarPhoneConnectedStatus{nullptr}; // 显示耳机连接状态 - UIImageView *showBluetoothConnectedStatus{nullptr}; // 显示蓝牙连接状态 - UIImageView *dropLine{nullptr}; // 线 - UILabel *showTimeLabel{nullptr}; // 显示时间 - UILabel *showDateLabel{nullptr}; // 显示日期 - UILabel *showWeekLabel{nullptr}; // 显示星期 - UIImageView *showSignalStrength[4]{nullptr}; // 信号强度 - UILabel *Singal_4{nullptr}; // 4G图标 - UIImageView *NoSignal{nullptr}; // 无信号 - - UIImageView *batteryimage = nullptr; - UIBoxProgress *progress = nullptr; - AnimatorCallback *progresscallback_ = nullptr; - Animator *progressanimator_ = nullptr; - - bool viewiInitStatus{false}; - bool resLoadStatus{false}; + void CreateView4(); + void ClearAll_4(void); + UIImageView *swipviewSelect{nullptr}; + UIImageView *line{nullptr}; }; } -#endif #endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/include/dropdown/DropDownCardPage1.h b/code/sdk/application/wearable/fd230app/nativeui/main/include/dropdown/DropDownCardPage1.h new file mode 100644 index 000000000..7e423a08b --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/main/include/dropdown/DropDownCardPage1.h @@ -0,0 +1,47 @@ +/* + * @Author: luozheng 1732036298@qq.com + * @Date: 2024-08-21 11:54:00 + * @LastEditors: luozheng 1732036298@qq.com + * @LastEditTime: 2024-08-21 16:10:27 + * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/include/dropdown/DropDownCardPage1.h + */ +#ifndef __DROPDOWN_CARD_PAGE1_H__ +#define __DROPDOWN_CARD_PAGE1_H__ +#include "AppGroupView.h" +#include "components/ui_toggle_button.h" + +namespace OHOS +{ + class DropDownCardPage1 : public AppGroupView, + public UIView::OnClickListener + { + public: + struct ToggleButtonConfig + { + int16_t left; + int16_t top; + int16_t width; + int16_t height; + const char *viewId; + const char *selectImg; + const char *unselectImg; + bool isTouchable; + }; + DropDownCardPage1(); + ~DropDownCardPage1(); + static DropDownCardPage1 *GetInstance(void); + bool OnClick(UIView &view, const ClickEvent &event) override; + bool InitPage(void); + bool InitView(void *caller) override; + void ClearAll(); + + UIToggleButton *GetDropDownCardPage1_ToggleButton(int index); + + private: + UIToggleButton *ToggleButtonInit(ToggleButtonConfig &toggleButtonConfig); + UIToggleButton *toggleButton[7]{nullptr}; + }; + +} + +#endif diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/include/dropdown/DropDownCardPage2.h b/code/sdk/application/wearable/fd230app/nativeui/main/include/dropdown/DropDownCardPage2.h new file mode 100644 index 000000000..d67569cf8 --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/main/include/dropdown/DropDownCardPage2.h @@ -0,0 +1,49 @@ +/* + * @Author: luozheng 1732036298@qq.com + * @Date: 2024-08-21 11:54:00 + * @LastEditors: luozheng 1732036298@qq.com + * @LastEditTime: 2024-08-21 16:42:29 + * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/include/dropdown/DropDownCardPage2.h + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + */ + +#ifndef __DROPDOWN_CARD_PAGE2_H__ +#define __DROPDOWN_CARD_PAGE2_H__ +#include "AppGroupView.h" +#include "components/ui_toggle_button.h" + +namespace OHOS +{ + class DropDownCardPage2 : public AppGroupView, + public UIView::OnClickListener + { + public: + struct ToggleButtonConfig + { + int16_t left; + int16_t top; + int16_t width; + int16_t height; + const char *viewId; + const char *selectImg; + const char *unselectImg; + bool isTouchable; + }; + DropDownCardPage2(); + ~DropDownCardPage2(); + static DropDownCardPage2 *GetInstance(void); + bool OnClick(UIView &view, const ClickEvent &event) override; + bool InitPage(void); + bool InitView(void *caller) override; + void ClearAll(); + + UIToggleButton *GetDropDownCardPage2_ToggleButton(int index); + + private: + UIToggleButton *ToggleButtonInit(ToggleButtonConfig &toggleButtonConfig); + UIToggleButton *toggleButton[2]{nullptr}; + }; + +} + +#endif diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/src/MainPresenterSample.cpp b/code/sdk/application/wearable/fd230app/nativeui/main/src/MainPresenterSample.cpp index 285daa121..08cf530e5 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/src/MainPresenterSample.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/main/src/MainPresenterSample.cpp @@ -457,17 +457,17 @@ namespace OHOS // 更新时间 void MainPresenterSample::UpdataTime() { - // 获取当前时间 - char *timeStr = (char *)malloc(9); - if (uapi_get_HHMMSS_Time(timeStr, ':', false) != ERRCODE_SUCC) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to get start time"); - free(timeStr); - return; - } - if (PullUpDownView::GetInstance() != nullptr) - PullUpDownView::GetInstance()->GetTimeLabel()->SetText(timeStr); - free(timeStr); + // // 获取当前时间 + // char *timeStr = (char *)malloc(9); + // if (uapi_get_HHMMSS_Time(timeStr, ':', false) != ERRCODE_SUCC) + // { + // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to get start time"); + // free(timeStr); + // return; + // } + // if (PullUpDownView::GetInstance() != nullptr) + // // PullUpDownView::GetInstance()->GetTimeLabel()->SetText(timeStr); + // free(timeStr); } void MainPresenterSample::UpdataBaseData() @@ -522,14 +522,15 @@ namespace OHOS // break; // } // } - + std::string dateAndweek = std::string(dateStr) + " " + std::string(weekStr) ; if (PullUpDownView::GetInstance() != nullptr) { // PullUpDownView::GetInstance()->GetProgress()->SetImage(progressImageSrc, progressImageSrc); PullUpDownView::GetInstance()->GetProgress()->SetValue(value); - PullUpDownView::GetInstance()->GetDateLabel()->SetText(dateStr); - PullUpDownView::GetInstance()->GetTimeLabel()->SetText(timeStr); - PullUpDownView::GetInstance()->GetWeekLabel()->SetText(weekStr); + // PullUpDownView::GetInstance()->GetDateLabel()->SetText(dateStr); + // PullUpDownView::GetInstance()->GetTimeLabel()->SetText(timeStr); + // PullUpDownView::GetInstance()->GetWeekLabel()->SetText(weekStr); + PullUpDownView::GetInstance()->GetDateAndWeekLabel()->SetText(dateAndweek.c_str()); } // 释放动态分配的内存 @@ -557,15 +558,7 @@ namespace OHOS WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "%d", MainPresenterSample::g_PullUpDownTimes); if (MainPresenterSample::g_PullUpDownTimes <= 0) { - MainPresenterSample::g_PullUpDownTimes = UPDATETIME; // - if (MainPresenterSample::GetInstance() != nullptr) - { - MainPresenterSample::GetInstance()->UpdataTime(); - } - else - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainPresenterSample::GetInstance fail!!"); - } + MainPresenterSample::g_PullUpDownTimes = UPDATETIME; if (PullUpDownView::GetInstance() != nullptr) { diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/src/PullUpDownView.cpp b/code/sdk/application/wearable/fd230app/nativeui/main/src/PullUpDownView.cpp index 6c66b173e..ad2ac85e9 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/src/PullUpDownView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/main/src/PullUpDownView.cpp @@ -2,11 +2,10 @@ * @Author: luozheng 1732036298@qq.com * @Date: 2024-06-26 18:14:24 * @LastEditors: luozheng 1732036298@qq.com - * @LastEditTime: 2024-08-03 17:11:11 + * @LastEditTime: 2024-08-22 16:35:46 * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/src/PullUpDownView.cpp */ -#if 1 #include "PullUpDownView.h" #include "wearable_log.h" #include "UiConfig.h" @@ -24,93 +23,24 @@ namespace OHOS { /* ---------------------------------- 坐标位置 ---------------------------------- */ - // 设置 - static constexpr uint16_t SETTING_IMG_X = 30; - static constexpr uint16_t SETTING_IMG_Y = 186; - static constexpr const char *DROPDOWN_SETTING_IMAGE = "/user/res/dropdown/DROPDOWN_SETTING.bin"; - - // 蓝牙 - static constexpr uint16_t BLUETOOTH_IMG_X = 76; - static constexpr uint16_t BLUETOOTH_IMG_Y = 76; - static constexpr const char *DROPDOWN_BLUETOOTH_IMAGE = "/user/res/dropdown/DROPDOWN_BLUETOOTH.bin"; - - // 勿扰 - static constexpr uint16_t DNOTDISTURB_IMG_X = 186; - static constexpr uint16_t DNOTDISTURB_IMG_Y = 30; - static constexpr const char *DROPDOWN_DNOTDISTURB_IMAGE = "/user/res/dropdown/DROPDOWN_DNOTDISTURB.bin"; - - // 省电 - static constexpr uint16_t SAVEPOWER_IMG_X = 296; - static constexpr uint16_t SAVEPOWER_IMG_Y = 76; - // static constexpr const char *DROPDOWN_SAVEPOWER_IMAGE = "/user/res/dropdown/DROPDOWN_SAVEPOWER.bin"; - static constexpr const char *DROPDOWN_SAVEPOWER_IMAGE = "/user/res/dropdown/DROPDOWN_ALIPAY.bin";/*支付宝*/ - - // 找手机 - static constexpr uint16_t FINDPHONE_IMG_X = 342; - static constexpr uint16_t FINDPHONE_IMG_Y = 186; - // static constexpr const char *DROPDOWN_FINDPHONE_IMAGE = "/user/res/dropdown/DROPDOWN_FINDPHONE.bin"; - static constexpr const char *DROPDOWN_FINDPHONE_IMAGE = "/user/res/dropdown/DROPDOWN_4G.bin";/*4G*/ - - // line - static constexpr uint16_t LINE_IMG_X = 193; - static constexpr uint16_t LINE_IMG_Y = 430; - static constexpr const char *DROPDOWN_LINE_IMAGE = "/user/res/dropdown/DROPDOWN_LINE.bin"; - - // icon图片大小 - static constexpr uint16_t ICON_IMG_SIZE_W = 94; - static constexpr uint16_t ICON_IMG_SIZE_H = 94; - - // 电池 - static constexpr uint16_t BATTERY_X = 209; - static constexpr uint16_t BATTERY_Y = 180; - - // 时间 - static constexpr uint16_t TIME_LABEL_X = 172; - static constexpr uint16_t TIME_LABEL_Y = 230; - - // 日期 - static constexpr uint16_t DATE_LABEL_X = 110; - static constexpr uint16_t DATE_LABEL_Y = 300; - - // 星期 - static constexpr uint16_t WEEK_LABEL_X = 295; - static constexpr uint16_t WEEK_LABEL_Y = 300; - // 手机连接状态 - static constexpr uint16_t PHONECONNECTSTATUS_IMG_X = 123; - static constexpr uint16_t PHONECONNECTSTATUS_IMG_Y = 350; - static constexpr const char *DROPDOWN_PHONECONNECTED_IMAGE = "/user/res/dropdown/DROPDOWN_PHONECONNECTED.bin"; - static constexpr const char *DROPDOWN_PHONEDISCONNECTED_IMAGE = "/user/res/dropdown/DROPDOWN_PHONEDISCONNECTED.bin"; - + static constexpr const char *DROPDOWN_PHONECONNECTED_IMAGE = "/user/res/dropdown/phone_connect.bin"; + static constexpr const char *DROPDOWN_PHONEDISCONNECTED_IMAGE = "/user/res/dropdown/phone_disconnect.bin"; // 耳机连接状态 - static constexpr uint16_t EARPHONESCONNECTSTATUS_IMG_X = 203; - static constexpr uint16_t EARPHONESCONNECTSTATUS_IMG_Y = 350; - static constexpr const char *DROPDOWN_EARPHONESCONNECTED_IMAGE = "/user/res/dropdown/DROPDOWN_EARPHONESCONNECTED.bin"; - static constexpr const char *DROPDOWN_EARPHONESDISCONNECTED_IMAGE = "/user/res/dropdown/DROPDOWN_EARPHONESDISCONNECTED.bin"; - + static constexpr const char *DROPDOWN_EARPHONESCONNECTED_IMAGE = "/user/res/dropdown/earphones_connect.bin"; + static constexpr const char *DROPDOWN_EARPHONESDISCONNECTED_IMAGE = "/user/res/dropdown/earphones_disconnect.bin"; // 蓝牙连接状态 - static constexpr uint16_t BLUETOOTHCONNECTSTATUS_IMG_X = 283; - static constexpr uint16_t BLUETOOTHCONNECTSTATUS_IMG_Y = 350; - static constexpr const char *DROPDOWN_BLUETOOTHCONNECTED_IMAGE = "/user/res/dropdown/DROPDOWN_BLUETOOTHCONNECTED.bin"; - static constexpr const char *DROPDOWN_BLUETOOTHDISCONNECTED_IMAGE = "/user/res/dropdown/DROPDOWN_BLUETOOTHDISCONNECTED.bin"; - - static constexpr uint16_t CONNECTSTATUS_IMG_W = 60; - static constexpr uint16_t CONNECTSTATUS_IMG_H = 60; + static constexpr const char *DROPDOWN_BLUETOOTHCONNECTED_IMAGE = "/user/res/dropdown/bluetooth_connect.bin"; + static constexpr const char *DROPDOWN_BLUETOOTHDISCONNECTED_IMAGE = "/user/res/dropdown/bluetooth_disconnect.bin"; static constexpr const char *DROPDOWN_NOSIGNAL_IMAGE = "/user/res/dropdown/DROPDOWN_NOSIGNAL.bin"; static constexpr const char *DROPDOWN_MOBILE_DATA_IMAGE = "/user/res/dropdown/DROPDOWN_MOBILE_DATA.bin"; + static constexpr const char *DROPDOWN_HD_IMAGE = "/user/res/dropdown/DROPDOWN_HD.bin"; + static constexpr const char *DROPDOWN_SELECT_1_IMAGE = "/user/res/dropdown/DROPDOWN_SELECT_1.bin"; + static constexpr const char *DROPDOWN_SELECT_2_IMAGE = "/user/res/dropdown/DROPDOWN_SELECT_2.bin"; + static constexpr const char *DROPDOWN_LINE_IMAGE = "/user/res/dropdown/DROPDOWN_LINE.bin"; static const int64_t COLOR_SIGNAL_ON = 0xffffffff; static const int64_t COLOR_SIGNAL_OFF = 0xff383838; - static const int BATTERY_IMAGE_WIDTH = 48; - static const int BATTERY_IMAGE_HEIGHT = 30; - static const int PROGRESS_WIDTH = 30; - static const int PROGRESS_HEIGHT = 18; - /* -------------------------------------------------------------------------- */ - std::string getWeekString(int wday) - { - std::string weekDays[] = {"星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"}; - return weekDays[wday]; - } /* -------------------------------------------------------------------------- */ static PullUpDownView *g_pPullUpDownView = nullptr; PullUpDownView::PullUpDownView() @@ -135,65 +65,18 @@ namespace OHOS return g_pPullUpDownView; } - // 清除信号强度相关组件 - void PullUpDownView::ClearAllSingalComponentsView() - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::ClearAllSingalComponentsView"); - if (NoSignal != nullptr) - { - delete NoSignal; - NoSignal = nullptr; - } - - for (int i = 0; i < 4; i++) - { - if (showSignalStrength[i] != nullptr) - { - delete showSignalStrength[i]; - showSignalStrength[i] = nullptr; - } - } - - if (Singal_4 != nullptr) - { - delete Singal_4; - Singal_4 = nullptr; - } - - if (MobileData != nullptr) - { - delete MobileData; - MobileData = nullptr; - } - } - - // 清除所有与连接状态相关的视图组件 - void PullUpDownView::ClearAllConnectedStatusComponentsView() + void PullUpDownView::OnSwipe(UISwipeView &view) { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::ClearAllConnectedStatusComponentsView"); - if (connectedStatusBackgroundButton != nullptr) - { - delete connectedStatusBackgroundButton; - connectedStatusBackgroundButton = nullptr; - } - - if (showPhoneConnectedStatus != nullptr) - { - delete showPhoneConnectedStatus; - showPhoneConnectedStatus = nullptr; - } - - if (showEarPhoneConnectedStatus != nullptr) + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::OnSwipe,current tab index = %d", view.GetCurrentPage()); + if (view.GetCurrentPage() == 0) { - delete showEarPhoneConnectedStatus; - showEarPhoneConnectedStatus = nullptr; + UpdateSwipviewSelect(true); } - - if (showBluetoothConnectedStatus != nullptr) + else { - delete showBluetoothConnectedStatus; - showBluetoothConnectedStatus = nullptr; + UpdateSwipviewSelect(false); } + return; } void PullUpDownView::ClearAll() @@ -203,220 +86,27 @@ namespace OHOS if (group[DROPDOWNVIEW] != nullptr) { group[DROPDOWNVIEW]->RemoveAll(); - group[DROPDOWNVIEW]->ClearBackgroundBlur(); + /* -------------------------------------------------------------------------- */ + ClearAll_1(); + ClearAll_2(); + ClearAll_3(); + ClearAll_4(); + /* -------------------------------------------------------------------------- */ delete group[DROPDOWNVIEW]; group[DROPDOWNVIEW] = nullptr; } - - if (dropSetting != nullptr) - { - delete dropSetting; - dropSetting = nullptr; - } - - if (dropBluetooth != nullptr) - { - delete dropBluetooth; - dropBluetooth = nullptr; - } - - if (dropDnotDisturb != nullptr) - { - delete dropDnotDisturb; - dropDnotDisturb = nullptr; - } - - if (dropSavePower != nullptr) - { - delete dropSavePower; - dropSavePower = nullptr; - } - - if (drofindPhone != nullptr) - { - delete drofindPhone; - drofindPhone = nullptr; - } - - if (dropLine != nullptr) - { - delete dropLine; - dropLine = nullptr; - } - - if (showTimeLabel != nullptr) - { - delete showTimeLabel; - showTimeLabel = nullptr; - } - - if (showDateLabel != nullptr) - { - delete showDateLabel; - showDateLabel = nullptr; - } - - if (showWeekLabel != nullptr) - { - delete showWeekLabel; - showWeekLabel = nullptr; - } - /* -------------------------------------------------------------------------- */ - ClearAllSingalComponentsView(); - ClearAllConnectedStatusComponentsView(); - /* -------------------------------------------------------------------------- */ - if (batteryimage != nullptr) - { - delete batteryimage; - batteryimage = nullptr; - } - - if (progress != nullptr) - { - delete progress; - progress = nullptr; - } - if (connectedStatusView != nullptr) { delete connectedStatusView; connectedStatusView = nullptr; - group[CONNECTEDSTATUSVIEW] = nullptr; - } - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::ClearAll end!!"); - } - - UIImageView *PullUpDownView::dropDownIconImageViweInit(ImageConfig &imageconfig) - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::dropDownIconImageViweInit"); - UIImageView *Image = new UIImageView(); - if (Image == nullptr) - { - return nullptr; - } - Image->SetPosition(imageconfig.x, imageconfig.y, imageconfig.w, imageconfig.h); - Image->SetViewId(imageconfig.viewid); - Image->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919); - Image->SetStyle(STYLE_BACKGROUND_OPA, 0xff); - Image->SetStyle(STYLE_BORDER_RADIUS, 100); - Image->SetAutoEnable(false); - Image->SetResizeMode(UIImageView::CENTER); - Image->SetSrc(imageconfig.src); - Image->SetTouchable(true); - Image->SetOnClickListener(imageconfig.clicklistener); - - return Image; - } - - /// @brief 创建icon图标 - void PullUpDownView::createDropDownIconImageViwe(void) - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::InitViewImg"); - UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::MainPresenterSample::GetInstance(); - if (clickListener == nullptr) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainPresenterSample::GetInstance fail!!"); - return; - } - /* ---------------------------------- 下拉设置图片 ---------------------------------- */ - ImageConfig imageconfig = { - .x = SETTING_IMG_X, - .y = SETTING_IMG_Y, - .w = ICON_IMG_SIZE_W, - .h = ICON_IMG_SIZE_H, - .viewid = DROPDOWN_CLICK_SETTING, - .src = DROPDOWN_SETTING_IMAGE, - .clicklistener = clickListener, - }; - dropSetting = dropDownIconImageViweInit(imageconfig); - if (dropSetting == nullptr) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::dropSetting new fail"); - return; - } - /* ----------------------------------- 蓝牙 ----------------------------------- */ - imageconfig = { - .x = BLUETOOTH_IMG_X, - .y = BLUETOOTH_IMG_Y, - .w = ICON_IMG_SIZE_W, - .h = ICON_IMG_SIZE_H, - .viewid = DROPDOWN_CLICK_BLUETOOTH, - .src = DROPDOWN_BLUETOOTH_IMAGE, - .clicklistener = clickListener, - }; - dropBluetooth = dropDownIconImageViweInit(imageconfig); - if (dropBluetooth == nullptr) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::dropBluetooth new fail"); - return; - } - /* ----------------------------------- 勿扰模式 ----------------------------------- */ - imageconfig = { - .x = DNOTDISTURB_IMG_X, - .y = DNOTDISTURB_IMG_Y, - .w = ICON_IMG_SIZE_W, - .h = ICON_IMG_SIZE_H, - .viewid = DROPDOWN_CLICK_DNOTDISTURB, - .src = DROPDOWN_DNOTDISTURB_IMAGE, - .clicklistener = clickListener, - }; - dropDnotDisturb = dropDownIconImageViweInit(imageconfig); - if (dropDnotDisturb == nullptr) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::dropDnotDisturb new fail"); - return; - } - UpdateDnotDisturbStatus(DnotDisturbModel::GetInstance().GetDoNotDisturbModeEnabled()); - /* ----------------------------------- 省电 ----------------------------------- */ - imageconfig = { - .x = SAVEPOWER_IMG_X, - .y = SAVEPOWER_IMG_Y, - .w = ICON_IMG_SIZE_W, - .h = ICON_IMG_SIZE_H, - .viewid = DROPDOWN_CLICK_SAVEELE, - .src = DROPDOWN_SAVEPOWER_IMAGE, - .clicklistener = clickListener, - }; - dropSavePower = dropDownIconImageViweInit(imageconfig); - if (dropSavePower == nullptr) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::dropSavePower new fail"); - return; - } - /* ----------------------------------- 找手机 ---------------------------------- */ - imageconfig = { - .x = FINDPHONE_IMG_X, - .y = FINDPHONE_IMG_Y, - .w = ICON_IMG_SIZE_W, - .h = ICON_IMG_SIZE_H, - .viewid = DROPDOWN_CLICK_FINDMYPHONE, - .src = DROPDOWN_FINDPHONE_IMAGE, - .clicklistener = clickListener, - }; - drofindPhone = dropDownIconImageViweInit(imageconfig); - if (drofindPhone == nullptr) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::drofindPhone new fail"); - return; } - /* -------------------------------- dropLine -------------------------------- */ - dropLine = new UIImageView(); - if (dropLine == nullptr) + for (int i = DROPDOWNVIEW; i < MAX_DROPDOWNVIEWID; i++) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dropLine new fail"); - return; + group[i] = nullptr; } - dropLine->SetPosition(LINE_IMG_X, LINE_IMG_Y, ICON_IMG_SIZE_W, ICON_IMG_SIZE_H); - dropLine->SetSrc(DROPDOWN_LINE_IMAGE); - /* -------------------------------- 添加组件到视图上 -------------------------------- */ - group[DROPDOWNVIEW]->Add(dropSetting); - group[DROPDOWNVIEW]->Add(dropBluetooth); - group[DROPDOWNVIEW]->Add(dropDnotDisturb); - group[DROPDOWNVIEW]->Add(dropSavePower); - group[DROPDOWNVIEW]->Add(drofindPhone); - group[DROPDOWNVIEW]->Add(dropLine); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::ClearAll end!!"); } - + /* --------------------------------- 1.连接状态相关 --------------------------------- */ // 获取手机连接状态 bool PullUpDownView::GetPhoneConnectedStatus(void) { @@ -430,7 +120,6 @@ namespace OHOS return SettingModel::GetInstance().GetPhoneConnectStatus(); } - // 获取蓝牙耳机连接状态 bool PullUpDownView::GetEarPhoneConnectedStatus(void) { @@ -444,7 +133,6 @@ namespace OHOS return SettingModel::GetInstance().GetEarPhoneConnectStatus(); } - // 获取蓝牙连接状态 bool PullUpDownView::GetBlueToothConnectedStatus(void) { @@ -459,7 +147,58 @@ namespace OHOS return SettingModel::GetInstance().GetBlueToothConnectStatus(); } - UIImageView *PullUpDownView::dropDownConnectedStatusImageViweInit(int16_t x, int16_t y, int16_t w, int16_t h) + // 更新手机连接状态 + void PullUpDownView::UpdatePhoneStatus(int status) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdatePhoneStatus"); + if (showPhoneConnectedStatus == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showPhoneConnectedStatus nullptr"); + return; + } + showPhoneConnectedStatus->SetSrc(status ? DROPDOWN_PHONECONNECTED_IMAGE : DROPDOWN_PHONEDISCONNECTED_IMAGE); + showPhoneConnectedStatus->Invalidate(); + + if (GetConnectedStatusView() != nullptr) + GetConnectedStatusView()->UpdatePhoneConnectedStatus(status); + + return; + } + // 更新蓝牙耳机连接状态 + void PullUpDownView::UpdateEarPhoneStatus(int status) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateEarPhoneStatus"); + if (showEarPhoneConnectedStatus == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showEarPhoneConnectedStatus nullptr"); + return; + } + showEarPhoneConnectedStatus->SetSrc(status ? DROPDOWN_EARPHONESCONNECTED_IMAGE : DROPDOWN_EARPHONESDISCONNECTED_IMAGE); + showEarPhoneConnectedStatus->Invalidate(); + + if (GetConnectedStatusView() != nullptr) + GetConnectedStatusView()->UpdateEarPhoneConnectedStatus(status); + + return; + } + // 更新蓝牙连接状态 + void PullUpDownView::UpdateBlueToothStatus(int status) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateBlueToothStatus"); + if (showBluetoothConnectedStatus == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showBluetoothConnectedStatus nullptr"); + return; + } + showBluetoothConnectedStatus->SetSrc(status ? DROPDOWN_BLUETOOTHCONNECTED_IMAGE : DROPDOWN_BLUETOOTHDISCONNECTED_IMAGE); + showBluetoothConnectedStatus->Invalidate(); + + if (GetConnectedStatusView() != nullptr) + GetConnectedStatusView()->UpdateBlueToothConnectedStatus(status); + + return; + } + UIImageView *PullUpDownView::DropDownConnectedStatusImageViweInit(int16_t x, int16_t y, int16_t w, int16_t h) { UIImageView *img = new UIImageView(); if (img == nullptr) @@ -473,25 +212,24 @@ namespace OHOS return img; } - /// @brief 创建与连接状态相关组件 - void PullUpDownView::createDropDownConnectedStatusImageViwe(void) + void PullUpDownView::CreateDropDownConnectionStatusImageViwe(void) { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::InitConnectedStatusImage"); - connectedStatusBackgroundButton = new UIButton(); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::CreateDropDownConnectionStatusImageViwe"); if (connectedStatusBackgroundButton == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "connectedStatusBackgroundButton new fail"); - return; + connectedStatusBackgroundButton = new UIButton(); + if (connectedStatusBackgroundButton == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "connectedStatusBackgroundButton new fail"); + return; + } } - connectedStatusBackgroundButton->SetPosition(113, 348, 240, 64); + connectedStatusBackgroundButton->SetPosition(153, 10, 160, 50); connectedStatusBackgroundButton->SetViewId(CONNECTEDSTATUSBACKGROUNDBUTTON); - connectedStatusBackgroundButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff); - connectedStatusBackgroundButton->SetStyle(STYLE_BACKGROUND_OPA, 0x00); - connectedStatusBackgroundButton->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xffffffff, UIButton::PRESSED); - connectedStatusBackgroundButton->SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED); - connectedStatusBackgroundButton->SetStyleForState(STYLE_BORDER_COLOR, 0xffffffff, UIButton::PRESSED); - connectedStatusBackgroundButton->SetStyleForState(STYLE_BORDER_OPA, 0x00, UIButton::PRESSED); + connectedStatusBackgroundButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919); + connectedStatusBackgroundButton->SetStyle(STYLE_BACKGROUND_OPA, 0xff); + connectedStatusBackgroundButton->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff383838, UIButton::PRESSED); UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::MainPresenterSample::GetInstance(); if (clickListener == nullptr) { @@ -499,27 +237,37 @@ namespace OHOS return; } connectedStatusBackgroundButton->SetOnClickListener(clickListener); + int x = connectedStatusBackgroundButton->GetX(); + int y = connectedStatusBackgroundButton->GetY(); /* -------------------------------- 显示手机连接状态 -------------------------------- */ - - showPhoneConnectedStatus = dropDownConnectedStatusImageViweInit(PHONECONNECTSTATUS_IMG_X, PHONECONNECTSTATUS_IMG_Y, CONNECTSTATUS_IMG_W, CONNECTSTATUS_IMG_H); if (showPhoneConnectedStatus == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showPhoneConnectedStatus new fail"); - return; + showPhoneConnectedStatus = DropDownConnectedStatusImageViweInit(x + 26, y + 13, 24, 24); + if (showPhoneConnectedStatus == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showPhoneConnectedStatus new fail"); + return; + } } /* -------------------------------- 显示耳机连接状态 -------------------------------- */ - showEarPhoneConnectedStatus = dropDownConnectedStatusImageViweInit(EARPHONESCONNECTSTATUS_IMG_X, EARPHONESCONNECTSTATUS_IMG_Y, CONNECTSTATUS_IMG_W, CONNECTSTATUS_IMG_H); if (showEarPhoneConnectedStatus == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showEarPhoneConnectedStatus new fail"); - return; + showEarPhoneConnectedStatus = DropDownConnectedStatusImageViweInit(x + 68, y + 13, 24, 24); + if (showEarPhoneConnectedStatus == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showEarPhoneConnectedStatus new fail"); + return; + } } /* -------------------------------- 显示蓝牙连接状态 -------------------------------- */ - showBluetoothConnectedStatus = dropDownConnectedStatusImageViweInit(BLUETOOTHCONNECTSTATUS_IMG_X, BLUETOOTHCONNECTSTATUS_IMG_Y, CONNECTSTATUS_IMG_W, CONNECTSTATUS_IMG_H); if (showBluetoothConnectedStatus == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showBluetoothConnectedStatus new fail"); - return; + showBluetoothConnectedStatus = DropDownConnectedStatusImageViweInit(x + 110, y + 13, 24, 24); + if (showBluetoothConnectedStatus == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showBluetoothConnectedStatus new fail"); + return; + } } /* -------------------------------------------------------------------------- */ UpdatePhoneStatus(GetPhoneConnectedStatus()); @@ -532,129 +280,80 @@ namespace OHOS group[DROPDOWNVIEW]->Add(showBluetoothConnectedStatus); } - /*** - * @brief 初始化时间,日期,星期,电池,信号强度 - */ - bool PullUpDownView::InitBaseData() + void PullUpDownView::ClearAll_1(void) { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::InitBaseData"); - if (!InitSingalComponentsView()) + if (connectedStatusBackgroundButton != nullptr) { - return false; + delete connectedStatusBackgroundButton; + connectedStatusBackgroundButton = nullptr; } - - /* ---------------------------------- 时间显示 ---------------------------------- */ - showTimeLabel = new UILabel(); - if (showTimeLabel == nullptr) + if (showPhoneConnectedStatus != nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showTimeLabel new fail"); - return false; + delete showPhoneConnectedStatus; + showPhoneConnectedStatus = nullptr; } - showTimeLabel->SetPosition(TIME_LABEL_X, TIME_LABEL_Y); - showTimeLabel->SetStyle(STYLE_TEXT_FONT, 50); - showTimeLabel->SetStyle(STYLE_LINE_HEIGHT, 59); - showTimeLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT); - showTimeLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER); - showTimeLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 50); - /* ---------------------------------- 日期显示 ---------------------------------- */ - showDateLabel = new UILabel(); - if (showDateLabel == nullptr) + if (showEarPhoneConnectedStatus != nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showDateLabel new fail"); - return false; + delete showEarPhoneConnectedStatus; + showEarPhoneConnectedStatus = nullptr; } - showDateLabel->SetPosition(DATE_LABEL_X, DATE_LABEL_Y); - showDateLabel->SetStyle(STYLE_TEXT_FONT, 30); - showDateLabel->SetStyle(STYLE_LINE_HEIGHT, 35); - showDateLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT); - showDateLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER); - showDateLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30); - /* ---------------------------------- 星期显示 ---------------------------------- */ - showWeekLabel = new UILabel(); - if (showWeekLabel == nullptr) + if (showBluetoothConnectedStatus != nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showWeekLabel new fail"); - return false; + delete showBluetoothConnectedStatus; + showBluetoothConnectedStatus = nullptr; } - showWeekLabel->SetPosition(WEEK_LABEL_X, WEEK_LABEL_Y); - showWeekLabel->SetStyle(STYLE_TEXT_FONT, 30); - showWeekLabel->SetStyle(STYLE_LINE_HEIGHT, 35); - showWeekLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT); - showWeekLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER); - showWeekLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 28); - /* ----------------------------------- 电池 ----------------------------------- */ - batteryimage = new UIImageView(); - if (batteryimage == nullptr) + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::ClearAllConnectedStatusComponentsView"); + } + /* -------------------------------------------------------------------------- */ + /*** + * @brief 初始化时间,日期,星期,电池,信号强度 + */ + void PullUpDownView::InitBaseData() + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::InitBaseData"); + if (group1 == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "batteryimage new fail"); - return false; + group1 = new UIViewGroup(); + if (group1 == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group1 new fail"); + return; + } } - batteryimage->SetPosition(258, 180, BATTERY_IMAGE_WIDTH, BATTERY_IMAGE_HEIGHT); - std::string batteryimagesPath = "/user/res/Battery/Battery-E.bin"; - batteryimage->SetSrc(batteryimagesPath.c_str()); - /* -------------------------------------------------------------------------- */ - progress = new UIBoxProgress(); - if (progress == nullptr) + group1->SetPosition(132, 80, 202, 40); + group1->SetStyle(STYLE_BACKGROUND_OPA, 0); + /* -------------------------------- NoSignal -------------------------------- */ + if (NoSignal == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "progress new fail"); - return false; + NoSignal = new UIImageView(); + if (NoSignal == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "NoSignal new fail"); + return; + } } - progress->SetPosition(206, 180, PROGRESS_WIDTH, PROGRESS_HEIGHT); - progress->SetValidHeight(PROGRESS_HEIGHT); - progress->SetValidWidth(PROGRESS_WIDTH); - progress->SetValue(20); - // progress->SetRange(100,0); - // const char *progressImageSrc = "/user/res/Battery/Battery_Normal.bin"; - // progress->SetImage(progressImageSrc, progressImageSrc); - progress->SetBackgroundStyle(STYLE_BACKGROUND_OPA, 0x00); - progress->SetBackgroundStyle(STYLE_TEXT_COLOR, 0xff000000); - progress->SetForegroundStyle(STYLE_BACKGROUND_COLOR, 0xffffffff); - progress->SetForegroundStyle(STYLE_TEXT_COLOR, 0xff000000); - progress->SetForegroundStyle(STYLE_LINE_COLOR, 0xff45A5FF); - - group[DROPDOWNVIEW]->Add(progress); - group[DROPDOWNVIEW]->Add(batteryimage); - group[DROPDOWNVIEW]->Add(showTimeLabel); - group[DROPDOWNVIEW]->Add(showDateLabel); - group[DROPDOWNVIEW]->Add(showWeekLabel); - - /* -------------------------------------------------------------------------- */ - UpdateSignalStrengthStatusAndBatteryPosition(); - /* -------------------------------------------------------------------------- */ - - return true; - } - - // 初始化信号强度相关组件 - bool PullUpDownView::InitSingalComponentsView() - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::InitSingalComponentsView"); - /* -------------------------------------------------------------------------- */ - NoSignal = new UIImageView(); - if (NoSignal == nullptr) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "NoSignal new fail"); - return false; - } - NoSignal->SetPosition(160, 176, 36, 38); + NoSignal->SetPosition(0, (group1->GetHeight() - 38) / 2, 36, 38); NoSignal->SetAutoEnable(false); NoSignal->SetResizeMode(UIImageView::CENTER); NoSignal->SetSrc(DROPDOWN_NOSIGNAL_IMAGE); NoSignal->SetVisible(false); - group[DROPDOWNVIEW]->Add(NoSignal); - /* -------------------------------------------------------------------------- */ - MobileData = new UIImageView(); + group1->Add(NoSignal); + /* ------------------------------- MobileData ------------------------------- */ if (MobileData == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MobileData new fail"); - return false; + MobileData = new UIImageView(); + if (MobileData == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MobileData new fail"); + return; + } } - MobileData->SetPosition(161, 180, 13, 15); + MobileData->SetPosition(1, 4, 13, 15); MobileData->SetAutoEnable(false); MobileData->SetResizeMode(UIImageView::CENTER); MobileData->SetSrc(DROPDOWN_MOBILE_DATA_IMAGE); MobileData->SetVisible(false); - group[DROPDOWNVIEW]->Add(MobileData); + group1->Add(MobileData); /* -------------------------------------------------------------------------- */ // 定义一个结构体,用于存储 ImageView 的信息 struct ImageViewInfo @@ -666,10 +365,10 @@ namespace OHOS }; // 待添加的 ImageView 信息列表 std::vector imageViewList = { - {160, 204, 6, 6}, - {170, 196, 6, 14}, - {180, 188, 6, 22}, - {190, 180, 6, 30}, + {0, 28, 6, 6}, + {10, 20, 6, 14}, + {20, 12, 6, 22}, + {30, 4, 6, 30}, }; // 循环添加 ImageView 到相应的容器中 @@ -681,22 +380,22 @@ namespace OHOS if (showSignalStrength[i] == nullptr) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showSignalStrength[%d] new fail", i); - return false; + return; } } showSignalStrength[i]->SetPosition(imageViewList[i].posX, imageViewList[i].posY, imageViewList[i].width, imageViewList[i].height); showSignalStrength[i]->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff); showSignalStrength[i]->SetStyle(STYLE_BACKGROUND_OPA, 0xff); showSignalStrength[i]->SetStyle(STYLE_BORDER_RADIUS, 10); - group[DROPDOWNVIEW]->Add(showSignalStrength[i]); + group1->Add(showSignalStrength[i]); showSignalStrength[i]->SetVisible(false); } - /* -------------------------------------------------------------------------- */ + /* -------------------------------- Singal_4 -------------------------------- */ if (Singal_4 == nullptr) { Singal_4 = new UILabel(); } - Singal_4->SetPosition(201, 176, 40, 47); + Singal_4->SetPosition(0, 0, 40, 47); Singal_4->SetStyle(STYLE_TEXT_FONT, 34); Singal_4->SetStyle(STYLE_LINE_HEIGHT, 40); Singal_4->SetText("4G"); @@ -704,1143 +403,127 @@ namespace OHOS Singal_4->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER); Singal_4->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 34); Singal_4->SetVisible(false); - group[DROPDOWNVIEW]->Add(Singal_4); - - return true; - } - - // 获取信号强度 - int PullUpDownView::GetSignalStrength(void) - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::GetSignalStrength"); - int SignalStrength = uapi_dev_runtime_get_cat1_signal(); // 信号强度 - return CalculateSignalBars(SignalStrength); - } - - // 计算信号格 - int PullUpDownView::CalculateSignalBars(int signalStrength) - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::CalculateSignalBars"); - if (signalStrength < 0 || signalStrength > 32 || signalStrength == 0) - return 99; // 无信号 or Invalid signal strength - - // if (signalStrength == 32) - // return 4; // Edge case where signalStrength is exactly at the upper boundary - - return (signalStrength / 8) + 1; - } - -#if 1 - // 函数用于更新信号显示的UI - void PullUpDownView::updateSignalDisplay() - { - int sim = uapi_dev_runtime_get_cat1_simstat(); - int cat1_powerOn = uapi_dev_runtime_get_cat1_powerstat(); - int signal = uapi_dev_runtime_get_cat1_signal(); - int network_on = uapi_dev_runtime_get_cat1_networkstat(); - int cat1_network_type = uapi_dev_runtime_get_cat1_networtype(); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "sim = %d", sim); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cat1_powerOn = %d", cat1_powerOn); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "signal = %d", signal); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "network_on = %d", network_on); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cat1_network_type = %d", cat1_network_type); - - const int SIGNAL_NO_SIGNAL = 99; - const int NETWORK_TYPE_NO_NETWORK = 0; - const int NETWORK_TYPE_4G = 4; - - if (sim == 0 || cat1_powerOn == 0) - { - // 无信号,无4G图标 - UpdateCat1NoSignalisplay(true); - UpdateCat14GDisplay(false); - UpdateSignalBarDisplay(CalculateSignalBars(signal), false); - UpdateCat1MobileDataDisplay(false); - } - else if (cat1_powerOn == 1 && sim == 1) + group1->Add(Singal_4); + /* ----------------------------------- HD ----------------------------------- */ + if (HD == nullptr) { - if (signal == SIGNAL_NO_SIGNAL) // 计算信号强度 - { - // 无信号UI显示 - // UpdateCat1NoSignalisplay(true); - // UpdateCat14GDisplay(false); - UpdateSignalBarDisplay(CalculateSignalBars(signal), false); - } - else - { - // 信号强度显示 - UpdateCat1NoSignalisplay(false); - // UpdateCat14GDisplay(true); - UpdateSignalBarDisplay(CalculateSignalBars(signal), true); - } - - if (network_on == 0) - { - // 无信号,无4G图标 显示 - // UpdateCat1NoSignalisplay(true); - UpdateCat14GDisplay(false); - UpdateCat1MobileDataDisplay(false); - // UpdateSignalBarDisplay(CalculateSignalBars(signal), false); - } - else + HD = new UIImageView(); + if (HD == nullptr) { - if (cat1_network_type == NETWORK_TYPE_NO_NETWORK) - { - // 无信号,无4G图标 显示 - // UpdateCat1NoSignalisplay(true); - UpdateCat14GDisplay(false); - UpdateCat1MobileDataDisplay(false); - // UpdateSignalBarDisplay(CalculateSignalBars(signal), false); - } - else if (cat1_network_type == NETWORK_TYPE_4G) - { - // 有4G图标,正常显示信号 - // UpdateCat1NoSignalisplay(false); - UpdateCat14GDisplay(true); - UpdateCat1MobileDataDisplay(true); - // UpdateSignalBarDisplay(CalculateSignalBars(signal), true); - } - else - { - // 无4G图标,正常显示信号 - // UpdateCat1NoSignalisplay(false); - UpdateCat14GDisplay(false); - UpdateCat1MobileDataDisplay(true); - // UpdateSignalBarDisplay(CalculateSignalBars(signal), true); - } + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HD new fail"); + return; } } - } -#else - // 函数用于更新信号显示的UI - void PullUpDownView::updateSignalDisplay() - { - int sim = uapi_dev_runtime_get_cat1_simstat(); - int cat1_powerOn = uapi_dev_runtime_get_cat1_powerstat(); - int signal = uapi_dev_runtime_get_cat1_signal(); - int network_on = uapi_dev_runtime_get_cat1_networkstat(); - int cat1_network_type = uapi_dev_runtime_get_cat1_networtype(); - - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "sim = %d", sim); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cat1_powerOn = %d", cat1_powerOn); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "signal = %d", signal); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "network_on = %d", network_on); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cat1_network_type = %d", cat1_network_type); - - const int SIGNAL_NO_SIGNAL = 99; - const int NETWORK_TYPE_NO_NETWORK = 0; - const int NETWORK_TYPE_4G = 4; - - bool showNoSignal = (sim == 0 || cat1_powerOn == 0 || signal == SIGNAL_NO_SIGNAL); - bool showNo4GIcon = (network_on == 0 || cat1_network_type == NETWORK_TYPE_NO_NETWORK); - - if (showNoSignal) - { - UpdateCat1NoSignalisplay(true); - UpdateCat14GDisplay(false); - UpdateSignalBarDisplay(CalculateSignalBars(signal), false); - } - else - { - UpdateCat1NoSignalisplay(false); - UpdateCat14GDisplay(!showNo4GIcon && cat1_network_type == NETWORK_TYPE_4G); - UpdateSignalBarDisplay(CalculateSignalBars(signal), true); - } - } - -#endif - - // 更新信号强度显示 - void PullUpDownView::UpdateSignalBarDisplay(int signalBars, bool state) - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateSignalBarDisplay"); - for (int i = 0; i < 4; i++) - { - showSignalStrength[i]->SetStyle(STYLE_BACKGROUND_COLOR, (i < signalBars) ? COLOR_SIGNAL_ON : COLOR_SIGNAL_OFF); - showSignalStrength[i]->Invalidate(); - showSignalStrength[i]->SetVisible(state); - } - } - - // 更新无信号图标显示 - void PullUpDownView::UpdateCat1NoSignalisplay(bool state) - { - if (NoSignal != nullptr) - { - NoSignal->SetVisible(state); - } - } - - // 更新4G图标显示 - void PullUpDownView::UpdateCat14GDisplay(bool state) - { - if (Singal_4 != nullptr) - { - Singal_4->SetVisible(state); - } - UpdateBatteryPosition(state); - } - - /*更新移动数据图标显示*/ - void PullUpDownView::UpdateCat1MobileDataDisplay(bool state) - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateCat1MobileDataDisplay %d", state); - if (MobileData != nullptr) + HD->SetPosition(88 + 10, (group1->GetHeight() - 30) / 2, 46, 30); + HD->SetAutoEnable(false); + HD->SetResizeMode(UIImageView::CENTER); + HD->SetSrc(DROPDOWN_HD_IMAGE); + HD->SetVisible(false); + group1->Add(HD); + /* ----------------------------------- 电池 ----------------------------------- */ + batteryimage = new UIImageView(); + if (batteryimage == nullptr) { - MobileData->SetVisible(state); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "batteryimage new fail"); + return; } - } - - // 更新电池位置 - void PullUpDownView::UpdateBatteryPosition(bool state) - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateBatteryPosition"); - if (state == false) + batteryimage->SetPosition(HD->GetX() + HD->GetWidth() + 10, (group1->GetHeight() - 30) / 2, 48, 30); + std::string batteryimagesPath = "/user/res/Battery/Battery-E.bin"; + batteryimage->SetSrc(batteryimagesPath.c_str()); + group1->Add(batteryimage); + /* -------------------------------------------------------------------------- */ + progress = new UIBoxProgress(); + if (progress == nullptr) { - batteryimage->SetPosition(209, 180, BATTERY_IMAGE_WIDTH, BATTERY_IMAGE_HEIGHT); - progress->SetPosition(215, 186, PROGRESS_WIDTH, PROGRESS_HEIGHT); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "progress new fail"); + return; } - else + progress->SetPosition(batteryimage->GetX() + 7, batteryimage->GetY() + 6, 30, 18); + progress->SetValidWidth(30); + progress->SetValidHeight(18); + progress->SetRange(100, 0); + progress->SetStyle(STYLE_BORDER_RADIUS, 3); + progress->SetBackgroundStyle(STYLE_BACKGROUND_OPA, 0x00); + progress->SetBackgroundStyle(STYLE_TEXT_COLOR, 0xff000000); + progress->SetForegroundStyle(STYLE_BACKGROUND_COLOR, 0xffffffff); + progress->SetForegroundStyle(STYLE_TEXT_COLOR, 0xff000000); + progress->SetForegroundStyle(STYLE_LINE_COLOR, 0xff45A5FF); + group1->Add(progress); + /* -------------------------------------------------------------------------- */ + group[DROPDOWNVIEW]->Add(group1); + /* --------------------------------- 显示日期和星期 -------------------------------- */ + showDateAndWeekLabel = new UILabel(); + if (showDateAndWeekLabel == nullptr) { - batteryimage->SetPosition(258, 180, BATTERY_IMAGE_WIDTH, BATTERY_IMAGE_HEIGHT); - progress->SetPosition(264, 186, PROGRESS_WIDTH, PROGRESS_HEIGHT); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showDateAndWeekLabel new fail"); + return; } - batteryimage->Invalidate(); - progress->Invalidate(); - } - - // 更新信号强度和电池位置 - void PullUpDownView::UpdateSignalStrengthStatusAndBatteryPosition() - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateSignalStrengthStatusAndBatteryPosition"); - updateSignalDisplay(); - - int a2dp = uapi_a2dp_snk_get_device_connect_state(); - int hfp = uapi_hfp_connect_state(); - bool bluetoothstatus = (a2dp == 0 && hfp == 0) ? false : true; - UpdateBlueToothStatus(bluetoothstatus); - // UpdateBatteryPosition(GetSignalStrength()); + showDateAndWeekLabel->SetPosition(128, 130, 210, 30); + showDateAndWeekLabel->SetStyle(STYLE_TEXT_FONT, 30); + showDateAndWeekLabel->SetStyle(STYLE_LINE_HEIGHT, 35); + showDateAndWeekLabel->SetTextColor(Color::GetColorFromRGBA(0xaa, 0xaa, 0xaa, 0xff)); + showDateAndWeekLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT); + showDateAndWeekLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER); + showDateAndWeekLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30); + group[DROPDOWNVIEW]->Add(showDateAndWeekLabel); + /* -------------------------------------------------------------------------- */ + UpdateSignalStrengthStatusAndBatteryPosition(); + /* -------------------------------------------------------------------------- */ + MainPresenterSample::GetInstance()->UpdataBaseData(); + /* -------------------------------------------------------------------------- */ } - - // 下拉视图初始化 - bool PullUpDownView::PullUpDownViewInit() + void PullUpDownView::ClearAll_2(void) { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::InitView"); - - group[DROPDOWNVIEW] = new UIViewGroup(); - if (group[DROPDOWNVIEW] == nullptr) + if (group1 != nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group[DROPDOWNVIEW] new fail!!"); - return false; - } - group[DROPDOWNVIEW]->SetPosition(0, 0, 466, 466); - group[DROPDOWNVIEW]->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT); - group[DROPDOWNVIEW]->SetViewIndex(0); - group[DROPDOWNVIEW]->SetFullScreenBlur(true); - createDropDownIconImageViwe(); - createDropDownConnectedStatusImageViwe(); - - if (InitBaseData()) - { - MainPresenterSample::GetInstance()->UpdataBaseData(); - } - else - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::InitBaseData Error!"); - return false; - } - SetTouchable(true); - SetIntercept(true); - Add(group[DROPDOWNVIEW]); - return true; - } - - void PullUpDownView::PreLoad(void) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::PreLoad"); - if (!viewiInitStatus) - { - PullUpDownViewInit(); - viewiInitStatus = true; - } - } - - void PullUpDownView::UnLoad(void) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UnLoad"); - } - - // 更新手机连接状态 - void PullUpDownView::UpdatePhoneStatus(int status) - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdatePhoneStatus"); - if (showPhoneConnectedStatus == nullptr) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showPhoneConnectedStatus nullptr"); - return; - } - showPhoneConnectedStatus->SetSrc(status ? DROPDOWN_PHONECONNECTED_IMAGE : DROPDOWN_PHONEDISCONNECTED_IMAGE); - showPhoneConnectedStatus->Invalidate(); - - if (GetConnectedStatusView() != nullptr) - GetConnectedStatusView()->UpdatePhoneConnectedStatus(status); - - return; - } - - // 更新蓝牙耳机连接状态 - void PullUpDownView::UpdateEarPhoneStatus(int status) - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateEarPhoneStatus"); - if (showEarPhoneConnectedStatus == nullptr) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showEarPhoneConnectedStatus nullptr"); - return; - } - showEarPhoneConnectedStatus->SetSrc(status ? DROPDOWN_EARPHONESCONNECTED_IMAGE : DROPDOWN_EARPHONESDISCONNECTED_IMAGE); - showEarPhoneConnectedStatus->Invalidate(); - - if (GetConnectedStatusView() != nullptr) - GetConnectedStatusView()->UpdateEarPhoneConnectedStatus(status); - - return; - } - - // 更新蓝牙连接状态 - void PullUpDownView::UpdateBlueToothStatus(int status) - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateBlueToothStatus"); - if (showBluetoothConnectedStatus == nullptr) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showBluetoothConnectedStatus nullptr"); - return; - } - showBluetoothConnectedStatus->SetSrc(status ? DROPDOWN_BLUETOOTHCONNECTED_IMAGE : DROPDOWN_BLUETOOTHDISCONNECTED_IMAGE); - showBluetoothConnectedStatus->Invalidate(); - - if (GetConnectedStatusView() != nullptr) - GetConnectedStatusView()->UpdateBlueToothConnectedStatus(status); - - return; - } - - /*更新勿扰模式状态*/ - void PullUpDownView::UpdateDnotDisturbStatus(int status) - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateDnotDisturbStatus"); - if (dropDnotDisturb != nullptr) - { - dropDnotDisturb->SetStyle(STYLE_BACKGROUND_COLOR, status ? 0xff8e20e2 : 0xff191919); - dropDnotDisturb->Invalidate(); - } - else - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dropIconBackground[DNOTDISTURB_INDEX] is nullptr"); - return; - } - } - - UILabel *PullUpDownView::GetTimeLabel() - { - return showTimeLabel; - } - UILabel *PullUpDownView::GetDateLabel() - { - return showDateLabel; - } - UILabel *PullUpDownView::GetWeekLabel() - { - return showWeekLabel; - } - UIBoxProgress *PullUpDownView::GetProgress() - { - return progress; - } - /* ------------------------------ 下拉界面切换到连接状态视图 ----------------------------- */ - // 切换到"下拉控制中心"视图 - bool PullUpDownView::ChangeDropDownView(int16_t thisView) - { - if (group[thisView] == nullptr) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::ChangeDropDownView"); - Add(group[thisView]); - } - return true; - } - - // 切换到"连接状态"视图 - bool PullUpDownView::ChangeConnectedStatusView(int16_t thisView) - { - if (group[thisView] == nullptr) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::ChangeConnectedStatusView"); - connectedStatusView = new ConnectedStatusView(); - if (connectedStatusView == nullptr) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView:: new scrollView[%d] fail", thisView); - return false; - } - group[thisView] = connectedStatusView->ConnectedStatusViewInit(); - Add(group[thisView]); - } - return true; - } - - struct PullUpDownViewMapper - { - const int16_t viewId; - bool (PullUpDownView::*func)(int16_t thisView); - }; - - static const PullUpDownViewMapper ViewMapper[] = { - {DROPDOWNVIEW, &PullUpDownView::ChangeDropDownView}, - {CONNECTEDSTATUSVIEW, &PullUpDownView::ChangeConnectedStatusView}, - }; - - bool PullUpDownView::ClickFunc(int16_t interface) - { - int funcSize = sizeof(ViewMapper) / sizeof(ViewMapper[0]); - for (int i = 0; i < funcSize; i++) - { - if (interface == ViewMapper[i].viewId) + group1->RemoveAll(); + for (int i = 0; i < 4; i++) { - bool jug = (this->*(ViewMapper[i].func))(interface); - if (jug == false) + if (showSignalStrength[i] != nullptr) { - return false; + delete showSignalStrength[i]; + showSignalStrength[i] = nullptr; } - return true; } - } - return false; - } - - void PullUpDownView::ChangeView(int16_t hideView, int16_t showView) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::ChangeView"); - if (hideView > MAX_DROPDOWNVIEWID) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView:: SystemViewId Overstep ones bounds"); - return; - } - group[hideView]->SetVisible(false); - ClickFunc(showView); - group[showView]->SetVisible(true); - Invalidate(); - } - - ConnectedStatusView *PullUpDownView::GetConnectedStatusView(void) - { - return connectedStatusView; - } - /* -------------------------------------------------------------------------- */ -} -#else -/* - * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. - * Description: WeekStep - * Author: - * Create: 2021-09-11 - */ - -#include "PullUpDownView.h" -#include "wearable_log.h" -#include "UiConfig.h" -#include "common/screen.h" -#include "main/include/MainPresenterSample.h" -#include "screensetting/include/ScreenModels.h" -#include "settings/include/SettingModel.h" -#include "ui_resource_image.h" -#include "dnotdisturb/include/DnotDisturbModel.h" -#include "custom_utils.h" -#include "custom_runtime.h" -namespace OHOS -{ - - /* ---------------------------------- 坐标位置 ---------------------------------- */ - // 设置 - constexpr int16_t SETTING_IMG_X = 30; - constexpr int16_t SETTING_IMG_Y = 186; - - // 手电筒 - constexpr int16_t LIGHTING_IMG_X = 76; - constexpr int16_t LIGHTING_IMG_Y = 76; - - // 勿扰 - constexpr int16_t DNOTDISTURB_IMG_X = 186; - constexpr int16_t DNOTDISTURB_IMG_Y = 30; - - // 省电 - constexpr int16_t SAVEPOWER_IMG_X = 296; - constexpr int16_t SAVEPOWER_IMG_Y = 76; - - // 找手机 - constexpr int16_t FINDPHONE_IMG_X = 342; - constexpr int16_t FINDPHONE_IMG_Y = 186; - - // line - constexpr int16_t LINE_IMG_X = 193; - constexpr int16_t LINE_IMG_Y = 430; - - // icon图片大小 - constexpr int16_t ICON_IMG_SIZE_W = 94; - constexpr int16_t ICON_IMG_SIZE_H = 94; - - // 电池 - constexpr int16_t BATTERY_X = 209; - constexpr int16_t BATTERY_Y = 180; - - // 时间 - constexpr int16_t TIME_LABEL_X = 172; - constexpr int16_t TIME_LABEL_Y = 230; - - // 日期 - constexpr int16_t DATE_LABEL_X = 110; - constexpr int16_t DATE_LABEL_Y = 300; - - // 星期 - constexpr int16_t WEEK_LABEL_X = 295; - constexpr int16_t WEEK_LABEL_Y = 300; - - // 手机连接状态 - constexpr int16_t PHONECONNECTSTATUS_BUTTON_X = 123; - constexpr int16_t PHONECONNECTSTATUS_BUTTON_Y = 350; - constexpr int16_t PHONECONNECTSTATUS_BUTTON_W = 60; - constexpr int16_t PHONECONNECTSTATUS_BUTTON_H = 60; - - // 耳机连接状态 - constexpr int16_t EARPHONESCONNECTSTATUS_BUTTON_X = 203; - constexpr int16_t EARPHONESCONNECTSTATUS_BUTTON_Y = 350; - constexpr int16_t EARPHONESCONNECTSTATUS_BUTTON_W = 60; - constexpr int16_t EARPHONESCONNECTSTATUS_BUTTON_H = 60; - - // 蓝牙连接状态 - constexpr int16_t BLUETOOTHCONNECTSTATUS_BUTTON_X = 283; - constexpr int16_t BLUETOOTHCONNECTSTATUS_BUTTON_Y = 350; - constexpr int16_t BLUETOOTHCONNECTSTATUS_BUTTON_W = 60; - constexpr int16_t BLUETOOTHCONNECTSTATUS_BUTTON_H = 60; - - static const int64_t COLOR_SIGNAL_ON = 0xffffffff; - static const int64_t COLOR_SIGNAL_OFF = 0xff383838; - static const int BATTERY_IMAGE_WIDTH = 48; - static const int BATTERY_IMAGE_HEIGHT = 30; - static const int PROGRESS_WIDTH = 30; - static const int PROGRESS_HEIGHT = 18; - /* -------------------------------------------------------------------------- */ - std::string getWeekString(int wday) - { - std::string weekDays[] = {"星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"}; - return weekDays[wday]; - } - /* -------------------------------------------------------------------------- */ - static PullUpDownView *g_pPullUpDownView = nullptr; - PullUpDownView::PullUpDownView() - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::PullUpDownView"); - g_pPullUpDownView = this; - } - - PullUpDownView::~PullUpDownView() - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::~PullUpDownView"); - ClearAll(); - g_pPullUpDownView = nullptr; - } - - PullUpDownView *PullUpDownView::GetInstance(void) - { - return g_pPullUpDownView; - } - - // 清除信号强度相关组件 - void PullUpDownView::ClearAllSingalComponentsView() - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::ClearAllSingalComponentsView"); - if (NoSignal != nullptr) - { - delete NoSignal; - NoSignal = nullptr; - } - - for (int i = 0; i < 4; i++) - { - if (showSignalStrength[i] != nullptr) + if (Singal_4 != nullptr) { - delete showSignalStrength[i]; - showSignalStrength[i] = nullptr; + delete Singal_4; + Singal_4 = nullptr; } - } - - if (Singal_4 != nullptr) - { - delete Singal_4; - Singal_4 = nullptr; - } - } - - // 清除所有与连接状态相关的视图组件 - void PullUpDownView::ClearAllConnectedStatusComponentsView() - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::ClearAllConnectedStatusComponentsView"); - if (connectedStatusBackgroundButton != nullptr) - { - delete connectedStatusBackgroundButton; - connectedStatusBackgroundButton = nullptr; - } - - if (showPhoneConnectedStatus != nullptr) - { - delete showPhoneConnectedStatus; - showPhoneConnectedStatus = nullptr; - } - - if (showEarPhoneConnectedStatus != nullptr) - { - delete showEarPhoneConnectedStatus; - showEarPhoneConnectedStatus = nullptr; - } - - if (showBluetoothConnectedStatus != nullptr) - { - delete showBluetoothConnectedStatus; - showBluetoothConnectedStatus = nullptr; - } - } - - void PullUpDownView::ClearAll() - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::ClearAll"); - RemoveAll(); - UnLoadPullUpDownImageRes(); // 切换slice的时候也要卸载资源放在ImageCach空间不够 - if (group[DROPDOWNVIEW] != nullptr) - { - group[DROPDOWNVIEW]->RemoveAll(); - group[DROPDOWNVIEW]->ClearBackgroundBlur(); - delete group[DROPDOWNVIEW]; - group[DROPDOWNVIEW] = nullptr; - } - - for (int i = 0; i < MAX_INDEX; i++) - { - if (dropIconBackground[i] != nullptr) + if (NoSignal != nullptr) { - delete dropIconBackground[i]; - dropIconBackground[i] = nullptr; + delete NoSignal; + NoSignal = nullptr; } - } - - if (dropSetting != nullptr) - { - delete dropSetting; - dropSetting = nullptr; - } - - if (dropLighting != nullptr) - { - delete dropLighting; - dropLighting = nullptr; - } - - if (dropDnotDisturb != nullptr) - { - delete dropDnotDisturb; - dropDnotDisturb = nullptr; - } - - if (dropLine != nullptr) - { - delete dropLine; - dropLine = nullptr; - } - - if (dropSavePower != nullptr) - { - delete dropSavePower; - dropSavePower = nullptr; - } - - if (drofindPhone != nullptr) - { - delete drofindPhone; - drofindPhone = nullptr; - } - - if (showTimeLabel != nullptr) - { - delete showTimeLabel; - showTimeLabel = nullptr; - } - - if (showDateLabel != nullptr) - { - delete showDateLabel; - showDateLabel = nullptr; - } - - if (showWeekLabel != nullptr) - { - delete showWeekLabel; - showWeekLabel = nullptr; - } - /* -------------------------------------------------------------------------- */ - ClearAllSingalComponentsView(); - ClearAllConnectedStatusComponentsView(); - /* -------------------------------------------------------------------------- */ - if (batteryimage != nullptr) - { - delete batteryimage; - batteryimage = nullptr; - } - - if (progress != nullptr) - { - delete progress; - progress = nullptr; - } - - if (progresscallback_ != nullptr) - { - delete progresscallback_; - progresscallback_ = nullptr; - } - - if (progressanimator_ != nullptr) - { - progressanimator_->Stop(); - delete progressanimator_; - progressanimator_ = nullptr; - } - - if (connectedStatusView != nullptr) - { - delete connectedStatusView; - connectedStatusView = nullptr; - group[CONNECTEDSTATUSVIEW] = nullptr; - } - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::ClearAll end!!"); - } - - /// @brief 初始化icon图标背景 - /// @param void - void PullUpDownView::InitViewImgBackGround(void) - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::InitViewImgBackGround"); - for (int i = 0; i < MAX_INDEX; i++) - { - dropIconBackground[i] = new UIImageView(); - if (dropIconBackground[i] == nullptr) + if (MobileData != nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dropIconBackground[%d] new fail", i); - return; + delete MobileData; + MobileData = nullptr; } - group[DROPDOWNVIEW]->Add(dropIconBackground[i]); - } - dropIconBackground[SETTING_INDEX]->SetPosition(SETTING_IMG_X, SETTING_IMG_Y); - dropIconBackground[LIGHTING_INDEX]->SetPosition(LIGHTING_IMG_X, LIGHTING_IMG_Y); - dropIconBackground[DNOTDISTURB_INDEX]->SetPosition(DNOTDISTURB_IMG_X, DNOTDISTURB_IMG_Y); - dropIconBackground[SAVEPOWER_INDEX]->SetPosition(SAVEPOWER_IMG_X, SAVEPOWER_IMG_Y); - dropIconBackground[FINDPHONE_INDEX]->SetPosition(FINDPHONE_IMG_X, FINDPHONE_IMG_Y); - // for (int i = 0; i < MAX_INDEX; i++) - // { - // if (i == DNOTDISTURB_INDEX && DnotDisturbModel::GetInstance().GetDoNotDisturbModeEnabled() == true) - // { - // ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dropIconBackground[i], DROPDOWN_ICONELLIPSEPURPLE); - // } - // else - // { - // ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dropIconBackground[i], DROPDOWN_ICONELLIPSEBLACK); - // } - // group[DROPDOWNVIEW]->Add(dropIconBackground[i]); - // } - } - - /// @brief 初始化icon图标 - /// @param void - void PullUpDownView::InitViewImg(void) - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::InitViewImg"); - UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::MainPresenterSample::GetInstance(); - InitViewImgBackGround(); - /* ---------------------------------- 下拉设置图片 ---------------------------------- */ - dropSetting = new UIImageView(); - if (dropSetting == nullptr) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dropSetting new fail"); - return; - } - dropSetting->SetPosition(SETTING_IMG_X, SETTING_IMG_Y, ICON_IMG_SIZE_W, ICON_IMG_SIZE_H); - dropSetting->SetAutoEnable(false); - dropSetting->SetResizeMode(UIImageView::CENTER); - // ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dropSetting, DROPDOWN_SETTING); - dropSetting->SetViewId(DROPDOWN_CLICK_SETTING); // 进入设置界面 - dropSetting->SetTouchable(true); - dropSetting->SetOnClickListener(clickListener); - /* ----------------------------------- 蓝牙 ----------------------------------- */ - dropLighting = new UIImageView(); - if (dropLighting == nullptr) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dropLighting new fail"); - return; - } - dropLighting->SetPosition(LIGHTING_IMG_X, LIGHTING_IMG_Y, ICON_IMG_SIZE_W, ICON_IMG_SIZE_H); - dropLighting->SetAutoEnable(false); - dropLighting->SetResizeMode(UIImageView::CENTER); - // ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dropLighting, DROPDOWN_BLUETOOTH); - dropLighting->SetViewId(DROPDOWN_CLICK_BLUETOOTH); // 进入亮屏界面 - dropLighting->SetTouchable(true); - dropLighting->SetOnClickListener(clickListener); - /* ----------------------------------- 勿扰模式 ----------------------------------- */ - dropDnotDisturb = new UIImageView(); - if (dropDnotDisturb == nullptr) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dropDnotDisturb new fail"); - return; - } - dropDnotDisturb->SetPosition(DNOTDISTURB_IMG_X, DNOTDISTURB_IMG_Y, ICON_IMG_SIZE_W, ICON_IMG_SIZE_H); - dropDnotDisturb->SetAutoEnable(false); - dropDnotDisturb->SetResizeMode(UIImageView::CENTER); - // ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dropDnotDisturb, DROPDOWN_DNOTDISTURB); - dropDnotDisturb->SetViewId(DROPDOWN_CLICK_DNOTDISTURB); // 进入勿扰模式界面 - dropDnotDisturb->SetTouchable(true); - dropDnotDisturb->SetOnClickListener(clickListener); - /* ----------------------------------- 省电 ----------------------------------- */ - dropSavePower = new UIImageView(); - if (dropSavePower == nullptr) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dropSavePower new fail"); - return; - } - dropSavePower->SetPosition(SAVEPOWER_IMG_X, SAVEPOWER_IMG_Y, ICON_IMG_SIZE_W, ICON_IMG_SIZE_H); - dropSavePower->SetAutoEnable(false); - dropSavePower->SetResizeMode(UIImageView::CENTER); - // ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dropSavePower, DROPDOWN_SAVEPOWER); - dropSavePower->SetViewId(DROPDOWN_CLICK_SAVEELE); // 进入省电界面 - - dropSavePower->SetTouchable(true); - dropSavePower->SetOnClickListener(clickListener); - /* ----------------------------------- 找手机 ---------------------------------- */ - drofindPhone = new UIImageView(); - if (drofindPhone == nullptr) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "drofindPhone new fail"); - return; - } - drofindPhone->SetPosition(FINDPHONE_IMG_X, FINDPHONE_IMG_Y, ICON_IMG_SIZE_W, ICON_IMG_SIZE_H); - drofindPhone->SetAutoEnable(false); - drofindPhone->SetResizeMode(UIImageView::CENTER); - // ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, drofindPhone, DROPDOWN_FINDPHONE); - drofindPhone->SetViewId(DROPDOWN_CLICK_FINDMYPHONE); // 找手机界面 - drofindPhone->SetTouchable(true); - drofindPhone->SetOnClickListener(clickListener); - /* -------------------------------- dropLine -------------------------------- */ - dropLine = new UIImageView(); - if (dropLine == nullptr) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dropLine new fail"); - return; - } - dropLine->SetPosition(LINE_IMG_X, LINE_IMG_Y, ICON_IMG_SIZE_W, ICON_IMG_SIZE_H); - // ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dropLine, DROPDOWN_LINE); - /* -------------------------------- 添加组件到视图上 -------------------------------- */ - group[DROPDOWNVIEW]->Add(dropSetting); - group[DROPDOWNVIEW]->Add(dropLighting); - group[DROPDOWNVIEW]->Add(dropDnotDisturb); - group[DROPDOWNVIEW]->Add(dropSavePower); - group[DROPDOWNVIEW]->Add(drofindPhone); - group[DROPDOWNVIEW]->Add(dropLine); - } - - // 获取手机连接状态 - bool PullUpDownView::GetPhoneConnectedStatus(void) - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::GetPhoneConnectedStatus"); - // uint8_t ret = uapi_dev_runtime_get_ble_connect_stat(); - // WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "ble phone connect stat = %d", ret); - // if (ret == 1) - // return true; - // else - // return false; - - return SettingModel::GetInstance().GetPhoneConnectStatus(); - } - - // 获取蓝牙耳机连接状态 - bool PullUpDownView::GetEarPhoneConnectedStatus(void) - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::GetEarPhoneConnectedStatus"); - // uint8_t ret = uapi_dev_runtime_get_earphone_connect_stat(); - // WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "earphone connect stat = %d", ret); - // if (ret == 1) - // return true; - // else - // return false; - - return SettingModel::GetInstance().GetEarPhoneConnectStatus(); - } - - // 获取蓝牙连接状态 - bool PullUpDownView::GetBlueToothConnectedStatus(void) - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::GetBlueToothConnectedStatus"); - // uint8_t ret = uapi_dev_runtime_get_br_connect_stat(); - // WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "br connect stat = %d [0 no connect, 1 a2dp, 2 hfp, 3 both]", ret); - // if (ret != 0) - // return true; - // else - // return false; - - return SettingModel::GetInstance().GetBlueToothConnectStatus(); - } - - /// @brief 初始化与连接状态相关组件 - /// @param void - void PullUpDownView::InitConnectedStatusImage(void) - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::InitConnectedStatusImage"); - connectedStatusBackgroundButton = new UIButton(); - if (connectedStatusBackgroundButton == nullptr) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "connectedStatusBackgroundButton new fail"); - return; - } - connectedStatusBackgroundButton->SetPosition(113, 348, 240, 64); - connectedStatusBackgroundButton->SetViewId(CONNECTEDSTATUSBACKGROUNDBUTTON); - connectedStatusBackgroundButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff); - connectedStatusBackgroundButton->SetStyle(STYLE_BACKGROUND_OPA, 0x00); - connectedStatusBackgroundButton->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xffffffff, UIButton::PRESSED); - connectedStatusBackgroundButton->SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED); - connectedStatusBackgroundButton->SetStyleForState(STYLE_BORDER_COLOR, 0xffffffff, UIButton::PRESSED); - connectedStatusBackgroundButton->SetStyleForState(STYLE_BORDER_OPA, 0x00, UIButton::PRESSED); - UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::MainPresenterSample::GetInstance(); - connectedStatusBackgroundButton->SetOnClickListener(clickListener); - group[DROPDOWNVIEW]->Add(connectedStatusBackgroundButton); - /* -------------------------------- 显示手机连接状态 -------------------------------- */ - showPhoneConnectedStatus = new UIImageView(); - if (showPhoneConnectedStatus == nullptr) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showPhoneConnectedStatus new fail"); - return; - } - showPhoneConnectedStatus->SetPosition(PHONECONNECTSTATUS_BUTTON_X, PHONECONNECTSTATUS_BUTTON_Y, PHONECONNECTSTATUS_BUTTON_W, PHONECONNECTSTATUS_BUTTON_H); - showPhoneConnectedStatus->SetAutoEnable(false); - showPhoneConnectedStatus->SetResizeMode(UIImageView::CENTER); - showPhoneConnectedStatus->SetStyle(STYLE_BORDER_RADIUS, 30); - // if (GetPhoneConnectedStatus()) // 获取手机连接状态 - // { - // ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, showPhoneConnectedStatus, DROPDOWN_PHONECONNECTED); - // } - // else - // { - // ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, showPhoneConnectedStatus, DROPDOWN_PHONEDISCONNECTED); - // } - - /* -------------------------------- 显示耳机连接状态 -------------------------------- */ - showEarPhoneConnectedStatus = new UIImageView(); - if (showEarPhoneConnectedStatus == nullptr) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showEarPhoneConnectedStatus new fail"); - return; - } - showEarPhoneConnectedStatus->SetPosition(EARPHONESCONNECTSTATUS_BUTTON_X, EARPHONESCONNECTSTATUS_BUTTON_Y, EARPHONESCONNECTSTATUS_BUTTON_W, EARPHONESCONNECTSTATUS_BUTTON_H); - showEarPhoneConnectedStatus->SetAutoEnable(false); - showEarPhoneConnectedStatus->SetResizeMode(UIImageView::CENTER); - showEarPhoneConnectedStatus->SetStyle(STYLE_BORDER_RADIUS, 30); - // if (GetEarPhoneConnectedStatus()) // 获取耳机连接状态 - // { - // ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, showEarPhoneConnectedStatus, DROPDOWN_EARPHONESCONNECTED); - // } - // else - // { - // ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, showEarPhoneConnectedStatus, DROPDOWN_EARPHONESDISCONNECTED); - // } - - /* -------------------------------- 显示蓝牙连接状态 -------------------------------- */ - showBluetoothConnectedStatus = new UIImageView(); - if (showBluetoothConnectedStatus == nullptr) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showBluetoothConnectedStatus new fail"); - return; - } - showBluetoothConnectedStatus->SetPosition(BLUETOOTHCONNECTSTATUS_BUTTON_X, BLUETOOTHCONNECTSTATUS_BUTTON_Y, BLUETOOTHCONNECTSTATUS_BUTTON_W, BLUETOOTHCONNECTSTATUS_BUTTON_H); - showBluetoothConnectedStatus->SetAutoEnable(false); - showBluetoothConnectedStatus->SetResizeMode(UIImageView::CENTER); - showBluetoothConnectedStatus->SetStyle(STYLE_BORDER_RADIUS, 30); - // if (GetBlueToothConnectedStatus()) // 获取蓝牙连接状态 - // { - // ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, showBluetoothConnectedStatus, DROPDOWN_BLUETOOTHCONNECTED); - // } - // else - // { - // ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, showBluetoothConnectedStatus, DROPDOWN_BLUETOOTHDISCONNECTED); - // } - /* -------------------------------------------------------------------------- */ - group[DROPDOWNVIEW]->Add(showPhoneConnectedStatus); - group[DROPDOWNVIEW]->Add(showEarPhoneConnectedStatus); - group[DROPDOWNVIEW]->Add(showBluetoothConnectedStatus); - } - - /*** - * @brief 初始化时间,日期,星期,电池,信号强度 - */ - bool PullUpDownView::InitBaseData() - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::InitBaseData"); - if (!InitSingalComponentsView()) - { - return false; - } - - /* ---------------------------------- 时间显示 ---------------------------------- */ - showTimeLabel = new UILabel(); - if (showTimeLabel == nullptr) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showTimeLabel new fail"); - return false; - } - showTimeLabel->SetPosition(TIME_LABEL_X, TIME_LABEL_Y); - showTimeLabel->SetStyle(STYLE_TEXT_FONT, 50); - showTimeLabel->SetStyle(STYLE_LINE_HEIGHT, 59); - showTimeLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT); - showTimeLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER); - showTimeLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 50); - /* ---------------------------------- 日期显示 ---------------------------------- */ - showDateLabel = new UILabel(); - if (showDateLabel == nullptr) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showDateLabel new fail"); - return false; - } - showDateLabel->SetPosition(DATE_LABEL_X, DATE_LABEL_Y); - showDateLabel->SetStyle(STYLE_TEXT_FONT, 30); - showDateLabel->SetStyle(STYLE_LINE_HEIGHT, 35); - showDateLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT); - showDateLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER); - showDateLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30); - /* ---------------------------------- 星期显示 ---------------------------------- */ - showWeekLabel = new UILabel(); - if (showWeekLabel == nullptr) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showWeekLabel new fail"); - return false; - } - showWeekLabel->SetPosition(WEEK_LABEL_X, WEEK_LABEL_Y); - showWeekLabel->SetStyle(STYLE_TEXT_FONT, 30); - showWeekLabel->SetStyle(STYLE_LINE_HEIGHT, 35); - showWeekLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT); - showWeekLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER); - showWeekLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 28); - /* ----------------------------------- 电池 ----------------------------------- */ - batteryimage = new UIImageView(); - if (batteryimage == nullptr) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "batteryimage new fail"); - return false; - } - batteryimage->SetPosition(258, 180, BATTERY_IMAGE_WIDTH, BATTERY_IMAGE_HEIGHT); - std::string batteryimagesPath = "/user/res/Battery/Battery-E.bin"; - batteryimage->SetSrc(batteryimagesPath.c_str()); - /* -------------------------------------------------------------------------- */ - progress = new UIBoxProgress(); - if (progress == nullptr) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "progress new fail"); - return false; - } - progress->SetPosition(206, 180, PROGRESS_WIDTH, PROGRESS_HEIGHT); - progress->SetValidHeight(PROGRESS_HEIGHT); - progress->SetValidWidth(PROGRESS_WIDTH); - - // progress->SetValue(value); - const char *progressImageSrc = "/user/res/Battery/Battery_Normal.bin"; - progress->SetImage(progressImageSrc, nullptr); - progress->SetBackgroundStyle(STYLE_BACKGROUND_OPA, 0x00); - progress->SetBackgroundStyle(STYLE_TEXT_COLOR, 0xff000000); - progress->SetForegroundStyle(STYLE_BACKGROUND_COLOR, 0xffffffff); - progress->SetForegroundStyle(STYLE_TEXT_COLOR, 0xff000000); - progress->SetForegroundStyle(STYLE_LINE_COLOR, 0xff45A5FF); - - group[DROPDOWNVIEW]->Add(progress); - group[DROPDOWNVIEW]->Add(batteryimage); - group[DROPDOWNVIEW]->Add(showTimeLabel); - group[DROPDOWNVIEW]->Add(showDateLabel); - group[DROPDOWNVIEW]->Add(showWeekLabel); - - /* -------------------------------------------------------------------------- */ - UpdateSignalStrengthStatusAndBatteryPosition(); - /* -------------------------------------------------------------------------- */ - - return true; - } - - // 初始化信号强度相关组件 - bool PullUpDownView::InitSingalComponentsView() - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::InitSingalComponentsView"); - /* -------------------------------------------------------------------------- */ - NoSignal = new UIImageView(); - if (NoSignal == nullptr) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "NoSignal new fail"); - return false; - } - NoSignal->SetPosition(160, 176, 36, 38); - NoSignal->SetAutoEnable(false); - NoSignal->SetResizeMode(UIImageView::CENTER); - // ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, NoSignal, DROPDOWN_NOSIGNAL); - NoSignal->SetVisible(false); - group[DROPDOWNVIEW]->Add(NoSignal); - /* -------------------------------------------------------------------------- */ - // 定义一个结构体,用于存储 ImageView 的信息 - struct ImageViewInfo - { - int posX; - int posY; - int width; - int height; - }; - // 待添加的 ImageView 信息列表 - std::vector imageViewList = { - {160, 204, 6, 6}, - {170, 196, 6, 14}, - {180, 188, 6, 22}, - {190, 180, 6, 30}, - }; - - // 循环添加 ImageView 到相应的容器中 - for (int i = 0; i < 4; i++) - { - if (showSignalStrength[i] == nullptr) - { - showSignalStrength[i] = new UIImageView(); - if (showSignalStrength[i] == nullptr) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showSignalStrength[%d] new fail", i); - return false; - } + if (HD != nullptr) + { + delete HD; + HD = nullptr; } - showSignalStrength[i]->SetPosition(imageViewList[i].posX, imageViewList[i].posY, imageViewList[i].width, imageViewList[i].height); - showSignalStrength[i]->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff); - showSignalStrength[i]->SetStyle(STYLE_BACKGROUND_OPA, 0xff); - showSignalStrength[i]->SetStyle(STYLE_BORDER_RADIUS, 10); - group[DROPDOWNVIEW]->Add(showSignalStrength[i]); - showSignalStrength[i]->SetVisible(false); + if (batteryimage != nullptr) + { + delete batteryimage; + batteryimage = nullptr; + } + if (progress != nullptr) + { + delete progress; + progress = nullptr; + } + delete group1; + group1 = nullptr; } - /* -------------------------------------------------------------------------- */ - if (Singal_4 == nullptr) + if (showDateAndWeekLabel != nullptr) { - Singal_4 = new UILabel(); + delete showDateAndWeekLabel; + showDateAndWeekLabel = nullptr; } - Singal_4->SetPosition(201, 176, 40, 47); - Singal_4->SetStyle(STYLE_TEXT_FONT, 34); - Singal_4->SetStyle(STYLE_LINE_HEIGHT, 40); - Singal_4->SetText("4G"); - Singal_4->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT); - Singal_4->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER); - Singal_4->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 34); - Singal_4->SetVisible(false); - group[DROPDOWNVIEW]->Add(Singal_4); - - return true; + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::ClearAll_2 over!!"); } // 获取信号强度 @@ -1864,7 +547,6 @@ namespace OHOS return (signalStrength / 8) + 1; } -#if 0 // 函数用于更新信号显示的UI void PullUpDownView::updateSignalDisplay() { @@ -1889,87 +571,62 @@ namespace OHOS UpdateCat1NoSignalisplay(true); UpdateCat14GDisplay(false); UpdateSignalBarDisplay(CalculateSignalBars(signal), false); + UpdateCat1MobileDataDisplay(false); } else if (cat1_powerOn == 1 && sim == 1) { - if (signal == SIGNAL_NO_SIGNAL) + if (signal == SIGNAL_NO_SIGNAL) // 计算信号强度 { // 无信号UI显示 - UpdateCat1NoSignalisplay(true); - UpdateCat14GDisplay(false); + // UpdateCat1NoSignalisplay(true); + // UpdateCat14GDisplay(false); UpdateSignalBarDisplay(CalculateSignalBars(signal), false); } else { // 信号强度显示 UpdateCat1NoSignalisplay(false); - UpdateCat14GDisplay(true); + // UpdateCat14GDisplay(true); UpdateSignalBarDisplay(CalculateSignalBars(signal), true); } + if (network_on == 0) { // 无信号,无4G图标 显示 - UpdateCat1NoSignalisplay(true); + // UpdateCat1NoSignalisplay(true); UpdateCat14GDisplay(false); - UpdateSignalBarDisplay(CalculateSignalBars(signal), false); + UpdateCat1MobileDataDisplay(false); + // UpdateSignalBarDisplay(CalculateSignalBars(signal), false); } else { if (cat1_network_type == NETWORK_TYPE_NO_NETWORK) { // 无信号,无4G图标 显示 - UpdateCat1NoSignalisplay(true); + // UpdateCat1NoSignalisplay(true); UpdateCat14GDisplay(false); - UpdateSignalBarDisplay(CalculateSignalBars(signal), false); + UpdateCat1MobileDataDisplay(false); + // UpdateSignalBarDisplay(CalculateSignalBars(signal), false); } else if (cat1_network_type == NETWORK_TYPE_4G) { // 有4G图标,正常显示信号 - UpdateCat1NoSignalisplay(false); + // UpdateCat1NoSignalisplay(false); UpdateCat14GDisplay(true); - UpdateSignalBarDisplay(CalculateSignalBars(signal), true); + UpdateCat1MobileDataDisplay(true); + // UpdateSignalBarDisplay(CalculateSignalBars(signal), true); } else { // 无4G图标,正常显示信号 - UpdateCat1NoSignalisplay(false); + // UpdateCat1NoSignalisplay(false); UpdateCat14GDisplay(false); - UpdateSignalBarDisplay(CalculateSignalBars(signal), true); + UpdateCat1MobileDataDisplay(true); + // UpdateSignalBarDisplay(CalculateSignalBars(signal), true); } } } } -#else - // 函数用于更新信号显示的UI - void PullUpDownView::updateSignalDisplay() - { - int sim = uapi_dev_runtime_get_cat1_simstat(); - int cat1_powerOn = uapi_dev_runtime_get_cat1_powerstat(); - int signal = uapi_dev_runtime_get_cat1_signal(); - int network_on = uapi_dev_runtime_get_cat1_networkstat(); - int cat1_network_type = uapi_dev_runtime_get_cat1_networtype(); - - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "sim = %d", sim); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cat1_powerOn = %d", cat1_powerOn); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "signal = %d", signal); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "network_on = %d", network_on); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cat1_network_type = %d", cat1_network_type); - - const int SIGNAL_NO_SIGNAL = 99; - const int NETWORK_TYPE_NO_NETWORK = 0; - const int NETWORK_TYPE_4G = 4; - - bool showNoSignalUI = (sim == 0 || cat1_powerOn == 0 || signal == SIGNAL_NO_SIGNAL); - bool showNoNetworkUI = (network_on == 0 || cat1_network_type == NETWORK_TYPE_NO_NETWORK); - - bool show4GIcon = (cat1_network_type == NETWORK_TYPE_4G); - - UpdateCat1NoSignalisplay(showNoSignalUI); - UpdateCat14GDisplay(show4GIcon); - UpdateSignalBarDisplay(CalculateSignalBars(signal), !(showNoSignalUI || showNoNetworkUI)); - } -#endif - // 更新信号强度显示 void PullUpDownView::UpdateSignalBarDisplay(int signalBars, bool state) { @@ -2000,267 +657,335 @@ namespace OHOS } } - // 更新电池位置 - void PullUpDownView::UpdateBatteryPosition(int signalBars) + // 有HD一定有4G + void PullUpDownView::UpdateHDDisplay(bool state) { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateBatteryPosition"); - if (signalBars == 99) - { - batteryimage->SetPosition(209, 180, BATTERY_IMAGE_WIDTH, BATTERY_IMAGE_HEIGHT); - progress->SetPosition(215, 186, PROGRESS_WIDTH, PROGRESS_HEIGHT); - } - else + if (HD != nullptr) { - batteryimage->SetPosition(258, 180, BATTERY_IMAGE_WIDTH, BATTERY_IMAGE_HEIGHT); - progress->SetPosition(264, 186, PROGRESS_WIDTH, PROGRESS_HEIGHT); + HD->SetVisible(state); } - batteryimage->Invalidate(); - progress->Invalidate(); - } - - // 更新信号强度和电池位置 - void PullUpDownView::UpdateSignalStrengthStatusAndBatteryPosition() - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateSignalStrengthStatusAndBatteryPosition"); - updateSignalDisplay(); - UpdateBatteryPosition(GetSignalStrength()); } - bool PullUpDownView::PullUpDownViewInit() + /*更新移动数据图标显示*/ + void PullUpDownView::UpdateCat1MobileDataDisplay(bool state) { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::InitView"); - - group[DROPDOWNVIEW] = new UIViewGroup(); - if (group[DROPDOWNVIEW] == nullptr) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group[DROPDOWNVIEW] new fail!!"); - return false; - } - group[DROPDOWNVIEW]->SetPosition(0, 0, 466, 466); - group[DROPDOWNVIEW]->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT); - group[DROPDOWNVIEW]->SetViewIndex(0); - group[DROPDOWNVIEW]->SetFullScreenBlur(true); - InitViewImg(); - InitConnectedStatusImage(); - - if (InitBaseData()) - { - MainPresenterSample::GetInstance()->UpdataBaseData(); - } - else + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateCat1MobileDataDisplay %d", state); + if (MobileData != nullptr) { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::InitBaseData Error!"); - return false; + MobileData->SetVisible(state); } - SetTouchable(true); - SetIntercept(true); - Add(group[DROPDOWNVIEW]); - return true; } - /*预加载下拉视图的图片资源*/ - void PullUpDownView::PreLoadPullUpDownImageRes(void) + void PullUpDownView::UpdateXPosition(void) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::PreLoadPullUpDownImageRes"); - if (!resLoadStatus) + // 判断相关组件是否有效 + if (MobileData && HD && Singal_4 && NoSignal && batteryimage && progress) { - /* -------------------------------------------------------------------------- */ - for (int i = 0; i < MAX_INDEX; i++) + // 获取各个组件的可见状态 + bool mobileDataVisible = MobileData->IsVisible(); // 移动数据 + bool hdVisible = HD->IsVisible(); // HD + bool signal4Visible = Singal_4->IsVisible(); // 4G + bool noSignalVisible = NoSignal->IsVisible(); // 无信号 + + int x; + int signalWidth = NoSignal->GetWidth(); + int batteryWidth = batteryimage->GetWidth(); + int spacing = 10; + + if (noSignalVisible) // 无信号时的处理 + { + x = (group1->GetWidth() - (signalWidth + batteryWidth + spacing)) / 2; + NoSignal->SetX(x); + batteryimage->SetX(x + signalWidth + spacing); + progress->SetX(batteryimage->GetX() + 7); + } + else // 有信号时的处理 { - if (i == DNOTDISTURB_INDEX && DnotDisturbModel::GetInstance().GetDoNotDisturbModeEnabled() == true) + if (!signal4Visible) // 无 4G { - ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dropIconBackground[i], DROPDOWN_ICONELLIPSEPURPLE); + x = (group1->GetWidth() - (signalWidth + batteryWidth + spacing)) / 2; + for (int i = 0; i < 4; i++) + { + if (showSignalStrength[i] != nullptr) + { + showSignalStrength[i]->SetX(x + 10); + } + } + batteryimage->SetX(showSignalStrength[3]->GetX() + signalWidth + spacing); + progress->SetX(batteryimage->GetX() + 7); } - else + else // 有 4G { - ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dropIconBackground[i], DROPDOWN_ICONELLIPSEBLACK); + int additionalWidth = hdVisible ? HD->GetWidth() : 0; + x = (group1->GetWidth() - (signalWidth + Singal_4->GetWidth() + additionalWidth + batteryWidth + spacing * (2 + hdVisible))) / 2; + for (int i = 0; i < 4; i++) + { + if (showSignalStrength[i] != nullptr) + { + showSignalStrength[i]->SetX(x + 10); + } + } + Singal_4->SetX(showSignalStrength[3]->GetX() + signalWidth + spacing); + if (hdVisible) // 无 HD + { + HD->SetX(Singal_4->GetX() + Singal_4->GetWidth() + spacing); + batteryimage->SetX(HD->GetX() + HD->GetWidth() + spacing); + progress->SetX(batteryimage->GetX() + 7); + } + else // 有 HD + { + batteryimage->SetX(Singal_4->GetX() + Singal_4->GetWidth() + spacing); + progress->SetX(batteryimage->GetX() + 7); + } + + if (mobileDataVisible) // 如果有移动数据图标,设置其位置 + { + MobileData->SetX(showSignalStrength[0]->GetX()); + } } } - /* -------------------------------------------------------------------------- */ - ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dropSetting, DROPDOWN_SETTING); - ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dropLighting, DROPDOWN_BLUETOOTH); - ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dropDnotDisturb, DROPDOWN_DNOTDISTURB); - ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dropSavePower, DROPDOWN_SAVEPOWER); - ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, drofindPhone, DROPDOWN_FINDPHONE); - ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dropLine, DROPDOWN_LINE); - /* -------------------------------------------------------------------------- */ - bool phoneStatus = GetPhoneConnectedStatus(); // 获取手机连接状态 - bool EarPhoneStatus = GetEarPhoneConnectedStatus(); // 获取耳机连接状态 - bool blueToothStatus = GetBlueToothConnectedStatus(); // 获取蓝牙连接状态 - ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, showPhoneConnectedStatus, phoneStatus ? DROPDOWN_PHONECONNECTED : DROPDOWN_PHONEDISCONNECTED); - ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, showEarPhoneConnectedStatus, EarPhoneStatus ? DROPDOWN_EARPHONESCONNECTED : DROPDOWN_EARPHONESDISCONNECTED); - ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, showBluetoothConnectedStatus, blueToothStatus ? DROPDOWN_BLUETOOTHCONNECTED : DROPDOWN_BLUETOOTHDISCONNECTED); - - /* -------------------------------------------------------------------------- */ - ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, NoSignal, DROPDOWN_NOSIGNAL); - /* -------------------------------------------------------------------------- */ - resLoadStatus = true; + // 使相关组件无效化以触发重绘 + MobileData->Invalidate(); + HD->Invalidate(); + Singal_4->Invalidate(); + NoSignal->Invalidate(); + batteryimage->Invalidate(); + progress->Invalidate(); } } - /*卸载下拉视图的图片资源*/ - void PullUpDownView::UnLoadPullUpDownImageRes(void) + // 更新信号强度和电池位置 + void PullUpDownView::UpdateSignalStrengthStatusAndBatteryPosition() + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateSignalStrengthStatusAndBatteryPosition"); + updateSignalDisplay(); // 函数用于更新信号显示的UI + UpdateXPosition(); + + /*更新蓝牙连接状态*/ + int a2dp = uapi_a2dp_snk_get_device_connect_state(); + int hfp = uapi_hfp_connect_state(); + bool bluetoothstatus = (a2dp == 0 && hfp == 0) ? false : true; + UpdateBlueToothStatus(bluetoothstatus); + } + + UILabel *PullUpDownView::GetDateAndWeekLabel(void) + { + return showDateAndWeekLabel; + } + /* -------------------------------------------------------------------------- */ + AppGroupView *PullUpDownView::DropDownCardPage1Init(void) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UnLoadPullUpDownImageRes"); - if (resLoadStatus) + if (dropDownCardPage1 == nullptr) { - ImageInfo *img = nullptr; - for (int i = 0; i < MAX_INDEX; i++) + dropDownCardPage1 = new DropDownCardPage1(); + if (dropDownCardPage1 == nullptr) { - dropIconBackground[i]->SetSrc(img); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dropDownCardPage1 new fail!!"); + return nullptr; } - /* -------------------------------------------------------------------------- */ - dropSetting->SetSrc(img); - dropLighting->SetSrc(img); - dropDnotDisturb->SetSrc(img); - dropSavePower->SetSrc(img); - drofindPhone->SetSrc(img); - dropLine->SetSrc(img); - /* -------------------------------------------------------------------------- */ - showPhoneConnectedStatus->SetSrc(img); - showEarPhoneConnectedStatus->SetSrc(img); - showBluetoothConnectedStatus->SetSrc(img); - /* -------------------------------------------------------------------------- */ - NoSignal->SetSrc(img); - /* -------------------------------------------------------------------------- */ - bool isDoNotDisturbOpen = DnotDisturbModel::GetInstance().GetDoNotDisturbModeEnabled(); // 勿扰是否开启 - ImageCacheManager::GetInstance().UnloadOneInMultiRes(isDoNotDisturbOpen ? DROPDOWN_ICONELLIPSEPURPLE : DROPDOWN_ICONELLIPSEBLACK, DROPDOWN_IAMGES); - /* -------------------------------------------------------------------------- */ - ImageCacheManager::GetInstance().UnloadOneInMultiRes(DROPDOWN_SETTING, DROPDOWN_IAMGES); - ImageCacheManager::GetInstance().UnloadOneInMultiRes(DROPDOWN_BLUETOOTH, DROPDOWN_IAMGES); - ImageCacheManager::GetInstance().UnloadOneInMultiRes(DROPDOWN_DNOTDISTURB, DROPDOWN_IAMGES); - ImageCacheManager::GetInstance().UnloadOneInMultiRes(DROPDOWN_SAVEPOWER, DROPDOWN_IAMGES); - ImageCacheManager::GetInstance().UnloadOneInMultiRes(DROPDOWN_FINDPHONE, DROPDOWN_IAMGES); - ImageCacheManager::GetInstance().UnloadOneInMultiRes(DROPDOWN_LINE, DROPDOWN_IAMGES); - /* -------------------------------------------------------------------------- */ - bool phoneStatus = GetPhoneConnectedStatus(); // 获取手机连接状态 - bool EarPhoneStatus = GetEarPhoneConnectedStatus(); // 获取耳机连接状态 - bool blueToothStatus = GetBlueToothConnectedStatus(); // 获取蓝牙连接状态 - ImageCacheManager::GetInstance().UnloadOneInMultiRes(phoneStatus ? DROPDOWN_PHONECONNECTED : DROPDOWN_PHONEDISCONNECTED, DROPDOWN_IAMGES); - ImageCacheManager::GetInstance().UnloadOneInMultiRes(EarPhoneStatus ? DROPDOWN_EARPHONESCONNECTED : DROPDOWN_EARPHONESDISCONNECTED, DROPDOWN_IAMGES); - ImageCacheManager::GetInstance().UnloadOneInMultiRes(blueToothStatus ? DROPDOWN_BLUETOOTHCONNECTED : DROPDOWN_BLUETOOTHDISCONNECTED, DROPDOWN_IAMGES); - /* -------------------------------------------------------------------------- */ - ImageCacheManager::GetInstance().UnloadOneInMultiRes(DROPDOWN_NOSIGNAL, DROPDOWN_IAMGES); - /* -------------------------------------------------------------------------- */ - resLoadStatus = false; } + return dropDownCardPage1; } - - void PullUpDownView::PreLoad(void) + AppGroupView *PullUpDownView::DropDownCardPage2Init(void) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::PreLoad"); - if (!viewiInitStatus) + if (dropDownCardPage2 == nullptr) { - PullUpDownViewInit(); - viewiInitStatus = true; + dropDownCardPage2 = new DropDownCardPage2(); + if (dropDownCardPage2 == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dropDownCardPage2 new fail!!"); + return nullptr; + } } - - PreLoadPullUpDownImageRes(); + return dropDownCardPage2; } - - void PullUpDownView::UnLoad(void) + struct DropDownSwipViewMapper { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UnLoad"); - UnLoadPullUpDownImageRes(); - } - - // 更新手机连接状态 - void PullUpDownView::UpdatePhoneStatus(int status) + const int16_t viewId; + AppGroupView *(PullUpDownView::*func)(void); + }; + static const DropDownSwipViewMapper g_pageMapper[] = { + {0, &PullUpDownView::DropDownCardPage1Init}, + {1, &PullUpDownView::DropDownCardPage2Init}, + }; + AppGroupView *PullUpDownView::CreatePage(int32_t PageId) { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdatePhoneStatus"); - if (showPhoneConnectedStatus == nullptr) + uint16_t i; + AppGroupView *view = nullptr; + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CreatePage %d", PageId); + + for (i = 0; i < sizeof(g_pageMapper) / sizeof(g_pageMapper[0]); i++) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showPhoneConnectedStatus nullptr"); - return; + if (g_pageMapper[i].viewId == PageId) + { + view = (this->*(g_pageMapper[i].func))(); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CreatePage view:%p", view); + return view; + } } - ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, showPhoneConnectedStatus, (status ? DROPDOWN_PHONECONNECTED : DROPDOWN_PHONEDISCONNECTED)); - showPhoneConnectedStatus->Invalidate(); - - if (GetConnectedStatusView() != nullptr) - GetConnectedStatusView()->UpdatePhoneConnectedStatus(status); - - return; + return nullptr; // 如果没有找到匹配的视图ID,返回 nullptr } + void PullUpDownView::ClearAll_3(void) + { + if (dropDownswipeViewList != nullptr) + { + dropDownswipeViewList->RemoveAll(); - // 更新蓝牙耳机连接状态 - void PullUpDownView::UpdateEarPhoneStatus(int status) + delete dropDownswipeViewList; + dropDownswipeViewList = nullptr; + } + if (dropDownCardPage1 != nullptr) + { + delete dropDownCardPage1; + dropDownCardPage1 = nullptr; + } + if (dropDownCardPage2 != nullptr) + { + delete dropDownCardPage2; + dropDownCardPage2 = nullptr; + } + for (int i = 0; i < sizeof(g_pageMapper) / sizeof(g_pageMapper[0]); i++) + { + recordCard[i] = nullptr; + } + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::ClearAll_3 over!!"); + } + // 创建与滑动列表相关组件 + void PullUpDownView::CreateDropDownswipeViewListView(void) { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateEarPhoneStatus"); - if (showEarPhoneConnectedStatus == nullptr) + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::CreateDropDownswipeViewListView start!!"); + dropDownswipeViewList = new UISwipeView(UISwipeView::HORIZONTAL); // 水平方向 + if (nullptr == dropDownswipeViewList) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showEarPhoneConnectedStatus nullptr"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dropDownswipeViewList new fail!!"); return; } - ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, showEarPhoneConnectedStatus, (status ? DROPDOWN_EARPHONESCONNECTED : DROPDOWN_EARPHONESDISCONNECTED)); - showPhoneConnectedStatus->Invalidate(); - - if (GetConnectedStatusView() != nullptr) - GetConnectedStatusView()->UpdateEarPhoneConnectedStatus(status); - - return; + dropDownswipeViewList->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full); + dropDownswipeViewList->SetPosition(18, 180, 430, 210); // 0 : X; 0 : Y + dropDownswipeViewList->SetAnimatorTime(200); // 200:animator drag time(ms) + dropDownswipeViewList->SetDraggable(true); + dropDownswipeViewList->SetTouchable(true); + for (uint16_t i = 0; i < 2; i++) + { + recordCard[i] = CreatePage(i); + if (nullptr == recordCard[i]) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "recordCard[%d] is nullptr!!", i); + return; + } + recordCard[i]->InitView(this); + dropDownswipeViewList->Add(recordCard[i]); + } + dropDownswipeViewList->SetOnSwipeListener(this); + group[DROPDOWNVIEW]->Add(dropDownswipeViewList); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::CreateDropDownswipeViewListView over!!"); } - - // 更新蓝牙连接状态 - void PullUpDownView::UpdateBlueToothStatus(int status) + /* ------------------------------------ 4 ----------------------------------- */ + void PullUpDownView::UpdateSwipviewSelect(bool value) { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateBlueToothStatus"); - if (showBluetoothConnectedStatus == nullptr) + if (swipviewSelect) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showBluetoothConnectedStatus nullptr"); - return; + swipviewSelect->SetSrc(value ? DROPDOWN_SELECT_1_IMAGE : DROPDOWN_SELECT_2_IMAGE); + swipviewSelect->Invalidate(); } - ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, showBluetoothConnectedStatus, (status ? DROPDOWN_BLUETOOTHCONNECTED : DROPDOWN_BLUETOOTHDISCONNECTED)); - showPhoneConnectedStatus->Invalidate(); - - if (GetConnectedStatusView() != nullptr) - GetConnectedStatusView()->UpdateBlueToothConnectedStatus(status); - - return; } - /*更新勿扰模式状态*/ - void PullUpDownView::UpdateDnotDisturbStatus(int status) + void PullUpDownView::CreateView4() { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateDnotDisturbStatus"); - for (int i = 0; i < MAX_INDEX; i++) + /* ----------------------------- swipviewSelect ----------------------------- */ + if (swipviewSelect == nullptr) { - if (dropIconBackground[i] == nullptr) + swipviewSelect = new UIImageView(); + if (swipviewSelect == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dropIconBackground[%d] is nullptr", i); + return; } } - - if (dropIconBackground[DNOTDISTURB_INDEX] != nullptr) + swipviewSelect->SetPosition(217, 410, 33, 12); + swipviewSelect->SetSrc(DROPDOWN_SELECT_1_IMAGE); + group[DROPDOWNVIEW]->Add(swipviewSelect); + /* ---------------------------------- line ---------------------------------- */ + if (line == nullptr) { - if (status) + line = new UIImageView(); + if (line == nullptr) { - ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dropIconBackground[DNOTDISTURB_INDEX], DROPDOWN_ICONELLIPSEPURPLE); - } - else - { - ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dropIconBackground[DNOTDISTURB_INDEX], DROPDOWN_ICONELLIPSEBLACK); + return; } - dropIconBackground[DNOTDISTURB_INDEX]->Invalidate(); } - else + line->SetPosition(193, 440, 80, 8); + line->SetSrc(DROPDOWN_LINE_IMAGE); + group[DROPDOWNVIEW]->Add(line); + } + + void PullUpDownView::ClearAll_4(void) + { + if (swipviewSelect != nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dropIconBackground[DNOTDISTURB_INDEX] is nullptr"); - return; + delete swipviewSelect; + swipviewSelect = nullptr; + } + if (line != nullptr) + { + delete line; + line = nullptr; + } + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::ClearAll_4 over!!"); + } + + /* -------------------------------------------------------------------------- */ + // 下拉视图初始化 + bool PullUpDownView::PullUpDownViewInit() + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::InitView"); + + group[DROPDOWNVIEW] = new UIViewGroup(); + if (group[DROPDOWNVIEW] == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group[DROPDOWNVIEW] new fail!!"); + return false; } + group[DROPDOWNVIEW]->SetPosition(0, 0, 466, 466); + group[DROPDOWNVIEW]->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE); + group[DROPDOWNVIEW]->SetViewIndex(0); + group[DROPDOWNVIEW]->SetFullScreenBlur(false); /*设置高斯模式*/ + /* ----------------------------------- 1 ----------------------------------- */ + CreateDropDownConnectionStatusImageViwe(); + /* ------------------------------------ 2 ----------------------------------- */ + InitBaseData(); + /* ------------------------------------ 3 ----------------------------------- */ + CreateDropDownswipeViewListView(); + /* ------------------------------------ 4 ----------------------------------- */ + CreateView4(); + /* -------------------------------------------------------------------------- */ + + SetTouchable(true); + SetIntercept(true); + Add(group[DROPDOWNVIEW]); + return true; } - UILabel *PullUpDownView::GetTimeLabel() + void PullUpDownView::PreLoad(void) { - return showTimeLabel; + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::PreLoad"); + if (!viewiInitStatus) + { + PullUpDownViewInit(); + viewiInitStatus = true; + } } - UILabel *PullUpDownView::GetDateLabel() + + void PullUpDownView::UnLoad(void) { - return showDateLabel; + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UnLoad"); } - UILabel *PullUpDownView::GetWeekLabel() + + /*更新勿扰模式状态*/ + void PullUpDownView::UpdateDnotDisturbStatus(int status) { - return showWeekLabel; + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateDnotDisturbStatus"); } + UIBoxProgress *PullUpDownView::GetProgress() { return progress; @@ -2338,10 +1063,10 @@ namespace OHOS Invalidate(); } + /*获取连接状态视图*/ ConnectedStatusView *PullUpDownView::GetConnectedStatusView(void) { return connectedStatusView; } /* -------------------------------------------------------------------------- */ } -#endif diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/src/dropdown/DropDownCardPage1.cpp b/code/sdk/application/wearable/fd230app/nativeui/main/src/dropdown/DropDownCardPage1.cpp new file mode 100644 index 000000000..daeb928e5 --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/main/src/dropdown/DropDownCardPage1.cpp @@ -0,0 +1,150 @@ +/* + * @Author: luozheng 1732036298@qq.com + * @Date: 2024-08-21 11:54:00 + * @LastEditors: luozheng 1732036298@qq.com + * @LastEditTime: 2024-08-21 20:12:22 + * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/src/dropdown/DropDownCardPage1.cpp + */ +#include "main/include/dropdown/DropDownCardPage1.h" +#include "wearable_log.h" +#include "iostream" +#include "string" + +namespace OHOS +{ + // viewId + static constexpr const char *DROPDOWN_BT_TOGGLEBUTTON_VIEWID = "dropdown_bt"; // 蓝牙 + static constexpr const char *DROPDOWN_4G_TOGGLEBUTTON_VIEWID = "dropdown_4g"; // 4g + static constexpr const char *DROPDOWN_ALIPAY_TOGGLEBUTTON_VIEWID = "dropdown_ALIPAY"; // 支付宝 + static constexpr const char *DROPDOWN_SAVEPOWER_TOGGLEBUTTON_VIEWID = "dropdown_savepower"; // 省电模式 + static constexpr const char *DROPDOWN_SLEEP_TOGGLEBUTTON_VIEWID = "dropdown_sleep"; // 睡眠模式 + static constexpr const char *DROPDOWN_DNOTDISTURB_TOGGLEBUTTON_VIEWID = "dropdown_dnotdisturb"; // 勿扰模式 + static constexpr const char *DROPDOWN_SETTING_TOGGLEBUTTON_VIEWID = "dropdown_setting"; // 设置 + + // Image src + static constexpr const char *DROPDOWN_BT_CONNECT_IMAGE = "/user/res/dropdown/DROPDOWN_BT_CONNECT.bin"; + static constexpr const char *DROPDOWN_BT_DISCONNECT_IMAGE = "/user/res/dropdown/DROPDOWN_BT_DISCONNECT.bin"; + + static constexpr const char *DROPDOWN_4G_ON_IMAGE = "/user/res/dropdown/DROPDOWN_4G_ON.bin"; + static constexpr const char *DROPDOWN_4G_OFF_IMAGE = "/user/res/dropdown/DROPDOWN_4G_OFF.bin"; + + static constexpr const char *DROPDOWN_ALIPAY_IMAGE = "/user/res/dropdown/DROPDOWN_ALIPAY.bin"; + + static constexpr const char *DROPDOWN_SAVEPOWER_ON_IMAGE = "/user/res/dropdown/DROPDOWN_SAVEPOWER_ON.bin"; + static constexpr const char *DROPDOWN_SAVEPOWER_OFF_IMAGE = "/user/res/dropdown/DROPDOWN_SAVEPOWER_OFF.bin"; + + static constexpr const char *DROPDOWN_SLEEP_ON_IMAGE = "/user/res/dropdown/DROPDOWN_SLEEP_ON.bin"; + static constexpr const char *DROPDOWN_SLEEP_OFF_IMAGE = "/user/res/dropdown/DROPDOWN_SLEEP_OFF.bin"; + + static constexpr const char *DROPDOWN_DNOTDISTURB_ON_IMAGE = "/user/res/dropdown/DROPDOWN_DNOTDISTURB_ON.bin"; + static constexpr const char *DROPDOWN_DNOTDISTURB_OFF_IMAGE = "/user/res/dropdown/DROPDOWN_DNOTDISTURB_OFF.bin"; + + static constexpr const char *DROPDOWN_SETTING_IMAGE = "/user/res/dropdown/DROPDOWN_SETTING.bin"; + + static DropDownCardPage1 *g_pDropDownCardPage1{nullptr}; + DropDownCardPage1::DropDownCardPage1() + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DropDownCardPage1::DropDownCardPage1"); + SetPosition(0, 0, 430, 210); + g_pDropDownCardPage1 = this; + } + + DropDownCardPage1::~DropDownCardPage1() + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DropDownCardPage1::~DropDownCardPage1"); + ClearAll(); + g_pDropDownCardPage1 = nullptr; + } + + DropDownCardPage1 *DropDownCardPage1::GetInstance(void) + { + return g_pDropDownCardPage1; + } + + bool DropDownCardPage1::OnClick(UIView &view, const ClickEvent &event) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DropDownCardPage1::OnClick"); + std::string viewId = view.GetViewId(); + + return true; + } + + void DropDownCardPage1::ClearAll() + { + RemoveAll(); + int size = sizeof(toggleButton) / sizeof(toggleButton[0]); + for (int i = 0; i < size; i++) + { + if (toggleButton[i] != nullptr) + { + delete toggleButton[i]; + toggleButton[i] = nullptr; + } + } + } + + UIToggleButton *DropDownCardPage1::ToggleButtonInit(ToggleButtonConfig &toggleButtonConfig) + { + UIToggleButton *toggleButton = new UIToggleButton(); + if (toggleButton == nullptr) + { + return nullptr; + } + toggleButton->SetPosition(toggleButtonConfig.left, toggleButtonConfig.top, toggleButtonConfig.width, toggleButtonConfig.height); + toggleButton->SetViewId(toggleButtonConfig.viewId); + toggleButton->SetStyle(STYLE_BACKGROUND_OPA, 0x00); + toggleButton->SetStyle(STYLE_BORDER_RADIUS, 200); + toggleButton->SetImages(toggleButtonConfig.selectImg, toggleButtonConfig.unselectImg); + + toggleButton->SetTouchable(toggleButtonConfig.isTouchable); + toggleButton->SetOnClickListener(this); + return toggleButton; + } + + bool DropDownCardPage1::InitPage(void) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DropDownCardPage1::InitPage"); + int size = sizeof(toggleButton) / sizeof(toggleButton[0]); + ToggleButtonConfig toggleButtonConfig[] = { + {0, 0, 100, 100, DROPDOWN_BT_TOGGLEBUTTON_VIEWID, DROPDOWN_BT_CONNECT_IMAGE, DROPDOWN_BT_DISCONNECT_IMAGE, true}, + {110, 0, 100, 100, DROPDOWN_4G_TOGGLEBUTTON_VIEWID, DROPDOWN_4G_ON_IMAGE, DROPDOWN_4G_OFF_IMAGE, true}, + {220, 0, 100, 100, DROPDOWN_ALIPAY_TOGGLEBUTTON_VIEWID, DROPDOWN_ALIPAY_IMAGE, DROPDOWN_ALIPAY_IMAGE, true}, + {330, 0, 100, 100, DROPDOWN_SAVEPOWER_TOGGLEBUTTON_VIEWID, DROPDOWN_SAVEPOWER_ON_IMAGE, DROPDOWN_SAVEPOWER_OFF_IMAGE, true}, + {55, 100, 100, 100, DROPDOWN_SLEEP_TOGGLEBUTTON_VIEWID, DROPDOWN_SLEEP_ON_IMAGE, DROPDOWN_SLEEP_OFF_IMAGE, true}, + {165, 100, 100, 100, DROPDOWN_DNOTDISTURB_TOGGLEBUTTON_VIEWID, DROPDOWN_DNOTDISTURB_ON_IMAGE, DROPDOWN_DNOTDISTURB_OFF_IMAGE, true}, + {275, 100, 100, 100, DROPDOWN_SETTING_TOGGLEBUTTON_VIEWID, DROPDOWN_SETTING_IMAGE, DROPDOWN_SETTING_IMAGE, true}, + }; + + for (int i = 0; i < size; i++) + { + if (toggleButton[i] == nullptr) + { + toggleButton[i] = ToggleButtonInit(toggleButtonConfig[i]); + if (toggleButton[i] == nullptr) + { + return false; + } + Add(toggleButton[i]); + } + } + return true; + } + + bool DropDownCardPage1::InitView(void *caller) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DropDownCardPage1::InitView %p", caller); + if (InitPage() == false) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DropDownCardPage1::InitPage fail"); + return false; + } + SetDraggable(true); + SetTouchable(true); + return true; + } + + UIToggleButton *DropDownCardPage1::GetDropDownCardPage1_ToggleButton(int index) + { + return toggleButton[index]; + } +} \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/src/dropdown/DropDownCardPage2.cpp b/code/sdk/application/wearable/fd230app/nativeui/main/src/dropdown/DropDownCardPage2.cpp new file mode 100644 index 000000000..b73e6a0a9 --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/main/src/dropdown/DropDownCardPage2.cpp @@ -0,0 +1,124 @@ +/* + * @Author: luozheng 1732036298@qq.com + * @Date: 2024-08-21 11:54:00 + * @LastEditors: luozheng 1732036298@qq.com + * @LastEditTime: 2024-08-21 16:44:08 + * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/src/dropdown/DropDownCardPage2.cpp + */ +#include "main/include/dropdown/DropDownCardPage2.h" +#include "wearable_log.h" +#include "iostream" +#include "string" + +namespace OHOS +{ + // viewId + static constexpr const char *DROPDOWN_FINDPHONE_TOGGLEBUTTON_VIEWID = "dropdown_bt"; // 查找手机 + static constexpr const char *DROPDOWN_LIGHTING_TOGGLEBUTTON_VIEWID = "dropdown_4g"; // 手电筒 + + // Image src + static constexpr const char *DROPDOWN_FINDPHONE_IMAGE = "/user/res/dropdown/DROPDOWN_FINDPHONE.bin"; + + static constexpr const char *DROPDOWN_LIGHTING_IMAGE = "/user/res/dropdown/DROPDOWN_LIGHTING.bin"; + + static DropDownCardPage2 *g_pDropDownCardPage2{nullptr}; + DropDownCardPage2::DropDownCardPage2() + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DropDownCardPage2::DropDownCardPage2"); + SetPosition(0, 0, 430, 210); + g_pDropDownCardPage2 = this; + } + + DropDownCardPage2::~DropDownCardPage2() + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DropDownCardPage2::~DropDownCardPage2"); + ClearAll(); + g_pDropDownCardPage2 = nullptr; + } + + DropDownCardPage2 *DropDownCardPage2::GetInstance(void) + { + return g_pDropDownCardPage2; + } + + bool DropDownCardPage2::OnClick(UIView &view, const ClickEvent &event) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DropDownCardPage2::OnClick"); + std::string viewId = view.GetViewId(); + + return true; + } + + void DropDownCardPage2::ClearAll() + { + RemoveAll(); + int size = sizeof(toggleButton) / sizeof(toggleButton[0]); + for (int i = 0; i < size; i++) + { + if (toggleButton[i] != nullptr) + { + delete toggleButton[i]; + toggleButton[i] = nullptr; + } + } + } + + UIToggleButton *DropDownCardPage2::ToggleButtonInit(ToggleButtonConfig &toggleButtonConfig) + { + UIToggleButton *toggleButton = new UIToggleButton(); + if (toggleButton == nullptr) + { + return nullptr; + } + toggleButton->SetPosition(toggleButtonConfig.left, toggleButtonConfig.top, toggleButtonConfig.width, toggleButtonConfig.height); + toggleButton->SetViewId(toggleButtonConfig.viewId); + toggleButton->SetStyle(STYLE_BACKGROUND_OPA, 0x00); + toggleButton->SetStyle(STYLE_BORDER_RADIUS, 200); + toggleButton->SetImages(toggleButtonConfig.selectImg, toggleButtonConfig.unselectImg); + + toggleButton->SetTouchable(toggleButtonConfig.isTouchable); + toggleButton->SetOnClickListener(this); + return toggleButton; + } + + bool DropDownCardPage2::InitPage(void) + { + int size = sizeof(toggleButton) / sizeof(toggleButton[0]); + ToggleButtonConfig toggleButtonConfig[] = { + {0, 0, 100, 100, DROPDOWN_FINDPHONE_TOGGLEBUTTON_VIEWID, DROPDOWN_FINDPHONE_IMAGE, DROPDOWN_FINDPHONE_IMAGE, true}, + {110, 0, 100, 100, DROPDOWN_LIGHTING_TOGGLEBUTTON_VIEWID, DROPDOWN_LIGHTING_IMAGE, DROPDOWN_LIGHTING_IMAGE, true}, + }; + + for (int i = 0; i < size; i++) + { + if (toggleButton[i] == nullptr) + { + toggleButton[i] = ToggleButtonInit(toggleButtonConfig[i]); + if (toggleButton[i] == nullptr) + { + return false; + } + Add(toggleButton[i]); + } + } + return true; + } + + bool DropDownCardPage2::InitView(void *caller) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DropDownCardPage2::InitView %p", caller); + if (InitPage() == false) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DropDownCardPage2::InitPage fail"); + return false; + } + SetDraggable(true); + SetTouchable(true); + return true; + } + + UIToggleButton *DropDownCardPage2::GetDropDownCardPage2_ToggleButton(int index) + { + return toggleButton[index]; + } +} \ No newline at end of file diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/dropdown/bluetooth_connect.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/dropdown/bluetooth_connect.bin new file mode 100644 index 000000000..18b6cb1c9 --- /dev/null +++ b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/dropdown/bluetooth_connect.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ef5835d358587a909b57c87e2ea4884d02ed97db2c7edf9ed0e0dc24d42180a +size 408 diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/dropdown/bluetooth_disconnect.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/dropdown/bluetooth_disconnect.bin new file mode 100644 index 000000000..37b9a1348 --- /dev/null +++ b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/dropdown/bluetooth_disconnect.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef114c9bf2ab68c7d416636aa83abc9cb65bb64088b6b4df3c83ce56d7f9b123 +size 408 diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/dropdown/earphones_connect.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/dropdown/earphones_connect.bin new file mode 100644 index 000000000..1056a441a --- /dev/null +++ b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/dropdown/earphones_connect.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:319061f20e42b134cdd01344fa79bb3ac706643a7da68c3b8199f6b6d630bce7 +size 408 diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/dropdown/earphones_disconnect.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/dropdown/earphones_disconnect.bin new file mode 100644 index 000000000..48b61e926 --- /dev/null +++ b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/dropdown/earphones_disconnect.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d197881a9b85fa97faa6bd7a94d684d55ca7680ef661d758b9d259e289751a22 +size 408 diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/dropdown/phone_connect.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/dropdown/phone_connect.bin new file mode 100644 index 000000000..10762d4c6 --- /dev/null +++ b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/dropdown/phone_connect.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9df2a4a49dff299179c5b4854f6bd4136d297117f4e20e8430122fb6c0cc7953 +size 312 diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/dropdown/phone_disconnect.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/dropdown/phone_disconnect.bin new file mode 100644 index 000000000..bf4de2de4 --- /dev/null +++ b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/dropdown/phone_disconnect.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec2ff4171692a30af22a443998788d830965c80ea4a6c909f2a6dfcf3cb48dad +size 408 -- 2.17.1