152 lines
5.3 KiB
C++
152 lines
5.3 KiB
C++
/*----------------------------------------------------------------------------
|
|
* Copyright (c) TJD Technologies Co., Ltd. 2025. All rights reserved.
|
|
*
|
|
* Description: TjdUiAppMainModel.cpp
|
|
*
|
|
* Author: luziquan@ss-tjd.com
|
|
*
|
|
* Create: 2025-03-13
|
|
*--------------------------------------------------------------------------*/
|
|
|
|
#include "TjdUiAppMainModel.h"
|
|
#include "TjdUiImageIds.h"
|
|
#include "sql_setting.h"
|
|
#include "sys_config.h"
|
|
|
|
#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 {
|
|
|
|
static constexpr int CARD_SETTING_VALUE_LEN = 32;
|
|
|
|
TjdUiAppMainModel::TjdUiAppMainModel() {}
|
|
|
|
TjdUiAppMainModel::~TjdUiAppMainModel() {}
|
|
|
|
TjdUiAppMainModel &TjdUiAppMainModel::GetInstance(void)
|
|
{
|
|
static TjdUiAppMainModel instance;
|
|
return instance;
|
|
}
|
|
|
|
void TjdUiAppMainModel::Init()
|
|
{
|
|
cardInfos.resize(TjdCardId::TJD_CARD_MAX_CARD);
|
|
cardInfos.push_back({TjdCardId::TJD_CARD_FAVORITE, "副一屏", 0});
|
|
cardInfos.push_back({TjdCardId::TJD_CARD_WATCH_FACE, "表盘", 0});
|
|
cardInfos.push_back({TjdCardId::TJD_CARD_HEALTH, "健康", IMG_MAIN_PREVIEW_HEALTH});
|
|
cardInfos.push_back({TjdCardId::TJD_CARD_TOOL, "工具", IMG_MAIN_PREVIEW_TOOL});
|
|
cardInfos.push_back({TjdCardId::TJD_CARD_WEATHER, "天气", IMG_MAIN_PREVIEW_WEATHER});
|
|
cardInfos.push_back({TjdCardId::TJD_CARD_MUSIC, "音乐", IMG_MAIN_PREVIEW_MUSIC});
|
|
cardInfos.push_back({TjdCardId::TJD_CARD_MAKE_FRIEND, "支付交友", IMG_MAIN_PREVIEW_MAKE_FRIENDS});
|
|
cardInfos.push_back({TjdCardId::TJD_CARD_MAP, "地图", IMG_MAIN_PREVIEW_MAP});
|
|
cardInfos.push_back({TjdCardId::TJD_CARD_FOUR_LEAF_CLOVER, "四叶草", IMG_MAIN_PREVIEW_DATA});
|
|
|
|
InitCardSettings();
|
|
}
|
|
|
|
bool TjdUiAppMainModel::IsFromComponentsView(void) const { return isFromComponentsView; }
|
|
|
|
void TjdUiAppMainModel::SetFromComponentsView(bool isFrom) { isFromComponentsView = isFrom; }
|
|
|
|
void TjdUiAppMainModel::SetFromCardId(uint8_t cardId) { fromCardId = cardId; }
|
|
|
|
uint8_t TjdUiAppMainModel::GetFromComponentsCardId(void) { return fromCardId; }
|
|
|
|
void TjdUiAppMainModel::InitCardSettings(void)
|
|
{
|
|
int index = 0;
|
|
|
|
cardSettings.clear();
|
|
cardSettings.resize(TjdCardId::TJD_CARD_MAX_CARD);
|
|
|
|
uint8_t cardNums = 0;
|
|
const uint8_t *cards = sql_setting_get_card_settings(&cardNums);
|
|
if (cardNums > 0 && cards != nullptr) {
|
|
/* 读取用户card配置 */
|
|
for (uint8_t i = 0; i < cardNums; i++) {
|
|
if (index >= TjdCardId::TJD_CARD_MAX_CARD) {
|
|
break;
|
|
}
|
|
cardSettings[index++] = static_cast<TjdCardId>(cards[i]);
|
|
}
|
|
index = cardNums;
|
|
|
|
} else {
|
|
/* 使用默认card配置 */
|
|
cardSettings[index++] = TjdCardId::TJD_CARD_FAVORITE;
|
|
cardSettings[index++] = TjdCardId::TJD_CARD_WATCH_FACE;
|
|
cardSettings[index++] = TjdCardId::TJD_CARD_HEALTH;
|
|
cardSettings[index++] = TjdCardId::TJD_CARD_TOOL;
|
|
cardSettings[index++] = TjdCardId::TJD_CARD_WEATHER;
|
|
cardSettings[index++] = TjdCardId::TJD_CARD_MUSIC;
|
|
cardSettings[index++] = TjdCardId::TJD_CARD_MAKE_FRIEND;
|
|
cardSettings[index++] = TjdCardId::TJD_CARD_MAP;
|
|
cardSettings[index++] = TjdCardId::TJD_CARD_FOUR_LEAF_CLOVER;
|
|
}
|
|
}
|
|
|
|
void TjdUiAppMainModel::DeleteCardSetting(uint8_t index)
|
|
{
|
|
// char temp[CARD_SETTING_VALUE_LEN] = {0};
|
|
// for (uint8_t i = 0; i < cardSettingCount; i++) {
|
|
// if (i == index + 1) {
|
|
// uint8_t j = i;
|
|
// for (; j < cardSettingCount - 1; j++) {
|
|
// cardSettings[j] = cardSettings[j + 1];
|
|
// }
|
|
// cardSettings[j] = TJD_MAIN_MAX_CARD;
|
|
// cardSettingCount--;
|
|
// }
|
|
// }
|
|
|
|
// for (uint8_t i = 0; i < cardSettingCount; i++) {
|
|
// static_print_debug("cardSettings[%d] = %d", i, cardSettings[i]);
|
|
// (void)sprintf_s(temp + strlen(temp), CARD_SETTING_VALUE_LEN, "%d,", cardSettings[i]);
|
|
// }
|
|
// (void)UtilsSetValue("card_setting", temp);
|
|
}
|
|
|
|
void TjdUiAppMainModel::AddCardSetting(uint8_t index)
|
|
{
|
|
// char temp[CARD_SETTING_VALUE_LEN] = {0};
|
|
// if (cardSettingCount >= TJD_MAIN_MAX_CARD) {
|
|
// return;
|
|
// }
|
|
// for (int i = 0; i < cardSettingCount; i++) {
|
|
// if (cardSettings[i] == cardInfos[index].id) {
|
|
// return;
|
|
// }
|
|
// }
|
|
// cardSettings[cardSettingCount++] = cardInfos[index].id;
|
|
// for (uint8_t i = 0; i < cardSettingCount; i++) {
|
|
// static_print_debug("cardSettings[%d] = %d", i, cardSettings[i]);
|
|
// (void)sprintf_s(temp + strlen(temp), CARD_SETTING_VALUE_LEN, "%d,", cardSettings[i]);
|
|
// }
|
|
// (void)UtilsSetValue("card_setting", temp);
|
|
}
|
|
|
|
const std::vector<TjdCardId> &TjdUiAppMainModel::GetCardSettings(void) { return cardSettings; }
|
|
|
|
const CardInfo *TjdUiAppMainModel::GetCardInfo(TjdCardId id)
|
|
{
|
|
for (auto &cardInfo : cardInfos) {
|
|
if (cardInfo.id == id) {
|
|
return &cardInfo;
|
|
}
|
|
}
|
|
return nullptr;
|
|
}
|
|
|
|
} // namespace TJD
|