fix RegisterRsScreenConnectionChangeListener failed bug

Signed-off-by: xiaojianfeng <xiaojianfeng3@huawei.com>
Change-Id: Ifc6a4005f9c948a9c3b5a8f69ff687ebbf96e33c
This commit is contained in:
xiaojianfeng
2022-03-07 19:52:10 +08:00
parent fd7061cf3f
commit 679f349d0a
2 changed files with 15 additions and 1 deletions
@@ -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);
+14 -1
View File
@@ -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()