From d3a50744da984dd03e7ec0c01eafa56eea451754 Mon Sep 17 00:00:00 2001 From: ShiJie Date: Wed, 19 Jul 2023 14:24:46 +0800 Subject: [PATCH] fix: Set the brightness near the proximity light screen on Signed-off-by: ShiJie Change-Id: I87edf40dddfec00601a20860aaa48cd4ad23d137 --- .../inner_api/native/include/idisplay_power_callback.h | 2 +- service/native/include/display_power_mgr_service.h | 2 +- service/native/include/screen_controller.h | 3 ++- service/native/src/display_power_mgr_service.cpp | 4 ++-- service/native/src/screen_controller.cpp | 7 ++++--- service/zidl/include/display_power_callback_proxy.h | 2 +- service/zidl/src/display_power_callback_proxy.cpp | 3 ++- service/zidl/src/display_power_callback_stub.cpp | 4 +++- test/unittest/include/mock/display_mock_object_test.h | 3 ++- test/unittest/include/mock/display_mock_parcel_test.h | 3 ++- test/unittest/include/mock/display_mock_test.h | 3 ++- test/unittest/src/mock/display_mock_object_test.cpp | 2 +- test/unittest/src/mock/display_mock_parcel_test.cpp | 2 +- test/unittest/src/mock/display_mock_test.cpp | 2 +- 14 files changed, 25 insertions(+), 17 deletions(-) diff --git a/interfaces/inner_api/native/include/idisplay_power_callback.h b/interfaces/inner_api/native/include/idisplay_power_callback.h index dd98af2..5af66a3 100644 --- a/interfaces/inner_api/native/include/idisplay_power_callback.h +++ b/interfaces/inner_api/native/include/idisplay_power_callback.h @@ -25,7 +25,7 @@ namespace OHOS { namespace DisplayPowerMgr { class IDisplayPowerCallback : public IRemoteBroker { public: - virtual void OnDisplayStateChanged(uint32_t displayId, DisplayState state) = 0; + virtual void OnDisplayStateChanged(uint32_t displayId, DisplayState state, uint32_t reason) = 0; DECLARE_INTERFACE_DESCRIPTOR(u"ohos.powermgr.IDisplayPowerCallback"); }; diff --git a/service/native/include/display_power_mgr_service.h b/service/native/include/display_power_mgr_service.h index 87b0b0b..2c9a37c 100644 --- a/service/native/include/display_power_mgr_service.h +++ b/service/native/include/display_power_mgr_service.h @@ -62,7 +62,7 @@ public: virtual uint32_t GetDeviceBrightness(uint32_t displayId) override; virtual int32_t Dump(int32_t fd, const std::vector& args) override; virtual DisplayErrors GetError() override; - void NotifyStateChangeCallback(uint32_t displayId, DisplayState state); + void NotifyStateChangeCallback(uint32_t displayId, DisplayState state, uint32_t reason); void Init(); void Deinit(); static uint32_t GetSafeBrightness(uint32_t value); diff --git a/service/native/include/screen_controller.h b/service/native/include/screen_controller.h index 8a96311..1e0974f 100644 --- a/service/native/include/screen_controller.h +++ b/service/native/include/screen_controller.h @@ -51,6 +51,7 @@ public: DisplayState SetDelayOffState(); DisplayState SetOnState(); bool UpdateState(DisplayState state, uint32_t reason); + bool UpdateState(DisplayState state); bool IsScreenOn(); bool SetBrightness(uint32_t value, uint32_t gradualDuration = 0); @@ -75,7 +76,7 @@ public: uint32_t GetAnimationUpdateTime() const; private: - void OnStateChanged(DisplayState state); + void OnStateChanged(DisplayState state, uint32_t reason); bool CanSetBrightness(); bool CanDiscountBrightness(); diff --git a/service/native/src/display_power_mgr_service.cpp b/service/native/src/display_power_mgr_service.cpp index fd1f011..e9e7678 100644 --- a/service/native/src/display_power_mgr_service.cpp +++ b/service/native/src/display_power_mgr_service.cpp @@ -465,11 +465,11 @@ uint32_t DisplayPowerMgrService::GetDeviceBrightness(uint32_t displayId) return iter->second->GetDeviceBrightness(); } -void DisplayPowerMgrService::NotifyStateChangeCallback(uint32_t displayId, DisplayState state) +void DisplayPowerMgrService::NotifyStateChangeCallback(uint32_t displayId, DisplayState state, uint32_t reason) { std::lock_guard lock(mutex_); if (callback_ != nullptr) { - callback_->OnDisplayStateChanged(displayId, state); + callback_->OnDisplayStateChanged(displayId, state, reason); } } diff --git a/service/native/src/screen_controller.cpp b/service/native/src/screen_controller.cpp index 5c93a46..6f8df55 100644 --- a/service/native/src/screen_controller.cpp +++ b/service/native/src/screen_controller.cpp @@ -113,7 +113,8 @@ bool ScreenController::UpdateState(DisplayState state, uint32_t reason) switch (state) { case DisplayState::DISPLAY_ON: case DisplayState::DISPLAY_OFF: { - function callback = bind(&ScreenController::OnStateChanged, this, placeholders::_1); + function callback = + bind(&ScreenController::OnStateChanged, this, placeholders::_1, reason); bool ret = action_->SetDisplayState(state, callback); if (!ret) { DISPLAY_HILOGW(FEAT_STATE, "SetDisplayState failed state=%{public}d", state); @@ -257,7 +258,7 @@ bool ScreenController::IsBrightnessBoosted() const return isBrightnessBoosted_; } -void ScreenController::OnStateChanged(DisplayState state) +void ScreenController::OnStateChanged(DisplayState state, uint32_t reason) { auto pms = DelayedSpSingleton::GetInstance(); if (pms == nullptr) { @@ -273,7 +274,7 @@ void ScreenController::OnStateChanged(DisplayState state) } if (ret) { - pms->NotifyStateChangeCallback(action_->GetDisplayId(), state); + pms->NotifyStateChangeCallback(action_->GetDisplayId(), state, reason); } } diff --git a/service/zidl/include/display_power_callback_proxy.h b/service/zidl/include/display_power_callback_proxy.h index 5bac9b8..ac8dcd0 100644 --- a/service/zidl/include/display_power_callback_proxy.h +++ b/service/zidl/include/display_power_callback_proxy.h @@ -32,7 +32,7 @@ public: explicit DisplayPowerCallbackProxy(const sptr& impl) : IRemoteProxy(impl) {} ~DisplayPowerCallbackProxy() override = default; - virtual void OnDisplayStateChanged(uint32_t displayId, DisplayState state) override; + virtual void OnDisplayStateChanged(uint32_t displayId, DisplayState state, uint32_t reason) override; private: static inline BrokerDelegator delegator_; diff --git a/service/zidl/src/display_power_callback_proxy.cpp b/service/zidl/src/display_power_callback_proxy.cpp index c5b1d4b..159c466 100644 --- a/service/zidl/src/display_power_callback_proxy.cpp +++ b/service/zidl/src/display_power_callback_proxy.cpp @@ -24,7 +24,7 @@ namespace OHOS { namespace DisplayPowerMgr { -void DisplayPowerCallbackProxy::OnDisplayStateChanged(uint32_t displayId, DisplayState state) +void DisplayPowerCallbackProxy::OnDisplayStateChanged(uint32_t displayId, DisplayState state, uint32_t reason) { sptr remote = Remote(); RETURN_IF(remote == nullptr); @@ -40,6 +40,7 @@ void DisplayPowerCallbackProxy::OnDisplayStateChanged(uint32_t displayId, Displa WRITE_PARCEL_NO_RET(data, Uint32, displayId); WRITE_PARCEL_NO_RET(data, Uint32, static_cast(state)); + WRITE_PARCEL_NO_RET(data, Uint32, reason); int ret = remote->SendRequest( static_cast(PowerMgr::DisplayPowerCallbackInterfaceCode::ON_DISPLAY_STATE_CHANGED), diff --git a/service/zidl/src/display_power_callback_stub.cpp b/service/zidl/src/display_power_callback_stub.cpp index 49ec895..2546555 100644 --- a/service/zidl/src/display_power_callback_stub.cpp +++ b/service/zidl/src/display_power_callback_stub.cpp @@ -59,11 +59,13 @@ int32_t DisplayPowerCallbackStub::OnDisplayStateChangedStub(MessageParcel& data, { uint32_t id = 0; uint32_t state = 0; + uint32_t reason = 0; READ_PARCEL_WITH_RET(data, Uint32, id, E_READ_PARCEL_ERROR); READ_PARCEL_WITH_RET(data, Uint32, state, E_READ_PARCEL_ERROR); + READ_PARCEL_WITH_RET(data, Uint32, reason, E_READ_PARCEL_ERROR); - OnDisplayStateChanged(id, static_cast(state)); + OnDisplayStateChanged(id, static_cast(state), reason); return ERR_OK; } } // namespace DisplayPowerMgr diff --git a/test/unittest/include/mock/display_mock_object_test.h b/test/unittest/include/mock/display_mock_object_test.h index 369c5f8..fc5df22 100644 --- a/test/unittest/include/mock/display_mock_object_test.h +++ b/test/unittest/include/mock/display_mock_object_test.h @@ -28,7 +28,8 @@ public: public: DisplayPowerMgrTestCallback() {}; virtual ~DisplayPowerMgrTestCallback() {}; - virtual void OnDisplayStateChanged(uint32_t displayId, OHOS::DisplayPowerMgr::DisplayState state) override; + virtual void OnDisplayStateChanged( + uint32_t displayId, OHOS::DisplayPowerMgr::DisplayState state, uint32_t reason) override; }; }; } // namespace PowerMgr diff --git a/test/unittest/include/mock/display_mock_parcel_test.h b/test/unittest/include/mock/display_mock_parcel_test.h index ac2aaf8..e3e07a7 100644 --- a/test/unittest/include/mock/display_mock_parcel_test.h +++ b/test/unittest/include/mock/display_mock_parcel_test.h @@ -29,7 +29,8 @@ public: public: DisplayPowerMgrTestCallback() {}; virtual ~DisplayPowerMgrTestCallback() {}; - virtual void OnDisplayStateChanged(uint32_t displayId, OHOS::DisplayPowerMgr::DisplayState state) override; + virtual void OnDisplayStateChanged( + uint32_t displayId, OHOS::DisplayPowerMgr::DisplayState state, uint32_t reason) override; }; }; } // namespace PowerMgr diff --git a/test/unittest/include/mock/display_mock_test.h b/test/unittest/include/mock/display_mock_test.h index 5821d0f..79271a9 100644 --- a/test/unittest/include/mock/display_mock_test.h +++ b/test/unittest/include/mock/display_mock_test.h @@ -28,7 +28,8 @@ public: public: DisplayPowerMgrTestCallback() {}; virtual ~DisplayPowerMgrTestCallback() {}; - virtual void OnDisplayStateChanged(uint32_t displayId, OHOS::DisplayPowerMgr::DisplayState state) override; + virtual void OnDisplayStateChanged( + uint32_t displayId, OHOS::DisplayPowerMgr::DisplayState state, uint32_t reason) override; }; }; } // namespace PowerMgr diff --git a/test/unittest/src/mock/display_mock_object_test.cpp b/test/unittest/src/mock/display_mock_object_test.cpp index 178edf0..41e2ae7 100644 --- a/test/unittest/src/mock/display_mock_object_test.cpp +++ b/test/unittest/src/mock/display_mock_object_test.cpp @@ -44,7 +44,7 @@ static constexpr double DISCOUNT_VALUE = 0.30; } // namespace void DisplayMockObjectTest::DisplayPowerMgrTestCallback::OnDisplayStateChanged( - uint32_t displayId, DisplayPowerMgr::DisplayState state) + uint32_t displayId, DisplayPowerMgr::DisplayState state, uint32_t reason) { DISPLAY_HILOGI(LABEL_TEST, "DisplayPowerMgrTestCallback::OnDisplayStateChangedStub"); } diff --git a/test/unittest/src/mock/display_mock_parcel_test.cpp b/test/unittest/src/mock/display_mock_parcel_test.cpp index 2f2069d..08322a8 100644 --- a/test/unittest/src/mock/display_mock_parcel_test.cpp +++ b/test/unittest/src/mock/display_mock_parcel_test.cpp @@ -73,7 +73,7 @@ void DisplayMockParcelTest::DisplayProxyTestFunc(std::shared_ptr