From: Caisking <3449750381@qq.com> Date: Tue, 9 Apr 2024 12:14:08 +0000 (+0800) Subject: 增加训练卡片的当前时间获取 X-Git-Tag: release_V1.2.70_20241020_135402~1200^2~7 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=8c61f02fa733d2f905d07ddbc1fba02da0426718;p=mirrors%2FFD230.git 增加训练卡片的当前时间获取 --- 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 00571efc3..d0dca0503 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/alarm/src/AlarmPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/alarm/src/AlarmPresenter.cpp @@ -5,7 +5,6 @@ * Create: 2021-09-11 */ - #include "AlarmPresenter.h" #include "MainAlarmView.h" #include "ChangeSliceListener.h" @@ -13,425 +12,471 @@ #include "iostream" #include "sstream" -namespace OHOS { -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; -constexpr uint16_t FOURTH_ALARM = 3; -constexpr uint16_t FIVE_ALARM = 4; -constexpr uint16_t SIX_ALARM = 5; -constexpr uint16_t UNUSED_NUM = 6; -constexpr int16_t FIRST_ALARM = 0; -constexpr uint8_t WEEK_BIT6 = 6; -constexpr uint8_t WEEK_BIT5 = 5; -constexpr uint8_t WEEK_BIT4 = 4; -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 = 4; -constexpr int32_t BUTTON_MAX_NUM = 7; -constexpr uint16_t CLOCK_NUM = 5; -constexpr uint8_t CANCEL_DATA = 0; -constexpr uint8_t SELECT_DATA = 1; -constexpr uint8_t SLIDING_LENGTH = 30; - -AlarmPresenter::AlarmPresenter() -{ - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter new"); - g_pAlarmPresenter = this; -} - -AlarmPresenter::~AlarmPresenter() -{ - g_pAlarmPresenter = nullptr; - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::~AlarmPresenter"); -} - -ColorType AlarmPresenter::ShadowBlue() +namespace OHOS { - return Color::GetColorFromRGB(0x17, 0x8F, 0xF8); -} + 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; + constexpr uint16_t FOURTH_ALARM = 3; + constexpr uint16_t FIVE_ALARM = 4; + constexpr uint16_t SIX_ALARM = 5; + constexpr uint16_t UNUSED_NUM = 6; + constexpr int16_t FIRST_ALARM = 0; + constexpr uint8_t WEEK_BIT6 = 6; + constexpr uint8_t WEEK_BIT5 = 5; + constexpr uint8_t WEEK_BIT4 = 4; + 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 = 4; + constexpr int32_t BUTTON_MAX_NUM = 7; + constexpr uint16_t CLOCK_NUM = 5; + constexpr uint8_t CANCEL_DATA = 0; + constexpr uint8_t SELECT_DATA = 1; + constexpr uint8_t SLIDING_LENGTH = 30; + + AlarmPresenter::AlarmPresenter() + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter new"); + g_pAlarmPresenter = this; + } -void AlarmPresenter::OnStart() -{ - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter OnStart"); - Presenter::OnStart(); -} + AlarmPresenter::~AlarmPresenter() + { + g_pAlarmPresenter = nullptr; + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::~AlarmPresenter"); + } -void AlarmPresenter::OnPause(void) {} + ColorType AlarmPresenter::ShadowBlue() + { + return Color::GetColorFromRGB(0x17, 0x8F, 0xF8); + } -void AlarmPresenter::OnResume(void) {} + void AlarmPresenter::OnStart() + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter OnStart"); + Presenter::OnStart(); + } -void AlarmPresenter::OnStop(void) {} + void AlarmPresenter::OnPause(void) {} -AlarmPresenter *AlarmPresenter::GetInstance() -{ - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter GetInstance"); - return g_pAlarmPresenter; -} + void AlarmPresenter::OnResume(void) {} -void AlarmPresenter::OnTimePickerStoped(UITimePicker &picker) -{ - std::string hour(picker.GetSelectHour()); - std::string minute(picker.GetSelectMinute()); - timeHour = stoi(hour); - timeMin = stoi(minute); - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::OnTimePickerStoped the hour is %u,and the minute is %u", timeHour, timeMin); -} - -void AlarmPresenter::OnTimePickerInaction(uint32_t hour, uint32_t min) -{ - timeHour = hour; - timeMin = min; -} + void AlarmPresenter::OnStop(void) {} -void AlarmPresenter::PlayRing(void *arg) -{ - UNUSED(arg); - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainAlarmView::playRing"); -} - -int16_t AlarmPresenter::GetInterStatus(void) -{ - return interListener; -} - -void AlarmPresenter::ClickSetTime(uint16_t num) -{ - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter VIEW_ALARM_SET_TIME"); - UNUSED(num); - uint32_t clockTime; - if ((AlarmClockModel::GetInstance()->GetClockTime(alarmListener, &clockTime)) == false) { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter ClickSetTime error"); - return; - } - MainAlarmView::GetInstance()->ChangeView(CHANGE_INTERFACE_CONFIG, CHANGE_INTERFACE_SET_TIME); - if (MainAlarmView::GetInstance() == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickSetTime new MainAlarmView::GetInstance() error"); - return; - } - AlarmSetTimeView::GetInstance()->RefreshSetTime(clockTime); - if (AlarmSetTimeView::GetInstance() == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickSetTime new AlarmSetTimeView::GetInstance() error"); - return; + AlarmPresenter *AlarmPresenter::GetInstance() + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter GetInstance"); + return g_pAlarmPresenter; } -} -void AlarmPresenter::ClickSetWeek(uint16_t num) -{ - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter VIEW_ALARM_SET_WEEK"); - UNUSED(num); - uint8_t clockWeek; - if ((AlarmClockModel::GetInstance()->GetClockWeek(alarmListener, &clockWeek)) == false) { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter ClickSetWeek error"); - return; - } - interListener = SET_TIME_LISTENER; - MainAlarmView::GetInstance()->ChangeView(CHANGE_INTERFACE_CONFIG, CHANGE_INTERFACE_SET_WEEK); - if (MainAlarmView::GetInstance() == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickSetWeek new MainAlarmView::GetInstance() error"); - return; - } - memset_s(alarmWeek, sizeof(alarmWeek), 0, sizeof(alarmWeek)); - AlarmSetWeekView::GetInstance()->RefreshSetWeek1(); - if (AlarmSetWeekView::GetInstance() == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickSetWeek new AlarmSetWeekView::GetInstance() error"); - return; + void AlarmPresenter::OnTimePickerStoped(UITimePicker &picker) + { + std::string hour(picker.GetSelectHour()); + std::string minute(picker.GetSelectMinute()); + timeHour = stoi(hour); + timeMin = stoi(minute); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::OnTimePickerStoped the hour is %u,and the minute is %u", timeHour, timeMin); } - AlarmSetWeekView::GetInstance()->RefreshSetWeek2(clockWeek); -} -void AlarmPresenter::ClickAlarmClockDelete(uint16_t num) -{ - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter ClickAlarmClockDelete"); - UNUSED(num); - MainAlarmView::GetInstance()->ChangeView(CHANGE_INTERFACE_CONFIG, CHANGE_INTERFACE_JUDGE); - if (MainAlarmView::GetInstance() == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickAlarmClockDelete new MainAlarmView::GetInstance() error"); - return; + void AlarmPresenter::OnTimePickerInaction(uint32_t hour, uint32_t min) + { + timeHour = hour; + timeMin = min; } -} -void AlarmPresenter::ClickJudgeDelete(uint16_t num) -{ - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter JUDGE_DELETE"); - UNUSED(num); - MainAlarmView::GetInstance()->ChangeView(CHANGE_INTERFACE_JUDGE, MAIN_INTERFACE); - if (MainAlarmView::GetInstance() == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickJudgeDelete new MainAlarmView::GetInstance() error"); - return; + void AlarmPresenter::PlayRing(void *arg) + { + UNUSED(arg); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainAlarmView::playRing"); } -} -void AlarmPresenter::ClickJudgeTrue(uint16_t num) -{ - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter JUDGE_DELETE"); - UNUSED(num); - uint32_t clockTime; - AlarmClockModel::GetInstance()->DeleteClockModel(alarmListener); - if (MainAlarmView::GetInstance() == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickJudgeTrue new MainAlarmView::GetInstance() error"); - return; + int16_t AlarmPresenter::GetInterStatus(void) + { + return interListener; } - MainAlarmView::GetInstance()->RefreshAlarm(); - clockQty--; - for (uint16_t alarmNum = 0; alarmNum < clockQty; alarmNum++) { - if ((AlarmClockModel::GetInstance()->GetClockTime(alarmNum, &clockTime)) == false) { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter ClickJudgeTrue error"); + + void AlarmPresenter::ClickSetTime(uint16_t num) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter VIEW_ALARM_SET_TIME"); + UNUSED(num); + uint32_t clockTime; + if ((AlarmClockModel::GetInstance()->GetClockTime(alarmListener, &clockTime)) == false) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter ClickSetTime error"); + return; + } + MainAlarmView::GetInstance()->ChangeView(CHANGE_INTERFACE_CONFIG, CHANGE_INTERFACE_SET_TIME); + if (MainAlarmView::GetInstance() == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickSetTime new MainAlarmView::GetInstance() error"); + return; + } + AlarmSetTimeView::GetInstance()->RefreshSetTime(clockTime); + if (AlarmSetTimeView::GetInstance() == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickSetTime new AlarmSetTimeView::GetInstance() error"); return; } - MainAlarmView::GetInstance()->RefreshAlarm(); } - AlarmClockModel::GetInstance()->SetSerialRdc(); - MainAlarmView::GetInstance()->ChangeView(CHANGE_INTERFACE_JUDGE, MAIN_INTERFACE); -} -void AlarmPresenter::ClickAlarmTimeOk(uint16_t num) -{ - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter ALARM_OK"); - UNUSED(num); - AlarmClockModel::GetInstance()->SetAlarmTime(timeHour, timeMin, alarmListener); - uint32_t clockTime = ((timeHour << 16) | timeMin); // 闹钟时间小时的存储位需要右移16位 - uint8_t clockWeek; - if ((AlarmClockModel::GetInstance()->GetClockWeek(alarmListener, &clockWeek)) == false) { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter ClickAlarmTimeOk error"); - return; + void AlarmPresenter::ClickSetWeek(uint16_t num) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter VIEW_ALARM_SET_WEEK"); + UNUSED(num); + uint8_t clockWeek; + if ((AlarmClockModel::GetInstance()->GetClockWeek(alarmListener, &clockWeek)) == false) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter ClickSetWeek error"); + return; + } + interListener = SET_TIME_LISTENER; + MainAlarmView::GetInstance()->ChangeView(CHANGE_INTERFACE_CONFIG, CHANGE_INTERFACE_SET_WEEK); + if (MainAlarmView::GetInstance() == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickSetWeek new MainAlarmView::GetInstance() error"); + return; + } + memset_s(alarmWeek, sizeof(alarmWeek), 0, sizeof(alarmWeek)); + AlarmSetWeekView::GetInstance()->RefreshSetWeek1(); + if (AlarmSetWeekView::GetInstance() == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickSetWeek new AlarmSetWeekView::GetInstance() error"); + return; + } + AlarmSetWeekView::GetInstance()->RefreshSetWeek2(clockWeek); } - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter time = %u", clockTime); - AlarmClockModel::GetInstance()->DelAlarmDelay(alarmListener); - if (MainAlarmView::GetInstance() == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickAlarmTimeOk new MainAlarmView::GetInstance() error"); - return; - } - AlarmClockModel::GetInstance()->ButtonStatusRing(alarmListener, true); - MainAlarmView::GetInstance()->RefreshAlarm(); - if (AlarmConfigView::GetInstance() == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickAlarmTimeOk new AlarmConfigView::GetInstance() error"); - return; + void AlarmPresenter::ClickAlarmClockDelete(uint16_t num) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter ClickAlarmClockDelete"); + UNUSED(num); + MainAlarmView::GetInstance()->ChangeView(CHANGE_INTERFACE_CONFIG, CHANGE_INTERFACE_JUDGE); + if (MainAlarmView::GetInstance() == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickAlarmClockDelete new MainAlarmView::GetInstance() error"); + return; + } } - AlarmConfigView::GetInstance()->RefreshConfig(clockTime, clockWeek, UNUSED_NUM); - MainAlarmView::GetInstance()->ChangeView(CHANGE_INTERFACE_SET_TIME, CHANGE_INTERFACE_CONFIG); -} -void AlarmPresenter::ClickAlarmClock(uint16_t num) -{ - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter AlarmClock1"); - clockQty = AlarmClockModel::GetInstance()->GetAlarmNum(); - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "------AlarmPresenter alarmNumbel = %u", clockQty); - setListener = SET_TIME_LISTENER; - alarmListener = num; - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter alarmListener = %u", alarmListener); - uint32_t clockTime; - uint8_t clockWeek; - if ((AlarmClockModel::GetInstance()->GetClockTime(alarmListener, &clockTime)) == false) { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter ClickAlarmClock error"); - return; - } - if ((AlarmClockModel::GetInstance()->GetClockWeek(alarmListener, &clockWeek)) == false) { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter ClickAlarmClock error"); - return; - } - if (MainAlarmView::GetInstance() == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickAlarmClock new MainAlarmView::GetInstance() error"); - return; + void AlarmPresenter::ClickJudgeDelete(uint16_t num) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter JUDGE_DELETE"); + UNUSED(num); + MainAlarmView::GetInstance()->ChangeView(CHANGE_INTERFACE_JUDGE, MAIN_INTERFACE); + if (MainAlarmView::GetInstance() == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickJudgeDelete new MainAlarmView::GetInstance() error"); + return; + } } - MainAlarmView::GetInstance()->ChangeView(MAIN_INTERFACE, CHANGE_INTERFACE_CONFIG); - if (AlarmConfigView::GetInstance() == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickAlarmClock new AlarmConfigView::GetInstance() error"); - return; + + void AlarmPresenter::ClickJudgeTrue(uint16_t num) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter JUDGE_DELETE"); + UNUSED(num); + uint32_t clockTime; + AlarmClockModel::GetInstance()->DeleteClockModel(alarmListener); + if (MainAlarmView::GetInstance() == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickJudgeTrue new MainAlarmView::GetInstance() error"); + return; + } + MainAlarmView::GetInstance()->RefreshAlarm(); + clockQty--; + for (uint16_t alarmNum = 0; alarmNum < clockQty; alarmNum++) + { + if ((AlarmClockModel::GetInstance()->GetClockTime(alarmNum, &clockTime)) == false) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter ClickJudgeTrue error"); + return; + } + MainAlarmView::GetInstance()->RefreshAlarm(); + } + AlarmClockModel::GetInstance()->SetSerialRdc(); + MainAlarmView::GetInstance()->ChangeView(CHANGE_INTERFACE_JUDGE, MAIN_INTERFACE); } - AlarmConfigView::GetInstance()->RefreshConfig(clockTime, clockWeek, num); -} -void AlarmPresenter::ClickAlarmWeekOk(uint16_t num) -{ - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter ALARM_WEEK_OK"); - UNUSED(num); - uint32_t clockTime; - uint8_t clockWeek = ((alarmWeek[WEEK_BIT6] << WEEK_BIT6) | (alarmWeek[WEEK_BIT5] << WEEK_BIT5) | (alarmWeek[WEEK_BIT4] << WEEK_BIT4) | - (alarmWeek[WEEK_BIT3] << WEEK_BIT3) | (alarmWeek[WEEK_BIT2] << WEEK_BIT2) | (alarmWeek[WEEK_BIT1] << WEEK_BIT1) | alarmWeek[WEEK_BIT0]); - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClickAlarmWeekOk setListener = %u!", setListener); - - if (setListener == SET_TIME_LISTENER) { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClickAlarmWeekOk set time!"); - if ((AlarmClockModel::GetInstance()->GetClockTime(alarmListener, &clockTime)) == false) { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter ClickAlarmWeekOk error"); + void AlarmPresenter::ClickAlarmTimeOk(uint16_t num) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter ALARM_OK"); + UNUSED(num); + AlarmClockModel::GetInstance()->SetAlarmTime(timeHour, timeMin, alarmListener); + uint32_t clockTime = ((timeHour << 16) | timeMin); // 闹钟时间小时的存储位需要右移16位 + uint8_t clockWeek; + if ((AlarmClockModel::GetInstance()->GetClockWeek(alarmListener, &clockWeek)) == false) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter ClickAlarmTimeOk error"); return; } - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClickAlarmWeekOk time = %d", clockTime); - AlarmClockModel::GetInstance()->SetAlarmWeek(clockWeek, alarmListener); - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClickAlarmWeekOk week = %u", clockWeek); - AlarmConfigView::GetInstance()->RefreshConfig(clockTime, clockWeek, UNUSED_NUM); - if (MainAlarmView::GetInstance() == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickAlarmWeekOk new MainAlarmView::GetInstance() error"); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter time = %u", clockTime); + AlarmClockModel::GetInstance()->DelAlarmDelay(alarmListener); + + if (MainAlarmView::GetInstance() == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickAlarmTimeOk new MainAlarmView::GetInstance() error"); return; } AlarmClockModel::GetInstance()->ButtonStatusRing(alarmListener, true); MainAlarmView::GetInstance()->RefreshAlarm(); - 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; - WEARABLE_LOGD(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)) == false) { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter ClickAlarmWeekOk error"); + if (AlarmConfigView::GetInstance() == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickAlarmTimeOk new AlarmConfigView::GetInstance() error"); return; } - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClickAlarmWeekOk time = %d", clockTime); - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClickAlarmWeekOk week = %u", clockWeek); - if (MainAlarmView::GetInstance() == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickAlarmWeekOk new MainAlarmView::GetInstance() error"); + AlarmConfigView::GetInstance()->RefreshConfig(clockTime, clockWeek, UNUSED_NUM); + MainAlarmView::GetInstance()->ChangeView(CHANGE_INTERFACE_SET_TIME, CHANGE_INTERFACE_CONFIG); + } + + void AlarmPresenter::ClickAlarmClock(uint16_t num) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter AlarmClock1"); + clockQty = AlarmClockModel::GetInstance()->GetAlarmNum(); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "------AlarmPresenter alarmNumbel = %u", clockQty); + setListener = SET_TIME_LISTENER; + alarmListener = num; + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter alarmListener = %u", alarmListener); + uint32_t clockTime; + uint8_t clockWeek; + if ((AlarmClockModel::GetInstance()->GetClockTime(alarmListener, &clockTime)) == false) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter ClickAlarmClock error"); return; } - MainAlarmView::GetInstance()->RefreshAlarm(); - MainAlarmView::GetInstance()->ChangeView(CHANGE_INTERFACE_SET_WEEK, MAIN_INTERFACE); + if ((AlarmClockModel::GetInstance()->GetClockWeek(alarmListener, &clockWeek)) == false) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter ClickAlarmClock error"); + return; + } + if (MainAlarmView::GetInstance() == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickAlarmClock new MainAlarmView::GetInstance() error"); + return; + } + MainAlarmView::GetInstance()->ChangeView(MAIN_INTERFACE, CHANGE_INTERFACE_CONFIG); + if (AlarmConfigView::GetInstance() == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickAlarmClock new AlarmConfigView::GetInstance() error"); + return; + } + AlarmConfigView::GetInstance()->RefreshConfig(clockTime, clockWeek, num); } -} -void AlarmPresenter::ClickAlarmNewTime(uint16_t num) -{ - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter ALARM_NEW_TIME"); - clockQty = AlarmClockModel::GetInstance()->GetAlarmNum(); - WEARABLE_LOGD(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"); - MainAlarmView::GetInstance()->ChangeView(MAIN_INTERFACE, CHANGE_INTERFACE_MAXCLOCK); - return; - } - 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); - if (AlarmNewTimeView::GetInstance() == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickAlarmNewTime new AlarmNewTimeView::GetInstance() error"); - return; + void AlarmPresenter::ClickAlarmWeekOk(uint16_t num) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter ALARM_WEEK_OK"); + UNUSED(num); + uint32_t clockTime; + uint8_t clockWeek = ((alarmWeek[WEEK_BIT6] << WEEK_BIT6) | (alarmWeek[WEEK_BIT5] << WEEK_BIT5) | (alarmWeek[WEEK_BIT4] << WEEK_BIT4) | + (alarmWeek[WEEK_BIT3] << WEEK_BIT3) | (alarmWeek[WEEK_BIT2] << WEEK_BIT2) | (alarmWeek[WEEK_BIT1] << WEEK_BIT1) | alarmWeek[WEEK_BIT0]); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClickAlarmWeekOk setListener = %u!", setListener); + + if (setListener == SET_TIME_LISTENER) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClickAlarmWeekOk set time!"); + if ((AlarmClockModel::GetInstance()->GetClockTime(alarmListener, &clockTime)) == false) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter ClickAlarmWeekOk error"); + return; + } + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClickAlarmWeekOk time = %d", clockTime); + AlarmClockModel::GetInstance()->SetAlarmWeek(clockWeek, alarmListener); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClickAlarmWeekOk week = %u", clockWeek); + AlarmConfigView::GetInstance()->RefreshConfig(clockTime, clockWeek, UNUSED_NUM); + if (MainAlarmView::GetInstance() == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickAlarmWeekOk new MainAlarmView::GetInstance() error"); + return; + } + AlarmClockModel::GetInstance()->ButtonStatusRing(alarmListener, true); + MainAlarmView::GetInstance()->RefreshAlarm(); + 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; + WEARABLE_LOGD(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)) == false) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter ClickAlarmWeekOk error"); + return; + } + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClickAlarmWeekOk time = %d", clockTime); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClickAlarmWeekOk week = %u", clockWeek); + if (MainAlarmView::GetInstance() == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickAlarmWeekOk new MainAlarmView::GetInstance() error"); + return; + } + MainAlarmView::GetInstance()->RefreshAlarm(); + MainAlarmView::GetInstance()->ChangeView(CHANGE_INTERFACE_SET_WEEK, MAIN_INTERFACE); + } } - 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++) { - alarmWeek[i] = 0; - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "alarmWeek[%d] = %u", i, alarmWeek[i]); - } - interListener = NEW_TIME_LISTENER; - if (MainAlarmView::GetInstance() == nullptr) { - 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; - } - if (AlarmSetWeekView::GetInstance() == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickAlarmNext new AlarmSetWeekView::GetInstance() error"); - return; + void AlarmPresenter::ClickAlarmNewTime(uint16_t num) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter ALARM_NEW_TIME"); + clockQty = AlarmClockModel::GetInstance()->GetAlarmNum(); + WEARABLE_LOGD(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"); + MainAlarmView::GetInstance()->ChangeView(MAIN_INTERFACE, CHANGE_INTERFACE_MAXCLOCK); + return; + } + 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); + if (AlarmNewTimeView::GetInstance() == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickAlarmNewTime new AlarmNewTimeView::GetInstance() error"); + return; + } + AlarmNewTimeView::GetInstance()->RefreshNewTime(); } - AlarmSetWeekView::GetInstance()->RefreshSetWeek1(); -} -bool AlarmPresenter::OnDrag(UIView& view, const DragEvent& event) -{ - if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT) { - int16_t deltaX; - int16_t deltaY; - deltaX = event.GetDeltaX(); - deltaY = event.GetDeltaY(); - if (MATH_ABS(deltaX) >= MATH_ABS(deltaY) && MATH_ABS(deltaX) > SLIDING_LENGTH) { - MainAlarmView::GetInstance()->DropView(view); + 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++) + { + alarmWeek[i] = 0; + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "alarmWeek[%d] = %u", i, alarmWeek[i]); } + interListener = NEW_TIME_LISTENER; + if (MainAlarmView::GetInstance() == nullptr) + { + 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; + } + if (AlarmSetWeekView::GetInstance() == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickAlarmNext new AlarmSetWeekView::GetInstance() error"); + return; + } + AlarmSetWeekView::GetInstance()->RefreshSetWeek1(); } - return true; -} - -struct AlarmPresentMapper1 { - const char *viewId; - void (AlarmPresenter::*func)(uint16_t); -}; - -static const AlarmPresentMapper1 PresentMapper[] = { - {SET_TIME, &AlarmPresenter::ClickSetTime}, - {SET_WEEK, &AlarmPresenter::ClickSetWeek}, - {ALARM_CLOCK_DELETE, &AlarmPresenter::ClickAlarmClockDelete}, - {JUDGE_DELETE, &AlarmPresenter::ClickJudgeDelete}, - {JUDGE_TRUE, &AlarmPresenter::ClickJudgeTrue}, - {ALARM_OK, &AlarmPresenter::ClickAlarmTimeOk}, - {ADD_BUTTON, &AlarmPresenter::ClickAlarmNewTime}, - {ALARM_NEXT, &AlarmPresenter::ClickAlarmNext}, - {ALARM_WEEK_OK, &AlarmPresenter::ClickAlarmWeekOk}, - {ALARM_CLOCK[THE_FIRST_ALARM], &AlarmPresenter::ClickAlarmClock}, - {ALARM_CLOCK[SECOND_ALARM], &AlarmPresenter::ClickAlarmClock}, - {ALARM_CLOCK[THIRD_ALARM], &AlarmPresenter::ClickAlarmClock}, - {ALARM_CLOCK[FOURTH_ALARM], &AlarmPresenter::ClickAlarmClock}, - {ALARM_CLOCK[FIVE_ALARM], &AlarmPresenter::ClickAlarmClock}, - {ALARM_CLOCK[SIX_ALARM], &AlarmPresenter::ClickAlarmClock}, -}; - -bool AlarmPresenter::ClickFuncId(const char *buttonName) -{ - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "buttonName = %s", buttonName); - uint16_t num; - for (uint16_t i = 0; i < sizeof(PresentMapper) / sizeof(PresentMapper[0]); i++) { - for (num = 0; num < CLOCK_NUM; num++) { - if (strcmp(buttonName, ALARM_CLOCK[num]) == 0) { - break; + + bool AlarmPresenter::OnDrag(UIView &view, const DragEvent &event) + { + if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT) + { + int16_t deltaX; + int16_t deltaY; + deltaX = event.GetDeltaX(); + deltaY = event.GetDeltaY(); + if (MATH_ABS(deltaX) >= MATH_ABS(deltaY) && MATH_ABS(deltaX) > SLIDING_LENGTH) + { + MainAlarmView::GetInstance()->DropView(view); } } - if (strcmp(buttonName, PresentMapper[i].viewId) == 0) { - (this->*(PresentMapper[i].func))(num); - return true; + return true; + } + + struct AlarmPresentMapper1 + { + const char *viewId; + void (AlarmPresenter::*func)(uint16_t); + }; + + static const AlarmPresentMapper1 PresentMapper[] = { + {SET_TIME, &AlarmPresenter::ClickSetTime}, + {SET_WEEK, &AlarmPresenter::ClickSetWeek}, + {ALARM_CLOCK_DELETE, &AlarmPresenter::ClickAlarmClockDelete}, + {JUDGE_DELETE, &AlarmPresenter::ClickJudgeDelete}, + {JUDGE_TRUE, &AlarmPresenter::ClickJudgeTrue}, + {ALARM_OK, &AlarmPresenter::ClickAlarmTimeOk}, + {ADD_BUTTON, &AlarmPresenter::ClickAlarmNewTime}, + {ALARM_NEXT, &AlarmPresenter::ClickAlarmNext}, + {ALARM_WEEK_OK, &AlarmPresenter::ClickAlarmWeekOk}, + {ALARM_CLOCK[THE_FIRST_ALARM], &AlarmPresenter::ClickAlarmClock}, + {ALARM_CLOCK[SECOND_ALARM], &AlarmPresenter::ClickAlarmClock}, + {ALARM_CLOCK[THIRD_ALARM], &AlarmPresenter::ClickAlarmClock}, + {ALARM_CLOCK[FOURTH_ALARM], &AlarmPresenter::ClickAlarmClock}, + {ALARM_CLOCK[FIVE_ALARM], &AlarmPresenter::ClickAlarmClock}, + {ALARM_CLOCK[SIX_ALARM], &AlarmPresenter::ClickAlarmClock}, + }; + + bool AlarmPresenter::ClickFuncId(const char *buttonName) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "buttonName = %s", buttonName); + uint16_t num; + for (uint16_t i = 0; i < sizeof(PresentMapper) / sizeof(PresentMapper[0]); i++) + { + for (num = 0; num < CLOCK_NUM; num++) + { + if (strcmp(buttonName, ALARM_CLOCK[num]) == 0) + { + break; + } + } + if (strcmp(buttonName, PresentMapper[i].viewId) == 0) + { + (this->*(PresentMapper[i].func))(num); + return true; + } } + return false; } - return false; -} -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) { - alarmWeek[num] = alarmWeek[num] ? CANCEL_DATA: SELECT_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); - } 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); + 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) + { + alarmWeek[num] = alarmWeek[num] ? CANCEL_DATA : SELECT_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); + } + 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.Invalidate(); + return true; } - view.Invalidate(); - return true; -} -bool AlarmPresenter::OnKeyAct(UIView &view, const KeyEvent &event) -{ - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::OnKeyAct"); + bool AlarmPresenter::OnKeyAct(UIView &view, const KeyEvent &event) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::OnKeyAct"); +#if 0 uint16 keyID = event.GetKeyId(); // 如果是power键就返回上一级 if (keyID == static_cast(ZliteKeyCode::ZLITE_KEY_POWER)) @@ -439,25 +484,29 @@ bool AlarmPresenter::OnKeyAct(UIView &view, const KeyEvent &event) uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId(); NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST); } - return true; -} - -bool AlarmPresenter::OnClick(UIView &view, const ClickEvent &event) -{ - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::OnClick "); - bool jug = ClickFuncId(view.GetViewId()); - if (jug == false) { - ClickFuncView(view); +#endif + return true; } - return true; -} -bool AlarmStatusBtnChangeListener::OnChange(UICheckBox::UICheckBoxState state) -{ - if (MainAlarmView::GetInstance()->GetRefreshStatus() == true) { + bool AlarmPresenter::OnClick(UIView &view, const ClickEvent &event) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::OnClick "); + bool jug = ClickFuncId(view.GetViewId()); + if (jug == false) + { + ClickFuncView(view); + } return true; } - switch (state) { + + bool AlarmStatusBtnChangeListener::OnChange(UICheckBox::UICheckBoxState state) + { + if (MainAlarmView::GetInstance()->GetRefreshStatus() == true) + { + return true; + } + switch (state) + { case UICheckBox::SELECTED: AlarmClockModel::GetInstance()->ButtonStatusRing(alarmStatusNum, true); WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmStatusBtnChangeListener::OnChange true"); @@ -469,8 +518,8 @@ bool AlarmStatusBtnChangeListener::OnChange(UICheckBox::UICheckBoxState state) break; default: break; + } + return true; } - return true; -} } \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingModel.h b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingModel.h index 536bc5c9d..f89c87f16 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingModel.h +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingModel.h @@ -55,6 +55,14 @@ struct QuickTraining training2_Image(OHOS::RIDING_60_IMAGE), training3_Image(OHOS::RUNNING_60_IMAGE) {} }; + +#ifdef __cplusplus +extern "C" { +#endif +struct Trainingdata_hard +{ + uint32_t num; +}; /* "src":0, "ty":0, @@ -69,14 +77,6 @@ struct QuickTraining "hr":127, "stp":10000 */ -#ifdef __cplusplus -extern "C" { -#endif -struct Trainingdata_hard -{ - uint32_t num; -}; - struct Trainingdata { //0:手表开启的训练1:APP开启的训练 @@ -116,7 +116,6 @@ Trainingdata *read_Trainingdata_data(uint32_t timedata,uint16_t offset); int write_Trainingdata_data(Trainingdata data); - #ifdef __cplusplus } #endif diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp index 54a840cea..f4c0623c1 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp @@ -16,233 +16,187 @@ #define TIMER 1 #define CHECK 0 #define HARD_OFF 1 -#define TRAINING_PATH "user/userdata/" +#define TRAINING_PATH "user/userdata/sportdata/" namespace OHOS { - -// struct Trainingdata_hard -// { -// uint32_t st; -// uint32_t num; -// }; - -// struct Trainingdata -// { -// //0:手表开启的训练1:APP开启的训练 -// uint32_t src; -// //0:健身类1:舞蹈类2:休闲运动3:球类4:水上项目5:冰上项目6:极限运动 7:其他 -// uint32_t bt; -// //训练类型0:健走1:跑步2:骑行 -// uint32_t ty; -// //开始时间戳 -// uint32_t st; -// //结束时间戳 -// uint32_t sp; -// //训练目标类型 -// uint32_t tgt; -// //训练目标 -// uint32_t tg; -// //目标完成度 -// uint32_t pg; -// //训练时长 -// uint32_t du; -// //卡路里 -// uint32_t ca; -// //距离 -// uint32_t di; -// //平均心率 -// uint32_t hr; -// //步数 -// uint32_t stp; -// //训练强度 -// uint32_t ti; -// //圈数 -// uint32_t cir; -// //最高海拔高度 -// uint32_t alt; -// }; #ifdef __cplusplus -extern "C" { -#endif - //处理数据头 - static void write_Trainingdata_hard_data(uint32_t data) + extern "C" { - char file_path[128]={0}; - sprintf(file_path,"%shard_%d.bin",TRAINING_PATH,data); - - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s",file_path); - FILE *fp= fopen(file_path,"rb+"); - Trainingdata_hard hard; - int ret=0; - if(fp==NULL) - { - hard.num=0; - fp= fopen(file_path,"wb+"); - } - else +#endif + // 处理数据头 + static void write_Trainingdata_hard_data(uint32_t data) { - ret=fread((void *)&hard,sizeof(Trainingdata_hard),1,fp); - } - - fseek(fp, 0, SEEK_SET); - fclose(fp); - - fp= fopen(file_path,"wb+"); - hard.num++; - ret=fwrite((void *)&hard,sizeof(Trainingdata_hard),1,fp); - fseek(fp, 0, SEEK_SET); - fclose(fp); - } - //获得数据个数 - static int get_Trainingdata_data_num(uint32_t data) - { + char file_path[128] = {0}; + sprintf(file_path, "%shard_%d.bin", TRAINING_PATH, data); + + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s", file_path); + FILE *fp = fopen(file_path, "rb+"); + Trainingdata_hard hard; + int ret = 0; + if (fp == NULL) + { + hard.num = 0; + fp = fopen(file_path, "wb+"); + } + else + { + ret = fread((void *)&hard, sizeof(Trainingdata_hard), 1, fp); + } - char file_path[128]={0}; - sprintf(file_path,"%shard_%d.bin",TRAINING_PATH,data); + fseek(fp, 0, SEEK_SET); + fclose(fp); - FILE *fp= fopen(file_path,"ab"); - if(fp==NULL) - { - return 0xffffff; + fp = fopen(file_path, "wb+"); + hard.num++; + ret = fwrite((void *)&hard, sizeof(Trainingdata_hard), 1, fp); + fseek(fp, 0, SEEK_SET); + fclose(fp); } - fseek(fp,0,SEEK_SET); - Trainingdata_hard hard; - int ret=fread((void *)&hard,sizeof(Trainingdata_hard),1,fp); - fseek(fp, 0, SEEK_SET); - fclose(fp); - return hard.num; + // 获得数据个数 + static int get_Trainingdata_data_num(uint32_t data) + { - } + char file_path[128] = {0}; + sprintf(file_path, "%shard_%d.bin", TRAINING_PATH, data); - //写数据 - int write_Trainingdata_data(Trainingdata data) - { - uint64_t time; - uapi_get_timestampe_ms(&time); - uint32_t timeday = time/1000/60/60/12; - char file_path[128]={0}; - sprintf(file_path,"%s%d.bin",TRAINING_PATH,timeday); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s",file_path); - write_Trainingdata_hard_data(timeday); - FILE *fp= fopen(file_path,"ab"); - if(fp==NULL) - { - fopen(file_path,"wb+"); + FILE *fp = fopen(file_path, "ab"); + if (fp == NULL) + { + return 0xffffff; + } + fseek(fp, 0, SEEK_SET); + Trainingdata_hard hard; + int ret = fread((void *)&hard, sizeof(Trainingdata_hard), 1, fp); + fseek(fp, 0, SEEK_SET); + fclose(fp); + return hard.num; } - #if HARD_OFF - int ret=0; - - ret=fwrite((void *)&data,sizeof(Trainingdata),1,fp); - if(ret!=1) + + // 写数据 + int write_Trainingdata_data(Trainingdata data) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "2 fwrite_data %d",ret); - } + uint64_t time; + uapi_get_timestampe_ms(&time); + uint32_t timeday = time / 1000 / 60 / 60 / 12; + char file_path[128] = {0}; + sprintf(file_path, "%s%d.bin", TRAINING_PATH, timeday); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s", file_path); + write_Trainingdata_hard_data(timeday); + FILE *fp = fopen(file_path, "ab"); + if (fp == NULL) + { + fopen(file_path, "wb+"); + } +#if HARD_OFF + int ret = 0; - - #else - if(fp==NULL) + ret = fwrite((void *)&data, sizeof(Trainingdata), 1, fp); + if (ret != 1) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "2 fwrite_data %d", ret); + } +#else + if (fp == NULL) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "file is NULL"); } - Trainingdata_hard hard={0}; - fseek(fp,0,SEEK_SET); - int ret=fread((void *)&hard,sizeof(Trainingdata_hard),1,fp); + Trainingdata_hard hard = {0}; + fseek(fp, 0, SEEK_SET); + int ret = fread((void *)&hard, sizeof(Trainingdata_hard), 1, fp); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "hard num %d",hard.num); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "fread %d",ret); - if(ret==0) + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "hard num %d", hard.num); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "fread %d", ret); + if (ret == 0) { - hard.num=1; - hard.st=timeday; - fseek(fp,0,SEEK_SET); - ret=fwrite((void *)&hard,sizeof(Trainingdata_hard),1,fp); + hard.num = 1; + hard.st = timeday; + fseek(fp, 0, SEEK_SET); + ret = fwrite((void *)&hard, sizeof(Trainingdata_hard), 1, fp); - if(ret!=1) + if (ret != 1) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "fwrite_hard %d",ret); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "fwrite_hard %d", ret); } - - ret=fwrite((void *)&data,sizeof(Trainingdata),1,fp); - if(ret!=1) + + ret = fwrite((void *)&data, sizeof(Trainingdata), 1, fp); + if (ret != 1) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "1 fwrite_data %d",ret); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "1 fwrite_data %d", ret); } } else { - ret=fseek(fp,8,SEEK_END); - if(ret!=0) + ret = fseek(fp, 8, SEEK_END); + if (ret != 0) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "fseek %d",ret); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "fseek %d", ret); } hard.num++; - ret=fwrite((void *)&(hard),sizeof(Trainingdata_hard),1,fp); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "hard num %d",hard.num); - if(ret) + ret = fwrite((void *)&(hard), sizeof(Trainingdata_hard), 1, fp); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "hard num %d", hard.num); + if (ret) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "fwrite_hard %d",ret); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "fwrite_hard %d", ret); } - fseek(fp,0,SEEK_END); + fseek(fp, 0, SEEK_END); // fclose(fp); // fp= fopen(file_path,"ab+"); - ret=fwrite((void *)&data,sizeof(Trainingdata),1,fp); - if(ret!=1) + ret = fwrite((void *)&data, sizeof(Trainingdata), 1, fp); + if (ret != 1) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "2 fwrite_data %d",ret); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "2 fwrite_data %d", ret); } } - #endif - - fseek(fp, 0, SEEK_SET); - fclose(fp); - return 1; - } -//读数据 -Trainingdata *read_Trainingdata_data(uint32_t timedata,uint16_t offset) -{ - char file_path[128]={0}; - sprintf(file_path,"%s%d.bin",TRAINING_PATH,timedata); +#endif - FILE *fp= fopen(file_path,"rb+"); - Trainingdata* data=(Trainingdata*)malloc(sizeof(Trainingdata)); - if(fp==NULL || get_Trainingdata_data_num(timedata)src); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%d %d ",offset,sizeof(Trainingdata)); - #else - fseek(fp,0,SEEK_SET); - Trainingdata_hard hard; - int ret=fread((void *)&hard,sizeof(Trainingdata_hard),1,fp); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "hard num %d",hard.num); - if(ret==0) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "file is NULL"); - return NULL; + fseek(fp, 0, SEEK_SET); + fclose(fp); + return 1; + } + // 读数据 + Trainingdata *read_Trainingdata_data(uint32_t timedata, uint16_t offset) + { + char file_path[128] = {0}; + sprintf(file_path, "%s%d.bin", TRAINING_PATH, timedata); - } - else - { - fread((void *)data,sizeof(Trainingdata),1,fp); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%d",data->src); - } - #endif - fseek(fp, 0, SEEK_SET); - fclose(fp); - return data; -} + FILE *fp = fopen(file_path, "rb+"); + Trainingdata *data = (Trainingdata *)malloc(sizeof(Trainingdata)); + if (fp == NULL || get_Trainingdata_data_num(timedata) < offset) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "file is NULL %d", get_Trainingdata_data_num(timedata)); + return NULL; + } +#if HARD_OFF + fseek(fp, sizeof(Trainingdata) * offset, SEEK_SET); + fread((void *)data, sizeof(Trainingdata), 1, fp); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%d", data->src); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%d %d ", offset, sizeof(Trainingdata)); +#else + fseek(fp, 0, SEEK_SET); + Trainingdata_hard hard; + int ret = fread((void *)&hard, sizeof(Trainingdata_hard), 1, fp); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "hard num %d", hard.num); + if (ret == 0) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "file is NULL"); + return NULL; + } + else + { + fread((void *)data, sizeof(Trainingdata), 1, fp); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%d", data->src); + } +#endif + fseek(fp, 0, SEEK_SET); + fclose(fp); + return data; + } #ifdef __cplusplus -} + } #endif - #if TIMER // 声明定时器变量 static osTimerId_t g_startCounting = NULL; // 定时器 diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/include/TraingCardPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/include/TraingCardPresenter.h index 9ac2030f6..6115d70b3 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/include/TraingCardPresenter.h +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/include/TraingCardPresenter.h @@ -14,6 +14,7 @@ #include "TraingCardView.h" #include "traing/training_card/include/TrainingControlView.h" #include "traing/training_card/include/TrainingDataView.h" +#include "ModelListenerSample.h" namespace OHOS { class TraingCardView; @@ -21,7 +22,8 @@ namespace OHOS class TrainingDataView; class TraingCardPresenter : public Presenter, public UIView::OnClickListener, - public UIView::OnDragListener + public UIView::OnDragListener, + public ModelListenerSample { public: TraingCardPresenter(); @@ -31,6 +33,8 @@ namespace OHOS void OnPause() override; void OnResume() override; void OnStop() override; + virtual void Notify() override; + static TraingCardPresenter *GetInstance(); void ModifiesTime(); diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/include/TrainingDataView.h b/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/include/TrainingDataView.h index 44d55b7cf..7fd16b2a0 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/include/TrainingDataView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/include/TrainingDataView.h @@ -42,6 +42,7 @@ namespace OHOS void PreLoad(void) override; void UnLoad(void) override; UILabelExt *GetTimeLabel(); + void UpdataTime(); private: UIView::OnDragListener *draglistener{nullptr}; diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TraingCardPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TraingCardPresenter.cpp index d70b5eceb..2787f0efc 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TraingCardPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TraingCardPresenter.cpp @@ -123,4 +123,9 @@ namespace OHOS TrainingDataView::GetInstance()->GetTimeLabel()->SetText(TimeStr.c_str()); } } + + void TraingCardPresenter::Notify(void) + { + TrainingDataView::GetInstance()->UpdataTime(); + } } diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingControlView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingControlView.cpp index a4e665a33..c916ea008 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingControlView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingControlView.cpp @@ -11,7 +11,9 @@ #include "components/ui_button.h" #include "traing/include/TraingModel.h" #include "traing/Training_UiConfig.h" - +#include "string" +#include +#include namespace OHOS { @@ -66,7 +68,6 @@ namespace OHOS Add(imagepoint); } - /******************************************************************************************************/ UILabelExt *TrainingControlView::GetLabel() { return labelstop; @@ -76,7 +77,6 @@ namespace OHOS { return buttonStop; } - /******************************************************************************************************/ /* DeInit:删除组件 */ void TrainingControlView::DeInit() diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingDataView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingDataView.cpp index b43cdd124..02f93db63 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingDataView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingDataView.cpp @@ -136,5 +136,21 @@ namespace OHOS { return timerlabel; } + /*更新当前时间*/ + void TrainingDataView::UpdataTime() + { + // 获取当前时间 + struct tm pTM; + time_t seconds; + time(&seconds); + localtime_r(&seconds, &pTM); + + // 解析时间 + int hour = pTM.tm_hour; + int minute = pTM.tm_min; + // 将时间和日期转换为字符串 + std::string stringtime = (hour < 10 ? "0" : "") + std::to_string(hour) + ":" + (minute < 10 ? "0" : "") + std::to_string(minute); + curtimelabel->SetText(stringtime.c_str()); + } }