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() {};
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) \
#define REGIST_MENU(id, V, P, icon, iconHexagon, label) \
const static OHOS::SliceRegister (STATIC_VAR)(static_cast<uint16_t>(id), new AbilitySliceProxy<V, P>(), \
icon, iconHexagon, label)
+//新增的
+#define REGIST_MENU_PRO(id, V, P, iconLarge,iconSmall, iconHexagon, text,textId) \
+ const static OHOS::SliceRegister_Pro (STATIC_VAR)(static_cast<uint16_t>(id), new AbilitySliceProxy<V, P>(), \
+ iconLarge,iconSmall, iconHexagon, text,textId)
#endif // NATIVE_MANAGER_H
\ No newline at end of file
#include "product_adapter.h"
#endif
+//头文件加下面
+#include "languagecode/include/LanguageSwitchModel.h"
+#include "graphic_config.h"
+
namespace OHOS {
NativeLauncher::NativeLauncher() {}
#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)