| author | Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> | 
| Tue, 31 Aug 2010 15:11:31 +0300 | |
| branch | RCL_3 | 
| changeset 26 | ebe688cedc25 | 
| permissions | -rw-r--r-- | 
| 26 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 1 | /* | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 2 | * Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 3 | * All rights reserved. | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 4 | * This component and the accompanying materials are made available | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 5 | * under the terms of "Eclipse Public License v1.0" | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 6 | * which accompanies this distribution, and is available | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 7 | * at the URL "http://www.eclipse.org/legal/epl-v10.html". | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 8 | * | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 9 | * Initial Contributors: | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 10 | * Nokia Corporation - initial contribution. | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 11 | * | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 12 | * Contributors: | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 13 | * | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 14 | * Description: This class helps CS Cache in processing the data. | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 15 | * | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 16 | */ | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 17 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 18 | // INCLUDE FILES | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 19 | // SYSTEM INCLUDE FILES | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 20 | #include <ccsdefs.h> | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 21 | #include <ccsconversationentry.h> | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 22 | #include <ccsclientconversation.h> | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 23 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 24 | // USER INCLUDE FILES | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 25 | #include "ccsconversationcachehelper.h" | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 26 | #include "ccsconversationcache.h" | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 27 | #include "ccsconversation.h" | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 28 | #include "ccsconversationentry.h" | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 29 | #include "ccsconversationevent.h" | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 30 | #include "ccscontactsmanager.h" | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 31 | #include "ccscontactsresolver.h" | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 32 | #include <xqconversions.h> | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 33 | #include "ccsdebug.h" | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 34 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 35 | // ============================== MEMBER FUNCTIONS ============================ | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 36 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 37 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 38 | // CCsConversationCacheHelper::NewL | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 39 | // Two Phase Construction | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 40 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 41 | CCsConversationCacheHelper* | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 42 | CCsConversationCacheHelper::NewL(CCsConversationCache* aConversationCache) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 43 | {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 44 |     PRINT ( _L("Enter CCsConversationCacheHelper::NewL") );
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 45 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 46 | CCsConversationCacheHelper* self = | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 47 | new (ELeave) CCsConversationCacheHelper(aConversationCache); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 48 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 49 | CActiveScheduler::Add(self); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 50 | CleanupStack::PushL(self); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 51 | self->ConstructL(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 52 | CleanupStack::Pop(self); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 53 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 54 |     PRINT ( _L("End CCsConversationCacheHelper::NewL") );
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 55 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 56 | return self; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 57 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 58 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 59 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 60 | // CCsConversationCacheHelper::CCsConversationCacheHelper | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 61 | // Construtor | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 62 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 63 | CCsConversationCacheHelper::CCsConversationCacheHelper( | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 64 | CCsConversationCache* aConversationCache) : | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 65 | CActive(EPriorityLow), iConversationCache(aConversationCache) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 66 | {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 67 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 68 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 69 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 70 | // CCsConversationCacheHelper::ConstructL | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 71 | // Second phase constructor | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 72 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 73 | void CCsConversationCacheHelper::ConstructL() | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 74 | {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 75 | iConversationEvent = NULL; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 76 | iConversationIndex = KErrNotFound; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 77 | iCurrentConversationIndex = KErrNotFound; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 78 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 79 | //initialize the event list | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 80 | iConversationEventList | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 81 | = new (ELeave) RPointerArray<CCsConversationEvent> (); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 82 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 83 | // now create all special type of conversations | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 84 | // like BT, IRDA, Unknown Drafts etc. | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 85 | TInt loop = 0; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 86 | for (loop = 0; loop < KMaxSpecialConversations; loop++) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 87 |     {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 88 | CreateSpecialConversationL(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 89 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 90 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 91 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 92 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 93 | // CCsConversationCache::CreateSpecialConversationL | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 94 | // Second part of constructL | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 95 | // This shall create all special type of messages like BT, Unknown Draft, IRDA etc. | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 96 | // Pls note this shall be placed by order at starting of cache | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 97 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 98 | void CCsConversationCacheHelper::CreateSpecialConversationL() | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 99 | {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 100 | // Create a conversation for Drafts Unknown case and set it in | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 101 | // 0th position and the conversation Id for drafts unknown case is | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 102 | // KDratsUnknownConversationId | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 103 | CCsConversation* conversation = CCsConversation::NewL(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 104 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 105 | conversation->SetConversationId(GetNextRowId()); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 106 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 107 | // add into the list | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 108 | iConversationCache->ConversationList()->AppendL(conversation); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 109 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 110 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 111 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 112 | // CCsConversationCacheHelper::CCsConversationCacheHelper | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 113 | // Destructor | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 114 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 115 | CCsConversationCacheHelper::~CCsConversationCacheHelper() | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 116 | {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 117 | Cancel(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 118 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 119 | // delete the event list | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 120 | if (iConversationEventList) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 121 |     {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 122 | iConversationEventList->ResetAndDestroy(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 123 | iConversationEventList->Close(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 124 | delete iConversationEventList; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 125 | iConversationEventList = NULL; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 126 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 127 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 128 | // ----------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 129 | // CCsConversationCacheHelper::DoCancel() | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 130 | // DoCancel implementation from CActive Object | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 131 | // ----------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 132 | // | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 133 | void CCsConversationCacheHelper::DoCancel() | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 134 | {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 135 | // do nothing | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 136 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 137 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 138 | // CCsConversationCacheHelper::Run | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 139 | // Called from the scheduler | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 140 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 141 | void CCsConversationCacheHelper::RunL() | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 142 | {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 143 | switch (iState) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 144 |     {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 145 | case ECsProcessConversation: | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 146 |         {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 147 | HandleProcessConversationL(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 148 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 149 | break; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 150 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 151 | case ECsSpecialConversation: | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 152 |         {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 153 | HandleSpecialConversationL(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 154 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 155 | break; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 156 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 157 | case ECsConversationFoundInCache: | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 158 |         {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 159 | HandleConversationInCacheL(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 160 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 161 | break; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 162 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 163 | case ECsResolveConversation: | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 164 |         {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 165 | ResolveContact(iConversationEvent); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 166 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 167 | break; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 168 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 169 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 170 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 171 | // CCsConversationCacheHelper::StartCacheUpdate | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 172 | // this shall start looking at cache data and update if entry already exist | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 173 | // shall put request to phonebook in case new data | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 174 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 175 | void CCsConversationCacheHelper::StartCacheUpdate() | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 176 | {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 177 | iState = ECsProcessConversation; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 178 | IssueRequest(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 179 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 180 | // --------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 181 | // CCsConversationCacheHelper::HandleProcessConversationL() | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 182 | // Process Conversation and update cache | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 183 | // --------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 184 | // | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 185 | void CCsConversationCacheHelper::HandleProcessConversationL() | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 186 | {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 187 | iConversationEvent = GetNextEvent(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 188 | // check to see if all the events are consumed | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 189 | // then mark cache as caching done.. | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 190 | if (!iConversationEvent) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 191 |     {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 192 | iConversationCache->CachingCompletedL(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 193 | return; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 194 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 195 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 196 | CCsConversationEntry* conEntry = | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 197 | iConversationEvent->ClientConversation()->GetConversationEntry(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 198 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 199 | //handle add, modify events | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 200 | if (iConversationEvent->Event() != KConversationEventDelete) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 201 |     {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 202 | TUint8 SpecialId = NeedsSpecialProcessing(conEntry); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 203 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 204 | if (SpecialId) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 205 |         {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 206 | // this is for draft(unlnown)/BT/IR processing | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 207 | iState = ECsSpecialConversation; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 208 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 209 | // check only if contact is a valid address | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 210 | else if (conEntry->Contact()) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 211 |         {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 212 | iCurrentConversationIndex | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 213 | = iConversationCache->FindConversation(* (conEntry->Contact())); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 214 | if (iCurrentConversationIndex != KErrNotFound) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 215 |             {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 216 | iState = ECsConversationFoundInCache; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 217 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 218 | else | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 219 |             {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 220 | iState = ECsResolveConversation; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 221 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 222 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 223 | else | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 224 |         {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 225 | // this is when contact number is NULL | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 226 | // delete the entry from temp list | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 227 | DeleteEvent(*iConversationEvent); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 228 | iState = ECsProcessConversation; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 229 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 230 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 231 | else | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 232 |     {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 233 | //handle delete event | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 234 | DeleteConversationEntryL(conEntry); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 235 | DeleteEvent(*iConversationEvent); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 236 | iState = ECsProcessConversation; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 237 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 238 | //move to other state | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 239 | IssueRequest(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 240 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 241 | // --------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 242 | // CCsConversationCacheHelper::HandleSpecialConversationL() | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 243 | // Hnadle the case when the conversation has no contact, | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 244 | // BlueTooth/IrDa messages | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 245 | // --------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 246 | // | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 247 | void CCsConversationCacheHelper::HandleSpecialConversationL() | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 248 | {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 249 | CCsConversationEntry* conEntry = | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 250 | iConversationEvent->ClientConversation()->GetConversationEntry(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 251 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 252 | if (ECsBlueTooth == conEntry->GetType()|| ECsBlueTooth_VCard == conEntry->GetType()|| ECsBlueTooth_VCal == conEntry->GetType()) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 253 |     {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 254 | AddConversationEntryL(conEntry, KBluetoothMsgsConversationId); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 255 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 256 | else | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 257 |     {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 258 | AddConversationEntryL(conEntry, KUnknownConversationId); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 259 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 260 | DeleteEvent(*iConversationEvent); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 261 | iState = ECsProcessConversation; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 262 | IssueRequest(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 263 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 264 |     PRINT ( _L("CCsConversationCacheHelper::HandleSpecialConversationL") );
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 265 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 266 | // --------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 267 | // CCsConversationCacheHelper::HandleConversationInCacheL() | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 268 | // Handle the case when the conversation is found in the cache | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 269 | // so there is no need for resolving the contact | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 270 | // --------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 271 | // | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 272 | void CCsConversationCacheHelper::HandleConversationInCacheL() | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 273 | {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 274 | CCsConversationEntry* conEntry = | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 275 | iConversationEvent->ClientConversation()->GetConversationEntry(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 276 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 277 | AddConversationEntryL(conEntry, iCurrentConversationIndex); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 278 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 279 | DeleteEvent(*iConversationEvent); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 280 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 281 | // reset back the conversation index | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 282 | iCurrentConversationIndex = KErrNotFound; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 283 | iState = ECsProcessConversation; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 284 | IssueRequest(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 285 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 286 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 287 | // This function identifies if the conentry needs special processing | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 288 | // Drafts message with NULL contact/Bluetooth/IRDA etc | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 289 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 290 | TUint8 CCsConversationCacheHelper::NeedsSpecialProcessing( | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 291 | CCsConversationEntry* aConversationEntry) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 292 | {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 293 | if (ECsBlueTooth == aConversationEntry->GetType() || ECsBlueTooth_VCard == aConversationEntry->GetType() || ECsBlueTooth_VCal == aConversationEntry->GetType()) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 294 |     {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 295 | return 1; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 296 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 297 | return 0; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 298 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 299 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 300 | // --------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 301 | // Move to next state | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 302 | // --------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 303 | // | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 304 | void CCsConversationCacheHelper::IssueRequest() | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 305 | {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 306 | if (!IsActive()) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 307 |     {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 308 | iStatus = KRequestPending; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 309 | TRequestStatus* status = &iStatus; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 310 | SetActive(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 311 | User::RequestComplete(status, KErrNone); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 312 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 313 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 314 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 315 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 316 | // CCsConversationCacheHelper::ContactResolved | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 317 | // Handle a contact resolved in the contact database | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 318 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 319 | void CCsConversationCacheHelper::ResolveContact( | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 320 | CCsConversationEvent* aConverastionEvent) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 321 | {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 322 | CCsContactDetail contactDetail; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 323 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 324 | //get contact from event | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 325 | CCsConversationEntry* ConvEntry = | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 326 | aConverastionEvent->ClientConversation()->GetConversationEntry(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 327 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 328 | if (ConvEntry) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 329 |     {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 330 | HBufC* Contact = ConvEntry->Contact(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 331 | if (Contact) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 332 |         {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 333 | QString contactAddress = | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 334 | XQConversions::s60DescToQString(Contact->Des()); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 335 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 336 | iConversationCache->ContactsManager()->resolver()->resolveContact(contactAddress, | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 337 | contactDetail); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 338 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 339 | int contactId = contactDetail.contactId; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 340 | TInt cIndex = iConversationCache->FindConversation(contactId); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 341 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 342 | if (cIndex == KErrNotFound) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 343 |             {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 344 | // Add as new conversation | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 345 | HBufC* displayName = NULL; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 346 | if(!contactDetail.displayName.isEmpty()) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 347 |                 {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 348 | displayName=XQConversions::qStringToS60Desc(contactDetail.displayName); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 349 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 350 | TRAPD(error, AddNewConversationL( aConverastionEvent-> | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 351 | ClientConversation()->GetConversationEntry(), | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 352 | contactId, | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 353 | displayName)); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 354 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 355 | if (displayName) delete displayName; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 356 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 357 | if (error != KErrNone) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 358 |                 {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 359 | // handle error | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 360 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 361 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 362 | else | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 363 |             {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 364 | // this is when two contacts are having same contact Id, | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 365 | // in that case it should add into an existing conversation | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 366 | TRAPD(error, AddConversationEntryL( | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 367 | aConverastionEvent->ClientConversation( | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 368 | )->GetConversationEntry(), cIndex)); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 369 | if (error != KErrNone) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 370 |                 {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 371 | // handle error | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 372 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 373 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 374 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 375 | // now remove the entry from event list | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 376 | DeleteEvent(*aConverastionEvent); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 377 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 378 | // call start update cache | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 379 | StartCacheUpdate(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 380 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 381 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 382 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 383 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 384 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 385 | // Handles the case where conversation is already in cache | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 386 | // This will add new conversation entry into the corresponding conversation | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 387 | // pls note there is already a conversation exist for this entry | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 388 | // hence this entry gets appended inside conversation list | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 389 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 390 | void CCsConversationCacheHelper::AddConversationEntryL( | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 391 | CCsConversationEntry *aConEntry, | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 392 | TInt aConversationIndex) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 393 | {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 394 | RPointerArray<CCsConversation>* conversationList = | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 395 | iConversationCache->ConversationList(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 396 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 397 | CCsConversation* conversation = (*conversationList)[aConversationIndex]; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 398 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 399 | CCsConversationEntry* prevLatestEntry = conversation->GetLatestEntryL(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 400 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 401 | if (prevLatestEntry) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 402 |     {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 403 | prevLatestEntry = prevLatestEntry->CloneL(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 404 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 405 | else | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 406 |     {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 407 | prevLatestEntry = aConEntry->CloneL(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 408 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 409 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 410 | CleanupStack::PushL(prevLatestEntry); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 411 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 412 | // save the previous unread message count | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 413 | TUint16 prevUnreadCount = conversation->GetUnreadMessageCount(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 414 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 415 | TUint32 event; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 416 | conversation->UpdateEntryL(aConEntry, event); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 417 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 418 | // Send update notify to conversation list | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 419 | if (IsNotifyRequiredL(conversation, | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 420 | prevLatestEntry, | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 421 | KConversationListEventUpdate, | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 422 | prevUnreadCount)) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 423 |     {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 424 | CCsConversationEntry* convEntry = conversation->GetLatestEntryL(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 425 | CCsClientConversation* clientConvLatest = | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 426 | iConversationCache->CreateClientConvLC(conversation, convEntry); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 427 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 428 | // THIS IS USED FOR SHOWING NOTIFICATIONS. NOTIFICATION IS SHOWN ONLY | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 429 | // WHEN ECsAttributeNewEntryAdded IS SET. | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 430 | if(iConversationEvent->IsUpdateConversationEventSet() | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 431 | && event == KConversationEventNew) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 432 |             {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 433 | clientConvLatest->GetConversationEntry()-> | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 434 | ChangeAttributes(ECsAttributeNewEntryAdded,ECsAttributeNone); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 435 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 436 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 437 | iConversationCache->NotifyL(clientConvLatest, | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 438 | KConversationListEventUpdate); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 439 | CleanupStack::PopAndDestroy(clientConvLatest); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 440 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 441 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 442 | // Send update notify to conversations | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 443 | CCsClientConversation* clientConv = | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 444 | iConversationCache->CreateClientConvLC(conversation, aConEntry); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 445 | iConversationCache->NotifyL(clientConv, event); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 446 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 447 | // Cleanup | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 448 | CleanupStack::PopAndDestroy(clientConv); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 449 | CleanupStack::PopAndDestroy(prevLatestEntry); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 450 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 451 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 452 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 453 | // CCsConversationCache::DeleteConversationL | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 454 | // Delete conversation entry from conversation list | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 455 | // there are few checks of how to notify the UI about the changes | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 456 | // for the various use cases. | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 457 | // Delete requires the conversation Id and type (SMS, MMS etc.) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 458 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 459 | void CCsConversationCacheHelper::DeleteConversationEntryL( | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 460 | CCsConversationEntry* aConversationEntry) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 461 | {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 462 | // For MMS, search the entry inside all conversations and delete. | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 463 | // For SMS, stop on first match. | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 464 | TBool stopOnFirstMatch = ETrue; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 465 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 466 | RPointerArray<CCsConversation>* conversationList = | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 467 | iConversationCache->ConversationList(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 468 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 469 | // the deletion needs search the entryId inside whole conversation | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 470 | // search the entry id and delete the entry | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 471 | for (TInt loop = 0; loop < iConversationCache->ConversationList()->Count(); loop++) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 472 |     {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 473 | CCsConversation* conversation = | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 474 | static_cast<CCsConversation*> ( (*conversationList)[loop]); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 475 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 476 | TInt indexDeletion = conversation->FindEntry(aConversationEntry); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 477 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 478 | if (indexDeletion != KErrNotFound) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 479 |         {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 480 | // Get the entry from cache to check the type | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 481 | CCsConversationEntry* cacheEntry = | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 482 | conversation->GetEntryL(indexDeletion); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 483 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 484 | if (cacheEntry->GetType() == ECsMMS || cacheEntry->GetType() | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 485 | == ECsAudio) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 486 |             {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 487 | stopOnFirstMatch = EFalse; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 488 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 489 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 490 | TUint16 prevUnreadCount = conversation->GetUnreadMessageCount(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 491 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 492 | // Delete the conversation entry from this conversation | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 493 | conversation->DeleteEntryL(indexDeletion); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 494 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 495 | // Notify client of conversation list change. | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 496 | if (IsNotifyRequiredL(conversation, | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 497 | aConversationEntry, | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 498 | KConversationListEventDelete, | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 499 | prevUnreadCount)) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 500 |             {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 501 | // Delete | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 502 | CCsClientConversation | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 503 | * clientConv = | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 504 | iConversationCache->CreateClientConvLC(conversation, | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 505 | aConversationEntry); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 506 | iConversationCache->NotifyL(clientConv, | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 507 | KConversationListEventDelete); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 508 | CleanupStack::PopAndDestroy(clientConv); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 509 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 510 | // Update with latest entry | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 511 | CCsConversationEntry* conEntry = | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 512 | conversation->GetLatestEntryL(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 513 | if (conEntry) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 514 |                 {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 515 | CCsClientConversation | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 516 | * clientConv = | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 517 | iConversationCache->CreateClientConvLC(conversation, | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 518 | conEntry); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 519 | iConversationCache->NotifyL(clientConv, | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 520 | KConversationListEventNew); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 521 | CleanupStack::PopAndDestroy(clientConv); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 522 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 523 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 524 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 525 | // Notify client of conversation change | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 526 | if (!conversation->IsDeleted()) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 527 |             {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 528 | CCsClientConversation | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 529 | * clientConv = | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 530 | iConversationCache->CreateClientConvLC(conversation, | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 531 | aConversationEntry); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 532 | iConversationCache->NotifyL(clientConv, | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 533 | KConversationEventDelete); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 534 | CleanupStack::PopAndDestroy(clientConv); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 535 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 536 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 537 | // check if all entries are deleted then | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 538 | // delete the conversation from cache | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 539 | if (conversation->GetEntryCount() == 0 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 540 | && !conversation->IsSpecialConversation()) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 541 |             {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 542 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 543 | conversationList->Remove(loop); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 544 | delete conversation; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 545 | //reset the counters | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 546 | loop -= 1; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 547 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 548 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 549 | // Stop searching | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 550 | if (stopOnFirstMatch) break; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 551 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 552 | } // for | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 553 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 554 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 555 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 556 | // CCsConversationCacheHelper::AddNewConversationL | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 557 | // add new conversation into cache | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 558 | // this shall be called after resolving entry from phonebook | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 559 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 560 | void CCsConversationCacheHelper::AddNewConversationL( | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 561 | CCsConversationEntry* aConversationEntry, | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 562 | TInt32 aContactId, | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 563 | const HBufC* aDisplayName) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 564 | {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 565 | CCsConversation* conversation = CCsConversation::NewL(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 566 | CleanupStack::PushL(conversation); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 567 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 568 | //set conversation entry id | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 569 | // by default just set the count of list as of now, as it will be unique | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 570 | conversation->SetConversationId(GetNextRowId()); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 571 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 572 | // add the conversation entry | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 573 | conversation->AddEntryL(aConversationEntry); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 574 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 575 | // fill firstname and lastname and contact Id | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 576 | if(aDisplayName) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 577 | conversation->AddContactDetailsL(aContactId, | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 578 | aDisplayName); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 579 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 580 | // fill the phone number | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 581 | if (aConversationEntry->Contact()) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 582 |     {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 583 | conversation->AddContactDetailsL(* (aConversationEntry->Contact())); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 584 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 585 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 586 | // add into the list | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 587 | iConversationCache->ConversationList()->AppendL(conversation); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 588 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 589 | // Send add notify to conversation list | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 590 | CCsClientConversation* clientConv = | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 591 | iConversationCache->CreateClientConvLC(conversation, | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 592 | aConversationEntry); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 593 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 594 | // THIS IS USED FOR SHOWING NOTIFICATIONS. NOTIFICATION IS SHOWN ONLY | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 595 | // WHEN ECsAttributeNewEntryAdded IS SET. | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 596 | if(iConversationEvent->IsUpdateConversationEventSet()) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 597 |         {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 598 | clientConv->GetConversationEntry()-> | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 599 | ChangeAttributes(ECsAttributeNewEntryAdded,ECsAttributeNone); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 600 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 601 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 602 | iConversationCache->NotifyL(clientConv, KConversationListEventNew); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 603 | // send the new conversation event as well, so that if there are nay listeners for the cv | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 604 | // then they will get the notification. | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 605 | iConversationCache->NotifyL(clientConv, KConversationEventNew); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 606 | CleanupStack::PopAndDestroy(clientConv); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 607 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 608 | CleanupStack::Pop(conversation); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 609 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 610 |     PRINT ( _L("CCsConversationCacheHelper::AddNewConversationL - Conversation Added") );
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 611 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 612 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 613 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 614 | // CCsConversationCache::GetPendingEventCount | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 615 | // Pending event count | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 616 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 617 | TInt CCsConversationCacheHelper::GetPendingEventCount() | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 618 | {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 619 | return iConversationEventList->Count(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 620 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 621 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 622 | // --------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 623 | // Get next event from event list | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 624 | // --------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 625 | // | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 626 | CCsConversationEvent* CCsConversationCacheHelper::GetNextEvent() | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 627 | {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 628 | // check in case there are no events in cache | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 629 | if (iConversationEventList->Count() > 0) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 630 |     {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 631 | return (*iConversationEventList)[0]; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 632 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 633 | return NULL; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 634 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 635 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 636 | // --------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 637 | // Find CCsConversationEvent from event Q based on ConversationEntryId. | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 638 | // --------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 639 | TInt CCsConversationCacheHelper::FindEvent( | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 640 | const CCsConversationEvent& aConvEvent) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 641 | {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 642 | // find the event inside event list and send the index | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 643 | // KErrNotFound in case None | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 644 | TInt | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 645 | index = | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 646 | iConversationEventList->Find(&aConvEvent, | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 647 | CCsConversationEvent::CompareByEntryId); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 648 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 649 | return index; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 650 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 651 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 652 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 653 | // CCsConversationCache::GetNextRowId | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 654 | // Get the conversation list count where to add next conversation | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 655 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 656 | TInt16 CCsConversationCacheHelper::GetNextRowId() | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 657 | {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 658 | // increment the index and return | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 659 | iConversationIndex++; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 660 | return iConversationIndex; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 661 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 662 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 663 | // --------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 664 | // Find CCsConversationEvent based on ConversationEntryId and delete it. | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 665 | // --------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 666 | // | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 667 | void CCsConversationCacheHelper::DeleteEvent( | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 668 | const CCsConversationEvent& aConvEvent) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 669 | {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 670 | TInt index = FindEvent(aConvEvent); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 671 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 672 | if (KErrNotFound != index) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 673 |     {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 674 | CCsConversationEvent* conversationEvent = | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 675 | (*iConversationEventList)[index]; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 676 | iConversationEventList->Remove(index); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 677 | delete conversationEvent; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 678 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 679 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 680 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 681 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 682 | // CCsConversationCache::IsNotifyRequiredL | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 683 | // checks whether notification for conversation list is required | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 684 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 685 | TBool CCsConversationCacheHelper::IsNotifyRequiredL( | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 686 | CCsConversation* aConversation, | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 687 | CCsConversationEntry* aConversationEntry, | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 688 | TUint32 aEvent, | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 689 | TUint16 aPreviousUnreadMsgsCount) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 690 | {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 691 | TUint16 presentUnreadMessageCount = aConversation->GetUnreadMessageCount(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 692 | CCsConversationEntry* latestEntry = aConversation->GetLatestEntryL(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 693 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 694 | // Add & Update | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 695 | if (aEvent & KConversationListEventNew || aEvent | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 696 | & KConversationListEventUpdate) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 697 |     {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 698 | // Check whether deleted is ongoing. Don't Notify. | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 699 | if (aConversation->IsDeleted()) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 700 |         {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 701 | return EFalse; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 702 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 703 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 704 | // Check whether latest entry is same and unread count has not changed. Don't Notify. | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 705 | if (CCsConversationEntry::Compare(*latestEntry, *aConversationEntry) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 706 | == 0 && (presentUnreadMessageCount == aPreviousUnreadMsgsCount) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 707 | && (latestEntry->GetSendState() | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 708 | == aConversationEntry->GetSendState())) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 709 |         {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 710 | return EFalse; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 711 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 712 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 713 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 714 | // Delete | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 715 | if (aEvent & KConversationListEventDelete) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 716 |     {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 717 | // Not Last entry during delete. Don't Notify. | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 718 | if (aConversation->IsDeleted() && aConversation->GetEntryCount() > 0) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 719 |         {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 720 | return EFalse; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 721 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 722 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 723 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 724 | // Notify. | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 725 | return ETrue; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 726 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 727 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 728 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 729 | // CCsConversationCacheHelper::ConversationEventList | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 730 | // Pls refer to .h file | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 731 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 732 | RPointerArray<CCsConversationEvent>* | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 733 | CCsConversationCacheHelper::ConversationEventList() | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 734 | {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 735 | return iConversationEventList; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 736 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 737 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 738 | //end of file |