return &alarmClockModel;
}
-int32_t AlarmClockModel::SaveGlobalAlarmToFile(void)
-{
- std::ofstream fd(ALARM_CLOCK_DATA_PATH);
- if (!fd.good()) {
- (void)mkdir(ALARM_CLOCK_DIRECTORY, S_IREAD | S_IWRITE);
- std::ofstream fd(ALARM_CLOCK_DATA_PATH);
- if (!fd.good()) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SaveGlobalAlarmToFile open fail");
- fd.close();
- return -1;
- }
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "mkdir success!!");
- }
- fd.write((const char *)(&g_alarmClockData), sizeof(g_alarmClockData));
- fd.close();
- return 0;
-}
-
-int32_t AlarmClockModel::GetAlarmGlobalData(uint8 id, AlarmClockInfo *info)
-{
- int32_t ret;
- if (info == nullptr) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetAlarmGlobalData info nullptr!!");
- return -1;
- }
- if (g_alarmClockData[id].alarmClockId != id) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "g_alarmClockData id %u error!", id);
- return -1;
- }
- ret = memcpy_s(info, sizeof(AlarmClockInfo), &g_alarmClockData[id], sizeof(AlarmClockInfo));
- if (ret != EOK) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetAlarmGlobalData fail. ret=%d", ret);
- return ret;
- }
- return 0;
-}
-
-void AlarmClockModel::PushAlarmClockData(AlarmClockQueueMsg alarmClockMsg)
-{
- if (listAlarmClockNum >= LIST_ALARM_CLOCK_MAX) {
- return;
- }
- MUTEX_Lock(g_alarmClockDataMutex);
- listAlarmClockNum++;
- listAlarmClock.PushBack(alarmClockMsg);
- MUTEX_Unlock(g_alarmClockDataMutex);
- SaveGlobalAlarmToFile();
-}
-
-int32_t AlarmClockModel::FetchedAlarmClockData(AlarmClockQueueMsg *alarmClockMsg)
-{
- if (alarmClockMsg == nullptr) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "FetchedAlarmClockData alarmClockMsg nullptr!!");
- return -1;
- }
- if (listAlarmClock.IsEmpty()) {
- return -1;
- } else {
- MUTEX_Lock(g_alarmClockDataMutex);
- if (listAlarmClockNum >= 1) {
- listAlarmClockNum--;
- } else {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "FetchedAlarmClockData listAlarmClockNum invalid, num=%u",
- listAlarmClockNum);
- return -1;
- }
- *alarmClockMsg = listAlarmClock.Front();
- listAlarmClock.PopFront();
- MUTEX_Unlock(g_alarmClockDataMutex);
- }
- return 0;
-}
-
-int32_t AlarmClockModel::InitAlarmClockData(void)
-{
- (void)memset_s(&g_alarmClockData, sizeof(g_alarmClockData), 0, sizeof(g_alarmClockData));
- std::ifstream fd(ALARM_CLOCK_DATA_PATH);
- if (!fd.good()) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitAlarmClockData open fail");
- fd.close();
- return -1;
- } else {
- fd.read((char *)(&g_alarmClockData), sizeof(g_alarmClockData));
- fd.close();
- return 0;
- }
- return 0;
-}
+// int32_t AlarmClockModel::SaveGlobalAlarmToFile(void)
+// {
+// std::ofstream fd(ALARM_CLOCK_DATA_PATH);
+// if (!fd.good()) {
+// (void)mkdir(ALARM_CLOCK_DIRECTORY, S_IREAD | S_IWRITE);
+// std::ofstream fd(ALARM_CLOCK_DATA_PATH);
+// if (!fd.good()) {
+// WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SaveGlobalAlarmToFile open fail");
+// fd.close();
+// return -1;
+// }
+// WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "mkdir success!!");
+// }
+// fd.write((const char *)(&g_alarmClockData), sizeof(g_alarmClockData));
+// fd.close();
+// return 0;
+// }
+
+// int32_t AlarmClockModel::GetAlarmGlobalData(uint8 id, AlarmClockInfo *info)
+// {
+// int32_t ret;
+// if (info == nullptr) {
+// WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetAlarmGlobalData info nullptr!!");
+// return -1;
+// }
+// if (g_alarmClockData[id].alarmClockId != id) {
+// WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "g_alarmClockData id %u error!", id);
+// return -1;
+// }
+// ret = memcpy_s(info, sizeof(AlarmClockInfo), &g_alarmClockData[id], sizeof(AlarmClockInfo));
+// if (ret != EOK) {
+// WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetAlarmGlobalData fail. ret=%d", ret);
+// return ret;
+// }
+// return 0;
+// }
+
+// void AlarmClockModel::PushAlarmClockData(AlarmClockQueueMsg alarmClockMsg)
+// {
+// if (listAlarmClockNum >= LIST_ALARM_CLOCK_MAX) {
+// return;
+// }
+// MUTEX_Lock(g_alarmClockDataMutex);
+// listAlarmClockNum++;
+// listAlarmClock.PushBack(alarmClockMsg);
+// MUTEX_Unlock(g_alarmClockDataMutex);
+// SaveGlobalAlarmToFile();
+// }
+
+// int32_t AlarmClockModel::FetchedAlarmClockData(AlarmClockQueueMsg *alarmClockMsg)
+// {
+// if (alarmClockMsg == nullptr) {
+// WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "FetchedAlarmClockData alarmClockMsg nullptr!!");
+// return -1;
+// }
+// if (listAlarmClock.IsEmpty()) {
+// return -1;
+// } else {
+// MUTEX_Lock(g_alarmClockDataMutex);
+// if (listAlarmClockNum >= 1) {
+// listAlarmClockNum--;
+// } else {
+// WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "FetchedAlarmClockData listAlarmClockNum invalid, num=%u",
+// listAlarmClockNum);
+// return -1;
+// }
+// *alarmClockMsg = listAlarmClock.Front();
+// listAlarmClock.PopFront();
+// MUTEX_Unlock(g_alarmClockDataMutex);
+// }
+// return 0;
+// }
+
+// int32_t AlarmClockModel::InitAlarmClockData(void)
+// {
+// (void)memset_s(&g_alarmClockData, sizeof(g_alarmClockData), 0, sizeof(g_alarmClockData));
+// std::ifstream fd(ALARM_CLOCK_DATA_PATH);
+// if (!fd.good()) {
+// WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitAlarmClockData open fail");
+// fd.close();
+// return -1;
+// } else {
+// fd.read((char *)(&g_alarmClockData), sizeof(g_alarmClockData));
+// fd.close();
+// return 0;
+// }
+// return 0;
+// }
int32_t AlarmClockModel::InitAlarmData(void)
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::InitAlarmData get managementAlarm error!");
return -1;
}
- if (managementAlarm.eventAlarmInfo[0].alarmType == TYPE_INVALID_ALARM_CLOCK) {
- NewFirstTime();
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::InitAlarmData new first alarm");
+ // if (managementAlarm.eventAlarmInfo[0].alarmType == TYPE_INVALID_ALARM_CLOCK) {
+ // NewFirstTime();
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::InitAlarmData new first alarm");
+ // }
+ alarmSerial = 0;
+ for (num = 0; num < CLOCK_MAX; num++) {
+ delete currentAlarm[num];
+ currentAlarm[num] = nullptr;
}
- for (uint16_t i = 0; i < ALARM_CLOCK_MAX; i++) {
+ for (uint16_t i = 0, num = 0; i < ALARM_CLOCK_MAX; i++) {
for (int j = 0; j < ALARM_CLOCK_MAX; j++) {
if (managementAlarm.eventAlarmInfo[j].index == i && managementAlarm.eventAlarmInfo[j].alarmType == TYPE_EVENT_ALARM_CLOCK) {
currentAlarm[num] = &managementAlarm.eventAlarmInfo[j];
SetAlarmId(currentAlarm[num]->alarmClockId);
num++;
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
"AlarmClockModel::InitAlarmData get managementAlarm[%u], the unmber of alarm is %u!", j, alarmSerial);
- if (i > 0) {
+ // if (i > 0) {
alarmSerial++;
- }
+ // }
}
}
}
return;
}
-void AlarmClockModel::NewFirstTime(void)
-{
- uint32_t timeTem = FIRST_CLOCK_HOUR;
- if (currentAlarm[0] == nullptr) {
- currentAlarm[0] = new AlarmClockInfo();
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::NewFirstTime new alarm_clock!");
- }
- currentAlarm[0]->alarmClockId = GetAlarmId();
- currentAlarm[0]->alarmClockEnable = 0;
- currentAlarm[0]->alarmType = 1;
- currentAlarm[0]->nameLen = strlen(alarmName[0]);
- currentAlarm[0]->index = 0;
- currentAlarm[0]->delayNum = 0;
- if (strcpy_s(currentAlarm[0]->alarmClockName, CLOCK_NAME_LENGTH, alarmName[0]) != 0) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::NewFirstTime copy alarmname error!");
- return;
- }
- currentAlarm[0]->alarmTime = (timeTem << 16) | 0x0000; // 第一个闹钟的时间初始化为九点
- currentAlarm[0]->repeatPeriod = 0x7F; // 第一个闹钟的日期设置默认为一周七天全选
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,
- "AlarmClockModel::JudgeClockModel currentAlarm[0]->alarm_time = %u, currentAlarm[0]->repeat_period =%u",
- currentAlarm[0]->alarmTime, currentAlarm[0]->repeatPeriod);
-
- int ret = AddAlarmClock(currentAlarm[0]);
- if (ret != 0) {
- if (currentAlarm[0] != nullptr) {
- delete currentAlarm[0];
- currentAlarm[0] = nullptr;
- }
- return;
- }
- SetAlarmId(currentAlarm[0]->alarmClockId);
- return;
-}
+// void AlarmClockModel::NewFirstTime(void)
+// {
+// uint32_t timeTem = FIRST_CLOCK_HOUR;
+// if (currentAlarm[0] == nullptr) {
+// currentAlarm[0] = new AlarmClockInfo();
+// WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::NewFirstTime new alarm_clock!");
+// }
+// currentAlarm[0]->alarmClockId = GetAlarmId();
+// currentAlarm[0]->alarmClockEnable = 0;
+// currentAlarm[0]->alarmType = 1;
+// currentAlarm[0]->nameLen = strlen(alarmName[0]);
+// currentAlarm[0]->index = 0;
+// currentAlarm[0]->delayNum = 0;
+// if (strcpy_s(currentAlarm[0]->alarmClockName, CLOCK_NAME_LENGTH, alarmName[0]) != 0) {
+// WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::NewFirstTime copy alarmname error!");
+// return;
+// }
+// currentAlarm[0]->alarmTime = (timeTem << 16) | 0x0000; // 第一个闹钟的时间初始化为九点
+// currentAlarm[0]->repeatPeriod = 0x7F; // 第一个闹钟的日期设置默认为一周七天全选
+// WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+// "AlarmClockModel::JudgeClockModel currentAlarm[0]->alarm_time = %u, currentAlarm[0]->repeat_period =%u",
+// currentAlarm[0]->alarmTime, currentAlarm[0]->repeatPeriod);
+
+// int ret = AddAlarmClock(currentAlarm[0]);
+// if (ret != 0) {
+// if (currentAlarm[0] != nullptr) {
+// delete currentAlarm[0];
+// currentAlarm[0] = nullptr;
+// }
+// return;
+// }
+// SetAlarmId(currentAlarm[0]->alarmClockId);
+// return;
+// }
void AlarmClockModel::DeleteClockModel(uint16_t num)
{
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::DeleteClockModel num=%d", num);
if (num >= CLOCK_MAX || currentAlarm[num] == nullptr) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::DeleteClockModel delete clock error!");
return;
currentAlarm[num]->alarmClockId);
DeleteAlarmId(clockId);
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::DeleteClockModel alarmSerial = %u!", alarmSerial);
- for (; num < alarmSerial; num++) {
+ // for (; num < alarmSerial; num++) {
+ // AlarmClockInfo *tempAlarm = currentAlarm[num];
+ // tempAlarm->index = currentAlarm[num]->index;
+ // currentAlarm[num] = currentAlarm[num + 1];
+ // currentAlarm[num]->index = num;
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::UpdataAlarmClock index = %u!",
+ // currentAlarm[num]->index);
+ // if (currentAlarm[num + 1] == nullptr || currentAlarm[num + 1]->alarmType == TYPE_INVALID_ALARM_CLOCK) {
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::DeleteClockModel fail");
+ // currentAlarm[num] = tempAlarm;
+ // return;
+ // }
+ // int ret = UpdataAlarmClock(currentAlarm[num]);
+ // if (ret != 0) {
+ // currentAlarm[num] = tempAlarm;
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::DeleteClockModel [%d]", __LINE__);
+ // return;
+ // }
+ // }
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::DeleteClockModel [%d]", __LINE__);
+ // currentAlarm[alarmSerial] = nullptr;
+
+ for (; num < alarmSerial - 1; num++)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::DeleteClockModel. current_index = %u!", currentAlarm[num]->index);
+ if (currentAlarm[num + 1] == nullptr || currentAlarm[num + 1]->alarmType == TYPE_INVALID_ALARM_CLOCK)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::DeleteClockModel fail");
+ break;
+ }
AlarmClockInfo *tempAlarm = currentAlarm[num];
- tempAlarm->index = currentAlarm[num]->index;
currentAlarm[num] = currentAlarm[num + 1];
currentAlarm[num]->index = num;
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::UpdataAlarmClock index = %u!",
- currentAlarm[num]->index);
- if (currentAlarm[num + 1] == nullptr || currentAlarm[num + 1]->alarmType == TYPE_INVALID_ALARM_CLOCK) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::DeleteClockModel fail");
- currentAlarm[num] = tempAlarm;
- return;
- }
+
int ret = UpdataAlarmClock(currentAlarm[num]);
- if (ret != 0) {
+ if (ret != 0)
+ {
currentAlarm[num] = tempAlarm;
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::DeleteClockModel [%d]", __LINE__);
return;
}
}
- currentAlarm[alarmSerial] = nullptr;
+ currentAlarm[alarmSerial - 1] = nullptr;
}
bool AlarmClockModel::ButtonStatusRing(int16_t num, bool alarmStatus)
return AlmmgrGetSmartAlarmCnt();
}
+void AlarmClockModel::UpdateAlarmInfoByAppSet(void)
+{
+ if(nullptr != OHOS::AlarmPresenter::GetInstance())
+ {
+ OHOS::AlarmPresenter::GetInstance()->UpdateAlarmInfoByAppSet();
+ }
+}
+
+
bool AlarmPlayerListener::IsPaused()
{
return isPaused_;
}
return;
}
-}
-void PushAlarmClockDataToModel(AlarmClockQueueMsg alarmClockMsg)
-{
- OHOS::AlarmClockModel::GetInstance()->PushAlarmClockData(alarmClockMsg);
}
+// void PushAlarmClockDataToModel(AlarmClockQueueMsg alarmClockMsg)
+// {
+// OHOS::AlarmClockModel::GetInstance()->PushAlarmClockData(alarmClockMsg);
+// }
+
#ifdef __cplusplus
}
#endif
constexpr uint8_t WEEK_BIT2 = 2;\r
constexpr uint8_t WEEK_BIT1 = 1;\r
constexpr uint8_t WEEK_BIT0 = 0;\r
-constexpr uint16_t ALARM_MAX_NUM = 4;\r
+constexpr uint16_t ALARM_MAX_NUM = 5; // 4;\r
constexpr int32_t BUTTON_MAX_NUM = 7;\r
constexpr uint16_t CLOCK_NUM = 5;\r
constexpr uint8_t CANCEL_DATA = 0;\r
{\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter OnStart");\r
Presenter<MainAlarmView>::OnStart();\r
+\r
+ OHOS::AlarmClockModel::GetInstance()->InitAlarmData();\r
}\r
\r
void AlarmPresenter::OnPause(void) {}\r
\r
void AlarmPresenter::OnResume(void) {}\r
\r
-void AlarmPresenter::OnStop(void) {}\r
+void AlarmPresenter::OnStop(void)\r
+{\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter OnStop");\r
+}\r
\r
AlarmPresenter *AlarmPresenter::GetInstance()\r
{\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickJudgeTrue new MainAlarmView::GetInstance() error");\r
return;\r
}\r
- MainAlarmView::GetInstance()->RefreshAlarm();\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[@CHENG][%d]:", __LINE__);\r
clockQty--;\r
- for (uint16_t alarmNum = 0; alarmNum < clockQty; alarmNum++) {\r
- // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[@CHENG][%d]:%d", __LINE__, alarmNum);\r
-\r
- if (!(AlarmClockModel::GetInstance()->GetClockTime(alarmNum, &clockTime))) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter ClickJudgeTrue error");\r
- return;\r
- }\r
- MainAlarmView::GetInstance()->RefreshAlarm();\r
- }\r
AlarmClockModel::GetInstance()->SetSerialRdc();\r
+ MainAlarmView::GetInstance()->RefreshAlarm();\r
MainAlarmView::GetInstance()->ChangeView(CHANGE_INTERFACE_JUDGE, MAIN_INTERFACE);\r
+\r
+ // MainAlarmView::GetInstance()->RefreshAlarm();\r
+ // clockQty--;\r
+ // for (uint16_t alarmNum = 0; alarmNum < clockQty; alarmNum++) {\r
+ // // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[@CHENG][%d]:%d", __LINE__, alarmNum);\r
+\r
+ // if (!(AlarmClockModel::GetInstance()->GetClockTime(alarmNum, &clockTime))) {\r
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter ClickJudgeTrue error");\r
+ // return;\r
+ // }\r
+ // MainAlarmView::GetInstance()->RefreshAlarm();\r
+ // }\r
+ // AlarmClockModel::GetInstance()->SetSerialRdc();\r
+ // MainAlarmView::GetInstance()->ChangeView(CHANGE_INTERFACE_JUDGE, MAIN_INTERFACE);\r
}\r
\r
void AlarmPresenter::ClickAlarmTimeOk(uint16_t num)\r
MainAlarmView::GetInstance()->ChangeView(CHANGE_INTERFACE_SET_WEEK, CHANGE_INTERFACE_CONFIG);\r
} else if (setListener == NEW_TIME_LISTENER) {\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClickAlarmWeekOk new time!");\r
- clockQty++;\r
+ // clockQty++;\r
alarmListener = clockQty;\r
+ clockQty++;\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "******************ClickAlarmWeekOk alarmListener = %d***************", alarmListener);\r
AlarmClockModel::GetInstance()->SetSerialAdd();\r
AlarmClockModel::GetInstance()->SetAlarmInfo(timeHour, timeMin, clockWeek, alarmListener, setListener);\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::OnSwipe ");\r
view.SetIntercept((0 == view.GetCurrentPage()) ? false : true);\r
}\r
+\r
+void AlarmPresenter::UpdateAlarmInfoByAppSet(void)\r
+{\r
+ NativeAbility::GetInstance().Back();\r
+}\r
+\r
}
\ No newline at end of file