2 * Copyright (c) 2000 - 2016 Samsung Electronics Co., Ltd. All rights reserved.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #ifndef __NOTIFICATION_PRIVATE_H__
18 #define __NOTIFICATION_PRIVATE_H__
19 #include <sys/types.h>
22 #define EXPORT_API __attribute__ ((visibility("default")))
25 #define SAFE_STRDUP(s) ((s) ? strdup(s) : NULL)
26 #define SAFE_FREE(s) \
34 #define NOTIFICATION_SETTING_DB_TABLE "notification_setting"
35 #define NOTIFICATION_SYSTEM_SETTING_DB_TABLE "notification_system_setting"
37 struct _notification {
38 notification_type_e type;
39 notification_ly_type_e layout;
41 int group_id; /* Group ID */
42 int internal_group_id; /* Internal Group ID */
43 int priv_id; /* Private ID */
45 char *caller_pkgname; /* Caller App package name */
46 char *launch_pkgname; /* Launch App package name. It will be from appsvc_set_pkgname */
47 bundle *args; /* Will be removed. */
48 bundle *group_args; /* Will be removed. */
50 bundle *b_execute_option;
51 bundle *b_service_responding;
52 bundle *b_service_single_launch;
53 bundle *b_service_multi_launch;
55 bundle *b_event_handler[NOTIFICATION_EVENT_TYPE_MAX];
57 char *domain; /* Text domain for localization */
58 char *dir; /* Text dir for localization */
60 bundle *b_text; /* basic text */
61 bundle *b_key; /* key for localized text */
62 bundle *b_format_args; /* args type and value for format string */
63 int num_format_args; /* number of format string args */
65 bundle *b_image_path; /* image path */
67 notification_sound_type_e sound_type;
69 notification_vibration_type_e vibration_type;
71 notification_led_op_e led_operation;
76 time_t time; /* time set by application */
77 time_t insert_time; /* insert time */
79 int flags_for_property; /* property NOTIFICATION_PROP_XXX */
80 int display_applist; /* display app list NOTIFICATION_DISPLAY_APP_XXX */
82 double progress_size; /* size of progress */
83 double progress_percentage; /* percentage of progress */
85 char *app_icon_path; /* Temporary stored app icon path from AIL */
86 char *app_name; /* Temporary stored app name from AIL */
91 int ongoing_value_type;
92 int ongoing_current; /* Ongoing current time */
93 int ongoing_duration; /* Ongoing duration time */
95 notification_button_index_e default_button_index;
100 typedef enum notification_data_type {
101 NOTIFICATION_DATA_TYPE_NOTI_TYPE = 1,
102 NOTIFICATION_DATA_TYPE_LAYOUT,
103 NOTIFICATION_DATA_TYPE_GROUP_ID,
104 NOTIFICATION_DATA_TYPE_INTERNAL_GROUP_ID,
105 NOTIFICATION_DATA_TYPE_PRIV_ID,
106 NOTIFICATION_DATA_TYPE_CALLER_PKGNAME,
107 NOTIFICATION_DATA_TYPE_LAUNCH_PKGNAME,
108 NOTIFICATION_DATA_TYPE_ARGS,
109 NOTIFICATION_DATA_TYPE_GROUP_ARGS,
110 NOTIFICATION_DATA_TYPE_EXECUTE_OPTION,
111 NOTIFICATION_DATA_TYPE_SERVICE_RESPONDING,
112 NOTIFICATION_DATA_TYPE_SERVICE_SINGLE_LAUNCH,
113 NOTIFICATION_DATA_TYPE_SERVICE_MULTI_LAUNCH,
114 NOTIFICATION_DATA_TYPE_BUTTON1_EVENT,
115 NOTIFICATION_DATA_TYPE_BUTTON2_EVENT,
116 NOTIFICATION_DATA_TYPE_BUTTON3_EVENT,
117 NOTIFICATION_DATA_TYPE_BUTTON4_EVENT,
118 NOTIFICATION_DATA_TYPE_BUTTON5_EVENT,
119 NOTIFICATION_DATA_TYPE_BUTTON6_EVENT,
120 NOTIFICATION_DATA_TYPE_ICON_EVENT,
121 NOTIFICATION_DATA_TYPE_THUMBNAIL_EVENT,
122 NOTIFICATION_DATA_TYPE_DOMAIN,
123 NOTIFICATION_DATA_TYPE_DIR,
124 NOTIFICATION_DATA_TYPE_TEXT,
125 NOTIFICATION_DATA_TYPE_KEY,
126 NOTIFICATION_DATA_TYPE_FORMAT_ARGS,
127 NOTIFICATION_DATA_TYPE_NUM_FORMAT_ARGS,
128 NOTIFICATION_DATA_TYPE_IMAGE_PATH,
129 NOTIFICATION_DATA_TYPE_SOUND_TYPE,
130 NOTIFICATION_DATA_TYPE_SOUND_PATH,
131 NOTIFICATION_DATA_TYPE_VIBRATION_TYPE,
132 NOTIFICATION_DATA_TYPE_VIBRATION_PATH,
133 NOTIFICATION_DATA_TYPE_LED_OPERATION,
134 NOTIFICATION_DATA_TYPE_LED_ARGB,
135 NOTIFICATION_DATA_TYPE_LED_ON_MS,
136 NOTIFICATION_DATA_TYPE_LED_OFF_MS,
137 NOTIFICATION_DATA_TYPE_TIME,
138 NOTIFICATION_DATA_TYPE_INSERT_TIME,
139 NOTIFICATION_DATA_TYPE_FLAGS_FOR_PROPERTY,
140 NOTIFICATION_DATA_TYPE_DISPLAY_APPLIST,
141 NOTIFICATION_DATA_TYPE_PROGRESS_SIZE,
142 NOTIFICATION_DATA_TYPE_PROGRESS_PERCENTAGE,
143 NOTIFICATION_DATA_TYPE_APP_ICON_PATH,
144 NOTIFICATION_DATA_TYPE_APP_NAME,
145 NOTIFICATION_DATA_TYPE_TEMP_TITLE,
146 NOTIFICATION_DATA_TYPE_TEMP_CONTENT,
147 NOTIFICATION_DATA_TYPE_TAG,
148 NOTIFICATION_DATA_TYPE_ONGOING_FLAG,
149 NOTIFICATION_DATA_TYPE_ONGOING_VALUE_TYPE,
150 NOTIFICATION_DATA_TYPE_ONGOING_CURRENT,
151 NOTIFICATION_DATA_TYPE_ONGOING_DURATION,
152 NOTIFICATION_DATA_TYPE_AUTO_REMOVE,
153 NOTIFICATION_DATA_TYPE_DEFAULT_BUTTON,
154 NOTIFICATION_DATA_TYPE_TIMEOUT,
155 NOTIFICATION_DATA_TYPE_UID,
156 } notification_data_type_e;
158 void notification_call_changed_cb_for_uid(notification_op *op_list, int op_num, uid_t uid);
159 void notification_call_dnd_changed_cb_for_uid(int do_not_disturb, uid_t uid);
160 char *notification_get_pkgname_by_pid(void);
162 #endif /* __NOTIFICATION_PRIVATE_H__ */