int _callmgr_util_service_check_voice_mail(char *phonenumber, int sim_slot, gboolean *is_voicemail_number);
+char *_callmgr_util_get_multiuser_path(char *path);
+
#endif //__CALLMGR_UTIL_H__
#include <cynara-creds-gdbus.h>
#include <cynara-session.h>
#include <systemd/sd-login.h>
+#include <tzplatform_config.h>
#include "callmgr-util.h"
#include "callmgr-log.h"
#define CISS_AUL_CMD "org.tizen.ciss"
#define CISS_MODE_OPT "REQ"
+#define COMPAT_DIR "/opt/usr/media"
+
typedef struct _callmgr_thread_data {
unsigned int call_id;
int sim_slot;
notification_system_setting_free_system_setting(system_setting);
return 0;
}
+
+/*
+ * Get multi-user path from compat path
+ * i.g., /opt/usr/media/... to TZ_USER_CONTENT/...
+ */
+char *_callmgr_util_get_multiuser_path(char *path)
+{
+ int path_len;
+ char *origin_path;
+
+ if (path == NULL)
+ return NULL;
+
+ path_len = strlen(COMPAT_DIR);
+ if (!strncmp(path, COMPAT_DIR, path_len)) {
+ uid_t uid = 0;
+ __callmgr_util_get_active_uid(&uid);
+ tzplatform_set_user(uid);
+
+ origin_path = g_strdup_printf("%s%s",
+ tzplatform_getenv(TZ_USER_CONTENT), path + path_len);
+
+ tzplatform_reset_user();
+ return origin_path;
+ } else {
+ return g_strdup(path);
+ }
+}
if (CONTACTS_ERROR_NONE != err) {
err("contacts_record_get_str(group id path) error %d", err);
} else {
- contact_info->caller_ringtone_path = g_strdup(ringtone_path);
+ contact_info->caller_ringtone_path = _callmgr_util_get_multiuser_path(ringtone_path);
+ dbg("caller_ringtone_path: [%s]", contact_info->caller_ringtone_path);
g_free(ringtone_path);
ringtone_path = NULL;
err("contacts_record_get_str(ringtone path) error %d", err);
} else {
info("Caller ringtone");
- contact_info->caller_ringtone_path = g_strdup(ringtone_path);
+ contact_info->caller_ringtone_path = _callmgr_util_get_multiuser_path(ringtone_path);
+ dbg("caller_ringtone_path: [%s]", contact_info->caller_ringtone_path);
free(ringtone_path);
}
contacts_record_destroy(person_record, TRUE);