fix JIRA issue: TNEF-6774 24/59724/2 accepted/tizen/common/20160222.162154 accepted/tizen/ivi/20160218.084137 accepted/tizen/mobile/20160218.055958 accepted/tizen/tv/20160218.060016 accepted/tizen/wearable/20160218.060038 submit/tizen/20160218.025130 submit/tizen_common/20160222.141210
authorKyeonghun Lee <kh9090.lee@samsung.com>
Thu, 18 Feb 2016 02:35:25 +0000 (11:35 +0900)
committerKyeonghun Lee <kh9090.lee@samsung.com>
Thu, 18 Feb 2016 02:37:18 +0000 (11:37 +0900)
Change-Id: I0300e2bde35a904eee58773c6ed17929bc06b7dc
Signed-off-by: Kyeonghun Lee <kh9090.lee@samsung.com>
CMakeLists.txt
packaging/capi-messaging-messages.spec
src/messages.c

index bb1380f4c11e5a4be73ff9e7e5d2a0d9dd6ade37..4f6d955a9c57aaefc1598be3ae3f6406fe579201 100644 (file)
@@ -10,7 +10,7 @@ SET(PREFIX ${CMAKE_INSTALL_PREFIX})
 SET(INC_DIR include)
 INCLUDE_DIRECTORIES(${INC_DIR})
 
-SET(dependents "dlog glib-2.0 msg-service capi-base-common capi-appfw-application capi-system-info privacy-manager-client")
+SET(dependents "dlog glib-2.0 msg-service capi-base-common capi-appfw-application capi-content-mime-type capi-system-info privacy-manager-client")
 
 INCLUDE(FindPkgConfig)
 pkg_check_modules(${fw_name} REQUIRED ${dependents})
index edc14178ce9fa5f3da97b58bd6e5831e6e0a8d81..a43b58fab39b022661c4eed40ae1e3e569154d42 100644 (file)
@@ -15,6 +15,7 @@ BuildRequires: pkgconfig(glib-2.0)
 BuildRequires: pkgconfig(msg-service)
 BuildRequires: pkgconfig(capi-base-common)
 BuildRequires: pkgconfig(capi-appfw-application)
+BuildRequires: pkgconfig(capi-content-mime-type)
 BuildRequires: pkgconfig(capi-system-info)
 BuildRequires: pkgconfig(privacy-manager-client)
 Requires(post): /sbin/ldconfig  
index 5d2b8418b966da4895a28345e2a8e0c3277d7211..36aa9fba761dca21b543a5a9b3c26687eba6e0ae 100644 (file)
@@ -24,6 +24,7 @@
 #include <glib.h>
 
 #include <privacy_checker_client.h>
+#include <mime_type.h>
 
 #include <msg.h>
 #include <msg_transport.h>
@@ -1677,6 +1678,7 @@ int _messages_get_media_type_from_filepath(const char *filepath)
        int len;
        int ret;
        char *file_ext;
+       char *mime_type = NULL;
 
        if (NULL == filepath)
                return MESSAGES_MEDIA_UNKNOWN;
@@ -1687,17 +1689,27 @@ int _messages_get_media_type_from_filepath(const char *filepath)
                return MESSAGES_MEDIA_UNKNOWN;
 
        /* check extension of file */
-       file_ext = (char *)&filepath[len - 4];
+       file_ext = strrchr(filepath, '.');
+       if (file_ext == NULL)
+               return MESSAGES_MEDIA_UNKNOWN;
+
+       file_ext++;
 
-       if (strncmp(file_ext, ".jpg", 4) != 0 && strncmp(file_ext, ".gif", 4) != 0 && strncmp(file_ext, ".bmp", 4) != 0 && strncmp(file_ext, ".png", 4) != 0)
+       mime_type_get_mime_type(file_ext, &mime_type);
+       if (mime_type == NULL)
+               return MESSAGES_MEDIA_UNKNOWN;
+
+       if (g_str_has_prefix(mime_type, "image"))
                ret = MESSAGES_MEDIA_IMAGE;
-       else if (strncmp(file_ext, ".mp4", 4) != 0 && strncmp(file_ext, ".3gp", 4) != 0)
+       else if (g_str_has_prefix(mime_type, "video"))
                ret = MESSAGES_MEDIA_VIDEO;
-       else if (strncmp(file_ext, ".mid", 4) != 0 && strncmp(file_ext, ".aac", 4) != 0 && strncmp(file_ext, ".amr", 4) != 0)
+       else if (g_str_has_prefix(mime_type, "audio"))
                ret = MESSAGES_MEDIA_AUDIO;
        else
                ret = MESSAGES_MEDIA_UNKNOWN;
 
+       g_free(mime_type);
+
        return ret;
 }