Support interfaces for canceling fill request 95/213795/2
authorJihoon Kim <jihoon48.kim@samsung.com>
Wed, 11 Sep 2019 10:25:08 +0000 (19:25 +0900)
committerJihoon Kim <jihoon48.kim@samsung.com>
Wed, 18 Sep 2019 05:17:01 +0000 (14:17 +0900)
Change-Id: I5016ad907613cba771227360fa4cab07f2a2e588
Signed-off-by: Jihoon Kim <jihoon48.kim@samsung.com>
src/autofill-daemon.c
tidl/autofill.tidl
tidl/autofill_service.tidl

index 5acfa5a..4e762da 100644 (file)
@@ -449,6 +449,50 @@ end:
     return 0;
 }
 
+static int __autofill_cancel_fill_request_cb(rpc_port_stub_AutofillAppPort_context_h context, int context_id, rpc_port_autofill_view_info_h vi, void *user_data)
+{
+    char *sender = NULL;
+    char *view_id = NULL;
+
+    if (!g_connected) {
+        LOGW("Not connected to autofill service");
+        return 0;
+    }
+
+    if (!svc_rpc_h) {
+        LOGW("RPC port for autofill service is not created");
+        return 0;
+    }
+
+    rpc_port_stub_AutofillAppPort_context_get_sender(context, &sender);
+    rpc_port_autofill_view_info_get_view_id(vi, &view_id);
+
+    LOGD("app id : %s, view id : %s, context id : %d", sender, view_id, context_id);
+
+    rpc_port_autofill_svc_view_info_h svi = NULL;
+    if (rpc_port_autofill_svc_view_info_create(&svi) != 0) {
+        goto end;
+    }
+
+    rpc_port_autofill_svc_view_info_set_app_id(svi, sender);
+    rpc_port_autofill_svc_view_info_set_view_id(svi, view_id);
+
+    rpc_port_autofill_view_info_foreach_items(vi, __view_info_item_cb, svi);
+
+    rpc_port_proxy_AutofillSvcPort_invoke_cancel_fill_request(svc_rpc_h, context_id, svi);
+
+    rpc_port_autofill_svc_view_info_destroy(svi);
+
+end:
+    if (sender)
+        free(sender);
+
+    if (view_id)
+        free(view_id);
+
+    return 0;
+}
+
 static int __commit_cb(rpc_port_stub_AutofillAppPort_context_h context, int context_id, rpc_port_autofill_save_view_info_h vi, void *user_data)
 {
     char *sender = NULL;
@@ -948,6 +992,7 @@ bool service_app_create(void *data)
         __auth_info_request_cb,
         __autofill_fill_request_cb,
         __commit_cb,
+        __autofill_cancel_fill_request_cb
     };
 
     ret = rpc_port_stub_AutofillAppPort_register(&callback, NULL);
index 803697e..58020d4 100644 (file)
@@ -68,4 +68,5 @@ interface AutofillAppPort {
     int request_auth_info(int context_id, autofill_view_info vi);
     int send_fill_request(int context_id, autofill_view_info vi);
     int commit(int context_id, autofill_save_view_info vi);
+    int cancel_fill_request(int context_id, autofill_view_info vi);
 }
index 06d1aa3..78241ad 100644 (file)
@@ -71,4 +71,5 @@ interface AutofillSvcPort {
     void send_fill_request(int context_id, autofill_svc_view_info vi) async;
     void commit(int context_id, autofill_svc_save_view_info si) async;
     void request_terminate() async;
+    void cancel_fill_request(int context_id, autofill_svc_view_info vi) async;
 }