Remove hardcoded path for multiuser support
[platform/core/system/sync-agent.git] / src / fw-plugins / common-public / vcalendar-task / include / vcalendar_string_util.h
1 /*
2  * sync-agent
3  * Copyright (c) 2012 Samsung Electronics Co., Ltd.
4  *
5  * Licensed under the Apache License, Version 2.0 (the License);
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *     http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17
18 #ifndef IN_VCALENDAR_STRING_UTIL_H_
19 #define IN_VCALENDAR_STRING_UTIL_H_
20
21 #include <stdio.h>
22 #include <string.h>
23 #include <stdlib.h>
24 #include <glib/gprintf.h>
25
26 #include <calendar2.h>
27 #include <calendar_types2.h>
28 #include <unicode/ucal.h>
29 #include <unicode/ustring.h>
30 #include <unicode/ustdio.h>
31 #include <unicode/udat.h>
32 #include <sys/types.h>
33
34 #include "utility/sync_util.h"
35
36 #include <tzplatform_config.h>
37
38 typedef enum task_date_type {
39         TASK_DATE_TYPE_ONTIME = 0,
40         TASK_DATE_TYPE_YEAR,
41         TASK_DATE_TYPE_MONTH,
42         TASK_DATE_TYPE_WEEK,
43         TASK_DATE_TYPE_DAY,
44         TASK_DATE_TYPE_HOUR,
45         TASK_DATE_TYPE_MINUTE,
46         TASK_DATE_TYPE_SECOND,
47 } task_date_type_e;
48
49 #define RRULE_KEYWORD                                   "\r\nRRULE:"
50 #define RRULE_KEYWORD_FREQ_DAILY                RRULE_KEYWORD"FREQ=DAILY"
51 #define RRULE_KEYWORD_FREQ_WEEKLY               RRULE_KEYWORD"FREQ=WEEKLY"
52 #define RRULE_KEYWORD_FREQ_MONTHLY              RRULE_KEYWORD"FREQ=MONTHLY"
53 #define RRULE_KEYWORD_FREQ_YEARLY               RRULE_KEYWORD"FREQ=YEARLY"
54 #define WEEKDAY_RRULE_ORIGIN_KEYWORD    RRULE_KEYWORD"W0 "
55 #define WEEKDAY_RRULE_CONVERTED_KEYWORD RRULE_KEYWORD"W1 MO TU WE TH FR "
56
57 #define RRULE_KEYWORD_INTERVAL                  "INTERVAL="
58 #define RRULE_KEYWORD_BYDAY                             "BYDAY="
59 #define RRULE_KEYWORD_BYMONTH                   "BYMONTH="
60 #define RRULE_KEYWORD_BYMONTHDAY                "BYMONTHDAY="
61 #define RRULE_KEYWORD_UNTIL                             "UNTIL="
62 #define RRULE_KEYWORD_COUNT                             "COUNT="
63 #define MAX_RRULE_DATE_KEYWORD                  "20361231T"
64
65 #define DTSTART_KEYWORD                                 "DTSTART:"
66 #define MAX_MOBEX_DTSTART_KEYWORD               "\r\nDTSTART:20370101T090000Z"
67 #define MAX_CALENDAR_DTSTART_KEYWORD    "\r\nDTSTART:20381231T000000Z"
68 #define DUEDATE_KEYWORD                                 "\r\nDUE:"
69 #define MAX_DUE_DATE_KEYWORD                    "\r\nDUE:20381231T000000Z\r\n" // refer to calendar info (min ~ max date)
70 #define TIMEZONE_GMT                                    "Etc/GMT"
71 #define AALARM_KEYWORD                                  "AALARM:"
72 #define END_VTODO_KEYWORD                               "\r\nEND:VTODO\r\n"
73
74
75 // Task Priority value
76 // SLP Phone = high:1~4, normal:5, low:6~9, NONE:0   /  Kies = high:1, normal:2, low:3
77 #define PRIORITY_KEYWORD                                "\r\nPRIORITY:"
78 #define PRIORITY_TIZEN_HIGH_1_KEYWORD   PRIORITY_KEYWORD"1"
79 #define PRIORITY_TIZEN_HIGH_2_KEYWORD   PRIORITY_KEYWORD"2"
80 #define PRIORITY_TIZEN_HIGH_3_KEYWORD   PRIORITY_KEYWORD"3"
81 #define PRIORITY_TIZEN_HIGH_4_KEYWORD   PRIORITY_KEYWORD"4"
82 #define PRIORITY_TIZEN_NORMAL_KEYWORD   PRIORITY_KEYWORD"5"
83 #define PRIORITY_TIZEN_LOW_6_KEYWORD    PRIORITY_KEYWORD"6"
84 #define PRIORITY_TIZEN_LOW_7_KEYWORD    PRIORITY_KEYWORD"7"
85 #define PRIORITY_TIZEN_LOW_8_KEYWORD    PRIORITY_KEYWORD"8"
86 #define PRIORITY_TIZEN_LOW_9_KEYWORD    PRIORITY_KEYWORD"9"
87
88 #define PRIORITY_KIES_HIGH_KEYWORD              PRIORITY_KEYWORD"1"
89 #define PRIORITY_KIES_NORMAL_KEYWORD    PRIORITY_KEYWORD"2"
90 #define PRIORITY_KIES_LOW_KEYWORD               PRIORITY_KEYWORD"3"
91
92 #define CALENDAR_IMAGE_KEYWORD_SNOTE    "snote" // refer to Cal-svc.h (calendar\include)
93 #define CALENDAR_IMAGE_KEYWORD_PHOTO    "photo" // refer to Cal-svc.h (calendar\include)
94 #define IMAGE_KEYWORD_PREFIX_SNOTE              "X-SS-ATTACH-SNOTE;"
95 #define IMAGE_KEYWORD_PREFIX_PHOTO              "X-SS-ATTACH-IMAGE;"
96 #define IMAGE_KEYWORD_BEGIN_PATH                "PATH=3D"
97 #define IMAGE_KEYWORD_END_PATH                  "=3bDATE=3D\r\n"
98
99 #define INTERNAL_MEMORY_ORIGIN                  tzplatform_getenv(TZ_USER_CONTENT)
100 #define INTERNAL_MEMORY_CONVERTED               "Internal=3a"
101 #define EXTERNAL_MEMORY_ORIGIN                  tzplatform_mkpath(TZ_SYS_STORAGE,"sdcard")
102 #define EXTERNAL_MEMORY_CONVERTED               "External=3a"
103 #define SNOTE_MEMORY_ORIGIN                     tzplatform_mkpath(TZ_USER_APP,"com.samsung.smemo/data/")
104
105 char * get_value_by_token(const char *src, const char *token, const char *end_of_token);
106 char * replace_string(char *origin, const char *src, const char *dest);
107 long long int get_unix_time(char *str_time);
108
109 calendar_list_h set_vcalendar_version(calendar_record_h cal_record);
110 void set_timezone(const char *origin, calendar_record_h cal_record);
111 void process_no_due_date(const char *origin, calendar_record_h cal_record);
112 char * has_image_import(const char *origin);
113 char * has_image_export(calendar_record_h cal_record);
114
115 char * replace_rrule_data(char *origin);
116 char * replace_image_data(char *origin, char *image_path);
117 char * replace_priority_data(char *origin, bool is_phone_to_kies);
118
119 #endif                          /* IN_VCALENDAR_STRING_UTIL_H_ */