24 #include "conversationmsgstorehandler.h" |
24 #include "conversationmsgstorehandler.h" |
25 #include "conversationssummarymodel.h" |
25 #include "conversationssummarymodel.h" |
26 #include "conversationsmodel.h" |
26 #include "conversationsmodel.h" |
27 #include "conversationchangehandler.h" |
27 #include "conversationchangehandler.h" |
28 #include "conversationlistchangehandler.h" |
28 #include "conversationlistchangehandler.h" |
|
29 #include "debugtraces.h" |
29 |
30 |
30 //--------------------------------------------------------------- |
31 //--------------------------------------------------------------- |
31 // ConversationsEnginePrivate::ConversationsEnginePrivate |
32 // ConversationsEnginePrivate::ConversationsEnginePrivate |
32 // @see header |
33 // @see header |
33 //--------------------------------------------------------------- |
34 //--------------------------------------------------------------- |
48 // ConversationsEnginePrivate::~ConversationsEnginePrivate |
49 // ConversationsEnginePrivate::~ConversationsEnginePrivate |
49 // @see header |
50 // @see header |
50 //--------------------------------------------------------------- |
51 //--------------------------------------------------------------- |
51 ConversationsEnginePrivate::~ConversationsEnginePrivate() |
52 ConversationsEnginePrivate::~ConversationsEnginePrivate() |
52 { |
53 { |
53 delete mConvChangeHandler; |
54 |
54 |
|
55 delete mConvListChangeHandler; |
|
56 |
|
57 if( mClientConv ) |
55 if( mClientConv ) |
58 { |
56 { |
59 if(mServer) |
57 if(mServer && mConvChangeHandler) |
60 { |
58 { |
61 mServer->RemoveConversationChangeEventL (mConvChangeHandler, |
59 TRAP_IGNORE(mServer->RemoveConversationChangeEventL( |
62 mClientConv); |
60 mConvChangeHandler,mClientConv)); |
63 } |
61 } |
64 delete mClientConv; |
62 delete mClientConv; |
65 mClientConv = NULL; |
63 mClientConv = NULL; |
66 } |
64 } |
67 if(mServer) |
65 if(mServer && mConvListChangeHandler) |
68 { |
66 { |
69 mServer->RemoveConversationListChangeEventL (mConvListChangeHandler); |
67 TRAP_IGNORE(mServer->RemoveConversationListChangeEventL( |
70 mServer->RemoveResultsEventL ( this ); |
68 mConvListChangeHandler)); |
|
69 TRAP_IGNORE(mServer->RemoveResultsEventL ( this )); |
71 mServer->Cancel(); |
70 mServer->Cancel(); |
72 delete mServer; |
71 delete mServer; |
73 mServer = NULL; |
72 mServer = NULL; |
74 } |
73 } |
|
74 |
|
75 delete mConvChangeHandler; |
|
76 |
|
77 delete mConvListChangeHandler; |
|
78 |
75 } |
79 } |
76 |
80 |
77 //--------------------------------------------------------------- |
81 //--------------------------------------------------------------- |
78 // ConversationsEnginePrivate::initL |
82 // ConversationsEnginePrivate::initL |
79 // @see header |
83 // @see header |
111 //--------------------------------------------------------------- |
115 //--------------------------------------------------------------- |
112 void ConversationsEnginePrivate::getConversationsL( TInt aConversationId) |
116 void ConversationsEnginePrivate::getConversationsL( TInt aConversationId) |
113 { |
117 { |
114 if(!mClientConv) |
118 if(!mClientConv) |
115 { |
119 { |
|
120 QCRITICAL_WRITE("ConversationsEnginePrivate::getConversationsL start."); |
116 //Clear the model before issueing fetch |
121 //Clear the model before issueing fetch |
117 mConversationsModel->clear(); |
122 mConversationsModel->clear(); |
118 //create a client conversation |
123 //create a client conversation |
119 mClientConv = CCsClientConversation::NewL(); |
124 mClientConv = CCsClientConversation::NewL(); |
120 mClientConv->SetConversationEntryId(aConversationId); |
125 mClientConv->SetConversationEntryId(aConversationId); |
121 //set dummy entry |
126 //set dummy entry |
122 CCsConversationEntry *entry = CCsConversationEntry::NewL(); |
127 CCsConversationEntry *entry = CCsConversationEntry::NewL(); |
123 CleanupStack::PushL(entry); |
128 CleanupStack::PushL(entry); |
124 mClientConv->SetConversationEntryL(entry); |
129 mClientConv->SetConversationEntryL(entry); |
125 CleanupStack::PopAndDestroy(entry); |
130 CleanupStack::PopAndDestroy(entry); |
126 //Get the conversations for new conversationId |
131 //Get the conversations for new conversationId |
127 mServer->GetConversationsL( mClientConv ); |
132 mServer->GetConversationsL(mClientConv); |
128 } |
133 |
|
134 QCRITICAL_WRITE("ConversationsEnginePrivate::getConversationsL end."); |
|
135 } |
|
136 |
129 } |
137 } |
130 |
138 |
131 //--------------------------------------------------------------- |
139 //--------------------------------------------------------------- |
132 // ConversationsEnginePrivate::deleteConversationL |
140 // ConversationsEnginePrivate::deleteConversationL |
133 // @see header |
141 // @see header |
211 convId = mServer->GetConversationIdFromAddressL(contactAddress); |
219 convId = mServer->GetConversationIdFromAddressL(contactAddress); |
212 |
220 |
213 return convId; |
221 return convId; |
214 } |
222 } |
215 |
223 |
|
224 //--------------------------------------------------------------- |
|
225 // ConversationsEnginePrivate::getConversationFromConversationId |
|
226 // @see header |
|
227 //--------------------------------------------------------------- |
|
228 CCsClientConversation* ConversationsEnginePrivate::getConversationFromConversationIdL(TInt aConversationId) |
|
229 { |
|
230 return mServer->GetConversationFromConversationIdL(aConversationId); |
|
231 } |
216 |
232 |
217 //--------------------------------------------------------------- |
233 //--------------------------------------------------------------- |
218 // ConversationsEnginePrivate::clearConversationsL |
234 // ConversationsEnginePrivate::clearConversationsL |
219 // @see header |
235 // @see header |
220 //--------------------------------------------------------------- |
236 //--------------------------------------------------------------- |
221 void ConversationsEnginePrivate::clearConversationsL() |
237 void ConversationsEnginePrivate::clearConversationsL() |
222 { |
238 { |
|
239 QCRITICAL_WRITE("ConversationsEnginePrivate::clearConversationsL start."); |
|
240 |
223 mConvChangeHandler->Cancel(); |
241 mConvChangeHandler->Cancel(); |
224 //Clear conversations model before populating with new data |
242 //Clear conversations model before populating with new data |
225 mConversationsModel->clear(); |
243 mConversationsModel->clearModel(); |
226 |
244 |
227 // Delete old CCsClientConversation object |
245 // Delete old CCsClientConversation object |
228 // Remove the old Conversation change observer |
246 // Remove the old Conversation change observer |
229 if(mClientConv) |
247 if(mClientConv) |
230 { |
248 { |
231 mServer->RemoveConversationChangeEventL (mConvChangeHandler ,mClientConv); |
249 int error = KErrNone; |
|
250 TRAP(error, mServer->RemoveConversationChangeEventL (mConvChangeHandler ,mClientConv)); |
232 delete mClientConv; |
251 delete mClientConv; |
233 mClientConv = NULL; |
252 mClientConv = NULL; |
234 } |
253 User::LeaveIfError(error); |
|
254 } |
|
255 |
|
256 QCRITICAL_WRITE("ConversationsEnginePrivate::clearConversationsL end."); |
235 } |
257 } |
236 |
258 |
237 //--------------------------------------------------------------- |
259 //--------------------------------------------------------------- |
238 // ConversationsEnginePrivate::registerForConversationUpdatesL |
260 // ConversationsEnginePrivate::registerForConversationUpdatesL |
239 // @see header |
261 // @see header |
246 mServer->RequestConversationChangeEventL (mConvChangeHandler ,mClientConv); |
268 mServer->RequestConversationChangeEventL (mConvChangeHandler ,mClientConv); |
247 } |
269 } |
248 } |
270 } |
249 |
271 |
250 //--------------------------------------------------------------- |
272 //--------------------------------------------------------------- |
|
273 // ConversationsEnginePrivate::deRegisterCVUpdatesTemporary |
|
274 // @see header |
|
275 //--------------------------------------------------------------- |
|
276 void ConversationsEnginePrivate::deRegisterCVUpdatesTemporary() |
|
277 { |
|
278 mServer->RemoveConversationChangeEventL (mConvChangeHandler ,mClientConv); |
|
279 } |
|
280 |
|
281 //--------------------------------------------------------------- |
|
282 // ConversationsEnginePrivate::registerAgainForConversationUpdatesL |
|
283 // @see header |
|
284 //--------------------------------------------------------------- |
|
285 void ConversationsEnginePrivate::registerAgainForConversationUpdatesL( |
|
286 int newConversationId) |
|
287 { |
|
288 //Add the Conversation Change for new conversationId |
|
289 if(mClientConv) |
|
290 { |
|
291 mClientConv->SetConversationEntryId(newConversationId); |
|
292 mServer->RequestConversationChangeEventL (mConvChangeHandler ,mClientConv); |
|
293 } |
|
294 } |
|
295 |
|
296 //--------------------------------------------------------------- |
251 // ConversationsEnginePrivate::ConversationList |
297 // ConversationsEnginePrivate::ConversationList |
252 // @see header |
298 // @see header |
253 //--------------------------------------------------------------- |
299 //--------------------------------------------------------------- |
254 void ConversationsEnginePrivate::ConversationList( |
300 void ConversationsEnginePrivate::ConversationList( |
255 RPointerArray<CCsClientConversation>& aClientConversationList) |
301 RPointerArray<CCsClientConversation>& aClientConversationList) |
265 //--------------------------------------------------------------- |
311 //--------------------------------------------------------------- |
266 void ConversationsEnginePrivate::Conversations( |
312 void ConversationsEnginePrivate::Conversations( |
267 RPointerArray<CCsConversationEntry>& aConversationEntryList) |
313 RPointerArray<CCsConversationEntry>& aConversationEntryList) |
268 { |
314 { |
269 int error; |
315 int error; |
270 if(mClientConv) |
316 if (mClientConv) |
271 { |
317 { |
|
318 QCRITICAL_WRITE("ConversationsEnginePrivate::Conversations start."); |
|
319 |
272 TRAP(error,mConvChangeHandler->ConversationsL(aConversationEntryList)); |
320 TRAP(error,mConvChangeHandler->ConversationsL(aConversationEntryList)); |
273 } |
321 |
|
322 QCRITICAL_WRITE("ConversationsEnginePrivate::Conversations end."); |
|
323 } |
274 } |
324 } |
275 |
325 |
276 |
326 |
277 //--------------------------------------------------------------- |
327 //--------------------------------------------------------------- |
278 // ConversationsEngine::fetchMoreConversations |
328 // ConversationsEngine::fetchMoreConversations |
279 // @see header |
329 // @see header |
280 //--------------------------------------------------------------- |
330 //--------------------------------------------------------------- |
281 void ConversationsEnginePrivate::fetchMoreConversations() |
331 void ConversationsEnginePrivate::fetchMoreConversations() |
282 { |
332 { |
283 if(mClientConv) |
333 if (mClientConv) |
284 { |
334 { |
285 mConvChangeHandler->restartHandleConversations(); |
335 mConvChangeHandler->restartHandleConversations(); |
286 } |
336 } |
287 } |
337 } |
288 |
338 |
289 //--------------------------------------------------------------- |
339 //--------------------------------------------------------------- |
290 // ConversationsEnginePrivate::resendMessage() |
340 // ConversationsEnginePrivate::resendMessage() |