author | Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> |
Wed, 18 Aug 2010 09:45:25 +0300 | |
changeset 52 | 12db4185673b |
parent 34 | 84197e66a4bd |
permissions | -rw-r--r-- |
31 | 1 |
/* |
2 |
* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). |
|
3 |
* All rights reserved. |
|
4 |
* This component and the accompanying materials are made available |
|
5 |
* under the terms of "Eclipse Public License v1.0" |
|
6 |
* which accompanies this distribution, and is available |
|
7 |
* at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 |
* |
|
9 |
* Initial Contributors: |
|
10 |
* Nokia Corporation - initial contribution. |
|
11 |
* |
|
12 |
* Contributors: |
|
13 |
* |
|
14 |
* Description: Wrapper classes which encapsulates Message store functions |
|
15 |
* |
|
16 |
*/ |
|
17 |
||
18 |
#ifndef CONVERSATION_MSG_STORE_HANDLER_H |
|
19 |
#define CONVERSATION_MSG_STORE_HANDLER_H |
|
20 |
||
21 |
// INCLUDE FILES |
|
22 |
#include <msvapi.h> |
|
23 |
#include <ccsdefs.h> |
|
24 |
#include <QString> |
|
25 |
||
26 |
// FORWARD DECLARATIONS |
|
27 |
class CMsvSession; |
|
28 |
class MMsvSessionObserver; |
|
29 |
class DraftsModel; |
|
30 |
class CClientMtmRegistry; |
|
31 |
class CMmsClientMtm; |
|
32 |
class CMmsNotificationClientMtm; |
|
33 |
||
34 |
||
52
12db4185673b
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
34
diff
changeset
|
35 |
class ConversationMsgStoreHandler: public CBase, public MMsvSessionObserver |
31 | 36 |
{ |
37 |
public: |
|
38 |
||
39 |
/* |
|
40 |
* Draft processing states |
|
41 |
*/ |
|
42 |
enum TDraftHandlerState |
|
43 |
{ |
|
44 |
EReadDrafts, |
|
45 |
EProcessDrafts, |
|
46 |
EComplete |
|
47 |
}; |
|
48 |
||
49 |
/** |
|
50 |
* Default constructor. |
|
51 |
*/ |
|
52 |
explicit ConversationMsgStoreHandler(); |
|
53 |
||
54 |
/** |
|
55 |
* Destructor |
|
56 |
*/ |
|
57 |
virtual ~ConversationMsgStoreHandler(); |
|
58 |
||
59 |
private: |
|
60 |
||
61 |
/** |
|
62 |
* Initializes the ConversationMsgStoreHandler class. |
|
63 |
*/ |
|
64 |
void InitL(); |
|
65 |
||
66 |
public: |
|
67 |
/** |
|
68 |
* From MMsvSessionObserver. HandleSessionEventL. |
|
69 |
*/ |
|
70 |
void HandleSessionEventL(TMsvSessionEvent aEvent, TAny* aArg1, TAny* aArg2, |
|
71 |
TAny* aArg3); |
|
72 |
public: |
|
73 |
/** |
|
74 |
* Get MMS notification status. |
|
75 |
* @param aMsvId MMS notification status. |
|
76 |
*/ |
|
77 |
TCsMmsNotificationMsgState MmsNotificationStatus( TInt aMsvId ); |
|
78 |
||
79 |
/** |
|
80 |
* Mark specified messages as unread. |
|
81 |
* @param aIdArray Array of message ids. |
|
82 |
*/ |
|
83 |
void MarkMessagesReadL(RArray<TInt>& aIdArray); |
|
84 |
||
85 |
/** |
|
86 |
* Delete specified messages from message store |
|
87 |
* @param aIdArray Array of message ids. |
|
88 |
*/ |
|
89 |
void DeleteMessages(RArray<TInt>& aIdArray); |
|
90 |
||
91 |
/** |
|
92 |
* Delete all draft messages. |
|
93 |
*/ |
|
94 |
void DeleteAllDraftMessagesL(); |
|
95 |
||
96 |
/** |
|
97 |
* Resend a specified message that has failed. |
|
98 |
* @param aId TMsvId of the failed message |
|
99 |
* @return bool true if succeeded |
|
100 |
*/ |
|
101 |
bool ResendMessageL(TMsvId aId); |
|
102 |
||
103 |
/** |
|
104 |
* Returns the msv session object |
|
105 |
* @return CMsvSession object |
|
106 |
*/ |
|
107 |
CMsvSession& GetMsvSession(); |
|
108 |
||
109 |
/** |
|
110 |
* Start fetching all draft messages |
|
111 |
*/ |
|
112 |
void FetchDraftMessages(DraftsModel* draftsModel); |
|
113 |
||
114 |
/** |
|
115 |
* Mark message as read and get the message type. |
|
116 |
* @param messageId message Id |
|
117 |
* @param msgType message type is written to this. |
|
118 |
* @param msgType message sub type is written to this. |
|
119 |
*/ |
|
120 |
void markAsReadAndGetType(int msgId, |
|
121 |
int& msgType, |
|
122 |
int& msgSubType); |
|
123 |
||
124 |
/** |
|
125 |
* Extract the message type. |
|
126 |
* @param entry message entry. |
|
127 |
* @param msgType message type is written to this. |
|
128 |
* @param msgType message sub type is written to this. |
|
129 |
*/ |
|
130 |
void extractMsgType(const TMsvEntry& entry, |
|
131 |
int& msgType, |
|
132 |
int& msgSubType); |
|
133 |
/** |
|
134 |
* Query if the download operation be performed for |
|
135 |
* a message notification entry |
|
136 |
* @param aId, message notification id |
|
137 |
* @return true if download operation is possible |
|
138 |
*/ |
|
139 |
bool DownloadOperationSupported(const TMsvId& aId); |
|
140 |
||
141 |
||
142 |
/** |
|
143 |
* Sets content to messageId |
|
144 |
* @param messageId, Message Id content |
|
145 |
*/ |
|
146 |
void setNotificationMessageIdL(int messageId); |
|
147 |
||
148 |
/** |
|
149 |
* Seeker method for getting mms notification estimated msg size |
|
52
12db4185673b
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
34
diff
changeset
|
150 |
* @return formatted string for msg size in KB |
31 | 151 |
*/ |
52
12db4185673b
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
34
diff
changeset
|
152 |
QString NotificationMsgSize(); |
31 | 153 |
|
154 |
/** |
|
155 |
* Seeker method for getting mms notification class type |
|
156 |
* @return Notification Class type string |
|
157 |
*/ |
|
158 |
QString NotificationClass(); |
|
159 |
||
160 |
/** |
|
161 |
* Seeker method for message status and error string |
|
162 |
* mms notification's download state |
|
163 |
* @param [OUT] status, msg status |
|
164 |
* @param [OUT] statusStr, localized string of msg status |
|
165 |
*/ |
|
166 |
void NotificationStatus(int& status, |
|
167 |
QString& statusStr); |
|
168 |
||
169 |
/** |
|
170 |
* Seeker method getting expiry info of a notification msg |
|
52
12db4185673b
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
34
diff
changeset
|
171 |
* @return formatted string of notification's expiry time |
31 | 172 |
*/ |
52
12db4185673b
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
34
diff
changeset
|
173 |
QString NotificationExpiryDate(); |
31 | 174 |
|
175 |
/** |
|
176 |
* Download a specified message |
|
177 |
* @param aId TMsvId of the message |
|
178 |
* @return KErrNone if Download request is successful, |
|
179 |
* KErrNotFound if settings are not available, |
|
180 |
* KErrGeneral for other cases |
|
181 |
*/ |
|
182 |
TInt DownloadMessageL(TMsvId aId); |
|
34
84197e66a4bd
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
31
diff
changeset
|
183 |
|
84197e66a4bd
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
31
diff
changeset
|
184 |
/** |
84197e66a4bd
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
31
diff
changeset
|
185 |
* Returns the Bio Type of a message |
84197e66a4bd
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
31
diff
changeset
|
186 |
*/ |
84197e66a4bd
Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
31
diff
changeset
|
187 |
int getMsgSubType(int msgId); |
31 | 188 |
|
189 |
private: |
|
190 |
||
191 |
/** |
|
192 |
* verifys the current operation status |
|
193 |
*@param aEntry, TMsvEntry |
|
194 |
*/ |
|
195 |
TBool OperationFinished( const TMsvEntry& aEntry ) const; |
|
196 |
||
197 |
/** |
|
198 |
* verifys the current operation status |
|
199 |
* @param aEntry, TMsvEntry |
|
200 |
*/ |
|
201 |
TBool OperationOngoing( const TMsvEntry& aEntry ) const; |
|
202 |
||
203 |
/** |
|
204 |
* CIdle callback |
|
205 |
*/ |
|
206 |
static TInt ProcessDraftMessages(TAny* arg); |
|
207 |
||
208 |
/** |
|
209 |
* State handler to read all draft messages |
|
210 |
*/ |
|
211 |
TInt ProcessDraftMessagesL(); |
|
212 |
||
213 |
/** |
|
214 |
* Cleanup |
|
215 |
*/ |
|
216 |
void CleanupL(); |
|
217 |
||
218 |
/** |
|
219 |
* Checks if the MTM type supported |
|
220 |
*/ |
|
221 |
TBool IsMtmSupported(long uid); |
|
52
12db4185673b
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
34
diff
changeset
|
222 |
|
12db4185673b
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
34
diff
changeset
|
223 |
/** |
12db4185673b
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
34
diff
changeset
|
224 |
* Get max receive size limit (for MMS) from settings |
12db4185673b
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
34
diff
changeset
|
225 |
*/ |
12db4185673b
Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
34
diff
changeset
|
226 |
TInt MaxReceiveSizeLimitL(); |
31 | 227 |
|
228 |
private: |
|
229 |
/** |
|
230 |
* Msv Session |
|
231 |
* Own. |
|
232 |
*/ |
|
233 |
CMsvSession* iMsvSession; |
|
234 |
||
235 |
/** |
|
236 |
* Draft entry |
|
237 |
* Own |
|
238 |
*/ |
|
239 |
CMsvEntry* iDraftEntry; |
|
240 |
||
241 |
/** |
|
242 |
* Active object |
|
243 |
*/ |
|
244 |
CIdle* iIdle; |
|
245 |
||
246 |
/** |
|
247 |
* Messages under root entry |
|
248 |
* Own |
|
249 |
*/ |
|
250 |
CMsvEntrySelection* iDraftMessages; |
|
251 |
||
252 |
/** |
|
253 |
* Drafts model |
|
254 |
* Not Own |
|
255 |
*/ |
|
256 |
DraftsModel *mDraftsModel; |
|
257 |
||
258 |
/** |
|
259 |
* Mesage count |
|
260 |
*/ |
|
261 |
TInt iDraftMessageCount; |
|
262 |
||
263 |
/** |
|
264 |
* State |
|
265 |
*/ |
|
266 |
TDraftHandlerState iState; |
|
267 |
/** |
|
268 |
* Own. Mtm Registry |
|
269 |
*/ |
|
270 |
CClientMtmRegistry* iMtmReg; |
|
271 |
||
272 |
/** |
|
273 |
* MMS client mtm |
|
274 |
*/ |
|
275 |
CMmsClientMtm* iMmsClient; |
|
276 |
||
277 |
/** |
|
278 |
* Notification client mtm |
|
279 |
*/ |
|
280 |
CMmsNotificationClientMtm* iNotificationClient; |
|
281 |
||
282 |
TBool iOfflineSupported; |
|
283 |
}; |
|
284 |
||
285 |
#endif // CONVERSATION_MSG_STORE_HANDLER_H |
|
286 |
||
287 |
// EOF |