# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1271249601 -10800 # Node ID 52d61119153d2ec28e38aab2c25985b4960fd0a1 # Parent c6838af47512a943d7e782bbf1c14b897663c53c Revision: 201013 Kit: 201015 diff -r c6838af47512 -r 52d61119153d messagingappbase/mce/inc/MceBitmapResolver.h --- a/messagingappbase/mce/inc/MceBitmapResolver.h Wed Mar 31 21:25:02 2010 +0300 +++ b/messagingappbase/mce/inc/MceBitmapResolver.h Wed Apr 14 15:53:21 2010 +0300 @@ -58,6 +58,8 @@ EMceBitmapIndexAlwaysRoaming, EMceBitmapIndexPriorityHigh, EMceBitmapIndexPriorityLow, + EMceBitmapIndexConversation, + EMceBitmapIndexConversationNew, EMceBitmapIndexReplaceMtmIcon // this MUST be last }; diff -r c6838af47512 -r 52d61119153d messagingappbase/mce/inc/MceIds.hrh --- a/messagingappbase/mce/inc/MceIds.hrh Wed Mar 31 21:25:02 2010 +0300 +++ b/messagingappbase/mce/inc/MceIds.hrh Wed Apr 14 15:53:21 2010 +0300 @@ -45,6 +45,8 @@ // Special handling for Mail for exchange #define KMceMtmMailForExchangeValue 0x102826F8 +#define KMceInboxView 0x00 +#define KMceConversationview 0x01 #endif // End of File diff -r c6838af47512 -r 52d61119153d messagingappbase/mce/inc/MceListItem.h --- a/messagingappbase/mce/inc/MceListItem.h Wed Mar 31 21:25:02 2010 +0300 +++ b/messagingappbase/mce/inc/MceListItem.h Wed Apr 14 15:53:21 2010 +0300 @@ -42,6 +42,7 @@ TMcePrintableText iPrintableText; TInt iIconIndex; TMcePrintableText iSecondaryText; + TInt iApplicationUid; #ifdef RD_MSG_NAVIPANE_IMPROVEMENT TInt iMessageCount; #endif // RD_MSG_NAVIPANE_IMPROVEMENT diff -r c6838af47512 -r 52d61119153d messagingappbase/mce/inc/MceMainViewListItemArray.h --- a/messagingappbase/mce/inc/MceMainViewListItemArray.h Wed Mar 31 21:25:02 2010 +0300 +++ b/messagingappbase/mce/inc/MceMainViewListItemArray.h Wed Apr 14 15:53:21 2010 +0300 @@ -269,6 +269,10 @@ TBool MMceUtilsIdleClassStepL(); void SetListItemArrayObserver( MMceMainViewListItemArrayObserver* aObserver ); + /* + * Set the Default Message viewing style + */ + void SetDefaultViewSettings(TBool ); private: @@ -455,6 +459,11 @@ //Calculates the visible count excluding FS email stuff TInt FindVisibleCountL(TMsvId serviceId) const; + /** + * Creates Conversation string for main view listbox. + * @param aIndex: index of the message to be drawn + */ + TPtrC CreateConversationsListItem( TInt aIndex ) const; private: // Data CMsvSessionPtr iSession; CMsvEntry* iFolderEntry; @@ -489,6 +498,10 @@ * KFeatureIdFfEmailFramework is enabled */ TBool iEmailFramework; + /** + * Holds the current default Messagign viewing style type + */ + TBool iDefaultViewSettings; }; #endif // MCEMAINVIEWLISTITEMARRAY_H diff -r c6838af47512 -r 52d61119153d messagingappbase/mce/inc/MceMainViewListView.h --- a/messagingappbase/mce/inc/MceMainViewListView.h Wed Mar 31 21:25:02 2010 +0300 +++ b/messagingappbase/mce/inc/MceMainViewListView.h Wed Apr 14 15:53:21 2010 +0300 @@ -59,12 +59,6 @@ { public: - enum TMceDefaultView - { - EMceInboxview = 0, - EMceConversationview - }; - public: // Constructors and destructor /** diff -r c6838af47512 -r 52d61119153d messagingappbase/mce/inc/mceiaupdateutils.h --- a/messagingappbase/mce/inc/mceiaupdateutils.h Wed Mar 31 21:25:02 2010 +0300 +++ b/messagingappbase/mce/inc/mceiaupdateutils.h Wed Apr 14 15:53:21 2010 +0300 @@ -57,6 +57,15 @@ virtual ~CMceIAUpdateUtils(); void StartL( const TUid aAppUid ); + + /** + * Is IAD Update requried to do now + * @return TBool + * ETrue, If the KMceIADUpdateCheckRetryInterval is over after the previous try + * EFalse, If the KMceIADUpdateCheckRetryInterval is not over after the previous retry + */ + TBool IsUpdateRequired(); + protected: /** @@ -156,7 +165,11 @@ TUid iAppUid; CMceUi& iMceUi; - + + /** + * Previous IAD update check retry time + */ + TTime iPrevIADUpdateCheckTry; }; #endif // C_CMCEIAUPDATEUTILS_H diff -r c6838af47512 -r 52d61119153d messagingappbase/mce/inc/mceui.h --- a/messagingappbase/mce/inc/mceui.h Wed Mar 31 21:25:02 2010 +0300 +++ b/messagingappbase/mce/inc/mceui.h Wed Apr 14 15:53:21 2010 +0300 @@ -1149,6 +1149,12 @@ RFs iFs; CBufFlat* iEncodeBuffer; CMmsClientMtm* iMmsMtm; + /** + * Iad Update Feature Flag. + * It will be ETrue, if feature is enabled, + * otherwise EFalse + */ + TBool iIadUpdateVal; }; #endif diff -r c6838af47512 -r 52d61119153d messagingappbase/mce/src/MceBitmapResolver.cpp --- a/messagingappbase/mce/src/MceBitmapResolver.cpp Wed Mar 31 21:25:02 2010 +0300 +++ b/messagingappbase/mce/src/MceBitmapResolver.cpp Wed Apr 14 15:53:21 2010 +0300 @@ -36,7 +36,7 @@ #include "MceListItem.h" #include "MceBitmapResolver.h" #include "MceIds.h" //kmcedocumentsentryid - +#include // security data caging #include #include @@ -151,7 +151,13 @@ CreateAndAppendIconL( KAknsIIDQgnIndiMcePriorityHigh, iFilenameAvkon, EMbmAvkonQgn_indi_mce_priority_high, &listItem ); CreateAndAppendIconL( KAknsIIDQgnIndiMcePriorityLow, iFilenameAvkon, EMbmAvkonQgn_indi_mce_priority_low, &listItem ); + _LIT( KMceExtraIconsDirAndFile,"MceExtraIcons.mbm" ); + TParse cvfp; + cvfp.Set( KMceExtraIconsDirAndFile, &KDC_APP_BITMAP_DIR , NULL ); + listItem.iExtraItem = ETrue; + CreateAndAppendIconL( KAknsIIDQgnPropImIbox, cvfp.FullName(), EMbmMceextraiconsQgn_prop_im_ibox , &listItem ); + CreateAndAppendIconL( KAknsIIDQgnPropImIboxNew, cvfp.FullName(), EMbmMceextraiconsQgn_prop_im_ibox_new , &listItem ); // add one dummy item which will be replaced when querying message items icons CreateAndAppendIconL( KAknsIIDQgnPropMceUnknownRead, EMbmMuiuQgn_prop_mce_unknown_read ); @@ -830,6 +836,29 @@ id = KAknsIIDQgnIndiConnectionInactiveAdd; colorSkinnedBitmap = ETrue; break; + case EMceBitmapIndexConversation: + { + _LIT( KMceExtraIconsDirAndFile,"MceExtraIcons.mbm" ); + TParse cvfp; + cvfp.Set(KMceExtraIconsDirAndFile, &KDC_APP_BITMAP_DIR, NULL ); + fileName.Set(cvfp.FullName()); + bitmapIndex = EMbmMceextraiconsQgn_prop_im_ibox; + id = KAknsIIDQgnPropImIbox; + colorSkinnedBitmap = EFalse; + } + break; + + case EMceBitmapIndexConversationNew: + { + _LIT( KMceExtraIconsDirAndFile,"MceExtraIcons.mbm" ); + TParse cvfp; + cvfp.Set(KMceExtraIconsDirAndFile, &KDC_APP_BITMAP_DIR, NULL ); + fileName.Set(cvfp.FullName()); + bitmapIndex = EMbmMceextraiconsQgn_prop_im_ibox_new; + id = KAknsIIDQgnPropImIboxNew; + colorSkinnedBitmap = EFalse; + } + break; case EMceBitmapIndexReplaceMtmIcon: default: fileName.Set( iFilenameMuiu ); diff -r c6838af47512 -r 52d61119153d messagingappbase/mce/src/MceMainViewListItemArray.cpp --- a/messagingappbase/mce/src/MceMainViewListItemArray.cpp Wed Mar 31 21:25:02 2010 +0300 +++ b/messagingappbase/mce/src/MceMainViewListItemArray.cpp Wed Apr 14 15:53:21 2010 +0300 @@ -89,6 +89,7 @@ //cmail update #define KUidMsgTypeFsMtmVal 0x2001F406 +#define KConversationUidVal 0x2002A540 //Conversation Application UID //cmail update @@ -176,6 +177,7 @@ // todo iListBoxText = HBufC::NewL( iDescriptionLength*3 ); + iDefaultViewSettings = KMceConversationview; } // Two-phased constructor. @@ -431,6 +433,10 @@ tempText.Copy( item.iPrintableText ); return tempText; } + else if( item.iApplicationUid == KConversationUidVal ) + { + return CreateConversationsListItem( aIndex ); + } else { return item.iPrintableText; @@ -458,7 +464,15 @@ if ( item.iIconIndex <= KErrNone || item.iIconIndex >= iBitmapResolver.MtmIconIndex() ) { TInt messageCount = 0; - CONST_CAST( TMceListItem*, &item)->iIconIndex = iBitmapResolver.BitmapIndex( entry, messageCount ); + TMsvId id = entry.Id(); + 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; } tempText.AppendNum( item.iIconIndex ); @@ -1014,7 +1028,15 @@ if ( iSession->GetEntry( item.iMsvId, serviceId, entry ) == KErrNone ) { TInt messageCount = 0; - item.iIconIndex = iBitmapResolver.BitmapIndex( entry, messageCount ); + TMsvId id = entry.Id(); + if(iDefaultViewSettings == KMceConversationview && id == KMsvGlobalInBoxIndexEntryId ) + { + item.iIconIndex = EMceBitmapIndexInbox; + } + else + { + item.iIconIndex = iBitmapResolver.BitmapIndex( entry, messageCount ); + } item.iMessageCount = messageCount; // item.iUnreadMessageCount = unreadMessageCount; if ( iListItemArrayObserver ) @@ -1145,6 +1167,7 @@ tempItem.iMsvId = extraItem.iCommandId; tempItem.iPrintableText.Copy( extraItem.iPrintableText ); tempItem.iSecondaryText.Copy(extraItem.iSecondaryText); + tempItem.iApplicationUid = extraItem.iApplicationUid; TUid appUid; appUid.iUid = extraItem.iApplicationUid; AddExtraItemWithIconL( tempItem, Count(), extraItem.iIconIndex, appUid ); @@ -1249,4 +1272,41 @@ 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 ) + { + 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; + } + +// ---------------------------------------------------- +// CMceMainViewListItemArray::SetDefaultViewSettings() +// ---------------------------------------------------- +void CMceMainViewListItemArray::SetDefaultViewSettings(TBool aVal) + { + iDefaultViewSettings = aVal; + Reset(); + TRAP_IGNORE(AddFoldersL()); + } // End of File diff -r c6838af47512 -r 52d61119153d messagingappbase/mce/src/MceMainViewListView.cpp --- a/messagingappbase/mce/src/MceMainViewListView.cpp Wed Mar 31 21:25:02 2010 +0300 +++ b/messagingappbase/mce/src/MceMainViewListView.cpp Wed Apr 14 15:53:21 2010 +0300 @@ -51,7 +51,8 @@ #include #include #include "MceListItem.h" - +#include "MceIds.hrh" +#include "MceIds.h" #include #include #include @@ -331,8 +332,13 @@ iMsgListContainer->ListItems()->SetListItemArrayObserver( this ); ResetBitmapsL(); iMsgListContainer->SetMskL(); + TInt defaultview = KMceConversationview; + defaultview = GetMceDefaultViewL(); + if(defaultview != KErrNotFound) + { + iMsgListContainer->ListItems()->SetDefaultViewSettings(defaultview); + } } - if ( !iDrawListbox ) { return; @@ -492,14 +498,14 @@ case EAknCmdHideInBackground: break; case EMceDefaultConversationsView: - if ( SetMceDefaultViewL(EMceConversationview) ) + if ( SetMceDefaultViewL(KMceConversationview) ) { ShowConfirmationNoteL(R_DEFAULTVIEW_CONVERSATION_SELECTED); } break; case EMceDefaultInboxView: - if ( SetMceDefaultViewL(EMceInboxview) ) + if ( SetMceDefaultViewL(KMceInboxView) ) { ShowConfirmationNoteL(R_DEFAULTVIEW_INBOX_SELECTED); } @@ -797,12 +803,12 @@ { TInt defaultview = KErrGeneral; defaultview = GetMceDefaultViewL(); - if(defaultview == EMceInboxview ) + if(defaultview == KMceInboxView ) { aMenuPane->SetItemButtonState( EMceDefaultInboxView, EEikMenuItemSymbolOn ); } - if(defaultview == EMceConversationview ) + else if(defaultview == KMceConversationview ) { aMenuPane->SetItemButtonState( EMceDefaultConversationsView, EEikMenuItemSymbolOn ); @@ -1163,6 +1169,11 @@ CleanupStack::PushL( repository ); repository->Set(KMuiuMceDefaultView,aVal); CleanupStack::PopAndDestroy( repository ); + if(iMsgListContainer) + { + iMsgListContainer->ListItems()->SetDefaultViewSettings(aVal); + iMsgListContainer->ListBox()->DrawDeferred(); + } return ETrue; } else diff -r c6838af47512 -r 52d61119153d messagingappbase/mce/src/MceMessageListView.cpp --- a/messagingappbase/mce/src/MceMessageListView.cpp Wed Mar 31 21:25:02 2010 +0300 +++ b/messagingappbase/mce/src/MceMessageListView.cpp Wed Apr 14 15:53:21 2010 +0300 @@ -158,6 +158,7 @@ delete iDateTimeNotifier; delete iAiwServiceHandler; RProperty::Delete( KPSUidMuiu, KMceTemplatesDialog ); + RProperty::Delete( KPSUidMuiu, KMuiuOneRowListPopulated ); iSessionHolder.RemoveClient(); } @@ -187,7 +188,17 @@ } iListboxMailTypeObserver = CMceListboxTypeObserver::NewL( *this, KMuiuMailMessageListType ); iListboxInboxTypeObserver = CMceListboxTypeObserver::NewL( *this, KMuiuInboxMessageListType ); - + TInt r = RProperty::Define( KPSUidMuiu, KMuiuOneRowListPopulated, RProperty::EInt ); + if ( r != KErrAlreadyExists || r != KErrNone) + { + User::LeaveIfError( r ); + } + // Initialisation + r = RProperty::Set( KPSUidMuiu, KMuiuOneRowListPopulated, EFalse ); + if ( r != KErrNone ) + { + User::LeaveIfError( r ); + } MCELOGGER_LEAVEFN("CMceMessageListView::ConstructL"); } @@ -2283,6 +2294,16 @@ // ---------------------------------------------------- void CMceMessageListView::EditMenuL( CEikMenuPane* aMenuPane ) const { + TInt listPopulated =1; + //Get the value, accordingly we can dim/undim mark all for one row list only + if(!iCurrentListType) + { + TInt r = RProperty::Get( KPSUidMuiu, KMuiuOneRowListPopulated, listPopulated ); + if ( r != KErrNone ) + { + User::LeaveIfError( r ); + } + } // This function is not called if empty folder because in that case // EditMenu is hidden aMenuPane->SetItemDimmed( EAknCmdMarkReadMsgs, ETrue ); @@ -2305,7 +2326,7 @@ } } - if ( ( count + SubfolderCount() ) == iMsgListContainer->Count() ) + if ( ( count + SubfolderCount() ) == iMsgListContainer->Count() || !listPopulated) { //if all selected, disable markall aMenuPane->SetItemDimmed( EAknMarkAll, ETrue ); diff -r c6838af47512 -r 52d61119153d messagingappbase/mce/src/MceOneRowMessageListArrayLoader.cpp --- a/messagingappbase/mce/src/MceOneRowMessageListArrayLoader.cpp Wed Mar 31 21:25:02 2010 +0300 +++ b/messagingappbase/mce/src/MceOneRowMessageListArrayLoader.cpp Wed Apr 14 15:53:21 2010 +0300 @@ -32,6 +32,7 @@ #include // mtm uids #include #include +#include #include "MceOneRowMessageListArray.h" #include "MceLogText.h" @@ -61,6 +62,7 @@ #include "MceCommands.hrh" #include "MceOneRowMessageListArrayLoader.h" #include +#include // CONSTANTS @@ -176,6 +178,12 @@ // void CMceOneRowListItemArrayLoader::StartL() { + //Before Starting to prepare the list, set the value to zero. + TInt r = RProperty::Set( KPSUidMuiu, KMuiuOneRowListPopulated, EFalse ); + if ( r != KErrNone ) + { + User::LeaveIfError( r ); + } Cancel(); InitialiseSearch(); delete iEntriesToBeAdded; @@ -539,6 +547,15 @@ CreateTimeBasedArrayL(); break; } + if(iEntriesToBeAdded->Count() == 0) + { + //all the entries are populated successfully + TInt r = RProperty::Set( KPSUidMuiu, KMuiuOneRowListPopulated, ETrue ); + if ( r != KErrNone ) + { + User::LeaveIfError( r ); + } + } } diff -r c6838af47512 -r 52d61119153d messagingappbase/mce/src/MceOneRowMessageListContainer.cpp --- a/messagingappbase/mce/src/MceOneRowMessageListContainer.cpp Wed Mar 31 21:25:02 2010 +0300 +++ b/messagingappbase/mce/src/MceOneRowMessageListContainer.cpp Wed Apr 14 15:53:21 2010 +0300 @@ -414,8 +414,8 @@ { SetCurrentItemIdL( iSelectedItemWaitingIndex ); } - - iTreeListBox->Sort( iListItems, CAknTreeList::ESaveFocus, ETrue ); + //progressive draw for every 200 entries. + iTreeListBox->DrawNow(); } diff -r c6838af47512 -r 52d61119153d messagingappbase/mce/src/mceiaupdateutils.cpp --- a/messagingappbase/mce/src/mceiaupdateutils.cpp Wed Mar 31 21:25:02 2010 +0300 +++ b/messagingappbase/mce/src/mceiaupdateutils.cpp Wed Apr 14 15:53:21 2010 +0300 @@ -28,6 +28,12 @@ #include "mceiaupdateutils.h" #include "MceLogText.h" +// CONSTANT + +// Defines the time span in hours for the next IAD update check event +// which will be trigered. +const TInt KMceIADUpdateCheckRetryInterval = 24; + // ======== MEMBER FUNCTIONS ======== // --------------------------------------------------------------------------- @@ -47,14 +53,10 @@ // void CMceIAUpdateUtils::ConstructL() { - if( FeatureManager::FeatureSupported( KFeatureIdIAUpdate ) ) - { - iUpdate = CIAUpdate::NewL( *this ); - if( iUpdate ) - { - iParameters = CIAUpdateParameters::NewL(); - } - } + iUpdate = NULL; + iParameters = NULL; + // set it to current time. + iPrevIADUpdateCheckTry.UniversalTime(); } @@ -87,6 +89,16 @@ // void CMceIAUpdateUtils::DoStartL( const TUid aAppUid ) { + if(!iUpdate) + { + iUpdate = CIAUpdate::NewL( *this ); + } + + if( !iParameters ) + { + iParameters = CIAUpdateParameters::NewL(); + } + if( iUpdate && iParameters ) { iParameters->SetUid( aAppUid ); @@ -98,6 +110,10 @@ MCELOGGER_WRITE("StartL --- check updates"); iUpdate->CheckUpdates( *iParameters ); } + else + { + Delete(); //Delete session with IAD server + } } // --------------------------------------------------------------------------- @@ -127,6 +143,8 @@ void CMceIAUpdateUtils::CheckUpdatesComplete( TInt aErrorCode, TInt aAvailableUpdates ) { + TBool bContinue = EFalse; + if ( aErrorCode == KErrNone ) { if ( aAvailableUpdates > 0 ) @@ -136,6 +154,7 @@ // There were some updates available. MCELOGGER_WRITE("CheckUpdatesComplete --- updates available"); iUpdate->UpdateQuery(); + bContinue = ETrue; } else { @@ -148,6 +167,11 @@ MCELOGGER_WRITE("CheckUpdatesComplete --- no updates available"); } } + if(!bContinue) + { + Delete(); //Delete session with IAD server + } + } // ----------------------------------------------------------------------------- @@ -184,6 +208,7 @@ // void CMceIAUpdateUtils::UpdateQueryComplete( TInt aErrorCode, TBool aUpdateNow ) { + TBool bContinue = EFalse; if ( aErrorCode == KErrNone ) { if ( aUpdateNow ) @@ -191,6 +216,7 @@ // User choosed to update now, so let's launch the IAUpdate UI. MCELOGGER_WRITE("UpdateQueryComplete --- now"); iUpdate->ShowUpdates( *iParameters ); + bContinue = ETrue; } else { @@ -198,6 +224,10 @@ MCELOGGER_WRITE("UpdateQueryComplete --- later"); } } + if(!bContinue) + { + Delete(); //Delete session with IAD server + } } // ----------------------------------------------------------------------------- // From class MIAUpdateObserver. @@ -244,4 +274,42 @@ } +// --------------------------------------------------------------------------- +// Is IAD Update requried to do now +// YES, If the KMceIADUpdateCheckRetryInterval is over after the previous try +// NO, If the KMceIADUpdateCheckRetryInterval is not over after the previous retry +// --------------------------------------------------------------------------- +// +TBool CMceIAUpdateUtils::IsUpdateRequired() + { + TBool required = EFalse; + TTime currTime; + TTimeIntervalHours hourInterval; + TInt err = KErrNone; + + currTime.UniversalTime(); + + err = currTime.HoursFrom(iPrevIADUpdateCheckTry,hourInterval); + + // KErrNone-> successful case, + // reset the iPrevIADUpdateCheckTry to current time, + // start IAD check update + + // KErrOverflow -> if the calculated interval + // is too large for a 32-bit integer + // reset the iPrevIADUpdateCheckTry to current time + // start IAD check update + + // in all other cases don't do any thing. + + if(((err == KErrNone)&& + (hourInterval.Int() >= KMceIADUpdateCheckRetryInterval )) + ||(err == KErrOverflow)) + { + iPrevIADUpdateCheckTry.UniversalTime(); + required = ETrue; + } + + return required; + } // EOF diff -r c6838af47512 -r 52d61119153d messagingappbase/mce/src/mceui.cpp --- a/messagingappbase/mce/src/mceui.cpp Wed Mar 31 21:25:02 2010 +0300 +++ b/messagingappbase/mce/src/mceui.cpp Wed Apr 14 15:53:21 2010 +0300 @@ -286,8 +286,12 @@ delete iEmailApi; delete iEmailNotifHandler; delete iCancelExitFlagOperation; - delete iMceIAUpdate; - + + if(iMceIAUpdate) + { + delete iMceIAUpdate; + } + if ( iIdArray ) { delete iIdArray; @@ -427,8 +431,13 @@ iMailAccountItemArray = new(ELeave) CMceMailAccountItemArray( KMceArrayGranularity ); - iMceIAUpdate = CMceIAUpdateUtils::NewL(*this); - + iMceIAUpdate = NULL; + iIadUpdateVal = EFalse; + if(FeatureManager::FeatureSupported( KFeatureIdIAUpdate )) + { + iIadUpdateVal = ETrue; + } + if ( iAlwaysOnline ) { iConnectionMonitor.ConnectL(); @@ -2682,6 +2691,10 @@ { CleanupStack::PopAndDestroy(); // TCleanupItem - will show tabs again } + if ( iMceUiFlags.MceFlag( EMceUiFlagsTabsActive ) && (!tabsToCleanupStack) ) + { + ShowTabsL( iMceListView->ListContainer()->CurrentFolderId() ); + } } else { @@ -5556,13 +5569,29 @@ TBool newAudioMsgVal = EFalse; newAudioMsgVal = FeatureManager::FeatureSupported( KFeatureIdAudioMessaging ); newPostcardVal = FeatureManager::FeatureSupported( KFeatureIdMmsPostcard ); + if ( newAudioMsgVal != iAudioMsgEnabled || newPostcardVal != iPostcardEnabled ) { TRAP_IGNORE( HandleMTMChangeL() ); } - if ( MceViewActive( EMceMainViewActive ) ) - { - CheckIAUpdate(); + + if ( MceViewActive( EMceMainViewActive ) && iIadUpdateVal) + { + if(!iMceIAUpdate) // first time messaging view is activated + { + TRAP_IGNORE(iMceIAUpdate = CMceIAUpdateUtils::NewL(*this)); + if(iMceIAUpdate) + { + CheckIAUpdate(); + } + } + else + { + if(iMceIAUpdate->IsUpdateRequired()) + { + CheckIAUpdate(); + } + } } } diff -r c6838af47512 -r 52d61119153d messagingappbase/mceextraitems/group/ExtraIconlist_Scalable.txt --- a/messagingappbase/mceextraitems/group/ExtraIconlist_Scalable.txt Wed Mar 31 21:25:02 2010 +0300 +++ b/messagingappbase/mceextraitems/group/ExtraIconlist_Scalable.txt Wed Apr 14 15:53:21 2010 +0300 @@ -2,3 +2,4 @@ /c8,8 qgn_menu_smsvo.svg /c8,8 qgn_menu_wml.svg /c8,8 qgn_prop_im_ibox.svg +/c8,8 qgn_prop_im_ibox_new.svg diff -r c6838af47512 -r 52d61119153d messagingappbase/mcesettings/inc/MceSettingsDialog.h --- a/messagingappbase/mcesettings/inc/MceSettingsDialog.h Wed Mar 31 21:25:02 2010 +0300 +++ b/messagingappbase/mcesettings/inc/MceSettingsDialog.h Wed Apr 14 15:53:21 2010 +0300 @@ -25,7 +25,7 @@ #include #include -#include "mcesettingstitlepanehandlerdialog.h" +#include "MceSettingsTitlePaneHandlerDialog.h" #include diff -r c6838af47512 -r 52d61119153d messagingappbase/mcesettings/src/MceSettingsEmailSel.cpp --- a/messagingappbase/mcesettings/src/MceSettingsEmailSel.cpp Wed Mar 31 21:25:02 2010 +0300 +++ b/messagingappbase/mcesettings/src/MceSettingsEmailSel.cpp Wed Apr 14 15:53:21 2010 +0300 @@ -730,7 +730,8 @@ // services. entryUid.iUid = tentry2.Id(); //If cmail box add to the hash table and cmaillist - if(tentry2.iMtm.iUid == KUidMsgTypeFsMtmVal ) + if(tentry2.iMtm.iUid == KUidMsgTypeFsMtmVal + && timeItems != NULL && cmaillist != NULL) { TTimeIntervalMicroSeconds difference = timeNow.MicroSecondsFrom( tentry2.iDate.Int64() ); TInt ret = iCmailBoxes->Insert(difference.Int64() , cc ); @@ -738,7 +739,7 @@ cmaillist->AppendL(tentry2.iDetails); } //Add Non Cmail - else + else if( tentry2.iMtm.iUid != KSenduiMtmImap4UidValue && tentry2.iMtm.iUid != KSenduiMtmSmtpUidValue && tentry2.iMtm.iUid != KSenduiMtmPop3UidValue) { aListItemUids.AppendL( entryUid ); aListItems.AppendL( tentry2.iDetails ); diff -r c6838af47512 -r 52d61119153d messagingappbase/msgavkon/msgindicatorplugin/inc/msgindicatorpluginimplementation.h --- a/messagingappbase/msgavkon/msgindicatorplugin/inc/msgindicatorpluginimplementation.h Wed Mar 31 21:25:02 2010 +0300 +++ b/messagingappbase/msgavkon/msgindicatorplugin/inc/msgindicatorpluginimplementation.h Wed Apr 14 15:53:21 2010 +0300 @@ -24,7 +24,7 @@ // Until aknstylusactivatedpopupcontent.h is fixed // INCLUDES -#include +#include #include // CAknIndicatorPlugin #include // Controlling the preview pop-up component #include // Stylus activated pop-up conten diff -r c6838af47512 -r 52d61119153d messagingappbase/msgavkon/muiu_internal/flagger/inc/MuiuFlagger.h --- a/messagingappbase/msgavkon/muiu_internal/flagger/inc/MuiuFlagger.h Wed Mar 31 21:25:02 2010 +0300 +++ b/messagingappbase/msgavkon/muiu_internal/flagger/inc/MuiuFlagger.h Wed Apr 14 15:53:21 2010 +0300 @@ -22,7 +22,7 @@ #define CMUIUFLAGGER_H // INCLUDES -#include "muiuflags.h" +#include "MuiuFlags.h" #include // CONSTANTS diff -r c6838af47512 -r 52d61119153d messagingappbase/msgavkon/muiu_internal/inc/MessagingInternalPSKeys.h --- a/messagingappbase/msgavkon/muiu_internal/inc/MessagingInternalPSKeys.h Wed Mar 31 21:25:02 2010 +0300 +++ b/messagingappbase/msgavkon/muiu_internal/inc/MessagingInternalPSKeys.h Wed Apr 14 15:53:21 2010 +0300 @@ -43,6 +43,10 @@ // Tells whether Msg Sent as settings to be removed from Text settings view const TUint32 KMuiuRemoveMsgSentSettings = 0x00000004; +// The New PSK introduced from 9.2 +// Tells whether If one row list is populated or not, 1- list is populated, 0 - list population is in progress +const TUint32 KMuiuOneRowListPopulated = 0x00000005; + // The New PSK introduced from 5.0 const TUid KPSUidMsgEditor = {0x101F87FF}; diff -r c6838af47512 -r 52d61119153d messagingappbase/msgavkon/muiu_internal/servicesinternal/inc/MuiuContactService.h --- a/messagingappbase/msgavkon/muiu_internal/servicesinternal/inc/MuiuContactService.h Wed Mar 31 21:25:02 2010 +0300 +++ b/messagingappbase/msgavkon/muiu_internal/servicesinternal/inc/MuiuContactService.h Wed Apr 14 15:53:21 2010 +0300 @@ -21,7 +21,7 @@ #define MUIUCONTACTSERVICE_H #include // CBase -#include "muiumsvuiserviceutilitiesinternal.h" +#include "MuiuMsvUiServiceUtilitiesInternal.h" class CMuiuContactAddressMatcher; class CMsgVoIPExtension; diff -r c6838af47512 -r 52d61119153d messagingappbase/msgavkon/muiu_internal/servicesinternal/inc/MuiuLock.h --- a/messagingappbase/msgavkon/muiu_internal/servicesinternal/inc/MuiuLock.h Wed Mar 31 21:25:02 2010 +0300 +++ b/messagingappbase/msgavkon/muiu_internal/servicesinternal/inc/MuiuLock.h Wed Apr 14 15:53:21 2010 +0300 @@ -22,7 +22,7 @@ class CRepository; -#include "messaginginternalcrkeys.h" +#include "MessagingInternalCRKeys.h" // Lock identifier for messaging settings access diff -r c6838af47512 -r 52d61119153d messagingappbase/msgavkon/muiu_internal/settingsarray/src/MuiuSettingsArray.cpp --- a/messagingappbase/msgavkon/muiu_internal/settingsarray/src/MuiuSettingsArray.cpp Wed Mar 31 21:25:02 2010 +0300 +++ b/messagingappbase/msgavkon/muiu_internal/settingsarray/src/MuiuSettingsArray.cpp Wed Apr 14 15:53:21 2010 +0300 @@ -30,7 +30,7 @@ #include #include "MuiuSettingsArray.h" #include -#include +#include #include // CONSTANTS diff -r c6838af47512 -r 52d61119153d messagingappbase/msgeditor/mediacontrolsrc/MsgVideoControl.cpp --- a/messagingappbase/msgeditor/mediacontrolsrc/MsgVideoControl.cpp Wed Mar 31 21:25:02 2010 +0300 +++ b/messagingappbase/msgeditor/mediacontrolsrc/MsgVideoControl.cpp Wed Apr 14 15:53:21 2010 +0300 @@ -637,6 +637,8 @@ MSGMEDIACONTROLLOGGER_WRITEF( _L("MsgVideoControl:: SizeChanged(): cliRect (%d,%d),( %d,%d)"), clipRect.iTl.iX, clipRect.iTl.iY, clipRect.iBr.iX, clipRect.iBr.iY); } + iVideoAreaControl->SetRect( iVideoFrameArea ); + // iVideoAreaControl is relative to screen coordinates. iVideoPlayer->SetDisplayWindowL( ControlEnv()->WsSession(), @@ -644,7 +646,6 @@ *iVideoAreaControl->DrawableWindow(), rect, clipRect ); - iVideoAreaControl->SetRect( iVideoFrameArea ); MSGMEDIACONTROLLOGGER_LEAVEFN( "MsgVideoControl : DoSizeChangedL()" ); } diff -r c6838af47512 -r 52d61119153d messagingappbase/ncnlist/src/CNcnNotifApiObserver.cpp --- a/messagingappbase/ncnlist/src/CNcnNotifApiObserver.cpp Wed Mar 31 21:25:02 2010 +0300 +++ b/messagingappbase/ncnlist/src/CNcnNotifApiObserver.cpp Wed Apr 14 15:53:21 2010 +0300 @@ -38,7 +38,7 @@ #include #include // Messaging utilites #include -#include +#include const TUid KUidMsgTypeCmailMtmVal = {0x2001F406}; diff -r c6838af47512 -r 52d61119153d messagingappbase/ncnlist/src/NcnOutboxObserver.cpp --- a/messagingappbase/ncnlist/src/NcnOutboxObserver.cpp Wed Mar 31 21:25:02 2010 +0300 +++ b/messagingappbase/ncnlist/src/NcnOutboxObserver.cpp Wed Apr 14 15:53:21 2010 +0300 @@ -33,7 +33,7 @@ #include "NcnModelBase.h" #include "CNcnMsvSessionHandler.h" #include "CNcnMobileSignalStrengthHandler.h" -#include +#include const TUid KUidMsgTypeCmailMtmVal = {0x2001F406}; // ================= MEMBER FUNCTIONS ======================= diff -r c6838af47512 -r 52d61119153d messagingappbase/smartmessaging/richbio/src/CRichBio.cpp --- a/messagingappbase/smartmessaging/richbio/src/CRichBio.cpp Wed Mar 31 21:25:02 2010 +0300 +++ b/messagingappbase/smartmessaging/richbio/src/CRichBio.cpp Wed Apr 14 15:53:21 2010 +0300 @@ -25,7 +25,7 @@ #include // Fonts #include // CMsgExpandableControlEditor #include // MaxBodyHeight -#include // TAknLayoutId +#include // TAknLayoutId #include #include // LAF diff -r c6838af47512 -r 52d61119153d messagingappbase/smilparser/GROUP/bld.inf --- a/messagingappbase/smilparser/GROUP/bld.inf Wed Mar 31 21:25:02 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ -// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" -// which accompanies this distribution, and is available -// at the URL "http://www.eclipse.org/legal/epl-v10.html". -// -// Initial Contributors: -// Nokia Corporation - initial contribution. -// -// Contributors: -// -// Description: -// Messaging - GMXML -// Generic XML parser and composer -// -// - -/** - @file -*/ - - -PRJ_PLATFORMS -DEFAULT - -// Subproject builds -#include "../SMILdtd/GROUP/bld.inf" -#include "../Rom/BLD.INF" - -PRJ_MMPFILES diff -r c6838af47512 -r 52d61119153d messagingappbase/smilparser/GROUP/messaging_gmxml.history.xml --- a/messagingappbase/smilparser/GROUP/messaging_gmxml.history.xml Wed Mar 31 21:25:02 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,61 +0,0 @@ - - - - SMIL parsing implemented via generic XML Parser / Composer with a "mini-DOM" API able to perform syntax checking against simple DTDs. Replaces SMIL Translater implementation of 7.0s. - - - - Adding SMIL parser into webservices-xml package. - - - - - - syntax error in function declaration - - - - stray scanner defect. - - - - - Mixed header files will now contain only published All or published Partner or internal - - - - - - Added IM tag message server. - - - written a new api which handles the case when there is quotation in file name. - - - - Checked the if condition is not false for the AppendChild function. - - - - Added a new exported leaving function. This is BR approved and BR number is BR2302.3 - - - - Added condition to differentiate the winscw and armv5 def files for case sensitive - - - - Added IM tag for all given header files. - - - - Now GmXML component restrict for eating white spaces - - - - - GNU Make-based build system - - - - diff -r c6838af47512 -r 52d61119153d messagingappbase/smilparser/GROUP/messaging_gmxml.mrp --- a/messagingappbase/smilparser/GROUP/messaging_gmxml.mrp Wed Mar 31 21:25:02 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ -# -# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -# All rights reserved. -# This component and the accompanying materials are made available -# under the terms of "Eclipse Public License v1.0" -# which accompanies this distribution, and is available -# at the URL "http://www.eclipse.org/legal/epl-v10.html". -# -# Initial Contributors: -# Nokia Corporation - initial contribution. -# -# Contributors: -# -# Description: -# - -component messaging_gmxml -source \sf\app\messaging\messagingappbase\smilparser -binary \sf\app\messaging\messagingappbase\smilparser\GROUP all -exports \sf\app\messaging\messagingappbase\smilparser\GROUP - -notes_source \component_defs\release.src - - -ipr E -ipr T \sf\app\messaging\messagingappbase\smilparser\SMILdtd\SMIL_Test_Files -ipr T \sf\app\messaging\messagingappbase\smilparser\SMILdtd\tinc -ipr T \sf\app\messaging\messagingappbase\smilparser\SMILdtd\tsrc - - diff -r c6838af47512 -r 52d61119153d mobilemessaging/smum/src/SmumSettingsDialogGSM.cpp --- a/mobilemessaging/smum/src/SmumSettingsDialogGSM.cpp Wed Mar 31 21:25:02 2010 +0300 +++ b/mobilemessaging/smum/src/SmumSettingsDialogGSM.cpp Wed Apr 14 15:53:21 2010 +0300 @@ -40,7 +40,7 @@ #include #include // CRepository #include // Keys -#include +#include // locals #include "smsui.pan" // for panics diff -r c6838af47512 -r 52d61119153d mobilemessaging/unieditor/application/inc/UniEditorDocument.h --- a/mobilemessaging/unieditor/application/inc/UniEditorDocument.h Wed Mar 31 21:25:02 2010 +0300 +++ b/mobilemessaging/unieditor/application/inc/UniEditorDocument.h Wed Apr 14 15:53:21 2010 +0300 @@ -523,6 +523,11 @@ */ inline TInt SmsSizeWarningBytes(); + /* Set the Attachemnt flag ELaunchFromCvAttachment */ + inline void SetLaunchFromCvAttachment(TBool); + + /* Verify is the flag ELaunchFromCvAttachment is set */ + inline TBool IsLaunchFromCvAttachment() ; private: /** @@ -554,7 +559,8 @@ EUniDocumentRestrictedReplySms = 0x10, EUniDocumentRestrictedReplyMms = 0x20, EUniDocumentCSPBitsSupported = 0x40, - EUniDocumentUnicodeCharacterMode = 0x80 + EUniDocumentUnicodeCharacterMode = 0x80, + ELaunchFromCvAttachment = 0x100 }; CEikonEnv* iEnvironment; diff -r c6838af47512 -r 52d61119153d mobilemessaging/unieditor/application/inc/UniEditorDocument.inl --- a/mobilemessaging/unieditor/application/inc/UniEditorDocument.inl Wed Mar 31 21:25:02 2010 +0300 +++ b/mobilemessaging/unieditor/application/inc/UniEditorDocument.inl Wed Apr 14 15:53:21 2010 +0300 @@ -422,4 +422,32 @@ return iSmsSizeWarningBytes; } +// --------------------------------------------------------- +// CUniEditorDocument:: SetLaunchFromCvAttachment +// Set/Reset the attachment Flag +// --------------------------------------------------------- + +inline void CUniEditorDocument::SetLaunchFromCvAttachment(TBool aVal) + { + if(aVal) + { + iFlags |= ELaunchFromCvAttachment; + } + else + { + iFlags &= ~ELaunchFromCvAttachment; + } + } + +// --------------------------------------------------------- +// CUniEditorDocument:: IsLaunchFromCvAttachment +// Verify is attachment Flag set and reset it. +//--------------------------------------------------------- + + inline TBool CUniEditorDocument::IsLaunchFromCvAttachment() + { + TBool x =iFlags & ELaunchFromCvAttachment; + iFlags &= ~ELaunchFromCvAttachment; + return(x); + } // End of file diff -r c6838af47512 -r 52d61119153d mobilemessaging/unieditor/application/src/UniEditorAppUi.cpp --- a/mobilemessaging/unieditor/application/src/UniEditorAppUi.cpp Wed Mar 31 21:25:02 2010 +0300 +++ b/mobilemessaging/unieditor/application/src/UniEditorAppUi.cpp Wed Apr 14 15:53:21 2010 +0300 @@ -6592,6 +6592,11 @@ else { FinalizeLaunchL(); + // check is Unieditor is launched from conversation by Addachemnt option + if( Document()->IsLaunchFromCvAttachment()) + { + iFixedToolbar->ToolbarExtension()->SetShown(ETrue); + } } } diff -r c6838af47512 -r 52d61119153d mobilemessaging/unieditor/application/src/UniEditorHeader.cpp --- a/mobilemessaging/unieditor/application/src/UniEditorHeader.cpp Wed Mar 31 21:25:02 2010 +0300 +++ b/mobilemessaging/unieditor/application/src/UniEditorHeader.cpp Wed Apr 14 15:53:21 2010 +0300 @@ -56,7 +56,7 @@ // CONSTANTS const TInt KUniCharAt = '@'; const TInt KUniMaxSubject = 40; - +const TUint KZeroWidthNonJoiner = 0x200C; // MACROS // LOCAL CONSTANTS AND MACROS @@ -115,6 +115,18 @@ iAddDelayed = EUniFeatureTo; iDoc.DataModel()->AttachmentList().SetListObserver( this ); + TPtrC cvsubject = iMtm.SubjectL(); + TUint value = 0; + if( cvsubject.Length() != 0 ) + { + TLex Cv( cvsubject); + Cv.Val( value ); + if(value == KZeroWidthNonJoiner) + { + iDoc.SetLaunchFromCvAttachment(ETrue); + iMtm.SetSubjectL(KNullDesC()); + } + } const TPtrC subject = iMtm.SubjectL(); diff -r c6838af47512 -r 52d61119153d mobilemessaging/unieditor/inc/UniMsvEntry.h --- a/mobilemessaging/unieditor/inc/UniMsvEntry.h Wed Mar 31 21:25:02 2010 +0300 +++ b/mobilemessaging/unieditor/inc/UniMsvEntry.h Wed Apr 14 15:53:21 2010 +0300 @@ -24,7 +24,7 @@ #include #include -#include +#include // CONSTANTS @@ -112,7 +112,7 @@ }; -#include +#include #endif // __UNIMSVENTRY_H diff -r c6838af47512 -r 52d61119153d mobilemessaging/unieditor/model/src/UniTextObject.cpp --- a/mobilemessaging/unieditor/model/src/UniTextObject.cpp Wed Mar 31 21:25:02 2010 +0300 +++ b/mobilemessaging/unieditor/model/src/UniTextObject.cpp Wed Apr 14 15:53:21 2010 +0300 @@ -370,12 +370,15 @@ { if ( iTextEditor && iTextEditor->Text()->DocumentLength() ) { - TPtrC ptr = iTextEditor->Text()->Read( 0, KMaxFilenameLenghtForAttachment ); + HBufC *ptr = iTextEditor->GetTextInHBufL(); + CleanupStack::PushL( ptr ); MsgAttachmentUtils::GetFileNameFromBuffer( aFileName, - ptr, + *ptr, KMaxFilenameLenghtForAttachment, &KExtTextPlain_16 ); + CleanupStack::PopAndDestroy( ptr ); + } if ( aFileName.Length() == 0 || !iFs.IsValidName( aFileName ) )