2 // Tizen Web Device API
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
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
9 // http://www.apache.org/licenses/LICENSE-2.0
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.
18 #include <PlatformException.h>
21 #include <appsvc/appsvc.h>
24 #include <boost/algorithm/string.hpp>
25 #include "StatusNotification.h"
28 namespace Notification {
30 #define DEFAULT_ICON_PATH "/opt/share/icons/default/"
31 #define MAX_NOTIFICATION_DETAIL_INFO_LENGTH 2
32 #define MAX_THUMBNAIL_LENGTH 4
34 extern "C" int service_create_event(bundle *data, struct service_s **service);
35 //tern "C" int service_to_bundle(service_h service, bundle **data);
38 static bool service_extra_data_cb(service_h service, const char *key, void *user_data)
44 if (user_data != NULL && key != NULL)
46 LoggerI("user data & key is existed");
48 DeviceAPI::Application::ApplicationControlPtr* appControl =
49 (DeviceAPI::Application::ApplicationControlPtr*)(user_data);
51 DeviceAPI::Application::ApplicationControlDataPtr data(new DeviceAPI::Application::ApplicationControlData());
52 LoggerI("key = " << key);
53 std::string keyStr = key;
54 std::vector<std::string> keyValue;
57 if (service_get_extra_data_array((*appControl)->getService_h(), key, &value, &length) == SERVICE_ERROR_NONE)
59 LoggerI("extra_data_array length = " << length);
61 if (value != NULL && length != 0)
63 LoggerI("extra_data_length = " << length);
65 for (index = 0; index < length; index++)
67 LoggerI("Value=" << value[index]);
68 keyValue.push_back(value[index]);
71 data->setValue(keyValue);
72 (*appControl)->addAppControlData(data);
82 StatusNotification::StatusNotification(NotificationType statusType) :
83 m_notiType(NOTI_TYPE_NONE),
86 m_progressType(NOTI_PROGRESS_TYPE_PERCENTAGE),
90 LoggerI("statusType =" << statusType);
92 notification_type_e type = NOTIFICATION_TYPE_NONE;
93 setNotiType(statusType);
95 if (statusType == NOTI_TYPE_SIMPLE || statusType == NOTI_TYPE_MUTIPLE || statusType == NOTI_TYPE_THUMBNAIL)
97 type = NOTIFICATION_TYPE_NOTI;
99 else if ( statusType == NOTI_TYPE_ONGOING || statusType == NOTI_TYPE_PROGRESS)
101 type = NOTIFICATION_TYPE_ONGOING;
105 LoggerI(" invalide noti type");
106 throw TypeMismatchException("value is not notification type");
109 //setProgressType(NOTI_PROGRESS_TYPE_PERCENTAGE); //default
111 LoggerI("Notification Type : " << type);
113 notification_h noti = notification_create(type); //create notificatin.
116 LoggerI("noti =" << noti);
117 setNotificationHandle((void*)noti);
119 if (NOTIFICATION_TYPE_ONGOING == type)
120 { //ongoing no ticker.
121 LoggerI("ongoing type");
122 if ( NOTIFICATION_ERROR_NONE != notification_set_display_applist(noti, NOTIFICATION_DISPLAY_APP_NOTIFICATION_TRAY |NOTIFICATION_DISPLAY_APP_INDICATOR ))
124 throw UnknownException("can't set notification display applist");
131 throw UnknownException("can't make new notification object");
134 //m_detailInfos = new std::vector<NotificationDetailInfo*>();
135 //m_thumbs = new std::vector<std::string>();
139 StatusNotification::StatusNotification(void* noti) :
140 m_notiType(NOTI_TYPE_NONE),
143 m_progressType(NOTI_PROGRESS_TYPE_PERCENTAGE),
144 m_notiUpdated(false),
147 LoggerI("noti : " << noti);
149 notification_h notification = (notification_h)noti;
153 NotificationType type = NOTI_TYPE_NONE;
154 notification_type_e noti_type = NOTIFICATION_TYPE_NONE;
155 notification_ly_type_e noti_layout = NOTIFICATION_LY_NONE;
157 notification_get_type(notification, ¬i_type);
158 notification_get_layout(notification, ¬i_layout);
161 if ( noti_type == NOTIFICATION_TYPE_NOTI )
163 if ( noti_layout == NOTIFICATION_LY_NOTI_EVENT_SINGLE ||
164 noti_layout == NOTIFICATION_LY_NOTI_EVENT_MULTIPLE )
166 type = NOTI_TYPE_SIMPLE;
168 else if (noti_layout == NOTIFICATION_LY_NOTI_THUMBNAIL)
170 type = NOTI_TYPE_THUMBNAIL;
173 else if ( noti_type == NOTIFICATION_TYPE_ONGOING)
175 if ( noti_layout == NOTIFICATION_LY_ONGOING_EVENT )
177 type = NOTI_TYPE_ONGOING;
179 else if ( noti_layout == NOTIFICATION_LY_ONGOING_PROGRESS)
181 type = NOTI_TYPE_PROGRESS;
185 LoggerI(" notification type =" << type);
187 //setProgressType(NOTI_PROGRESS_TYPE_PERCENTAGE); //default.
188 //read Progress type value.
189 char *strProgressType = NULL;
190 if (NOTIFICATION_ERROR_NONE == notification_get_image(notification, NOTIFICATION_IMAGE_TYPE_LIST_5, &strProgressType))
192 if ( strProgressType )
194 std::string notiProgressType(strProgressType);
195 if( notiProgressType.compare(TIZEN_NOTIFICATION_PROGRESS_TYPE_BYTE) == 0)
196 m_progressType = NOTI_PROGRESS_TYPE_SIZE;
200 setNotificationHandle((void*)notification);
205 if ( type == NOTI_TYPE_PROGRESS)
207 notification_update_progress(notification, NOTIFICATION_PRIV_ID_NONE, getProgressValue());
213 int ret = notification_get_execute_option(notification, NOTIFICATION_EXECUTE_TYPE_SINGLE_LAUNCH, NULL, &bSvc);
214 LoggerI("ret = " << ret);
215 if (ret == NOTIFICATION_ERROR_NONE)
217 LoggerI(" bundle = " << bSvc);
220 LoggerI("bundle is valid");
221 int ret = service_create_event(bSvc, &m_service);
222 if (ret != SERVICE_ERROR_NONE)
224 LoggerI("Service Create Event Error");
225 throw UnknownException("can't make service object");
231 notification_free(notification);
232 throw UnknownException("can't get service data");
238 throw InvalidValuesException("It is not notification object.");
243 StatusNotification::StatusNotification(int privID) :
244 m_notiType(NOTI_TYPE_NONE),
247 m_progressType(NOTI_PROGRESS_TYPE_PERCENTAGE),
248 m_notiUpdated(false),
251 LoggerI("priv ID : " << privID);
253 notification_h notification = notification_load( NULL, privID); //load notification.
254 LoggerI(" notification " << notification);
258 NotificationType type = NOTI_TYPE_NONE;
259 notification_type_e noti_type = NOTIFICATION_TYPE_NONE;
260 notification_ly_type_e noti_layout = NOTIFICATION_LY_NONE;
262 notification_get_type(notification, ¬i_type);
263 notification_get_layout(notification, ¬i_layout);
265 if ( noti_type == NOTIFICATION_TYPE_NOTI )
267 if ( noti_layout == NOTIFICATION_LY_NOTI_EVENT_SINGLE ||
268 noti_layout == NOTIFICATION_LY_NOTI_EVENT_MULTIPLE )
270 type = NOTI_TYPE_SIMPLE;
272 else if (noti_layout == NOTIFICATION_LY_NOTI_THUMBNAIL)
274 type = NOTI_TYPE_THUMBNAIL;
277 else if ( noti_type == NOTIFICATION_TYPE_ONGOING)
279 if ( noti_layout == NOTIFICATION_LY_ONGOING_EVENT )
281 type = NOTI_TYPE_ONGOING;
283 else if ( noti_layout == NOTIFICATION_LY_ONGOING_PROGRESS)
285 type = NOTI_TYPE_PROGRESS;
289 LoggerI(" notification type =" << type);
291 //setProgressType(NOTI_PROGRESS_TYPE_PERCENTAGE); //default.
292 //read Progress type value.
293 char *strProgressType = NULL;
294 if (NOTIFICATION_ERROR_NONE == notification_get_image(notification, NOTIFICATION_IMAGE_TYPE_LIST_5, &strProgressType))
296 if ( strProgressType )
298 std::string notiProgressType(strProgressType);
299 if( notiProgressType.compare(TIZEN_NOTIFICATION_PROGRESS_TYPE_BYTE) == 0)
300 m_progressType = NOTI_PROGRESS_TYPE_SIZE;
304 setNotificationHandle((void*)notification);
308 if ( type == NOTI_TYPE_PROGRESS)
310 notification_update_progress(notification, NOTIFICATION_PRIV_ID_NONE, getProgressValue());
316 int ret = notification_get_execute_option(notification, NOTIFICATION_EXECUTE_TYPE_SINGLE_LAUNCH, NULL, &bSvc);
317 LoggerI("ret = " << ret);
318 if (ret == NOTIFICATION_ERROR_NONE)
320 LoggerI(" bundle = " << bSvc);
323 LoggerI("bundle is valid");
324 int ret = service_create_event(bSvc, &m_service);
325 if (ret != SERVICE_ERROR_NONE)
327 LoggerI("Service Create Event Error");
328 throw UnknownException("can't make service object");
334 notification_free(notification);
335 throw UnknownException("can't get service data");
341 throw NotFoundException("It is not notification ID or removed notification");
346 StatusNotification::~StatusNotification()
348 LoggerI(" notification = " << m_notiHandle);
351 //clearDetailInfos();
355 LoggerI(" service = " << m_service);
356 if (m_service != NULL)
358 service_destroy(m_service);
362 if (notification_free(m_notiHandle) != NOTIFICATION_ERROR_NONE)
364 throw UnknownException("notification free failed...");
371 int StatusNotification::getID()
373 int id = -1; // notification not inserted yet.
376 notification_get_id(m_notiHandle, NULL, &id);
382 std::string StatusNotification::getStatusType()
386 if ( NOTI_TYPE_SIMPLE == getNotiType())
390 else if ( NOTI_TYPE_ONGOING == getNotiType())
394 else if ( NOTI_TYPE_PROGRESS == getNotiType())
398 else if ( NOTI_TYPE_THUMBNAIL == getNotiType())
409 void StatusNotification::setStatusType(std::string type)
411 LoggerI("type = " << type);
413 NotificationType notiType = NOTI_TYPE_NONE;
415 if( type.compare(TIZEN_STATUS_NOTIFICATION_TYPE_SIMPLE) == 0)
416 notiType = NOTI_TYPE_SIMPLE;
417 else if( type.compare(TIZEN_STATUS_NOTIFICATION_TYPE_THUMBNAIL) == 0)
418 notiType = NOTI_TYPE_THUMBNAIL;
419 else if( type.compare(TIZEN_STATUS_NOTIFICATION_TYPE_ONGOING) == 0)
420 notiType = NOTI_TYPE_ONGOING;
421 else if( type.compare(TIZEN_STATUS_NOTIFICATION_TYPE_PROGRESS) == 0)
422 notiType = NOTI_TYPE_PROGRESS;
424 throw InvalidValuesException("Invalid Status Type.");
426 LoggerI("Notification type = " << notiType);
427 setNotiType(notiType);
430 time_t StatusNotification::getPostedTime()
432 LoggerI("get m_notiHandle = " << m_notiHandle);
434 time_t postedTime = 0;
438 if (notification_get_insert_time(m_notiHandle, &postedTime) != NOTIFICATION_ERROR_NONE)
440 throw UnknownException("get notification posted time error");
444 LoggerI("posted Time =" << ctime(&postedTime));
448 std::string StatusNotification::getTitle()
454 if (notification_get_text(m_notiHandle,NOTIFICATION_TEXT_TYPE_TITLE, &title) != NOTIFICATION_ERROR_NONE)
456 throw UnknownException("get notification title error");
459 std::string notiTitle;
463 LoggerI(" get title : " << title);
470 throw UnknownException("notification handle is null");
474 void StatusNotification::setTitle(std::string title)
476 LoggerI("Title : " << title);
479 LoggerI("get Title : " << getTitle());
480 if((getTitle()).compare(title)) //different value.
482 if (notification_set_text(m_notiHandle, NOTIFICATION_TEXT_TYPE_TITLE, title.c_str(),
483 NULL, NOTIFICATION_VARIABLE_TYPE_NONE ) != NOTIFICATION_ERROR_NONE)
485 throw UnknownException("set notification title error");
488 setUpdatedFlag(true);
492 LoggerI(" title = " << title << " getTitle = " << getTitle());
497 LoggerD("noti Handle is NULL");
498 throw UnknownException("notification handle is null");
502 std::string StatusNotification::getContent()
504 LoggerI("get Content handle: " << m_notiHandle);
507 char *content = NULL;
509 if (notification_get_text(m_notiHandle, NOTIFICATION_TEXT_TYPE_CONTENT, &content) != NOTIFICATION_ERROR_NONE)
511 throw UnknownException("get notification Content error");
514 std::string notiContent;
518 notiContent = content;
519 LoggerI(" get Content : " << content);
527 throw UnknownException("notification handle is null");
532 char* StatusNotification::getStrContent()
534 LoggerI("get Content handle: " << m_notiHandle);
537 char *content = NULL;
539 if (notification_get_text(m_notiHandle, NOTIFICATION_TEXT_TYPE_CONTENT, &content) != NOTIFICATION_ERROR_NONE)
541 throw UnknownException("get notification Content error");
548 throw UnknownException("notification handle is null");
552 void StatusNotification::setContent(std::string content)
554 LoggerI("Content : " << content);
557 if((getContent()).compare(content)) //different value.
559 if (notification_set_text(m_notiHandle, NOTIFICATION_TEXT_TYPE_CONTENT, content.c_str(),
560 NULL, NOTIFICATION_VARIABLE_TYPE_NONE ) != NOTIFICATION_ERROR_NONE)
562 throw UnknownException("set notification content error");
564 setUpdatedFlag(true);
569 LoggerD("noti Handle is NULL");
570 throw UnknownException("notification handle is null");
574 std::string StatusNotification::getIconPath()
577 LoggerI("m_notiHandle = " << m_notiHandle);
580 char *iconPath = NULL;
581 if (notification_get_image(m_notiHandle, NOTIFICATION_IMAGE_TYPE_ICON, &iconPath) != NOTIFICATION_ERROR_NONE)
583 throw UnknownException("get notification icon path error");
586 std::string notiIconPath;
589 notiIconPath = iconPath;
590 LoggerI("icon Path = " << iconPath);
593 //if icon path invalid, return empty string.
594 if ( notiIconPath.find(DEFAULT_ICON_PATH,0) == std::string::npos)
598 return std::string(""); //return empty string.
603 throw UnknownException("notification handle is null");
607 void StatusNotification::setIconPath(const std::string& iconPath)
611 LoggerI("icon path = " << iconPath << " origin icon path = " << getIconPath());
612 if( getIconPath().compare(iconPath))
614 if (notification_set_image(m_notiHandle,NOTIFICATION_IMAGE_TYPE_ICON, iconPath.c_str()) != NOTIFICATION_ERROR_NONE)
616 throw UnknownException("set notification icon error");
618 setUpdatedFlag(true);
623 LoggerD("noti Handle is NULL");
624 throw UnknownException("notification handle is null");
628 std::string StatusNotification::getSoundPath()
630 LoggerI("Handle = " << m_notiHandle);
634 const char *soundPath = NULL;
635 notification_sound_type_e type = NOTIFICATION_SOUND_TYPE_NONE;
637 if (notification_get_sound(m_notiHandle, &type, &soundPath) != NOTIFICATION_ERROR_NONE)
639 throw UnknownException("get notification sound error");
642 std::string strSoundPath;
645 LoggerI(" soudn type=" << type);
646 if ( type == NOTIFICATION_SOUND_TYPE_USER_DATA)
648 LoggerI("soundPath = " << soundPath);
649 strSoundPath = soundPath;
653 LoggerI("soundPath :" << strSoundPath);
659 LoggerD("noti Handle is NULL");
660 throw UnknownException("notification handle is null");
664 void StatusNotification::setSoundPath(const std::string& sound)
668 LoggerI("sound path = " << sound << " origin sound path = " << getSoundPath());
670 if( getSoundPath().compare(sound))
672 if (notification_set_sound(m_notiHandle,NOTIFICATION_SOUND_TYPE_USER_DATA, sound.c_str()) != NOTIFICATION_ERROR_NONE)
674 throw UnknownException("set notification sound error");
676 setUpdatedFlag(true);
681 LoggerI("sound path is NULL");
682 if ( NOTI_TYPE_ONGOING == getNotiType() || NOTI_TYPE_PROGRESS == getNotiType())
684 LoggerI("Ongoing Type" );
685 if (notification_set_sound(m_notiHandle,NOTIFICATION_SOUND_TYPE_NONE, NULL) != NOTIFICATION_ERROR_NONE)
687 throw UnknownException("set notification sound error");
692 if (notification_set_sound(m_notiHandle,NOTIFICATION_SOUND_TYPE_DEFAULT, sound.c_str()) != NOTIFICATION_ERROR_NONE)
694 throw UnknownException("set notification sound error");
702 LoggerD("noti Handle is NULL");
703 throw UnknownException("notification handle is null");
707 bool StatusNotification::getDefaultVibration()
709 LoggerI("getDefaultVibration");
712 notification_vibration_type_e vib_type;
713 if (notification_get_vibration(m_notiHandle, &vib_type, NULL) != NOTIFICATION_ERROR_NONE)
715 throw UnknownException("set notification sound error");
718 if (NOTIFICATION_VIBRATION_TYPE_DEFAULT == vib_type || NOTIFICATION_VIBRATION_TYPE_USER_DATA == vib_type)
729 LoggerD("noti Handle is NULL");
730 throw UnknownException("notification handle is null");
736 void StatusNotification::setDefaultVibration(const bool& vibration)
738 LoggerI("vibration = " << vibration);
741 notification_vibration_type_e vib_type = NOTIFICATION_VIBRATION_TYPE_NONE;
742 LoggerI("old vibration = " << getDefaultVibration());
743 if (getDefaultVibration() != vibration)
747 vib_type = NOTIFICATION_VIBRATION_TYPE_DEFAULT;
751 vib_type = NOTIFICATION_VIBRATION_TYPE_NONE;
753 LoggerI("type vibration type= " << vib_type);
755 if (notification_set_vibration(m_notiHandle, vib_type , NULL) != NOTIFICATION_ERROR_NONE)
757 throw UnknownException("set notification sound error");
759 setUpdatedFlag(true);
764 LoggerD("noti Handle is NULL");
765 throw UnknownException("notification handle is null");
770 DeviceAPI::Application::ApplicationControlPtr StatusNotification::getApplicationControl()
773 service_h service = NULL;
774 char *tempStr = NULL;
776 DeviceAPI::Application::ApplicationControlPtr appControl(new DeviceAPI::Application::ApplicationControl());
781 appControl->setService_h(m_service);
783 if(service_get_operation(m_service, &tempStr) == SERVICE_ERROR_NONE)
785 LoggerD("Operation Str = " << tempStr);
788 appControl->setOperation(tempStr);
795 if (service_get_mime(m_service, &tempStr) == SERVICE_ERROR_NONE)
797 LoggerD("Mime Str = " << tempStr);
800 appControl->setMime(tempStr);
807 if (service_get_uri(m_service, &tempStr) == SERVICE_ERROR_NONE)
809 LoggerD("Uri Str = " << tempStr);
812 appControl->setUri(tempStr);
818 if (service_get_category(m_service, &tempStr) == SERVICE_ERROR_NONE)
820 LoggerD("Category Str = " << tempStr);
823 appControl->setCategory(tempStr);
830 if ( service_foreach_extra_data(m_service, service_extra_data_cb,(void*)&appControl) != SERVICE_ERROR_NONE)
832 ThrowMsg(WrtDeviceApis::Commons::UnknownException, "get notification service uri error");
839 Catch (WrtDeviceApis::Commons::Exception)
853 LoggerW(_rethrown_exception.GetMessage());
859 void StatusNotification::setApplicationControl(DeviceAPI::Application::ApplicationControlPtr control)
861 LoggerI("Entered m_service : " << m_service << " control : " << control);
863 //delete old service.
866 service_destroy(m_service);
870 if(service_create(&m_service) != SERVICE_ERROR_NONE)
872 throw UnknownException("service creation error");
876 LoggerI("getOperation : " << control->getOperation().c_str());
877 if (control->getOperation().size() != 0)
879 m_launchFlag = true; //default attribute
880 if (service_set_operation(m_service, control->getOperation().c_str()) != SERVICE_ERROR_NONE)
882 throw UnknownException("service set operation error");
887 LoggerI("getUri : " << control->getUri().c_str());
888 if (control->getUri().size() != 0)
890 if (service_set_uri(m_service, control->getUri().c_str() ) != SERVICE_ERROR_NONE)
892 throw UnknownException("service set uri error");
897 LoggerI("getMime : " << control->getMime().c_str());
898 if (control->getMime().size() != 0)
900 if (service_set_mime(m_service, control->getMime().c_str() ) != SERVICE_ERROR_NONE)
902 throw UnknownException("service set mime error");
906 LoggerI("Category : " << control->getCategory().c_str());
907 if (control->getCategory().size() != 0)
909 if (service_set_category(m_service, control->getCategory().c_str() ) != SERVICE_ERROR_NONE)
911 throw UnknownException("service set mime error");
916 if ( service_foreach_extra_data(m_service, service_extra_data_delete_cb, NULL) != SERVICE_ERROR_NONE)
918 throw UnknownException("get notification service uri error");
921 std::vector<DeviceAPI::Application::ApplicationControlDataPtr> appControlDataArray = control->getAppControlDataArray();
924 LoggerI (" App Control Datas Count : " << appControlDataArray.size());
926 DeviceAPI::Application::ApplicationControlDataArray::iterator iter;
928 for(iter = appControlDataArray.begin(); iter != appControlDataArray.end(); iter++)
930 DeviceAPI::Application::ApplicationControlDataPtr appControlData = *iter;
931 std::string key = appControlData->getKey();
932 LoggerI(" key : " << key);
937 std::vector<std::string> value = appControlDataArray[index]->getValue();
938 const char **arrayValue = (const char**)calloc(sizeof(char*), value.size());
940 for (size_t indexArray = 0; indexArray < value.size(); indexArray++)
942 arrayValue[indexArray] = (char*)value[indexArray].c_str();
943 LoggerI( " value : " << arrayValue[indexArray]);
946 const char* strKey = key.c_str();
947 LoggerI( " value size: " << value.size());
948 if (service_add_extra_data_array(m_service, strKey, arrayValue, value.size()) != SERVICE_ERROR_NONE)
950 throw UnknownException("service set extra data error");
958 bundle *bundle_data=NULL;
960 if(service_to_bundle(m_service, &bundle_data) != SERVICE_ERROR_NONE)
962 throw UnknownException("service get bundle");
965 LoggerD("bundle_data : " << bundle_data);
969 notification_set_execute_option(m_notiHandle, NOTIFICATION_EXECUTE_TYPE_SINGLE_LAUNCH,
970 NULL,NULL, bundle_data);
978 void StatusNotification::setApplicationId(const std::string& appId)
980 LoggerI("m_service = " << m_service << " appId = " << appId);
983 if (service_create(&m_service) != SERVICE_ERROR_NONE)
985 LoggerW("Create Service Failed..");
986 throw UnknownException("service creation error");
993 if (service_set_app_id(m_service, appId.c_str())!= SERVICE_ERROR_NONE)
995 throw UnknownException("service set appId error");
1001 std::string StatusNotification::getApplicationId()
1003 std::string retString;
1004 char* appIdStr = NULL;
1006 service_h service = NULL;
1008 if (m_service != NULL)
1011 retcode = service_clone(&service, m_service);
1013 if (retcode != SERVICE_ERROR_NONE)
1015 if (retcode == SERVICE_ERROR_OUT_OF_MEMORY)
1017 LoggerW("SERVICE_ERROR_OUT_OF_MEMORY");
1021 LoggerW("UI_NOTIFICATION_ERROR_INVALID_PARAMETER");
1023 throw UnknownException ("get notification service error ");
1027 if (service == NULL)
1029 throw UnknownException ("get notification service ok, but service null");
1034 if (m_service != NULL)
1036 if (service_get_app_id(m_service, &appIdStr) != SERVICE_ERROR_NONE)
1038 throw UnknownException ("get a appId error");
1041 if (appIdStr != NULL)
1043 retString = appIdStr;
1053 double StatusNotification::getProgressValue()
1059 NotificationProgressType progressType = getProgressType();
1061 if (progressType == NOTI_PROGRESS_TYPE_SIZE)
1063 if (notification_get_size(m_notiHandle, &value) != NOTIFICATION_ERROR_NONE)
1065 throw UnknownException("get notification size error");
1067 LoggerI("Size Val = " << value);
1069 else if ( progressType == NOTI_PROGRESS_TYPE_PERCENTAGE )
1071 if (notification_get_progress(m_notiHandle, &value) != NOTIFICATION_ERROR_NONE)
1073 throw UnknownException("get notification percentage error");
1075 LoggerI("Percentage Val = " << value);
1079 throw UnknownException("get notification progress type error");
1084 LoggerD("noti Handle is NULL");
1086 LoggerI("value = " << value);
1091 void StatusNotification::setProgressValue(const double &progressValue)
1095 NotificationProgressType progressType = getProgressType();
1096 LoggerI("Progress Type : " << progressType);
1098 double val = getProgressValue();
1099 LoggerI("Progress value = " << progressValue << " origin Progress Value =" << val);
1101 if (progressType == NOTI_PROGRESS_TYPE_SIZE)
1103 if (notification_set_size(m_notiHandle, progressValue) != NOTIFICATION_ERROR_NONE)
1105 throw UnknownException("set notification progress size error");
1108 else if ( progressType == NOTI_PROGRESS_TYPE_PERCENTAGE )
1110 if (notification_set_progress(m_notiHandle, progressValue) != NOTIFICATION_ERROR_NONE)
1112 throw UnknownException("set notification percentage error");
1117 throw UnknownException("get notification progress type error");
1122 LoggerD("noti Handle is NULL");
1123 throw UnknownException( "notification handle is null");
1127 NotificationProgressType StatusNotification::getProgressType()
1129 return m_progressType;
1132 void StatusNotification::setProgressType(NotificationProgressType type)
1137 LoggerI(" NotificationProgressType = " << type);
1139 std::string progressType;
1141 if ( type == NOTI_PROGRESS_TYPE_PERCENTAGE)
1143 progressType = TIZEN_NOTIFICATION_PROGRESS_TYPE_PERCENTAGE;
1145 else if ( type == NOTI_PROGRESS_TYPE_SIZE)
1147 progressType = TIZEN_NOTIFICATION_PROGRESS_TYPE_BYTE;
1151 throw TypeMismatchException("Invalid Progress Type.");
1154 if (notification_set_image(m_notiHandle,NOTIFICATION_IMAGE_TYPE_LIST_5, progressType.c_str()) != NOTIFICATION_ERROR_NONE)
1156 throw UnknownException("set notification sound error");
1159 m_progressType = type;
1163 LoggerD("noti Handle is NULL");
1164 throw UnknownException("notification handle is null");
1169 std::string StatusNotification::getSubIconPath()
1171 LoggerI("Handle = " << m_notiHandle);
1174 char *subIconPath = NULL;
1176 if (notification_get_image(m_notiHandle, NOTIFICATION_IMAGE_TYPE_ICON_SUB, &subIconPath) != NOTIFICATION_ERROR_NONE)
1178 throw UnknownException("get notification sub icon error");
1181 std::string notiSubIconPath;
1183 notiSubIconPath = subIconPath;
1184 return notiSubIconPath;
1188 throw UnknownException("notification handle is null");
1193 void StatusNotification::setSubIconPath(const std::string& subIconPath)
1197 LoggerI(" subIconPath = " << subIconPath << " origin SubIconPath = " << getSubIconPath());
1199 if( getSubIconPath().compare(subIconPath))
1201 if (notification_set_image(m_notiHandle,NOTIFICATION_IMAGE_TYPE_ICON_SUB, subIconPath.c_str()) != NOTIFICATION_ERROR_NONE)
1203 throw UnknownException("set notification sound error");
1205 setUpdatedFlag(true);
1210 LoggerD("noti Handle is NULL");
1211 throw UnknownException("notification handle is null");
1216 std::string StatusNotification::getInformation(int index)
1220 notification_text_type_e type = NOTIFICATION_TEXT_TYPE_NONE;
1224 type = NOTIFICATION_TEXT_TYPE_INFO_1;
1227 type = NOTIFICATION_TEXT_TYPE_INFO_2;
1230 type = NOTIFICATION_TEXT_TYPE_INFO_3;
1233 type = NOTIFICATION_TEXT_TYPE_NONE;
1237 if (NOTIFICATION_TEXT_TYPE_NONE != type && notification_get_text(m_notiHandle, type, &info) != NOTIFICATION_ERROR_NONE)
1239 throw UnknownException("get notification information error");
1242 std::string strInfo;
1245 LoggerD(" info " << strInfo);
1251 LoggerD("noti Handle is NULL");
1252 throw UnknownException("notification handle is null");
1257 void StatusNotification::setInformation( const std::string& info, int index)
1263 LoggerD(" index : " << idx);
1264 LoggerD(" log : " << info);
1265 notification_text_type_e type = NOTIFICATION_TEXT_TYPE_NONE;
1270 type = NOTIFICATION_TEXT_TYPE_INFO_1;
1273 type = NOTIFICATION_TEXT_TYPE_INFO_2;
1276 type = NOTIFICATION_TEXT_TYPE_INFO_3;
1279 type = NOTIFICATION_TEXT_TYPE_NONE;
1282 if ( type != NOTIFICATION_TEXT_TYPE_NONE)
1284 if (getInformation(idx).compare(info))
1286 if (notification_set_text(m_notiHandle, type, info.c_str(),
1287 NULL, NOTIFICATION_VARIABLE_TYPE_NONE) != NOTIFICATION_ERROR_NONE)
1289 throw UnknownException("set notification sound error");
1291 setUpdatedFlag(true);
1297 LoggerD("noti Handle is NULL");
1298 throw UnknownException("notification handle is null");
1302 std::string StatusNotification::getSubInformation(int index)
1307 notification_text_type_e type = NOTIFICATION_TEXT_TYPE_NONE;
1311 type = NOTIFICATION_TEXT_TYPE_INFO_SUB_1;
1314 type = NOTIFICATION_TEXT_TYPE_INFO_SUB_2;
1317 type = NOTIFICATION_TEXT_TYPE_INFO_SUB_3;
1320 type = NOTIFICATION_TEXT_TYPE_NONE;
1323 char *subInfo = NULL;
1325 if (NOTIFICATION_TEXT_TYPE_NONE != type && notification_get_text(m_notiHandle, type, &subInfo) != NOTIFICATION_ERROR_NONE)
1327 throw UnknownException( "get notification sub information error");
1330 std::string strSubInfo;
1332 strSubInfo = subInfo;
1333 LoggerD(" subInfo " << strSubInfo);
1339 LoggerD("noti Handle is NULL");
1340 throw UnknownException( "notification handle is null");
1345 void StatusNotification::setSubInformation( const std::string& subInfo, int index)
1350 LoggerD(" index : " << idx);
1351 LoggerD(" log : " << subInfo);
1352 notification_text_type_e type = NOTIFICATION_TEXT_TYPE_NONE;
1357 type = NOTIFICATION_TEXT_TYPE_INFO_SUB_1;
1360 type = NOTIFICATION_TEXT_TYPE_INFO_SUB_2;
1363 type = NOTIFICATION_TEXT_TYPE_INFO_SUB_3;
1366 type = NOTIFICATION_TEXT_TYPE_NONE;
1369 if ( type != NOTIFICATION_TEXT_TYPE_NONE)
1371 if (getSubInformation(idx).compare(subInfo))
1373 if (notification_set_text(m_notiHandle, type, subInfo.c_str(),
1374 NULL, NOTIFICATION_VARIABLE_TYPE_NONE) != NOTIFICATION_ERROR_NONE)
1376 throw UnknownException( "set notification sound error");
1378 setUpdatedFlag(true);
1384 LoggerD("noti Handle is NULL");
1385 throw UnknownException( "notification handle is null");
1391 void StatusNotification::loadThumbnails()
1395 if (!m_thumbs.empty())
1399 if (notification_get_image(m_notiHandle, NOTIFICATION_IMAGE_TYPE_LIST_1, &thumb) != NOTIFICATION_ERROR_NONE)
1401 throw UnknownException( "get notification thumbnail error");
1404 m_thumbs.push_back(thumb);
1406 // m_thumbs.push_back(std::string("")); //set empty
1409 if (notification_get_image(m_notiHandle, NOTIFICATION_IMAGE_TYPE_LIST_2, &thumb) != NOTIFICATION_ERROR_NONE)
1411 throw UnknownException( "get notification sub information error");
1414 m_thumbs.push_back(thumb);
1416 // m_thumbs.push_back(std::string("")); //set empty
1419 if (notification_get_image(m_notiHandle, NOTIFICATION_IMAGE_TYPE_LIST_3, &thumb) != NOTIFICATION_ERROR_NONE)
1421 throw UnknownException( "get notification sub information error");
1425 m_thumbs.push_back(thumb);
1427 // m_thumbs.push_back(std::string("")); //set empty
1430 if (notification_get_image(m_notiHandle, NOTIFICATION_IMAGE_TYPE_LIST_4, &thumb) != NOTIFICATION_ERROR_NONE)
1432 throw UnknownException( "get notification sub information error");
1436 m_thumbs.push_back(thumb);
1438 // m_thumbs.push_back(std::string("")); //set empty
1441 if (notification_get_image(m_notiHandle, NOTIFICATION_IMAGE_TYPE_LIST_5, &thumb) != NOTIFICATION_ERROR_NONE)
1443 throw UnknownException( "get notification sub information error");
1447 m_thumbs.push_back(thumb);
1449 m_thumbs.push_back(std::string("")); //set empty
1456 LoggerD("noti Handle is NULL");
1457 throw UnknownException( "notification handle is null");
1461 std::vector<std::string> StatusNotification::getThumbnails()
1463 LoggerI(" thumbnail Size : " << m_thumbs.size());
1467 std::string StatusNotification::getThumbnail(int index)
1471 LoggerI(" index : " << index);
1473 notification_image_type_e type = NOTIFICATION_IMAGE_TYPE_NONE;
1478 type = NOTIFICATION_IMAGE_TYPE_LIST_1;
1481 type = NOTIFICATION_IMAGE_TYPE_LIST_2;
1484 type = NOTIFICATION_IMAGE_TYPE_LIST_3;
1487 type = NOTIFICATION_IMAGE_TYPE_LIST_4;
1490 type = NOTIFICATION_IMAGE_TYPE_LIST_5;
1493 type = NOTIFICATION_IMAGE_TYPE_NONE;
1496 if ( type != NOTIFICATION_IMAGE_TYPE_NONE)
1499 if (notification_get_image(m_notiHandle, type, &thumb) != NOTIFICATION_ERROR_NONE)
1501 throw UnknownException( "set notification thumbnail error");
1504 std::string thumbnail;
1511 throw UnknownException( "notification handle is null");
1517 LoggerD("noti Handle is NULL");
1518 throw UnknownException( "notification handle is null");
1521 if (m_thumbs.size() > index)
1522 return m_thumbs[index];
1524 return std::string("");
1529 void StatusNotification::setThumbnails(std::vector<std::string> thumbs)
1531 LoggerI("set thumbnails");
1534 std::vector<std::string>::iterator it;
1537 for (it = thumbs.begin(); it < thumbs.end(); ++it)
1539 std::string str = *it;
1540 if ( idx < MAX_THUMBNAIL_LENGTH )
1541 setThumbnail(str, idx); //set notification's thumbnail value.
1549 LoggerD("noti Handle is NULL");
1550 throw UnknownException( "notification handle is null");
1554 void StatusNotification::setThumbnail( const std::string& thumb, int index)
1558 LoggerI(" index : " << index);
1559 LoggerI(" thumb : " << thumb);
1560 notification_image_type_e type = NOTIFICATION_IMAGE_TYPE_NONE;
1565 type = NOTIFICATION_IMAGE_TYPE_LIST_1;
1568 type = NOTIFICATION_IMAGE_TYPE_LIST_2;
1571 type = NOTIFICATION_IMAGE_TYPE_LIST_3;
1574 type = NOTIFICATION_IMAGE_TYPE_LIST_4;
1577 type = NOTIFICATION_IMAGE_TYPE_LIST_5;
1580 type = NOTIFICATION_IMAGE_TYPE_NONE;
1583 if ( type != NOTIFICATION_IMAGE_TYPE_NONE)
1585 if (getThumbnail(index).compare(thumb))
1587 if (notification_set_image(m_notiHandle, type, thumb.c_str()) != NOTIFICATION_ERROR_NONE)
1589 throw UnknownException( "set notification thumbnail error");
1591 setUpdatedFlag(true);
1597 std::string StatusNotification::getBackground()
1599 LoggerI(" Handle : " << m_notiHandle);
1603 char *background = NULL;
1605 if (notification_get_image(m_notiHandle, NOTIFICATION_IMAGE_TYPE_BACKGROUND, &background) != NOTIFICATION_ERROR_NONE)
1607 throw UnknownException( "get notification background error");
1610 std::string notiBackground;
1612 notiBackground = background;
1613 return notiBackground;
1617 LoggerD("noti Handle is NULL");
1618 throw UnknownException( "notification handle is null");
1623 void StatusNotification::setBackground(const std::string imagePath)
1625 LoggerI(" imagePath : " << imagePath);
1628 if (getBackground().compare(imagePath))
1630 if (notification_set_image(m_notiHandle,NOTIFICATION_IMAGE_TYPE_BACKGROUND, imagePath.c_str()) != NOTIFICATION_ERROR_NONE)
1632 throw UnknownException( "set notification sound error");
1634 setUpdatedFlag(true);
1639 LoggerD("noti Handle is NULL");
1640 throw UnknownException( "notification handle is null");
1644 long StatusNotification::getNumber()
1646 LoggerI("Handle = " << m_notiHandle);
1650 char *strNumber = NULL;
1652 if (notification_get_text(m_notiHandle, NOTIFICATION_TEXT_TYPE_EVENT_COUNT, &strNumber) != NOTIFICATION_ERROR_NONE)
1654 throw UnknownException( "get notification background error");
1658 std::istringstream(strNumber) >> number;
1660 LoggerI("Number Is NULL");
1662 LoggerI("number = " << number);
1668 LoggerD("noti Handle is NULL");
1673 const char* StatusNotification::getStrNumber()
1675 LoggerI("Handle = " << m_notiHandle);
1678 char *strNumber = NULL;
1680 if (notification_get_text(m_notiHandle, NOTIFICATION_TEXT_TYPE_EVENT_COUNT, &strNumber) != NOTIFICATION_ERROR_NONE)
1682 throw UnknownException( "get notification background error");
1694 LoggerD("noti Handle is NULL");
1699 void StatusNotification::setNumber(const long number)
1701 LoggerI("Number = " << number);
1704 if(number!=getNumber())
1706 std::stringstream stream;
1708 if (stream.fail()) {
1709 throw UnknownException(
1710 "Couldn't convert notification number");
1713 std::string strNumber = stream.str();
1714 if (notification_set_text(m_notiHandle, NOTIFICATION_TEXT_TYPE_EVENT_COUNT, strNumber.c_str(),
1715 NULL, NOTIFICATION_VARIABLE_TYPE_NONE) != NOTIFICATION_ERROR_NONE)
1717 throw UnknownException( "set notification text error");
1719 setUpdatedFlag(true);
1724 LoggerD("noti Handle is NULL");
1725 throw UnknownException( "notification handle is null");
1729 void* StatusNotification::getNotificationHandle()
1731 return m_notiHandle;
1734 void StatusNotification::setNotificationHandle(void *handle)
1738 throw UnknownException( "notification handle null error");
1740 LoggerI("handle = " << handle << " m_notiHandle = " << m_notiHandle);
1742 if (m_notiHandle != NULL)
1745 if ( notification_delete(m_notiHandle) != NOTIFICATION_ERROR_NONE)
1747 throw UnknownException( "notification delete error");
1749 m_notiHandle = NULL;
1752 m_notiHandle = (notification_h)handle;
1755 service_h StatusNotification::getService()
1760 std::string StatusNotification::getLight()
1762 LoggerI("get Light handle: " << m_notiHandle);
1766 notification_led_op_e type = NOTIFICATION_LED_OP_ON;
1767 if (notification_get_led(m_notiHandle, &type, &ledColor) != NOTIFICATION_ERROR_NONE)
1769 throw UnknownException("get notification Content error");
1772 std::stringstream stream;
1773 if (NOTIFICATION_LED_OP_OFF != type)
1775 stream << std::hex << ledColor;
1776 light = "#" + stream.str();
1779 return boost::to_lower_copy(light);
1783 throw UnknownException("notification handle is null");
1787 bool StatusNotification::isColorFormatNumberic(std::string& color)
1789 //first check length
1790 std::string hexCode = "0123456789abcdef";
1791 if (color.length() == 7 && !color.compare(0, 1, "#") )
1793 for ( size_t i = 1 ; i < color.length() ; i++)
1795 if (std::string::npos == hexCode.find(color[i]))
1803 void StatusNotification::setLight(std::string color)
1805 LoggerI("set Light handle: " << m_notiHandle);
1806 LoggerI("led Color : " << color);
1809 color = boost::to_lower_copy(color); //convert lowercase.
1810 if ( isColorFormatNumberic(color))
1812 std::stringstream stream;
1814 notification_led_op_e type = NOTIFICATION_LED_OP_ON;
1815 std::string colorCode = color.substr(1, color.length());
1817 stream << std::hex << colorCode;
1818 LoggerI("LedColor = " << stream.str());
1820 LoggerI("LedColor = " << ledColor);
1823 type = NOTIFICATION_LED_OP_ON_CUSTOM_COLOR;
1825 type = NOTIFICATION_LED_OP_OFF;
1827 if (notification_set_led(m_notiHandle, type, ledColor) != NOTIFICATION_ERROR_NONE)
1829 throw UnknownException("set notification led ");
1835 LoggerI("color.length()=" << color.length());
1836 if (color.length() == 0)
1838 if (notification_set_led(m_notiHandle, NOTIFICATION_LED_OP_OFF, 0) != NOTIFICATION_ERROR_NONE)
1840 throw UnknownException("set notification led ");
1845 throw InvalidValuesException("color code error!");
1851 throw UnknownException("notification handle is null");
1855 unsigned long StatusNotification::getLightOnTime()
1857 LoggerI("get Light on Time handle: " << m_notiHandle);
1863 if (notification_get_led_time_period(m_notiHandle, &onTime, &offTime ) != NOTIFICATION_ERROR_NONE)
1865 throw UnknownException("set notification led ");
1867 LoggerI("onTime " << onTime);
1869 return (unsigned long) onTime;
1873 throw UnknownException("notification handle is null");
1877 void StatusNotification::setLightOnTime(unsigned long time)
1879 LoggerI("set Light on Time handle: " << m_notiHandle);
1880 LoggerI("itme = " << time);
1883 int offTime = getLightOffTime();
1885 if (notification_set_led_time_period(m_notiHandle, time, offTime ) != NOTIFICATION_ERROR_NONE)
1887 throw UnknownException("set notification led ");
1893 throw UnknownException("notification handle is null");
1897 unsigned long StatusNotification::getLightOffTime()
1900 LoggerI("get Light on Time handle: " << m_notiHandle);
1906 if (notification_get_led_time_period(m_notiHandle, &onTime, &offTime ) != NOTIFICATION_ERROR_NONE)
1908 throw UnknownException("set notification led ");
1910 LoggerI("offTime " << offTime);
1916 throw UnknownException("notification handle is null");
1921 void StatusNotification::setLightOffTime(unsigned long time)
1923 LoggerI("set Light off Time handle: " << m_notiHandle);
1924 LoggerI("time = " << time);
1927 int onTime = getLightOnTime();
1929 if (notification_set_led_time_period(m_notiHandle, onTime, time ) != NOTIFICATION_ERROR_NONE)
1931 throw UnknownException("set notification led ");
1936 throw UnknownException("notification handle is null");
1941 void StatusNotification::loadDetailInfos()
1943 LoggerI("noti Handle = " << m_notiHandle);
1947 for ( int idx = 0; idx < MAX_NOTIFICATION_DETAIL_INFO_LENGTH; idx++)
1949 if (!isNullInformation(idx))
1951 std::string main = getInformation(idx);
1952 std::string sub = getSubInformation(idx);
1954 LoggerI("Main : [" << main << "] Sub : ['" << sub <<"]");
1956 NotificationDetailInfo *info = new NotificationDetailInfo(m_notiHandle, idx, main, sub);
1957 m_detailInfos.push_back(info);
1963 LoggerD("noti Handle is NULL");
1964 throw UnknownException( "notification handle is null");
1969 std::vector<NotificationDetailInfo*> StatusNotification::getDetailInfos() const
1971 return m_detailInfos;
1974 void StatusNotification::setDetailInfos(const std::vector<NotificationDetailInfo*> value)
1976 LoggerI("DetailInfos = " << value.size());
1980 std::vector<NotificationDetailInfo*>::const_iterator it;
1983 for (it = value.begin(); it < value.end(); ++it)
1985 NotificationDetailInfo* info = *it;
1986 if ( idx < MAX_NOTIFICATION_DETAIL_INFO_LENGTH )
1989 LoggerI("main " << info->getMainText() << " sub " << info->getSubText() );
1990 setInformation(info->getMainText(), idx);
1991 setSubInformation(info->getSubText(), idx);
1996 m_detailInfos = value;
2000 LoggerD("noti Handle is NULL");
2001 throw UnknownException( "notification handle is null");
2006 int StatusNotification::getDetailInfosNum() const
2008 return m_detailInfos.size();
2011 void StatusNotification::clearDetailInfos()
2013 if ( !m_detailInfos.empty() )
2015 std::vector<NotificationDetailInfo*>::const_iterator it;
2018 for (it = m_detailInfos.begin(); it < m_detailInfos.end(); ++it)
2020 NotificationDetailInfo* info = *it;
2021 LoggerI("Delete Detail Info : " << info);
2026 m_detailInfos.clear(); //clear
2030 std::string StatusNotification::getInformation(int index)
2034 notification_text_type_e type = NOTIFICATION_TEXT_TYPE_NONE;
2038 type = NOTIFICATION_TEXT_TYPE_INFO_1;
2041 type = NOTIFICATION_TEXT_TYPE_INFO_2;
2044 type = NOTIFICATION_TEXT_TYPE_INFO_3;
2047 type = NOTIFICATION_TEXT_TYPE_NONE;
2051 if (NOTIFICATION_TEXT_TYPE_NONE != type && notification_get_text(m_notiHandle, type, &info) != NOTIFICATION_ERROR_NONE)
2053 throw UnknownException("Detail Info index value is invalid or mainText value getting is failed in Detail Info.");
2056 std::string strInfo;
2059 LoggerI(" info " << strInfo);
2065 LoggerW("noti Handle is NULL");
2066 throw UnknownException( "notification handle is null");
2071 bool StatusNotification::isNullInformation(int index)
2075 notification_text_type_e type = NOTIFICATION_TEXT_TYPE_NONE;
2079 type = NOTIFICATION_TEXT_TYPE_INFO_1;
2082 type = NOTIFICATION_TEXT_TYPE_INFO_2;
2085 type = NOTIFICATION_TEXT_TYPE_INFO_3;
2088 type = NOTIFICATION_TEXT_TYPE_NONE;
2092 if (NOTIFICATION_TEXT_TYPE_NONE != type && notification_get_text(m_notiHandle, type, &info) != NOTIFICATION_ERROR_NONE)
2094 throw UnknownException("Detail Info index value is invalid or mainText value getting is failed in Detail Info.");
2099 LoggerI("is not null");
2111 LoggerW("noti Handle is NULL");
2112 throw UnknownException( "notification handle is null");
2116 std::string StatusNotification::getSubInformation(int index)
2120 notification_text_type_e type = NOTIFICATION_TEXT_TYPE_NONE;
2124 type = NOTIFICATION_TEXT_TYPE_INFO_SUB_1;
2127 type = NOTIFICATION_TEXT_TYPE_INFO_SUB_2;
2130 type = NOTIFICATION_TEXT_TYPE_INFO_SUB_3;
2133 type = NOTIFICATION_TEXT_TYPE_NONE;
2136 char *subInfo = NULL;
2138 if (NOTIFICATION_TEXT_TYPE_NONE != type && notification_get_text(m_notiHandle, type, &subInfo) != NOTIFICATION_ERROR_NONE)
2140 throw UnknownException("Detail Info index value is invalid or subText value getting is failed in Detail Info.");
2143 std::string strSubInfo;
2145 strSubInfo = subInfo;
2146 LoggerI(" subInfo " << strSubInfo);
2152 LoggerW("noti Handle is NULL");
2153 throw UnknownException ("notification handle is null");
2158 void StatusNotification::setInformation( const std::string& info, int index)
2163 LoggerD(" index : " << idx);
2164 LoggerD(" log : " << info);
2165 notification_text_type_e type = NOTIFICATION_TEXT_TYPE_NONE;
2170 type = NOTIFICATION_TEXT_TYPE_INFO_1;
2173 type = NOTIFICATION_TEXT_TYPE_INFO_2;
2176 type = NOTIFICATION_TEXT_TYPE_INFO_3;
2179 type = NOTIFICATION_TEXT_TYPE_NONE;
2182 if ( type != NOTIFICATION_TEXT_TYPE_NONE)
2184 if (getInformation(idx).compare(info) || isNullInformation(idx))
2186 if (notification_set_text(m_notiHandle, type, info.c_str(),
2187 NULL, NOTIFICATION_VARIABLE_TYPE_NONE) != NOTIFICATION_ERROR_NONE)
2189 throw UnknownException("set notification sound error");
2191 setUpdatedFlag(true);
2196 LoggerW("noti Handle is NULL");
2197 throw UnknownException("notification handle is null");
2202 LoggerW("noti Handle is NULL");
2203 throw UnknownException("notification handle is null");
2207 void StatusNotification::setSubInformation( const std::string& subInfo, int index)
2213 LoggerD(" index : " << idx);
2214 LoggerD(" log : " << subInfo);
2215 notification_text_type_e type = NOTIFICATION_TEXT_TYPE_NONE;
2220 type = NOTIFICATION_TEXT_TYPE_INFO_SUB_1;
2223 type = NOTIFICATION_TEXT_TYPE_INFO_SUB_2;
2226 type = NOTIFICATION_TEXT_TYPE_INFO_SUB_3;
2229 type = NOTIFICATION_TEXT_TYPE_NONE;
2232 if ( type != NOTIFICATION_TEXT_TYPE_NONE)
2234 if (getSubInformation(idx).compare(subInfo))
2236 if (notification_set_text(m_notiHandle, type, subInfo.c_str(),
2237 NULL, NOTIFICATION_VARIABLE_TYPE_NONE) != NOTIFICATION_ERROR_NONE)
2239 throw UnknownException("set notification sound error");
2241 setUpdatedFlag(true);
2247 LoggerW("noti Handle is NULL");
2248 throw UnknownException("notification handle is null");