138 lines
4.6 KiB
C++
138 lines
4.6 KiB
C++
#include "TjdUiAppAlarmModel.h"
|
||
#include "TjdUiAppAlarmPresenter.h"
|
||
#include "debug_print.h"
|
||
#include "sql_alarm.h"
|
||
#include "sql_setting.h"
|
||
#include "sys_config.h"
|
||
#include <stdio.h>
|
||
|
||
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<AlarmItem> &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
|