diff --git a/bundle.json b/bundle.json index 643681cbd07dda628e392b625d0f96f50d222acb..c495c661538fd2d2387db1c612cbb4b566016a8b 100644 --- a/bundle.json +++ b/bundle.json @@ -47,7 +47,8 @@ "power_manager_feature_watch_limit_screen_common_event_publish", "power_manager_feature_watch_update_adapt", "power_manager_feature_surport_takeover_suspend", - "power_manager_feature_enable_lid_check" + "power_manager_feature_enable_lid_check", + "power_manager_feature_glasses_boot_completed", ], "adapted_system_type": [ "standard" diff --git a/powermgr.gni b/powermgr.gni index fb7d30b6488fd3585777b86a790a28323aa478c6..707abd404b12be38e8a97e6de581b15bb3234f6e 100644 --- a/powermgr.gni +++ b/powermgr.gni @@ -43,6 +43,7 @@ declare_args() { power_manager_feature_surport_takeover_suspend = false power_manager_feature_init_proximity_controller = false power_manager_feature_enable_lid_check = false + power_manager_feature_glasses_boot_completed = false } defines = [] diff --git a/services/BUILD.gn b/services/BUILD.gn index f65d7af9d0a3229e7d7995882c202e5bb9d233e4..961c7ce4c31b77c45432fdddc1d25732ece8c19b 100644 --- a/services/BUILD.gn +++ b/services/BUILD.gn @@ -271,6 +271,10 @@ ohos_shared_library("powermgrservice") { defines += [ "POWER_MANAGER_TAKEOVER_SUSPEND" ] } + if (power_manager_feature_glasses_boot_completed) { + defines += [ "POWER_MANAGER_ENABLE_GLASSES_BOOT_COMPLETED" ] +} + subsystem_name = "powermgr" part_name = "${powermgr_part_name}" } diff --git a/services/native/src/power_mgr_service.cpp b/services/native/src/power_mgr_service.cpp index 4b0b9c0106e983fbca97b380f820e12407e3d209..6445894635b7c74d18515b87ffa7e251762fca49 100644 --- a/services/native/src/power_mgr_service.cpp +++ b/services/native/src/power_mgr_service.cpp @@ -168,6 +168,11 @@ bool PowerMgrService::Init() screenOffPreController_ = std::make_shared(powerStateMachine_); screenOffPreController_->Init(); } +#ifdef POWER_MANAGER_ENABLE_GLASSES_BOOT_COMPLETED + if (!suspendController_) { + suspendController_ = std::make_shared(shutdownController_, powerStateMachine_, ffrtTimer_); + } +#endif isDuringCallStateEnable_ = system::GetBoolParameter("const.power.during_call_state_enable", false); POWER_HILOGI(COMP_SVC, "powermgr service init success %{public}d", isDuringCallStateEnable_); return true;