|
1 /* |
|
2 * Copyright (c) 2006 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: Implementation class for MCAMainViewArrayPC, to decide how to fill the |
|
15 * single view array decorator |
|
16 * |
|
17 */ |
|
18 |
|
19 |
|
20 |
|
21 #ifndef CCAMAINVIEWARRAYPC_H |
|
22 #define CCAMAINVIEWARRAYPC_H |
|
23 |
|
24 #include <e32base.h> |
|
25 |
|
26 |
|
27 //Forward Declaration |
|
28 class MCAContactListModel; |
|
29 class MCAArrayItemPC; |
|
30 class CCAEngine; |
|
31 class MCAInvite; |
|
32 class MCAInvitation; |
|
33 class MCAServerContactsArrayPC; |
|
34 class MCAStoredGroup; |
|
35 class CCAGroupListArrayPC; |
|
36 class MCASingleListViewCB; |
|
37 class MCAStoredGroups; |
|
38 |
|
39 #include "MCAMainViewObserverManagerPC.h" |
|
40 #include "MCAMainViewObserverPC.h" |
|
41 #include "MCAStoredContactsObserver.h" |
|
42 #include "MCAMainViewArrayPC.h" |
|
43 #include "MCAWatcherObserver.h" |
|
44 #include "MCAStoredContacts.h" |
|
45 #include "MCAChatInterface.h" |
|
46 #include "ChatDefinitions.h" |
|
47 #include "MCASettingsObserver.h" |
|
48 #include "MCAInviteObserver.h" |
|
49 #include "MCASettingsPC.h" |
|
50 #include "MCAChatObserver.h" |
|
51 #include "MWVSettingsObserverng.h" |
|
52 #include "MCAStoredGroupsObserver.h" |
|
53 #include "MCASyncObserverPC.h" |
|
54 |
|
55 #include <MIMPSSAPObserver.h> |
|
56 #include <CIMPSSAPSettingsStore.h> |
|
57 #include <cimpspresenceconnectionuing.h> |
|
58 |
|
59 #include "MCAListInitObserver.h" |
|
60 |
|
61 class CCAMainViewArrayPC: public CBase, |
|
62 public MCAMainViewArrayPC, // this class own interface. |
|
63 public MCASettingsObserver, // events from engine. |
|
64 public MCAStoredGroupsObserver, // events from engine. |
|
65 public MCAMainViewObserverManagerPC, |
|
66 public MCAWatcherObserver, |
|
67 public MCAInviteObserver, |
|
68 public MCAChatObserver, |
|
69 |
|
70 // This callback is required when ever the server is added or deleted |
|
71 // we get a callback and update the singlelist |
|
72 public MIMPSSAPObserver, |
|
73 public MCAListInitObserver, |
|
74 public MCAStoredContactsObserver |
|
75 |
|
76 { |
|
77 public: |
|
78 struct TArrayPairs // Struct to hold identification and buffer |
|
79 { |
|
80 TBuf<KMaxWVIDLength> iIdentification; |
|
81 MCAMessagesReadInterface* iReadInterface; |
|
82 }; |
|
83 |
|
84 struct TInvitationArray // Struct to hold identification and buffer |
|
85 { |
|
86 TDesC* iUserID; |
|
87 TDesC* iMessage; |
|
88 }; |
|
89 public: //Constructor and Destructors |
|
90 /** |
|
91 * construction |
|
92 */ |
|
93 void ConstructL(); |
|
94 /** |
|
95 * construction |
|
96 * @param aContactListModel : a reference to the contact list model object at the chat engine |
|
97 */ |
|
98 static CCAMainViewArrayPC* NewL( CCAEngine& aEngine, |
|
99 MCAContactListModel& aContactListModel, |
|
100 MCAChatInterface& aChatInterface ); |
|
101 |
|
102 private: |
|
103 /** |
|
104 * default constructor |
|
105 * @param aContactListModel : a reference to the contact |
|
106 * list model object at the chat engine |
|
107 */ |
|
108 CCAMainViewArrayPC( CCAEngine& aEngine, |
|
109 MCAContactListModel& aContactListModel, |
|
110 MCAChatInterface& aChatInterface ); |
|
111 |
|
112 public: |
|
113 /** |
|
114 * virtual destructor |
|
115 */ |
|
116 virtual ~CCAMainViewArrayPC(); |
|
117 |
|
118 |
|
119 public: // From MCAMainViewArrayPC |
|
120 |
|
121 /** |
|
122 * Gets the details of the given index |
|
123 * like aItemId, aListId,aItemType. |
|
124 * @return the structure filled with tha above details. |
|
125 */ |
|
126 TCAItemDetails GetArrayItemIdDetails( TInt aIndex ); |
|
127 |
|
128 /** |
|
129 * Gets the Index, given item details |
|
130 * like aItemId, aListId,aItemType. |
|
131 * @return the index |
|
132 */ |
|
133 TInt GetArrayItemIdIndexL( const TCAItemDetails& aItemDetails ); |
|
134 /** |
|
135 * @return returns ETrue if any contact is found in contactlists |
|
136 * else returns EFalse if no contact is found |
|
137 */ |
|
138 TBool IsAnyContactFound(); |
|
139 |
|
140 /** |
|
141 * Populate the group array iGroupArray with groups |
|
142 */ |
|
143 void PopulateGroupsListL(); |
|
144 |
|
145 /** |
|
146 * SetSkipStorageEvents: Called by UI component to set flag for skipping storage events |
|
147 * @param aSkip : A flag to check whether to skip strage events or not |
|
148 * @return void |
|
149 */ |
|
150 virtual void SetSkipStorageEvents( TBool aSkip ); |
|
151 |
|
152 /** |
|
153 * GetSkipStorageEvents: Called by UI component to get the flag for skipping storage events |
|
154 * @return boolean |
|
155 */ |
|
156 virtual TBool GetSkipStorageEvents(); |
|
157 |
|
158 /** |
|
159 * Count: Called by UI components to get total count of array |
|
160 * @return integer: Count of array |
|
161 */ |
|
162 virtual TInt Count() const; |
|
163 |
|
164 /** |
|
165 * GetType: Function to get the type of list item |
|
166 * @param aIndex: index of the list item |
|
167 * @return TEnumsPC::TItem: type of the list item as EContactItem, EOwnStatusItem etc |
|
168 */ |
|
169 virtual TEnumsPC::TItem GetType( TInt aIndex ) const; |
|
170 |
|
171 /** |
|
172 * IsCollapsed: To find if the list box item is collapsed |
|
173 * @param aIndex: index of the list item |
|
174 * @return bool: True if the list item is collapsed else false. |
|
175 */ |
|
176 virtual TBool IsCollapsed( TInt aIndex ) const; |
|
177 |
|
178 /** |
|
179 * IsMsgPending: To find if there are any pending messages to |
|
180 * decide the icons for display |
|
181 * @param aIndex: index of the list item |
|
182 * @return bool: True if there are pending messages else false. |
|
183 */ |
|
184 virtual TBool IsMsgPending( TInt aIndex ) ; |
|
185 |
|
186 /** |
|
187 * IsBlocked: To find if the list item is a blocked contact |
|
188 * @param aIndex: index of the list item |
|
189 * @return bool: True if the list item is a blocked contact else false |
|
190 */ |
|
191 virtual TBool IsBlocked( TInt aIndex ) const; |
|
192 |
|
193 /** |
|
194 * ForceExpanded: To expand or collapse all the list items |
|
195 * @param aAllExpanded: True if all items have to be expanded else false |
|
196 * @return bool: True if there are pending messages else false. |
|
197 */ |
|
198 virtual void ForceExpanded( TBool aAllExpanded ); |
|
199 |
|
200 /** |
|
201 * IsForceExpanded: To find if all the list items have been force expanded |
|
202 * @return bool: True if all the list items are force expanded else false |
|
203 */ |
|
204 virtual TBool IsForceExpanded() const; |
|
205 |
|
206 /** |
|
207 * GetOnlineStatus: To get the online status of the list item as Online, Away, Busy etc |
|
208 * @param aIndex: Index of the list item |
|
209 * @return TEnumsPC::TOnlineStatus |
|
210 */ |
|
211 virtual TEnumsPC::TOnlineStatus GetOnlineStatus( TInt aIndex ); |
|
212 |
|
213 /** |
|
214 * SetCollapsed: To set the list item to a collapsed or expanded state |
|
215 * @param aStatus: The collapsed or expanded state to be set for the list item |
|
216 * @param aIndex: Index of the list item whose state has to be set |
|
217 * @return void |
|
218 */ |
|
219 virtual void SetCollapsed( TBool aStatus, TInt aIndex ); |
|
220 |
|
221 /** |
|
222 * SetSelected: |
|
223 * @param aSelected: selected or not |
|
224 * @return aIndex ,given index |
|
225 */ |
|
226 virtual void SetSelected( TBool aSelected, TInt aIndex ); |
|
227 |
|
228 /** |
|
229 * GetSelectedL: get the selcetd |
|
230 * @param aSelectedContact: selected conatct |
|
231 * @param aSelectedIdentifications |
|
232 * @return aFilter |
|
233 */ |
|
234 virtual void GetSelectedL( CDesCArray& aSelectedContact, |
|
235 CDesCArray* aSelectedIdentifications, |
|
236 TEnumsPC::TFilterType aFilter ); |
|
237 |
|
238 /** |
|
239 * Sets the selectionmode |
|
240 * @param aSelectionMode to be set |
|
241 * @param aSelectedListIndex - selected contactlist index - used for |
|
242 * group creation using existing contact list to get all the contacts in that |
|
243 * contact list |
|
244 */ |
|
245 |
|
246 void SetContactSelectionL( TEnumsPC::TListSelectionType aSelectionMode, |
|
247 TInt aSelectedListIndex ); |
|
248 |
|
249 /** |
|
250 * Resets the selectionmode |
|
251 */ |
|
252 void ResetContactSelectionL(); |
|
253 |
|
254 /** |
|
255 * Returns index for given invitation |
|
256 * @param aIndex |
|
257 * @return index of invitation |
|
258 */ |
|
259 TInt GetItemEngineIndex( TInt aIndex ) const; |
|
260 |
|
261 /** |
|
262 * Sets the focus to the owndata on logout. |
|
263 */ |
|
264 virtual void SetCurrentItemIndexL( TBool aFreshLogin = EFalse ); |
|
265 |
|
266 /** |
|
267 * Find any contact which id is aContactId |
|
268 * @param aContactId Contactid to recognize contact. |
|
269 * @return ETrue if contact found else EFalse |
|
270 */ |
|
271 TBool FindAnyContactL( const TDesC& aContactId ); |
|
272 |
|
273 |
|
274 /** |
|
275 * Appends the received invitation to the top of the array |
|
276 * @param aInvitation |
|
277 */ |
|
278 void AddInvitation( const MCAInvitation* aInvitation ); |
|
279 |
|
280 /** |
|
281 * Returns index of invitation for given wvid and |
|
282 * Deletes item from array. |
|
283 * @since 3.2 |
|
284 * @param Index of invitation |
|
285 * @return index at which the invite has been deleted. |
|
286 */ |
|
287 virtual TInt FindInvitationAndDelete( const TDesC& aInviteID /*TInt aIndex*/ ); |
|
288 |
|
289 |
|
290 virtual TInt FindInvitationAndDelete( TInt aIndex ); |
|
291 |
|
292 |
|
293 |
|
294 /** |
|
295 * SetMsgPending: To set the pending messages for a list item |
|
296 * @param aPendingMsgs: The no. of pending messages to be set for the list item |
|
297 * @param aIndex: Index of the list item |
|
298 * @return void |
|
299 */ |
|
300 virtual void SetMsgPending( TInt aPendingMsgs, TInt aIndex ); |
|
301 |
|
302 /** |
|
303 * SetBlocked: To set the blocked status of a list item of type contact |
|
304 * @param aStatus: The blocked status to be set for the list item |
|
305 * @param aIndex: Index of the list item whose status has to be set |
|
306 * @return void |
|
307 */ |
|
308 virtual void SetBlocked( TBool aStatus, TInt aIndex ); |
|
309 |
|
310 /** |
|
311 * SetOnlineStatus: To set the online status of a list item |
|
312 * @param aStatus: The online status to be set for the list item |
|
313 * @param aIndex: Index of the list item whose status has to be set |
|
314 * @return void |
|
315 */ |
|
316 virtual void SetOnlineStatus( TEnumsPC::TOnlineStatus aStatus, TInt aIndex ); |
|
317 |
|
318 /** |
|
319 * GetItemNameText: To get item name of each list item |
|
320 * @param aIndex: Index of the list item whose name is to be returned |
|
321 * @return TPtrC: Name of the list item |
|
322 */ |
|
323 virtual TPtrC GetItemNameText( TInt aIndex ); |
|
324 |
|
325 /** |
|
326 * GetFormattedItemNameTextL: To set/rename item name of each list item |
|
327 * @param aIndex: Index of the list item whose name is to be changed/set |
|
328 * @return TPtr: Error code to check if the name has been set |
|
329 */ |
|
330 virtual TPtr GetFormattedItemNameTextL( TInt aIndex ); |
|
331 |
|
332 /** |
|
333 * ClearArray: clear everything in the array |
|
334 * @return void |
|
335 */ |
|
336 virtual void ClearArray( TBool aClearOpenChatsArray ); |
|
337 |
|
338 |
|
339 /** ResetArray: reset the array,clear and fill with the new data in the array |
|
340 * @return void |
|
341 */ |
|
342 virtual void ResetArray( TBool aClearOpenChatsArray ); |
|
343 |
|
344 /** |
|
345 * SetDefaultFilter: To set the default filters of each item |
|
346 * @param aMyFilter: TEnumsPC::TFilterType to be set |
|
347 * @return void |
|
348 */ |
|
349 virtual void SetDefaultFilter( TEnumsPC::TFilterType aMyFilter ); |
|
350 |
|
351 /** |
|
352 * ResetDefaultFilter: To reset the default filters of each item |
|
353 * @return void |
|
354 */ |
|
355 virtual void ResetDefaultFilter(); |
|
356 |
|
357 /** |
|
358 * GetDefaultFilter: To get the default filters of list item |
|
359 * @return TEnumsPC::TFilterType: type of filter |
|
360 */ |
|
361 virtual TEnumsPC::TFilterType GetDefaultFilter() const; |
|
362 |
|
363 /** |
|
364 * Should the model show "All" item in beginning |
|
365 * of each contact list. |
|
366 * @param aShow If ETrue, first item in every contact list is "All" |
|
367 */ |
|
368 void ShowAll( TBool aShow ); |
|
369 |
|
370 |
|
371 /** |
|
372 * ClientType: To get the client type of list item at given index |
|
373 * @return TEnumsPC::TClientType: type of client |
|
374 */ |
|
375 virtual TEnumsPC::TClientType ClientType( TInt aIndex ); |
|
376 |
|
377 /** |
|
378 * Selected: To know if the list item at given index is selected currently |
|
379 * @param aIndex: index of list item |
|
380 * @return bool: true if the list item at given index is selected currently else false |
|
381 */ |
|
382 virtual TBool Selected( TInt aIndex ); |
|
383 |
|
384 /** |
|
385 * IsWatched: To get the status on whether the list item at given index is |
|
386 * being watched for notifications on that contacts online status changes |
|
387 * @param aIndex: index of list item |
|
388 * @return bool: true if the contact is being watched else false |
|
389 */ |
|
390 virtual TBool IsWatched( TInt aIndex ); |
|
391 |
|
392 /** |
|
393 * AddWatcher: To add watcher to presence |
|
394 */ |
|
395 virtual void AddWatcherL( TPtrC contact/*wvid*/ ); |
|
396 |
|
397 |
|
398 /** |
|
399 * RemoveWatcher: To remove watcher from presence |
|
400 * |
|
401 */ |
|
402 virtual void RemoveWatcherL( TPtrC contact/*wvid*/ ); |
|
403 |
|
404 /** |
|
405 * Refreshes friends-storage presence data. |
|
406 */ |
|
407 virtual void RefreshFriendsL(); |
|
408 |
|
409 /** |
|
410 * Clears all selected-flags |
|
411 */ |
|
412 virtual void ClearSelectedL( ); |
|
413 |
|
414 /** |
|
415 * Places all friends to aUsers array |
|
416 */ |
|
417 |
|
418 /* Places all friends (from aUserList) that are online to aOnlineList |
|
419 * and users that are offline to aOfflineList. |
|
420 * @param aUserList List of users, whose presence data is to be fetched. |
|
421 * @param aOnlineList List of users, that are online, can be NULL. |
|
422 * @param aOfflineList List of users, that are offline, can be NULL. |
|
423 * @param aUpdateStorage If ETrue, contact storage flags are updated |
|
424 */ |
|
425 virtual void GetOnlineUsersL( |
|
426 const CDesCArray *aUsers, |
|
427 CDesCArray* aOnlineList, |
|
428 CDesCArray* aOfflineList, |
|
429 TBool aUpdateStorage = EFalse ) ; |
|
430 |
|
431 /** |
|
432 * Synchronised: To get the synchronised status for the list item |
|
433 * @param aIndex: index of list item |
|
434 * @return TEnumsPC::TSyncStatus: the synchronization status of the list item |
|
435 */ |
|
436 virtual TEnumsPC::TSyncStatus Synchronised( TInt aIndex ); |
|
437 |
|
438 /** |
|
439 * IsAllSynchronised: To get the synchronised status of all the list items |
|
440 * @return TEnumsPC::TSyncStatus: the synchronization status of all the items |
|
441 */ |
|
442 virtual TEnumsPC::TSyncStatus IsAllSynchronised(); |
|
443 |
|
444 /** |
|
445 * Changes client own presence status, and sets status message |
|
446 * @param aStatus Presence status -online,oflline etc |
|
447 * @param aStatusMessage Presence status message |
|
448 * @return Error code. |
|
449 */ |
|
450 TInt ChangeStatusL( TEnumsPC::TOnlineStatus aStatus, |
|
451 const TDesC& aStatusMessage ) ; |
|
452 |
|
453 /** |
|
454 * Changes presence status message |
|
455 * @param aStatusMessage Presence status message |
|
456 * @return Operation error. |
|
457 */ |
|
458 TInt ChangeStatusMessageL( const TDesC& aStatusMessage ) ; |
|
459 |
|
460 /** |
|
461 * StatusL: To get the own status like Online, Away, Busy etc |
|
462 * @return TEnumsPC::TOnlineStatus |
|
463 */ |
|
464 TEnumsPC::TOnlineStatus StatusL(); |
|
465 |
|
466 /** |
|
467 * GetOwnStatusConverter: To get TEnumsPC:TOnlineStatus type of enum from |
|
468 * the presence side MCAPresence::TPresenceStatus enums for own status |
|
469 * @param aPresenceStatus: presence side MCAPresence::TPresenceStatus enums |
|
470 * @return TEnumsPC::TOnlineStatus |
|
471 */ |
|
472 TEnumsPC::TOnlineStatus GetOwnStatusConverter( |
|
473 MCAPresence::TPresenceStatus aPresenceStatus ); |
|
474 /** |
|
475 * Fills aOnlineList with the user id's from friends-list that are |
|
476 * online. |
|
477 * @param aOnlineList List that will be populated with online friends. |
|
478 * @param aFetchFromNetwork Fetch presence information from network |
|
479 */ |
|
480 void GetOnlineContactsL( CDesCArray& aOnlineList, |
|
481 TBool aFetchFromNetwork = EFalse ); |
|
482 |
|
483 |
|
484 |
|
485 /** |
|
486 * RegisterObserverL: To add the UI component as an observer to listen to the |
|
487 * event from the MainViewArrayPC |
|
488 * @see MCAListInitObserver |
|
489 * @return void |
|
490 */ |
|
491 void RegisterObserverL( MCAListInitObserver* aObserver ) ; |
|
492 |
|
493 /** |
|
494 * UnRegisterObserverL: To remove form the listener |
|
495 * @see MCAListInitObserver |
|
496 * @return void |
|
497 */ |
|
498 void UnRegisterObserverL() ; |
|
499 |
|
500 /** |
|
501 * AIsListInitializationCompleteL: |
|
502 * @return Bool value |
|
503 */ |
|
504 TBool IsListInitializationCompletedL() ; |
|
505 |
|
506 |
|
507 |
|
508 /** |
|
509 * Refresh the conversation item in openchats to |
|
510 * reflect the changes upon addation/chang/deletion of a contact |
|
511 * @param aContactId: userId whose nickname is changed. |
|
512 */ |
|
513 void RefreshConversationItemText( const TDesC& aContactId ); |
|
514 |
|
515 /** |
|
516 * Refresh the Invitation item in openchats to |
|
517 * reflect the changes upon addation/chang/deletion of a contact |
|
518 * @param aContactId: userId whose nickname is changed. |
|
519 */ |
|
520 void RefreshInvitationItemTextL( const TDesC& aContactId ); |
|
521 |
|
522 public: // From MCAMainViewObserverManagerPC |
|
523 |
|
524 /** |
|
525 * AddObserverL: To add the UI component as an observer to listen to the |
|
526 * event from the MainViewArrayPC |
|
527 * @see MCAMainViewObserverManagerPC |
|
528 * @return void |
|
529 */ |
|
530 void AddObserverL( MCAMainViewObserverPC* aObserver ); |
|
531 |
|
532 /** |
|
533 * RemoveObserver: To remove the UI component as an observer to the |
|
534 * events from the MainViewArrayPC |
|
535 * @see MCAMainViewObserverManagerPC |
|
536 * @return void |
|
537 */ |
|
538 void RemoveObserver( MCAMainViewObserverPC* aObserver ); |
|
539 |
|
540 /** |
|
541 * AddObserverL: To add the UI component as an observer to listen to the |
|
542 * event from the MainViewArrayPC |
|
543 * @see MCAMainViewObserverManagerPC |
|
544 * @return void |
|
545 */ |
|
546 void AddObserver( MCASyncObserverPC* aObserver ); |
|
547 |
|
548 /** |
|
549 * RemoveObserver: To remove the UI component as an observer to the |
|
550 * events from the MainViewArrayPC |
|
551 * @see MCAMainViewObserverManagerPC |
|
552 * @return void |
|
553 */ |
|
554 void RemoveObserver( ); |
|
555 |
|
556 public: //MCAChatObserver |
|
557 /** |
|
558 * Handle events. |
|
559 * @param aEvent Event to handle. |
|
560 * @param aMessage, Event occurred because of message |
|
561 */ |
|
562 virtual void HandleChatEvent( TChatEventType aEvent, |
|
563 MCAMessage* aMessage = NULL ); |
|
564 |
|
565 public: //MCAsyncObserverPC |
|
566 |
|
567 virtual void NotifySyncCompleted(); |
|
568 public: //From MCAStoredContactsObserver |
|
569 |
|
570 /** |
|
571 * HandleContactDelete: To handle the contact delete event from the MCAStoredContactsObserver |
|
572 * @see MCAStoredContactsObserver |
|
573 * @param aContactId: contact whihc has been deleted |
|
574 * @return void |
|
575 */ |
|
576 virtual void HandleContactDelete( const TDesC& aContactId ); |
|
577 |
|
578 /** |
|
579 * HandleAddition: To handle the contact addition event from the MCAStoredContactsObserver |
|
580 * @see MCAStoredContactsObserver |
|
581 * @param aList: reference to the list to which the contact has been added |
|
582 * @param aContact: reference to the contact which has been added |
|
583 * @return void |
|
584 */ |
|
585 virtual void HandleAddition( MCAContactList& aList, MCAStoredContact& aContact ); |
|
586 |
|
587 /** |
|
588 * HandleChange: To handle the Chnage event from the MCAStoredContactsObserver |
|
589 * @see MCAStoredContactsObserver |
|
590 * @param aList: reference to the list at which a change has occured |
|
591 * @param aContact: reference to the contact at which a change has occured |
|
592 * @param aEventType: TStorageManagerGlobals::TCAObserverEventType : |
|
593 * type of change event that has occured |
|
594 * @return void |
|
595 */ |
|
596 virtual void HandleChange( MCAContactList* aList, |
|
597 MCAStoredContact* aContact, |
|
598 TStorageManagerGlobals::TCAObserverEventType aEventType, |
|
599 TBool aUserIdChanged ); |
|
600 |
|
601 |
|
602 public: //From MCASettingsObserver |
|
603 |
|
604 /** |
|
605 * HandleSettingsChangeL: To handle the change events in settings |
|
606 * @see MCASettingsObserver |
|
607 * @param aChangedSettingEnum: enumeration of the type of settings change |
|
608 * @return void |
|
609 */ |
|
610 virtual void HandleSettingsChangeL( TInt aChangedSettingEnum ); |
|
611 |
|
612 public: //From MCAWatcherObserver |
|
613 |
|
614 /** |
|
615 * HandleWatcherEvent: To handle the watch events for a contact |
|
616 * @see MCAWatcherObserver |
|
617 * @param aContact: reference to the contact at which a watch event has occured |
|
618 */ |
|
619 void HandleWatcherEvent( const MCAStoredContact* aContact ); |
|
620 |
|
621 public: // From MCAInviteObserver |
|
622 |
|
623 /** |
|
624 * @see MCAInviteObserver |
|
625 */ |
|
626 void HandleInvitationEventL( TInviteEventType aEvent, |
|
627 const MCAInvitation* aInvitation ); |
|
628 |
|
629 /** |
|
630 * @see MCAInviteObserver |
|
631 */ |
|
632 void HandleInvitationResponse( TBool aAcceptance, |
|
633 const TDesC& aUserId, |
|
634 const TDesC& aGroupName, |
|
635 const TDesC& aResponse ); |
|
636 public://for CallBacks. |
|
637 |
|
638 void RegisterCallBack( MCASingleListViewCB* aSingleViewCB ); |
|
639 |
|
640 void UnRegisterCallBack( ); |
|
641 public: |
|
642 |
|
643 /* |
|
644 * gets the alias of the specified contact at aIndex |
|
645 * @param aIndex: index of contact |
|
646 * @return the alias |
|
647 */ |
|
648 virtual const TDesC& GetSelectedContactAlias( TInt aIndex ); |
|
649 |
|
650 /* |
|
651 * gets the nickname of the specified contact at aIndex |
|
652 * @param aIndex: index of contact |
|
653 * @return the nickname |
|
654 */ |
|
655 virtual const TDesC& GetSelectedContactNickname( TInt aIndex ); |
|
656 |
|
657 /* |
|
658 * gets the user id of the specified contact at aIndex |
|
659 * @param aIndex: index of contact |
|
660 * @return the user id |
|
661 */ |
|
662 virtual const TDesC& GetSelectedContactUserId( TInt aIndex ); |
|
663 |
|
664 /* |
|
665 * gets the identification of the specified contact at aIndex |
|
666 * @param aIndex: index of contact |
|
667 * @return the identification |
|
668 */ |
|
669 virtual const TDesC& GetSelectedContactIdentification( TInt aIndex ); |
|
670 |
|
671 |
|
672 /* |
|
673 * Gets the MCAStoredContact type for the specified contact at aIndex |
|
674 * This method is for use by the CCAContactEditor class and is not exposed |
|
675 * via the MCAMainViewArrayPC interface |
|
676 * @param aIndex: index of contact |
|
677 * @return the alias |
|
678 */ |
|
679 MCAStoredContact* GetContactForContactEditor( TInt aIndex ); |
|
680 |
|
681 // See the comment @MCAMainViewArrayPC |
|
682 |
|
683 virtual void MapContactListPositions( RArray<TInt>& aPositionArray ); |
|
684 |
|
685 /* |
|
686 * gets the displayname of the specified List at aIndex |
|
687 * @param aIndex: index of list |
|
688 * @return the displayname |
|
689 */ |
|
690 |
|
691 virtual TPtrC DisplayName( TInt aIndex ); |
|
692 |
|
693 /** |
|
694 * SetDisplayName: To set/rename item name of each list item |
|
695 * @param aIndex: Index of the list item whose name is to be changed/set |
|
696 * @param aItemName: name to be set for the list item at specified index |
|
697 * @return TInt: Error code to check if the name has been set |
|
698 */ |
|
699 virtual TInt SetDisplayNameL( TInt aIndex, const TPtrC aItemName ); |
|
700 |
|
701 /* |
|
702 * gets the FilteredCount |
|
703 * @param aFilter: type of filetr |
|
704 * @param aIndex: index of list |
|
705 * @return the count |
|
706 */ |
|
707 virtual TInt GetFilteredCount( TEnumsPC::TFilterType aFilter, TInt aIndex ); |
|
708 /** |
|
709 * Set a separate filter for the single list view array items |
|
710 * @param aFilter: filter to be set |
|
711 */ |
|
712 virtual void SetSingleListArrayFilter( TEnumsPC::TFilterType aFilter ); |
|
713 |
|
714 /** |
|
715 * Get a separate filter for the single list view array items |
|
716 * @return filter |
|
717 */ |
|
718 virtual TEnumsPC::TFilterType GetSingleListArrayFilter( ); |
|
719 |
|
720 |
|
721 public: |
|
722 /** |
|
723 * Find a contact from the store by wv User ID |
|
724 * @param aContactListId List which contains contact. |
|
725 * @param aId the User ID of the contact to find |
|
726 * @return The contact |
|
727 */ |
|
728 virtual TInt FindContactL( const TDesC& aContactListId, |
|
729 const TDesC& aId ); |
|
730 |
|
731 /** |
|
732 * Find a contact list from the store by wv User ID |
|
733 * @param aContactListId List which contains contact list id. |
|
734 * @return The contact list index |
|
735 */ |
|
736 virtual TInt FindContactListIndexL( const TDesC& aListId ); |
|
737 /* gets the list id of the specified list at aIndex |
|
738 * @param aIndex: index of list |
|
739 * @return the list id |
|
740 */ |
|
741 virtual const TDesC& GetSelectedListId( TInt aIndex ); |
|
742 |
|
743 /** |
|
744 * Checks status of aContact and shows needed notes accordign to variation. |
|
745 * @param aIndex: index of contact to be checked. |
|
746 * @return Integer value, negative if offline status is not ignored or |
|
747 * allowed by variation, positive if contact is online |
|
748 * or user decides to ignore offline status. See possible |
|
749 * return values from IMUtils::TIgnoreOfflineStatus enum. |
|
750 */ |
|
751 virtual TInt IgnoreOfflineStatusL( TInt aIndex ); |
|
752 |
|
753 /** |
|
754 * SetMessageReadInterfaceL: Calls the MessageReadInterface() of engine component |
|
755 * to set the read interface |
|
756 * @param aIndex: index of contact for whom the read interface (conversation) has |
|
757 * to be set |
|
758 * @return void |
|
759 */ |
|
760 virtual void SetMessageReadInterfaceL( TInt aIndex ); |
|
761 |
|
762 /** |
|
763 * ChatExistsL: Checks if there is an existing chat for the contact |
|
764 * at index |
|
765 * @param aIndex: index of contact for which the existing |
|
766 * conversation has to be checked |
|
767 * @return bool: If chat exists for contact at aIndex return true |
|
768 * else return false |
|
769 */ |
|
770 virtual TBool ChatExistsL( TInt aIndex ); |
|
771 |
|
772 /** |
|
773 * Get index for list |
|
774 * @param aIndex: index of Contact item to be found. |
|
775 * @param aIgnoreOwnItem. If ETrue own item is not taken into account |
|
776 * when resolving index. |
|
777 * @param aIgnoreEmptyLists If ETrue, empty lists are ignored. |
|
778 * @return Index of list. If list not found returns KErrNotFound |
|
779 */ |
|
780 virtual TInt IndexOfList( TInt aIndex, |
|
781 TBool aIgnoreOwnItem = EFalse, |
|
782 TBool aIgnoreEmptyLists = ETrue ) const; |
|
783 |
|
784 |
|
785 /** |
|
786 * Check if synchronization of contact lists is done |
|
787 * @return ETrue if done |
|
788 */ |
|
789 virtual TBool IsSyncDoneL(); |
|
790 |
|
791 |
|
792 /** |
|
793 * To create a contact list with given name |
|
794 * @param aDisplayName: name of the list to be created |
|
795 * @return KErrNone if list is created else retrun KErrAlreadyExists |
|
796 */ |
|
797 |
|
798 virtual TInt CreateContactListL( const TDesC& aDisplayName , TInt& aIndex ) ; |
|
799 |
|
800 /** |
|
801 * To sort the contact list in alphbetical order |
|
802 * @param alistId: list id of renamed contact list |
|
803 */ |
|
804 virtual TInt SortContactListAfterRenameL( const TDesC& alistId ) ; |
|
805 |
|
806 /** |
|
807 * Find if there is a list with given name already |
|
808 * @param aNamePtr: name of the list to be searched |
|
809 * @return KErrNone if theres no list with the name aNamePtr else return KErrAlreadyExists |
|
810 */ |
|
811 |
|
812 virtual TInt ListAlreadyExistsL( const TPtr aNamePtr ); |
|
813 |
|
814 /** |
|
815 * Check if there are any contact list in the contact lists |
|
816 * @return KErrGeneral if no contact list is available else return KErrNone |
|
817 */ |
|
818 virtual TInt ContactListsExistL(); |
|
819 |
|
820 |
|
821 /** |
|
822 * Find the no. of contact items in the contact list |
|
823 * @param aIndex: the index of contact list |
|
824 * @return TInt: the no. of contact items in the list at aIndex |
|
825 */ |
|
826 virtual TInt CountOfContactsInList( TInt aIndex ); |
|
827 |
|
828 /** |
|
829 * Count of lists. |
|
830 * @return Count of lists. |
|
831 */ |
|
832 virtual TInt ListCountL() const; |
|
833 |
|
834 /** |
|
835 * Delete the contact list |
|
836 * @param aIndex: ID of the list |
|
837 * @return Error code |
|
838 */ |
|
839 virtual TInt DeleteContactListL( TInt aIndex ); |
|
840 /** |
|
841 * Deletes one contact from server side contact list |
|
842 * @param aIndex: Index of list to be updated |
|
843 * @return Error code |
|
844 */ |
|
845 virtual TInt DeleteServerContactL( TInt aIndex ); |
|
846 |
|
847 /** |
|
848 * Get the status text for the contact |
|
849 * @param aIndex: Index of contact item |
|
850 * @return Error code |
|
851 */ |
|
852 virtual const TDesC& StatusText( TInt aIndex ) const; |
|
853 |
|
854 /** |
|
855 * Invoke the fetch contacts method from presence component |
|
856 */ |
|
857 virtual void FetchContactsL(); |
|
858 /** |
|
859 * to convert engine enum value to PC enum values |
|
860 * @param aStatus: value of engine value |
|
861 */ |
|
862 TEnumsPC::TCASettingValues ConvertToEnumsPC( TInt aStatus ); |
|
863 |
|
864 |
|
865 public: |
|
866 |
|
867 const RPointerArray<MCAArrayItemPC>& GetOpenChatsArray() const ; |
|
868 |
|
869 /** |
|
870 * @returns the index of the given item W.R.T singlelistview. |
|
871 */ |
|
872 TInt FindIndexOfOpenChatsItem( TEnumsPC::TItem aItemType, |
|
873 const TDesC& aId ); |
|
874 |
|
875 TInt GetOpenChatsActiveIndex()const; |
|
876 |
|
877 private: |
|
878 /** |
|
879 * FillArray: fill up the complete array |
|
880 * @return void |
|
881 */ |
|
882 void FillArrayL( TBool aFillOpenChatsArray ); |
|
883 |
|
884 |
|
885 /** |
|
886 * FillOwnDataL: fill up fill the owndata item |
|
887 * @return void |
|
888 */ |
|
889 TBool FillOwnDataL(); |
|
890 |
|
891 /** |
|
892 * FillOpenChatsL: then fill the conversations..or open chats.... |
|
893 * @return void |
|
894 */ |
|
895 // |
|
896 void FillOpenChatsL(); |
|
897 |
|
898 /** |
|
899 * FillContactListsL: then fill the contacts lists/contacts..etc.. |
|
900 * @return void |
|
901 */ |
|
902 void FillContactListsL(); |
|
903 |
|
904 void FillSelectedContactListL( ); |
|
905 |
|
906 |
|
907 |
|
908 /** |
|
909 * FillItemL: fill up the individual item in the array |
|
910 * @param aIndex: index of the list item for which the array has to be filled |
|
911 * @return void |
|
912 */ |
|
913 void FillItemL( TInt aIndex ); |
|
914 |
|
915 /** |
|
916 * GetResourceValueL: To get the integer equivalent of resource string |
|
917 * @param aResourceID: id of the resource string |
|
918 * @return TInt: integer equivalent of resource string |
|
919 */ |
|
920 TInt GetResourceValueL( TInt aResourceID ); |
|
921 |
|
922 /** |
|
923 * GetOnlineStatusConverter: To get TEnumsPC:TOnlineStatus type of enum from |
|
924 * the engine /storage side TStorageManagerGlobals::TPresenceStatus enums |
|
925 * @param aEngOnlineStatus: engine /storage side TStorageManagerGlobals::TPresenceStatus enums |
|
926 * @return TInt: TEnumsPC::TOnlineStatus |
|
927 */ |
|
928 TEnumsPC::TOnlineStatus GetOnlineStatusConverter( |
|
929 TStorageManagerGlobals::TPresenceStatus aEngOnlineStatus ); |
|
930 |
|
931 |
|
932 /** |
|
933 * GetTypeConverter: To get TEnumsPC:TItem type of enum from |
|
934 * the engine side MCAContactListModel::TItemType enums |
|
935 * @param aItemType: engine side MCAContactListModel::TItemType enums |
|
936 * @return TInt: EnumsPC::TItem |
|
937 */ |
|
938 TEnumsPC::TItem GetTypeConverter( MCAContactListModel::TItemType aItemType ) const; |
|
939 |
|
940 /** |
|
941 * ToUpdatePresence: To get the information on whether presence has to be updated |
|
942 * by anding the two filters |
|
943 * @parm aFilter1: TEnumsPC::TFilterType |
|
944 * @parm aFilter2: TEnumsPC::TFilterType |
|
945 */ |
|
946 virtual TBool ToUpdatePresence( TEnumsPC::TFilterType aFilter1, |
|
947 TEnumsPC::TFilterType aFilter2 ); |
|
948 |
|
949 /** |
|
950 * To set the filter type for engine |
|
951 */ |
|
952 virtual void SetFilter( TEnumsPC::TFilterType aFilter ); |
|
953 |
|
954 /** |
|
955 * To get the filter type for engine |
|
956 */ |
|
957 virtual TEnumsPC::TFilterType Filter(); |
|
958 |
|
959 /** |
|
960 * To set the group count down flag, for each logout. For the first time login |
|
961 * it is set in the constructor to EFalse. This flag ensures that the |
|
962 * initial deletion of groups from iGroupArray and the subsequent additions |
|
963 * of user created groups are not reflected on the UI |
|
964 */ |
|
965 virtual void ResetGroupCountDownOnLogout(); |
|
966 |
|
967 virtual const TDesC& GetInviteItemID( TInt aIndex ); |
|
968 |
|
969 |
|
970 |
|
971 |
|
972 // This callback is required when ever the server is added or deleted |
|
973 // we get a callback and update the singlelist |
|
974 /** |
|
975 * From MIMPSSAPObserver |
|
976 * @see MIMPSSAPObserver for more information |
|
977 */ |
|
978 void HandleSAPEvent( TSAPEvent aEvent ); |
|
979 public: // From MCAStoredGroupsObserver |
|
980 |
|
981 /** |
|
982 * Called when a group is deleted. |
|
983 * @param aId The ID of the deleted group |
|
984 */ |
|
985 void HandleDelete( const TDesC& aId ); |
|
986 |
|
987 /** |
|
988 * Called when a group is added. |
|
989 * @param aId The ID of the added group |
|
990 */ |
|
991 void HandleAddition( const TDesC& aId ); |
|
992 |
|
993 /** |
|
994 * Called when a group is changed. |
|
995 * @param aId The ID of the changed group |
|
996 */ |
|
997 void HandleChange( const TDesC& aId ); |
|
998 |
|
999 /** |
|
1000 * Called when backup/restore starts/stops. |
|
1001 * There is no distinction between backup/restore (Symbian limitation). |
|
1002 * However, the called party should fetch new list(s) as they |
|
1003 * may have changed if the operation was restore operation. |
|
1004 * @param aEventType Type of backup/restore event |
|
1005 */ |
|
1006 void HandleBackupRestoreEvent( |
|
1007 const TStorageManagerGlobals::TCAObserverEventType aEventType ); |
|
1008 |
|
1009 public: //Added methods for sorting of openchats |
|
1010 |
|
1011 //To Insert a newly arrived Invite on top of openchats list |
|
1012 void InsertInviteItemL( const MCAInvitation* aInvitation ); |
|
1013 void InsertGroupItemL( MCAStoredGroup* aGroup ); |
|
1014 void InsertConversationItemL( const TDesC& aUserId, |
|
1015 const TDesC& aIdentification ); |
|
1016 void MoveGroupItem( MCAStoredGroup* aGroup, TInt aFoundIndex ); |
|
1017 void RemoveConversationItem( const TDesC& aUserId ); |
|
1018 |
|
1019 TBool IsOpenChatsMsgPending( |
|
1020 const TEnumsPC::TItem aType, |
|
1021 const TDesC& aId ); |
|
1022 |
|
1023 public: //from MCAMainViewArrayPC.h |
|
1024 |
|
1025 /** |
|
1026 * See MCAMainViewArrayPC.h |
|
1027 */ |
|
1028 const TDesC& PendingMessageInfo(); |
|
1029 |
|
1030 /** |
|
1031 * See MCAMainViewArrayPC.h |
|
1032 */ |
|
1033 const TDesC& ChatGroupPendingMessageInfo( TDesC& aGroupName ); |
|
1034 |
|
1035 /** |
|
1036 * See MCAMainViewArrayPC.h |
|
1037 */ |
|
1038 TInt GetIndexOfTopPendingMessage(); |
|
1039 |
|
1040 public: // MCAListInitObserver |
|
1041 /** |
|
1042 * Callback HandleListInitChange from presence list manager |
|
1043 * after the list init complete |
|
1044 */ |
|
1045 void HandleListInitChange( TBool aCompleted ); |
|
1046 |
|
1047 |
|
1048 private: |
|
1049 |
|
1050 TStorageManagerGlobals::TFilterType GetFilterConverterUITOEngine( |
|
1051 TEnumsPC::TFilterType aFilter ); |
|
1052 |
|
1053 void HandleError( TInt ); |
|
1054 |
|
1055 void HandleItemRemovalL( const TDesC& aContactId ); |
|
1056 |
|
1057 void HandleItemAdditionL( MCAStoredContact & aContact ); |
|
1058 |
|
1059 |
|
1060 private://Added methods for sorting of openchats |
|
1061 |
|
1062 TInt ChatGroupMessagesPendingCount() const; |
|
1063 |
|
1064 void ResetOpenChatsArrayL( TEnumsPC::TItem aItem ); |
|
1065 |
|
1066 void InsertIntoInactiveOpenChats( TBool aEnd ); |
|
1067 |
|
1068 void SetContactListIndex(); |
|
1069 TEnumsPC::TItem GetOpenChatType( TInt aIndex ) const; |
|
1070 |
|
1071 TInt RemoveGroupItem( const TDesC& aGroupId ); |
|
1072 |
|
1073 //method to get bool equivalent for selction mode. Added to make code readable |
|
1074 //Returns true if single list view selection mode else false. |
|
1075 TBool SingleListViewSelectMode() const; |
|
1076 |
|
1077 void RefreshOpenChatsListItemL(); |
|
1078 |
|
1079 void RefreshGroupItem( MCAStoredGroup* aGroup, TInt aFoundIndex ); |
|
1080 |
|
1081 |
|
1082 private: |
|
1083 |
|
1084 //Refenence to engine |
|
1085 CCAEngine& iEngine; |
|
1086 |
|
1087 TBool iSkipStorageEvents; |
|
1088 |
|
1089 /** |
|
1090 * list of items here |
|
1091 */ |
|
1092 RPointerArray<MCAArrayItemPC> iMainViewListItemArray; |
|
1093 |
|
1094 // we need to maintain the list of observers here.whenever any event is |
|
1095 // happening then we need call back the UI |
|
1096 |
|
1097 /* |
|
1098 * Observers : replace this array with pointer variable and overload = operator. |
|
1099 */ |
|
1100 RPointerArray< MCAMainViewObserverPC > iMainViewObservers; |
|
1101 |
|
1102 /* |
|
1103 * reference to the contact list model |
|
1104 */ |
|
1105 MCAContactListModel& iContactListModel; |
|
1106 |
|
1107 /* |
|
1108 * Reference to chat interface |
|
1109 */ |
|
1110 MCAChatInterface& iChatInterface; |
|
1111 |
|
1112 /** |
|
1113 * Reference to Invite Interface |
|
1114 */ |
|
1115 MCAInvite& iInviteInterface; |
|
1116 |
|
1117 //Owns. Array of active invitations |
|
1118 RPointerArray<MCAInvitation> iInvitationsArray; |
|
1119 |
|
1120 /* |
|
1121 * reference to the contact list interface |
|
1122 */ |
|
1123 MCAStoredContacts* iContactInterface; |
|
1124 |
|
1125 // is "all" item displayed in beginning of each list |
|
1126 //used in displaying blockinglist |
|
1127 TBool iShowAll; |
|
1128 |
|
1129 // Owns |
|
1130 HBufC* iRejectReason; |
|
1131 /* |
|
1132 * starting index of Owndata , it's 0 as per ui spec |
|
1133 */ |
|
1134 int iOwnDataIndex; |
|
1135 /* |
|
1136 * starting index of OpenChats , it's 1 as per ui spec |
|
1137 */ |
|
1138 int iOpenChatsIndex; |
|
1139 /* |
|
1140 * starting index of all the contactlists |
|
1141 * it's iOpenChatsIndex+iOwnDataIndex+NoofConversations, if anything is exists |
|
1142 */ |
|
1143 int iContactListIndex; |
|
1144 /* |
|
1145 * flag to check whether openchats folder expanded or collapsed |
|
1146 */ |
|
1147 TBool iOpenChatListItemExpanded; |
|
1148 /* |
|
1149 * Flag to check whether own data added or not |
|
1150 */ |
|
1151 TBool iOwnDataAdded; |
|
1152 |
|
1153 /* |
|
1154 * Flag if mainviewarraypc is used in selectoin mode from contact selection dialog |
|
1155 */ |
|
1156 |
|
1157 TEnumsPC::TListSelectionType iSelectionMode; |
|
1158 |
|
1159 TInt iSelectedListIndex; |
|
1160 |
|
1161 TBool iSetListCollapsedFlag; |
|
1162 |
|
1163 |
|
1164 TBool iForceExpandDone; |
|
1165 /* |
|
1166 * Flag if user or findbox is expanded the array pc |
|
1167 */ |
|
1168 TBool iExpandAll; |
|
1169 |
|
1170 /* |
|
1171 * reference to the settings interface |
|
1172 */ |
|
1173 MCASettings* iSettings; |
|
1174 |
|
1175 /* |
|
1176 * Owns. Buffer that hold's information about fetched item |
|
1177 */ |
|
1178 HBufC* iData; |
|
1179 |
|
1180 TInt iMaxLengthOfIcons; |
|
1181 |
|
1182 /** |
|
1183 * Current filter applied to the engine contact list model |
|
1184 */ |
|
1185 TEnumsPC::TFilterType iFilter; |
|
1186 |
|
1187 /** |
|
1188 * Default filter applied to the engine |
|
1189 */ |
|
1190 TEnumsPC::TFilterType iDefaultFilter; |
|
1191 |
|
1192 /** |
|
1193 * Current filter applied to the single list view array |
|
1194 */ |
|
1195 |
|
1196 TEnumsPC::TFilterType iSingleListArrayFilter; |
|
1197 |
|
1198 |
|
1199 // This callback is required when ever the server is added or deleted |
|
1200 // we get a callback and update the singlelist |
|
1201 |
|
1202 // We own this pointer |
|
1203 CIMPSSAPSettingsStore* iSAPSettingsStore; |
|
1204 |
|
1205 |
|
1206 TInt iPToPChatCount; |
|
1207 MCASingleListViewCB* iSingleViewCB; |
|
1208 |
|
1209 TCAItemDetails iItemDetails; |
|
1210 |
|
1211 // Owns. Array of group data |
|
1212 CCAGroupListArrayPC* iGroupArray; |
|
1213 |
|
1214 // Does not own. Pointer to Stored Groups Interface |
|
1215 MCAStoredGroups* iChatGroups; |
|
1216 |
|
1217 //To track the deletion of stored groups and then the subsequent |
|
1218 //addition of groups after logging in each time. |
|
1219 TBool iGroupCountDown; |
|
1220 // we own this pointer |
|
1221 //holds the last logged in user id |
|
1222 HBufC* iLastloggedinUserId; |
|
1223 |
|
1224 //Count of all the save Groups to track the Open Count count on login |
|
1225 TInt iOnlySavedGroups; |
|
1226 |
|
1227 /** |
|
1228 * list of open chats items here |
|
1229 */ |
|
1230 RPointerArray<MCAArrayItemPC> iOpenChatsArray; |
|
1231 |
|
1232 //Beginning index of Non-Joined groups in iOpenChatsArray |
|
1233 TInt iOpenChatsInActiveIndex; |
|
1234 MCASyncObserverPC* iSyncObserver; |
|
1235 |
|
1236 |
|
1237 // Own this Pointer, as constrution of which fires an event to PEC engine |
|
1238 CIMPSPresenceConnectionUi *iConnectionUI; |
|
1239 |
|
1240 |
|
1241 // store the Contact's userId which need to refresh after contact list fetching complete. |
|
1242 RPointerArray<HBufC> iRefreshConvArray; |
|
1243 |
|
1244 }; |
|
1245 |
|
1246 #endif //CCAMainViewArrayPC_H |
|
1247 // End of File |