diff options
Diffstat (limited to 'lib/common/ph-detail-log.cpp')
-rwxr-xr-x | lib/common/ph-detail-log.cpp | 530 |
1 files changed, 0 insertions, 530 deletions
diff --git a/lib/common/ph-detail-log.cpp b/lib/common/ph-detail-log.cpp deleted file mode 100755 index b7a1f41..0000000 --- a/lib/common/ph-detail-log.cpp +++ /dev/null @@ -1,530 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ - -#include "phone.h" -#include <unicode/udat.h> -#include <unicode/udatpg.h> -#include <unicode/ucal.h> -#include <unicode/ustring.h> -#include <vconf.h> -#include <vconf-keys.h> -#include <runtime_info.h> -#include <string> - -#include "phone-common.h" - -enum -{ - LOG_FORMAT_TIME_12 = 0, - LOG_FORMAT_TIME_24, - LOG_FORMAT_DATE, - LOG_FORMAT_MAX, -}; - -static const char *date_time_format[] = { "hm", "Hm", "yMMMdd", "yMMMddhm", - "yMMMddHm", }; - -static std::string m_img_logtype_tbl[LOG_TYPE_MAX] = { - IMGDIR"/C01-4_list_icon_call.png", IMGDIR"/C01-4_list_icon_vt-call.png", - IMGDIR"/C01-4_list_icon_sms.png", IMGDIR"/C01-4_list_icon_mms.png" }; - -static std::string m_img_logaction_tbl[LOG_ACTION_MAX] = { - IMGDIR"/C01-4_icon_dialed.png", IMGDIR"/C01-4_icon_missed-call.png", - IMGDIR"/C01-4_icon_received.png", IMGDIR"/C01-4_icon_rejected.png", - IMGDIR"/C01-4_icon_Blocked(Auto-rejected).png" }; - -static bool is_24hour_enabled = false; - -int phone_detail_log_is_call_ing_type(int type) -{ - PH_TRACE; - switch (type) - { - case CONTACTS_PLOG_TYPE_VOICE_INCOMMING: - case CONTACTS_PLOG_TYPE_VOICE_OUTGOING: - case CONTACTS_PLOG_TYPE_VIDEO_INCOMMING: - case CONTACTS_PLOG_TYPE_VIDEO_OUTGOING: - return TRUE; - default: - return FALSE; - } -} - -static int detail_log_is_voice_call_type(int type) -{ - PH_TRACE; - switch (type) - { - case CONTACTS_PLOG_TYPE_VOICE_INCOMMING: - case CONTACTS_PLOG_TYPE_VOICE_OUTGOING: - case CONTACTS_PLOG_TYPE_VOICE_INCOMMING_UNSEEN: - case CONTACTS_PLOG_TYPE_VOICE_INCOMMING_SEEN: - case CONTACTS_PLOG_TYPE_VOICE_REJECT: - case CONTACTS_PLOG_TYPE_VOICE_BLOCKED: - return TRUE; - default: - return FALSE; - } -} - -int phone_detail_log_is_mms_type(int type) -{ - PH_TRACE; - if (type == CONTACTS_PLOG_TYPE_MMS_INCOMMING - || type == CONTACTS_PLOG_TYPE_MMS_OUTGOING - || type == CONTACTS_PLOG_TYPE_MMS_BLOCKED) - return TRUE; - else - return FALSE; -} - -int phone_detail_log_is_sms_type(int type) -{ - PH_TRACE; - if (type == CONTACTS_PLOG_TYPE_SMS_INCOMMING - || type == CONTACTS_PLOG_TYPE_SMS_OUTGOING - || type == CONTACTS_PLOG_TYPE_SMS_BLOCKED) - return TRUE; - else - return FALSE; -} - -int phone_detail_log_is_email_type(int type) -{ - PH_TRACE; - if (type == CONTACTS_PLOG_TYPE_EMAIL_RECEIVED - || type == CONTACTS_PLOG_TYPE_EMAIL_SENT) - return TRUE; - else - return FALSE; -} - -static int detail_log_is_video_call_type(int type) -{ - PH_TRACE; - switch (type) - { - case CONTACTS_PLOG_TYPE_VIDEO_INCOMMING: - case CONTACTS_PLOG_TYPE_VIDEO_OUTGOING: - case CONTACTS_PLOG_TYPE_VIDEO_INCOMMING_UNSEEN: - case CONTACTS_PLOG_TYPE_VIDEO_INCOMMING_SEEN: - case CONTACTS_PLOG_TYPE_VIDEO_REJECT: - case CONTACTS_PLOG_TYPE_VIDEO_BLOCKED: - return TRUE; - default: - return FALSE; - } -} - -static int phone_detail_log_is_call_dial_type(int type) -{ - PH_TRACE; - if (type == CONTACTS_PLOG_TYPE_VOICE_OUTGOING - || type == CONTACTS_PLOG_TYPE_VIDEO_OUTGOING) - return TRUE; - else - return FALSE; -} - -static int detail_log_is_msg_out_type(int type) -{ - PH_TRACE; - if (type == CONTACTS_PLOG_TYPE_MMS_OUTGOING - || type == CONTACTS_PLOG_TYPE_SMS_OUTGOING - || type == CONTACTS_PLOG_TYPE_EMAIL_SENT) - return TRUE; - else - return FALSE; - -} - -static int detail_log_is_call_receive_type(int type) -{ - PH_TRACE; - if (type == CONTACTS_PLOG_TYPE_VOICE_INCOMMING - || type == CONTACTS_PLOG_TYPE_VIDEO_INCOMMING) - return TRUE; - else - return FALSE; -} - -static int detail_log_is_msg_income_type(int type) -{ - PH_TRACE; - if (type == CONTACTS_PLOG_TYPE_MMS_INCOMMING - || type == CONTACTS_PLOG_TYPE_SMS_INCOMMING - || type == CONTACTS_PLOG_TYPE_EMAIL_RECEIVED) - return TRUE; - else - return FALSE; -} - -static int detail_log_is_call_miss_type(int type) -{ - PH_TRACE; - switch (type) - { - case CONTACTS_PLOG_TYPE_VOICE_INCOMMING_UNSEEN: - case CONTACTS_PLOG_TYPE_VOICE_INCOMMING_SEEN: - case CONTACTS_PLOG_TYPE_VIDEO_INCOMMING_UNSEEN: - case CONTACTS_PLOG_TYPE_VIDEO_INCOMMING_SEEN: - return TRUE; - default: - return FALSE; - } -} - -static int detail_log_is_call_rejected_type(int type) -{ - PH_TRACE; - if (type == CONTACTS_PLOG_TYPE_VOICE_REJECT - || type == CONTACTS_PLOG_TYPE_VIDEO_REJECT) - return TRUE; - else - return FALSE; -} - -static int detail_log_is_blocked_type(int type) -{ - PH_TRACE; - switch (type) - { - case CONTACTS_PLOG_TYPE_VOICE_BLOCKED: - case CONTACTS_PLOG_TYPE_VIDEO_BLOCKED: - case CONTACTS_PLOG_TYPE_SMS_BLOCKED: - case CONTACTS_PLOG_TYPE_MMS_BLOCKED: - return TRUE; - default: - return FALSE; - } -} - -char* phone_detail_log_get_icon_type(int log_type) -{ - PH_TRACE; - Log_Type type = (Log_Type) -1; - char buf[PATH_MAX] = { 0 }; - - if (TRUE == detail_log_is_voice_call_type(log_type)) - type = LOG_TYPE_CALL; - else if (TRUE == detail_log_is_video_call_type(log_type)) - type = LOG_TYPE_VIDEO_CALL; - else if (TRUE == phone_detail_log_is_sms_type(log_type)) - type = LOG_TYPE_SMS_MESSAGE; - else if (TRUE == phone_detail_log_is_mms_type(log_type)) - type = LOG_TYPE_MMS_MESSAGE; - else if (TRUE == phone_detail_log_is_email_type(log_type)) - type = LOG_TYPE_MMS_MESSAGE; - else - { - PH_DBG("error invalid type"); - return NULL; - } - snprintf(buf, sizeof(buf), "%s", m_img_logtype_tbl[type].c_str()); - return strdup(buf); -} - -char* phone_detail_log_get_duration_from_number(int number) -{ - PH_TRACE; - int sec, min, hour, day; - struct tm tmp = { 0 }; - char buf[PATH_MAX] = { 0 }; - char buf_t[PATH_MAX] = { 0 }; - - sec = number; - day = sec / (60 * 60 * 24); - sec %= (60 * 60 * 24); - hour = sec / (60 * 60); - sec %= (60 * 60); - min = sec / (60); - sec %= (60); - tmp.tm_mday = day; - tmp.tm_hour = hour; - tmp.tm_min = min; - tmp.tm_sec = sec; - strftime(buf_t, sizeof(buf_t), "%H:%M:%S", &tmp); - snprintf(buf, sizeof(buf), "%s", buf_t); - - return strdup(buf_t); -} - -void phone_detail_log_init_time_format(void) -{ - PH_TRACE; - static int already_init = FALSE; - - if (!already_init) - { - UErrorCode status = U_ZERO_ERROR; - - uloc_setDefault(getenv("LC_TIME"), &status); - PH_DBG("phone_detail_log_init_time_format : %s", getenv("LC_TIME")); - already_init = TRUE; - } -} - -void phone_detail_log_delete_date_format(UDateFormat **formatter) -{ - PH_TRACE; - int i; - for (i = LOG_FORMAT_TIME_12; i < LOG_FORMAT_MAX; i++) - { - if (formatter[i]) - { - udat_close(formatter[i]); - formatter[i] = NULL; - } - } -} - -static void _ph_set_default_timezone_id() -{ - PH_TRACE; - UErrorCode error = U_ZERO_ERROR; - UChar utimezone_id[PH_TEXT_SHORT_LEN] = { 0 }; - char timezone_buffer[PH_TEXT_SHORT_LEN] = { 0 }; - char timezone_id[PH_TEXT_SHORT_LEN] = { 0 }; - - int timezone_str_size; - - strncpy(timezone_id, vconf_get_str(VCONFKEY_SETAPPL_TIMEZONE_ID), - sizeof(timezone_id)); - timezone_str_size = readlink("/opt/etc/localtime", timezone_buffer, - sizeof(timezone_buffer)); - - if (timezone_str_size > 0) - { - char *ptr, *sp, *zone = NULL, *city = NULL; - ptr = strtok_r(timezone_buffer, "/", &sp); - - while ((ptr = strtok_r(NULL, "/", &sp))) - { - zone = city; - city = ptr; - } - - if (zone != NULL && city != NULL) - { - if (strcmp("zoneinfo", zone) == 0) - sprintf(timezone_id, "%s", city); - else - sprintf(timezone_id, "%s/%s", zone, city); - } - } - - else - { - PH_DBG("%s", "readlink fail"); - } - - if (*timezone_id) - { - u_uastrncpy(utimezone_id, timezone_id, sizeof(timezone_buffer) / 2); - ucal_setDefaultTimeZone(utimezone_id, &error); - } - else - { - p_retm_if(NULL == timezone_id, "get timezone_id is failed(%d)", error); - } -} - -void phone_detail_log_generate_date_format(UDateFormat **formatter) -{ - PH_TRACE; - UDateTimePatternGenerator *generator; - UErrorCode error = U_ZERO_ERROR; - - int i; - int ret; - const char *locale = NULL; - - _ph_set_default_timezone_id(); - - ret = runtime_info_get_value_bool( - RUNTIME_INFO_KEY_24HOUR_CLOCK_FORMAT_ENABLED, &is_24hour_enabled); - if (RUNTIME_INFO_ERROR_NONE != ret || false == is_24hour_enabled) - is_24hour_enabled = false; - - locale = uloc_getDefault(); - phone_detail_log_delete_date_format(formatter); - - generator = udatpg_open(locale, &error); - p_retm_if(NULL == generator, "udatpg_open is failed(%d)", error); - - for (i = LOG_FORMAT_TIME_12; i < LOG_FORMAT_MAX; i++) - { - UChar skeleton[64] = { '\0' }; - UChar best_pattern[64] = { 0 }; - - u_uastrncpy(skeleton, date_time_format[i], strlen(date_time_format[i])); - udatpg_getBestPattern(generator, skeleton, u_strlen(skeleton), - best_pattern, (int32_t)(sizeof(best_pattern) / sizeof(UChar)), - &error); - formatter[i] = udat_open(UDAT_IGNORE, UDAT_IGNORE, locale, NULL, -1, - best_pattern, -1, &error); - } - udatpg_close(generator); -} - -char* phone_detail_log_get_icon_path_with_action(int log_type) -{ - PH_TRACE; - char buf[PATH_MAX] = { 0 }; - Log_Action action = (Log_Action) -1; - - if (TRUE == phone_detail_log_is_call_dial_type(log_type) - || TRUE == detail_log_is_msg_out_type(log_type)) - action = LOG_ACTION_DIALLED; - else if (TRUE == detail_log_is_call_miss_type(log_type)) - action = LOG_ACTION_MISSED; - else if (TRUE == detail_log_is_call_receive_type(log_type) - || TRUE == detail_log_is_msg_income_type(log_type)) - action = LOG_ACTION_RECEIVED; - else if (TRUE == detail_log_is_call_rejected_type(log_type)) - action = LOG_ACTION_REJECTED; - else if (TRUE == detail_log_is_blocked_type(log_type)) - action = LOG_ACTION_BLOCKED; - else - { - PH_DBG("error invalid type %d", log_type); - return NULL; - } - snprintf(buf, sizeof(buf), "%s", m_img_logaction_tbl[action].c_str()); - return strdup(buf); -} - -char *ph_log_util_get_formatted_date(UDateFormat **formatter, int log_time, - date_style style) -{ - PH_TRACE; - time_t stime; - UErrorCode status = U_ZERO_ERROR; - UDate date; - UChar formatted[64] = { 0 }; - int32_t formatted_size; - int32_t formatted_len __attribute__ ((unused)); - char formatted_str[PH_TEXT_SHORT_LEN] = { 0 }; - int type = LOG_FORMAT_DATE; - - stime = log_time; - date = (UDate) stime * 1000; - - formatted_size = (int32_t)(sizeof(formatted) / sizeof(UChar)); - if (PH_LOG_TIME_ONLY == style) - { - if (true == is_24hour_enabled) - type = LOG_FORMAT_TIME_24; - else - type = LOG_FORMAT_TIME_12; - } - else if (PH_LOG_DATE_ONLY == style) - type = LOG_FORMAT_DATE; - formatted_len = udat_format(formatter[type], date, formatted, - formatted_size, NULL, &status); - u_austrncpy(formatted_str, formatted, PH_TEXT_SHORT_LEN); - return strdup(formatted_str); -} - -char *phone_detail_log_get_date(UDateFormat ** formatter, int log_time) -{ - PH_TRACE; - return ph_log_util_get_formatted_date(formatter, log_time, PH_LOG_DATE_ONLY); -} - -char *phone_detail_log_get_time(UDateFormat ** formatter, int log_time) -{ - PH_TRACE; - return ph_log_util_get_formatted_date(formatter, log_time, PH_LOG_TIME_ONLY);; -} - -int phone_detail_log_get_date_type(int log_time, int log_duration) -{ - PH_TRACE; - time_t stime; - struct timeval timeval; - struct tm *tmp; - int yday, cur_yday; - - gettimeofday(&timeval, 0); - tmp = localtime(&timeval.tv_sec); - p_retvm_if(NULL == tmp, 2, "localtime is null"); - cur_yday = tmp->tm_yday; - - stime = log_time - log_duration; - tmp = localtime(&stime); - p_retvm_if(NULL == tmp, 2, "localtime is null"); - - yday = tmp->tm_yday; - - if (yday == cur_yday) - return CT_GROUP_INDEX_TODAY; - else if (yday == cur_yday - 1) - return CT_GROUP_INDEX_YESTERDAY; - else - return yday; -} - -int phone_detail_log_get_phonenumber_type(int number_type) -{ - PH_TRACE; - if (number_type & CONTACTS_NUMBER_TYPE_CUSTOM) - { - return (CTTEXT_TYPE_OTHER); - } - else if (number_type & CONTACTS_NUMBER_TYPE_CELL) - { - if (number_type & CONTACTS_NUMBER_TYPE_HOME) - return (CTTEXT_TYPE_HOME2); - else if (number_type & CONTACTS_NUMBER_TYPE_WORK) - return (CTTEXT_TYPE_WORK2); - else - return (CTTEXT_TYPE_MOBILE); - } - else if (number_type & CONTACTS_NUMBER_TYPE_VOICE) - { - if (number_type & CONTACTS_NUMBER_TYPE_HOME) - return (CTTEXT_TYPE_HOME); - else if (number_type & CONTACTS_NUMBER_TYPE_WORK) - return (CTTEXT_TYPE_WORK); - else - return (CTTEXT_TYPE_TELEPHONE); - } - else if (number_type & CONTACTS_NUMBER_TYPE_FAX) - { - if (number_type & CONTACTS_NUMBER_TYPE_HOME) - return (CTTEXT_TYPE_FAX_HOME); - else if (number_type & CONTACTS_NUMBER_TYPE_WORK) - return (CTTEXT_TYPE_FAX_WORK); - else - return (CTTEXT_TYPE_FAX); - } - else if (number_type & CONTACTS_NUMBER_TYPE_PAGER) - return (CTTEXT_TYPE_PAGER); - else if (number_type & CONTACTS_NUMBER_TYPE_CAR) - return (CTTEXT_TYPE_CAR); - else if (number_type & CONTACTS_NUMBER_TYPE_ASSISTANT) - return (CTTEXT_TYPE_ASSISTANT); - else - { - if (number_type == CONTACTS_NUMBER_TYPE_HOME) - return (CTTEXT_TYPE_HOME); - else if (number_type == CONTACTS_NUMBER_TYPE_WORK) - return (CTTEXT_TYPE_WORK); - else - return (CTTEXT_TYPE_OTHER); - } -} |