diff --git a/bundle.json b/bundle.json index 27569aa04006b9cfb751f8e0e8bd7b7718cc0f94..f7b55215657df4c37f5d833c2ffd2640556e1f79 100644 --- a/bundle.json +++ b/bundle.json @@ -32,6 +32,7 @@ "power_manager_feature_power_dialog", "power_manager_feature_enable_s4", "power_manager_feature_audio_lock_unproxy", + "power_manager_feature_disable_auto_displayoff", "power_manager_feature_doubleclick", "power_manager_feature_pickup", "power_manager_feature_force_sleep_broadcast", diff --git a/powermgr.gni b/powermgr.gni index 374bd1889ad5bb17c766ccc3d208e1fba0ae5412..5a58dc03f048a5f0e1f7afe3f14a711f0f00497e 100644 --- a/powermgr.gni +++ b/powermgr.gni @@ -27,6 +27,7 @@ declare_args() { power_manager_feature_enable_s4 = false power_manager_feature_audio_lock_unproxy = false power_manager_feature_screen_on_timeout_check = false + power_manager_feature_disable_auto_displayoff = false power_manager_feature_doubleclick = true power_manager_feature_pickup = true power_manager_feature_force_sleep_broadcast = false diff --git a/services/BUILD.gn b/services/BUILD.gn index 7fce827054f5657d0770ea611dda63ac7ccdc488..0cb3aa45f388c732d8c0cedfe9939f11cd191cc0 100644 --- a/services/BUILD.gn +++ b/services/BUILD.gn @@ -193,6 +193,10 @@ ohos_shared_library("powermgrservice") { } } + if (power_manager_feature_disable_auto_displayoff) { + defines += [ "POWER_MANAGER_DISABLE_AUTO_DISPLAYOFF" ] + } + if (power_manager_feature_wakeup_action) { sources += [ "native/src/wakeup_action/wakeup_action_controller.cpp", diff --git a/services/native/src/setting/setting_helper.cpp b/services/native/src/setting/setting_helper.cpp index ef6430fa49b49a1c8d071f2bd763bcb615e71fa8..91cf0588527bcd3c3039b8d371ae83e9b8012034 100644 --- a/services/native/src/setting/setting_helper.cpp +++ b/services/native/src/setting/setting_helper.cpp @@ -265,6 +265,13 @@ bool SettingHelper::IsDisplayOffTimeSettingValid() int64_t SettingHelper::GetSettingDisplayOffTime(int64_t defaultVal) { int64_t value = GetSettingLongValue(SETTING_DISPLAY_OFF_TIME_KEY, defaultVal); +#ifdef POWER_MANAGER_DISABLE_AUTO_DISPLAYOFF + constexpr int64_t PARAMETER_ZERO = 0; + if (value < PARAMETER_ZERO) { + POWER_HILOGI(COMP_UTILS, "disable auto displayoff, value=(%{public}" PRId64 ")", value); + return value; + } +#endif if (value <= MIN_DISPLAY_OFF_TIME_MS) { POWER_HILOGW(COMP_UTILS, "%{public}s value=(%{public}" PRId64 ")ms, use defaultVal", __func__, value); value = defaultVal;