#include "TjdUiAppAlarmModel.h" #include "TjdUiAppAlarmPresenter.h" #include "debug_print.h" #include "sql_alarm.h" #include "sql_setting.h" #include "sys_config.h" #include using namespace OHOS; #define ENABLE_PRINT_INFO 1 #if ENABLE_PRINT_INFO #define static_print_info(...) sys_ui_log_i(__VA_ARGS__) // 一般信息打印宏控制 #define static_print_warn(...) sys_ui_log_w(__VA_ARGS__) // 警告信息打印一般常开 #define static_print_error(...) sys_ui_log_e(__VA_ARGS__) // 错误信息打印一般常开 #define static_print_debug(...) sys_ui_log_d(__VA_ARGS__) // 调试信息打印 #else #define static_print_info(...) #define static_print_warn(...) #define static_print_error(...) #define static_print_debug(...) #endif namespace TJD { TjdUiAppAlarmModel &TjdUiAppAlarmModel::GetInstance(void) { static TjdUiAppAlarmModel instance; return instance; } uint8_t TjdUiAppAlarmModel::LoadAlarmData(std::list &list) { printf("TjdUiAppAlarmModel::LoadAlarmData\n"); uint8_t size = sql_alarm_get_alarm_number(&(TjdUiAppAlarmPresenter::GetInstance()->isAlarmFull)); uint8_t alarm_num[size]; uint8_t *array_ptr = alarm_num; sql_alarm_get_alarm_index_list(&array_ptr); for (int i = 0; i < size; i++) { AlarmItem item(0, false, 0, 0, 0); item.index = alarm_num[i]; item.enable = sql_alarm_get_switch(alarm_num[i]) > 0 ? true : false; item.cycle_mode = sql_alarm_get_cycle(alarm_num[i]); sql_alarm_get_time(alarm_num[i], &(item.hour), &(item.minute)); static_print_debug("index:%d enable:%d cycle_mode:%x hour:%d minute:%d", item.index, item.enable, item.cycle_mode, item.hour, item.minute); list.push_back(item); } return size; } bool TjdUiAppAlarmModel::GetWhetherAlarmIsSetToRepeat(uint8_t cycle, uint8_t hour, uint8_t min)//true:repeat false:not repeat { uint8_t size = sql_alarm_get_alarm_number(&(TjdUiAppAlarmPresenter::GetInstance()->isAlarmFull)); printf("size:%d cycle:%d hour:%d min:%d\n", size, cycle, hour, min); uint8_t alarm_num[size]; uint8_t *array_ptr = alarm_num; uint8_t hour_tmp, min_tmp; uint8_t count = 0; sql_alarm_get_alarm_index_list(&array_ptr); for (int i = 0; i < size; i++) { if (sql_alarm_get_cycle(alarm_num[i]) == cycle ) { sql_alarm_get_time(alarm_num[i], &hour_tmp, &min_tmp); if(hour_tmp == hour && min_tmp == min) return true; } } return false; } // 返回创建的闹钟index int8_t TjdUiAppAlarmModel::AddAlarmToSQL(uint8_t cycle, uint8_t hour, uint8_t min) { printf("TjdUiAppAlarmModel::AddAlarmToSQL cycle:%d hour:%d min:%d\n", cycle, hour, min); uint8_t index; if ((index = sql_alarm_create()) >= 0) { sql_alarm_set_switch(index, 1); sql_alarm_set_cycle(index, cycle); sql_alarm_set_time(index, hour, min); } // 创建闹钟数量已达到最大值 return -1; } int8_t TjdUiAppAlarmModel::EditAlarmCycleToSQL(uint8_t index, uint8_t cycle) { int8_t valid = sql_alarm_get_valid(index); if (valid == -1 || valid == 0) { // -1:没有该index,0:该index的无效 return -1; } sql_alarm_set_cycle(index, cycle); return 0; } int8_t TjdUiAppAlarmModel::EditAlarmTimeToSQL(uint8_t index, uint8_t hour, uint8_t min) { printf("CXIN TjdUiAppAlarmModel::EditAlarmTimeToSQL index:%d hour:%d min:%d\n", index, hour, min); int8_t valid = sql_alarm_get_valid(index); if (valid == -1 || valid == 0) { // -1:没有该index,0:该index的无效 return -1; } sql_alarm_set_time(index, hour, min); return 0; } int8_t TjdUiAppAlarmModel::AlarmEnableToSQL(uint8_t index, bool status) { int8_t valid = sql_alarm_get_valid(index); if (valid == -1 || valid == 0) { // -1:没有该index,0:该index的无效 return -1; } sql_alarm_set_switch(index, status); return 0; } void TjdUiAppAlarmModel::DeleteAlarmFromSQL(uint8_t index) { sql_alarm_delete(index); } void TjdUiAppAlarmModel::SetTimeFormat(TjdUITimePicker::TimePickerType &type) { uint8_t format = sql_setting_get_time_format(); printf("TjdUiAppAlarmModel::SetTimeFormat format:%d\n", format); if (format == 0) { type = TjdUITimePicker::TimePickerType::TIME_PICKER_24_HOUR; } else if (format == 1) { type = TjdUITimePicker::TimePickerType::TIME_PICKER_12_HOUR; } } uint8_t TjdUiAppAlarmModel::GetAlarmMaxNumber(void) {return sql_alarm_get_max_number();} } // namespace TJD