From 63ed0d4945d6c135c4bd10d47fb3c35f19d4f070 Mon Sep 17 00:00:00 2001 From: Caisking Date: Fri, 22 Aug 2025 14:56:54 +0800 Subject: [PATCH] =?utf8?q?=E4=BF=AE=E6=94=B9mianmodel=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../nativeapp/nativeui/main/src/MainModel.cpp | 195 +++++++----------- 1 file changed, 74 insertions(+), 121 deletions(-) diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/MainModel.cpp b/code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/MainModel.cpp index b5cb32010..138d5f546 100644 --- a/code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/MainModel.cpp +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/MainModel.cpp @@ -125,8 +125,12 @@ namespace OHOS const DialInfo dialInfoMap[] = { #ifdef CUSTOM_Z1 {DIAL_CLOCK, "Z1", DEFAULT_DIALPER_PATH, DEFAULT_TASK_PERIOD}, +#elif defined(BOARD_N9) + {DIAL_CLOCK, "N9", DEFAULT_DIALPER_PATH, DEFAULT_TASK_PERIOD}, +#elif defined(BOARD_W9) + {DIAL_CLOCK, "W9", DEFAULT_DIALPER_PATH, DEFAULT_TASK_PERIOD}, #else - {DIAL_CLOCK, "KUMI", DEFAULT_DIALPER_PATH, DEFAULT_TASK_PERIOD}, // 默认表盘 Id 0 + {DIAL_CLOCK, "KUMI", DEFAULT_DIALPER_PATH, DEFAULT_TASK_PERIOD}, #endif {DIAL_CLOCK_1, "Custom_1", CUSTOM_CLOCK1_DIALPER_PATH, DEFAULT_TASK_PERIOD}, // 表盘 Id 1 {DIAL_CLOCK_2, "Custom_2", CUSTOM_CLOCK2_DIALPER_PATH, DEFAULT_TASK_PERIOD}, // 表盘 Id 2 @@ -134,8 +138,6 @@ namespace OHOS {DIAL_CLOCK_4, "Custom_4", CUSTOM_CLOCK4_DIALPER_PATH, DEFAULT_TASK_PERIOD}, // 表盘 Id 4 {DIAL_CLOCK_5, "Custom_5", CUSTOM_CLOCK5_DIALPER_PATH, DEFAULT_TASK_PERIOD}, // 表盘 Id 4 }; - //默认表盘 - static const char* DEFAULT_CUSTOM_DIAL_PATH = "/user/dial/res_dial/obsidianrhythm.bin"; //卡片map const CardInfo printfMap[] = { {HEART_RATE, "心率卡片"}, @@ -204,7 +206,7 @@ namespace OHOS { if (card == cardInfoMap[i].id) { - WEARABLE_LOGE(WEARABL_LOG_MODULE_APP, "cardInfoMap[%d]:%d\n", i, cardInfoMap[i].id); + WEARABLE_LOGD(WEARABL_LOG_MODULE_APP, "cardInfoMap[%d]:%d\n", i, cardInfoMap[i].id); return &cardInfoMap[i]; } } @@ -217,7 +219,7 @@ namespace OHOS /*初始化卡片设置*/ void MainModel::InitCardSettings(void) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitCardSettings"); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "InitCardSettings"); char temp[CARD_SETTING_VALUE_LEN] = {0}; int len; int index = 0; @@ -249,7 +251,7 @@ namespace OHOS { if (cardInfoSet[i].id == cardSettings[j]) { - WEARABLE_LOGE(WEARABL_LOG_MODULE_APP, "CardSettings:cardInfoSet[%d] is set cardSettings[%d]\r\n", i, j); + WEARABLE_LOGD(WEARABL_LOG_MODULE_APP, "CardSettings:cardInfoSet[%d] is set cardSettings[%d]\r\n", i, j); visible = true; break; } @@ -280,13 +282,13 @@ namespace OHOS cardSettingCount = index; } - printCardSettings(); + // printCardSettings(); WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "InitCardSettings"); } void MainModel::DeleteCardSetting(uint8_t index) { /*设置卡片类型为false cardsetting 重新遍历map里面为ture的卡片{表盘必须存在}*/ - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DeleteCardSetting"); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DeleteCardSetting"); if (cardSettingCount > CARD_SETTING_COUNT_MAX) { @@ -304,7 +306,7 @@ namespace OHOS cardInfoSet[index].isVisible = false; #if 0 int count = sizeof(cardInfoSet) / sizeof(cardInfoSet[0]); - WEARABLE_LOGE(WEARABL_LOG_MODULE_APP, "count:%d\r\n", count); + WEARABLE_LOGD(WEARABL_LOG_MODULE_APP, "count:%d\r\n", count); // 设置map里面的属性 for (uint8_t i = 0; i < count; i++) { @@ -312,10 +314,10 @@ namespace OHOS if (cardInfoMap[index].id == cardInfoSet[i].id) { cardInfoSet[i].isVisible = false; - WEARABLE_LOGE(WEARABL_LOG_MODULE_APP, "删除卡片:cardSettings[%d] is %d \r\n", index + 1, cardSettings[index + 1]); - WEARABLE_LOGE(WEARABL_LOG_MODULE_APP, "设置删除卡片属性:cardInfoSet[%d] is %d \r\n", i, cardInfoSet[i].isVisible); + WEARABLE_LOGD(WEARABL_LOG_MODULE_APP, "删除卡片:cardSettings[%d] is %d \r\n", index + 1, cardSettings[index + 1]); + WEARABLE_LOGD(WEARABL_LOG_MODULE_APP, "设置删除卡片属性:cardInfoSet[%d] is %d \r\n", i, cardInfoSet[i].isVisible); } - WEARABLE_LOGE(WEARABL_LOG_MODULE_APP, "cardInfoSet[%d]:id%d\r\n", i, cardInfoSet[i].id); + WEARABLE_LOGD(WEARABL_LOG_MODULE_APP, "cardInfoSet[%d]:id%d\r\n", i, cardInfoSet[i].id); } #endif int mapindex = 0; @@ -352,14 +354,14 @@ namespace OHOS } (void)UtilsSetValue("card_setting", temp); - printCardSettings(); + // printCardSettings(); WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DeleteCardSetting"); } void MainModel::AddCardSetting(uint8_t index) { /*设置卡片类型为ture cardsetting 重新遍历map里面为ture的卡片{表盘必须存在}*/ - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AddCardSetting"); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AddCardSetting"); if (cardSettingCount > CARD_SETTING_COUNT_MAX) { @@ -404,7 +406,7 @@ namespace OHOS if (cardInfoSet[i].isVisible) { cardSettings[mapindex++] = cardInfoSet[i].id; - WEARABLE_LOGE(WEARABL_LOG_MODULE_APP, "set cardInfoSet[%d]\r\n", i); + WEARABLE_LOGD(WEARABL_LOG_MODULE_APP, "set cardInfoSet[%d]\r\n", i); } } /*设置卡片[不被卡片管理,必须设置] */ @@ -421,7 +423,7 @@ namespace OHOS (void)UtilsSetValue("card_setting", temp); // printCardSettings(); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AddCardSetting"); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AddCardSetting"); } uint8_t MainModel::GetCardSettingCount(void) { @@ -473,19 +475,28 @@ namespace OHOS void MainModel::InitDialSettingDefault(int id) { - //黑耀表盘 + //默认表盘 if(id == DEFAULT_DIAL_ID) { dialSetting.dialFlag = 1; dialSetting.dialId = id; - dialSetting.dialFullName = DEFAULT_CUSTOM_DIAL_PATH; - return; + dialSetting.dialFullName = SetDialModel::GetInstance().GetdialPath(id); + if(dialSetting.dialFullName == "") + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitDialSettingDefault is error"); + // 默认情况下,如果找不到表盘路径,则设置为默认表盘 + id = DIAL_CLOCK; + } + else + { + return; + } } //自定义表盘 if (id < DIAL_CLOCK || id >= DIAL_MAX) id = DIAL_CLOCK; - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitDialSettingDefault"); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "InitDialSettingDefault"); dialSetting.dialFlag = 0; dialSetting.dialId = id; dialSetting.dialFullName.clear(); // 用 clear() 替代空字符串 @@ -511,11 +522,14 @@ namespace OHOS { char temp[DIAL_SETTING_VALUE_LEN] = {0}; // 创建一个临时字符数组用于存储拨号设置的字符串 int len = UtilsGetValue("dial_setting", temp, DIAL_SETTING_VALUE_LEN); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Attempting to load dial settings from kvstore. Length: %d\r\n", len); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Attempting to load dial settings from kvstore. Length: %d\r\n", len); if (len < 0) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Error: Failed to retrieve dial settings. Initializing to default settings.\r\n"); + #if defined(BOARD_W9) + InitDialSettingDefault(DIAL_CLOCK);//W9使用默认静态表盘 + #else //判断黑耀表盘是否存在 if(SetDialModel::GetInstance().IsDialInstalled(DEFAULT_DIAL_ID)) { @@ -525,6 +539,7 @@ namespace OHOS { InitDialSettingDefault(DIAL_CLOCK); } + #endif return; } @@ -537,12 +552,15 @@ namespace OHOS if (setValue) { dialSetting.dialFlag = atoi(setValue); // 将字符串转换为整数 - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Dial flag loaded: %d\r\n", dialSetting.dialFlag); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Dial flag loaded: %d\r\n", dialSetting.dialFlag); } else { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Error: First value is empty. Initializing to default settings.\r\n"); - //判断黑耀表盘是否存在 + #if defined(BOARD_W9) + InitDialSettingDefault(DIAL_CLOCK);//W9使用默认静态表盘 + #else + //判断黑耀表盘是否存在 if(SetDialModel::GetInstance().IsDialInstalled(DEFAULT_DIAL_ID)) { InitDialSettingDefault(DEFAULT_DIAL_ID); @@ -551,6 +569,7 @@ namespace OHOS { InitDialSettingDefault(DIAL_CLOCK); } + #endif return; } @@ -559,11 +578,14 @@ namespace OHOS if (setValue) { dialSetting.dialId = atoi(setValue); // 将字符串转换为整数 - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Dial ID loaded: %d\r\n", dialSetting.dialId); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Dial ID loaded: %d\r\n", dialSetting.dialId); } else { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Error: Second value is empty. Initializing to default settings.\r\n"); + #if defined(BOARD_W9) + InitDialSettingDefault(DIAL_CLOCK);//W9使用默认静态表盘 + #else //判断黑耀表盘是否存在 if(SetDialModel::GetInstance().IsDialInstalled(DEFAULT_DIAL_ID)) { @@ -573,6 +595,7 @@ namespace OHOS { InitDialSettingDefault(DIAL_CLOCK); } + #endif return; } @@ -581,17 +604,17 @@ namespace OHOS if (setValue) { dialSetting.dialFullName = setValue; // 将完整名称赋值 - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Dial full name loaded: %s\r\n", dialSetting.dialFullName.c_str()); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Dial full name loaded: %s\r\n", dialSetting.dialFullName.c_str()); if (dialSetting.dialFullName.empty() || access(dialSetting.dialFullName.c_str(), F_OK) != 0) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Error: Dial full name is invalid or file does not exist. Initializing to default settings.\r\n"); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Error: Dial full name is invalid or file does not exist. Initializing to default settings.\r\n"); InitDialSettingDefault(dialSetting.dialId); } } else { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Error: Third value is empty. Initializing to default settings.\r\n"); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Error: Third value is empty. Initializing to default settings.\r\n"); InitDialSettingDefault(dialSetting.dialId); } } @@ -615,11 +638,11 @@ namespace OHOS void MainModel::InitDialState(void) { // 获取加锁状态 int lockstate = OHOS::ConfigModel::GetInstance()->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_PASSWORD_SWITCH); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "lockstate = %d", lockstate); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "lockstate = %d", lockstate); // 判断加锁状态 if (lockstate == 1) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Device is locked (lock state == 1)"); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Device is locked (lock state == 1)"); uapi_dev_runtime_set_lock_status(1); // 上锁 dialstateInfo[static_cast(DialState::LOCK)].active = true; // 设置锁定状态为真 } @@ -633,26 +656,26 @@ namespace OHOS // 接口 1: 设置某个状态的属性 void MainModel::setDialState(DialState state, bool value) { - // // 将 state 转换为整数以进行比较 - // int stateIndex = static_cast(state); - // if (stateIndex >= 0 && stateIndex < STATE_COUNT) // 确保 index 在有效范围 - // { - // // 检查当前状态是否与要设置的状态一致 - // if (dialstateInfo[stateIndex].active != value) - // { - // dialstateInfo[stateIndex].active = value; // 使用转换后的索引 - // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Set dialstateInfo[%d].active = %d", stateIndex, value); - // SendMsgToUIService(UI_UPDATE_DIALSTATE_DATA, 0, nullptr, 0); // 发送更新消息 - // } - // else - // { - // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "State %d is unchanged, no update needed.", stateIndex); - // } - // } - // else - // { - // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "state %d is error", stateIndex); - // } + // 将 state 转换为整数以进行比较 + int stateIndex = static_cast(state); + if (stateIndex >= 0 && stateIndex < STATE_COUNT) // 确保 index 在有效范围 + { + // 检查当前状态是否与要设置的状态一致 + if (dialstateInfo[stateIndex].active != value) + { + dialstateInfo[stateIndex].active = value; // 使用转换后的索引 + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Set dialstateInfo[%d].active = %d", stateIndex, value); + SendMsgToUIService(UI_UPDATE_DIALSTATE_DATA, 0, nullptr, 0); // 发送更新消息 + } + else + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "State %d is unchanged, no update needed.", stateIndex); + } + } + else + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "state %d is error", stateIndex); + } } // 接口 2: 获取最高优先级为 true 的状态 @@ -662,11 +685,11 @@ namespace OHOS { if (dialstateInfo[i].active) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "high dialstateInfo[%d].active", i); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "high dialstateInfo[%d].active", i); return dialstateInfo[i].state; // 返回活跃状态中优先级最高的 } } - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "no have high dialstateInfo.active"); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "no have high dialstateInfo.active"); return DialState::INVALID; // 如果没有找到活跃状态,返回无效状态 } @@ -699,76 +722,6 @@ namespace OHOS void MainModel::setVideostate(bool state) { video_state = state; } - - -#if 0 - void MainModel::DeleteCardSetting(uint8_t index) - { - char temp[CARD_SETTING_VALUE_LEN] = {0}; - for (uint8_t i = 0; i < cardSettingCount; i++) - { - if (i == index + 1) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "i:%d index:%d", i, index); - uint8_t j = i; - for (; j < cardSettingCount - 1; j++) - { - cardSettings[j] = cardSettings[j + 1]; - } - cardSettings[j] = MAX_CARD; - cardSettingCount--; - } - } - - for (uint8_t i = 0; i < cardSettingCount; i++) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cardSettings[%d] = %d", i, cardSettings[i]); - (void)sprintf_s(temp + strlen(temp), CARD_SETTING_VALUE_LEN, "%d,", cardSettings[i]); - } - (void)UtilsSetValue("card_setting", temp); - - WEARABLE_LOGE(WEARABL_LOG_MODULE_APP, "\r\n***************DeleteCardSetting********************\r\n"); - printCardSettings(); - WEARABLE_LOGE(WEARABL_LOG_MODULE_APP, "\r\n_____________________________________________________\r\n"); - } - - void MainModel::AddCardSetting(uint8_t index) - { - char temp[CARD_SETTING_VALUE_LEN] = {0}; - if (cardSettingCount >= CARD_SETTING_COUNT_MAX) - { - return; - } - for (int i = 0; i < cardSettingCount; i++) - { - if (cardSettings[i] == cardInfoMap[index].id) - { - return; - } - } - cardSettings[cardSettingCount++] = cardInfoMap[index].id; - for (uint8_t i = 0; i < cardSettingCount; i++) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cardSettings[%d] = %d", i, cardSettings[i]); - (void)sprintf_s(temp + strlen(temp), CARD_SETTING_VALUE_LEN, "%d,", cardSettings[i]); - } - (void)UtilsSetValue("card_setting", temp); - - WEARABLE_LOGE(WEARABL_LOG_MODULE_APP, "\r\n***************AddCardSetting********************\r\n"); - printCardSettings(); - else - { - /* 使用默认card配置 */ - cardSettings[index++] = WATCH_FACE; - cardSettings[index++] = HEART_RATE; - cardSettings[index++] = COMPASS; - cardSettings[index++] = MUSIC_PLAYER; - cardSettings[index++] = SETCARD; // 默认卡片增加设置卡片 - cardSettingCount = index; - } - } -#endif - bool MainModel::IsAodEnabled() { char temp[DIAL_SETTING_VALUE_LEN] = { 0 }; -- 2.17.1