主界面:适配部分表盘UI
authorCaisking <Casiking@zhihuishixun.com>
Wed, 26 Mar 2025 07:30:53 +0000 (15:30 +0800)
committerCaisking <Casiking@zhihuishixun.com>
Wed, 26 Mar 2025 07:30:53 +0000 (15:30 +0800)
code/sdk/application/wearable/fd230/nativeapp/nativeui/clock/include/MainClockView.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/clock/src/AmbientClockView.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/clock/src/MainClockView.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/MainPresenterSample.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/PullUpDownView.cpp

index 4e4fb88..5567c4f 100644 (file)
@@ -1,3 +1,9 @@
+/***
+ * @Date: 2024-07-17 14:09:04
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-07-20 15:26:53
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/clock/include/MainClockView.h
+ */
 /*
  * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
  * Description: MainClockView
  * Create: 2021-10-18
  */
 
-#ifndef MAIN_CLOCK_VIEW_H
-#define MAIN_CLOCK_VIEW_H
-
-#include <string>
-#include <ctime>
-#include "View.h"
-#include "components/ui_label.h"
-#include "components/root_view.h"
-#include "components/ui_view_group.h"
-#include "components/ui_image_view.h"
-#include "components/ui_label_button.h"
-#include "components/ui_sweep_clock.h"
-#include "ChangeSliceListener.h"
-#include "font/ui_font_bitmap.h"
-#include "font/ui_font.h"
-#include "graphic_config.h"
-#include "HealthModel.h"
-#include "ActivityModel.h"
-#include "UiConfig.h"
-#include "components/ui_card_page.h"
-#include "animator/animator_manager.h"
-#include <ctime>
-#include "sys/time.h"
-
-namespace OHOS {
-class MainClockView : public UICardPage {
-public:
-    MainClockView();
-    ~MainClockView() override;
-    static MainClockView *GetInstance(void);
-    bool InitView(void);
-    void PreLoad(void) override;
-    void UnLoad(void) override;
-    void RefreshStep(int step);
-    void RefreshHeartRate(int value);
-    void ClockAnimatorStart(void);
-    void ClockAnimatorStop(void);
-    void UpdateTime(void);
-
-private:
-    void InitStepValue();
-    bool InitLabelView(void);
-    bool InitCenterCircleView(void);
-    bool InitHandView(void);
-    void InitDateTime(void);
-    bool InitSweepClock(void);
-    bool LoadClockImage(Image *view, uint32_t resId);
-    bool LoadClockImage(UIImageView *view, uint32_t resId);
-    UIImageView *curFace{nullptr};
-    UILabelButton *stepLabel{nullptr};
-    UILabel *batteryLabel{nullptr};
-    UILabel *weekLabel{nullptr};
-    UILabel *heartRateLabel{nullptr};
-    UISweepClock *mainSweepClock{nullptr};
-    Image *secondHand{nullptr};
-    Image *minuteHand{nullptr};
-    Image *hourHand{nullptr};
-    UIImageView *heartRate{nullptr};
-    Image *hand24Hour{nullptr};
-    UIImageView *weekDay{nullptr};
-    UIImageView *progress{nullptr};
-    Image *bigCircle{nullptr};
-    Image *medCircle{nullptr};
-    Image *smallCircle{nullptr};
-    bool viewiInitStatus{false};
-};
-} // namespace OHOS
-#endif // MAIN_CLOCK_VIEW_H
+ #ifndef MAIN_CLOCK_VIEW_H
+ #define MAIN_CLOCK_VIEW_H
+ 
+ #include <string>
+ #include <time.h>
+ #include "View.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 "components/root_view.h"
+ 
+ #include "components/ui_sweep_clock.h"
+ #include "ChangeSliceListener.h"
+ #include "font/ui_font_bitmap.h"
+ #include "font/ui_font.h"
+ #include "graphic_config.h"
+ #include "HealthModel.h"
+ #include "ActivityModel.h"
+ #include "UiConfig.h"
+ #include "components/ui_card_page.h"
+ #include "animator/animator_manager.h"
+ #include "time.h"
+ #include "sys/time.h"
+ 
+ namespace OHOS
+ {
+     /*表盘颜色配置*/
+     enum ColorTypeSet
+     {
+         COLOR_WHITE = 0,
+         COLOR_BLACK,
+         COLOR_GRAY,
+         COLOR_GREEN,
+         COLOR_ORANGE,
+         COLOR_BLUE,
+         COLOR_DEFAULT = COLOR_WHITE // 默认颜色
+     };
+     /*表盘电量配置*/
+     enum BatteryDisplayType
+     {
+         BATTERY_DISPLAY_NONE = 0,                       // 不显示图标
+         BATTERY_DISPLAY_BLACK,                          // 显示黑色
+         BATTERY_DISPLAY_WHITE,                          // 显示白色
+         BATTERY_DISPLAY_DEFAULT = BATTERY_DISPLAY_WHITE // 默认:白色
+     };
+     /*表盘时间配置*/
+     enum TimeDisplayPosition
+     {
+         TIME_DISPLAY_BELOW = 0,                   // 显示在表盘下方
+         TIME_DISPLAY_ABOVE,                       // 显示在表盘上方
+         TIME_DISPLAY_DEFAULT = TIME_DISPLAY_BELOW // 默认:下方
+     };
+ 
+     class MainClockView : public UICardPage
+     {
+     public:
+         MainClockView();
+         virtual ~MainClockView();
+         static MainClockView *GetInstance(void);
+         bool InitView(void);
+         void PreLoad(void) override;
+         void UnLoad(void) override;
+         /*刷新数据*/
+         void RefreshStep(int step);
+         void RefreshHeartRate(int value);
+         void ClockAnimatorStart(void);
+         void ClockAnimatorStop(void);
+         /*更新数据*/
+         void UpdateTime(void);
+         void UpdataBattery(void);
+         void SetViewColor(int64_t color);
+         void UpdateBatteryColor(void);
+         /*配置文件*/
+         void SetDialPath(std::string dialpath);
+ 
+         /*配置自定义表盘*/
+         void SetCustomId(int Id);
+ 
+         /*配置函数*/
+         bool InitBackground(const char *filename);
+         bool InitTimeView(TimeDisplayPosition type);   // 时间
+         bool InitBatteryView(BatteryDisplayType type); // 电量
+         bool InitColor(ColorTypeSet type);             // 颜色
+         void SetLabelsColor(ColorType color);
+ 
+         void UpdateStateShow(void);
+ 
+     private:
+         void InitStepValue();
+         bool InitLabelView(void);
+         bool InitCenterCircleView(void);
+         bool InitHandView(void);
+         void InitDateTime(void);
+         bool InitClock(void);
+         bool LoadClockImage(Image *view, uint32_t resId);
+         bool LoadClockImage(UIImageView *view, uint32_t resId);
+ 
+         /*表盘背景*/
+         UIImageView *curFace{nullptr};
+         
+         /*时间相关*/
+         UILabel *timerlabel{nullptr};
+         UILabel *weekLabel{nullptr};
+         UILabel *datelabel{nullptr};
+ 
+         /*电量相关*/
+         UIImageView *batteryiamge{nullptr};
+         UIBoxProgress *batteryprogress{nullptr};
+         UILabel *batterylabel{nullptr};
+         UIImageView *batteryicon{nullptr};
+ 
+         /*数据相关*/
+         UILabel *stepLabel{nullptr};
+         UILabel *heartlabel{nullptr};
+ 
+         /*指针表盘相关 暂不使用*/
+         UISweepClock *mainSweepClock{nullptr};
+         Image *secondHand{nullptr};
+         Image *minuteHand{nullptr};
+         Image *hourHand{nullptr};
+         UIImageView *heartRate{nullptr};
+         Image *hand24Hour{nullptr};
+         UIImageView *weekDay{nullptr};
+         UIImageView *progress{nullptr};
+         Image *bigCircle{nullptr};
+         Image *medCircle{nullptr};
+         Image *smallCircle{nullptr};
+ 
+         UIImageView *dialstateicon_{nullptr}; // 勿扰
+         UIImageView *messageicon_{nullptr};   // 未读图标   
+ 
+         bool viewiInitStatus{false};
+         bool resLoadStatus{false};
+ 
+         std::string dialFile;                                     // 表盘背景文件名
+         ColorTypeSet colorType = COLOR_DEFAULT;                   // 颜色类型
+         BatteryDisplayType batterySetting = BATTERY_DISPLAY_NONE; // 电池设置
+         TimeDisplayPosition timePosition = TIME_DISPLAY_DEFAULT;  // 时间位置
+         int64_t color_ = Color::White().full;                     // 电量颜色
+         int32_t power_ = -1;                                      // 电量
+         bool isBatteryIconVisible{false};                         // 电池暂停
+     };
+ } // namespace OHOS
+ #endif // MAIN_CLOCK_VIEW_H
+ 
\ No newline at end of file
index 7bc705a..d9aaac6 100644 (file)
@@ -63,6 +63,7 @@ AmbientClockView::~AmbientClockView()
 
 bool AmbientClockView::InitCenterCircleView(void)
 {
+    #ifdef FD230_650
     bigCircle_ = new Image();
     if (bigCircle_ == nullptr) {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bigCircle new fail");
@@ -89,11 +90,13 @@ bool AmbientClockView::InitCenterCircleView(void)
     if (!LoadClockImage(smallCircle_, CLOCK_CIRCLE_IMAGE_PATH)) {
         return false;
     }
+    #endif
     return true;
 }
 
 bool AmbientClockView::InitHandView(void)
 {
+    #ifdef FD230_650
     secondHand_ = new Image();
     if (secondHand_ == nullptr) {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "secondHand new fail");
@@ -132,6 +135,7 @@ bool AmbientClockView::InitHandView(void)
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "hand24Hour load fail");
         return false;
     }
+    #endif 
     return true;
 }
 
index 9beeb51..380016e 100644 (file)
@@ -1,3 +1,9 @@
+/***
+ * @Date: 2024-07-17 14:09:09
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-07-22 09:33:10
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/clock/src/MainClockView.cpp
+ */
 /*
  * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
  * Description: MainClockView
  * Create: 2021-08-14
  */
 
-#include "MainClockView.h"
-#include "MainPresenterSample.h"
-#include "components/ui_label.h"
-#include "wearable_log.h"
-#include "ui_resource_image.h"
-#include "common/image_cache_manager.h"
-#include <ctime>
-
-namespace OHOS {
-static MainClockView *g_pMainClockView = nullptr;
-
-static constexpr uint16_t FONT_DEFAULT_SIZE = 25;
-static constexpr uint16_t FONT_TEXT_SIZE = 24;
-static constexpr uint16_t STEP_LABEL_X = 100;
-static constexpr uint16_t STEP_LABEL_Y = 230;
-static constexpr uint16_t BATTERYP_LABEL_X = 315;
-static constexpr uint16_t BATTERYP_LABEL_Y = 230;
-static constexpr uint16_t TEXT_WIDTH = 60;
-static constexpr uint16_t TEXT_HEIGHT = 35;
-static constexpr uint16_t POINT_POSITION_X = 202;
-static constexpr uint16_t POINT_POSITION_Y = 16;
-static constexpr uint16_t SECOND_POINT_POSITION_Y = 16;
-static constexpr uint16_t POINT_CENTER_X = 25;
-static constexpr uint16_t POINT_CENTER_Y = 211;
-static constexpr uint16_t STEP_CHAR_NUM = 255;
-static constexpr int16_t STEP_LABLE_WIDTH = 75;
-static constexpr int16_t STEP_LABLE_SIZE = 35;
-static constexpr uint16_t WEEKLABEL_POSITION_X = 247;
-static constexpr uint16_t WEEKLABEL_POSITION_Y = 122;
-static constexpr uint16_t HEARTRATELABEL_POSITION_X = 198;
-static constexpr uint16_t HEARTRATELABEL_POSITION_Y = 330;
-static constexpr uint16_t HEARTRATE_POSITION_X = 156;
-static constexpr uint16_t HEARTRATE_POSITION_Y = 260;
-static constexpr uint16_t PROGRESS_POSITION_X = 53;
-static constexpr uint16_t PROGRESS_POSITION_Y = 54;
-static constexpr uint16_t BIGCIRCLE_POSITION_X = 202;
-static constexpr uint16_t BIGCIRCLE_POSITION_Y = 202;
-static constexpr uint16_t MEDCIRCLE_POSITION_X = 202;
-static constexpr uint16_t MEDCIRCLE_POSITION_Y = 202;
-static constexpr uint16_t SMALLCIRCLE_POSITION_X = 202;
-static constexpr uint16_t SMALLCIRCLE_POSITION_Y = 202;
-static constexpr uint16_t WEEKDAY_POSITION_X = 193;
-static constexpr uint16_t WEEKDAY_POSITION_Y = 127;
-static constexpr int16_t SEC_TO_MILLI = 1000;
-static constexpr int16_t USEC_TO_MILLI = 1000;
-static constexpr int16_t MIN_TO_HOUR = 60;
-static constexpr int16_t HOURLY_SYSTEM = 24;
-static constexpr int16_t INTERVAL = 30;
-
-MainClockView::MainClockView()
-{
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainClockView::MainClockView");
-    SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
-    g_pMainClockView = this;
-}
-
-MainClockView::~MainClockView()
-{
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainClockView::~MainClockView");
-    if (viewiInitStatus) {
-        mainSweepClock->RemoveAll();
-        delete curFace;
-        curFace = nullptr;
-        delete stepLabel;
-        stepLabel = nullptr;
-        delete batteryLabel;
-        batteryLabel = nullptr;
-        delete secondHand;
-        secondHand = nullptr;
-        delete minuteHand;
-        minuteHand = nullptr;
-        delete hourHand;
-        hourHand = nullptr;
-        delete weekLabel;
-        weekLabel = nullptr;
-        delete heartRateLabel;
-        heartRateLabel = nullptr;
-        delete heartRate;
-        heartRate = nullptr;
-        delete hand24Hour;
-        hand24Hour = nullptr;
-        delete weekDay;
-        weekDay = nullptr;
-        delete progress;
-        progress = nullptr;
-        delete bigCircle;
-        bigCircle = nullptr;
-        delete medCircle;
-        medCircle = nullptr;
-        delete smallCircle;
-        smallCircle = nullptr;
-        Remove(mainSweepClock);
-        delete mainSweepClock;
-        mainSweepClock = nullptr;
-        g_pMainClockView = nullptr;
-    }
-}
-
-MainClockView *MainClockView::GetInstance(void)
-{
-    return g_pMainClockView;
-}
-
-void MainClockView::InitStepValue()
-{
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainClockView::InitStepValue");
-    uint32_t stepValue;
-    int weekToday = ActivityModel::GetInstance()->GetWeekToday();
-    ActivityModel::GetInstance()->GetStepData((StepDataDistribute)weekToday, &stepValue);
-    char stepChar[STEP_CHAR_NUM] = {0};
-    if (sprintf_s(stepChar, STEP_CHAR_NUM, "%d", stepValue) == -1) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainClockView::InitStepValue error");
-        return;
-    }
-    if (stepLabel == nullptr) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainClockView::InitStepValue nullptr");
-        return;
-    }
-    stepLabel->SetText(stepChar);
-    stepLabel->SetStyleForState(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT, UIButton::RELEASED);
-    stepLabel->SetStyleForState(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT, UIButton::PRESSED);
-    stepLabel->SetStyleForState(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT, UIButton::INACTIVE);
-}
-
-bool MainClockView::InitLabelView(void)
-{
-    UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::MainPresenterSample::GetInstance();
-    stepLabel = new UILabelButton();
-    if (stepLabel == nullptr) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "stepLabel new fail");
-        return false;
-    }
-    stepLabel->SetPosition(STEP_LABEL_X, STEP_LABEL_Y);
-    stepLabel->Resize(STEP_LABLE_WIDTH, STEP_LABLE_SIZE);
-    stepLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_DEFAULT_SIZE);
-    stepLabel->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);
-    stepLabel->SetViewId(MAIN_CLICK_ACTIVITY);
-    stepLabel->SetTouchable(true);
-    stepLabel->SetOnClickListener(clickListener);
-    InitStepValue();
-
-    batteryLabel = new UILabel();
-    if (batteryLabel == nullptr) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "batteryLabel new fail");
-        return false;
-    }
-    batteryLabel->SetPosition(BATTERYP_LABEL_X, BATTERYP_LABEL_Y, TEXT_WIDTH, TEXT_HEIGHT);
-    batteryLabel->SetText("90%");
-    batteryLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
-    batteryLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_DEFAULT_SIZE);
-    batteryLabel->SetStyle(STYLE_BACKGROUND_COLOR, OPA_TRANSPARENT);
-
-    heartRateLabel = new UILabel();
-    if (heartRateLabel == nullptr) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "heartRateLabel new fail");
-        return false;
-    }
-    heartRateLabel->SetPosition(HEARTRATELABEL_POSITION_X, HEARTRATELABEL_POSITION_Y, TEXT_WIDTH, TEXT_HEIGHT);
-    heartRateLabel->SetText("--");
-    heartRateLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
-    heartRateLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_DEFAULT_SIZE);
-    heartRateLabel->SetStyle(STYLE_BACKGROUND_COLOR, OPA_OPAQUE);
-
-    weekLabel = new UILabel();
-    if (weekLabel == nullptr) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "weekLabel new fail");
-        return false;
-    }
-    weekLabel->SetPosition(WEEKLABEL_POSITION_X, WEEKLABEL_POSITION_Y, TEXT_WIDTH, TEXT_HEIGHT);
-    weekLabel->SetText("2");
-    weekLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_TEXT_SIZE);
-    weekLabel->SetStyle(STYLE_BACKGROUND_COLOR, OPA_TRANSPARENT);
-    return true;
-}
-
-bool MainClockView::InitCenterCircleView(void)
-{
-    bigCircle = new Image();
-    if (bigCircle == nullptr) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bigCircle new fail");
-        return false;
-    }
-    if (!LoadClockImage(bigCircle, CLOCK_BIGCIRCLE_IMAGE_PATH)) {
-        return false;
-    }
-
-    medCircle = new Image();
-    if (medCircle == nullptr) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "medCircle new fail");
-        return false;
-    }
-    if (!LoadClockImage(medCircle, CLOCK_MEDCIRCLE_IMAGE_PATH)) {
-        return false;
-    }
-
-    smallCircle = new Image();
-    if (smallCircle == nullptr) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "smallCircle new fail");
-        return false;
-    }
-    if (!LoadClockImage(smallCircle, CLOCK_CIRCLE_IMAGE_PATH)) {
-        return false;
-    }
-    return true;
-}
-
-bool MainClockView::InitHandView(void)
-{
-    secondHand = new Image();
-    if (secondHand == nullptr) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "secondHand new fail");
-        return false;
-    }
-    if (!LoadClockImage(secondHand, CLOCK_SECONDHAND)) {
-        return false;
-    }
-
-    minuteHand = new Image();
-    if (minuteHand == nullptr) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "minuteHand new fail");
-        return false;
-    }
-    if (!LoadClockImage(minuteHand, CLOCK_MINUTEHAND)) {
-        return false;
-    }
-    hourHand = new Image();
-    if (hourHand == nullptr) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "hourHand new fail");
-        return false;
-    }
-    if (!LoadClockImage(hourHand, CLOCK_HOURHAND)) {
-        return false;
-    }
-
-    hand24Hour = new Image();
-    if (hand24Hour == nullptr) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "hand24Hour new fail");
-        return false;
-    }
-    if (!LoadClockImage(hand24Hour, CLOCK_HAND24HOUR_IMAGE_PATH)) {
-        return false;
-    }
-    return true;
-}
-
-bool MainClockView::LoadClockImage(Image *view, uint32_t resId)
-{
-    std::string file = CLOCK_IAMGES;
-    ImageInfo* image = ImageCacheManager::GetInstance().LoadOneInMultiRes(resId, file);
-    if (image == nullptr) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LoadClockImage %x fail", resId);
-        return false;
-    }
-    view->SetSrc(image);
-    return true;
-}
-
-bool MainClockView::LoadClockImage(UIImageView *view, uint32_t resId)
-{
-    std::string file = CLOCK_IAMGES;
-    ImageInfo* image = ImageCacheManager::GetInstance().LoadOneInMultiRes(resId, file);
-    if (image == nullptr) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LoadClockImage %x fail", resId);
-        return false;
-    }
-    view->SetSrc(image);
-    return true;
-}
-
-bool MainClockView::InitSweepClock(void)
-{
-    curFace = new UIImageView();
-    if (curFace == nullptr) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "curFace new fail");
-        return false;
-    }
-    curFace->SetPosition(0, 0);
-
-    if (!LoadClockImage(curFace, CLOCK_MAIN_FACE_IMAGE)) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "curFace LoadClockImage CLOCK_MAIN_FACE_IMAGE fail");
-        return false;
-    }
-
-    if (!InitLabelView()) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitLabelView() fail");
-        return false;
-    }
-    if (!InitCenterCircleView()) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitCenterCircleView() fail");
-        return false;
-    }
-    heartRate = new UIImageView();
-    if (heartRate == nullptr) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "heartRate new fail");
-        return false;
-    }
-    heartRate->SetPosition(HEARTRATE_POSITION_X, HEARTRATE_POSITION_Y);
-    if (!LoadClockImage(heartRate, CLOCK_HEARTRATE_IMAGE_PATH)) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "heartRate LoadClockImage CLOCK_HEARTRATE_IMAGE_PATH fail");
-        return false;
-    }
-
-    progress = new UIImageView();
-    if (progress == nullptr) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "progress new fail");
-        return false;
-    }
-    progress->SetPosition(PROGRESS_POSITION_X, PROGRESS_POSITION_Y);
-    if (!LoadClockImage(progress, CLOCK_PROGRESS_IMAGE_PATH)) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "progress LoadClockImage CLOCK_PROGRESS_IMAGE_PATH fail");
-        return false;
-    }
-
-    InitHandView();
-    weekDay = new UIImageView();
-    if (weekDay == nullptr) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "weekDay new fail");
-        return false;
-    }
-    weekDay->SetPosition(WEEKDAY_POSITION_X, WEEKDAY_POSITION_Y);
-    if (!LoadClockImage(weekDay, CLOCK_THURSDAY_IMAGE_PATH)) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "weekDay LoadClockImage CLOCK_THURSDAY_IMAGE_PATH fail");
-        return false;
-    }
-    return true;
-}
-
-void MainClockView::PreLoad(void)
-{
-    if (!viewiInitStatus) {
-        InitView();
-        viewiInitStatus = true;
-    }
-}
-
-void MainClockView::UnLoad(void)
-{
-    // Main clock view is commonly used page, so we do not release it's resources inner slice.
-}
-
-bool MainClockView::InitView(void)
-{
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainClockView::InitView");
-
-    mainSweepClock = new UISweepClock();
-    if (mainSweepClock == nullptr) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "mainSweepClock new fail");
-        return false;
-    }
-    if (!InitSweepClock()) {
-        return false;
-    }
-
-    mainSweepClock->Add(curFace);
-    mainSweepClock->Add(stepLabel);
-    mainSweepClock->Add(heartRate);
-    mainSweepClock->Add(weekLabel);
-    mainSweepClock->Add(heartRateLabel);
-    mainSweepClock->Add(weekDay);
-    mainSweepClock->Add(progress);
-    mainSweepClock->Add(batteryLabel);
-    Add(mainSweepClock);
-
-    mainSweepClock->SetDragParentInstead(true);
-    mainSweepClock->SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
-
-    // {214, 3}: position x, y {14, 223}: center x, y
-    mainSweepClock->SetHandImage(UISweepClock::HandType::SECOND_HAND, *secondHand,
-        { POINT_POSITION_X, SECOND_POINT_POSITION_Y }, { POINT_CENTER_X, POINT_CENTER_Y });
-    mainSweepClock->SetHandImage(UISweepClock::HandType::MINUTE_HAND, *minuteHand,
-        { POINT_POSITION_X, POINT_POSITION_Y }, { POINT_CENTER_X, POINT_CENTER_Y });
-    mainSweepClock->SetHandImage(UISweepClock::HandType::HOUR_HAND, *hourHand, { POINT_POSITION_X, POINT_POSITION_Y },
-        { POINT_CENTER_X, POINT_CENTER_Y });
-    mainSweepClock->SetHandCircleImage(UISweepClock::HandType::SECOND_HAND, *smallCircle,
-        { SMALLCIRCLE_POSITION_X, SMALLCIRCLE_POSITION_Y });
-    mainSweepClock->SetHandCircleImage(UISweepClock::HandType::MINUTE_HAND, *medCircle,
-        { MEDCIRCLE_POSITION_X, MEDCIRCLE_POSITION_Y });
-    mainSweepClock->SetHandCircleImage(UISweepClock::HandType::HOUR_HAND, *bigCircle,
-        { BIGCIRCLE_POSITION_X, BIGCIRCLE_POSITION_Y });
-
-    mainSweepClock->SetInitTime24Hour(0, 0, 0);
-    mainSweepClock->SetWorkMode(UISweepClock::WorkMode::NORMAL);
-    InitDateTime();
-    SetCoverable(true);
-    return true;
-}
-
-void MainClockView::RefreshStep(int step)
-{
-    char stepChar[STEP_CHAR_NUM] = {0};
-
-    (void)sprintf_s(stepChar, STEP_CHAR_NUM, "%d", step);
-    stepLabel->SetText(stepChar);
-}
-
-void MainClockView::RefreshHeartRate(int value)
-{
-    if (value == 0) {
-        heartRateLabel->SetText("--");
-        return;
-    }
-    char heartRateChar[STEP_CHAR_NUM] = {0};
-
-    (void)sprintf_s(heartRateChar, STEP_CHAR_NUM, "%d", value);
-    heartRateLabel->SetText(heartRateChar);
-}
-
-void MainClockView::InitDateTime(void)
-{
-    UpdateTime();
-}
-
-void MainClockView::UpdateTime(void)
-{
-    struct timeval tv;
-    gettimeofday(&tv, nullptr);
-    uint64_t second = tv.tv_sec;
-    uint64_t uSecond = tv.tv_usec;
-    uint64_t minute = second / MIN_TO_HOUR;
-    uint64_t hour = minute / MIN_TO_HOUR + timezone / (MIN_TO_HOUR * MIN_TO_HOUR);
-    uint8_t realHour = static_cast<uint8_t>(hour % HOURLY_SYSTEM);
-    uint8_t realMinute = static_cast<uint8_t>(minute % MIN_TO_HOUR);
-    uint16_t realMilliSecond = static_cast<uint16_t>((second % MIN_TO_HOUR) *
-        SEC_TO_MILLI + uSecond / USEC_TO_MILLI);
-    mainSweepClock->SetSweepTime12Hour(realHour, realMinute, realMilliSecond, 1);
-}
-}
+ #include "MainClockView.h"
+ #include "MainModel.h"
+ #include "MainPresenterSample.h"
+ #include "SetDialModel.h"
+//  #include "battery_hal.h"
+ #include "common/image_cache_manager.h"
+ #include "components/ui_label.h"
+ #include "custom_runtime.h"
+
+//  #include "main/include/PullUpDownView.h"
+//  #include "message/include/MessageControlView.h"
+#include "uicomponents/UIComponents.h"
+
+ #include "ui_resource_image.h"
+ 
+ #include "wearable_log.h"
+ #include <cwchar>
+ #include <iomanip>
+ #include <iostream>
+ #include <sstream>
+ #include <string>
+ #include <sys/stat.h>
+ #include <time.h>
+ #include <unistd.h>
+//  extern uint8_t battery_get_voltage(float *voltage);
+ 
+ #define TIMEVIEW_UP 0
+ #define TIMEVIEW_DOWN 1
+ #define SECONDTEST 0
+ #define TIMEFORMAT 1
+ 
+ std::string Enweekdays[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
+ std::string Cnweekdays[] = {"星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
+ 
+ static constexpr const char *CHAGE_BATTERY = "/user/res/Battery/Icon.bin";
+ static constexpr const char *WHITE_BATTERY = "/user/res/Battery/Battery_White.bin";
+ static constexpr const char *BLACK_BATTERY = "/user/res/Battery/Battery_Black.bin";
+ 
+ static constexpr const char *DISTURBICON = "user/res/dial_state/disturbicon.bin";
+ static constexpr const char *MESSAGEICON = "user/res/dial_state/unread.bin";
+ static constexpr const char *SLEEPICON = "user/res/dial_state/sleep.bin";
+ static constexpr const char *LOCKICON = "user/res/dial_state/lock.bin";
+ 
+ // 定义一些常量
+ constexpr int HOURS_IN_DAY = 24;
+ constexpr int MINUTES_IN_HOUR = 60;
+ constexpr int HOUR_FORMAT_12 = 12;
+ constexpr int BATTERY_LOW_THRESHOLD = 10;
+ constexpr int BATTERY_MEDIUM_THRESHOLD = 20;
+ 
+ namespace OHOS
+ {
+ #if 0
+     static constexpr uint16_t FONT_DEFAULT_SIZE = 25;
+     static constexpr uint16_t FONT_TEXT_SIZE = 24;
+     static constexpr uint16_t STEP_LABEL_X = 100;
+     static constexpr uint16_t STEP_LABEL_Y = 230;
+     static constexpr uint16_t BATTERYP_LABEL_X = 315;
+     static constexpr uint16_t BATTERYP_LABEL_Y = 230;
+     static constexpr uint16_t TEXT_WIDTH = 60;
+     static constexpr uint16_t TEXT_HEIGHT = 35;
+     static constexpr uint16_t POINT_POSITION_X = 202;
+     static constexpr uint16_t POINT_POSITION_Y = 16;
+     static constexpr uint16_t SECOND_POINT_POSITION_Y = 16;
+     static constexpr uint16_t POINT_CENTER_X = 25;
+     static constexpr uint16_t POINT_CENTER_Y = 211;
+     static constexpr int16_t STEP_LABLE_WIDTH = 75;
+     static constexpr int16_t STEP_LABLE_SIZE = 35;
+     static constexpr uint16_t WEEKLABEL_POSITION_X = 181;
+     static constexpr uint16_t WEEKLABEL_POSITION_Y = 365;
+     static constexpr uint16_t HEARTRATELABEL_POSITION_X = 198;
+     static constexpr uint16_t HEARTRATELABEL_POSITION_Y = 330;
+     static constexpr uint16_t HEARTRATE_POSITION_X = 156;
+     static constexpr uint16_t HEARTRATE_POSITION_Y = 260;
+     static constexpr uint16_t PROGRESS_POSITION_X = 53;
+     static constexpr uint16_t PROGRESS_POSITION_Y = 54;
+     static constexpr uint16_t BIGCIRCLE_POSITION_X = 202;
+     static constexpr uint16_t BIGCIRCLE_POSITION_Y = 202;
+     static constexpr uint16_t MEDCIRCLE_POSITION_X = 202;
+     static constexpr uint16_t MEDCIRCLE_POSITION_Y = 202;
+     static constexpr uint16_t SMALLCIRCLE_POSITION_X = 202;
+     static constexpr uint16_t SMALLCIRCLE_POSITION_Y = 202;
+     static constexpr uint16_t WEEKDAY_POSITION_X = 193;
+     static constexpr uint16_t WEEKDAY_POSITION_Y = 127;
+     static constexpr int16_t SEC_TO_MILLI = 1000;
+     static constexpr int16_t USEC_TO_MILLI = 1000;
+     static constexpr int16_t MIN_TO_HOUR = 60;
+     static constexpr int16_t HOURLY_SYSTEM = 24;
+     static constexpr int16_t INTERVAL = 30;
+ #endif
+     static constexpr uint16_t STEP_CHAR_NUM = 255;
+     static MainClockView *g_pMainClockView = nullptr;
+     MainClockView::MainClockView()
+     {
+         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainClockView::MainClockView");
+         SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
+         g_pMainClockView = this;
+     }
+ 
+     MainClockView::~MainClockView()
+     {
+         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainClockView::~MainClockView");
+ 
+         delete curFace; // 背景
+         curFace = nullptr;
+         delete timerlabel; // 时间
+         timerlabel = nullptr;
+         delete weekLabel; // 星期
+         weekLabel = nullptr;
+         delete datelabel; // 日期
+         datelabel = nullptr;
+         delete batteryiamge; // 电量框
+         batteryiamge = nullptr;
+         delete batteryprogress; // 电量进度条
+         batteryprogress = nullptr;
+         delete batterylabel; // 电量label
+         batterylabel = nullptr;
+         delete batteryicon; // 充电图标
+         batteryicon = nullptr;
+         delete stepLabel; // 步数
+         stepLabel = nullptr;
+         delete heartlabel; // 心率
+         heartlabel = nullptr;
+         if (dialstateicon_ != nullptr) {
+           delete dialstateicon_;
+           dialstateicon_ = nullptr;
+         }
+ 
+         if (messageicon_ != nullptr) {
+           delete messageicon_;
+           messageicon_ = nullptr;
+         }
+ 
+         g_pMainClockView = nullptr;
+     }
+ 
+     MainClockView *MainClockView::GetInstance(void)
+     {
+         return g_pMainClockView;
+     }
+     /*配置自定义表盘*/
+     void MainClockView::SetCustomId(int Id)
+     {
+        //  // 默认表盘和异常表盘采用原表盘配置
+        //  if (Id == DIAL_CLOCK || Id > DIAL_MAX)
+        //      return;
+ 
+        //  DialLayout dialconfig;
+        //  if (SetDialModel::GetInstance().loadDialConfig(Id, dialconfig))
+        //  {
+        //      // 设置背景
+        //      dialFile = SetDialModel::GetInstance().GetSaveDir(Id) + "/" + "main_bg.bin";
+        //      WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dialFile is %s", dialFile.c_str());
+ 
+        //      // 设置表盘配置
+        //      timePosition = static_cast<TimeDisplayPosition>(dialconfig.timeDisplay);
+        //      batterySetting = static_cast<BatteryDisplayType>(dialconfig.batteryDisplay);
+        //      colorType = static_cast<ColorTypeSet>(dialconfig.colorTypeSet);
+        //  }
+        //  else
+        //  {
+        //      WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "custom_id [%d] file is error! ", Id);
+        //  }
+     }
+ 
+     /*设置表盘背景*/
+     void MainClockView::SetDialPath(std::string dialpath)
+     {
+         if (dialpath.empty())
+         {
+             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Error: The specified dial path does not exist:");
+             return;
+         }
+         dialFile.clear();
+         dialFile = dialpath;
+     }
+ 
+     bool MainClockView::InitClock(void)
+     {
+         InitBackground(dialFile.c_str());
+         InitTimeView(timePosition);
+         InitBatteryView(batterySetting);
+         InitColor(colorType);
+         return true;
+     }
+     /*初始化表盘背景*/
+     bool MainClockView::InitBackground(const char *filename) {
+ 
+         if (filename == nullptr) {
+             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "filename is null");
+             return false;
+         }
+         curFace = new UIImageView();
+         if (curFace == nullptr)
+         {
+             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "curFace new fail");
+             return false;
+         }
+         curFace->SetPosition(0, 0);
+ 
+         ImageCacheManager::GetInstance().UnloadSingleRes(filename);
+         ImageInfo *image = ImageCacheManager::GetInstance().LoadSingleRes(filename, false);
+         if (image == nullptr)
+         {
+             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LoadAllDialFromRam loadimage %s fail",
+                             filename);
+             curFace->SetSrc(DEFAULT_DIALBACK_PATH);
+             Add(curFace);
+             return false;
+         }
+         curFace->SetSrc(image);
+         Add(curFace);
+         return true;
+     }
+ 
+     /*
+         时间显示 [时间 日期 星期]
+         0 显示在表盘上方
+         1 显示在表盘下方
+ 
+         默认:下方
+     */
+     bool MainClockView::InitTimeView(TimeDisplayPosition type)
+     {
+         // 创建UILabel的助手函数
+         auto createLabel = [](UILabel *&label, const std::string &labelName) -> bool
+         {
+             label = new UILabel();
+             if (label == nullptr)
+             {
+                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s creation failed", labelName.c_str());
+                 return false;
+             }
+             label->SetStyle(STYLE_BACKGROUND_COLOR, OPA_TRANSPARENT);
+             label->SetLineBreakMode(UILabel::LINE_BREAK_ELLIPSIS); // 居中
+             label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+             label->SetStyle(STYLE_BACKGROUND_COLOR, OPA_OPAQUE);
+             return true;
+         };
+ 
+         // 创建时间、星期、日期标签
+         if (!createLabel(timerlabel, "timerlabel") ||
+             !createLabel(datelabel, "datelabel"))
+         {
+             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Label creation failed, exiting InitTimeView");
+             return false; // 分配失败
+         }
+ 
+         // 设置标签的位置和字体大小
+         switch (type)
+         {
+         case TIME_DISPLAY_ABOVE:
+             timerlabel->SetPosition(0, 65, 466, 150);
+             timerlabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME_EN , 100);
+             datelabel->SetPosition(83, 186, 300, 60);
+             datelabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME_EN , 26);
+             // weekLabel->SetPosition(246, 196, 200, 60);
+             // weekLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME_EN , 26);
+             break;
+ 
+         case TIME_DISPLAY_BELOW:
+         default: // 默认情况下显示在下方
+             WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "type is unknown, defaulting to TIMEVIEW_DOWN");
+             timerlabel->SetPosition(83, 300, 300, 100);
+             timerlabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME_EN , 65);
+             datelabel->SetPosition(137, 380, 200, 60);
+             datelabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME_EN , 26);
+             // weekLabel->SetPosition(252, 390, 200, 60);
+             // weekLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME_EN , 26);
+             break;
+         }
+ 
+         Add(timerlabel);
+         Add(datelabel);
+         // Add(weekLabel);
+
+        //  timerlabel->SetWorkMode(UISweepClock::WorkMode::NORMAL);
+         return true;
+     }
+     /*
+         界面颜色显示
+         0 白
+         1 黑
+         2 灰
+         3 绿
+         4 橙
+         5 蓝
+ 
+       默认:白
+     */
+     bool MainClockView::InitColor(ColorTypeSet type)
+     {
+         if (!timerlabel ||!datelabel)
+         {
+             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "label is null");
+             return false;
+         }
+ 
+         // 根据传入的颜色类型设置文本颜色
+         switch (type)
+         {
+         case COLOR_BLACK:
+             SetLabelsColor(Color::GetColorFromRGBA(0x00, 0x00, 0x00, 0xff));
+             break;
+         case COLOR_GRAY:
+             SetLabelsColor(Color::GetColorFromRGBA(0xCC, 0xCC, 0xCC, 0xff));
+             break;
+         case COLOR_GREEN:
+             SetLabelsColor(Color::GetColorFromRGBA(0x4F, 0xC3, 0x4C, 0xff));
+             break;
+         case COLOR_ORANGE:
+             SetLabelsColor(Color::GetColorFromRGBA(0xFF, 0x5A, 0x36, 0xff));
+             break;
+         case COLOR_BLUE:
+             SetLabelsColor(Color::GetColorFromRGBA(0x35, 0x49, 0xFF, 0xff));
+             break;
+         case COLOR_WHITE:
+         default: // 默认情况下使用白色
+             SetLabelsColor(Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0xff));
+             break;
+         }
+         return true;
+     }
+ 
+     void MainClockView::SetLabelsColor(ColorType color)
+     {
+         timerlabel->SetTextColor(color);
+         datelabel->SetTextColor(color);
+         // weekLabel->SetTextColor(color);
+     }
+ 
+     /*
+         电量显示 [电池框图片 电池进度条 电池标签]
+         0 不显示图标
+         1 显示黑色
+         2 显示白色
+ 
+         默认:白色
+     */
+     bool MainClockView::InitBatteryView(BatteryDisplayType type)
+     {
+         // 不显示电池 icon
+         if (type == BATTERY_DISPLAY_NONE)
+         {
+             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "no show battery");
+             return false;
+         }
+ 
+         // 创建电池框图像
+         batteryiamge = new UIImageView();
+         if (!batteryiamge)
+         {
+             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "batteryiamge creation failed");
+             return false;
+         }
+ 
+         // 创建电池图标图像
+         batteryicon = new UIImageView();
+         if (!batteryicon)
+         {
+             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "batteryicon creation failed");
+             return false;
+         }
+ 
+         // 创建电池进度条
+         batteryprogress = new UIBoxProgress();
+         if (!batteryprogress)
+         {
+             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "batteryprogress creation failed");
+             return false;
+         }
+ 
+         // 创建电池标签
+         batterylabel = new UILabel();
+         if (!batterylabel)
+         {
+             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "batterylabel creation failed");
+             return false;
+         }
+ 
+         // 设置位置
+         batteryicon->SetPosition(186, 52, 100, 100);
+         batteryiamge->SetPosition(176, 52, 100, 100);
+ 
+         batteryprogress->SetPosition(182, 58, 30, 18);
+         batteryprogress->SetViewId("progress");
+         batteryprogress->SetBackgroundStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);
+         batteryprogress->SetBackgroundStyle(STYLE_BACKGROUND_OPA, 0x00);
+ 
+         batterylabel->SetPosition(228, 52, 200, 60);
+         batterylabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME_EN , 26);
+ 
+         // 设置图标和颜色
+         switch (type) {
+         case BATTERY_DISPLAY_BLACK:
+           batteryiamge->SetSrc(BLACK_BATTERY);
+           batterylabel->SetTextColor(Color::Black());
+           batteryprogress->SetForegroundStyle(STYLE_BACKGROUND_COLOR,
+                                               0xff000000);
+           break;
+         case BATTERY_DISPLAY_WHITE:
+         default:
+           batteryiamge->SetSrc(WHITE_BATTERY);
+           batterylabel->SetTextColor(Color::White());
+           batteryprogress->SetForegroundStyle(STYLE_BACKGROUND_COLOR,
+                                               0xffffffff);
+           break;
+         }
+         batteryicon->SetSrc(CHAGE_BATTERY);
+         batteryicon->SetVisible(false); // 设置不可见
+ 
+         Add(batteryiamge);
+         Add(batterylabel);
+         Add(batteryprogress);
+         Add(batteryicon);
+         return true;
+     }
+ 
+     void MainClockView::UpdateStateShow()
+     {
+        //  if (messageicon_ == nullptr || dialstateicon_ == nullptr)
+        //      return;
+ 
+        //  /*配置未读状态*/
+        //  messageicon_->SetVisible(MainModel::GetInstance().getMessageActiveState());
+        //  /*配置表盘状态*/
+        //  dialstateicon_->SetVisible(true);
+        //  switch (MainModel::GetInstance().getHighestPriorityActiveState())
+        //  {
+        //  case DialState::DO_NOT_DISTURB:
+        //      dialstateicon_->SetSrc(DISTURBICON);
+        //      break;
+        //  case DialState::SLEEP:
+        //      dialstateicon_->SetSrc(SLEEPICON);
+        //      break;
+        //  case DialState::LOCK:
+        //      dialstateicon_->SetSrc(LOCKICON);
+        //      break;
+        //  default:
+        //      dialstateicon_->SetVisible(false);
+        //      break;
+        //  }
+     }
+ 
+     void MainClockView::PreLoad(void)
+     {
+         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainClockView::PreLoad");
+         if (!viewiInitStatus)
+         {
+             InitView();
+           
+             /*增加手表状态图标*/
+             InitImageView(dialstateicon_, 213, 2, 40, 40, "disturbicon", DISTURBICON);
+             // dialstateicon_->SetVisible(false);
+ 
+             /*增加未读图标*/
+             InitImageView(messageicon_, 223, 444, 20, 20, "messageicon_", MESSAGEICON);
+ 
+             UpdateStateShow();
+ 
+             Add(dialstateicon_);
+             Add(messageicon_);
+ 
+             viewiInitStatus = true;
+         }
+ 
+         if (!resLoadStatus)
+         {
+            //  if (PullUpDownView::GetInstance() != nullptr)
+            //  {
+            //      PullUpDownView::GetInstance()->PreLoad();
+            //  }
+            //  if (MessageControlView::GetInstance() != nullptr)
+            //  {
+            //      MessageControlView::GetInstance()->PreLoad();
+            //  }
+             resLoadStatus = true;
+         }
+     }
+ 
+     void MainClockView::UnLoad(void)
+     {
+         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainClockView::UnLoad");
+ 
+         if (resLoadStatus)
+         {
+            //  if (PullUpDownView::GetInstance() != nullptr)
+            //  {
+            //      PullUpDownView::GetInstance()->UnLoad();
+            //  }
+ 
+            //  if (MessageControlView::GetInstance() != nullptr)
+            //  {
+            //      MessageControlView::GetInstance()->UnLoad();
+            //  }
+             resLoadStatus = false;
+         }
+     }
+ 
+     bool MainClockView::InitView(void)
+     {
+         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainClockView::InitView");
+         if (InitClock() == false)
+         {
+             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitClock is error");
+             return false;
+         }
+         InitDateTime(); // 初始化数据
+         SetCoverable(true);
+         return true;
+     }
+ 
+     void MainClockView::InitDateTime(void)
+     {
+         UpdateTime();
+     }
+ 
+     /* 更新时间 */
+     void MainClockView::UpdateTime(void) {  
+         struct tm local_time = {0};  
+         time_t seconds = time(nullptr);  
+ 
+         // Get local time  
+         if (localtime_r(&seconds, &local_time) == nullptr) {  
+             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "get localtime error!");  
+             return;  
+         }  
+ 
+         // Extract hour and minute  
+         uint8_t hour = local_time.tm_hour % HOURS_IN_DAY;
+         uint8_t minute = local_time.tm_min % MINUTES_IN_HOUR;
+         char timebuf[64] = {0};  
+         //时间显示样式
+         #if TIMEFORMAT   
+             if (uapi_dev_runtime_get_time_hour_show_model() == HOUR_FORMAT_12) {
+                 if (hour > HOUR_FORMAT_12) {
+                     hour -= HOUR_FORMAT_12;
+                 }
+             }
+         #endif
+         //是否显示秒
+         #if SECONDTEST  
+             uint8_t second = local_time.tm_sec;
+             sprintf(timebuf, "%02d:%02d:%02d", hour, minute, second);
+         #else
+             sprintf_s(timebuf, sizeof(timebuf), "%02d:%02d", hour, minute);
+         #endif  
+ 
+         // Update display labels  
+         if (timerlabel != nullptr)  
+             timerlabel->SetText(timebuf);  
+ 
+         // Update date and week day  
+         std::string weekStr = Cnweekdays[local_time.tm_wday];  
+         std::string dateStr = std::to_string(local_time.tm_mon + 1) + "月" +  
+                             std::to_string(local_time.tm_mday) + "号 " + weekStr;  
+ 
+         if (datelabel != nullptr)  
+             datelabel->SetText(dateStr.c_str());  
+ 
+         // Update battery status  
+         if (batterySetting == BATTERY_DISPLAY_NONE)  
+             return;  
+ 
+         UpdateBatteryColor();  
+ 
+         float voltage = 0.0F;  
+        //  int power = battery_get_voltage(&voltage);  
+        int power = 100;
+         if (power == power_)  
+             return;  
+ 
+         power_ = power;  
+         // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "batteryprogress power_:%d", power_);  
+ 
+         if (batteryprogress != nullptr && batterylabel != nullptr) {  
+             batteryprogress->SetValue(power_);  
+             std::string batteryStr = std::to_string(power_) + "%";  
+             batterylabel->SetText(batteryStr.c_str());  
+         }  
+     }
+ 
+     void MainClockView::UpdateBatteryColor(void)
+     {
+#ifdef FD230_650
+         bool isCharging = get_charge_stat(); // 获取充电状态
+ 
+         if (isCharging)
+         {
+             if (!isBatteryIconVisible)
+             {
+                 batteryicon->SetVisible(true);
+                 isBatteryIconVisible = true;
+             }
+             SetViewColor(Color::Green().full); // 充电状态为绿色
+             return;
+         }
+         else
+         {
+             if (isBatteryIconVisible)
+             {
+                 batteryicon->SetVisible(false);
+                 isBatteryIconVisible = false;
+             }
+ 
+             if (power_ <= BATTERY_LOW_THRESHOLD)
+             {
+                 SetViewColor(Color::Red().full);
+             }
+             else if (power_ <= BATTERY_MEDIUM_THRESHOLD)
+             {
+                 SetViewColor(Color::Yellow().full);
+             }
+             else
+             {
+                 if (batterySetting == BATTERY_DISPLAY_BLACK)
+                 {
+                     SetViewColor(Color::Black().full);
+                 }
+                 else
+                 {
+                     SetViewColor(Color::White().full);
+                 }
+             }
+         }
+#endif
+     }
+ 
+     void MainClockView::SetViewColor(int64_t color)
+     {
+         if (color == color_)
+         {
+             return;
+         }
+         color_ = color;
+         batteryprogress->SetForegroundStyle(STYLE_BACKGROUND_COLOR, color_);
+     }
+ 
+     /*刷新步数*/
+     void MainClockView::RefreshStep(int step)
+     {
+         if (stepLabel == nullptr)
+             return;
+ 
+         char stepChar[STEP_CHAR_NUM] = {0};
+         (void)sprintf_s(stepChar, STEP_CHAR_NUM, "%d", step);
+         stepLabel->SetText(stepChar);
+     }
+ 
+     /*刷新心率*/
+     void MainClockView::RefreshHeartRate(int value)
+     {
+         if (heartlabel == nullptr)
+             return;
+ 
+         if (value == 0)
+         {
+             heartlabel->SetText("--");
+             return;
+         }
+         char heartRateChar[STEP_CHAR_NUM] = {0};
+         (void)sprintf_s(heartRateChar, STEP_CHAR_NUM, "%d", value);
+         heartlabel->SetText(heartRateChar);
+     }
+ 
+     /*初始化步数*/
+     void MainClockView::InitStepValue()
+     {
+         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainClockView::InitStepValue");
+         uint32_t stepValue;
+         int weekToday = ActivityModel::GetInstance()->GetWeekToday();
+         ActivityModel::GetInstance()->GetStepData((StepDataDistribute)weekToday, &stepValue);
+         char stepChar[STEP_CHAR_NUM] = {0};
+         if (sprintf_s(stepChar, STEP_CHAR_NUM, "%d", stepValue) == -1)
+         {
+             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainClockView::InitStepValue error");
+             return;
+         }
+         if (stepLabel == nullptr)
+         {
+             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainClockView::InitStepValue nullptr");
+             return;
+         }
+         stepLabel->SetText(stepChar);
+     }
+     /*初始化指针图片*/
+     bool MainClockView::InitCenterCircleView(void)
+     {
+ 
+         bigCircle = new Image();
+         if (bigCircle == nullptr)
+         {
+             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bigCircle new fail");
+             return false;
+         }
+         if (LoadClockImage(bigCircle, CLOCK_CLASSIC_GEOMETRY) == false)
+         {
+             return false;
+         }
+ 
+         medCircle = new Image();
+         if (medCircle == nullptr)
+         {
+             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "medCircle new fail");
+             return false;
+         }
+         if (LoadClockImage(medCircle, CLOCK_CLASSIC_GEOMETRY) == false)
+         {
+             return false;
+         }
+ 
+         smallCircle = new Image();
+         if (smallCircle == nullptr)
+         {
+             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "smallCircle new fail");
+             return false;
+         }
+         if (LoadClockImage(smallCircle, CLOCK_CLASSIC_GEOMETRY) == false)
+         {
+             return false;
+         }
+ 
+         return true;
+     }
+ 
+     bool MainClockView::InitHandView(void)
+     {
+         secondHand = new Image();
+         if (secondHand == nullptr)
+         {
+             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "secondHand new fail");
+             return false;
+         }
+         if (LoadClockImage(secondHand, CLOCK_CLOCK_SECOND) == false)
+         {
+             return false;
+         }
+ 
+         minuteHand = new Image();
+         if (minuteHand == nullptr)
+         {
+             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "minuteHand new fail");
+             return false;
+         }
+         if (LoadClockImage(minuteHand, CLOCK_CLOCK_MINUTE) == false)
+         {
+             return false;
+         }
+         hourHand = new Image();
+         if (hourHand == nullptr)
+         {
+             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "hourHand new fail");
+             return false;
+         }
+         if (LoadClockImage(hourHand, CLOCK_CLOCK_HOUR) == false)
+         {
+             return false;
+         }
+ 
+         hand24Hour = new Image();
+         if (hand24Hour == nullptr)
+         {
+             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "hand24Hour new fail");
+             return false;
+         }
+         if (LoadClockImage(hand24Hour, CLOCK_CLASSIC_GEOMETRY) == false)
+         {
+             return false;
+         }
+ 
+         return true;
+     }
+ 
+     bool MainClockView::LoadClockImage(Image *view, uint32_t resId)
+     {
+ 
+         std::string file = CLOCK_IAMGES;
+         ImageInfo *image = ImageCacheManager::GetInstance().LoadOneInMultiRes(resId, file);
+         if (image == nullptr)
+         {
+             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LoadClockImage %x fail", resId);
+             return false;
+         }
+         view->SetSrc(image);
+ 
+         return true;
+     }
+ 
+     bool MainClockView::LoadClockImage(UIImageView *view, uint32_t resId)
+     {
+         std::string file = CLOCK_IAMGES;
+         ImageInfo *image = ImageCacheManager::GetInstance().LoadOneInMultiRes(resId, file);
+         if (image == nullptr)
+         {
+             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LoadClockImage %x fail", resId);
+             return false;
+         }
+         view->SetSrc(image);
+         return true;
+     }
+ }
+ 
\ No newline at end of file
index fd98c26..93585ef 100644 (file)
@@ -38,9 +38,9 @@ std::map<std::string, AppViewId> g_jumpView = { { MAIN_CLICK_WEATHER, VIEW_MAIN
                                                 { DROPDOWN_CLICK_ALARM, VIEW_MAIN_ALARM },           // 闹钟app
                                                 { DROPDOWN_CLICK_SETTING, VIEW_SETTING } };          // 设置界面
 
-std::map<std::string, int> g_chanColor = { { DROPDOWN_CLICK_FINDMYPHONE, DROPDOWN_DROPDOWN_FIND_PHONE_B },
-                                           { DROPDOWN_CLICK_ALARM, DROPDOWN_DROPDOWN_ALARM_B },
-                                           { DROPDOWN_CLICK_SETTING, DROPDOWN_DROPDOWN_SETTING_B } };
+// std::map<std::string, int> g_chanColor = { { DROPDOWN_CLICK_FINDMYPHONE, DROPDOWN_DROPDOWN_FIND_PHONE_B },
+//                                            { DROPDOWN_CLICK_ALARM, DROPDOWN_DROPDOWN_ALARM_B },
+//                                            { DROPDOWN_CLICK_SETTING, DROPDOWN_DROPDOWN_SETTING_B } };
 
 static MainPresenterSample *g_pMainPresenterSample = nullptr;
 
@@ -108,44 +108,44 @@ MainPresenterState MainPresenterSample::GetMainPresenterState(void)
 
 bool MainPresenterSample::OnClick(UIView &view, const ClickEvent &event)
 {
-    UNUSED(event);
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "StatusButtonClickListener: %s", view.GetViewId());
-    std::string curViewId = view.GetViewId();
-
-    UIImageView *imgView = static_cast<UIImageView *>(&view);
-    if (HealthModel::GetInstance() == nullptr) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "health model nullptr");
-        return false;
-    }
-    if (curViewId == DROPDOWN_CLICK_DONOTDISTURB) {
-        if (HealthModel::GetInstance()->GetDntDistStatus() == 0) {
-            ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, imgView, DROPDOWN_DROPDOWN_DN_DISTURB_B);
-            HealthModel::GetInstance()->UpdateDntDistStatus(1);
-        } else {
-            ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, imgView, DROPDOWN_DROPDOWN_DN_DISTURB);
-            HealthModel::GetInstance()->UpdateDntDistStatus(0);
-        }
-    }
-    if (curViewId == DROPDOWN_CLICK_BRIGHTENSCREEN) {
-        if (HealthModel::GetInstance()->GetBriScrStatus() == 0) {
-            ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, imgView, DROPDOWN_DROPDOWN_BRI_SCREEN_B);
-            HealthModel::GetInstance()->UpdateBriScrStatus(1);
-            ScreenOffEnable(0);
-        } else {
-            ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, imgView, DROPDOWN_DROPDOWN_BRI_SCREEN);
-            HealthModel::GetInstance()->UpdateBriScrStatus(0);
-            ScreenOffEnable(1);
-        }
-    }
-
-    if (g_jumpView.count(curViewId) != 0) {
-        if (g_jumpView[curViewId] == VIEW_SETTING) {
-            NativeAbility::GetInstance().ChangeSlice(g_jumpView[curViewId], TransitionType::TRANSITION_INVALID,
-                gSliceDefaultPriority, true);
-        } else {
-            NativeAbility::GetInstance().ChangeSlice(g_jumpView[curViewId]);
-        }
-    }
+    // UNUSED(event);
+    // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "StatusButtonClickListener: %s", view.GetViewId());
+    // std::string curViewId = view.GetViewId();
+
+    // UIImageView *imgView = static_cast<UIImageView *>(&view);
+    // if (HealthModel::GetInstance() == nullptr) {
+    //     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "health model nullptr");
+    //     return false;
+    // }
+    // if (curViewId == DROPDOWN_CLICK_DONOTDISTURB) {
+    //     if (HealthModel::GetInstance()->GetDntDistStatus() == 0) {
+    //         ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, imgView, DROPDOWN_DROPDOWN_DN_DISTURB_B);
+    //         HealthModel::GetInstance()->UpdateDntDistStatus(1);
+    //     } else {
+    //         ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, imgView, DROPDOWN_DROPDOWN_DN_DISTURB);
+    //         HealthModel::GetInstance()->UpdateDntDistStatus(0);
+    //     }
+    // }
+    // if (curViewId == DROPDOWN_CLICK_BRIGHTENSCREEN) {
+    //     if (HealthModel::GetInstance()->GetBriScrStatus() == 0) {
+    //         ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, imgView, DROPDOWN_DROPDOWN_BRI_SCREEN_B);
+    //         HealthModel::GetInstance()->UpdateBriScrStatus(1);
+    //         ScreenOffEnable(0);
+    //     } else {
+    //         ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, imgView, DROPDOWN_DROPDOWN_BRI_SCREEN);
+    //         HealthModel::GetInstance()->UpdateBriScrStatus(0);
+    //         ScreenOffEnable(1);
+    //     }
+    // }
+
+    // if (g_jumpView.count(curViewId) != 0) {
+    //     if (g_jumpView[curViewId] == VIEW_SETTING) {
+    //         NativeAbility::GetInstance().ChangeSlice(g_jumpView[curViewId], TransitionType::TRANSITION_INVALID,
+    //             gSliceDefaultPriority, true);
+    //     } else {
+    //         NativeAbility::GetInstance().ChangeSlice(g_jumpView[curViewId]);
+    //     }
+    // }
     return true;
 }
 
index 34eb21d..d2e8bf9 100644 (file)
@@ -116,11 +116,11 @@ void PullUpDownView::InitSubViewImg(void)
         return;
     }
     dnotDisturb->SetPosition(DISTURB_IMG_X, DISTURB_IMG_Y);
-    if (HealthModel::GetInstance()->GetDntDistStatus() == 0) {
-        ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dnotDisturb, DROPDOWN_DROPDOWN_DN_DISTURB);
-    } else {
-        ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dnotDisturb, DROPDOWN_DROPDOWN_DN_DISTURB_B);
-    }
+    // if (HealthModel::GetInstance()->GetDntDistStatus() == 0) {
+    //     ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dnotDisturb, DROPDOWN_DROPDOWN_DN_DISTURB);
+    // } else {
+    //     ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dnotDisturb, DROPDOWN_DROPDOWN_DN_DISTURB_B);
+    // }
     dnotDisturb->SetViewId(DROPDOWN_CLICK_DONOTDISTURB);
     dnotDisturb->SetTouchable(true);
     dnotDisturb->SetOnClickListener(clickListener); // 进入勿扰模式
@@ -131,11 +131,11 @@ void PullUpDownView::InitSubViewImg(void)
         return;
     }
     briScreen->SetPosition(SCREEN_IMG_X, SCREEN_IMG_Y);
-    if (HealthModel::GetInstance()->GetBriScrStatus() == 0) {
-        ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, briScreen, DROPDOWN_DROPDOWN_BRI_SCREEN);
-    } else {
-        ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, briScreen, DROPDOWN_DROPDOWN_BRI_SCREEN_B);
-    }
+    // if (HealthModel::GetInstance()->GetBriScrStatus() == 0) {
+    //     ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, briScreen, DROPDOWN_DROPDOWN_BRI_SCREEN);
+    // } else {
+    //     ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, briScreen, DROPDOWN_DROPDOWN_BRI_SCREEN_B);
+    // }
     briScreen->SetViewId(DROPDOWN_CLICK_BRIGHTENSCREEN);
     briScreen->SetTouchable(true);
     briScreen->SetOnClickListener(clickListener); // 进入亮屏模式
@@ -143,89 +143,89 @@ void PullUpDownView::InitSubViewImg(void)
 
 void PullUpDownView::InitViewImg(void)
 {
-    InitSubViewImg();
+    // InitSubViewImg();
 
-    finPhone = new UIImageView();
-    if (finPhone == nullptr) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "finPhone new fail");
-        return;
-    }
-    finPhone->SetPosition(PHONE_IMG_X, PHONE_IMG_Y);
-    ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, finPhone, DROPDOWN_DROPDOWN_FIND_PHONE);
-    finPhone->SetViewId(DROPDOWN_CLICK_FINDMYPHONE); // 找手机界面 DROP_DOWN_FIND_PHONE
-    finPhone->SetTouchable(true);
-    finPhone->SetOnClickListener(clickListener);
+    // finPhone = new UIImageView();
+    // if (finPhone == nullptr) {
+    //     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "finPhone new fail");
+    //     return;
+    // }
+    // finPhone->SetPosition(PHONE_IMG_X, PHONE_IMG_Y);
+    // ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, finPhone, DROPDOWN_DROPDOWN_FIND_PHONE);
+    // finPhone->SetViewId(DROPDOWN_CLICK_FINDMYPHONE); // 找手机界面 DROP_DOWN_FIND_PHONE
+    // finPhone->SetTouchable(true);
+    // finPhone->SetOnClickListener(clickListener);
 
-    droAlarm = new UIImageView();
-    if (droAlarm == nullptr) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "droAlarm new fail");
-        return;
-    }
-    droAlarm->SetPosition(ALARM_IMG_X, ALARM_IMG_Y);
-    ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, droAlarm, DROPDOWN_DROPDOWN_ALARM);
-    droAlarm->SetViewId(DROPDOWN_CLICK_ALARM); // 进入闹钟App DROP_DOWN_ALARM
-    droAlarm->SetTouchable(true);
-    droAlarm->SetOnClickListener(clickListener);
+    // droAlarm = new UIImageView();
+    // if (droAlarm == nullptr) {
+    //     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "droAlarm new fail");
+    //     return;
+    // }
+    // droAlarm->SetPosition(ALARM_IMG_X, ALARM_IMG_Y);
+    // ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, droAlarm, DROPDOWN_DROPDOWN_ALARM);
+    // droAlarm->SetViewId(DROPDOWN_CLICK_ALARM); // 进入闹钟App DROP_DOWN_ALARM
+    // droAlarm->SetTouchable(true);
+    // droAlarm->SetOnClickListener(clickListener);
 
-    droSetting = new UIImageView();
-    if (droSetting == nullptr) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "droSetting new fail");
-        return;
-    }
-    droSetting->SetPosition(SETTING_IMG_X, SETTING_IMG_Y);
-    ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, droSetting, DROPDOWN_DROPDOWN_SETTING);
-    droSetting->SetViewId(DROPDOWN_CLICK_SETTING); // 进入设置界面 DROP_DOWN_SETTING
-    droSetting->SetTouchable(true);
-    droSetting->SetOnClickListener(clickListener);
+    // droSetting = new UIImageView();
+    // if (droSetting == nullptr) {
+    //     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "droSetting new fail");
+    //     return;
+    // }
+    // droSetting->SetPosition(SETTING_IMG_X, SETTING_IMG_Y);
+    // ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, droSetting, DROPDOWN_DROPDOWN_SETTING);
+    // droSetting->SetViewId(DROPDOWN_CLICK_SETTING); // 进入设置界面 DROP_DOWN_SETTING
+    // droSetting->SetTouchable(true);
+    // droSetting->SetOnClickListener(clickListener);
 }
 
 void PullUpDownView::InitViewLable(void)
 {
-    dnotDisturbLable = new UILabel();
-    if (dnotDisturbLable == nullptr) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dnotDisturbLable new fail");
-        return;
-    }
-    dnotDisturbLable->SetPosition(DISTURB_LABEL_X, DISTURB_LABEL_Y, TEXT_WIDTH, TEXT_HEIGHT);
-    dnotDisturbLable->SetText("勿扰");
-    dnotDisturbLable->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_DEFAULT_SIZE);
-    dnotDisturbLable->SetStyle(STYLE_BACKGROUND_COLOR, OPA_TRANSPARENT);
-    briScreenLable = new UILabel();
-    if (briScreenLable == nullptr) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "briScreenLable new fail");
-        return;
-    }
-    briScreenLable->SetPosition(SCREEN_LABEL_X, SCREEN_LABEL_Y, TEXT_WIDTH, TEXT_HEIGHT);
-    briScreenLable->SetText("亮屏");
-    briScreenLable->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_DEFAULT_SIZE);
-    briScreenLable->SetStyle(STYLE_BACKGROUND_COLOR, OPA_TRANSPARENT);
-    finPhoneLable = new UILabel();
-    if (finPhoneLable == nullptr) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "finPhoneLable new fail");
-        return;
-    }
-    finPhoneLable->SetPosition(PHONE_LABEL_X, PHONE_LABEL_Y, TEXT_WIDTH, TEXT_HEIGHT);
-    finPhoneLable->SetText("找手机");
-    finPhoneLable->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_DEFAULT_SIZE);
-    finPhoneLable->SetStyle(STYLE_BACKGROUND_COLOR, OPA_TRANSPARENT);
-    droAlarmLable = new UILabel();
-    if (finPhoneLable == nullptr) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "finPhoneLable new fail");
-        return;
-    }
-    droAlarmLable->SetPosition(ALARM_LABEL_X, ALARM_LABEL_Y, TEXT_WIDTH, TEXT_HEIGHT);
-    droAlarmLable->SetText("闹钟");
-    droAlarmLable->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_DEFAULT_SIZE);
-    droAlarmLable->SetStyle(STYLE_BACKGROUND_COLOR, OPA_TRANSPARENT);
-    droSettingLable = new UILabel();
-    if (droSettingLable == nullptr) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "droSettingLable new fail");
-        return;
-    }
-    droSettingLable->SetPosition(SETTING_LABEL_X, SETTING_LABEL_Y, TEXT_WIDTH, TEXT_HEIGHT);
-    droSettingLable->SetText("设置");
-    droSettingLable->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_DEFAULT_SIZE);
-    droSettingLable->SetStyle(STYLE_BACKGROUND_COLOR, OPA_TRANSPARENT);
+    // dnotDisturbLable = new UILabel();
+    // if (dnotDisturbLable == nullptr) {
+    //     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dnotDisturbLable new fail");
+    //     return;
+    // }
+    // dnotDisturbLable->SetPosition(DISTURB_LABEL_X, DISTURB_LABEL_Y, TEXT_WIDTH, TEXT_HEIGHT);
+    // dnotDisturbLable->SetText("勿扰");
+    // dnotDisturbLable->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_DEFAULT_SIZE);
+    // dnotDisturbLable->SetStyle(STYLE_BACKGROUND_COLOR, OPA_TRANSPARENT);
+    // briScreenLable = new UILabel();
+    // if (briScreenLable == nullptr) {
+    //     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "briScreenLable new fail");
+    //     return;
+    // }
+    // briScreenLable->SetPosition(SCREEN_LABEL_X, SCREEN_LABEL_Y, TEXT_WIDTH, TEXT_HEIGHT);
+    // briScreenLable->SetText("亮屏");
+    // briScreenLable->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_DEFAULT_SIZE);
+    // briScreenLable->SetStyle(STYLE_BACKGROUND_COLOR, OPA_TRANSPARENT);
+    // finPhoneLable = new UILabel();
+    // if (finPhoneLable == nullptr) {
+    //     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "finPhoneLable new fail");
+    //     return;
+    // }
+    // finPhoneLable->SetPosition(PHONE_LABEL_X, PHONE_LABEL_Y, TEXT_WIDTH, TEXT_HEIGHT);
+    // finPhoneLable->SetText("找手机");
+    // finPhoneLable->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_DEFAULT_SIZE);
+    // finPhoneLable->SetStyle(STYLE_BACKGROUND_COLOR, OPA_TRANSPARENT);
+    // droAlarmLable = new UILabel();
+    // if (finPhoneLable == nullptr) {
+    //     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "finPhoneLable new fail");
+    //     return;
+    // }
+    // droAlarmLable->SetPosition(ALARM_LABEL_X, ALARM_LABEL_Y, TEXT_WIDTH, TEXT_HEIGHT);
+    // droAlarmLable->SetText("闹钟");
+    // droAlarmLable->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_DEFAULT_SIZE);
+    // droAlarmLable->SetStyle(STYLE_BACKGROUND_COLOR, OPA_TRANSPARENT);
+    // droSettingLable = new UILabel();
+    // if (droSettingLable == nullptr) {
+    //     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "droSettingLable new fail");
+    //     return;
+    // }
+    // droSettingLable->SetPosition(SETTING_LABEL_X, SETTING_LABEL_Y, TEXT_WIDTH, TEXT_HEIGHT);
+    // droSettingLable->SetText("设置");
+    // droSettingLable->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_DEFAULT_SIZE);
+    // droSettingLable->SetStyle(STYLE_BACKGROUND_COLOR, OPA_TRANSPARENT);
 }
 
 void PullUpDownView::InitViewInfo(void)
@@ -241,11 +241,11 @@ void PullUpDownView::InitViewInfo(void)
         return;
     }
 
-    if (SettingModel::GetInstance().GetBlueToothConnectStatus()) {
-        ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, bluetooth, DROPDOWN_DROPDOWN_BLUETOOTH_B);
-    } else {
-        ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, bluetooth, DROPDOWN_DROPDOWN_BLUETOOTH);
-    }
+    // if (SettingModel::GetInstance().GetBlueToothConnectStatus()) {
+    //     ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, bluetooth, DROPDOWN_DROPDOWN_BLUETOOTH_B);
+    // } else {
+    //     ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, bluetooth, DROPDOWN_DROPDOWN_BLUETOOTH);
+    // }
 
     battery = new UIImageView(); // 电量状态显示
     if (battery == nullptr) {
@@ -253,7 +253,7 @@ void PullUpDownView::InitViewInfo(void)
         return;
     }
     battery->SetPosition(BATTERY_IMG_X, BATTERY_IMG_Y);
-    ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, battery, DROPDOWN_DROPDOWN_BATTERY);
+    // ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, battery, DROPDOWN_DROPDOWN_BATTERY);
     batteryLable = new UILabel();
     if (batteryLable == nullptr) {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "batteryLable new fail");
@@ -279,9 +279,9 @@ bool PullUpDownView::InitView()
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::InitDropDownView");
     clickListener = (UIView::OnClickListener *)OHOS::MainPresenterSample::GetInstance();
 
-    InitViewImg();
-    InitViewLable();
-    InitViewInfo();
+    // InitViewImg();
+    // InitViewLable();
+    // InitViewInfo();
 
     Add(dnotDisturb);
     Add(dnotDisturbLable);
@@ -318,11 +318,11 @@ void PullUpDownView::UpdateBlueToothStatus(int status)
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bluetooth nullptr");
         return;
     }
-    if (status == 1) {
-        ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, bluetooth, DROPDOWN_DROPDOWN_BLUETOOTH_B);
-    } else {
-        ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, bluetooth, DROPDOWN_DROPDOWN_BLUETOOTH);
-    }
+    // if (status == 1) {
+    //     ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, bluetooth, DROPDOWN_DROPDOWN_BLUETOOTH_B);
+    // } else {
+    //     ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, bluetooth, DROPDOWN_DROPDOWN_BLUETOOTH);
+    // }
     bluetooth->Invalidate();
     return;
 }