--- 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
};
--- 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
--- 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
--- 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
--- 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
/**
--- 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
--- 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
--- 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 <mceextraicons.mbg>
// security data caging
#include <data_caging_path_literals.hrh>
#include <bldvariant.hrh>
@@ -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 );
--- 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
--- 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 <MNcnInternalNotification.h>
#include <NcnNotificationDefs.h>
#include "MceListItem.h"
-
+#include "MceIds.hrh"
+#include "MceIds.h"
#include <ImumInternalApi.h>
#include <ImumInHealthServices.h>
#include <muiumsvuiserviceutilitiesinternal.h>
@@ -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
--- 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 );
--- 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 <SenduiMtmUids.h> // mtm uids
#include <eikenv.h>
#include <gulicon.h>
+#include <e32property.h>
#include "MceOneRowMessageListArray.h"
#include "MceLogText.h"
@@ -61,6 +62,7 @@
#include "MceCommands.hrh"
#include "MceOneRowMessageListArrayLoader.h"
#include <smuthdr.h>
+#include <messaginginternalpskeys.h>
// 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 );
+ }
+ }
}
--- 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();
}
--- 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
--- 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();
+ }
+ }
}
}
--- 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
--- 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 <ConeResLoader.h>
#include <msvapi.h>
-#include "mcesettingstitlepanehandlerdialog.h"
+#include "MceSettingsTitlePaneHandlerDialog.h"
#include <MsgArrays.h>
--- 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 );
--- 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 <AknLayout2ScalableDef.h>
+#include <aknlayout2scalabledef.h>
#include <AknIndicatorPlugin.h> // CAknIndicatorPlugin
#include <AknPreviewPopUpController.h> // Controlling the preview pop-up component
#include <aknstylusactivatedpopupcontent.h> // Stylus activated pop-up conten
--- 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 <e32cmn.h>
// CONSTANTS
--- 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};
--- 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 <e32base.h> // CBase
-#include "muiumsvuiserviceutilitiesinternal.h"
+#include "MuiuMsvUiServiceUtilitiesInternal.h"
class CMuiuContactAddressMatcher;
class CMsgVoIPExtension;
--- 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
--- 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 <muiu_internal.rsg>
#include "MuiuSettingsArray.h"
#include <e32property.h>
-#include <MessagingInternalPSkeys.h>
+#include <messaginginternalpskeys.h>
#include <StringLoader.h>
// CONSTANTS
--- 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()" );
}
--- 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 <NcnListInternalCRKeys.h>
#include <muiumsvuiserviceutilitiesinternal.h> // Messaging utilites
#include <messaginginternalcrkeys.h>
-#include <MIUTSET.H>
+#include <miutset.h>
const TUid KUidMsgTypeCmailMtmVal = {0x2001F406};
--- 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 <MIUTSET.H>
+#include <miutset.h>
const TUid KUidMsgTypeCmailMtmVal = {0x2001F406};
// ================= MEMBER FUNCTIONS =======================
--- 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 <calslbs.h> // Fonts
#include <MsgExpandableControlEditor.h> // CMsgExpandableControlEditor
#include <MsgEditorCommon.h> // MaxBodyHeight
-#include <AknLayoutDef.h> // TAknLayoutId
+#include <aknlayoutdef.h> // TAknLayoutId
#include <AknUtils.h>
#include <applayout.cdl.h> // LAF
--- 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
--- 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 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<relnotes name="SMIL Parser">
- <purpose>
- 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.
- </purpose>
-
- <deliverystep number="1842" name="CR1934: Messaging: Moving XML Parser" osproject="SymTB9.2" revision="012">
- <cr number="1934" title="Restructuring of the MCL">Adding SMIL parser into webservices-xml package.</cr>
- <milestone project="GT0539" number="3.4" />
- </deliverystep>
-
-
- <defect number="DEF142365" title="GCC-E: Simple syntax error" revision="011">
- syntax error in function declaration
- </defect>
-
- <defect number="DEF138034" title="GMXML parser could cause stray event panics" revision="010">
- stray scanner defect.
- </defect>
-
- <deliverystep number="1462" name="Splitting mixed header files for Messaging" osproject="SymTB92" revision="009">
- <preq number="2510" title=" Splitting mixed header files for Messaging">
- Mixed header files will now contain only published All or published Partner or internal
- </preq>
- <milestone project="GT0465" number="3.5"/>
- </deliverystep>
-
- <defect number="DEF128078" title="@prototype tags in messaging" revision="008">
- Added IM tag message server.
- </defect>
- <defect number="PDEF126520" title="[Folder name missing characters" revision="007">
- written a new api which handles the case when there is quotation in file name.
- </defect>
-
- <defect number="DEF125067" title="[coverity] - CHECKED_RETURN - messaging/gmxml/xmlparser/src/gmxmlparser.cpp" revision="006">
- Checked the if condition is not false for the AppendChild function.
- </defect>
-
- <defect number="PDEF115899" title="xmlparser panics when out of memory" revision="005">
- Added a new exported leaving function. This is BR approved and BR number is BR2302.3
- </defect>
-
- <defect number="DEF108002" title="Warnings generated with checksource build " revision="004">
- Added condition to differentiate the winscw and armv5 def files for case sensitive
- </defect>
-
- <defect number="DEF105400" title="Add missing IM tags to Messaging public header files" revision="003">
- Added IM tag for all given header files.
- </defect>
-
- <defect number="INC105134" title="GmXML consumes whitespace characters" revision="002">
- Now GmXML component restrict for eating white spaces
- </defect>
-
- <deliverystep number="500" name="Messaging file name changes to support GNU compiler for Linux" osproject="Oghma" revision="001">
- <preq number="1182" title="GNU Make-based build system">
- GNU Make-based build system
- </preq>
- <milestone project="GT0342" number="3.3"/>
- </deliverystep>
-</relnotes>
--- 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
-
-
--- 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 <RCustomerServiceProfileCache.h>
#include <centralrepository.h> // CRepository
#include <messaginginternalcrkeys.h> // Keys
-#include <MessagingInternalPSKeys.h>
+#include <messaginginternalpskeys.h>
// locals
#include "smsui.pan" // for panics
--- 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;
--- 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
--- 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);
+ }
}
}
--- 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();
--- 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 <msvstd.h>
#include <mmsconst.h>
-#include <UniEditorConsts.h>
+#include <unieditorconsts.h>
// CONSTANTS
@@ -112,7 +112,7 @@
};
-#include <UniMsvEntry.inl>
+#include <unimsventry.inl>
#endif // __UNIMSVENTRY_H
--- 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 ) )