enum {
SYNC_START_RSP_SUCCESS = 1000,
SYNC_START_RSP_NO_STICKER = 1001,
- SYNC_START_RSP_BITMOJI_ALL_DELETE = 1002
+ SYNC_START_RSP_BITMOJI_ALL_DELETE = 1002,
+ SYNC_START_RSP_AREMOJI_ALL_DELETE = 1003
};
struct sap_info_s {
}
else {
LOGI("Succeed to change permission : %s", sticker_data.file_path.c_str());
- if (create_sticker_provider_handle() == STICKER_ERROR_NONE) {
- char thumb_path[PATH_MAX];
- char *data_path = NULL;
- data_path = app_get_shared_data_path();
- snprintf(thumb_path, sizeof(thumb_path), "%s/thumbnail/%s", data_path, incoming_file_name.c_str());
- sticker_data.thumbnail_path = string(thumb_path);
-
- if (data_path)
- free(data_path);
-
- int ret = thumbnail_util_extract_to_file(sticker_data.file_path.c_str(), THUMBNAIL_WIDTH, THUMBNAIL_HEIGHT, sticker_data.thumbnail_path.c_str());
- if (ret != THUMBNAIL_UTIL_ERROR_NONE) {
- LOGE("Failed to create thumbnail. msg : %s", get_error_message(ret));
- sticker_data.thumbnail_path.clear();
- }
+ char thumb_path[PATH_MAX];
+ char *data_path = NULL;
+ data_path = app_get_shared_data_path();
+ snprintf(thumb_path, sizeof(thumb_path), "%s/thumbnail/%s", data_path, incoming_file_name.c_str());
+ sticker_data.thumbnail_path = string(thumb_path);
+
+ if (data_path)
+ free(data_path);
+
+ int ret = thumbnail_util_extract_to_file(sticker_data.file_path.c_str(), THUMBNAIL_WIDTH, THUMBNAIL_HEIGHT, sticker_data.thumbnail_path.c_str());
+ if (ret != THUMBNAIL_UTIL_ERROR_NONE) {
+ LOGE("Failed to create thumbnail. msg : %s", get_error_message(ret));
+ sticker_data.thumbnail_path.clear();
+ }
- insert_sticker_data(sticker_data.file_path.c_str(), sticker_data.keyword.c_str(), sticker_data.group.c_str(), sticker_data.description.c_str(),
- sticker_data.thumbnail_path.c_str(), sticker_data.disp_type.c_str());
- destroy_sticker_provider_handle();
+ insert_sticker_data(sticker_data.file_path.c_str(), sticker_data.keyword.c_str(), sticker_data.group.c_str(), sticker_data.description.c_str(),
+ sticker_data.thumbnail_path.c_str(), sticker_data.disp_type.c_str());
- if (unlink(sticker_data.file_path.c_str()) == -1)
- LOGE("Failed to remove sticker file");
+ if (unlink(sticker_data.file_path.c_str()) == -1)
+ LOGE("Failed to remove sticker file");
- if (!sticker_data.thumbnail_path.empty()) {
- if (unlink(sticker_data.thumbnail_path.c_str()) == -1)
- LOGE("Failed to remove sticker thumbnail");
- }
+ if (!sticker_data.thumbnail_path.empty()) {
+ if (unlink(sticker_data.thumbnail_path.c_str()) == -1)
+ LOGE("Failed to remove sticker thumbnail");
}
}
priv->socket = NULL;
set_sync_progressing(FALSE);
+ send_message("sync_stop_result", "cancel");
service_app_exit();
}
response_to_app = "success";
break;
}
+ case SYNC_START_RSP_AREMOJI_ALL_DELETE:
+ response_to_app = "success";
+ break;
default:
response_to_app = "unknown_error";
break;
send_sync_start_response(result_code);
if (current_request.category == string("bitmoji")) {
LOGD("Delete all bitmoji stickers");
- if (create_sticker_provider_handle() == STICKER_ERROR_NONE) {
- delete_all_bitmoji_stickers();
- destroy_sticker_provider_handle();
- }
+ delete_all_stickers("bitmoji");
}
} 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();
- }
+ delete_all_stickers("bitmoji");
+ } else if (result_code == SYNC_START_RSP_AREMOJI_ALL_DELETE) {
+ LOGD("Delete all AR Emoji stickers");
+ delete_all_stickers("arsticker");
}
if (!process_request_queue()) {
LOGD("Add file : %s, len : %d", file_name.c_str(), file_len);
total_file_count_in_group++;
} else {
- LOGD("Delete file : %s, len : %d", file_name.c_str(), file_len);
- if (create_sticker_provider_handle() == STICKER_ERROR_NONE) {
- delete_sticker_data(file_name.c_str());
- destroy_sticker_provider_handle();
- }
+ char *app_id = NULL;
+ char file_path[PATH_MAX];
+ char del_path[PATH_MAX];
+ std::size_t found = file_name.find_last_of("/");
+ string del_file_name = file_name.substr(found+1);
+ char *data_path = app_get_shared_data_path();
+ app_get_id(&app_id);
+ snprintf(file_path, sizeof(file_path), "%s/%s", data_path, del_file_name.c_str());
+ snprintf(del_path, sizeof(del_path), "%s/%s%s",STICKER_DIRECTORY, app_id, file_path);
+
+ LOGD("Delete file : %s, len : %d", del_path, file_len);
+ delete_sticker_data(del_path);
+
+ if (app_id)
+ free(app_id);
}
}
}
switch (status) {
case SAP_DEVICE_STATUS_DETACHED:
LOGD("device is not connected.");
+ send_message("sync_stop_result", "cancel");
break;
case SAP_DEVICE_STATUS_ATTACHED:
LOGD("Attached calling find peer now");
}
}
-int create_sticker_provider_handle(void)
+void create_sticker_provider_handle(void)
{
int ret;
ret = sticker_provider_create(&sticker_provider);
if (ret != STICKER_ERROR_NONE) {
/* Error handling */
- LOGE("Failed to create sticker provider");
+ LOGE("Failed to create sticker provider. ret : %d", ret);
}
-
- return ret;
}
void destroy_sticker_provider_handle(void)
LOGE("Failed to delete sticker. ret : %d", ret);
}
-static void _delete_all_bitmoji_stickers_cb(sticker_data_h data_handle, void *user_data)
+static void _delete_all_stickers_cb(sticker_data_h data_handle, void *user_data)
{
int ret;
- char *group = NULL;
+ char *sticker_group = NULL;
+ char *del_group = (char *) user_data;
- ret = sticker_data_get_group_name(data_handle, &group);
+ ret = sticker_data_get_group_name(data_handle, &sticker_group);
if (ret != STICKER_ERROR_NONE)
LOGE("Failed to get group name. ret : %d", ret);
- if (strcmp(group, "bitmoji") == 0) {
+ if (strcmp(sticker_group, del_group) == 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()
+void delete_all_stickers(const char *groupName)
{
int ret;
int 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);
+ ret = sticker_provider_data_foreach_all(sticker_provider, 0, total_cnt, &result, _delete_all_stickers_cb, (void *)groupName);
if (ret != STICKER_ERROR_NONE)
LOGE("Failed to retrieve all sticker data. ret : %d", ret);
}
\ No newline at end of file