From 552fda33d79e496ae6f772f769494b3cdbebab75 Mon Sep 17 00:00:00 2001 From: xuedong Date: Tue, 16 Jan 2024 15:07:35 +0800 Subject: [PATCH] fix: ScreenOn AutoBrightness failed Signed-off-by: xuedong --- .../include/brightness_service.h | 1 + brightness_manager/src/brightness_service.cpp | 29 ++++++++++++++++++- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/brightness_manager/include/brightness_service.h b/brightness_manager/include/brightness_service.h index 9233d96..402e1d0 100644 --- a/brightness_manager/include/brightness_service.h +++ b/brightness_manager/include/brightness_service.h @@ -108,6 +108,7 @@ public: DisplayState GetDisplayState(); bool IsScreenOnState(DisplayState state); bool AutoAdjustBrightness(bool enable); + bool StateChangedSetAutoBrightness(bool enable); bool IsAutoAdjustBrightness(); void ProcessLightLux(float lux); void RegisterSettingBrightnessObserver(); diff --git a/brightness_manager/src/brightness_service.cpp b/brightness_manager/src/brightness_service.cpp index af54fb8..b6ea796 100644 --- a/brightness_manager/src/brightness_service.cpp +++ b/brightness_manager/src/brightness_service.cpp @@ -229,7 +229,7 @@ void BrightnessService::SetDisplayState(uint32_t id, DisplayState state) DISPLAY_HILOGI(FEAT_BRIGHTNESS, "SetDisplayState id=%{public}d, isAutoMode=%{public}d, isScreenOn=%{public}d, "\ "isSettingOn=%{public}d, state=%{public}d", id, isAutoMode, isScreenOn, isSettingOn, state); #ifdef ENABLE_SENSOR_PART - bool isModeChange = AutoAdjustBrightness(isAutoMode); + bool isModeChange = StateChangedSetAutoBrightness(isAutoMode); DISPLAY_HILOGI(FEAT_BRIGHTNESS, "SetDisplayState id=%{public}d, isAutoMode=%{public}d, isModeChange=%{public}d", id, isAutoMode, isModeChange); #endif @@ -293,6 +293,33 @@ bool BrightnessService::AutoAdjustBrightness(bool enable) return true; } +bool BrightnessService::StateChangedSetAutoBrightness(bool enable) +{ + DISPLAY_HILOGI(FEAT_BRIGHTNESS, "StateChangedSetAutoBrightness start, enable=%{public}d, "\ + "isSensorEnabled=%{public}d, isSupport=%{public}d", enable, mIsLightSensorEnabled, mIsSupportLightSensor); + if (!mIsSupportLightSensor) { + DISPLAY_HILOGI(FEAT_BRIGHTNESS, "StateChangedSetAutoBrightness not support"); + SetSettingAutoBrightness(false); + return false; + } + if (enable) { + if (mIsLightSensorEnabled) { + DISPLAY_HILOGI(FEAT_BRIGHTNESS, "StateChangedSetAutoBrightness is already enabled"); + return true; + } + ActivateAmbientSensor(); + DISPLAY_HILOGI(FEAT_BRIGHTNESS, "StateChangedSetAutoBrightness enable"); + } else { + if (!mIsLightSensorEnabled) { + DISPLAY_HILOGI(FEAT_BRIGHTNESS, "StateChangedSetAutoBrightness is already disabled"); + return true; + } + DeactivateAmbientSensor(); + DISPLAY_HILOGI(FEAT_BRIGHTNESS, "StateChangedSetAutoBrightness disable"); + } + return true; +} + void BrightnessService::InitSensors() { DISPLAY_HILOGI(FEAT_BRIGHTNESS, "InitSensors start"); -- Gitee