59 // This is for handling GetConversation results asynchronusly |
59 // This is for handling GetConversation results asynchronusly |
60 // from the server. |
60 // from the server. |
61 // --------------------------------------------------------------------------- |
61 // --------------------------------------------------------------------------- |
62 // |
62 // |
63 void ConversationsChangeHandler::ConversationsL(RPointerArray< |
63 void ConversationsChangeHandler::ConversationsL(RPointerArray< |
64 CCsConversationEntry>& aConversationEntryList) |
64 CCsConversationEntry>& aConversationEntryList, TInt& aTotalCount) |
65 { |
65 { |
66 mConversationEntryList.ResetAndDestroy(); |
66 |
|
67 mTotalCount = aTotalCount; |
67 |
68 |
68 for (TInt i = 0; i < aConversationEntryList.Count(); ++i) |
69 for (TInt i = 0; i < aConversationEntryList.Count(); ++i) |
69 { |
70 { |
70 CCsConversationEntry *entry = aConversationEntryList[i]->CloneL(); |
71 CCsConversationEntry *entry = aConversationEntryList[i]->CloneL(); |
71 mConversationEntryList.AppendL(entry); |
72 mConversationEntryList.AppendL(entry); |
72 } |
73 } |
73 if (aConversationEntryList.Count() > 0) |
74 if (aConversationEntryList.Count() > 0) |
74 { |
75 { |
75 mFirstWindowCached = EFalse; |
|
76 mCurrentIndex = 0; |
|
77 mCurrentState = EInitialCache; |
76 mCurrentState = EInitialCache; |
78 IssueRequest(); |
77 IssueRequest(); |
79 } |
78 } |
80 else |
79 else |
81 { |
80 { |
82 //This is done for safety |
81 //This is done for safety |
83 mConvEnginePrivate->registerForConversationUpdatesL(); |
82 mConvEnginePrivate->registerForConversationUpdatesL(); |
84 mCurrentState = EListenToEvents; |
83 mCurrentState = EListenToEvents; |
85 } |
84 } |
86 } |
85 } |
|
86 // --------------------------------------------------------------------------- |
|
87 // This is for resetting the values before initiating a request |
|
88 // for fetching entries for a new conversation |
|
89 // --------------------------------------------------------------------------- |
|
90 // |
|
91 void ConversationsChangeHandler::ResetValuesForNewConversation() |
|
92 { |
|
93 mConvEnginePrivate->registerForConversationUpdatesL(); |
|
94 mCurrentIndex = 0; |
|
95 mFirstWindowCached = EFalse; |
|
96 mConversationEntryList.ResetAndDestroy(); |
|
97 |
|
98 |
|
99 } |
87 |
100 |
88 // --------------------------------------------------------------------------- |
101 // --------------------------------------------------------------------------- |
89 // Handling addition of new conversation entry from the server |
102 // Handling addition of new conversation entry from the server |
90 // --------------------------------------------------------------------------- |
103 // --------------------------------------------------------------------------- |
91 // |
104 // |
200 ConversationsEngine::instance()->emitConversationModelPopulated(); |
216 ConversationsEngine::instance()->emitConversationModelPopulated(); |
201 mFirstWindowCached = ETrue; |
217 mFirstWindowCached = ETrue; |
202 return; |
218 return; |
203 } |
219 } |
204 IssueRequest(); |
220 IssueRequest(); |
|
221 return; |
|
222 } |
|
223 //if more entries have to be fetched , issue a request, |
|
224 // else listen for events. |
|
225 if(mCurrentIndex < mTotalCount ) |
|
226 { |
|
227 //fetch more |
|
228 mCurrentState = EFetchMoreConversations; |
|
229 IssueRequest(); |
205 } |
230 } |
206 else |
231 else |
207 { |
232 { |
208 if (!mFirstWindowCached) |
233 if (!mFirstWindowCached) |
209 { |
234 { |
210 ConversationsEngine::instance()->emitConversationModelPopulated(); |
235 ConversationsEngine::instance()->emitConversationModelPopulated(); |
211 mFirstWindowCached = ETrue; |
236 mFirstWindowCached = ETrue; |
212 } |
237 } |
213 mConversationEntryList.ResetAndDestroy(); |
238 mConversationEntryList.ResetAndDestroy(); |
214 mConvEnginePrivate->registerForConversationUpdatesL(); |
|
215 mCurrentState = EListenToEvents; |
239 mCurrentState = EListenToEvents; |
216 } |
240 } |
217 } |
241 } |
218 |
242 |
219 // --------------------------------------------------------------------------- |
243 // --------------------------------------------------------------------------- |
|
244 // Fetches remaining conversations from the server |
|
245 // --------------------------------------------------------------------------- |
|
246 // |
|
247 void ConversationsChangeHandler::FetchRemainingConversations(TInt aTotalCount) |
|
248 { |
|
249 mConvEnginePrivate->fetchRemainingConversations(aTotalCount); |
|
250 |
|
251 } |
|
252 // --------------------------------------------------------------------------- |
220 // Starts fetching remaining conversations |
253 // Starts fetching remaining conversations |
221 // --------------------------------------------------------------------------- |
254 // --------------------------------------------------------------------------- |
222 // |
255 // |
223 void ConversationsChangeHandler::restartHandleConversations() |
256 void ConversationsChangeHandler::restartHandleConversations() |
224 { |
257 { |