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__ */
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 {
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"))
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;
#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());
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