From 5e29a74025873ee525d890d688708693febf4116 Mon Sep 17 00:00:00 2001 From: Swift Kim Date: Fri, 17 Sep 2021 11:31:41 +0900 Subject: [PATCH] Implement getMatchedAppIds --- shell/platform/tizen/channels/app_control.cc | 17 +++++++++++++++++ shell/platform/tizen/channels/app_control.h | 1 + .../tizen/channels/app_control_channel.cc | 8 ++++++++ 3 files changed, 26 insertions(+) diff --git a/shell/platform/tizen/channels/app_control.cc b/shell/platform/tizen/channels/app_control.cc index be8f56fb87297..a787f679f8be8 100644 --- a/shell/platform/tizen/channels/app_control.cc +++ b/shell/platform/tizen/channels/app_control.cc @@ -300,6 +300,23 @@ EncodableValue AppControl::SerializeToMap() { return EncodableValue(map); } +AppControlResult AppControl::GetMatchedAppIds(EncodableList& list) { + EncodableList app_ids; + AppControlResult ret = app_control_foreach_app_matched( + handle_, + [](app_control_h app_control, const char* app_id, + void* user_data) -> bool { + auto app_ids = static_cast(user_data); + app_ids->push_back(EncodableValue(app_id)); + return true; + }, + &app_ids); + if (ret) { + list = std::move(app_ids); + } + return ret; +} + AppControlResult AppControl::SendLaunchRequest() { return app_control_send_launch_request(handle_, nullptr, nullptr); } diff --git a/shell/platform/tizen/channels/app_control.h b/shell/platform/tizen/channels/app_control.h index 57934ff70ac73..56a3f803cf173 100644 --- a/shell/platform/tizen/channels/app_control.h +++ b/shell/platform/tizen/channels/app_control.h @@ -89,6 +89,7 @@ class AppControl { EncodableValue SerializeToMap(); + AppControlResult GetMatchedAppIds(EncodableList& list); AppControlResult SendLaunchRequest(); AppControlResult SendLaunchRequestWithReply(ReplyCallback on_reply); AppControlResult SendTerminateRequest(); diff --git a/shell/platform/tizen/channels/app_control_channel.cc b/shell/platform/tizen/channels/app_control_channel.cc index fed7a69bba4a9..494d0b28d9d0b 100644 --- a/shell/platform/tizen/channels/app_control_channel.cc +++ b/shell/platform/tizen/channels/app_control_channel.cc @@ -99,6 +99,14 @@ void AppControlChannel::HandleMethodCall( if (method_name == "dispose") { AppControlManager::GetInstance().Remove(app_control->id()); result->Success(); + } else if (method_name == "getMatchedAppIds") { + EncodableList app_ids; + AppControlResult ret = app_control->GetMatchedAppIds(app_ids); + if (ret) { + result->Success(EncodableValue(app_ids)); + } else { + result->Error(ret.code(), ret.message()); + } } else if (method_name == "reply") { Reply(app_control, arguments, std::move(result)); } else if (method_name == "sendLaunchRequest") {