From 3d5f99d7f390ee882bac6fd484fe065414e5b16c Mon Sep 17 00:00:00 2001 From: luozheng <1732036298@qq.com> Date: Wed, 26 Mar 2025 10:28:48 +0800 Subject: [PATCH] =?utf8?q?1.=E8=A7=A3=E6=B1=BA=E5=90=88=E5=B9=B6=E6=96=87?= =?utf8?q?=E4=BB=B6=E5=90=8E=E5=AD=97=E4=BD=93=E4=B8=8D=E6=98=BE=E7=A4=BA?= =?utf8?q?=E9=97=AE=E9=A2=98=202.=E6=96=B0=E5=A2=9ERegisterMenuPro?= =?utf8?q?=E5=87=BD=E6=95=B0=E6=94=AF=E6=8C=81=E5=A4=9A=E5=9B=BD=E8=AF=AD?= =?utf8?q?=E8=A8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../wearable/fd230/nativeapp/CMakeLists.txt | 2 + .../include/NativeRegisterManager.h | 20 +++ .../nativelauncher/src/NativeLauncher.cpp | 127 +++++++++++++++--- .../src/NativeRegisterManager.cpp | 19 +++ .../nativeui/applist/include/ApplistModel.h | 3 +- 5 files changed, 154 insertions(+), 17 deletions(-) diff --git a/code/sdk/application/wearable/fd230/nativeapp/CMakeLists.txt b/code/sdk/application/wearable/fd230/nativeapp/CMakeLists.txt index 458348ea3..dc7b0a0d6 100644 --- a/code/sdk/application/wearable/fd230/nativeapp/CMakeLists.txt +++ b/code/sdk/application/wearable/fd230/nativeapp/CMakeLists.txt @@ -96,6 +96,8 @@ set(PRIVATE_HEADER ${ROOT_DIR}/zhihui/UI/CustomUIComponentTool/ ${ROOT_DIR}/application/wearable/fd230/nativeabilityfwk/include + ${NativeApp}/nativeui/ + ) file(GLOB_RECURSE SOURCES "${NativeApp}/nativeui/*.cpp") diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativelauncher/include/NativeRegisterManager.h b/code/sdk/application/wearable/fd230/nativeapp/nativelauncher/include/NativeRegisterManager.h index 0a1278694..343fbac73 100644 --- a/code/sdk/application/wearable/fd230/nativeapp/nativelauncher/include/NativeRegisterManager.h +++ b/code/sdk/application/wearable/fd230/nativeapp/nativelauncher/include/NativeRegisterManager.h @@ -50,6 +50,7 @@ public: void RegisterNative(const AppItem &nativeAppList, NativeRegisterCallback* native); void RegisterSlice(const uint16_t id, SliceProxy* slice); void RegisterMenu(const uint16_t id, const char *icon, const char *iconHexagon, const char *label); + void RegisterMenuPro(const uint16_t id, const char *iconLarge, const char *iconSmall,const char *iconHexagon, const char *label, uint16_t TextId); private: NativeRegisterManager() {}; @@ -82,6 +83,21 @@ public: NativeRegisterManager::GetInstance().RegisterMenu(id, icon, iconHexagon, label); } }; + +//新增的 +class SliceRegister_Pro { +public: + SliceRegister_Pro(const uint16_t id, SliceProxy* sliceProxy, + const char *iconLarge, const char *iconSmall, const char *iconHexagon, + const char *text, uint16_t textId) + { + NativeRegisterManager::GetInstance().RegisterSlice(id, sliceProxy); + NativeRegisterManager::GetInstance().RegisterMenuPro(id, iconLarge, iconSmall, + iconHexagon, text, textId); + } +}; + + } // namespace OHOS #define REGIST_NATIVE(nativeAppList, func) \ @@ -91,4 +107,8 @@ public: #define REGIST_MENU(id, V, P, icon, iconHexagon, label) \ const static OHOS::SliceRegister (STATIC_VAR)(static_cast(id), new AbilitySliceProxy(), \ icon, iconHexagon, label) +//新增的 +#define REGIST_MENU_PRO(id, V, P, iconLarge,iconSmall, iconHexagon, text,textId) \ + const static OHOS::SliceRegister_Pro (STATIC_VAR)(static_cast(id), new AbilitySliceProxy(), \ + iconLarge,iconSmall, iconHexagon, text,textId) #endif // NATIVE_MANAGER_H \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativelauncher/src/NativeLauncher.cpp b/code/sdk/application/wearable/fd230/nativeapp/nativelauncher/src/NativeLauncher.cpp index 5b92f3b9d..128d6dd80 100644 --- a/code/sdk/application/wearable/fd230/nativeapp/nativelauncher/src/NativeLauncher.cpp +++ b/code/sdk/application/wearable/fd230/nativeapp/nativelauncher/src/NativeLauncher.cpp @@ -33,6 +33,10 @@ #include "product_adapter.h" #endif +//头文件加下面 +#include "languagecode/include/LanguageSwitchModel.h" +#include "graphic_config.h" + namespace OHOS { NativeLauncher::NativeLauncher() {} @@ -49,22 +53,113 @@ void NativeLauncher::InitNativeLauncher(LaunchMode mode) #ifdef JS_ENABLE ACELite::ProductAdapter::SetScreenSize(HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION); #endif - GraphicStartUp::InitFontEngine(MEM_POOL_UI_FONT, MEM_POOL_UI_FONT_SIZE, - OHOS::VECTOR_FONT_DIR, DEFAULT_VECTOR_FONT_FILENAME); - WEARABLE_LOGI(WEARABLE_LOG_MODULE_LAUNCHER_FWK, "NativeLauncher::InitNativeLauncher"); - // 初始化所有预加载slice - InitBtHeadsetEvent(); // 蓝牙ct和tg适配初始化 - InitAllNativeSlices(); - CallerLogModel::GetInstance()->InitPhoneService(); - PlayersModel::GetInstance()->AudioInit(); - ActivityModel::GetInstance()->Init(); - ScreenModels::GetInstance()->InitKvStorage(); - VocassistModel::GetInstance()->Init(); - HeartModel::GetInstance()->Init(); - BluetoothModel::GetInstance()->Init(); - // 初始化默认首页 - ScreenModels::GetInstance()->PreLoadAppimages(); - NativeAbility::GetInstance().SetDefaultSliceId(VIEW_MAIN); + WEARABLE_LOGI(WEARABLE_LOG_MODULE_LAUNCHER_FWK, "c %d", mode); + if (mode == LaunchMode::SAFE_MODE) + { + GraphicStartUp::InitFontEngine(MEM_POOL_UI_FONT, MEM_POOL_UI_FONT_SIZE, OHOS::NEW_FONT_DIR, GILROY_BOLD_FONT); // 注册字体 + set_current_global_font_name(GILROY_BOLD_FONT); + if (language::GetInstance()->InitLangues() == false) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitLangues error"); + } + /*加载安全模式Slice*/ + #ifdef FD230_650 + InitSafeModeSlice(); + #endif + NativeAbility::GetInstance().SetDefaultSliceId(VIEW_SAFE_MODE); + // PresenterTask::GetInstance()->Init(); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "safe_mode is enter!"); + } + else if (mode == LaunchMode::NORMAL_MODE) + { + // 初始化语言 + GraphicStartUp::InitFontEngine(MEM_POOL_UI_FONT, MEM_POOL_UI_FONT_SIZE, OHOS::VECTOR_FONT_DIR, HARMONYOS_VECTOR_FONT_FILENAME); + GraphicStartUp::InitFontEngine(MEM_POOL_UI_FONT, MEM_POOL_UI_FONT_SIZE, OHOS::NEW_FONT_DIR, GILROY_BOLD_FONT); // 注册字体 + GraphicStartUp::InitFontEngine(MEM_POOL_UI_FONT, MEM_POOL_UI_FONT_SIZE, OHOS::NEW_FONT_DIR, AUDIOWIDE_REGULAR_FONT); // 注册字体 + + // 默认设置全局字体为HarmonyOSFont,其他时候根据语言选择字体名字 + set_current_global_font_name(HARMONYOS_VECTOR_FONT_FILENAME); + + WEARABLE_LOGI(WEARABLE_LOG_MODULE_LAUNCHER_FWK, "NativeLauncher::InitNativeLauncher fontname %s", DEFAULT_VECTOR_FONT_FILENAME); + /* -------------------------------------------------------------------------- */ + // 从语言json配置里面读取语言包 + if (language::GetInstance()->InitLangues() == false) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitLangues error"); + } + // 初始化所有预加载slice + InitAllNativeSlices(); + #ifdef FD230_650 + CallerLogModel::GetInstance()->InitPhoneService(); + GoalModel::GetInstance().GoalModelInitdata();//活动数据初始化 + // PresenterTask::GetInstance()->Init(); + PlayersModel::GetInstance()->AudioInit(); + ActivityModel::GetInstance()->Init(); + ScreenModels::GetInstance()->InitKvStorage(); + VocassistModel::GetInstance()->Init(); + HeartModel::GetInstance()->Init(); + // BluetoothModel::GetInstance()->Init(); + TraingModel::GetInstance()->Init(); // 训练消息订阅 + TakephotosModel::GetInstance()->Init(); // 拍照消息订阅 + MessageModel::GetInstance().Init(); // 消息订阅监听 + AssistantModel::GetInstance()->Init(); // 语音助手消息订阅 + //音乐列表初始化,放在nativelauncher 初始化,防止手表连接耳机时,操控耳机控制手表音乐造成死机 + do_custom_fileoperate_service_check_msg(CUSTOM_FILEOPERATE_MSG_TYPE_MUSICNAME_READ, nullptr, 0); + + // 初始化默认首页 + ScreenModels::GetInstance()->PreLoadAppimages(); + // NativeAbility::GetInstance().SetDefaultSliceId(VIEW_MAIN); + // 注册按键事件 + RebootAndShutdownModel::GetInstance().RegisterAllKeyEvents(); + + // 开机检测充电状态 + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "get_charge_stat is %d", get_charge_stat()); + if (get_charge_stat()) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Power is Charging!"); + DialModelCharge::GetInstance()->UpdatechargeStatus(1); + } + + /*开机读取天气历史数据*/ + C_ScheduleDataReadFromFile(); + mmi_sleep_mode_switch_read(); + + /*开机读取消息历史数据*/ + if(!MessageModel::GetInstance().LoadMessagesFromStorage()) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LoadMessagesFromStorage failed!"); + } + + /*开机读取睡眠数据*/ + SleepModel::GetInstance().read_sleep_file_data(); + + //更新主表盘配置 + MainModel::GetInstance().InitDialState(); + + // 初始化屏幕亮度 + cm_initScreenBrightness(); + + // 初始化屏幕时长 + cm_initializeScreenDuration(); + + // 开机增加震动 页面启动震动一次 + // ui_api_vibrate_once_func(); + #endif + } + #ifdef FD230_650 + // 注册开机时间 + SystemLogData systemlog; + systemlog.timestamp = SystemLogModel::GetInstance()->GetCurrentTime(); + systemlog.type = SystemLogType::POWER_ON; + // 先读取日志 + SystemLogModel::GetInstance()->loadLog(); + // 再存储日志 + SystemLogModel::GetInstance()->saveLog(systemlog); + // 读取nextday日志 + SystemLogModel::GetInstance()->load_nextday_log(); + // 读取popup_windows日志 + SystemLogModel::GetInstance()->load_popup_windows_log(); + #endif } void NativeLauncher::InitAllNativeSlices(void) diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativelauncher/src/NativeRegisterManager.cpp b/code/sdk/application/wearable/fd230/nativeapp/nativelauncher/src/NativeRegisterManager.cpp index 9d2459a77..7e13cd762 100644 --- a/code/sdk/application/wearable/fd230/nativeapp/nativelauncher/src/NativeRegisterManager.cpp +++ b/code/sdk/application/wearable/fd230/nativeapp/nativelauncher/src/NativeRegisterManager.cpp @@ -87,4 +87,23 @@ void NativeRegisterManager::RegisterMenu(const uint16_t id, const char *icon, co } nativeAppLists_.PushBack(item); } + +void NativeRegisterManager::RegisterMenuPro(const uint16_t id, const char *iconLarge, const char *iconSmall, + const char *iconHexagon, const char *label, uint16_t TextId) +{ + AppItem item = {id, iconLarge, iconSmall, iconHexagon, label, nullptr,TextId}; + ListNode* appNode = nativeAppLists_.Head(); + while (appNode != nativeAppLists_.End()) { + if (id == appNode->data_.id) { + GRAPHIC_LOGE("Register menu failed because id %d already registered.", id); + return; + } + if (id < appNode->data_.id) { + nativeAppLists_.Insert(appNode, item); + return; + } + appNode = appNode->next_; + } + nativeAppLists_.PushBack(item); +} } // namespace OHOS diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/applist/include/ApplistModel.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/applist/include/ApplistModel.h index fdf1a34f2..35e69a81b 100644 --- a/code/sdk/application/wearable/fd230/nativeapp/nativeui/applist/include/ApplistModel.h +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/applist/include/ApplistModel.h @@ -22,6 +22,7 @@ typedef struct { const char *iconHexagon; const char *label; const char *uid; + uint16_t TextId; } AppItem; enum AppListStyle { @@ -56,7 +57,7 @@ private: virtual ~ApplistModel(); ApplistPresenter *presenter{nullptr}; - AppItem applist[APP_MAX_NUM] = { VIEW_INVALID, nullptr, nullptr, nullptr, nullptr, nullptr }; + AppItem applist[APP_MAX_NUM] = { VIEW_INVALID, nullptr, nullptr, nullptr, nullptr, nullptr ,0}; BundleInfo *bundleInfos = nullptr; int32 bundleLen = 0; uint8 appLen = 0; -- 2.17.1