Add code to delete all bitmoji stickers 04/232904/3
authorInHong Han <inhong1.han@samsung.com>
Fri, 8 May 2020 08:02:52 +0000 (17:02 +0900)
committerInHong Han <inhong1.han@samsung.com>
Mon, 11 May 2020 09:17:43 +0000 (18:17 +0900)
Change-Id: I333cae24dd42da9aada3721143851ed48df3b5ec

receiver/inc/sticker_info.h
receiver/src/ft.cpp
receiver/src/sticker_info.cpp

index 9784b5a..8deac5e 100644 (file)
@@ -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__ */
index 98870c8..9982af9 100644 (file)
@@ -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());
index 2d5e58d..2b59d57 100644 (file)
@@ -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