From 355553693802021b9e61cee593830a7e21a8c1bd Mon Sep 17 00:00:00 2001 From: InHong Han Date: Wed, 29 Apr 2020 10:38:55 +0900 Subject: [PATCH 01/16] Add a new API for getting the data handle Change-Id: Ib4a38dacd50402b07f0345137f2a23091ca842ef --- client/sticker_data.c | 113 +++++++++++++++++++++++++++++++++++++++++ client/sticker_dbus.c | 33 ++++++++++++ client/sticker_dbus.h | 1 + include/sticker_data.h | 17 +++++++ server/stickerd_data_manager.c | 61 ++++++++++++++++++++++ server/stickerd_data_manager.h | 1 + server/stickerd_db_manager.c | 5 +- server/stickerd_db_manager.h | 1 + 8 files changed, 229 insertions(+), 3 deletions(-) diff --git a/client/sticker_data.c b/client/sticker_data.c index 2a64633..5b6b7ae 100644 --- a/client/sticker_data.c +++ b/client/sticker_data.c @@ -93,6 +93,50 @@ cleanup: return NULL; } +static void _free_sticker_data(sticker_data_h sticker_data) +{ + if (!sticker_data) + return; + + if (sticker_data->app_id) { + free(sticker_data->app_id); + sticker_data->app_id = NULL; + } + + if (sticker_data->uri) { + free(sticker_data->uri); + sticker_data->uri = NULL; + } + + if (sticker_data->thumbnail) { + free(sticker_data->thumbnail); + sticker_data->thumbnail = NULL; + } + + if (sticker_data->keyword) { + g_list_free_full(sticker_data->keyword, free); + sticker_data->keyword = NULL; + } + + if (sticker_data->group) { + free(sticker_data->group); + sticker_data->group = NULL; + } + + if (sticker_data->description) { + free(sticker_data->description); + sticker_data->description = NULL; + } + + if (sticker_data->date) { + free(sticker_data->date); + sticker_data->date = NULL; + } + + free(sticker_data); + sticker_data = NULL; +} + EXPORT_API int sticker_data_create(sticker_data_h *data_handle) { CHECK_STICKER_FEATURE(); @@ -215,6 +259,75 @@ EXPORT_API int sticker_data_clone(sticker_data_h origin_handle, sticker_data_h * return STICKER_ERROR_NONE; } +EXPORT_API int sticker_data_get_handle(const char* uri, sticker_data_h *data_handle) +{ + CHECK_STICKER_FEATURE(); + + int ret; + GDBusConnection *gdbus_connection = NULL; + int server_watcher_id = 0; + int monitor_id = 0; + int server_monitor_id = 0; + int is_exist = 0; + + if (!uri || uri[0] == '\0' || !data_handle) + return STICKER_ERROR_INVALID_PARAMETER; + + struct sticker_data_s *handle = (sticker_data_h)calloc(1, sizeof(struct sticker_data_s)); + if (!handle) + return STICKER_ERROR_OUT_OF_MEMORY; + + ret = sticker_dbus_init(&gdbus_connection, &server_watcher_id, &monitor_id, &server_monitor_id, STICKER_CLIENT_LIB_PROVIDER, NULL); + if (ret != STICKER_ERROR_NONE) { + LOGE("Failed to initialize dbus : %d", ret); + ret = STICKER_ERROR_OPERATION_FAILED; + goto cleanup; + } + + ret = sticker_dbus_check_file_exists(gdbus_connection, uri, &is_exist); + if (ret != STICKER_ERROR_NONE) { + LOGE("Failed to check file exists : %d", ret); + ret = STICKER_ERROR_OPERATION_FAILED; + goto cleanup; + } + + if (!is_exist) { + LOGE("Sticker does not exist. URI : %s", uri); + ret = STICKER_ERROR_NO_SUCH_FILE; + goto cleanup; + } + + ret = sticker_dbus_get_sticker_info_by_uri(gdbus_connection, handle, uri); + if (ret != STICKER_ERROR_NONE) { + LOGE("Failed to get sticker information : %d", ret); + goto cleanup; + } + + *data_handle = handle; + + ret = sticker_dbus_shutdown(gdbus_connection, &server_watcher_id, &server_monitor_id, &monitor_id, STICKER_CLIENT_LIB_PROVIDER); + if (ret != STICKER_ERROR_NONE) + LOGE("Failed to finalize dbus : %d", ret); + + g_object_unref(gdbus_connection); + + return STICKER_ERROR_NONE; + +cleanup: + if (handle) + _free_sticker_data(handle); + + if (gdbus_connection) { + ret = sticker_dbus_shutdown(gdbus_connection, &server_watcher_id, &server_monitor_id, &monitor_id, STICKER_CLIENT_LIB_PROVIDER); + if (ret != STICKER_ERROR_NONE) + LOGE("Failed to finalize dbus : %d", ret); + + g_object_unref(gdbus_connection); + } + + return ret; +} + EXPORT_API int sticker_data_get_app_id(sticker_data_h data_handle, char **app_id) { CHECK_STICKER_FEATURE(); diff --git a/client/sticker_dbus.c b/client/sticker_dbus.c index 412a143..6cf0088 100644 --- a/client/sticker_dbus.c +++ b/client/sticker_dbus.c @@ -88,6 +88,9 @@ static void _get_sticker_info_from_gvariant(GVariantIter *info_iter, GVariantIte while (g_variant_iter_loop (info_iter, "{iv}", &key, &value)) { switch(key) { + case STICKER_DATA_TYPE_INFO_ID: + sticker_data->sticker_info_id = g_variant_get_int32(value); + break; case STICKER_DATA_TYPE_APP_ID: sticker_data->app_id = g_variant_dup_string(value, NULL); break; @@ -1196,4 +1199,34 @@ int sticker_dbus_get_recent_sticker_list(GDBusConnection *gdbus_connection, int g_object_unref(reply); return ret; +} + +int sticker_dbus_get_sticker_info_by_uri(GDBusConnection *gdbus_connection, sticker_data_h sticker_data, const char *uri) +{ + int ret; + GDBusMessage *reply = NULL; + GVariant *reply_body = NULL; + GVariantIter *info_iter = NULL; + GVariantIter *keyword_iter = NULL; + + ret = _send_sync_message(gdbus_connection, g_variant_new("(s)", uri), &reply, "get_sticker_info_by_uri"); + if (ret == STICKER_CLIENT_ERROR_NONE) { + reply_body = g_dbus_message_get_body(reply); + g_variant_get(reply_body, "(a{iv}a(s))", &info_iter, &keyword_iter); + _get_sticker_info_from_gvariant(info_iter, keyword_iter, sticker_data); + + if (reply_body) + g_variant_unref(reply_body); + + if (info_iter) + g_variant_iter_free(info_iter); + + if (keyword_iter) + g_variant_iter_free(keyword_iter); + } + + if (reply) + g_object_unref(reply); + + return ret; } \ No newline at end of file diff --git a/client/sticker_dbus.h b/client/sticker_dbus.h index 4115e1d..c5643db 100644 --- a/client/sticker_dbus.h +++ b/client/sticker_dbus.h @@ -68,6 +68,7 @@ int sticker_dbus_get_group_list_by_display_type(GDBusConnection *gdbus_connectio int sticker_dbus_check_file_exists(GDBusConnection *gdbus_connection, const char *uri, int *result); int sticker_dbus_insert_recent_sticker_info(GDBusConnection *gdbus_connection, int record_id); int sticker_dbus_get_recent_sticker_list(GDBusConnection *gdbus_connection, int count, GVariantIter **id_iter); +int sticker_dbus_get_sticker_info_by_uri(GDBusConnection *gdbus_connection, sticker_data_h sticker_data, const char *uri); #ifdef __cplusplus } diff --git a/include/sticker_data.h b/include/sticker_data.h index 2a59af1..4f75071 100644 --- a/include/sticker_data.h +++ b/include/sticker_data.h @@ -119,6 +119,23 @@ int sticker_data_destroy(sticker_data_h data_handle); int sticker_data_clone(sticker_data_h origin_handle, sticker_data_h *target_handle); /** + * @brief Gets the sticker data handle for the given URI. + * @since_tizen 5.5 + * @remarks If the function succeeds, @a data_handle must be released with sticker_data_destroy(). + * @param[in] uri The URI of the sticker data handle + * @param[out] data_handle The sticker data handle for the given sticker URI + * @return 0 on success, otherwise a negative error value + * @retval #STICKER_ERROR_NONE Successful + * @retval #STICKER_ERROR_NOT_SUPPORTED Not supported + * @retval #STICKER_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #STICKER_ERROR_OUT_OF_MEMORY Out of memory + * @retval #STICKER_ERROR_OPERATION_FAILED Operation failed + * @retval #STICKER_ERROR_NO_SUCH_FILE A sticker with given @a uri does not exist + * @see sticker_data_destroy() + */ +int sticker_data_get_handle(const char* uri, sticker_data_h *data_handle); + +/** * @brief Gets the name of the sticker provider application from sticker data handle. * @since_tizen 5.5 * @remarks @a app_id must be released using free(). diff --git a/server/stickerd_data_manager.c b/server/stickerd_data_manager.c index 0e40774..c731971 100644 --- a/server/stickerd_data_manager.c +++ b/server/stickerd_data_manager.c @@ -164,6 +164,8 @@ static void _stickerd_client_dbus_method_call_handler(GDBusConnection *conn, con ret = stickerd_get_recent_sticker_info(parameters, &reply_body); } else if (g_strcmp0(method_name, "send_update_event") == 0) { ret = stickerd_send_update_event(parameters, &reply_body); + } else if (g_strcmp0(method_name, "get_sticker_info_by_uri") == 0) { + ret = stickerd_get_sticker_info_by_uri(parameters, &reply_body); } if (ret == STICKERD_SERVER_ERROR_NONE) { @@ -345,6 +347,12 @@ int stickerd_register_dbus_interface(void) " " " " " " + + " " + " " + " " + " " + " " " " " "; @@ -1776,4 +1784,57 @@ int stickerd_send_update_event(GVariant *parameters, GVariant **reply_body) } return ret; +} + +int stickerd_get_sticker_info_by_uri(GVariant *parameters, GVariant **reply_body) +{ + int ret; + char *uri = NULL; + GVariantBuilder *info_builder; + GVariantBuilder *keyword_builder; + + g_variant_get(parameters, "(&s)", &uri); + + sticker_info_db *sticker_info = (sticker_info_db *)calloc(1, sizeof(sticker_info_db)); + + if (!sticker_info) + return STICKERD_SERVER_ERROR_OUT_OF_MEMORY; + + ret = stickerd_db_get_sticker_info_by_uri(uri, sticker_info); + if (ret != STICKERD_SERVER_ERROR_NONE) { + LOGE("Failed to get sticker info"); + ret = STICKERD_SERVER_ERROR_OPERATION_FAILED; + goto cleanup; + } + + info_builder = g_variant_builder_new(G_VARIANT_TYPE("a{iv}")); + g_variant_builder_add(info_builder, "{iv}", STICKER_DATA_TYPE_INFO_ID, g_variant_new_int32(sticker_info->record_id)); + g_variant_builder_add(info_builder, "{iv}", STICKER_DATA_TYPE_APP_ID, g_variant_new_string((const gchar *)sticker_info->app_id)); + g_variant_builder_add(info_builder, "{iv}", STICKER_DATA_TYPE_URI_TYPE, g_variant_new_int32(sticker_info->type)); + g_variant_builder_add(info_builder, "{iv}", STICKER_DATA_TYPE_URI, g_variant_new_string((const gchar *)sticker_info->uri)); + g_variant_builder_add(info_builder, "{iv}", STICKER_DATA_TYPE_THUMBNAIL, g_variant_new_string((const gchar *)sticker_info->thumbnail)); + g_variant_builder_add(info_builder, "{iv}", STICKER_DATA_TYPE_DESCRIPTION, g_variant_new_string((const gchar *)sticker_info->description)); + g_variant_builder_add(info_builder, "{iv}", STICKER_DATA_TYPE_GROUP, g_variant_new_string((const gchar *)sticker_info->group)); + g_variant_builder_add(info_builder, "{iv}", STICKER_DATA_TYPE_DATE, g_variant_new_string((const gchar *)sticker_info->date)); + g_variant_builder_add(info_builder, "{iv}", STICKER_DATA_TYPE_DISP_TYPE, g_variant_new_int32(sticker_info->display_type)); + + keyword_builder = g_variant_builder_new(G_VARIANT_TYPE("a(s)")); + g_list_foreach(sticker_info->keyword, (GFunc) _set_keyword_builder, keyword_builder); + + *reply_body = g_variant_new("(a{iv}a(s))", info_builder, keyword_builder); + g_variant_builder_unref(info_builder); + g_variant_builder_unref(keyword_builder); + + if (*reply_body == NULL) { + LOGE("Failed to create reply_body"); + ret = STICKERD_SERVER_ERROR_OPERATION_FAILED; + } + +cleanup: + if (sticker_info) { + _free_sticker_data(sticker_info); + sticker_info = NULL; + } + + return ret; } \ No newline at end of file diff --git a/server/stickerd_data_manager.h b/server/stickerd_data_manager.h index 6b54c68..e6ac7e7 100644 --- a/server/stickerd_data_manager.h +++ b/server/stickerd_data_manager.h @@ -51,6 +51,7 @@ int stickerd_check_file_exists(GVariant *parameters, GVariant **reply_body); int stickerd_insert_recent_sticker_info(GVariant *parameters, GVariant **reply_body); int stickerd_get_recent_sticker_info(GVariant *parameters, GVariant **reply_body); int stickerd_send_update_event(GVariant *parameters, GVariant **reply_body); +int stickerd_get_sticker_info_by_uri(GVariant *parameters, GVariant **reply_body); #ifdef __cplusplus } diff --git a/server/stickerd_db_manager.c b/server/stickerd_db_manager.c index 6e3ace3..b13c2ee 100644 --- a/server/stickerd_db_manager.c +++ b/server/stickerd_db_manager.c @@ -1016,7 +1016,6 @@ cleanup: int stickerd_db_get_sticker_info_by_uri(char *uri, sticker_info_db *sticker_info) { int ret; - int record_id; sqlite3 *db = NULL; sqlite3_stmt *stmt = NULL; @@ -1038,7 +1037,7 @@ int stickerd_db_get_sticker_info_by_uri(char *uri, sticker_info_db *sticker_info goto cleanup; } - record_id = sticker_info->display_type = sqlite3_column_int(stmt, 0); + sticker_info->record_id = sqlite3_column_int(stmt, 0); const unsigned char *tmp_app_id = sqlite3_column_text(stmt, 1); if (tmp_app_id) @@ -1077,7 +1076,7 @@ int stickerd_db_get_sticker_info_by_uri(char *uri, sticker_info_db *sticker_info goto cleanup; } - sqlite3_bind_int(stmt, 1, record_id); + sqlite3_bind_int(stmt, 1, sticker_info->record_id); while (sqlite3_step(stmt) == SQLITE_ROW) { const unsigned char *keyword = sqlite3_column_text(stmt, 0); diff --git a/server/stickerd_db_manager.h b/server/stickerd_db_manager.h index 83bf132..53c1e42 100644 --- a/server/stickerd_db_manager.h +++ b/server/stickerd_db_manager.h @@ -38,6 +38,7 @@ typedef enum { } sticker_info_db_type; typedef struct { + int record_id; char *app_id; int type; char *uri; -- 2.7.4 From 19c75cd455514701a094c536957a29e3beba45fc Mon Sep 17 00:00:00 2001 From: InHong Han Date: Wed, 6 May 2020 17:41:37 +0900 Subject: [PATCH 02/16] Modified to send show_notification message when mobile is disconnected Change-Id: I8013592edbb13703a0d1553295d49d86430de47b --- receiver/inc/sticker_request.h | 3 ++- receiver/src/ft.cpp | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/receiver/inc/sticker_request.h b/receiver/inc/sticker_request.h index 583bd9a..9fa6f2e 100644 --- a/receiver/inc/sticker_request.h +++ b/receiver/inc/sticker_request.h @@ -23,7 +23,8 @@ using namespace std; typedef enum { REQUEST_TYPE_SYNC, - REQUEST_TYPE_FEATURE_REQ + REQUEST_TYPE_FEATURE_REQ, + REQUEST_TYPE_SHOW_NOTIFICATION } request_type; struct StickerRequest { diff --git a/receiver/src/ft.cpp b/receiver/src/ft.cpp index ae52546..b375757 100644 --- a/receiver/src/ft.cpp +++ b/receiver/src/ft.cpp @@ -492,6 +492,16 @@ void send_disconnect_message() void request_show_sync_notification() { JsonObject *j_object = NULL; + + if (!priv_data.socket) { + job_progress = TRUE; + StickerRequest pending_request; + pending_request.req_type = REQUEST_TYPE_SHOW_NOTIFICATION; + ReqQueue.push(pending_request); + LOGI("Push show notification request"); + return; + } + j_object = json_object_new(); if (j_object == NULL) { LOGE("json object create error"); @@ -503,6 +513,8 @@ void request_show_sync_notification() if (_send_json_data(j_object) == FALSE) { LOGE("Failed to send STICKER_REQUEST_NOTI_REQ"); + } else { + job_progress = TRUE; } json_object_unref(j_object); @@ -586,6 +598,11 @@ static bool process_request_queue() if (request_sticker_data(request.mode.c_str(), request.category.c_str(), request.type.c_str())) ReqQueue.pop(); } + else if (request.req_type == REQUEST_TYPE_SHOW_NOTIFICATION) { + LOGD("[Request to show notification]"); + request_show_sync_notification(); + ReqQueue.pop(); + } return true; } -- 2.7.4 From 671cf61a50296bdea2689e1c0ed27a0d7e96a1fc Mon Sep 17 00:00:00 2001 From: InHong Han Date: Wed, 6 May 2020 21:07:17 +0900 Subject: [PATCH 03/16] Update package version to 0.1.42 Change-Id: I66c4a4e4721533769c278be8162b2451ba51f0c5 --- packaging/capi-ui-sticker.spec | 2 +- receiver/tizen-manifest.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packaging/capi-ui-sticker.spec b/packaging/capi-ui-sticker.spec index 2094ce6..6f5f7c4 100644 --- a/packaging/capi-ui-sticker.spec +++ b/packaging/capi-ui-sticker.spec @@ -1,6 +1,6 @@ Name: capi-ui-sticker Summary: Sticker client library and daemon -Version: 0.1.41 +Version: 0.1.42 Release: 1 Group: Graphics & UI Framework/Input License: Apache-2.0 diff --git a/receiver/tizen-manifest.xml b/receiver/tizen-manifest.xml index 7793c64..b3d16c0 100644 --- a/receiver/tizen-manifest.xml +++ b/receiver/tizen-manifest.xml @@ -1,5 +1,5 @@ - + -- 2.7.4 From f0797686a6b2a84e808a20c4bbd8c2ba49a9ba91 Mon Sep 17 00:00:00 2001 From: InHong Han Date: Wed, 6 May 2020 20:45:33 +0900 Subject: [PATCH 04/16] Modified to change the vconf flag when any of the stickers are synchronized Change-Id: I72bc6eebd322e5f06501e4132c44819883a58367 --- receiver/src/ft.cpp | 33 ++++++--------------------------- 1 file changed, 6 insertions(+), 27 deletions(-) diff --git a/receiver/src/ft.cpp b/receiver/src/ft.cpp index b375757..0d8fade 100644 --- a/receiver/src/ft.cpp +++ b/receiver/src/ft.cpp @@ -815,36 +815,12 @@ on_data_received(sap_socket_h socket, unsigned short int channel_id, unsigned in json_object_set_string_member(j_object, "msgId", STICKER_SEND_STOP_RSP); json_object_set_int_member(j_object, "tID", t_id); - if (reason == "complete" && rec_file_cnt_in_group != file_len) { - json_object_set_string_member(j_object, "result", "failure"); - } - else { + if (reason == "complete" && rec_file_cnt_in_group == file_len) { int feature_flag = 0; #ifdef VCONFKEY_STICKER_SUPPORTED_FEATURE - if (vconf_get_int(VCONFKEY_STICKER_SUPPORTED_FEATURE, &feature_flag) == 0) - { - LOGD("feature : %d, current request category : %s", feature_flag, current_request.category.c_str()); - if (feature_flag == VCONFKEY_STICKER_FEATURE_AREMOJI) - { - if (current_request.category == string("arsticker")) - { - set_sync_complete(); - set_sync_progressing(FALSE); - } - } - else if (feature_flag & VCONFKEY_STICKER_FEATURE_BITMOJI) - { - if (current_request.category == string("bitmoji")) - { - set_sync_complete(); - set_sync_progressing(FALSE); - } - } - } - else { - LOGW("Failed to read support feature"); - } + set_sync_complete(); + set_sync_progressing(FALSE); #else LOGW("No vconf supported feature"); #endif /* VCONFKEY_STICKER_SUPPORTED_FEATURE */ @@ -852,6 +828,9 @@ on_data_received(sap_socket_h socket, unsigned short int channel_id, unsigned in json_object_set_string_member(j_object, "result", "success"); sync_success_cnt++; } + else { + json_object_set_string_member(j_object, "result", "failure"); + } if (_send_json_data(j_object) == FALSE) LOGE("Failed to send message"); -- 2.7.4 From 87e9b5c13c995433e52a986d611e06be7ba40465 Mon Sep 17 00:00:00 2001 From: InHong Han Date: Thu, 7 May 2020 13:07:38 +0900 Subject: [PATCH 05/16] Add missing function to create sap agent Change-Id: Idf0c8fb062d390611067a0ce5023949943fcab05 --- receiver/src/main.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/receiver/src/main.cpp b/receiver/src/main.cpp index c959151..6a7cb61 100644 --- a/receiver/src/main.cpp +++ b/receiver/src/main.cpp @@ -101,6 +101,7 @@ static bool check_sync_time_condition() LOGD("current time : %f, last_sync_time : %f", ecore_time_get(), last_sync_time); if (ecore_time_get() - last_sync_time > MAX_WAIT_TIME) { + initialize_sap(); request_show_sync_notification(); result = false; } else { -- 2.7.4 From 10ad2f992d8f51ee30304027c4861c535a7076ed Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Thu, 7 May 2020 13:31:14 +0900 Subject: [PATCH 06/16] Set sync complete vconf value after completing to sync Change-Id: I29048342acd2076f550332a559c6a310a784a7ed Signed-off-by: Jihoon Kim --- receiver/src/ft.cpp | 66 ++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 58 insertions(+), 8 deletions(-) diff --git a/receiver/src/ft.cpp b/receiver/src/ft.cpp index 0d8fade..29450fa 100644 --- a/receiver/src/ft.cpp +++ b/receiver/src/ft.cpp @@ -741,6 +741,30 @@ on_data_received(sap_socket_h socket, unsigned short int channel_id, unsigned in if (result_code != SYNC_START_RSP_SUCCESS) { if (!process_request_queue()) { +#ifdef VCONFKEY_STICKER_SUPPORTED_FEATURE + int feature_flag = 0; + + if (vconf_get_int(VCONFKEY_STICKER_SUPPORTED_FEATURE, &feature_flag) == 0) + { + LOGD("feature : %d, current request category : %s", feature_flag, current_request.category.c_str()); + if (feature_flag & VCONFKEY_STICKER_FEATURE_BITMOJI) + { + if (current_request.category == string("bitmoji")) + { + /* other sticker group(s) has been synchronized completely */ + if (sync_success_cnt > 0) { + set_sync_complete(); + } + } + } + } + else { + LOGW("Failed to read support feature"); + } +#else + LOGW("No vconf supported feature"); +#endif /* VCONFKEY_STICKER_SUPPORTED_FEATURE */ + set_sync_progressing(FALSE); if (result_code == SYNC_START_RSP_NO_STICKER) save_last_sync_time(); @@ -815,18 +839,44 @@ on_data_received(sap_socket_h socket, unsigned short int channel_id, unsigned in json_object_set_string_member(j_object, "msgId", STICKER_SEND_STOP_RSP); json_object_set_int_member(j_object, "tID", t_id); - if (reason == "complete" && rec_file_cnt_in_group == file_len) { - int feature_flag = 0; - + if (reason == "complete") { + if (rec_file_cnt_in_group == file_len) { #ifdef VCONFKEY_STICKER_SUPPORTED_FEATURE - set_sync_complete(); - set_sync_progressing(FALSE); + int feature_flag = 0; + + if (vconf_get_int(VCONFKEY_STICKER_SUPPORTED_FEATURE, &feature_flag) == 0) + { + LOGD("feature : %d, current request category : %s", feature_flag, current_request.category.c_str()); + if (feature_flag == VCONFKEY_STICKER_FEATURE_AREMOJI) + { + if (current_request.category == string("arsticker")) + { + set_sync_complete(); + set_sync_progressing(FALSE); + } + } + else if (feature_flag & VCONFKEY_STICKER_FEATURE_BITMOJI) + { + if (current_request.category == string("bitmoji")) + { + set_sync_complete(); + set_sync_progressing(FALSE); + } + } + } + else { + LOGW("Failed to read support feature"); + } #else - LOGW("No vconf supported feature"); + LOGW("No vconf supported feature"); #endif /* VCONFKEY_STICKER_SUPPORTED_FEATURE */ - json_object_set_string_member(j_object, "result", "success"); - sync_success_cnt++; + json_object_set_string_member(j_object, "result", "success"); + sync_success_cnt++; + } + else { + json_object_set_string_member(j_object, "result", "failure"); + } } else { json_object_set_string_member(j_object, "result", "failure"); -- 2.7.4 From 2ce83a2e789ed5f30f7d90ef2319523b0c79a4d9 Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Thu, 7 May 2020 14:55:15 +0900 Subject: [PATCH 07/16] Update package version to 0.1.43 Change-Id: Icfde0947ae6bc32a0bef8a695065a47401077403 Signed-off-by: Jihoon Kim --- packaging/capi-ui-sticker.spec | 2 +- receiver/tizen-manifest.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packaging/capi-ui-sticker.spec b/packaging/capi-ui-sticker.spec index 6f5f7c4..8b43584 100644 --- a/packaging/capi-ui-sticker.spec +++ b/packaging/capi-ui-sticker.spec @@ -1,6 +1,6 @@ Name: capi-ui-sticker Summary: Sticker client library and daemon -Version: 0.1.42 +Version: 0.1.43 Release: 1 Group: Graphics & UI Framework/Input License: Apache-2.0 diff --git a/receiver/tizen-manifest.xml b/receiver/tizen-manifest.xml index b3d16c0..b2e6cd8 100644 --- a/receiver/tizen-manifest.xml +++ b/receiver/tizen-manifest.xml @@ -1,5 +1,5 @@ - + -- 2.7.4 From 93b4b41339cfccc35c696533e80d4ac85d574af0 Mon Sep 17 00:00:00 2001 From: InHong Han Date: Thu, 7 May 2020 16:24:43 +0900 Subject: [PATCH 08/16] Sort sticker data in reverse order by db index Change-Id: I9535a909b35bc760b55d1bf82f49f7b4197960ad --- server/stickerd_db_manager.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/server/stickerd_db_manager.c b/server/stickerd_db_manager.c index b13c2ee..85a778e 100644 --- a/server/stickerd_db_manager.c +++ b/server/stickerd_db_manager.c @@ -90,12 +90,12 @@ #define STICKER_DB_GET_ALL_GROUP_LIST "SELECT DISTINCT group_name FROM sticker_info WHERE app_id NOT IN (SELECT DISTINCT provider_id FROM sticker_whitelist_info WHERE provider_id NOT IN (SELECT provider_id FROM sticker_whitelist_info WHERE consumer_id = ?))" #define STICKER_DB_GET_ALL_KEYWORD_LIST "SELECT DISTINCT keyword FROM sticker_keyword_info WHERE sticker_info_id IN (SELECT sticker_info_id from sticker_info WHERE app_id NOT IN (SELECT DISTINCT provider_id FROM sticker_whitelist_info WHERE provider_id NOT IN (SELECT provider_id FROM sticker_whitelist_info WHERE consumer_id = ?)))" #define STICKER_DB_GET_STICKER_COUNT "SELECT count(*) FROM sticker_info WHERE app_id = ?" -#define STICKER_DB_GET_ALL_RECORD_ID "SELECT sticker_info_id FROM sticker_info WHERE app_id NOT IN (SELECT DISTINCT provider_id FROM sticker_whitelist_info WHERE provider_id NOT IN (SELECT provider_id FROM sticker_whitelist_info WHERE consumer_id = ?)) LIMIT ?, ?" -#define STICKER_DB_GET_RECORD_ID_BY_APP_ID "SELECT sticker_info_id from sticker_info WHERE app_id = ? LIMIT ?, ?" -#define STICKER_DB_GET_RECORD_ID_BY_TYPE "SELECT sticker_info_id FROM sticker_info WHERE type = ? AND app_id NOT IN (SELECT DISTINCT provider_id FROM sticker_whitelist_info WHERE provider_id NOT IN (SELECT provider_id FROM sticker_whitelist_info WHERE consumer_id = ?)) LIMIT ?, ?" -#define STICKER_DB_GET_RECORD_ID_BY_GROUP "SELECT sticker_info_id from sticker_info WHERE group_name = ? AND app_id NOT IN (SELECT DISTINCT provider_id FROM sticker_whitelist_info WHERE provider_id NOT IN (SELECT provider_id FROM sticker_whitelist_info WHERE consumer_id = ?)) LIMIT ?, ?" -#define STICKER_DB_GET_RECORD_ID_BY_KEYWORD "SELECT sticker_info_id FROM sticker_keyword_info WHERE keyword = ? INTERSECT SELECT sticker_info_id from sticker_info WHERE app_id NOT IN (SELECT DISTINCT provider_id FROM sticker_whitelist_info WHERE provider_id NOT IN (SELECT provider_id FROM sticker_whitelist_info WHERE consumer_id = ?)) LIMIT ?, ?" -#define STICKER_DB_GET_RECORD_ID_BY_DISP_TYPE "SELECT sticker_info_id FROM sticker_info WHERE display_type = ? AND app_id NOT IN (SELECT DISTINCT provider_id FROM sticker_whitelist_info WHERE provider_id NOT IN (SELECT provider_id FROM sticker_whitelist_info WHERE consumer_id = ?)) LIMIT ?, ?" +#define STICKER_DB_GET_ALL_RECORD_ID "SELECT sticker_info_id FROM sticker_info WHERE app_id NOT IN (SELECT DISTINCT provider_id FROM sticker_whitelist_info WHERE provider_id NOT IN (SELECT provider_id FROM sticker_whitelist_info WHERE consumer_id = ?)) ORDER BY sticker_info_id DESC LIMIT ?, ?" +#define STICKER_DB_GET_RECORD_ID_BY_APP_ID "SELECT sticker_info_id from sticker_info WHERE app_id = ? ORDER BY sticker_info_id DESC LIMIT ?, ?" +#define STICKER_DB_GET_RECORD_ID_BY_TYPE "SELECT sticker_info_id FROM sticker_info WHERE type = ? AND app_id NOT IN (SELECT DISTINCT provider_id FROM sticker_whitelist_info WHERE provider_id NOT IN (SELECT provider_id FROM sticker_whitelist_info WHERE consumer_id = ?)) ORDER BY sticker_info_id DESC LIMIT ?, ?" +#define STICKER_DB_GET_RECORD_ID_BY_GROUP "SELECT sticker_info_id from sticker_info WHERE group_name = ? AND app_id NOT IN (SELECT DISTINCT provider_id FROM sticker_whitelist_info WHERE provider_id NOT IN (SELECT provider_id FROM sticker_whitelist_info WHERE consumer_id = ?)) ORDER BY sticker_info_id DESC LIMIT ?, ?" +#define STICKER_DB_GET_RECORD_ID_BY_KEYWORD "SELECT sticker_info_id FROM sticker_keyword_info WHERE keyword = ? INTERSECT SELECT sticker_info_id from sticker_info WHERE app_id NOT IN (SELECT DISTINCT provider_id FROM sticker_whitelist_info WHERE provider_id NOT IN (SELECT provider_id FROM sticker_whitelist_info WHERE consumer_id = ?)) ORDER BY sticker_info_id DESC LIMIT ?, ?" +#define STICKER_DB_GET_RECORD_ID_BY_DISP_TYPE "SELECT sticker_info_id FROM sticker_info WHERE display_type = ? AND app_id NOT IN (SELECT DISTINCT provider_id FROM sticker_whitelist_info WHERE provider_id NOT IN (SELECT provider_id FROM sticker_whitelist_info WHERE consumer_id = ?)) ORDER BY sticker_info_id DESC LIMIT ?, ?" #define STICKER_DB_GET_GROUP_LIST_BY_DISP_TYPE "SELECT DISTINCT group_name FROM sticker_info WHERE display_type = ? AND app_id NOT IN (SELECT DISTINCT provider_id FROM sticker_whitelist_info WHERE provider_id NOT IN (SELECT provider_id FROM sticker_whitelist_info WHERE consumer_id = ?))" #define STICKER_DB_CHECK_FILE_EXISTS "SELECT EXISTS(SELECT 1 FROM sticker_info WHERE uri = ? LIMIT 1)" #define STICKER_DB_CHECK_RECENT_HISTORY_EXISTS "SELECT EXISTS(SELECT 1 FROM sticker_recent_history_info WHERE sticker_info_id = ? LIMIT 1)" -- 2.7.4 From e67386207a9fd8cbac33b656086987dab3fddfea Mon Sep 17 00:00:00 2001 From: InHong Han Date: Thu, 7 May 2020 19:12:50 +0900 Subject: [PATCH 09/16] Fix issue auto synchronization does not work Change-Id: I344a1a4e209a4b902cc97d90e80dba565d34624c --- receiver/src/ft.cpp | 84 +++++++++++++++++++++++++++++++---------------------- 1 file changed, 49 insertions(+), 35 deletions(-) diff --git a/receiver/src/ft.cpp b/receiver/src/ft.cpp index 29450fa..98870c8 100644 --- a/receiver/src/ft.cpp +++ b/receiver/src/ft.cpp @@ -415,24 +415,67 @@ bool request_sticker_data(const char *mode, const char *category, const char *ty return result; } +static bool process_request_queue() +{ + if (ReqQueue.empty()) + return false; + + StickerRequest request = ReqQueue.front(); + + if (request.req_type == REQUEST_TYPE_FEATURE_REQ) { + LOGD("[Request feature exchange]"); + request_sticker_feature(); + ReqQueue.pop(); + } + else if (request.req_type == REQUEST_TYPE_SYNC) { + LOGD("[Request to sync sticker] mode: %s, category: %s, type : %s", request.mode.c_str(), + request.category.c_str(), + request.type.c_str()); + + if (request_sticker_data(request.mode.c_str(), request.category.c_str(), request.type.c_str())) + ReqQueue.pop(); + } + else if (request.req_type == REQUEST_TYPE_SHOW_NOTIFICATION) { + LOGD("[Request to show notification]"); + request_show_sync_notification(); + ReqQueue.pop(); + } + + return true; +} + void request_all_sticker_data(const char *mode, const char *type) { + StickerRequest pending_request; + pending_request.req_type = REQUEST_TYPE_SYNC; + pending_request.mode = string(mode); + pending_request.type = string(type); + #ifdef VCONFKEY_STICKER_SUPPORTED_FEATURE int feature_flag = 0; if (vconf_get_int(VCONFKEY_STICKER_SUPPORTED_FEATURE, &feature_flag) == 0) { - if (feature_flag & VCONFKEY_STICKER_FEATURE_AREMOJI) - request_sticker_data(mode, "arsticker", type); + if (feature_flag & VCONFKEY_STICKER_FEATURE_AREMOJI) { + pending_request.category = string("arsticker"); + ReqQueue.push(pending_request); + } - if (feature_flag & VCONFKEY_STICKER_FEATURE_BITMOJI) - request_sticker_data(mode, "bitmoji", type); + if (feature_flag & VCONFKEY_STICKER_FEATURE_BITMOJI) { + pending_request.category = string("bitmoji"); + ReqQueue.push(pending_request); + } } else LOGW("Failed to get value of VCONFKEY_STICKER_SUPPORTED_FEATURE"); #else - request_sticker_data(mode, "arsticker", type); - request_sticker_data(mode, "bitmoji", type); + pending_request.category = string("arsticker"); + ReqQueue.push(pending_request); + pending_request.category = string("bitmoji"); + ReqQueue.push(pending_request); #endif + + if (priv_data.socket) + process_request_queue(); } void request_sticker_feature() @@ -578,35 +621,6 @@ void conn_terminated(sap_peer_agent_h peer_agent, service_app_exit(); } -static bool process_request_queue() -{ - if (ReqQueue.empty()) - return false; - - StickerRequest request = ReqQueue.front(); - - if (request.req_type == REQUEST_TYPE_FEATURE_REQ) { - LOGD("[Request feature exchange]"); - request_sticker_feature(); - ReqQueue.pop(); - } - else if (request.req_type == REQUEST_TYPE_SYNC) { - LOGD("[Request to sync sticker] mode: %s, category: %s, type : %s", request.mode.c_str(), - request.category.c_str(), - request.type.c_str()); - - if (request_sticker_data(request.mode.c_str(), request.category.c_str(), request.type.c_str())) - ReqQueue.pop(); - } - else if (request.req_type == REQUEST_TYPE_SHOW_NOTIFICATION) { - LOGD("[Request to show notification]"); - request_show_sync_notification(); - ReqQueue.pop(); - } - - return true; -} - static void quit() { job_progress = FALSE; -- 2.7.4 From 84cb0dd30061eb4635b031887744538e5311f6ef Mon Sep 17 00:00:00 2001 From: InHong Han Date: Thu, 7 May 2020 21:03:07 +0900 Subject: [PATCH 10/16] Update package version to 0.1.44 Change-Id: Id3b276ddb07ba1acc47e2a4cc6c2cb124208469d --- packaging/capi-ui-sticker.spec | 2 +- receiver/tizen-manifest.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packaging/capi-ui-sticker.spec b/packaging/capi-ui-sticker.spec index 8b43584..efe50ed 100644 --- a/packaging/capi-ui-sticker.spec +++ b/packaging/capi-ui-sticker.spec @@ -1,6 +1,6 @@ Name: capi-ui-sticker Summary: Sticker client library and daemon -Version: 0.1.43 +Version: 0.1.44 Release: 1 Group: Graphics & UI Framework/Input License: Apache-2.0 diff --git a/receiver/tizen-manifest.xml b/receiver/tizen-manifest.xml index b2e6cd8..d394841 100644 --- a/receiver/tizen-manifest.xml +++ b/receiver/tizen-manifest.xml @@ -1,5 +1,5 @@ - + -- 2.7.4 From 54786f4b14095f253ba8de9da2bf7d0f0776d616 Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Fri, 8 May 2020 14:30:52 +0900 Subject: [PATCH 11/16] Add -Wall in build flag for avoiding build error Change-Id: I5523c48fcd436424fb970883f61284f6dfa45ec1 Signed-off-by: Jihoon Kim --- consumer/CMakeLists.txt | 2 +- provider/CMakeLists.txt | 2 +- receiver/CMakeLists.txt | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/consumer/CMakeLists.txt b/consumer/CMakeLists.txt index 0e554b0..f98cc42 100644 --- a/consumer/CMakeLists.txt +++ b/consumer/CMakeLists.txt @@ -10,7 +10,7 @@ INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR}/include) FOREACH(flag ${pkgs_CFLAGS}) SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") ENDFOREACH(flag) -SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}") +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Wall") ## Add definitions ## ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"") diff --git a/provider/CMakeLists.txt b/provider/CMakeLists.txt index 9eb6d49..ea3c48a 100644 --- a/provider/CMakeLists.txt +++ b/provider/CMakeLists.txt @@ -10,7 +10,7 @@ INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR}/include) FOREACH(flag ${pkgs_CFLAGS}) SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") ENDFOREACH(flag) -SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}") +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Wall") ## Add definitions ## ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"") diff --git a/receiver/CMakeLists.txt b/receiver/CMakeLists.txt index 90c3837..4797abb 100644 --- a/receiver/CMakeLists.txt +++ b/receiver/CMakeLists.txt @@ -35,8 +35,8 @@ ENDFOREACH(flag) ADD_DEFINITIONS("-DEXPORTED=__attribute__((visibility(\"default\")))") -SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIE") -SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -fPIE") +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Wall -fPIE") +SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -Wall -fPIE") SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie") FIND_PROGRAM(UNAME NAMES uname) -- 2.7.4 From f11c2c857c3379e9286979e25ce7425d632edc7d Mon Sep 17 00:00:00 2001 From: InHong Han Date: Fri, 8 May 2020 17:02:52 +0900 Subject: [PATCH 12/16] Add code to delete all bitmoji stickers Change-Id: I333cae24dd42da9aada3721143851ed48df3b5ec --- receiver/inc/sticker_info.h | 1 + receiver/src/ft.cpp | 16 +++++++++++----- receiver/src/sticker_info.cpp | 31 +++++++++++++++++++++++++++++++ 3 files changed, 43 insertions(+), 5 deletions(-) diff --git a/receiver/inc/sticker_info.h b/receiver/inc/sticker_info.h index 9784b5a..8deac5e 100644 --- a/receiver/inc/sticker_info.h +++ b/receiver/inc/sticker_info.h @@ -21,5 +21,6 @@ void insert_sticker_data(const char *filepath, const char *keyword, const char * int create_sticker_provider_handle(void); void destroy_sticker_provider_handle(void); void delete_sticker_data(const char *fileName); +void delete_all_bitmoji_stickers(); #endif /* __STICKER_INFO_H__ */ diff --git a/receiver/src/ft.cpp b/receiver/src/ft.cpp index 98870c8..9982af9 100644 --- a/receiver/src/ft.cpp +++ b/receiver/src/ft.cpp @@ -66,7 +66,8 @@ using namespace std; enum { SYNC_START_RSP_SUCCESS = 1000, - SYNC_START_RSP_NO_STICKER = 1001 + SYNC_START_RSP_NO_STICKER = 1001, + SYNC_START_RSP_BITMOJI_ALL_DELETE = 1002 }; struct sap_info_s { @@ -633,7 +634,7 @@ static void send_sync_start_response(int result_code) int feature_flag = 0; string response_to_app; switch (result_code) { - case SYNC_START_RSP_SUCCESS: + case SYNC_START_RSP_SUCCESS || SYNC_START_RSP_BITMOJI_ALL_DELETE: { response_to_app = "success"; if (current_request.category == string("arsticker")) @@ -753,7 +754,7 @@ on_data_received(sap_socket_h socket, unsigned short int channel_id, unsigned in send_sync_start_response(result_code); - if (result_code != SYNC_START_RSP_SUCCESS) { + if (result_code == SYNC_START_RSP_NO_STICKER) { if (!process_request_queue()) { #ifdef VCONFKEY_STICKER_SUPPORTED_FEATURE int feature_flag = 0; @@ -780,11 +781,16 @@ on_data_received(sap_socket_h socket, unsigned short int channel_id, unsigned in #endif /* VCONFKEY_STICKER_SUPPORTED_FEATURE */ set_sync_progressing(FALSE); - if (result_code == SYNC_START_RSP_NO_STICKER) - save_last_sync_time(); + save_last_sync_time(); quit(); } + } else if (result_code == SYNC_START_RSP_BITMOJI_ALL_DELETE) { + LOGD("Delete all bitmoji stickers"); + if (create_sticker_provider_handle() == STICKER_ERROR_NONE) { + delete_all_bitmoji_stickers(); + destroy_sticker_provider_handle(); + } } } else if (msg_id == STICKER_SEND_START_REQ) { LOGD("msg : %s", msg_id.c_str()); diff --git a/receiver/src/sticker_info.cpp b/receiver/src/sticker_info.cpp index 2d5e58d..2b59d57 100644 --- a/receiver/src/sticker_info.cpp +++ b/receiver/src/sticker_info.cpp @@ -142,4 +142,35 @@ void delete_sticker_data(const char *fileName) ret = sticker_provider_delete_data_by_uri(sticker_provider, fileName); if (ret != STICKER_ERROR_NONE) LOGE("Failed to delete sticker. ret : %d", ret); +} + +static void _delete_all_bitmoji_stickers_cb(sticker_data_h data_handle, void *user_data) +{ + int ret; + char *group = NULL; + + ret = sticker_data_get_group_name(data_handle, &group); + if (ret != STICKER_ERROR_NONE) + LOGE("Failed to get group name. ret : %d", ret); + + if (strcmp(group, "bitmoji") == 0) { + ret = sticker_provider_delete_data(sticker_provider, data_handle); + if (ret != STICKER_ERROR_NONE) + LOGE("Failed to delete sticker. ret : %d", ret); + } +} + +void delete_all_bitmoji_stickers() +{ + int ret; + int total_cnt; + int result; + + ret = sticker_provider_get_sticker_count(sticker_provider, &total_cnt); + if (ret != STICKER_ERROR_NONE) + LOGE("Failed to get sticker count. ret : %d", ret); + + ret = sticker_provider_data_foreach_all(sticker_provider, 0, total_cnt, &result, _delete_all_bitmoji_stickers_cb, NULL); + if (ret != STICKER_ERROR_NONE) + LOGE("Failed to retrieve all sticker data. ret : %d", ret); } \ No newline at end of file -- 2.7.4 From 7a6ec037ea66ba4d3297857078469e34626f74ca Mon Sep 17 00:00:00 2001 From: InHong Han Date: Mon, 11 May 2020 16:39:43 +0900 Subject: [PATCH 13/16] Fix issue the current time is initialized whenever the device is restarted Change-Id: Ie1310dc403ed46ee5705cc7cf88f1c3c6cd12434 --- receiver/src/ft.cpp | 2 +- receiver/src/main.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/receiver/src/ft.cpp b/receiver/src/ft.cpp index 9982af9..336e965 100644 --- a/receiver/src/ft.cpp +++ b/receiver/src/ft.cpp @@ -94,7 +94,7 @@ static int sync_complete_flags = 0; static void save_last_sync_time() { // save last sync time in preference - double current_time = ecore_time_get(); + double current_time = ecore_time_unix_get(); if (preference_set_double(LAST_SYNC_TIME, current_time) == PREFERENCE_ERROR_NONE) { LOGI("Succeed to set last sync time : %f", current_time); } diff --git a/receiver/src/main.cpp b/receiver/src/main.cpp index 6a7cb61..34b9837 100644 --- a/receiver/src/main.cpp +++ b/receiver/src/main.cpp @@ -98,14 +98,14 @@ static bool check_sync_time_condition() } // compare time - LOGD("current time : %f, last_sync_time : %f", ecore_time_get(), last_sync_time); + LOGD("current time : %f, last_sync_time : %f", ecore_time_unix_get(), last_sync_time); - if (ecore_time_get() - last_sync_time > MAX_WAIT_TIME) { + if (ecore_time_unix_get() - last_sync_time > MAX_WAIT_TIME) { initialize_sap(); request_show_sync_notification(); result = false; } else { - if (ecore_time_get() - last_sync_time > SYNC_INTERVAL) + if (ecore_time_unix_get() - last_sync_time > SYNC_INTERVAL) result = true; else result = false; -- 2.7.4 From 93c3e73693eb25d3229f99d12d35a71e9f5aa04e Mon Sep 17 00:00:00 2001 From: InHong Han Date: Mon, 11 May 2020 18:15:02 +0900 Subject: [PATCH 14/16] Update package version to 0.1.45 Change-Id: Id7b7c1de80a4534635439abf18e129b7ab3c959f --- packaging/capi-ui-sticker.spec | 2 +- receiver/tizen-manifest.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packaging/capi-ui-sticker.spec b/packaging/capi-ui-sticker.spec index efe50ed..c3f1454 100644 --- a/packaging/capi-ui-sticker.spec +++ b/packaging/capi-ui-sticker.spec @@ -1,6 +1,6 @@ Name: capi-ui-sticker Summary: Sticker client library and daemon -Version: 0.1.44 +Version: 0.1.45 Release: 1 Group: Graphics & UI Framework/Input License: Apache-2.0 diff --git a/receiver/tizen-manifest.xml b/receiver/tizen-manifest.xml index d394841..2a9bd06 100644 --- a/receiver/tizen-manifest.xml +++ b/receiver/tizen-manifest.xml @@ -1,5 +1,5 @@ - + -- 2.7.4 From 8ec7918a8eb9d1c0ba675199131484e081a5158f Mon Sep 17 00:00:00 2001 From: InHong Han Date: Tue, 12 May 2020 10:34:33 +0900 Subject: [PATCH 15/16] Terminate sticker-receiver after deleting stickers Change-Id: I3cff68c6698f9b55b88d9fb171d95c51e1f2917c --- receiver/src/ft.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/receiver/src/ft.cpp b/receiver/src/ft.cpp index 336e965..044c21e 100644 --- a/receiver/src/ft.cpp +++ b/receiver/src/ft.cpp @@ -791,6 +791,14 @@ on_data_received(sap_socket_h socket, unsigned short int channel_id, unsigned in delete_all_bitmoji_stickers(); destroy_sticker_provider_handle(); } + + set_sync_progressing(FALSE); + save_last_sync_time(); + + if (!process_request_queue()) { + sync_success_cnt = 0; + quit(); + } } } else if (msg_id == STICKER_SEND_START_REQ) { LOGD("msg : %s", msg_id.c_str()); -- 2.7.4 From d0057bd4c4558668e3c54c3f717c8cfcd99a60d8 Mon Sep 17 00:00:00 2001 From: InHong Han Date: Tue, 12 May 2020 10:42:46 +0900 Subject: [PATCH 16/16] Update package version to 0.1.46 Change-Id: I3f420ed2d840f73a12c82dce46154db70273d32e --- packaging/capi-ui-sticker.spec | 2 +- receiver/tizen-manifest.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packaging/capi-ui-sticker.spec b/packaging/capi-ui-sticker.spec index c3f1454..fa59d3f 100644 --- a/packaging/capi-ui-sticker.spec +++ b/packaging/capi-ui-sticker.spec @@ -1,6 +1,6 @@ Name: capi-ui-sticker Summary: Sticker client library and daemon -Version: 0.1.45 +Version: 0.1.46 Release: 1 Group: Graphics & UI Framework/Input License: Apache-2.0 diff --git a/receiver/tizen-manifest.xml b/receiver/tizen-manifest.xml index 2a9bd06..307d7db 100644 --- a/receiver/tizen-manifest.xml +++ b/receiver/tizen-manifest.xml @@ -1,5 +1,5 @@ - + -- 2.7.4