#1078,解决,闹钟是关闭状态,还会响起闹铃bug
authorluozheng <1732036298@qq.com>
Tue, 29 Oct 2024 08:27:47 +0000 (16:27 +0800)
committeraliyun:aliyun0384013184_1JeGs <3449750381@qq.com>
Tue, 29 Oct 2024 08:30:53 +0000 (08:30 +0000)
code/sdk/application/wearable/fd230app/nativeui/alarm/include/AlarmJudgeView.h
code/sdk/application/wearable/fd230app/nativeui/alarm/include/MainAlarmView.h
code/sdk/application/wearable/fd230app/nativeui/alarm/src/AlarmJudgeView.cpp
code/sdk/application/wearable/fd230app/nativeui/alarm/src/MainAlarmView.cpp

index f6349e4..9147ad4 100644 (file)
@@ -1,8 +1,10 @@
 /*\r
- * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.\r
- * Description: Alarm\r
- * Author:\r
- * Create: 2021-09-11\r
+ * @Author: luozheng 1732036298@qq.com\r
+ * @Date: 2024-09-02 20:04:12\r
+ * @LastEditors: luozheng 1732036298@qq.com\r
+ * @LastEditTime: 2024-10-29 16:26:10\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/alarm/include/AlarmJudgeView.h\r
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE\r
  */\r
 \r
 #ifndef ALARM_JUDGE_VIEW_H\r
@@ -32,16 +34,7 @@ public:
     AlarmJudgeView();\r
     virtual ~AlarmJudgeView();\r
     UIScrollView *InitJudgeView();\r
-    void OnSetUpView();\r
-    void OnTearDownView();\r
-    void OnStop();\r
 private:\r
-    // void CreateImage(void);\r
-    // UIScrollView *container{nullptr};\r
-    // UILabel *labelText{nullptr};\r
-    // UIImageView *imageViewDelete{nullptr};\r
-    // UIImageView *imageViewTrue{nullptr};\r
-\r
     UIScrollView * InitDeleteScreen();\r
     void DeinitDeleteScreen();\r
     UIScrollView * DeleteGroup_{nullptr};\r
index 3bd0e33..77e39fc 100644 (file)
@@ -33,8 +33,6 @@
 #include "AlarmClockModel.h"
 
 namespace OHOS {
-constexpr int16_t D_CLOCK_Y = 210;
-constexpr int16_t LABEL_ZERO_Y = 270;
 constexpr int16_t ALARM_INTER_ADD = 120; // 120;
 
 class AlarmPresenter;
@@ -49,7 +47,6 @@ public:
     void OnStop() override;
     void ChangeView(int16_t hideView, int16_t showView);
     void DropView(UIView& view);
-    // void CreateImage();
     void RefreshAlarm(void);
     bool ChangeMainAlarm(int16_t thisView);
     bool ChangeConfig(int16_t thisView);
@@ -69,9 +66,10 @@ private:
     void AlarmAddButtonCreate(void);
     void AlarmAddButtonUpdate(uint8_t count);
 
-    AlarmConfigView *configView{nullptr};
-    AlarmSetTimeView *setTimeView{nullptr};
-    AlarmSetWeekView *setWeekView{nullptr};
+private:
+    AlarmConfigView *configView{nullptr}; //编辑闹钟页面【包括更改时间和更改星期】
+    AlarmSetTimeView *setTimeView{nullptr};//时间设置页面
+    AlarmSetWeekView *setWeekView{nullptr};//星期设置页面
     AlarmJudgeView *judgeView{nullptr};
     AlarmNewTimeView *newTimeView{nullptr};
     AlarmMaxClock *maxClockView{nullptr};
@@ -80,20 +78,17 @@ private:
     UIViewGroup * SwipeViewItem_[6][2]{nullptr};
     UILabelButtonExt * DeleteButton_[6]{nullptr};
     UIToggleButton *statusButton[6]{nullptr}; // 6代表界面中最多存在六个按键
-    // UIImageView *addButton{nullptr};
     UIDigitalClock *dClock[6]{nullptr}; // 6代表界面中最多存在六个闹钟
     UILabelExt *dLabel[6]{nullptr}; // 6代表界面中显示闹钟日期的控件个数
     UIScrollView *container[7]{nullptr}; // 7代表容器存有主界面以及跳转的四个副界面,用于跳转后显示或隐藏界面
     uint8_t alarmHour, alarmMin;
     int8_t dClockNum{-1};
     int16_t weekStatus{-1};
-    // int16_t alarmPositionY{D_CLOCK_Y};
-    // int16_t labelPositionY{LABEL_ZERO_Y};
-    int16_t alarmInterval{ALARM_INTER_ADD};
+    int16_t alarmInterval{ALARM_INTER_ADD}; // 闹钟之间的间隔
     bool reflashStatus{false};
     UILabelExt * TitleLabelExt_{nullptr}; 
     UILabelButtonExt * AddButton_{nullptr};
-    UICheckBox::OnChangeListener *statusListener{nullptr};
+    UICheckBox::OnChangeListener *statusListener[6]{nullptr};
     bool viewInitstatus_{false};
 
     #define ALARM_DELETE_IMAGE "/user/res/Alarm/alarm_delete.bin"
index c8d5cb4..82d725b 100644 (file)
@@ -5,30 +5,14 @@
  * Create: 2021-09-11\r
  */\r
 \r
-#include "AlarmJudgeView.h"\r
+#include "alarm/include/AlarmJudgeView.h"\r
 #include "UiConfig.h"\r
 #include <string>\r
-#include "AlarmPresenter.h"\r
+#include "alarm/include/AlarmPresenter.h"\r
 #include "ui_resource_string.h"\r
 \r
 namespace OHOS {\r
-#define DELETE_INETERFACES "是否删除此闹钟?"\r
-\r
 static AlarmJudgeView *g_JudgeView = nullptr;\r
-constexpr int16_t CONTAINER_X = 0;\r
-constexpr int16_t CONTAINER_Y = 0;\r
-constexpr int16_t MAX_LABEL_X_LEN = 120;\r
-constexpr int16_t MAX_LABEL_Y_LEN = 160;\r
-constexpr int16_t MAX_LABEL_LENGTH_LEN = 400;\r
-constexpr int16_t MAX_LABEL_WIDTH_LEN = 50;\r
-constexpr int16_t MAX_LABEL_FONT_LEN = 30;\r
-constexpr int16_t MAX_IMAGE_DELETE_X_LEN = 90;\r
-constexpr int16_t MAX_IMAGE_DELETE_Y_LEN = 300;\r
-constexpr int16_t MAX_IMAGE_TRUE_X_LEN = 270;\r
-constexpr int16_t MAX_IMAGE_TRUE_Y_LEN = 300;\r
-constexpr int16_t MAX_IMAGE_DELETE_WIDTH_LEN = 91;\r
-constexpr int16_t MAX_IMAGE_TRUE_WIDTH_LEN = 91;\r
-\r
 AlarmJudgeView::AlarmJudgeView()\r
 {\r
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmJudgeView::AlarmJudgeView");\r
@@ -38,76 +22,12 @@ AlarmJudgeView::AlarmJudgeView()
 AlarmJudgeView::~AlarmJudgeView()\r
 {\r
     DeinitDeleteScreen();\r
-\r
-    // container->RemoveAll();\r
-    // delete labelText;\r
-    // labelText = nullptr;\r
-    // delete imageViewDelete;\r
-    // imageViewDelete = nullptr;\r
-    // delete container;\r
-    // container = nullptr;\r
     g_JudgeView = nullptr;\r
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmJudgeView::~AlarmJudgeView");\r
 }\r
 \r
-// void AlarmJudgeView::CreateImage(void)\r
-// {\r
-//     UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::AlarmPresenter::GetInstance();\r
-//     if (clickListener == nullptr) {\r
-//         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmJudgeView:: new OnClickListener fail");\r
-//         return;\r
-//     }\r
-//     imageViewDelete = new UIImageView();\r
-//     if (imageViewDelete == nullptr) {\r
-//         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmJudgeView:: new imageViewDelete fail");\r
-//         return;\r
-//     }\r
-//     imageViewDelete->SetPosition(MAX_IMAGE_DELETE_X_LEN, MAX_IMAGE_DELETE_Y_LEN);\r
-//     imageViewDelete->SetSrc(ALARM_DELETE_ADD_PATH);\r
-//     imageViewDelete->SetViewId(JUDGE_DELETE);\r
-//     imageViewDelete->SetWidth(MAX_IMAGE_DELETE_WIDTH_LEN);\r
-//     imageViewDelete->SetTouchable(true);\r
-//     imageViewDelete->SetOnClickListener(clickListener);\r
-//     container->Add(imageViewDelete);\r
-\r
-//     imageViewTrue = new UIImageView();\r
-//     if (imageViewTrue == nullptr) {\r
-//         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmJudgeView:: new imageViewTrue fail");\r
-//         return;\r
-//     }\r
-//     imageViewTrue->SetPosition(MAX_IMAGE_TRUE_X_LEN, MAX_IMAGE_TRUE_Y_LEN); // 50 : size\r
-//     imageViewTrue->SetSrc(ALARM_TRUE_ADD_PATH);\r
-//     imageViewTrue->SetViewId(JUDGE_TRUE);\r
-//     imageViewTrue->SetWidth(MAX_IMAGE_TRUE_WIDTH_LEN);\r
-//     imageViewTrue->SetTouchable(true);\r
-//     imageViewTrue->SetOnClickListener(clickListener);\r
-//     container->Add(imageViewTrue);\r
-// }\r
-\r
 UIScrollView *AlarmJudgeView::InitJudgeView(void)\r
 {\r
-    // container = new UIScrollView();\r
-    // if (container == nullptr) {\r
-    //     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmJudgeView:: new container fail");\r
-    //     return nullptr;\r
-    // }\r
-    // container->SetPosition(CONTAINER_X, CONTAINER_Y);\r
-    // container->SetWidth(HORIZONTAL_RESOLUTION);\r
-    // container->SetHeight(VERTICAL_RESOLUTION);\r
-\r
-    // labelText = new UILabel();\r
-    // if (container == nullptr) {\r
-    //     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmJudgeView:: new labelText fail");\r
-    //     return nullptr;\r
-    // }\r
-    // labelText->SetPosition(MAX_LABEL_X_LEN, MAX_LABEL_Y_LEN, MAX_LABEL_LENGTH_LEN, MAX_LABEL_WIDTH_LEN);\r
-    // labelText->SetText(DELETE_INETERFACES);\r
-    // labelText->SetFont(DEFAULT_VECTOR_FONT_FILENAME, MAX_LABEL_FONT_LEN);\r
-    // container->Add(labelText);\r
-\r
-    // CreateImage();\r
-    // return container;\r
-\r
     return InitDeleteScreen();\r
 }\r
 \r
@@ -153,12 +73,8 @@ UIScrollView * AlarmJudgeView::InitDeleteScreen()
             return nullptr;\r
 \r
         DeleteGroup_->SetPosition(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);\r
-        // DeleteGroup_->SetViewId(SCHEDULE_ViewId_DeleteGroup_);\r
         DeleteGroup_->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);\r
         DeleteGroup_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);\r
-        // DeleteGroup_->SetTouchable(true);\r
-        // DeleteGroup_->SetDraggable(true);\r
-        // DeleteGroup_->SetOnDragListener(presenter_);\r
 \r
         if(nullptr == DeleteTitleLabelExt_)\r
         {\r
index 7318afc..76382d3 100644 (file)
@@ -67,8 +67,6 @@ MainAlarmView::~MainAlarmView()
     alarmMin = 0;
     dClockNum = 0;
     weekStatus = 0;
-    // delete addButton;
-    // addButton = nullptr;
     if(group)
     {
         group->ClearFocus();
@@ -105,11 +103,6 @@ MainAlarmView::~MainAlarmView()
         delete maxClockView;
         maxClockView = nullptr;
     }
-    if(statusListener)
-    {
-        delete statusListener;
-        statusListener = nullptr;
-    }
     if(nullptr != TitleLabelExt_)
     {
         delete TitleLabelExt_;
@@ -142,6 +135,11 @@ MainAlarmView::~MainAlarmView()
                     delete dLabel[alarmNum];
                     dLabel[alarmNum] = nullptr;
                 }
+                if(statusListener[alarmNum] != nullptr)
+                {
+                    delete statusListener[alarmNum];
+                    statusListener[alarmNum] = nullptr;
+                }
 
                 delete SwipeViewItem_[alarmNum][0];
                 SwipeViewItem_[alarmNum][0] = nullptr;
@@ -307,14 +305,14 @@ UIViewGroup * MainAlarmView::NewClockCtlExt(int16_t alarmNum, uint8_t index)
         // statusButton[alarmNum]->SetStyle(STYLE_BACKGROUND_OPA, alarmNum);
         // statusButton[alarmNum]->SetStyle(STYLE_BACKGROUND_COLOR, 0xff29b862);
         // statusButton[alarmNum]->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
-        if(statusListener == nullptr){
-            statusListener = new AlarmStatusBtnChangeListener(reinterpret_cast<UIView*>(statusButton[alarmNum]));
+        if(statusListener[alarmNum] == nullptr){
+            statusListener[alarmNum] = new AlarmStatusBtnChangeListener(reinterpret_cast<UIView*>(statusButton[alarmNum]));
             if (statusListener == nullptr) {
                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainAlarmView::NewStatusButton statusListener nullptr!");
                 return nullptr;
             }
         }
-        statusButton[alarmNum]->SetOnChangeListener((UICheckBox::OnChangeListener *)statusListener);
+        statusButton[alarmNum]->SetOnChangeListener((UICheckBox::OnChangeListener *)statusListener[alarmNum]);
         /* ----------------------------------- Add ---------------------------------- */
         TempGroup_->Add(dClock[alarmNum]);
         TempGroup_->Add(dLabel[alarmNum]);