Modify the pb agent for gtest
[platform/core/connectivity/bluetooth-agent.git] / pb-agent / bluetooth_pb_vcard.c
old mode 100755 (executable)
new mode 100644 (file)
index 0d1637c..38c3838
@@ -27,7 +27,6 @@
 #include <stdlib.h>
 #include <stdio.h>
 #include <glib.h>
-#include <dbus/dbus-glib.h>
 #include <vconf.h>
 #include <dlog.h>
 #include <fcntl.h>
 #include <sys/stat.h>
 #include <contacts.h>
 #include <image_util.h>
-//#include <image_util_product.h>
+#include <image_util_internal.h>
 #include <libexif/exif-data.h>
 #include <unistd.h>
 
 #include "bluetooth_pb_vcard.h"
 #include "bluetooth_pb_agent.h"
 
-#define VCARD_FORMAT_2_1 0x0
-#define VCARD_FORMAT_3_0 0x1
-
-#define VCARD_VERSION  (0x1)
-#define VCARD_FN       (0x1 << 1)
-#define VCARD_N                (0x1 << 2)
-#define VCARD_PHOTO    (0x1 << 3)
-#define VCARD_BDAY     (0x1 << 4)
-#define VCARD_ADR      (0x1 << 5)
-#define VCARD_LABEL    (0x1 << 6)      /* not supported */
-#define VCARD_TEL      (0x1 << 7)
-#define VCARD_EMAIL    (0x1 << 8)
-#define VCARD_MAILER   (0x1 << 9)      /* not supported */
-#define VCARD_TZ       (0x1 << 10)     /* not supported */
-#define VCARD_GEO      (0x1 << 11)     /* not supported */
-#define VCARD_TITLE    (0x1 << 12)
-#define VCARD_ROLE     (0x1 << 13)
-#define VCARD_LOGO     (0x1 << 14)     /* not supported */
-#define VCARD_AGENT    (0x1 << 15)     /* not supported */
-#define VCARD_ORG      (0x1 << 16)
-#define VCARD_NOTE     (0x1 << 17)
-#define VCARD_REV      (0x1 << 18)
-#define VCARD_SOUND    (0x1 << 19)     /* not supported */
-#define VCARD_URL      (0x1 << 20)
-#define VCARD_UID      (0x1 << 21)
-#define VCARD_KEY      (0x1 << 22)     /* not supported */
-#define VCARD_NICKNAME (0x1 << 23)
-#define VCARD_CATEGORIES       (0x1 << 24)     /* not supported */
-#define VCARD_PROID    (0x1 << 25)     /* not supported */
-#define VCARD_CLASS    (0x1 << 26)     /* not supported */
-#define VCARD_SORT_STRING      (0x1 << 27)     /* not supported */
-#define VCARD_X_IRMC_CALL_DATETIME     (0x1 << 28)
-
 #define QP_ENC_LEN     3
 #define LINEBREAK_LEN  75
 
@@ -759,6 +725,11 @@ static void __bluetooth_pb_vcard_append_fn_v21(GString *string,
        g_free(fn);
 }
 
+/* image util APIs will be deprecated in Tizen 5.0. So we should replace it to new API
+     https://developer.tizen.org/development/guides/native-application/media-and-camera/image-editing#decode
+     https://developer.tizen.org/development/guides/native-application/media-and-camera/image-editing#encode
+*/
+#if 0
 static image_util_rotation_e __bt_pbap_get_rotation_info(const char *path)
 {
        FN_START;
@@ -899,9 +870,11 @@ static bool __bt_pbap_image_util_supported_jpeg_colorspace_cb(
                int rotated_width, rotated_height;
                unsigned char *img_rotate = 0;
                img_rotate = g_malloc0(size_decode);
-               image_util_rotate(img_rotate, &rotated_width, &rotated_height,
+               ret = image_util_rotate(img_rotate, &rotated_width, &rotated_height,
                                        rotation, img_target, resized_width,
                                        resized_height, colorspace);
+               if (ret != 0)
+                       ERR("image_util_rotate failed");
                resized_width = rotated_width;
                resized_height = rotated_height;
                g_free(img_target);
@@ -970,6 +943,7 @@ done:
        FN_END;
        return false;
 }
+#endif
 
 static void __bluetooth_pb_vcard_append_photo_v21(GString *string,
                                                contacts_record_h person)
@@ -977,8 +951,6 @@ static void __bluetooth_pb_vcard_append_photo_v21(GString *string,
        FN_START;
        gint status;
        gchar *filename = NULL;
-       int res = 0;
-       bt_image_info_t img_info;
        struct stat stat_info;
        gchar *type = NULL;
        gchar *param = NULL;
@@ -995,9 +967,8 @@ static void __bluetooth_pb_vcard_append_photo_v21(GString *string,
 
        stat_info.st_size = 0;
 
-       if (0 > stat(filename, &stat_info)) {
+       if (0 > stat(filename, &stat_info))
                ERR("fstat failed, file does not exist %s", filename);
-       }
 
        if (PBAP_THUMB_FILE_SIZE > stat_info.st_size) {
                DBG_SECURE("File size small, so use thubnail %s\n", filename);
@@ -1033,6 +1004,15 @@ static void __bluetooth_pb_vcard_append_photo_v21(GString *string,
                DBG("Thumbnail path is = %s", dest_thumb_path);
        }
        DBG_SECURE("filename = %s Thumbnail path is = %s", filename, dest_thumb_path);
+
+/* image_util_foreach_supported_jpeg_colorspace API will be deprecated in Tizen 5.0. So we should replace it to new API
+     https://developer.tizen.org/development/guides/native-application/media-and-camera/image-editing#decode
+     https://developer.tizen.org/development/guides/native-application/media-and-camera/image-editing#encode
+*/
+#if 0
+       bt_image_info_t img_info;
+       int res = 0;
+
        img_info.src = filename;
        img_info.dest = dest_thumb_path;
        img_info.ret = CONTACTS_ERROR_INTERNAL;
@@ -1041,9 +1021,11 @@ static void __bluetooth_pb_vcard_append_photo_v21(GString *string,
 
        res = image_util_foreach_supported_jpeg_colorspace(
                __bt_pbap_image_util_supported_jpeg_colorspace_cb, &img_info);
-       if (res != IMAGE_UTIL_ERROR_NONE) {
+
+       if (res != IMAGE_UTIL_ERROR_NONE)
                ERR("Image resizing is failed");
-       }
+#endif
+
        FN_END;
 }
 
@@ -1606,9 +1588,6 @@ static gchar *__bluetooth_pb_vcard_filter_v30(const gchar *vcard,
 
        string = g_string_new(vcard);
 
-       if ((filter & VCARD_PHOTO) == 0)
-               __bluetooth_pb_vcard_remove_v30(string, "PHOTO");
-
        if ((filter & VCARD_BDAY) == 0)
                __bluetooth_pb_vcard_remove_v30(string, "BDAY");
 
@@ -1794,11 +1773,6 @@ static gchar *__bluetooth_pb_vcard_real_contact_valist_v30(gint person_id,
        if (status != CONTACTS_ERROR_NONE)
                return NULL;
 
-       status = contacts_record_destroy(person, TRUE);
-
-       if (status != CONTACTS_ERROR_NONE)
-               return NULL;
-
        /* removing the END:VCARD\r\n" to append extra data */
        str = g_string_new_len(vcard, (strlen(vcard)-11));
        g_free(vcard);
@@ -1825,6 +1799,16 @@ static gchar *__bluetooth_pb_vcard_real_contact_valist_v30(gint person_id,
                g_free(number);
        }
 
+       /* Remove Full contact image and add thumbnail image */
+       __bluetooth_pb_vcard_remove_v30(str, "PHOTO");
+       if (filter & VCARD_PHOTO)
+               __bluetooth_pb_vcard_append_photo_v21(str, person); /* Photo is same as vCard 2.1 */
+
+       /* Destroy contact record */
+       status = contacts_record_destroy(person, TRUE);
+       if (status != CONTACTS_ERROR_NONE)
+               ERR("Failed to destroy person");
+
        g_string_append(str, "END:VCARD\r\n");
 
        vcard = g_string_free(str, FALSE);
@@ -2043,21 +2027,18 @@ static gchar **__bluetooth_pb_contact_tel_param(contacts_record_h number)
        if (status != CONTACTS_ERROR_NONE)
                return NULL;
 
-       strv = g_new0(char *, TEL_PARAM_LEN + 1);/* tel param max size is 13 */
-
-       if (is_default) {
-               strv[i] = g_strdup("PREF");
-               i++;
-       }
-
        status = contacts_record_get_int(number,
                        _contacts_number.type,
                        (gint *)&type);
 
        if (status != CONTACTS_ERROR_NONE)
-       {
-               g_free(strv);
                return NULL;
+
+       strv = g_new0(char *, TEL_PARAM_LEN + 1);/* tel param max size is 13 */
+
+       if (is_default) {
+               strv[i] = g_strdup("PREF");
+               i++;
        }
 
        if (type & CONTACTS_NUMBER_TYPE_HOME) {
@@ -2301,8 +2282,7 @@ static gchar *__bluetooth_pb_name_from_contact(contacts_record_h contact)
        FN_START;
        contacts_record_h name = NULL;
 
-       GString *str = g_string_new(NULL);
-
+       GString *str;
        gint status;
        gint i;
 
@@ -2320,6 +2300,8 @@ static gchar *__bluetooth_pb_name_from_contact(contacts_record_h contact)
        if (status != CONTACTS_ERROR_NONE)
                return NULL;
 
+       str = g_string_new(NULL);
+
        for (i = 0; i < name_size; i++) {
                gchar *tmp = NULL;
                gchar *escape = NULL;
@@ -2347,7 +2329,7 @@ static gchar *__bluetooth_pb_phonetic_name_from_contact(contacts_record_h contac
        FN_START;
        contacts_record_h name = NULL;
 
-       GString *str = g_string_new(NULL);
+       GString *str;
 
        gint status;
 
@@ -2369,6 +2351,8 @@ static gchar *__bluetooth_pb_phonetic_name_from_contact(contacts_record_h contac
        if (phonetic_first == NULL)
                return NULL;
 
+       str = g_string_new(NULL);
+
        status = contacts_record_get_str_p(name, _contacts_name.phonetic_last, &phonetic_last);
 
        if ((status == CONTACTS_ERROR_NONE) && (phonetic_last != NULL)) {