diff -r e00582ce7ecd -r fbb813aef148 messagingappbase/mce/src/MceMainViewListItemArray.cpp --- a/messagingappbase/mce/src/MceMainViewListItemArray.cpp Tue Apr 27 16:33:37 2010 +0300 +++ b/messagingappbase/mce/src/MceMainViewListItemArray.cpp Tue May 11 16:10:04 2010 +0300 @@ -229,7 +229,8 @@ aListItem.iMsvId = id; aListItem.iExtraItem = EFalse; - aListItem.iIconIndex = KErrNotFound; + aListItem.iIconIndex = KErrNotFound; + aListItem.iText.Zero(); } // --------------------------------------------------------------------------- @@ -353,7 +354,7 @@ aNewItem.iPrintableText.AppendNum( index ); aNewItem.iPrintableText.Append( KColumnListSeparator ); aNewItem.iPrintableText.Append( tempText ); - + aNewItem.iText.Zero(); InsertL( aIndex, aNewItem ); } @@ -407,7 +408,7 @@ aNewItem.iPrintableText.Append( tempText ); aNewItem.iPrintableText.Append( KColumnListSeparator ); aNewItem.iPrintableText.Append( secondarytxt ); - + aNewItem.iText.Zero(); InsertL( aIndex, aNewItem ); } @@ -457,7 +458,7 @@ tempText.Zero(); TMsvEntry entry; TMsvId serviceId; - TInt visiblecount=0; + const TMceListItem& item = At( aIndex ); if ( iSession->GetEntry( item.iMsvId, serviceId, entry ) == KErrNone ) { @@ -465,38 +466,26 @@ { TInt messageCount = 0; TMsvId id = entry.Id(); + CONST_CAST( TMceListItem*, &item)->iIconIndex = iBitmapResolver.BitmapIndex( entry, messageCount ); if(iDefaultViewSettings == KMceConversationview && id == KMsvGlobalInBoxIndexEntryId ) { CONST_CAST( TMceListItem*, &item)->iIconIndex = EMceBitmapIndexInbox; - } - else - { - CONST_CAST( TMceListItem*, &item)->iIconIndex = iBitmapResolver.BitmapIndex( entry, messageCount ); - } + } CONST_CAST( TMceListItem*, &item)->iMessageCount = messageCount; } + else if(iListItemArrayObserver ) + { + if(iListItemArrayObserver->MceListItemArrayFlickEvent()) + { + return item.iText; + } + } + tempText.AppendNum( item.iIconIndex ); tempText.Append( KColumnListSeparator ); tempText.Append( item.iPrintableText ); - if((iSelectableEmail)||(iEmailFramework)) - { - if( item.iMsvId == KMsvDraftEntryId || - item.iMsvId == KMsvSentEntryId || - item.iMsvId == KMsvDeletedEntryFolderEntryId || - item.iMsvId == KMsvGlobalInBoxIndexEntryId || item.iMsvId == KMsvGlobalOutBoxIndexEntryId ) - { - TRAP_IGNORE( visiblecount = FindVisibleCountL(item.iMsvId) ); - AppendMessageCountString( tempText, visiblecount ); - } - else - { - AppendMessageCountString( tempText, item.iMessageCount ); - } - } - else - { - AppendMessageCountString( tempText, item.iMessageCount ); - } + AppendMessageCountString( tempText, item.iMessageCount ); + if ( entry.Connected() ) { if ( iRoaming ) @@ -542,7 +531,6 @@ tempText.AppendNum( (TInt) EMceBitmapIndexInactiveAdd ); } } - } } else @@ -551,8 +539,11 @@ __ASSERT_DEBUG( 0, Panic(EMceListItemArrayEntryNotFound ) ); tempText.AppendNum( (TInt)EMceBitmapIndexUnknown ); tempText.Append( KColumnListSeparator ); - tempText.Append( item.iPrintableText ); + tempText.Append( item.iPrintableText ); } + //save the complete string as chache, will be used when flick will start + CONST_CAST( TMceListItem*, &item)->iText.Zero(); + CONST_CAST( TMceListItem*, &item)->iText.Copy(tempText); return tempText; } @@ -1029,15 +1020,12 @@ { TInt messageCount = 0; TMsvId id = entry.Id(); + item.iIconIndex = iBitmapResolver.BitmapIndex( entry, messageCount ); if(iDefaultViewSettings == KMceConversationview && id == KMsvGlobalInBoxIndexEntryId ) { - item.iIconIndex = EMceBitmapIndexInbox; + item.iIconIndex = EMceBitmapIndexInbox; } - else - { - item.iIconIndex = iBitmapResolver.BitmapIndex( entry, messageCount ); - } - item.iMessageCount = messageCount; + item.iMessageCount = messageCount; // item.iUnreadMessageCount = unreadMessageCount; if ( iListItemArrayObserver ) { @@ -1200,104 +1188,40 @@ } // ---------------------------------------------------- -// CMceMainViewListItemArray::FindVisibleCountL() -// ---------------------------------------------------- -TInt CMceMainViewListItemArray::FindVisibleCountL(TMsvId serviceId ) const - { - TInt visiblecount=0; - TInt emailcount=0; - TInt itemcount; - CMsvEntry* entry = iSession->GetEntryL( serviceId ); - CleanupStack::PushL( entry ); - itemcount=entry->Count(); - - //Find email messages - CMsvEntrySelection *smtpselection = entry->ChildrenWithMtmL( KUidMsgTypeSMTP ); - CleanupStack::PushL( smtpselection ); - - CMsvEntrySelection *pop3selection = NULL; - CMsvEntrySelection *imapselection = NULL ; - CMsvEntrySelection *cmailselection = NULL ; - - if(!iEmailFramework) - { - pop3selection = entry->ChildrenWithMtmL( KUidMsgTypePOP3 ); - CleanupStack::PushL( pop3selection ); - imapselection = entry->ChildrenWithMtmL( KUidMsgTypeIMAP4 ); - CleanupStack::PushL( imapselection ); - } - else - { - cmailselection = entry->ChildrenWithMtmL( - TUid::Uid(KUidMsgTypeFsMtmVal)); - CleanupStack::PushL( cmailselection ); - } - - if ( smtpselection!=0 && smtpselection->Count()>0 ) - { - emailcount=emailcount+smtpselection->Count(); - } - - if(!iEmailFramework) - { - if ( pop3selection!=0 && pop3selection->Count()>0 ) - { - emailcount=emailcount+pop3selection->Count(); - } - if ( imapselection!=0 && imapselection->Count()>0 ) - { - emailcount=emailcount+imapselection->Count(); - } - } - else - { - if ( cmailselection!=0 && cmailselection->Count()>0 ) - { - emailcount=emailcount+cmailselection->Count(); - } - } - - visiblecount = itemcount - emailcount; - - if(iEmailFramework) - { - CleanupStack::PopAndDestroy( cmailselection ); - } - else - { - CleanupStack::PopAndDestroy(imapselection); - CleanupStack::PopAndDestroy( pop3selection ); - } - CleanupStack::PopAndDestroy( smtpselection ); - CleanupStack::PopAndDestroy( entry ); - return visiblecount; - } -// ---------------------------------------------------- // CMceMainViewListItemArray::CreateConversationsListItem() // ---------------------------------------------------- TPtrC CMceMainViewListItemArray::CreateConversationsListItem( TInt aIndex ) const { const TMceListItem& item = At( aIndex ); - TPtr tempText = iListBoxText->Des(); - tempText.Zero(); - TInt bitmapidx = EMceBitmapIndexConversation; - if(iDefaultViewSettings == KMceConversationview ) - { - TInt msgCount = 0; - TInt unreadCount = 0; - iBitmapResolver.HasUnreadMessagesL(KMsvGlobalInBoxIndexEntryId,msgCount,unreadCount); - if( unreadCount > 0 ) + if(!iListItemArrayObserver->MceListItemArrayFlickEvent()) + { + TPtr tempText = iListBoxText->Des(); + tempText.Zero(); + TInt bitmapidx = EMceBitmapIndexConversation; + if(iDefaultViewSettings == KMceConversationview ) { - bitmapidx = EMceBitmapIndexConversationNew ; - } - } - tempText.AppendNum(bitmapidx); - TPtrC Ptr(item.iPrintableText); - TInt len = Ptr.Length(); - TInt pos = Ptr.Locate(KColumnListSeparator); - TPtrC Ptr1(Ptr.Mid(pos)); - tempText.Append(Ptr1); - return tempText; + TInt msgCount = 0; + TInt unreadCount = 0; + iBitmapResolver.HasUnreadMessagesL(KMsvGlobalInBoxIndexEntryId,msgCount,unreadCount); + if( unreadCount > 0 ) + { + bitmapidx = EMceBitmapIndexConversationNew ; + } + } + tempText.AppendNum(bitmapidx); + TPtrC Ptr(item.iPrintableText); + TInt len = Ptr.Length(); + TInt pos = Ptr.Locate(KColumnListSeparator); + TPtrC Ptr1(Ptr.Mid(pos)); + tempText.Append(Ptr1); + CONST_CAST( TMceListItem*, &item)->iText.Zero(); + CONST_CAST( TMceListItem*, &item)->iText.Copy(tempText); + return tempText; + } + else + { + return item.iText; + } } // ----------------------------------------------------