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.
19 #include <Commons/Exception.h>
21 #include "EventSendMessage.h"
22 #include "EventDeleteMessages.h"
23 #include "EventMessagingService.h"
31 IMessage::IMessage(const MessageType msgType,
37 m_validReadStatus(false),
38 m_isReadChangeStatus(false),
39 m_validisReadChangeStatus(true),
43 m_requestReceiver(NULL),
44 m_sendMessageEvent(NULL)
46 LoggerD("message creation, msgId=" << m_id << ", msgType=" << m_msgType);
48 //initialize dateTime of message
51 tm* local = localtime(&rawtime);
55 LoggerE("Failed to initialize message dateTime");
57 m_widgetPath = GetWidgetPath("");
62 LoggerD("destroying message, msgId=" << m_id << ", msgType=" << m_msgType);
65 string IMessage::getId() const
70 int IMessage::getConvId() const
75 const string& IMessage::getIdRef() const
80 MessageType IMessage::getMessageType() const
85 struct tm IMessage::getDateTime() const
90 string IMessage::convertId(int arg) const
97 int IMessage::convertId(const string& arg) const
100 istringstream(arg) >> retVal;
104 void IMessage::setId(const string& value)
109 void IMessage::setConvId(int value)
114 void IMessage::setDateTime(const tm dateTime)
116 m_dateTime = dateTime;
119 void IMessage::setReadStatus(bool state)
121 m_validReadStatus = false;
122 m_readStatus = state;
125 void IMessage::setSize(int size)
130 int IMessage::getSize() const
135 bool IMessage::isRead() const
140 bool IMessage::isReadStatusValid() const
142 return m_validReadStatus;
145 void IMessage::setReadStatusValidity(bool valid)
147 m_validReadStatus = valid;
150 bool IMessage::isReadChangeStatus() const
152 return m_isReadChangeStatus;
155 void IMessage::setisReadChangeStatus(bool state)
157 m_validisReadChangeStatus = false;
158 m_isReadChangeStatus = state;
161 bool IMessage::isReadChangeStatusValid() const
163 return m_validisReadChangeStatus;
166 void IMessage::setisReadChangeStatusValidity(bool valid)
168 m_validisReadChangeStatus = valid;
171 FolderType IMessage::getCurrentFolder() const
176 void IMessage::setFolderType(FolderType folder)
181 string IMessage::getCurrentUserFolder() const
183 if (m_folder != USERDEFINED_FOLDER) {
184 LoggerE("folder is not user folder type");
185 Throw(WrtDeviceApis::Commons::UnknownException);
187 return m_userFolderName;
190 void IMessage::setCurrentUserFolder(const std::string& arg)
192 m_userFolderName = arg;
195 int IMessage::getCurrentFolderId() const
200 void IMessage::setCurrentFolderId(int folderId)
202 m_folderId = folderId;
206 bool IMessage::validatePhoneNumber(std::string& number)
208 LoggerD("testing number=" << number);
211 pcrecpp::RE re("[^0-9#\\+\\*]?");
212 re.GlobalReplace("", &number); //remove invailde phone number. phone Number were composed only number.
214 if (number.empty()) {
215 LoggerE("wrong phoneNumber=" << number);
218 LoggerD("phoneNumber=" << number);
220 pcrecpp::RE re2("^[+#]?[0-9]{1,22}$");
221 if (re2.FullMatch(number)) {
222 LoggerD("vaildate Number=" << number);
227 LoggerD("invaildate Number=" << number);
233 bool IMessage::validateEmailAddr(const Recipients& addr)
235 for (size_t i = 0; i < addr.getRecipientSize(); i++) {
236 if (false == validateEmailAddr(addr.getRecipient(i))) {
237 LoggerE("wrong email address");
244 bool IMessage::validateEmailAddr(const std::string& email)
250 "^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}"
251 "\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\"
252 ".)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$"
254 if (re.FullMatch(email)) {
255 LoggerD("emailAddress=" << email);
258 LoggerE("wrong emailAddress=" << email);
262 void IMessage::setEmitter(const EventOnSendingFailedEmitterPtr& emitter)
267 EventOnSendingFailedEmitterPtr IMessage::getEmitter() const
272 void IMessage::setSendMessageEvent(const EventSendMessagePtr &event)
274 m_sendMessageEvent = event;
277 EventSendMessagePtr IMessage::getSendMessageEvent() const
279 return m_sendMessageEvent;
282 void IMessage::setMessagingServiceEvent(const EventMessagingServicePtr & event)
284 m_messagingServiceEvent = event;
287 EventMessagingServicePtr IMessage::getMessagingServiceEvent() const
289 return m_messagingServiceEvent;
292 void IMessage::setRemoveMessagesEvent(const EventDeleteMessagesPtr & event)
294 m_deleteMessagesEvent = event;
297 EventDeleteMessagesPtr IMessage::getRemoveMessagesEvent() const
299 return m_deleteMessagesEvent;
303 void IMessage::setRequestReceiver(ReqReceiverMessage* reqReceiver)
305 m_requestReceiver = reqReceiver;
308 ReqReceiverMessage* IMessage::getRequestReceiver() const
310 return m_requestReceiver;
313 void IMessage::setMessageStatus( MessageStatus status)
315 LoggerD("setMessageStatus : " << status);
316 m_msgStatus = status;
319 MessageStatus IMessage::getMessageStatus() const
324 void IMessage::setWidgetPath(const std::string& filePath)
326 m_widgetPath = filePath;
329 std::string IMessage::getWidgetPath() const