From 2494f02dab2e78de22f886eccecc750c7c839742 Mon Sep 17 00:00:00 2001 From: luozheng <1732036298@qq.com> Date: Mon, 14 Jul 2025 11:34:38 +0800 Subject: [PATCH] =?utf8?q?applist=E6=98=BE=E7=A4=BA=E6=96=B9=E5=BC=8F=20?= =?utf8?q?=E9=BB=98=E8=AE=A4=E7=9B=B4=E5=88=97=EF=BC=8C=E6=8E=92=E5=BA=8F?= =?utf8?q?=E4=BD=BF=E7=94=A8=E5=90=8D=E7=A7=B0=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../applist/include/ApplistConfigModel.h | 94 +++++++++ .../nativeui/applist/include/ApplistModel.h | 20 +- .../nativeui/applist/src/ApplistModel.cpp | 197 +++++++++--------- .../peripheral/config/include/ConfigModel.h | 6 +- 4 files changed, 204 insertions(+), 113 deletions(-) create mode 100644 code/sdk/application/wearable/fd230app/nativeui/applist/include/ApplistConfigModel.h diff --git a/code/sdk/application/wearable/fd230app/nativeui/applist/include/ApplistConfigModel.h b/code/sdk/application/wearable/fd230app/nativeui/applist/include/ApplistConfigModel.h new file mode 100644 index 000000000..2befa200a --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/applist/include/ApplistConfigModel.h @@ -0,0 +1,94 @@ +#include "ui_resource_string.h" +#include "AppViewIDs.h" +#include "UiConfig.h" + +namespace OHOS +{ + typedef struct + { + AppViewId id; + const char *iconLarge; + const char *iconSmall; + const char *iconHexagon; + const char *label; + uint16_t TextId; + const char *uid; + const char *zh_name; // 大写英文字母 + const char *en_name; // 英语名称 + } AppItem; + + const AppItem g_nativeAppList[] = { +#ifdef A5133_DEMO_CLIENT + {VIEW_OBU_MESSAGE, PNG_APPLIST_THEME_IMAGE_BIG, PNG_APPLIST_THEME_IMAGE, PNG_APPLIST_DEFAULT_IMG, "OBU", STR_OBU_MESSAGE, nullptr, "O", "OBU"}, +#endif + {VIEW_MAIN_PHONE, PNG_APPLIST_CALLER_IMAGE_BIG, PNG_APPLIST_CALLER_IMAGE, PNG_APPLIST_DEFAULT_IMG, "电话", STR_TELEPHONE, nullptr, "D", "TELEPHONE"}, +#if HEART_APPLIST + {VIEW_HEART_CHART, PNG_APPLIST_HEART_IMAGE_BIG, PNG_APPLIST_HEART_IMAGE, PNG_APPLIST_DEFAULT_IMG, "心率", STR_HEART_RATE, nullptr, "X", "HEART_RATE"}, +#endif + {VIEW_BLOOD_RESULT, PNG_APPLIST_SPO2_IMAGE_BIG, PNG_APPLIST_SPO2_IMAGE, PNG_APPLIST_DEFAULT_IMG, "血氧", STR_BLOOD_OXYGEN, nullptr, "X", "BLOOD_OXYGEN"}, +#if defined(BOARD_W9) + /*W9Slice写宏里面*/ + {VIEW_BLOOD_PRESSURE_CHECK, PNG_APPLIST_BP_MESSURE_IMAGE_BIG, PNG_APPLIST_BP_MESSURE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "血压测量", STR_BP_CHECK, nullptr, "X", "BP_CHECK"}, +#endif +#if defined(BOARD_W9) || defined(BOARD_N9) && 0 + // ECG + {VIEW_ECG, PNG_APPLIST_ECG_IMAGE_BIG, PNG_APPLIST_ECG_IMAGE, PNG_APPLIST_DEFAULT_IMG, "ECG", STR_ECG, nullptr, "E", "ECG"}, + // 情绪 + {VIEW_EMOTION, PNG_APPLIST_EMOTION_IMAGE_BIG, PNG_APPLIST_EMOTION_IMAGE, PNG_APPLIST_DEFAULT_IMG, "情绪", STR_EMOTION, nullptr, "Q", "EMOTION"}, + // 压力 + {VIEW_PRESSURE, PNG_APPLIST_STRESS_IMAGE_BIG, PNG_APPLIST_STRESS_IMAGE, PNG_APPLIST_DEFAULT_IMG, "压力", STR_PRESSURE, nullptr, "Y", "PRESSURE"}, + // 疲劳度 + {VIEW_FATIGUE, PNG_APPLIST_FATIGUE_IMAGE_BIG, PNG_APPLIST_FATIGUE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "疲劳度", STR_FATIGUE_LEVEL, nullptr, "P", "FATIGUE"}, +#endif + {VIEW_SLEEP, PNG_APPLIST_SLEEP_IMAGE_BIG, PNG_APPLIST_SLEEP_IMAGE, PNG_APPLIST_DEFAULT_IMG, "睡眠", STR_SLEEP, nullptr, "S", "SLEEP"}, + {VIEW_TRAINING, PNG_APPLIST_TRAINING_IMAGE_BIG, PNG_APPLIST_TRAINING_IMAGE, PNG_APPLIST_DEFAULT_IMG, "运动", STR_TRAINING, nullptr, "Y", "TRAINING"}, + {VIEW_TRAINING_RECORD, PNG_APPLIST_TRAINING_RECORD_IMAGE_BIG, PNG_APPLIST_TRAINING_RECORD_IMAGE, PNG_APPLIST_DEFAULT_IMG, "运动记录", STR_TRAINING_RECORD, nullptr, "Y", "TRAINING_RECORD"}, + {VIEW_GOAL, PNG_APPLIST_GOAL_IMAGE_BIG, PNG_APPLIST_GOAL_IMAGE, PNG_APPLIST_DEFAULT_IMG, "活动", STR_ACTIVITY, nullptr, "H", "ACTIVITY"}, +#if defined(BOARD_N9) + {VIEW_AI_VOICE, PNG_APPLIST_AIVOICE_IMAGE_BIG, PNG_APPLIST_AIVOICE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "星辰AI", STR_START_AI, nullptr, "X", "START_AI"}, +#else + {VIEW_AI_VOICE, PNG_APPLIST_AIVOICE_IMAGE_BIG, PNG_APPLIST_AIVOICE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "AI全家桶", STR_AI_FAMILY_MEALS, nullptr, "A", "AI_FAMILY_MEALS"}, +// {VIEW_AI_VOICE, "/user/res/AIVoice/aimodels/aimodels_lingxi.bin", "/user/res/AIVoice/aimodels/aimodels_lingxi.bin", PNG_APPLIST_DEFAULT_IMG, "九天大模型", STR_JIUTIAN, nullptr, "J","JIUTIAN"}, +#endif +#ifdef SUPPORT_ALIPAY_SEC + {VIEW_MAIN_ALIPAY, PNG_APPLIST_ALIPAY_IMAGE_BIG, PNG_APPLIST_ALIPAY_IMAGE, PNG_APPLIST_DEFAULT_IMG, "支付宝", STR_ALIPAY, nullptr, "Z", "ALIPAY"}, +#endif + {VIEW_MESSAGE, PNG_APPLIST_MESSAGE_IMAGE_BIG, PNG_APPLIST_MESSAGE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "消息通知", STR_MESSAGE_NOTIFICATION, nullptr, "X", "MESSAGE_NOTIFICATION"}, + {VIEW_COMPASS, PNG_APPLIST_COMPASS_IMAGE_BIG, PNG_APPLIST_COMPASS_IMAGE, PNG_APPLIST_DEFAULT_IMG, "指南针", STR_COMPASS, nullptr, "Z", "COMPASS"}, + {VIEW_CALCULATOR, PNG_APPLIST_INFORMATION_IMAGE_BIG, PNG_APPLIST_INFORMATION_IMAGE, PNG_APPLIST_DEFAULT_IMG, "计算器", STR_CALCULATOR, nullptr, "J", "CALCULATOR"}, + {VIEW_RECORD, PNG_APPLIST_RECORD_IMAGE_BIG, PNG_APPLIST_RECORD_IMAGE, PNG_APPLIST_DEFAULT_IMG, "录音", STR_RECORD, nullptr, "L", "RECORD"}, + {VIEW_FLASHLIGHT, PNG_APPLIST_FLASHLIGHT_IMAGE_BIG, PNG_APPLIST_FLASHLIGHT_IMAGE, PNG_APPLIST_DEFAULT_IMG, "手电筒", STR_FLASHLIGHT, nullptr, "S", "FLASHLIGHT"}, + {VIEW_WEATHER, PNG_APPLIST_WEATHER_IMAGE_BIG, PNG_APPLIST_WEATHER_IMAGE, PNG_APPLIST_DEFAULT_IMG, "天气", STR_WEATHER, nullptr, "T", "WEATHER"}, + {VIEW_MAIN_STOPWATCH, PNG_APPLIST_STOPWATCH_IMAGE_BIG, PNG_APPLIST_STOPWATCH_IMAGE, PNG_APPLIST_DEFAULT_IMG, "秒表", STR_STOPWATCH, nullptr, "M", "STOPWATCH"}, + {VIEW_MAIN_COUNTDOWN, PNG_APPLIST_COUNTDOWN_IMAGE_BIG, PNG_APPLIST_COUNTDOWN_IMAGE, PNG_APPLIST_DEFAULT_IMG, "计时器", STR_TIMER, nullptr, "J", "COUNTDOWN"}, + {VIEW_RESPIRATORY_TRAINING, PNG_APPLIST_BREATHE_IMAGE_BIG, PNG_APPLIST_BREATHE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "呼吸训练", STR_BREATH_TRAINING, nullptr, "H", "BREATH_TRAINING"}, + {VIEW_TAKEPHOTOS, PNG_APPLIST_TACKEPHOTOS_IMAGE_BIG, PNG_APPLIST_TACKEPHOTOS_IMAGE, PNG_APPLIST_DEFAULT_IMG, "遥控拍照", STR_REMOTE_SHOOTING, nullptr, "Y", "REMOTE_SHOOTING"}, + {VIEW_MAIN_ALARM, PNG_APPLIST_ALARM_IMAGE_BIG, PNG_APPLIST_ALARM_IMAGE, PNG_APPLIST_DEFAULT_IMG, "闹钟", STR_ALARM, nullptr, "N", "ALARM"}, + {VIEW_FIND_PHONE, PNG_APPLIST_FINDPHONE_IMAGE_BIG, PNG_APPLIST_FINDPHONE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "查找手机", STR_FIND_PHONE, nullptr, "C", "FIND_PHONE"}, + {VIEW_MUSIC_PLAYER, PNG_APPLIST_MUSIC_IMAGE_BIG, PNG_APPLIST_MUSIC_IMAGE, PNG_APPLIST_DEFAULT_IMG, "音乐播放器", STR_MUSIC, nullptr, "Y", "PLAYER"}, + {VIEW_ASSISTANT, PNG_APPLIST_SMART_IMAGE_BIG, PNG_APPLIST_SMART_IMAGE, PNG_APPLIST_DEFAULT_IMG, "语音助手", STR_VOICE_ASSISTANT, nullptr, "Y", "VOICE_ASSISTANT"}, + {VIEW_SCHEDULE, PNG_APPLIST_SCHEDULE_IMAGE_BIG, PNG_APPLIST_SCHEDULE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "schedule", STR_SCHEDULE, nullptr, "S", "SCHEDULE"}, + {VIEW_CALENDAR, PNG_APPLIST_CALENDAR_IMAGE_BIG, PNG_APPLIST_CALENDAR_IMAGE, PNG_APPLIST_DEFAULT_IMG, "日历", STR_CALENDAR, nullptr, "R", "CALENDAR"}, + {VIEW_SETTING, PNG_APPLIST_SETTING_IMAGE_BIG, PNG_APPLIST_SETTING_IMAGE, PNG_APPLIST_DEFAULT_IMG, "设置", STR_SETTINGS, nullptr, "S", "SETTINGS"}, + // {VIEW_CANVAS_TEST, PNG_APPLIST_DISTURB_IMAGE, PNG_APPLIST_DISTURB_IMAGE, PNG_APPLIST_DEFAULT_IMG, "勿扰模式", STR_DO_NOT_DISTURB, nullptr}, +#if 0 + /*屏蔽Slice*/ + {VIEW_DNOTDISTURB, PNG_APPLIST_DISTURB_IMAGE, PNG_APPLIST_DISTURB_IMAGE, PNG_APPLIST_DEFAULT_IMG, "勿扰模式", STR_DO_NOT_DISTURB, nullptr}, + {VIEW_ADD_CARD, PNG_APPLIST_CARDSET_IMAGE, PNG_APPLIST_CARDSET_IMAGE, PNG_APPLIST_DEFAULT_IMG, "卡片管理", STR_CARD_MANAGEMENT, nullptr}, + {VIEW_SET_DIAL_STYLE, PNG_APPLIST_CHANGEDIAL_IMAGE, PNG_APPLIST_CHANGEDIAL_IMAGE, PNG_APPLIST_DEFAULT_IMG, "更换表盘", STR_WATCH_FACE, nullptr}, + {VIEW_SAVEELE, PNG_APPLIST_SAVEELE_IMAGE, PNG_APPLIST_SAVEELE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "省电模式", STR_POWER_SAVE_MODE, nullptr}, + {VIEW_SOUND_VIBRATION, PNG_APPLIST_VOICE_IMAGE, PNG_APPLIST_VOICE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "声音", STR_SOUND, nullptr}, + {VIEW_PHONEDIR, PNG_APPLIST_CALLLOG_IMAGE, PNG_APPLIST_CALLLOG_IMAGE, PNG_APPLIST_DEFAULT_IMG, "常用联系人", STR_FAVORITE_CONTACTS, nullptr}, + {VIEW_THEME_STYLE, PNG_APPLIST_THEME_IMAGE, PNG_APPLIST_THEME_IMAGE, PNG_APPLIST_DEFAULT_IMG, "显示方式", STR_DISPLAY_MODE, nullptr}, + {VIEW_BRIGHTNESSLEVEL, PNG_APPLIST_BRIGHTNESSLEVEL_IMAGE, PNG_APPLIST_BRIGHTNESSLEVEL_IMAGE, PNG_APPLIST_DEFAULT_IMG, "亮度调节", STR_BRIGHTNESS_ADJUSTMENT, nullptr}, + {VIEW_CLASSIC_BLUETOOTH, PNG_APPLIST_BLUETOOTH_IMAGE, PNG_APPLIST_BLUETOOTH_IMAGE, PNG_APPLIST_DEFAULT_IMG, "蓝牙", STR_BLUETOOTH, nullptr}, + {VIEW_LANGUAGE_SWITCH, PNG_CONNECT_PHONE_IMAGE, PNG_CONNECT_PHONE_IMAGE, PNG_APPLIST_DEFAULT_IMG,"语言切换", nullptr}, + {VIEW_MAIN_TEMP, PNG_APPLIST_TEMP_IMAGE, PNG_APPLIST_TEMP_IMAGE, PNG_APPLIST_DEFAULT_IMG,"体温", nullptr}, + {VIEW_OFFLINEVOICE, PNG_APPLIST_VOCASSIST_IMAGE, PNG_APPLIST_VOCASSIST_IMAGE, PNG_APPLIST_DEFAULT_IMG,"语音助手", nullptr}, + {VIEW_UISAMPLE, PNG_APPLIST_UI_SAMPLE_IMAGE, PNG_APPLIST_UI_SAMPLE_IMAGE, PNG_APPLIST_DEFAULT_IMG,"示例", nullptr}, + {VIEW_MESSAGE, PNG_APPLIST_CALLER_IMAGE, PNG_APPLIST_CALLER_IMAGE, PNG_APPLIST_DEFAULT_IMG,"信息通知", nullptr}, + {VIEW_INDOORWALK, PNG_APPLIST_WALK_IMAGE, PNG_APPLIST_WALK_IMAGE, PNG_APPLIST_DEFAULT_IMG,"室内步行", nullptr}, + {VIEW_INDOORWALK, PNG_APPLIST_WALK_IMAGE, PNG_APPLIST_WALK_IMAGE, PNG_APPLIST_DEFAULT_IMG,"室内步行",STR_ACTIVITY, nullptr}, +#endif + }; +} \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/applist/include/ApplistModel.h b/code/sdk/application/wearable/fd230app/nativeui/applist/include/ApplistModel.h index c6f4462c3..fdbc7ed61 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/applist/include/ApplistModel.h +++ b/code/sdk/application/wearable/fd230app/nativeui/applist/include/ApplistModel.h @@ -11,7 +11,7 @@ #define _APPLIST_MODEL_H_ #include "bundle_info.h" -#include "AppViewIDs.h" +#include "ApplistConfigModel.h" #include "ohos_types.h" #include "components/ui_label_ext.h" @@ -20,16 +20,6 @@ #define APP_MAX_NUM 50 namespace OHOS { -typedef struct { - AppViewId id; - const char *iconLarge; - const char *iconSmall; - const char *iconHexagon; - const char *label; - uint16_t TextId; - const char *uid; -} AppItem; - #define AppListStyle ThemeStyle @@ -61,6 +51,7 @@ public: int GetCurselectImageIndex(void); void SetPreselectImageIndex(int index); int GetPreselectImageIndex(void); + void sortAppItemsByZhName(AppItem applist_n9[], int appLen); void SetInitFlag(bool flag); private: @@ -70,7 +61,12 @@ private: virtual ~ApplistModel(); ApplistPresenter *presenter{nullptr}; - AppItem applist[APP_MAX_NUM] = { VIEW_INVALID, nullptr, nullptr, nullptr,nullptr,STR_EXERCISE_GENERAL, nullptr }; +#if defined(BOARD_N9) + AppItem applist_n9[APP_MAX_NUM] = { VIEW_INVALID, nullptr, nullptr, nullptr,nullptr,STR_EXERCISE_GENERAL, nullptr ,nullptr,nullptr}; +#elif defined(BOARD_W9) + AppItem applist_w9[APP_MAX_NUM] = { VIEW_INVALID, nullptr, nullptr, nullptr,nullptr,STR_EXERCISE_GENERAL, nullptr ,nullptr,nullptr}; + #endif + AppItem applist[APP_MAX_NUM] = { VIEW_INVALID, nullptr, nullptr, nullptr,nullptr,STR_EXERCISE_GENERAL, nullptr ,nullptr,nullptr}; BundleInfo *bundleInfos = nullptr; int32 bundleLen = 0; uint8 appLen = 0; diff --git a/code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistModel.cpp index f4e199fc0..921064d5b 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistModel.cpp @@ -24,106 +24,6 @@ #define HEART_APPLIST 1 namespace OHOS { - /**- APPLSIT - * - 手机 - * - 心率 - * - 血氧 - * - 训练 - * - 训练记录 - * - 活动 - * - AI全家桶 - * - 支付宝 - * - 消息通知 - * - 指南针 - * - 录音 - * - 手电筒 - * - 天气 - * - 秒表 - * - 计时器 - * - 呼吸训练 - * - 遥控拍照 - * - 闹钟 - * - 声音 - * - 查找手机 - * - 勿扰模式 - * - 卡片管理 - * - 更换表盘 - * - 省电模式 - * - 设置 - */ - const AppItem g_nativeAppList[] = { -#ifdef A5133_DEMO_CLIENT - {VIEW_OBU_MESSAGE, PNG_APPLIST_THEME_IMAGE_BIG, PNG_APPLIST_THEME_IMAGE, PNG_APPLIST_DEFAULT_IMG, "OBU", STR_OBU_MESSAGE, nullptr}, -#endif - {VIEW_MAIN_PHONE, PNG_APPLIST_CALLER_IMAGE_BIG, PNG_APPLIST_CALLER_IMAGE, PNG_APPLIST_DEFAULT_IMG, "电话", STR_TELEPHONE, nullptr}, -#if HEART_APPLIST - {VIEW_HEART_CHART, PNG_APPLIST_HEART_IMAGE_BIG, PNG_APPLIST_HEART_IMAGE, PNG_APPLIST_DEFAULT_IMG, "心率", STR_HEART_RATE, nullptr}, -#endif - {VIEW_BLOOD_RESULT, PNG_APPLIST_SPO2_IMAGE_BIG, PNG_APPLIST_SPO2_IMAGE, PNG_APPLIST_DEFAULT_IMG, "血氧", STR_BLOOD_OXYGEN, nullptr}, -#if defined(BOARD_W9) - /*W9Slice写宏里面*/ - {VIEW_BLOOD_PRESSURE_CHECK, PNG_APPLIST_BP_MESSURE_IMAGE_BIG, PNG_APPLIST_BP_MESSURE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "血压测量", STR_BP_CHECK, nullptr}, -#endif -// #if defined(BOARD_N9) -// /*N9Slice写宏里面* -// #endif - #if defined(BOARD_W9) || defined(BOARD_N9) && 0 - //ECG - {VIEW_ECG, PNG_APPLIST_ECG_IMAGE_BIG, PNG_APPLIST_ECG_IMAGE, PNG_APPLIST_DEFAULT_IMG, "ECG", STR_ECG, nullptr}, - //情绪 - {VIEW_EMOTION, PNG_APPLIST_EMOTION_IMAGE_BIG, PNG_APPLIST_EMOTION_IMAGE, PNG_APPLIST_DEFAULT_IMG, "情绪", STR_EMOTION, nullptr}, - //压力 - {VIEW_PRESSURE, PNG_APPLIST_STRESS_IMAGE_BIG, PNG_APPLIST_STRESS_IMAGE, PNG_APPLIST_DEFAULT_IMG, "压力", STR_PRESSURE, nullptr}, - //疲劳度 - {VIEW_FATIGUE, PNG_APPLIST_FATIGUE_IMAGE_BIG, PNG_APPLIST_FATIGUE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "疲劳度", STR_FATIGUE_LEVEL, nullptr}, -#endif - {VIEW_SLEEP, PNG_APPLIST_SLEEP_IMAGE_BIG, PNG_APPLIST_SLEEP_IMAGE, PNG_APPLIST_DEFAULT_IMG, "睡眠", STR_SLEEP, nullptr}, - {VIEW_TRAINING, PNG_APPLIST_TRAINING_IMAGE_BIG, PNG_APPLIST_TRAINING_IMAGE, PNG_APPLIST_DEFAULT_IMG, "运动", STR_TRAINING, nullptr}, - {VIEW_TRAINING_RECORD, PNG_APPLIST_TRAINING_RECORD_IMAGE_BIG, PNG_APPLIST_TRAINING_RECORD_IMAGE, PNG_APPLIST_DEFAULT_IMG, "运动记录", STR_TRAINING_RECORD, nullptr}, - {VIEW_GOAL, PNG_APPLIST_GOAL_IMAGE_BIG, PNG_APPLIST_GOAL_IMAGE, PNG_APPLIST_DEFAULT_IMG, "活动", STR_ACTIVITY, nullptr}, - {VIEW_AI_VOICE, PNG_APPLIST_AIVOICE_IMAGE_BIG, PNG_APPLIST_AIVOICE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "AI全家桶", STR_AI_FAMILY_MEALS, nullptr}, -#ifdef SUPPORT_ALIPAY_SEC - {VIEW_MAIN_ALIPAY, PNG_APPLIST_ALIPAY_IMAGE_BIG, PNG_APPLIST_ALIPAY_IMAGE, PNG_APPLIST_DEFAULT_IMG, "支付宝", STR_ALIPAY, nullptr}, -#endif - {VIEW_MESSAGE, PNG_APPLIST_MESSAGE_IMAGE_BIG, PNG_APPLIST_MESSAGE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "消息通知", STR_MESSAGE_NOTIFICATION, nullptr}, - {VIEW_COMPASS, PNG_APPLIST_COMPASS_IMAGE_BIG, PNG_APPLIST_COMPASS_IMAGE, PNG_APPLIST_DEFAULT_IMG, "指南针", STR_COMPASS, nullptr}, - {VIEW_CALCULATOR, PNG_APPLIST_INFORMATION_IMAGE_BIG, PNG_APPLIST_INFORMATION_IMAGE, PNG_APPLIST_DEFAULT_IMG, "计算器", STR_CALCULATOR, nullptr}, - {VIEW_RECORD, PNG_APPLIST_RECORD_IMAGE_BIG, PNG_APPLIST_RECORD_IMAGE, PNG_APPLIST_DEFAULT_IMG, "录音", STR_RECORD, nullptr}, - {VIEW_FLASHLIGHT, PNG_APPLIST_FLASHLIGHT_IMAGE_BIG, PNG_APPLIST_FLASHLIGHT_IMAGE, PNG_APPLIST_DEFAULT_IMG, "手电筒", STR_FLASHLIGHT, nullptr}, - {VIEW_WEATHER, PNG_APPLIST_WEATHER_IMAGE_BIG, PNG_APPLIST_WEATHER_IMAGE, PNG_APPLIST_DEFAULT_IMG, "天气", STR_WEATHER, nullptr}, - {VIEW_MAIN_STOPWATCH, PNG_APPLIST_STOPWATCH_IMAGE_BIG, PNG_APPLIST_STOPWATCH_IMAGE, PNG_APPLIST_DEFAULT_IMG, "秒表", STR_STOPWATCH, nullptr}, - {VIEW_MAIN_COUNTDOWN, PNG_APPLIST_COUNTDOWN_IMAGE_BIG, PNG_APPLIST_COUNTDOWN_IMAGE, PNG_APPLIST_DEFAULT_IMG, "计时器", STR_TIMER, nullptr}, - {VIEW_RESPIRATORY_TRAINING, PNG_APPLIST_BREATHE_IMAGE_BIG, PNG_APPLIST_BREATHE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "呼吸训练", STR_BREATH_TRAINING, nullptr}, - {VIEW_TAKEPHOTOS, PNG_APPLIST_TACKEPHOTOS_IMAGE_BIG, PNG_APPLIST_TACKEPHOTOS_IMAGE, PNG_APPLIST_DEFAULT_IMG, "遥控拍照", STR_REMOTE_SHOOTING, nullptr}, - {VIEW_MAIN_ALARM, PNG_APPLIST_ALARM_IMAGE_BIG, PNG_APPLIST_ALARM_IMAGE, PNG_APPLIST_DEFAULT_IMG, "闹钟", STR_ALARM, nullptr}, - {VIEW_FIND_PHONE, PNG_APPLIST_FINDPHONE_IMAGE_BIG, PNG_APPLIST_FINDPHONE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "查找手机", STR_FIND_PHONE, nullptr}, - {VIEW_MUSIC_PLAYER, PNG_APPLIST_MUSIC_IMAGE_BIG, PNG_APPLIST_MUSIC_IMAGE, PNG_APPLIST_DEFAULT_IMG, "音乐播放器", STR_MUSIC, nullptr}, - {VIEW_ASSISTANT, PNG_APPLIST_SMART_IMAGE_BIG, PNG_APPLIST_SMART_IMAGE, PNG_APPLIST_DEFAULT_IMG, "语音助手", STR_VOICE_ASSISTANT, nullptr}, - {VIEW_SCHEDULE, PNG_APPLIST_SCHEDULE_IMAGE_BIG, PNG_APPLIST_SCHEDULE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "schedule", STR_SCHEDULE, nullptr}, - {VIEW_CALENDAR, PNG_APPLIST_CALENDAR_IMAGE_BIG, PNG_APPLIST_CALENDAR_IMAGE, PNG_APPLIST_DEFAULT_IMG, "日历", STR_CALENDAR, nullptr}, - {VIEW_SETTING, PNG_APPLIST_SETTING_IMAGE_BIG, PNG_APPLIST_SETTING_IMAGE, PNG_APPLIST_DEFAULT_IMG, "设置", STR_SETTINGS, nullptr}, - // {VIEW_CANVAS_TEST, PNG_APPLIST_DISTURB_IMAGE, PNG_APPLIST_DISTURB_IMAGE, PNG_APPLIST_DEFAULT_IMG, "勿扰模式", STR_DO_NOT_DISTURB, nullptr}, -#if 0 -/*屏蔽Slice*/ - {VIEW_DNOTDISTURB, PNG_APPLIST_DISTURB_IMAGE, PNG_APPLIST_DISTURB_IMAGE, PNG_APPLIST_DEFAULT_IMG, "勿扰模式", STR_DO_NOT_DISTURB, nullptr}, - {VIEW_ADD_CARD, PNG_APPLIST_CARDSET_IMAGE, PNG_APPLIST_CARDSET_IMAGE, PNG_APPLIST_DEFAULT_IMG, "卡片管理", STR_CARD_MANAGEMENT, nullptr}, - {VIEW_SET_DIAL_STYLE, PNG_APPLIST_CHANGEDIAL_IMAGE, PNG_APPLIST_CHANGEDIAL_IMAGE, PNG_APPLIST_DEFAULT_IMG, "更换表盘", STR_WATCH_FACE, nullptr}, - {VIEW_SAVEELE, PNG_APPLIST_SAVEELE_IMAGE, PNG_APPLIST_SAVEELE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "省电模式", STR_POWER_SAVE_MODE, nullptr}, - {VIEW_SOUND_VIBRATION, PNG_APPLIST_VOICE_IMAGE, PNG_APPLIST_VOICE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "声音", STR_SOUND, nullptr}, - {VIEW_PHONEDIR, PNG_APPLIST_CALLLOG_IMAGE, PNG_APPLIST_CALLLOG_IMAGE, PNG_APPLIST_DEFAULT_IMG, "常用联系人", STR_FAVORITE_CONTACTS, nullptr}, - {VIEW_THEME_STYLE, PNG_APPLIST_THEME_IMAGE, PNG_APPLIST_THEME_IMAGE, PNG_APPLIST_DEFAULT_IMG, "显示方式", STR_DISPLAY_MODE, nullptr}, - {VIEW_BRIGHTNESSLEVEL, PNG_APPLIST_BRIGHTNESSLEVEL_IMAGE, PNG_APPLIST_BRIGHTNESSLEVEL_IMAGE, PNG_APPLIST_DEFAULT_IMG, "亮度调节", STR_BRIGHTNESS_ADJUSTMENT, nullptr}, - {VIEW_CLASSIC_BLUETOOTH, PNG_APPLIST_BLUETOOTH_IMAGE, PNG_APPLIST_BLUETOOTH_IMAGE, PNG_APPLIST_DEFAULT_IMG, "蓝牙", STR_BLUETOOTH, nullptr}, - {VIEW_LANGUAGE_SWITCH, PNG_CONNECT_PHONE_IMAGE, PNG_CONNECT_PHONE_IMAGE, PNG_APPLIST_DEFAULT_IMG,"语言切换", nullptr}, - {VIEW_MAIN_TEMP, PNG_APPLIST_TEMP_IMAGE, PNG_APPLIST_TEMP_IMAGE, PNG_APPLIST_DEFAULT_IMG,"体温", nullptr}, - {VIEW_OFFLINEVOICE, PNG_APPLIST_VOCASSIST_IMAGE, PNG_APPLIST_VOCASSIST_IMAGE, PNG_APPLIST_DEFAULT_IMG,"语音助手", nullptr}, - {VIEW_UISAMPLE, PNG_APPLIST_UI_SAMPLE_IMAGE, PNG_APPLIST_UI_SAMPLE_IMAGE, PNG_APPLIST_DEFAULT_IMG,"示例", nullptr}, - {VIEW_MESSAGE, PNG_APPLIST_CALLER_IMAGE, PNG_APPLIST_CALLER_IMAGE, PNG_APPLIST_DEFAULT_IMG,"信息通知", nullptr}, - {VIEW_INDOORWALK, PNG_APPLIST_WALK_IMAGE, PNG_APPLIST_WALK_IMAGE, PNG_APPLIST_DEFAULT_IMG,"室内步行", nullptr}, - {VIEW_INDOORWALK, PNG_APPLIST_WALK_IMAGE, PNG_APPLIST_WALK_IMAGE, PNG_APPLIST_DEFAULT_IMG,"室内步行",STR_ACTIVITY, nullptr}, -#endif - }; - ApplistModel &ApplistModel::GetInstance(void) { static ApplistModel instance; @@ -153,6 +53,58 @@ namespace OHOS { initFlag = flag; } + void ApplistModel::sortAppItemsByZhName(AppItem applist_n9[], int appLen) + { + typedef struct { + char letter; + int index; + } LetterInfo; + + LetterInfo temp[APP_MAX_NUM]; + int count = 0; + + // 提取zh_name中的大写字母并记录原始位置 + for (int i = 0; i < appLen; i++) { + if (applist_n9[i].zh_name && applist_n9[i].zh_name[0] >= 'A' && + applist_n9[i].zh_name[0] <= 'Z') { + temp[count].letter = applist_n9[i].zh_name[0]; + temp[count].index = i; + count++; + } + } + + // 自定义排序:先按字母顺序,再按原始位置 + for (int i = 0; i < count - 1; i++) { + for (int j = i + 1; j < count; j++) { + if (temp[i].letter > temp[j].letter || + (temp[i].letter == temp[j].letter && temp[i].index > temp[j].index)) { + LetterInfo t = temp[i]; + temp[i] = temp[j]; + temp[j] = t; + } + } + } + + // 创建排序后的AppItem临时数组 + AppItem sortedItems[APP_MAX_NUM]; + int sortedIndex = 0; + + // 先放入排序后的大写字母项 + for (int i = 0; i < count; i++) { + sortedItems[sortedIndex++] = applist_n9[temp[i].index]; + } + + // 再放入非大写字母项(保持原顺序) + for (int i = 0; i < appLen; i++) { + if (!applist_n9[i].zh_name || applist_n9[i].zh_name[0] < 'A' || + applist_n9[i].zh_name[0] > 'Z') { + sortedItems[sortedIndex++] = applist_n9[i]; + } + } + + // 更新原数组 + memcpy(applist_n9, sortedItems, sizeof(AppItem) * appLen); + } void ApplistModel::ResolvingJSAppItems(void) { @@ -187,6 +139,29 @@ namespace OHOS nativeAppNum = 0; } appLen = nativeAppNum; + +#if defined(BOARD_N9) + //将applist中数据复制到applist_n9中,applist_n9中数据与applist中数据相同 + memcpy_s(applist_n9, sizeof(AppItem) * APP_MAX_NUM, applist, sizeof(AppItem) * appLen); + //按照英文字母排序 + sortAppItemsByZhName(applist_n9, appLen); + //大写字母按字母表顺序排列,相同字母按原始出现顺序排列 + //打印排序结果 + for (uint8_t i = 0; i < appLen; i++) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "applist_n9[%d].zh_name = %s", i, applist_n9[i].zh_name); + } +#elif defined(BOARD_W9) + //将applist中数据复制到applist_w9中,applist_w9中数据与applist中数据相同 + memcpy_s(applist_w9, sizeof(AppItem) * APP_MAX_NUM, applist, sizeof(AppItem) * appLen); + //按照英文单词排序 + sortAppItemsByZhName(applist_w9, appLen); + for (uint8_t i = 0; i < appLen; i++) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "applist_w9[%d].en_name = %s", i, applist_w9[i].en_name); + } +#endif + #ifdef JS_ENABLE int32_t len = 0; ret = BundleMsClient::GetInstance().GetBundleInfos(0, &bundleInfos, &len); @@ -199,6 +174,22 @@ namespace OHOS } while (len--) { + #if defined(BOARD_N9) + applist_n9[appLen].id = VIEW_EXTERN_APP; + applist_n9[appLen].iconLarge = bundleInfos[len].smallIconPath; + applist_n9[appLen].iconSmall = bundleInfos[len].smallIconPath; + applist_n9[appLen].iconHexagon = bundleInfos[len].bigIconPath; + applist_n9[appLen].label = bundleInfos[len].label; + applist_n9[appLen].uid = bundleInfos[len].bundleName; + #elif defined(BOARD_W9) + applist_w9[appLen].id = VIEW_EXTERN_APP; + applist_w9[appLen].iconLarge = bundleInfos[len].smallIconPath; + applist_w9[appLen].iconSmall = bundleInfos[len].smallIconPath; + applist_w9[appLen].iconHexagon = bundleInfos[len].bigIconPath; + applist_w9[appLen].label = bundleInfos[len].label; + applist_w9[appLen].uid = bundleInfos[len].bundleName; + #endif + applist[appLen].id = VIEW_EXTERN_APP; applist[appLen].iconLarge = bundleInfos[len].smallIconPath; applist[appLen].iconSmall = bundleInfos[len].smallIconPath; @@ -223,7 +214,13 @@ namespace OHOS const AppItem *ApplistModel::GetApplistItems() const { + #if defined(BOARD_N9) + return applist_n9; + #elif defined(BOARD_W9) + return applist_w9; + #else return applist; + #endif } uint8 ApplistModel::GetAppListNum() const diff --git a/code/sdk/drivers/peripheral/config/include/ConfigModel.h b/code/sdk/drivers/peripheral/config/include/ConfigModel.h index 0481217b3..6bfbe4a13 100644 --- a/code/sdk/drivers/peripheral/config/include/ConfigModel.h +++ b/code/sdk/drivers/peripheral/config/include/ConfigModel.h @@ -412,8 +412,12 @@ namespace OHOS {ConfigDataType::DATATYPE_STRING, "dmp_china_mobile_address", "b.fxltsbl.com"},//CONFIGMOFEL_ITEM_DMP_CHINA_MOBILE_ADDRESS 移动入库地址 测试使用适配地址 IP = b.fxltsbl.com 出正式使用商用地址 IP = a.fxltsbl.com {ConfigDataType::DATATYPE_INT, "select_aimodel", "0" },//CONFIGMODEL_ITEM_SELECT_AIMODEL {ConfigDataType::DATATYPE_BOOL, "is_first_time_start", "true" }, //CONFIGMODEL_ITEM_FIRSTTIMESTART true :手表第一次启动,否则不是 - {ConfigDataType::DATATYPE_STRING, "open_ai_api_keys", "-1" }, //CONFIGMODEL_ITEM_OPEN_AI_API_KEYS + {ConfigDataType::DATATYPE_STRING, "open_ai_api_keys", "-1" }, //CONFIGMODEL_ITEM_OPEN_AI_API_KEYS + #if defined(BOARD_N9) + {ConfigDataType::DATATYPE_STRING, "applist_style", "list" }, //CONFIGMODEL_ITEM_APPLIST_STYLE + #else {ConfigDataType::DATATYPE_STRING, "applist_style", "arc_scale_list" }, //CONFIGMODEL_ITEM_APPLIST_STYLE + #endif {ConfigDataType::DATATYPE_INT, "android_or_ios", "0" },//CONFIGMODEL_ITEM_BLE_IOS_OR_ANDROID {ConfigDataType::DATATYPE_INT, "br_pari" , "0"}, {ConfigDataType::DATATYPE_INT, "ota_upgrade" , "0"},// CONFIGMODEL_ITEM_OTA_UPGRADE -- 2.17.1