/*---------------------------------------------------------------------------- * 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(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 &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