Support getting default appid of app-control 93/258293/3
authorHwankyu Jhun <h.jhun@samsung.com>
Thu, 13 May 2021 07:32:29 +0000 (16:32 +0900)
committerHwankyu Jhun <h.jhun@samsung.com>
Tue, 18 May 2021 05:41:46 +0000 (14:41 +0900)
Requires:
 - https://review.tizen.org/gerrit/#/c/platform/core/appfw/aul-1/+/258290/
 - https://review.tizen.org/gerrit/#/c/platform/core/appfw/amd/+/258293/

Change-Id: Ic1479fe7ec851664bbe3c052ab6536b86684f5f8
Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
src/lib/amd_app_control.cc

index 7687087e056d018aa5209c89d182dda0fbc4dd8c..cb475407f1e6c13e75e979fad67608e1a59a1865 100644 (file)
@@ -255,6 +255,40 @@ static int __dispatch_app_unset_app_control_default_app(request_h req) {
   return 0;
 }
 
+static int __dispatch_app_get_app_control_default_app(request_h req) {
+  tizen_base::Bundle b;
+  bundle* kb = _request_get_bundle(req);
+  const char* operation = aul_svc_get_operation(kb);
+  if (operation == nullptr) {
+    _E("Failed to get operation");
+    aul_sock_send_bundle_with_fd(_request_remove_fd(req), -EINVAL,
+        b.GetHandle(), AUL_SOCK_NOREPLY);
+    return -1;
+  }
+
+  const char* mime = aul_svc_get_mime(kb);
+  const char* uri = aul_svc_get_uri(kb);
+
+  std::string app_control(operation);
+  app_control += "|";
+  app_control += (uri == nullptr) ? "NULL" : uri;
+  app_control += "|";
+  app_control += (mime == nullptr) ? "NULL" : mime;
+
+  uid_t uid = _request_get_target_uid(req);
+  std::string app_id = AppSvcManager::GetInst().GetDefaultAppId(
+      uid, app_control);
+  if (!app_id.empty())
+    b.Add(AUL_K_APPID, app_id);
+
+  aul_sock_send_bundle_with_fd(_request_remove_fd(req), APP_GET_INFO_OK,
+      b.GetHandle(), AUL_SOCK_NOREPLY);
+  _I("[APP_GET_APP_CONTROL_DEFAULT_APP] app_control(%s), app_id(%s)",
+      app_control.c_str(), app_id.c_str());
+  return 0;
+}
+
+
 int _app_control_resolver_init(void) {
   static request_cmd_dispatch dispatch_table[] = {
       {
@@ -273,6 +307,10 @@ int _app_control_resolver_init(void) {
         .cmd = APP_UNSET_APP_CONTROL_DEFAULT_APP,
         .callback = __dispatch_app_unset_app_control_default_app
       },
+      {
+        .cmd = APP_GET_APP_CONTROL_DEFAULT_APP,
+        .callback = __dispatch_app_get_app_control_default_app
+      },
   };
   static cynara_checker cynara_checkers[] = {
       {