From 1f18651ffabf3ed2dd0e693367b3149b27c9c006 Mon Sep 17 00:00:00 2001 From: xuedong Date: Mon, 19 Aug 2024 15:05:01 +0800 Subject: [PATCH] fix: modify dpms service start sequence Signed-off-by: xuedong --- .../service/native/include/display_system_ability.h | 2 ++ .../service/native/src/display_power_mgr_service.cpp | 8 +++----- .../service/native/src/display_system_ability.cpp | 12 +++++++++++- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/state_manager/service/native/include/display_system_ability.h b/state_manager/service/native/include/display_system_ability.h index c602714..a5a829b 100644 --- a/state_manager/service/native/include/display_system_ability.h +++ b/state_manager/service/native/include/display_system_ability.h @@ -38,6 +38,8 @@ public: private: sptr service_; + bool isDpmsLoaded{false}; + bool isDataLoaded{false}; }; } } diff --git a/state_manager/service/native/src/display_power_mgr_service.cpp b/state_manager/service/native/src/display_power_mgr_service.cpp index 130d9a4..63485ea 100644 --- a/state_manager/service/native/src/display_power_mgr_service.cpp +++ b/state_manager/service/native/src/display_power_mgr_service.cpp @@ -46,7 +46,6 @@ const uint32_t GET_DISPLAY_ID_RETRY_COUNT = 3; const uint32_t DEFALUT_DISPLAY_ID = 0; const uint32_t TEST_MODE = 1; const uint32_t NORMAL_MODE = 2; -const uint32_t DEFAULT_BRIGHTNESS = 50; const uint32_t DEFAULT_DIMMING_TIME = 500; } @@ -86,14 +85,14 @@ void DisplayPowerMgrService::Init() #ifdef ENABLE_SENSOR_PART InitSensors(); #endif + SetBootCompletedBrightness(); + SetBootCompletedAutoBrightness(); + RegisterSettingObservers(); RegisterBootCompletedCallback(); } void DisplayPowerMgrService::RegisterBootCompletedCallback() { g_bootCompletedCallback = []() { - SetBootCompletedBrightness(); - SetBootCompletedAutoBrightness(); - RegisterSettingObservers(); isBootCompleted_ = true; }; DisplayParamHelper::RegisterBootCompletedCallback(g_bootCompletedCallback); @@ -119,7 +118,6 @@ void DisplayPowerMgrService::Reset() void DisplayPowerMgrService::SetBootCompletedBrightness() { - DisplaySettingHelper::SetSettingBrightness(DEFAULT_BRIGHTNESS); uint32_t mainDisplayId = DelayedSpSingleton::GetInstance()->GetMainDisplayId(); uint32_t brightness = DelayedSpSingleton::GetInstance()->GetBrightness(mainDisplayId); uint32_t currentDisplayId = BrightnessManager::Get().GetCurrentDisplayId(mainDisplayId); diff --git a/state_manager/service/native/src/display_system_ability.cpp b/state_manager/service/native/src/display_system_ability.cpp index abd823a..1cbd492 100644 --- a/state_manager/service/native/src/display_system_ability.cpp +++ b/state_manager/service/native/src/display_system_ability.cpp @@ -29,12 +29,22 @@ void DisplaySystemAbility::OnStart() { DISPLAY_HILOGI(COMP_SVC, "DisplayPowerService On Start."); AddSystemAbilityListener(DISPLAY_MANAGER_SERVICE_SA_ID); + // we need to listen data service completed when create dpms service + AddSystemAbilityListener(DISTRIBUTED_KV_DATA_SERVICE_ABILITY_ID); } void DisplaySystemAbility::OnAddSystemAbility(int32_t systemAbilityId, const std::string& deviceId) { if (systemAbilityId == DISPLAY_MANAGER_SERVICE_SA_ID) { - DISPLAY_HILOGI(COMP_SVC, "Start service"); + DISPLAY_HILOGI(COMP_SVC, "DISPLAY_MANAGER_SERVICE_SA_ID loaded"); + isDpmsLoaded = true; + } + if (systemAbilityId == DISTRIBUTED_KV_DATA_SERVICE_ABILITY_ID) { + DISPLAY_HILOGI(COMP_SVC, "DISTRIBUTED_KV_DATA_SERVICE_ABILITY_ID loaded"); + isDataLoaded = true; + } + if (isDpmsLoaded && isDataLoaded) { // dpms service and data service both ready + DISPLAY_HILOGI(COMP_SVC, "Start DisplayPowerMgrService"); auto service = DelayedSpSingleton::GetInstance(); service->Init(); if (!Publish(service)) { -- Gitee