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;
__auth_info_request_cb,
__autofill_fill_request_cb,
__commit_cb,
+ __autofill_cancel_fill_request_cb
};
ret = rpc_port_stub_AutofillAppPort_register(&callback, NULL);
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);
}
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;
}