From e3512a12e6d2ec7c461ccfd15e9fba8cc15b6f9d Mon Sep 17 00:00:00 2001 From: luozheng <1732036298@qq.com> Date: Tue, 15 Oct 2024 20:08:11 +0800 Subject: [PATCH] =?utf8?q?=E5=9C=A8=E9=97=B9=E9=92=9F=E5=8A=9F=E8=83=BD?= =?utf8?q?=E4=B8=8D=E5=8F=98=E6=83=85=E5=86=B5=E5=96=9C=E7=88=B1=EF=BC=8C?= =?utf8?q?=E6=B7=BB=E5=8A=A0=E6=96=B0=E9=97=B9=E9=92=9F=E6=B7=BB=E5=8A=A0?= =?utf8?q?=E5=88=A4=E6=96=AD=EF=BC=8C=E5=85=B6=E4=BB=96=E7=95=8C=E9=9D=A2?= =?utf8?q?=E5=88=A0=E9=99=A4=E6=97=A0=E7=94=A8=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../nativeui/alarm/include/AlarmPresenter.h | 27 ++-- .../nativeui/alarm/include/AlarmSetWeekView.h | 13 +- .../nativeui/alarm/src/AlarmClockModel.cpp | 20 ++- .../nativeui/alarm/src/AlarmNewTimeView.cpp | 8 +- .../nativeui/alarm/src/AlarmPresenter.cpp | 67 +++++----- .../nativeui/alarm/src/AlarmSetWeekView.cpp | 116 ++++-------------- 6 files changed, 102 insertions(+), 149 deletions(-) diff --git a/code/sdk/application/wearable/fd230app/nativeui/alarm/include/AlarmPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/alarm/include/AlarmPresenter.h index 12906bb74..574c99966 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/alarm/include/AlarmPresenter.h +++ b/code/sdk/application/wearable/fd230app/nativeui/alarm/include/AlarmPresenter.h @@ -63,8 +63,9 @@ constexpr char* ALARM_NEXT = (char *)"alarmnext"; constexpr char* ALARM_OK = (char *)"alarmok"; constexpr char* JUDGE_DELETE = (char *)"judgedelete"; constexpr char* JUDGE_TRUE = (char *)"judgetrue"; -constexpr char* ADD_BUTTON = (char *)"addbutton"; +constexpr char* ADD_BUTTON = (char *)"addbutton"; // 增加闹钟按钮viewId +//星期设置按钮的viewId周一到周日 constexpr char* MONDAY = (char *)"monday"; constexpr char* TUESDAY = (char *)"tuesday"; constexpr char* WEDNESDAY = (char *)"wednesday"; @@ -72,8 +73,9 @@ constexpr char* THURSDAY = (char *)"thursday"; constexpr char* FRIDAY = (char *)"friday"; constexpr char* SATURDAY = (char *)"saturday"; constexpr char* SUNDAY = (char *)"sunday"; -constexpr char* ALARM_WEEK_OK = (char *)"alarmweekok"; +constexpr char* ALARM_WEEK_OK = (char *)"alarmweekok"; // 星期设置确认按钮viewId +// 闹钟开关按钮的viewId constexpr char* ALARM_STATUS_ONE = (char *)"alarmstatus0"; constexpr char* ALARM_STATUS_TWO = (char *)"alarmstatus1"; constexpr char* ALARM_STATUS_THREE = (char *)"alarmstatus2"; @@ -90,11 +92,11 @@ constexpr char* ALARM_CLOCK_SIX = (char *)"alarmclock5"; constexpr int16_t SET_SIX = 6; -constexpr char* ALARM_STATUS[6] = {ALARM_STATUS_ONE, ALARM_STATUS_TWO, ALARM_STATUS_THREE, // 闹钟按钮最大个数为6个 +constexpr char* ALARM_STATUS[6] = {ALARM_STATUS_ONE, ALARM_STATUS_TWO, ALARM_STATUS_THREE, // 闹钟开关按钮viewId最大个数为6个 ALARM_STATUS_FOUR, ALARM_STATUS_FIVE, ALARM_STATUS_SIX}; constexpr char* ALARM_CLOCK[6] = {ALARM_CLOCK_ONE, ALARM_CLOCK_TWO, ALARM_CLOCK_THREE, // 闹钟个数最大个数为6个 ALARM_CLOCK_FOUR, ALARM_CLOCK_FIVE, ALARM_CLOCK_SIX}; -constexpr char* WEEK_CONTAINER[7] = {SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY}; // 日期按钮最大个数为7个 +constexpr char* WEEK_BUTTON_VIEWID[7] = {SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY}; // 星期按钮viewId最大个数为7个 constexpr char * ALARM_ITEM_DELETE_00 = (char *)"ALARM_ITEM_DELETE_00"; @@ -107,15 +109,18 @@ constexpr char * ALARM_ITEM_DELETE[6] = {ALARM_ITEM_DELETE_00, ALARM_ITEM_DELETE ALARM_ITEM_DELETE_03, ALARM_ITEM_DELETE_04, ALARM_ITEM_DELETE_05}; typedef enum { - MAIN_INTERFACE = 0, - CHANGE_INTERFACE_CONFIG, - CHANGE_INTERFACE_SET_TIME, - CHANGE_INTERFACE_SET_WEEK, - CHANGE_INTERFACE_JUDGE, - CHANGE_INTERFACE_NEW_TIME, + MAIN_INTERFACE = 0, // 主界面 + CHANGE_INTERFACE_CONFIG, // 闹钟编辑页面[包括更改时间和更改星期] + CHANGE_INTERFACE_SET_TIME, // 时间设置页面 + CHANGE_INTERFACE_SET_WEEK, //星期设置页面 + CHANGE_INTERFACE_JUDGE, // 确认删除闹钟页面 + CHANGE_INTERFACE_NEW_TIME, // 新建闹钟的[时间设置]页面 CHANGE_INTERFACE_MAXCLOCK, } InterfacesId; +constexpr int16_t NEW_TIME_LISTENER = 0; // 新建闹钟的[时间设置]标志 +constexpr int16_t SET_TIME_LISTENER = 1; // 更新已存在闹钟的[星期设置]标志 + class AlarmStatusBtnChangeListener : public OHOS::UICheckBox::OnChangeListener { public: explicit AlarmStatusBtnChangeListener(UIView *uiView) @@ -181,7 +186,7 @@ public: private: uint32_t timeHour{0}; uint32_t timeMin{0}; - uint16_t setListener; + uint16_t setListener; // 新建闹钟还是修改闹钟的标志 uint16_t alarmListener{0};//闹钟编号 uint16_t clockQty{0}; int16_t interListener; diff --git a/code/sdk/application/wearable/fd230app/nativeui/alarm/include/AlarmSetWeekView.h b/code/sdk/application/wearable/fd230app/nativeui/alarm/include/AlarmSetWeekView.h index aae3aa8f0..cbbd7e87e 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/alarm/include/AlarmSetWeekView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/alarm/include/AlarmSetWeekView.h @@ -1,8 +1,9 @@ /* - * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. - * Description: Alarm - * Author: - * Create: 2021-09-11 + * @Author: luozheng 1732036298@qq.com + * @Date: 2024-08-29 10:39:02 + * @LastEditors: luozheng 1732036298@qq.com + * @LastEditTime: 2024-10-12 19:14:30 + * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/alarm/include/AlarmSetWeekView.h */ #ifndef ALARM_SET_WEEK_VIEW @@ -22,6 +23,8 @@ #include "AlarmPresenter.h" #include "AlarmClockModel.h" +#define WEEK_NUM 7 // 星期一共有7天 + namespace OHOS { class AlarmSetWeekView { public: @@ -35,7 +38,7 @@ private: UIScrollView *group{nullptr}; UILabelButtonExt *weekImage{nullptr}; UILabelExt *labelRespeat{nullptr}; - UILabelButton *buttonWeek[7]{nullptr}; // 星期一共有7天,因此设置了七个星期的按钮 + UILabelButton *buttonWeek[WEEK_NUM]{nullptr}; // 星期一共有7天,因此设置了七个星期的按钮 void CreateWeekButton1(void); void CreateWeekButton2(void); void SetLabelButton(void); diff --git a/code/sdk/application/wearable/fd230app/nativeui/alarm/src/AlarmClockModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/alarm/src/AlarmClockModel.cpp index 8b59568d0..8b3af69b0 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/alarm/src/AlarmClockModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/alarm/src/AlarmClockModel.cpp @@ -658,6 +658,24 @@ void AlarmClockModel::DelAlarmDelay(int16_t num) void AlarmClockModel::SetAlarmInfo(uint32_t time_hour, uint32_t time_min, uint8_t week, uint16_t alarmListener,uint16_t setListener) { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::SetAlarmInfo!"); + // 检查时间参数是否合法 + if (time_hour < 0 || time_hour > 23 || time_min < 0 || time_min > 59) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Invalid time parameters!"); + return; + } + // 检查 alarmListener 是否在合理范围内 + if (alarmListener >= ALARM_CLOCK_MAX || alarmListener < 0) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Invalid alarmListener value!"); + return; + } + // 检查 setListener 是否合法 + if (setListener!= NEW_TIME_LISTENER && setListener!= SET_TIME_LISTENER) // NEW_TIME_LISTENER:0 表示新建闹钟,SET_TIME_LISTENER:1 表示修改闹钟 + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Invalid setListener value!"); + return; + } if (currentAlarm[alarmListener] == nullptr || (currentAlarm[alarmListener]->alarmType == TYPE_INVALID_ALARM_CLOCK && currentAlarm[alarmListener] != nullptr)) { currentAlarm[alarmListener] = new AlarmClockInfo(); @@ -680,7 +698,7 @@ void AlarmClockModel::SetAlarmInfo(uint32_t time_hour, uint32_t time_min, uint8_ } WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::NewAlarmTime clock name = %s, id = %u", currentAlarm[alarmListener]->alarmClockName, currentAlarm[alarmListener]->alarmClockId); - if (setListener == 0) { //表示新建闹钟 + if (setListener == NEW_TIME_LISTENER) { //表示新建闹钟 WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::SetAlarmWeek new time!"); int ret = AddAlarmClock(currentAlarm[alarmListener]); if (ret != 0) { diff --git a/code/sdk/application/wearable/fd230app/nativeui/alarm/src/AlarmNewTimeView.cpp b/code/sdk/application/wearable/fd230app/nativeui/alarm/src/AlarmNewTimeView.cpp index 3f2faa6fa..983e796f4 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/alarm/src/AlarmNewTimeView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/alarm/src/AlarmNewTimeView.cpp @@ -186,7 +186,7 @@ namespace OHOS void AlarmNewTimeView::RefreshNewTime(void) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmNewTimeView::RefreshStep"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmNewTimeView::RefreshNewTime"); struct tm local_time; time_t seconds = time(nullptr); if (localtime_r(&seconds, &local_time) == nullptr) @@ -198,9 +198,9 @@ namespace OHOS std::ostringstream ostMin; ostrHour << local_time.tm_hour; ostMin << local_time.tm_min; - std::string weekStr = ostrHour.str() + ":" + ostMin.str(); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "time = %s!", weekStr.c_str()); - picker->SetSelected(weekStr.c_str()); // 添加的时间默认初始时间为0点 + std::string timeStr = ostrHour.str() + ":" + ostMin.str(); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "time = %s!", timeStr.c_str()); + picker->SetSelected(timeStr.c_str()); uint32_t timeHour = stoi(ostrHour.str()); uint32_t timeMin = stoi(ostMin.str()); AlarmPresenter::GetInstance()->OnTimePickerInaction(timeHour, timeMin); diff --git a/code/sdk/application/wearable/fd230app/nativeui/alarm/src/AlarmPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/alarm/src/AlarmPresenter.cpp index 6e7abdeec..3cc007351 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/alarm/src/AlarmPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/alarm/src/AlarmPresenter.cpp @@ -20,8 +20,6 @@ static AlarmPresenter *g_pAlarmPresenter = nullptr; constexpr int16_t CLOSE_SWITCHES = 0; constexpr int16_t OPEN_SWITCHES = 1; constexpr int16_t SET_ZERO = 0; -constexpr int16_t NEW_TIME_LISTENER = 0; -constexpr int16_t SET_TIME_LISTENER = 1; constexpr uint16_t THE_FIRST_ALARM = 0; constexpr uint16_t SECOND_ALARM = 1; constexpr uint16_t THIRD_ALARM = 2; @@ -37,8 +35,8 @@ constexpr uint8_t WEEK_BIT3 = 3; constexpr uint8_t WEEK_BIT2 = 2; constexpr uint8_t WEEK_BIT1 = 1; constexpr uint8_t WEEK_BIT0 = 0; -constexpr uint16_t ALARM_MAX_NUM = 5; // 4; -constexpr int32_t BUTTON_MAX_NUM = 7; +constexpr uint16_t ALARM_MAX_NUM = 5; // 最大闹钟数 +constexpr int32_t WEEK_BUTTON_MAX_NUM = 7; // 星期按钮的最大个数 constexpr uint16_t CLOCK_NUM = 5; constexpr uint8_t CANCEL_DATA = 0; constexpr uint8_t SELECT_DATA = 1; @@ -267,6 +265,7 @@ void AlarmPresenter::ClickAlarmClock(uint16_t num) AlarmConfigView::GetInstance()->RefreshConfig(clockTime, clockWeek, num); } +// 处理闹钟星期设置确认按钮的点击事件 void AlarmPresenter::ClickAlarmWeekOk(uint16_t num) { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter ALARM_WEEK_OK"); @@ -279,7 +278,7 @@ void AlarmPresenter::ClickAlarmWeekOk(uint16_t num) if (setListener == SET_TIME_LISTENER) { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClickAlarmWeekOk set time!"); if (!(AlarmClockModel::GetInstance()->GetClockTime(alarmListener, &clockTime))) { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter ClickAlarmWeekOk error"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter ClickAlarmWeekOk error"); return; } WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClickAlarmWeekOk time = %d", clockTime); @@ -292,13 +291,12 @@ void AlarmPresenter::ClickAlarmWeekOk(uint16_t num) } AlarmClockModel::GetInstance()->ButtonStatusRing(alarmListener, true); MainAlarmView::GetInstance()->RefreshAlarm(); - MainAlarmView::GetInstance()->ChangeView(CHANGE_INTERFACE_SET_WEEK, CHANGE_INTERFACE_CONFIG); + MainAlarmView::GetInstance()->ChangeView(CHANGE_INTERFACE_SET_WEEK, CHANGE_INTERFACE_CONFIG); // 跳转到闹钟配置界面 } else if (setListener == NEW_TIME_LISTENER) { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClickAlarmWeekOk new time!"); - // clockQty++; alarmListener = clockQty; clockQty++; - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "******************ClickAlarmWeekOk alarmListener = %d***************", alarmListener); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "******************ClickAlarmWeekOk alarmListener = %d***************", alarmListener); AlarmClockModel::GetInstance()->SetSerialAdd(); AlarmClockModel::GetInstance()->SetAlarmInfo(timeHour, timeMin, clockWeek, alarmListener, setListener); if (!(AlarmClockModel::GetInstance()->GetClockTime(alarmListener, &clockTime))) { @@ -312,15 +310,20 @@ void AlarmPresenter::ClickAlarmWeekOk(uint16_t num) return; } MainAlarmView::GetInstance()->RefreshAlarm(); - MainAlarmView::GetInstance()->ChangeView(CHANGE_INTERFACE_SET_WEEK, MAIN_INTERFACE); + MainAlarmView::GetInstance()->ChangeView(CHANGE_INTERFACE_SET_WEEK, MAIN_INTERFACE); // 跳转到闹钟主界面 } } +// 处理闹钟新建按钮的点击事件 void AlarmPresenter::ClickAlarmNewTime(uint16_t num) { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter ALARM_NEW_TIME"); + if (MainAlarmView::GetInstance() == nullptr) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickAlarmNewTime new MainAlarmView::GetInstance() error"); + return; + } clockQty = AlarmClockModel::GetInstance()->GetAlarmNum(); - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter alarmNumbel = %u", clockQty); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter alarmNumbel = %u", clockQty); UNUSED(num); if (clockQty >= ALARM_MAX_NUM) { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter new alarm max"); @@ -330,11 +333,7 @@ void AlarmPresenter::ClickAlarmNewTime(uint16_t num) setListener = NEW_TIME_LISTENER; timeHour = 0; timeMin = 0; - if (MainAlarmView::GetInstance() == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickAlarmNewTime new MainAlarmView::GetInstance() error"); - return; - } - MainAlarmView::GetInstance()->ChangeView(MAIN_INTERFACE, CHANGE_INTERFACE_NEW_TIME); + MainAlarmView::GetInstance()->ChangeView(MAIN_INTERFACE, CHANGE_INTERFACE_NEW_TIME); // 跳转到新建闹钟时间设置界面 if (AlarmNewTimeView::GetInstance() == nullptr) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickAlarmNewTime new AlarmNewTimeView::GetInstance() error"); return; @@ -342,11 +341,13 @@ void AlarmPresenter::ClickAlarmNewTime(uint16_t num) AlarmNewTimeView::GetInstance()->RefreshNewTime(); } +// 新建闹钟时:时间设置页面的下一步按钮点击事件处理函数 + void AlarmPresenter::ClickAlarmNext(uint16_t num) { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter ALARM_NEXT"); UNUSED(num); - for (int i = 0; i < BUTTON_MAX_NUM; i++) { + for (int i = 0; i < WEEK_BUTTON_MAX_NUM; i++) { alarmWeek[i] = 0; WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "alarmWeek[%d] = %u", i, alarmWeek[i]); } @@ -355,11 +356,7 @@ void AlarmPresenter::ClickAlarmNext(uint16_t num) WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickAlarmNext new MainAlarmView::GetInstance() error"); return; } - MainAlarmView::GetInstance()->ChangeView(CHANGE_INTERFACE_NEW_TIME, CHANGE_INTERFACE_SET_WEEK); - if (AlarmNewTimeView::GetInstance() == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickAlarmNext new AlarmNewTimeView::GetInstance() error"); - return; - } + MainAlarmView::GetInstance()->ChangeView(CHANGE_INTERFACE_NEW_TIME, CHANGE_INTERFACE_SET_WEEK);// 跳转到星期设置界面 if (AlarmSetWeekView::GetInstance() == nullptr) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickAlarmNext new AlarmSetWeekView::GetInstance() error"); return; @@ -435,23 +432,17 @@ bool AlarmPresenter::ClickFuncId(const char *buttonName) bool AlarmPresenter::ClickFuncView(UIView &view) { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClickFuncView view = %s", view.GetViewId()); - for (int num = 0; num < BUTTON_MAX_NUM; num++) { - if (strcmp(view.GetViewId(), WEEK_CONTAINER[num]) == 0) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ClickFuncView view = %s", view.GetViewId()); + for (int num = 0; num < WEEK_BUTTON_MAX_NUM; num++) { + if (strcmp(view.GetViewId(), WEEK_BUTTON_VIEWID[num]) == 0) { alarmWeek[num] = alarmWeek[num] ? CANCEL_DATA: SELECT_DATA; - if (alarmWeek[num] == CANCEL_DATA) { + if (alarmWeek[num] == CANCEL_DATA) { // 取消选中 WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "alarmWeek[num] = %u", alarmWeek[num]); - // view.SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full); - // dynamic_cast(view).SetStyleForState(STYLE_BACKGROUND_COLOR, - // Color::Black().full, UIButton::PRESSED); view.SetStyle(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGB(0x19, 0x19, 0x19).full); dynamic_cast(view).SetStyleForState(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGB(0x19, 0x19, 0x19).full, UIButton::PRESSED); - } else if (alarmWeek[num] == SELECT_DATA) { + } else if (alarmWeek[num] == SELECT_DATA) { // 选中 WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "alarmWeek[num] = %u", alarmWeek[num]); - // view.SetStyle(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGB(0x6c, 0xB8, 0xFD).full); - // dynamic_cast(view).SetStyleForState(STYLE_BACKGROUND_COLOR, - // Color::GetColorFromRGB(0x6c, 0xB8, 0xFD).full, UIButton::PRESSED); view.SetStyle(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGB(0x4f, 0xc3, 0x4c).full); dynamic_cast(view).SetStyleForState(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGB(0x4f, 0xc3, 0x4c).full, UIButton::PRESSED); @@ -478,14 +469,14 @@ bool AlarmPresenter::OnKeyAct(UIView &view, const KeyEvent &event) void AlarmPresenter::ClickDeleteButtonAlarmClockDelete(uint16_t num) { - // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[@CHENG][%d]:%d", __LINE__, num); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[@CHENG][%d]:%d", __LINE__, num); + if (MainAlarmView::GetInstance() == nullptr) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickDeleteButtonAlarmClockDelete error"); + return; + } UNUSED(num); alarmListener = num; MainAlarmView::GetInstance()->ChangeView(MAIN_INTERFACE, CHANGE_INTERFACE_JUDGE); - // if (MainAlarmView::GetInstance() == nullptr) { - // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickDeleteButtonAlarmClockDelete error"); - // return; - // } } static const AlarmPresentMapper1 DeleteButtonPresentMapper[] = @@ -505,7 +496,7 @@ bool AlarmPresenter::OnClick(UIView &view, const ClickEvent &event) uint16_t num; for (num = 0; num < CLOCK_NUM; num++) { - if (0 == strcmp(view.GetViewId(), ALARM_ITEM_DELETE[num])) + if (0 == strcmp(view.GetViewId(), ALARM_ITEM_DELETE[num])) // 闹钟删除按钮 { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[@CHENG][%d]:%d", __LINE__, num); (this->*(DeleteButtonPresentMapper[num].func))(num); diff --git a/code/sdk/application/wearable/fd230app/nativeui/alarm/src/AlarmSetWeekView.cpp b/code/sdk/application/wearable/fd230app/nativeui/alarm/src/AlarmSetWeekView.cpp index 4146746cd..6d19f2a2a 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/alarm/src/AlarmSetWeekView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/alarm/src/AlarmSetWeekView.cpp @@ -11,67 +11,18 @@ #include "ui_resource_string.h" #include "ConfigModel.h" namespace OHOS { -// #define MON "星期一" -// #define TUE "星期二" -// #define WED "星期三" -// #define THUR "星期四" -// #define FRI "星期五" -// #define SAT "星期六" -// #define SUN "星期天" -#define MON "一" -#define TUE "二" -#define WED "三" -#define THUR "四" -#define FRI "五" -#define SAT "六" -#define SUN "日" -#define MON_EN "Mon" -#define TUE_EN "Tue" -#define WED_EN "Wed" -#define THUR_EN "Thu" -#define FRI_EN "Fri" -#define SAT_EN "Sat" -#define SUN_EN "Sun" -#define RESPEAT "重复" -#define SURE "确认" - -#define MONDAY "monday" -#define TUESDAY "tuesday" -#define WEDNESDAY "wednesday" -#define THURSDAY "thursday" -#define FRIDAY "friday" -#define SATURDAY "saturday" -#define SUNDAY "sunday" - static AlarmSetWeekView *g_pAlarmSetWeekView = nullptr; constexpr int16_t CONTAINER_X = 0; constexpr int16_t CONTAINER_Y = 0; -constexpr int16_t DEFAULT_FONT = 40; -constexpr int16_t REBOUND_SIZE = 50; -constexpr int16_t BORDER_WIDTH = 20; -constexpr int16_t SET_ZERO = 0; -constexpr int16_t TITLE_X = 185; -constexpr int16_t TITLE_Y = 30; -constexpr int16_t LABEL_POSITION_SIZE = 150; constexpr int16_t VIEW_BORDER_SIZE = 2; -constexpr int16_t BORDER_RADIUS_SIZE = 200; -constexpr int16_t VIEW_BUTTON_X = 100; -constexpr int16_t VIEW_BUTTON_Y = 70; -constexpr int16_t BUTTON_FONT_SIZE = 18; -constexpr int16_t TIME_LABEL_BUTTON_X = 63; -constexpr int16_t TIME_LABEL_BUTTON_Y = 360; -constexpr int16_t BUTTON_WIDHT3 = 320; -constexpr int16_t BUTTON_HEIGHT3 = 101; -constexpr int16_t LABEL_WEEK_FONT = 40; -constexpr int16_t BUTTON_WIDHT = 80; // 100; -constexpr int16_t BUTTON_HEIGHT = 80; // 60; -constexpr int16_t BUTTON_FONT = 20; -constexpr int16_t VIEW_POSITION_X = 27; // 60; -constexpr int16_t VIEW_POSITION_X2 = 83; // 12; -constexpr int16_t WEEK_Y1 = 135; // 130; -constexpr int16_t WEEK_Y2 = 245; // 210; -constexpr int16_t WEEK_GAP_X = 110; // 112; -constexpr int16_t BUTTON_STYLE_BORDER_RADIUS_VALUE = 100; // 30; +constexpr int16_t BUTTON_WIDHT = 80; // 80 +constexpr int16_t BUTTON_HEIGHT = 80; // 80 +constexpr int16_t VIEW_POSITION_X = 27; //27 +constexpr int16_t VIEW_POSITION_X2 = 83;// 83 +constexpr int16_t WEEK_Y1 = 135; +constexpr int16_t WEEK_Y2 = 245; +constexpr int16_t WEEK_GAP_X = 110;// 星期按钮间的间隔 +constexpr int16_t BUTTON_STYLE_BORDER_RADIUS_VALUE = 100; constexpr int16_t FONT_DEFAULT_SIZE = 30; constexpr int16_t WEEK_MON = 1; constexpr int16_t WEEK_TUE = 2; @@ -81,8 +32,8 @@ constexpr int16_t WEEK_FRI = 5; constexpr int16_t WEEK_SAT = 6; constexpr int16_t WEEK_SUN = 0; -#define DEFAULT_BG_COLOR (Color::GetColorFromRGB(0x19, 0x19, 0x19)) -#define SELECTED_BG_COLOR (Color::GetColorFromRGB(0x4f, 0xc3, 0x4c)) +#define DEFAULT_BG_COLOR (Color::GetColorFromRGB(0x19, 0x19, 0x19)) // 默认背景色 +#define SELECTED_BG_COLOR (Color::GetColorFromRGB(0x4f, 0xc3, 0x4c)) // 选中背景色 AlarmSetWeekView::AlarmSetWeekView() @@ -106,7 +57,7 @@ AlarmSetWeekView::~AlarmSetWeekView() delete weekImage; weekImage = nullptr; } - for (int16_t alarmNum = 0; alarmNum < 7; alarmNum++) { + for (int16_t alarmNum = 0; alarmNum < WEEK_NUM; alarmNum++) { if(buttonWeek[alarmNum]) { delete buttonWeek[alarmNum]; @@ -128,6 +79,7 @@ AlarmSetWeekView *AlarmSetWeekView::GetInstance(void) UILabelButtonExt *AlarmSetWeekView::CreateUILabelButton(const char *buttonText1,const char *buttonText2, int16_t x, int16_t y) { if (buttonText1 == nullptr || buttonText2 == nullptr) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView:: buttonText1 or buttonText2 is null"); return nullptr; } @@ -137,11 +89,11 @@ UILabelButtonExt *AlarmSetWeekView::CreateUILabelButton(const char *buttonText1, return nullptr; } int language = ConfigModel::GetInstance()->GetLanguage(); - if(language == 0) + if(language == 0) // 中文 { labelButton->SetText(buttonText1); } - else + else { labelButton->SetText(buttonText2); } @@ -150,25 +102,17 @@ UILabelButtonExt *AlarmSetWeekView::CreateUILabelButton(const char *buttonText1, labelButton->SetStyleForState(STYLE_BORDER_RADIUS, BUTTON_STYLE_BORDER_RADIUS_VALUE, UIButton::PRESSED); labelButton->SetStyleForState(STYLE_BORDER_RADIUS, BUTTON_STYLE_BORDER_RADIUS_VALUE, UIButton::INACTIVE); labelButton->SetStyleForState(STYLE_BORDER_RADIUS, BUTTON_STYLE_BORDER_RADIUS_VALUE, UIButton::RELEASED); - // labelButton->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::Black().full, UIButton::RELEASED); - // labelButton->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::Black().full, UIButton::PRESSED); - // labelButton->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::Black().full, UIButton::INACTIVE); labelButton->SetStyleForState(STYLE_BACKGROUND_COLOR, DEFAULT_BG_COLOR.full, UIButton::RELEASED); labelButton->SetStyleForState(STYLE_BACKGROUND_COLOR, DEFAULT_BG_COLOR.full, UIButton::PRESSED); labelButton->SetStyleForState(STYLE_BACKGROUND_COLOR, DEFAULT_BG_COLOR.full, UIButton::INACTIVE); labelButton->SetStyleForState(STYLE_BORDER_WIDTH, VIEW_BORDER_SIZE, UIButton::RELEASED); labelButton->SetStyleForState(STYLE_BORDER_WIDTH, VIEW_BORDER_SIZE, UIButton::PRESSED); labelButton->SetStyleForState(STYLE_BORDER_WIDTH, VIEW_BORDER_SIZE, UIButton::INACTIVE); - // labelButton->SetStyleForState(STYLE_BORDER_COLOR, Color::White().full, UIButton::RELEASED); - // labelButton->SetStyleForState(STYLE_BORDER_COLOR, Color::White().full, UIButton::PRESSED); - // labelButton->SetStyleForState(STYLE_BORDER_COLOR, Color::White().full, UIButton::INACTIVE); labelButton->SetStyleForState(STYLE_BORDER_COLOR, Color::Black().full, UIButton::RELEASED); labelButton->SetStyleForState(STYLE_BORDER_COLOR, Color::Black().full, UIButton::PRESSED); labelButton->SetStyleForState(STYLE_BORDER_COLOR, Color::Black().full, UIButton::INACTIVE); - // labelButton->SetStyle(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGB(0x6c, 0xB8, 0xFD).full); labelButton->SetStyle(STYLE_BACKGROUND_COLOR, DEFAULT_BG_COLOR.full); labelButton->SetStyle(STYLE_BORDER_WIDTH, VIEW_BORDER_SIZE); - // labelButton->SetStyle(STYLE_BORDER_COLOR, Color::White().full); labelButton->SetStyle(STYLE_BORDER_COLOR, Color::Black().full); labelButton->Resize(BUTTON_WIDHT, BUTTON_HEIGHT); @@ -177,10 +121,10 @@ UILabelButtonExt *AlarmSetWeekView::CreateUILabelButton(const char *buttonText1, void AlarmSetWeekView::CreateWeekButton1(void) { - int viewPositionX = VIEW_POSITION_X; // 60 150 + int viewPositionX = VIEW_POSITION_X; UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::AlarmPresenter::GetInstance(); - buttonWeek[WEEK_SUN] = CreateUILabelButton(SUN,SUN_EN, viewPositionX, WEEK_Y1); + buttonWeek[WEEK_SUN] = CreateUILabelButton(SUN_DAY,SUN_DAY_EN, viewPositionX, WEEK_Y1); if (buttonWeek[WEEK_SUN] == nullptr) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView:: new buttonSun fail"); return; @@ -190,7 +134,7 @@ void AlarmSetWeekView::CreateWeekButton1(void) buttonWeek[WEEK_SUN]->SetViewId(SUNDAY); viewPositionX += WEEK_GAP_X; - buttonWeek[WEEK_MON] = CreateUILabelButton(MON,MON_EN, viewPositionX, WEEK_Y1); + buttonWeek[WEEK_MON] = CreateUILabelButton(MON_DAY,MON_DAY_EN, viewPositionX, WEEK_Y1); if (buttonWeek[WEEK_MON] == nullptr) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView:: new buttonMon fail"); return; @@ -200,7 +144,7 @@ void AlarmSetWeekView::CreateWeekButton1(void) buttonWeek[WEEK_MON]->SetViewId(MONDAY); viewPositionX += WEEK_GAP_X; - buttonWeek[WEEK_TUE] = CreateUILabelButton(TUE,TUE_EN, viewPositionX, WEEK_Y1); + buttonWeek[WEEK_TUE] = CreateUILabelButton(TUE_DAY,TUE_DAY_EN, viewPositionX, WEEK_Y1); if (buttonWeek[WEEK_TUE] == nullptr) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView:: new buttonTue fail"); return; @@ -210,7 +154,7 @@ void AlarmSetWeekView::CreateWeekButton1(void) buttonWeek[WEEK_TUE]->SetViewId(TUESDAY); viewPositionX += WEEK_GAP_X; - buttonWeek[WEEK_WED] = CreateUILabelButton(WED,WED_EN, viewPositionX, WEEK_Y1); + buttonWeek[WEEK_WED] = CreateUILabelButton(WED_DAY,WED_DAY_EN, viewPositionX, WEEK_Y1); if (buttonWeek[WEEK_WED] == nullptr) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView:: new buttonWed fail"); return; @@ -222,10 +166,10 @@ void AlarmSetWeekView::CreateWeekButton1(void) void AlarmSetWeekView::CreateWeekButton2(void) { - int viewPositionX2 = VIEW_POSITION_X2; // 12 210 + int viewPositionX2 = VIEW_POSITION_X2; UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::AlarmPresenter::GetInstance(); - buttonWeek[WEEK_THUR] = CreateUILabelButton(THUR,THUR_EN, viewPositionX2, WEEK_Y2); + buttonWeek[WEEK_THUR] = CreateUILabelButton(THUR_DAY,THUR_DAY_EN, viewPositionX2, WEEK_Y2); if (buttonWeek[WEEK_THUR] == nullptr) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView:: new buttonThur fail"); return; @@ -235,7 +179,7 @@ void AlarmSetWeekView::CreateWeekButton2(void) buttonWeek[WEEK_THUR]->SetViewId(THURSDAY); viewPositionX2 += WEEK_GAP_X; - buttonWeek[WEEK_FRI] = CreateUILabelButton(FRI,FRI_EN, viewPositionX2, WEEK_Y2); + buttonWeek[WEEK_FRI] = CreateUILabelButton(FRI_DAY,FRI_DAY_EN, viewPositionX2, WEEK_Y2); if (buttonWeek[WEEK_FRI] == nullptr) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView:: new buttonFri fail"); return; @@ -245,7 +189,7 @@ void AlarmSetWeekView::CreateWeekButton2(void) buttonWeek[WEEK_FRI]->SetViewId(FRIDAY); viewPositionX2 += WEEK_GAP_X; - buttonWeek[WEEK_SAT] = CreateUILabelButton(SAT,SAT_EN, viewPositionX2, WEEK_Y2); + buttonWeek[WEEK_SAT] = CreateUILabelButton(SAT_DAY,SAT_DAY_EN, viewPositionX2, WEEK_Y2); if (buttonWeek[WEEK_SAT] == nullptr) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView:: new buttonSat fail"); return; @@ -255,14 +199,6 @@ void AlarmSetWeekView::CreateWeekButton2(void) buttonWeek[WEEK_SAT]->SetViewId(SATURDAY); viewPositionX2 += WEEK_GAP_X; - // buttonWeek[WEEK_SUN] = CreateUILabelButton(SUN, viewPositionX2, WEEK_Y2); - // if (buttonWeek[WEEK_SUN] == nullptr) { - // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView:: new buttonSun fail"); - // return; - // } - // group->Add(buttonWeek[WEEK_SUN]); - // buttonWeek[WEEK_SUN]->SetOnClickListener(clickListener); - // buttonWeek[WEEK_SUN]->SetViewId(SUNDAY); } void AlarmSetWeekView::SetLabelButton(void) @@ -328,6 +264,7 @@ UIScrollView *AlarmSetWeekView::InitSetWeekView() return group; } +//该函数用于设置AlarmSetWeekView中周一到周日按钮的背景颜色 void AlarmSetWeekView::RefreshSetWeek1(void) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView::RefreshStep1"); @@ -335,8 +272,6 @@ void AlarmSetWeekView::RefreshSetWeek1(void) WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView::RefreshStep1 buttonMon nullptr error!"); return; } - // buttonWeek[WEEK_MON]->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full); - // buttonWeek[WEEK_MON]->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::Black().full, UIButton::PRESSED); buttonWeek[WEEK_MON]->SetStyle(STYLE_BACKGROUND_COLOR, DEFAULT_BG_COLOR.full); buttonWeek[WEEK_MON]->SetStyleForState(STYLE_BACKGROUND_COLOR, DEFAULT_BG_COLOR.full, UIButton::PRESSED); if (buttonWeek[WEEK_TUE] == nullptr) { @@ -377,9 +312,10 @@ void AlarmSetWeekView::RefreshSetWeek1(void) buttonWeek[WEEK_SUN]->SetStyleForState(STYLE_BACKGROUND_COLOR, DEFAULT_BG_COLOR.full, UIButton::PRESSED); } +//该函数用于设置AlarmSetWeekView中周一到周日按钮的背景颜色 void AlarmSetWeekView::RefreshSetWeek2(uint8_t week) { - for (int16_t alarmNum = 0; alarmNum < 7; alarmNum++) { + for (int16_t alarmNum = 0; alarmNum < WEEK_NUM; alarmNum++) { if (buttonWeek[alarmNum] == nullptr) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView::RefreshStep2 week[%d] nullptr error!", alarmNum); return; -- 2.17.1