[bluetooth] listFolders filter, refactor, removed GVariant, cleanup 65/102865/2
authorPiotr Dabrowski <p.dabrowski2@samsung.com>
Thu, 17 Nov 2016 13:45:17 +0000 (14:45 +0100)
committerPyun DoHyun <dh79.pyun@samsung.com>
Thu, 8 Dec 2016 00:16:44 +0000 (16:16 -0800)
Change-Id: I0ab19045926020ea8564caf119269ef5165409ff

include/mobile/bluetooth_internal.h
include/mobile/bluetooth_type_internal.h
include/wearable/bluetooth_internal.h
include/wearable/bluetooth_type_internal.h
src/bluetooth-map-client.c

index fb75c251c8a3859ddf8ed7a32d7458536f69cc60..1fcfa126455fe3b5fb4be0758c2aae5e8d6ecc65 100644 (file)
@@ -1734,6 +1734,26 @@ int bt_map_client_get_message(
     void* user_data
 );
 
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_MAP_CLIENT_MODULE
+ * @brief Creates a List Folders filter.
+ * @since_tizen 3.0
+ * @param[in] filter Filter handle
+ */
+void bt_map_client_list_folders_filter_create(
+    bt_map_client_list_folders_filter_h *filter
+);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_MAP_CLIENT_MODULE
+ * @brief Destroys a List Messages filter.
+ * @since_tizen 3.0
+ * @param[in] filter Filter handle
+ */
+void bt_map_client_list_folders_filter_destroy(
+    bt_map_client_list_folders_filter_h *filter
+);
+
 /**
  * @ingroup CAPI_NETWORK_BLUETOOTH_MAP_CLIENT_MODULE
  * @brief Creates a List Messages filter.
index 3a215425a0eeb9295bb9d9ca7d225fe80578a3d1..988cb148cbccba5a63256e5fbda224e1b2d6354a 100644 (file)
@@ -102,7 +102,7 @@ typedef void* bt_map_client_session_info_h;
 
 typedef struct {
        int16_t offset;
-       int16_t maxcount;
+       int16_t max_count;
 } bt_map_client_list_folders_filter_s;
 
 typedef struct {
index 4d136e56a001c127197c91624c5f4c2b972874c8..86fc915cb039792cf1743b50c28846153dfd5f3f 100644 (file)
@@ -1704,6 +1704,26 @@ int bt_map_client_get_message(
     void* user_data
 );
 
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_MAP_CLIENT_MODULE
+ * @brief Creates a List Folders filter.
+ * @since_tizen 3.0
+ * @param[in] filter Filter handle
+ */
+void bt_map_client_list_folders_filter_create(
+    bt_map_client_list_folders_filter_h *filter
+);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_MAP_CLIENT_MODULE
+ * @brief Destroys a List Messages filter.
+ * @since_tizen 3.0
+ * @param[in] filter Filter handle
+ */
+void bt_map_client_list_folders_filter_destroy(
+    bt_map_client_list_folders_filter_h *filter
+);
+
 /**
  * @ingroup CAPI_NETWORK_BLUETOOTH_MAP_CLIENT_MODULE
  * @brief Creates a List Messages filter.
index 4e6c1df581207b0407b5b4adac4291b91d6eae71..ae9db61ac72213111e5c9776d358f3bb4aa5192e 100644 (file)
@@ -104,7 +104,7 @@ typedef void* bt_map_client_session_info_h;
 
 typedef struct {
        int16_t offset;
-       int16_t maxcount;
+       int16_t max_count;
 } bt_map_client_list_folders_filter_s;
 
 typedef struct {
index 832c02905020565c3a443f37a47f78e0aa3d4b7e..1d31b9c1aae1a0342fd5afc4852a4c67df406409 100644 (file)
 
 static bool is_map_client_initialized = false;
 
-GVariant *__g_variant_new_array_split(char *str) {
-       GVariantBuilder* b = g_variant_builder_new(G_VARIANT_TYPE_ARRAY);
-       char *pos = str;
-       char *item;
-       while ((item = strsep(&pos, ","))) {
-               g_variant_builder_add(b, "{s}", item);
-       }
-       return g_variant_builder_end(b);
-}
-
 #define BT_CHECK_MAP_CLIENT_SUPPORT() \
 { \
        BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON); \
@@ -189,17 +179,18 @@ int bt_map_client_list_folders(
        BT_CHECK_INIT_STATUS();
        BT_CHECK_MAP_CLIENT_INIT_STATUS();
        BT_CHECK_INPUT_PARAMETER(handle);
+       BT_CHECK_INPUT_PARAMETER(filter);
+       BT_CHECK_INPUT_PARAMETER_UINT(filter->offset);
+       BT_CHECK_INPUT_PARAMETER_UINT(filter->max_count);
 
        bt_map_client_session_info_s* session = (bt_map_client_session_info_s*) handle;
 
-       int offset = filter->offset;
-       int maxcount = filter->maxcount;
-
-       if (offset < -1 || maxcount < -1) {
-               return BLUETOOTH_ERROR_INVALID_PARAM;
-       }
-
-       int error_code = _bt_get_error_code(bluetooth_map_client_list_folders(session, offset, maxcount));
+       int error_code = _bt_get_error_code(
+               bluetooth_map_client_list_folders(
+                       session,
+                       (bt_map_client_list_folders_filter_t*) filter
+               )
+       );
        if (error_code != BT_ERROR_NONE) {
                BT_ERR("bt_map_client_list_folders %s(0x%08x)", _bt_convert_error_to_string(error_code),
                                error_code);
@@ -257,33 +248,13 @@ int bt_map_client_list_messages(
 
        bt_map_client_session_info_s* session = (bt_map_client_session_info_s*) handle;
 
-       GVariantBuilder b;
-       g_variant_builder_init(&b, (const GVariantType*) "a{sv}");
-       if (filter->offset > -1)
-               g_variant_builder_add(&b, "{sv}", "Offset", g_variant_new_uint16(filter->offset));
-       if (filter->max_count > -1)
-               g_variant_builder_add(&b, "{sv}", "MaxCount", g_variant_new_uint16(filter->max_count));
-       if (filter->subject_length > -1)
-               g_variant_builder_add(&b, "{sv}", "SubjectLength", g_variant_new_byte(filter->subject_length));
-       if (filter->fields != NULL)
-               g_variant_builder_add(&b, "{sv}", "Fields", __g_variant_new_array_split(filter->fields));
-       if (filter->types != NULL)
-               g_variant_builder_add(&b, "{sv}", "Types", __g_variant_new_array_split(filter->types));
-       if (filter->period_begin != NULL)
-               g_variant_builder_add(&b, "{sv}", "PeriodBegin", g_variant_new_string(filter->period_begin));
-       if (filter->period_end != NULL)
-               g_variant_builder_add(&b, "{sv}", "PeriodEnd", g_variant_new_string(filter->period_end));
-       if (filter->is_read > -1)
-               g_variant_builder_add(&b, "{sv}", "Read", g_variant_new_boolean(filter->is_read == 1 ? TRUE : FALSE));
-       if (filter->recipient != NULL)
-               g_variant_builder_add(&b, "{sv}", "Recipient", g_variant_new_string(filter->recipient));
-       if (filter->sender != NULL)
-               g_variant_builder_add(&b, "{sv}", "Sender", g_variant_new_string(filter->sender));
-       if (filter->is_priority > -1)
-               g_variant_builder_add(&b, "{sv}", "Priority", g_variant_new_boolean(filter->is_priority == 1 ? TRUE : FALSE));
-       GVariant *filter_variant = g_variant_builder_end(&b);
-
-       int error_code = _bt_get_error_code(bluetooth_map_client_list_messages(session, folder, filter_variant));
+       int error_code = _bt_get_error_code(
+               bluetooth_map_client_list_messages(
+                       session,
+                       folder,
+                       (bt_map_client_list_messages_filter_t*) filter
+               )
+       );
        if (error_code != BT_ERROR_NONE) {
                BT_ERR("bluetooth_map_client_list_messages %s(0x%08x)",
                        _bt_convert_error_to_string(error_code), error_code);
@@ -360,6 +331,21 @@ int bt_map_client_get_message(
        return error_code; /* LCOV_EXCL_STOP */
 }
 
+void bt_map_client_list_folders_filter_create(
+       bt_map_client_list_folders_filter_h *filter)
+{
+       (*filter) = malloc(sizeof(bt_map_client_list_folders_filter_s));
+       (*filter)->offset = -1;
+       (*filter)->max_count = -1;
+}
+
+void bt_map_client_list_folders_filter_destroy(
+       bt_map_client_list_folders_filter_h *filter)
+{
+       free(*filter);
+       *filter = NULL;
+}
+
 void bt_map_client_list_messages_filter_create(
        bt_map_client_list_messages_filter_h *filter)
 {