app name could be changed depending on profile 71/137471/3 accepted/tizen/unified/20170707.154604 submit/tizen/20170707.010432
authorJeesun Kim <iamjs.kim@samsung.com>
Thu, 6 Jul 2017 05:43:29 +0000 (14:43 +0900)
committerJeesun Kim <iamjs.kim@samsung.com>
Thu, 6 Jul 2017 06:00:17 +0000 (15:00 +0900)
Signed-off-by: Jeesun Kim <iamjs.kim@samsung.com>
Change-Id: I8d4f9904434e941125649f46f0abab0ae7d3d3f7

manager/inc/msg-manager-notification.h
manager/inc/msg-manager-profile.h [new file with mode: 0644]
manager/src/msg-manager-notification.cpp

index edab972..82199c1 100644 (file)
@@ -40,6 +40,7 @@
 
 #define MSG_MGR_APP_ID                         "org.tizen.msg-manager"
 #define MSG_DEFAULT_APP_ID                     "org.tizen.message"
+#define MSG_WEARABLE_APP_ID                    "org.tizen.w-message"
 #define MSG_QUICKPANEL_APP_ID          "org.tizen.quickpanel"
 #define MSG_CALL_APP_ID                                "org.tizen.call-ui"
 #define MSG_SETTING_APP_ID                     "org.tizen.setting"
diff --git a/manager/inc/msg-manager-profile.h b/manager/inc/msg-manager-profile.h
new file mode 100644 (file)
index 0000000..e777420
--- /dev/null
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+*/
+
+#ifndef __MSG_MGR_PROFILE_H__
+#define __MSG_MGR_PROFILE_H__
+
+#include <stdlib.h>
+#include <system_info.h>
+
+typedef enum {
+       _PROFILE_UNKNOWN = 0,
+       _PROFILE_MOBILE = 0x1,
+       _PROFILE_WEARABLE = 0x2,
+       _PROFILE_TV = 0x4,
+       _PROFILE_IVI = 0x8,
+       _PROFILE_COMMON = 0x10,
+} tizen_profile_t;
+
+/* For optimization, make this extern and define in a shared C file */
+extern tizen_profile_t profile;
+
+/* Accessing system info */
+int system_info_get_platform_string(const char *key, char **value);
+
+static inline tizen_profile_t get_tizen_profile()
+{
+       char *profileName = NULL;
+
+       if (__builtin_expect(profile != _PROFILE_UNKNOWN, 1))
+               return profile;
+
+       system_info_get_platform_string("http://tizen.org/feature/profile", &profileName);
+
+       /* To pass the checking of g_ir */
+       if (!profileName)
+               return _PROFILE_UNKNOWN;
+
+       switch (*profileName) {
+       case 'm':
+       case 'M':
+               profile = _PROFILE_MOBILE;
+               break;
+       case 'w':
+       case 'W':
+               profile = _PROFILE_WEARABLE;
+               break;
+       case 't':
+       case 'T':
+               profile = _PROFILE_TV;
+               break;
+       case 'i':
+       case 'I':
+               profile = _PROFILE_IVI;
+               break;
+       default: // common or unknown ==> ALL ARE COMMON.
+               profile = _PROFILE_COMMON;
+       }
+       free(profileName);
+
+       return profile;
+}
+#endif /*__MSG_MGR_PROFILE_H__ */
+
index f1bc3ad..e51b00a 100644 (file)
@@ -45,6 +45,7 @@
 #include <msg-manager-debug.h>
 #include <msg-manager-notification.h>
 #include <msg-manager-sound.h>
+#include <msg-manager-profile.h>
 
 
 #define EMAIL_AT '@'
@@ -57,6 +58,8 @@ static GList *msg_report_notification_list = NULL;
 static bool is_init = false;
 extern msg_handle_t msg_handle;
 int g_alarmId = 0;
+tizen_profile_t profile = _PROFILE_UNKNOWN;
+char g_app_id[32] = {0};
 
 
 /*==================================================================================================
@@ -172,6 +175,27 @@ char *get_translate_text(const char *pkg_name, const char *locale_dir, const cha
 /*==================================================================================================
                                                                        FUNCTION IMPLEMENTATION
 ==================================================================================================*/
+char *_get_app_id(void)
+{
+    if ('\0' != *g_app_id)
+        return g_app_id;
+
+    char *app_id = NULL;
+    switch (get_tizen_profile()) {
+    case _PROFILE_WEARABLE:
+        app_id = MSG_WEARABLE_APP_ID;
+        break;
+    case _PROFILE_MOBILE:
+    default:
+        app_id = MSG_DEFAULT_APP_ID;
+        break;
+    }
+    snprintf(g_app_id, sizeof(g_app_id), "%s", app_id);
+    MSG_MGR_ERR("app id [%s]", g_app_id);
+
+    return g_app_id;
+}
+
 bool _is_valid_email(char *pAddress)
 {
        if (!pAddress || pAddress[0] == 0)
@@ -639,7 +663,7 @@ void MsgMgrDeleteNotification(msg_mgr_notification_type_t noti_type, int simInde
                MSG_MGR_DEBUG("deleted notification ID = [%d] Type = [%d]", notiId, noti_type);
 
                if (notiId > 0)
-                       noti_err = notification_delete_by_priv_id(MSG_DEFAULT_APP_ID, NOTIFICATION_TYPE_NOTI, notiId);
+                       noti_err = notification_delete_by_priv_id(_get_app_id(), NOTIFICATION_TYPE_NOTI, notiId);
 
        } else {
                MSG_MGR_DEBUG("No matching type [%d]", noti_type);
@@ -688,7 +712,7 @@ int MsgMgrDeleteSentReadReportNotification()
        }
 
        if (readReportSentNotiId > 0) {
-               noti_err = notification_delete_by_priv_id(MSG_DEFAULT_APP_ID, NOTIFICATION_TYPE_NOTI, readReportSentNotiId);
+               noti_err = notification_delete_by_priv_id(_get_app_id(), NOTIFICATION_TYPE_NOTI, readReportSentNotiId);
                if (noti_err != 0) {
                        MSG_MGR_DEBUG("notification_delete_by_priv_id() fail [%d]", noti_err);
                        return -1;
@@ -825,7 +849,7 @@ void setProperty(notification_h noti_h, MSG_MGR_NOTI_INFO_S *noti_info)
        }
 
        /* set pkg name */
-       noti_err = notification_set_pkgname(noti_h, MSG_DEFAULT_APP_ID);
+       noti_err = notification_set_pkgname(noti_h, _get_app_id());
        if (noti_err != NOTIFICATION_ERROR_NONE) {
                MSG_MGR_DEBUG("Fail to notification_set_pkgname");
        }
@@ -1104,7 +1128,7 @@ void setIcon(notification_h noti_h, MSG_MGR_NOTI_INFO_S *noti_info)
                                }
 
                                char *msg_icon_path = NULL;
-                               if (getAppIcon(MSG_DEFAULT_APP_ID, &msg_icon_path) == 0) {
+                               if (getAppIcon(_get_app_id(), &msg_icon_path) == 0) {
                                        setNotiImage(noti_h, NOTIFICATION_IMAGE_TYPE_ICON_SUB, msg_icon_path);
                                        g_free(msg_icon_path);
                                } else {
@@ -1174,7 +1198,7 @@ void setIcon(notification_h noti_h, MSG_MGR_NOTI_INFO_S *noti_info)
                break;
        case MSG_MGR_NOTI_TYPE_STORAGE_FULL: {
                char *msg_icon_path = NULL;
-               if (getAppIcon(MSG_DEFAULT_APP_ID, &msg_icon_path) == 0) {
+               if (getAppIcon(_get_app_id(), &msg_icon_path) == 0) {
                        setNotiImage(noti_h, NOTIFICATION_IMAGE_TYPE_ICON, msg_icon_path);
                        g_free(msg_icon_path);
                } else {
@@ -1230,7 +1254,7 @@ void setActiveProperty(notification_h noti_h, MSG_MGR_NOTI_INFO_S *noti_info)
        }
 
        /* set pkg name */
-       noti_err = notification_set_pkgname(noti_h, MSG_DEFAULT_APP_ID);
+       noti_err = notification_set_pkgname(noti_h, _get_app_id());
        if (noti_err != NOTIFICATION_ERROR_NONE) {
                MSG_MGR_DEBUG("Fail to notification_set_pkgname");
        }
@@ -1317,7 +1341,7 @@ void setActiveIcon(notification_h noti_h, MSG_MGR_NOTI_INFO_S *noti_info)
                                setNotiImage(noti_h, NOTIFICATION_IMAGE_TYPE_ICON, MSG_NO_CONTACT_PROFILE_ICON_PATH);
 
                        char *msg_icon_path = NULL;
-                       if (getAppIcon(MSG_DEFAULT_APP_ID, &msg_icon_path) == 0) {
+                       if (getAppIcon(_get_app_id(), &msg_icon_path) == 0) {
                                setNotiImage(noti_h, NOTIFICATION_IMAGE_TYPE_ICON_SUB, msg_icon_path);
                                g_free(msg_icon_path);
                        } else {
@@ -1350,7 +1374,7 @@ int MsgMgrInsertDeliveryReportInstantNotification(msg_mgr_notification_type_t no
        MSG_MGR_BEGIN();
 
        notification_h noti = notification_create(NOTIFICATION_TYPE_NOTI);
-       notification_set_pkgname(noti, MSG_DEFAULT_APP_ID);
+       notification_set_pkgname(noti, _get_app_id());
 
        setTextDomain(noti);
        setNotiText(noti, NOTIFICATION_TEXT_TYPE_TITLE, "Delivery report", DELIVERY_MESSAGE);
@@ -1504,7 +1528,7 @@ void setActiveNotification(notification_h noti_h, MSG_MGR_NOTI_INFO_S *noti_info
 
        createServiceHandle(&noti_info->active_noti_svc_h[2]);
        if (noti_info->active_noti_svc_h[2]) {
-               setServicePackageName(noti_info->active_noti_svc_h[2], MSG_DEFAULT_APP_ID);
+               setServicePackageName(noti_info->active_noti_svc_h[2], _get_app_id());
 
                MSG_MGR_DEBUG("Active Notification button 3 - msgId = [%d]", noti_info->msg_id);
                addServiceExtraData(noti_info->active_noti_svc_h[2], "type", "new_msg");
@@ -1903,7 +1927,7 @@ int getLatestMsgInfo(MSG_MGR_NOTI_INFO_S *noti_info, bool isForInstantMessage)
                        if (!isForInstantMessage) {
                                /* No unread message. */
                                if (noti_info->id > 0) {
-                                       noti_err = notification_delete_by_priv_id(MSG_DEFAULT_APP_ID, NOTIFICATION_TYPE_NOTI, noti_info->id);
+                                       noti_err = notification_delete_by_priv_id(_get_app_id(), NOTIFICATION_TYPE_NOTI, noti_info->id);
                                        if (noti_err != NOTIFICATION_ERROR_NONE) {
                                                MSG_MGR_DEBUG("Fail to notification_delete_by_priv_id : %d", noti_err);
                                        }
@@ -2039,7 +2063,7 @@ int getLatestMsgInfo(MSG_MGR_NOTI_INFO_S *noti_info, bool isForInstantMessage)
 
                        if (!isForInstantMessage) {
                                if (noti_info->id > 0 && noti_info->count == 1) {
-                                       noti_err = notification_delete_by_priv_id(MSG_DEFAULT_APP_ID, NOTIFICATION_TYPE_NOTI, noti_info->id);
+                                       noti_err = notification_delete_by_priv_id(_get_app_id(), NOTIFICATION_TYPE_NOTI, noti_info->id);
                                        if (noti_err != NOTIFICATION_ERROR_NONE) {
                                                MSG_MGR_DEBUG("Fail to notification_delete_by_priv_id : %d", noti_err);
                                        }
@@ -2131,7 +2155,7 @@ int getLatestMsgInfo(MSG_MGR_NOTI_INFO_S *noti_info, bool isForInstantMessage)
                        if (!isForInstantMessage) {
                                /* No unread message. */
                                if (noti_info->id > 0) {
-                                       noti_err = notification_delete_by_priv_id(MSG_DEFAULT_APP_ID, NOTIFICATION_TYPE_NOTI, noti_info->id);
+                                       noti_err = notification_delete_by_priv_id(_get_app_id(), NOTIFICATION_TYPE_NOTI, noti_info->id);
                                        if (noti_err != NOTIFICATION_ERROR_NONE) {
                                                MSG_MGR_DEBUG("Fail to notification_delete_by_priv_id : %d", noti_err);
                                        }
@@ -2229,7 +2253,7 @@ int getLatestMsgInfo(MSG_MGR_NOTI_INFO_S *noti_info, bool isForInstantMessage)
                                if (!isForInstantMessage) {
                                        /* No unread message. */
                                        if (noti_info->id > 0) {
-                                               noti_err = notification_delete_by_priv_id(MSG_DEFAULT_APP_ID, NOTIFICATION_TYPE_NOTI, noti_info->id);
+                                               noti_err = notification_delete_by_priv_id(_get_app_id(), NOTIFICATION_TYPE_NOTI, noti_info->id);
                                                if (noti_err != NOTIFICATION_ERROR_NONE) {
                                                        MSG_MGR_DEBUG("Fail to notification_delete_by_priv_id : %d", noti_err);
                                                }
@@ -2327,7 +2351,7 @@ int getLatestMsgInfo(MSG_MGR_NOTI_INFO_S *noti_info, bool isForInstantMessage)
 
                                if (!isForInstantMessage) {
                                        if (noti_info->id > 0 && noti_info->count == 1) {
-                                               noti_err = notification_delete_by_priv_id(MSG_DEFAULT_APP_ID, NOTIFICATION_TYPE_NOTI, noti_info->id);
+                                               noti_err = notification_delete_by_priv_id(_get_app_id(), NOTIFICATION_TYPE_NOTI, noti_info->id);
                                                if (noti_err != NOTIFICATION_ERROR_NONE) {
                                                        MSG_MGR_DEBUG("Fail to notification_delete_by_priv_id : %d", noti_err);
                                                }
@@ -2345,7 +2369,7 @@ int getLatestMsgInfo(MSG_MGR_NOTI_INFO_S *noti_info, bool isForInstantMessage)
                                if (!isForInstantMessage) {
                                        /* No unread message. */
                                        if (noti_info->id > 0) {
-                                               noti_err = notification_delete_by_priv_id(MSG_DEFAULT_APP_ID, NOTIFICATION_TYPE_NOTI, noti_info->id);
+                                               noti_err = notification_delete_by_priv_id(_get_app_id(), NOTIFICATION_TYPE_NOTI, noti_info->id);
                                                if (noti_err != NOTIFICATION_ERROR_NONE) {
                                                        MSG_MGR_DEBUG("Fail to notification_delete_by_priv_id : %d", noti_err);
                                                }
@@ -2652,7 +2676,7 @@ void createInfoData(MSG_MGR_NOTI_INFO_S *noti_info, MSG_MGR_MESSAGE_INFO_S *msg_
                snprintf(noti_info->number, sizeof(noti_info->number), "%s", msg_info->addressVal);
 
                if (noti_info->msg_id > 0) {
-                       setServiceAppId(noti_info->svc_h, MSG_DEFAULT_APP_ID);
+                       setServiceAppId(noti_info->svc_h, _get_app_id());
                        addServiceExtraData(noti_info->svc_h, "type", "new_msg");
                        addServiceExtraData(noti_info->svc_h, "msgId", noti_info->msg_id);
                        addServiceExtraData(noti_info->svc_h, "address", msg_info->addressVal);
@@ -2726,7 +2750,7 @@ void createInfoData(MSG_MGR_NOTI_INFO_S *noti_info, MSG_MGR_MESSAGE_INFO_S *msg_
                }
 
                if (noti_info->msg_id > 0) {
-                       setServiceAppId(noti_info->svc_h, MSG_DEFAULT_APP_ID);
+                       setServiceAppId(noti_info->svc_h, _get_app_id());
                        addServiceExtraData(noti_info->svc_h, "type", "new_msg");
                        addServiceExtraData(noti_info->svc_h, "msgId", noti_info->msg_id);
                        addServiceExtraData(noti_info->svc_h, "address", msg_info->addressVal);
@@ -2759,7 +2783,7 @@ void createInfoData(MSG_MGR_NOTI_INFO_S *noti_info, msg_mgr_active_notification_
                        noti_info->layout = NOTIFICATION_LY_NOTI_EVENT_SINGLE;
                }
 
-               setServiceAppId(noti_info->svc_h, MSG_DEFAULT_APP_ID);
+               setServiceAppId(noti_info->svc_h, _get_app_id());
                addServiceExtraData(noti_info->svc_h, "type", "new_msg");
                addServiceExtraData(noti_info->svc_h, "msgId", noti_info->msg_id);
                addServiceExtraData(noti_info->svc_h, "http://tizen.org/appcontrol/data/notification", "new_message");
@@ -2797,7 +2821,7 @@ void createInfoData(MSG_MGR_NOTI_INFO_S *noti_info, msg_mgr_active_notification_
                        noti_info->layout = NOTIFICATION_LY_NOTI_EVENT_SINGLE;
                }
 
-               setServiceAppId(noti_info->svc_h, MSG_DEFAULT_APP_ID);
+               setServiceAppId(noti_info->svc_h, _get_app_id());
                addServiceExtraData(noti_info->svc_h, "type", "new_msg");
                addServiceExtraData(noti_info->svc_h, "msgId", noti_info->msg_id);
 
@@ -2816,7 +2840,7 @@ void createInfoData(MSG_MGR_NOTI_INFO_S *noti_info, msg_mgr_active_notification_
                        noti_info->layout = NOTIFICATION_LY_NOTI_EVENT_SINGLE;
                }
 
-               setServiceAppId(noti_info->svc_h, MSG_DEFAULT_APP_ID);
+               setServiceAppId(noti_info->svc_h, _get_app_id());
                addServiceExtraData(noti_info->svc_h, "type", "new_msg");
                addServiceExtraData(noti_info->svc_h, "msgId", noti_info->msg_id);
 
@@ -2832,7 +2856,7 @@ void createInfoData(MSG_MGR_NOTI_INFO_S *noti_info, msg_mgr_active_notification_
        case MSG_MGR_NOTI_TYPE_FAILED: {
                noti_info->layout = NOTIFICATION_LY_NOTI_EVENT_SINGLE;
 
-               setServiceAppId(noti_info->svc_h, MSG_DEFAULT_APP_ID);
+               setServiceAppId(noti_info->svc_h, _get_app_id());
                addServiceExtraData(noti_info->svc_h, "type", "send_failed_msg");
                addServiceExtraData(noti_info->svc_h, "msgId", noti_info->msg_id);
 
@@ -2842,7 +2866,7 @@ void createInfoData(MSG_MGR_NOTI_INFO_S *noti_info, msg_mgr_active_notification_
        case MSG_MGR_NOTI_TYPE_SIM_FULL: {
                noti_info->layout = NOTIFICATION_LY_NOTI_EVENT_SINGLE;
 
-               setServiceAppId(noti_info->svc_h, MSG_DEFAULT_APP_ID);
+               setServiceAppId(noti_info->svc_h, _get_app_id());
                addServiceExtraData(noti_info->svc_h, "sim_list_show", "sim_setting");
 
                noti_info->applist = NOTIFICATION_DISPLAY_APP_NOTIFICATION_TRAY|NOTIFICATION_DISPLAY_APP_INDICATOR;
@@ -3097,7 +3121,7 @@ int MsgMgrInsertInstantMessage(msg_mgr_notification_type_t noti_type)
        if (notification_set_display_applist(noti, NOTIFICATION_DISPLAY_APP_TICKER) != NOTIFICATION_ERROR_NONE)
                MSG_MGR_DEBUG("Fail to notification_set_display_applist");
 
-       if (notification_set_pkgname(noti, MSG_DEFAULT_APP_ID) != NOTIFICATION_ERROR_NONE)
+       if (notification_set_pkgname(noti, _get_app_id()) != NOTIFICATION_ERROR_NONE)
                MSG_MGR_DEBUG("Fail to notification_set_pkgname");
 
        if (notification_post(noti) != NOTIFICATION_ERROR_NONE)
@@ -3131,10 +3155,10 @@ bool MsgMgrCheckNotificationSettingEnable()
 
        int err = NOTIFICATION_ERROR_NONE;
 
-       err = notification_setting_get_setting_by_package_name(MSG_DEFAULT_APP_ID, &setting);
+       err = notification_setting_get_setting_by_package_name(_get_app_id(), &setting);
 
        if (err != NOTIFICATION_ERROR_NONE || setting == NULL) {
-               MSG_MGR_ERR("getting setting handle for [%s] is failed. err = %d", MSG_DEFAULT_APP_ID, err);
+               MSG_MGR_ERR("getting setting handle for [%s] is failed. err = %d", _get_app_id(), err);
        } else {
                msg_noti_enabled = true;
 
@@ -3169,10 +3193,10 @@ bool MsgMgrCheckNotificationSettingEnable()
                                bool is_msg_excepted = false;
                                err = notification_setting_get_do_not_disturb_except(setting, &is_msg_excepted);
                                if (err != NOTIFICATION_ERROR_NONE) {
-                                       MSG_MGR_ERR("getting do not disturb except status for [%s] is failed. err = %d", MSG_DEFAULT_APP_ID, err);
+                                       MSG_MGR_ERR("getting do not disturb except status for [%s] is failed. err = %d", _get_app_id(), err);
                                        msg_noti_enabled = false;
                                } else {
-                                       MSG_MGR_INFO("do not disturb mode status for [%s] : %d", MSG_DEFAULT_APP_ID, is_msg_excepted);
+                                       MSG_MGR_INFO("do not disturb mode status for [%s] : %d", _get_app_id(), is_msg_excepted);
                                        msg_noti_enabled = (is_msg_excepted) ? true : false;
                                }
                        } else {
@@ -3263,7 +3287,7 @@ int MsgMgrInsertBadge(unsigned int unreadMsgCnt)
        int err = BADGE_ERROR_NONE;
        bool exist = false;
 
-       err = badge_is_existing(MSG_DEFAULT_APP_ID, &exist);
+       err = badge_is_existing(_get_app_id(), &exist);
 
        if (err != BADGE_ERROR_NONE) {
                MSG_MGR_ERR("Fail to badge_is_existing : %d", err);
@@ -3272,14 +3296,14 @@ int MsgMgrInsertBadge(unsigned int unreadMsgCnt)
 
        if (!exist) {
                /* create badge */
-               err = badge_add(MSG_DEFAULT_APP_ID);
+               err = badge_add(_get_app_id());
                if (err != BADGE_ERROR_NONE) {
                        MSG_MGR_ERR("Fail to badge_add : %d", err);
                        return -1;
                }
        }
 
-       err = badge_set_count(MSG_DEFAULT_APP_ID, unreadMsgCnt);
+       err = badge_set_count(_get_app_id(), unreadMsgCnt);
 
        if (err != BADGE_ERROR_NONE) {
                MSG_MGR_ERR("Fail to badge_set_count : %d", err);