mirror of
https://github.com/openharmony/windowmanager.git
synced 2026-07-23 05:25:27 -04:00
fix RegisterRsScreenConnectionChangeListener failed bug
Signed-off-by: xiaojianfeng <xiaojianfeng3@huawei.com> Change-Id: Ifc6a4005f9c948a9c3b5a8f69ff687ebbf96e33c
This commit is contained in:
@@ -76,6 +76,7 @@ public:
|
||||
DMError SetScreenColorTransform(ScreenId screenId);
|
||||
|
||||
private:
|
||||
void RegisterRsScreenConnectionChangeListener();
|
||||
void OnRsScreenConnectionChange(ScreenId rsScreenId, ScreenEvent screenEvent);
|
||||
void ProcessScreenConnected(ScreenId rsScreenId);
|
||||
sptr<AbstractScreen> InitAndGetScreen(ScreenId rsScreenId);
|
||||
|
||||
@@ -47,9 +47,22 @@ AbstractScreenController::~AbstractScreenController()
|
||||
void AbstractScreenController::Init()
|
||||
{
|
||||
WLOGFD("screen controller init");
|
||||
rsInterface_.SetScreenChangeCallback(
|
||||
RegisterRsScreenConnectionChangeListener();
|
||||
}
|
||||
|
||||
void AbstractScreenController::RegisterRsScreenConnectionChangeListener()
|
||||
{
|
||||
WLOGFD("RegisterRsScreenConnectionChangeListener");
|
||||
auto res = rsInterface_.SetScreenChangeCallback(
|
||||
std::bind(&AbstractScreenController::OnRsScreenConnectionChange,
|
||||
this, std::placeholders::_1, std::placeholders::_2));
|
||||
if (res != StatusCode::SUCCESS) {
|
||||
auto task = [this] {
|
||||
RegisterRsScreenConnectionChangeListener();
|
||||
};
|
||||
// posk task after 50 ms.
|
||||
controllerHandler_->PostTask(task, 50, AppExecFwk::EventQueue::Priority::HIGH);
|
||||
}
|
||||
}
|
||||
|
||||
std::vector<ScreenId> AbstractScreenController::GetAllScreenIds()
|
||||
|
||||
Reference in New Issue
Block a user