diff --git a/brightness_manager/include/brightness_service.h b/brightness_manager/include/brightness_service.h index 9233d96f49fe2a649f54f4fa2a071d525816f03a..402e1d05e4004ca9e899511a0a4d6d38c2a7a908 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 af54fb8dfa5951b11f404889a3f532d82bdb4510..b6ea79697f3c8cbb71accc989f6fa3c2e03175d3 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");