emailservices/emailframework/src/CFSMailBrandManagerImpl.cpp
branchRCL_3
changeset 25 3533d4323edc
parent 24 d189ee25cf9d
child 26 968773a0b6ef
equal deleted inserted replaced
24:d189ee25cf9d 25:3533d4323edc
    13 *
    13 *
    14 * Description:  ES Protocol Framework branding manager interface definition
    14 * Description:  ES Protocol Framework branding manager interface definition
    15 *
    15 *
    16 */
    16 */
    17 
    17 
       
    18 
    18 #include "emailtrace.h"
    19 #include "emailtrace.h"
    19 
       
    20 //<qmail>
       
    21 #include <nmcommonheaders.h>
       
    22 //</qmail>
       
    23 
       
    24 #include <fsmailbrandmanager.rsg>
    20 #include <fsmailbrandmanager.rsg>
    25 #include <barsread.h>
    21 #include <barsread.h>
    26 #include <bautils.h>
    22 #include <bautils.h>
    27 #include <mmf/common/mmfcontrollerpluginresolver.h> // CleanupResetAndDestroy
    23 #include <mmf/common/mmfcontrollerpluginresolver.h> // CleanupResetAndDestroy
    28 // <gmail_brand_issue>
    24 // <gmail_brand_issue>
    31 #include <startupdomainpskeys.h>
    27 #include <startupdomainpskeys.h>
    32 #include <tzlocalizer.h> // CTzLocalizer
    28 #include <tzlocalizer.h> // CTzLocalizer
    33 #include <centralrepository.h>
    29 #include <centralrepository.h>
    34 // </gmail_brand_issue>
    30 // </gmail_brand_issue>
    35 //<cmail>
    31 //<cmail>
    36 #include "CFSMailClient.h"
    32 #include "cfsmailclient.h"
    37 //</cmail>
    33 //</cmail>
    38 
    34 
    39 #include "CFSMailBrandManagerImpl.h"
    35 #include "cfsmailbrandmanagerimpl.h"
    40 #include "CFSMailBrand.h"
    36 #include "cfsmailbrand.h"
    41 
    37 
    42 
    38 
    43 const TInt KBrandArrayGranularity = 5;
    39 const TInt KBrandArrayGranularity = 5;
    44 _LIT( KResourceFilePath,"\\resource\\fsmailbrandmanager.rsc" );
    40 _LIT( KResourceFilePath,"\\resource\\fsmailbrandmanager.rsc" );
    45 
    41 
    60 const TInt KMCCValueMaxLength = 3;
    56 const TInt KMCCValueMaxLength = 3;
    61 
    57 
    62 #ifdef __WINS__
    58 #ifdef __WINS__
    63 LOCAL_C void RetrieveNextToken( TDes8& aContent, TDes& aToken )	
    59 LOCAL_C void RetrieveNextToken( TDes8& aContent, TDes& aToken )	
    64 	{
    60 	{
    65     NM_FUNCTION;
       
    66     
       
    67 	_LIT8( KComma, "," );
    61 	_LIT8( KComma, "," );
    68 	TInt pos = aContent.Find( KComma );
    62 	TInt pos = aContent.Find( KComma );
    69 	if ( pos != KErrNotFound ) 
    63 	if ( pos != KErrNotFound ) 
    70 		{
    64 		{
    71 		aToken.Copy( aContent.MidTPtr( 0, pos ) );
    65 		aToken.Copy( aContent.MidTPtr( 0, pos ) );
    81 // -----------------------------------------------------------------------------
    75 // -----------------------------------------------------------------------------
    82 CFSMailBrandManagerImpl::CFSMailBrandManagerImpl(
    76 CFSMailBrandManagerImpl::CFSMailBrandManagerImpl(
    83     CFSMailClient& aMailClient ) :
    77     CFSMailClient& aMailClient ) :
    84     iMailClient( aMailClient )
    78     iMailClient( aMailClient )
    85 	{
    79 	{
    86     NM_FUNCTION;
    80     FUNC_LOG;
       
    81 
    87 	}
    82 	}
    88 
    83 
    89 // -----------------------------------------------------------------------------
    84 // -----------------------------------------------------------------------------
    90 // CFSMailBrandManagerImpl::ConstructL
    85 // CFSMailBrandManagerImpl::ConstructL
    91 // -----------------------------------------------------------------------------
    86 // -----------------------------------------------------------------------------
    92 void CFSMailBrandManagerImpl::ConstructL()
    87 void CFSMailBrandManagerImpl::ConstructL()
    93     {
    88     {
    94     NM_FUNCTION;
    89     FUNC_LOG;
    95 
    90 
    96     // Read resource file, get the drive letter according to the DLL drive
    91     // Read resource file, get the drive letter according to the DLL drive
    97     TFileName dllFileName;
    92     TFileName dllFileName;
    98     Dll::FileName( dllFileName );
    93     Dll::FileName( dllFileName );
    99     
    94     
   126 // -----------------------------------------------------------------------------
   121 // -----------------------------------------------------------------------------
   127 // CFSMailBrandManagerImpl::~CFSMailBrandManagerImpl
   122 // CFSMailBrandManagerImpl::~CFSMailBrandManagerImpl
   128 // -----------------------------------------------------------------------------
   123 // -----------------------------------------------------------------------------
   129 CFSMailBrandManagerImpl::~CFSMailBrandManagerImpl()
   124 CFSMailBrandManagerImpl::~CFSMailBrandManagerImpl()
   130 	{
   125 	{
   131     NM_FUNCTION;
   126     FUNC_LOG;
   132 	
   127 	
   133 	iResourceFile.Close();
   128 	iResourceFile.Close();
   134     iFsSession.Close();
   129     iFsSession.Close();
   135 	
   130 	
   136 	if ( iBrands )
   131 	if ( iBrands )
   144 // CFSMailBrandManagerImpl::NewL
   139 // CFSMailBrandManagerImpl::NewL
   145 // -----------------------------------------------------------------------------
   140 // -----------------------------------------------------------------------------
   146 CFSMailBrandManagerImpl* CFSMailBrandManagerImpl::NewL(
   141 CFSMailBrandManagerImpl* CFSMailBrandManagerImpl::NewL(
   147     CFSMailClient& aMailClient )
   142     CFSMailClient& aMailClient )
   148     {
   143     {
   149     NM_FUNCTION;
   144     FUNC_LOG;
   150     
       
   151     CFSMailBrandManagerImpl* self =
   145     CFSMailBrandManagerImpl* self =
   152         CFSMailBrandManagerImpl::NewLC( aMailClient );
   146         CFSMailBrandManagerImpl::NewLC( aMailClient );
   153     CleanupStack::Pop( self );
   147     CleanupStack::Pop( self );
   154     return self;
   148     return self;
   155     }
   149     }
   158 // CFSMailBrandManagerImpl::NewLC
   152 // CFSMailBrandManagerImpl::NewLC
   159 // -----------------------------------------------------------------------------
   153 // -----------------------------------------------------------------------------
   160 CFSMailBrandManagerImpl* CFSMailBrandManagerImpl::NewLC(
   154 CFSMailBrandManagerImpl* CFSMailBrandManagerImpl::NewLC(
   161     CFSMailClient& aMailClient )
   155     CFSMailClient& aMailClient )
   162     {
   156     {
   163     NM_FUNCTION;
   157     FUNC_LOG;
   164     
       
   165     CFSMailBrandManagerImpl* self =
   158     CFSMailBrandManagerImpl* self =
   166         new( ELeave ) CFSMailBrandManagerImpl( aMailClient );
   159         new( ELeave ) CFSMailBrandManagerImpl( aMailClient );
   167     CleanupStack::PushL( self );
   160     CleanupStack::PushL( self );
   168     self->ConstructL();
   161     self->ConstructL();
   169     return self;
   162     return self;
   172 // -----------------------------------------------------------------------------
   165 // -----------------------------------------------------------------------------
   173 // CFSMailBrandManagerImpl::UpdateMailboxNamesL
   166 // CFSMailBrandManagerImpl::UpdateMailboxNamesL
   174 // -----------------------------------------------------------------------------
   167 // -----------------------------------------------------------------------------
   175 void CFSMailBrandManagerImpl::UpdateMailboxNamesL( const TFSMailMsgId aMailBoxId )
   168 void CFSMailBrandManagerImpl::UpdateMailboxNamesL( const TFSMailMsgId aMailBoxId )
   176     {
   169     {
   177     NM_FUNCTION;
   170     FUNC_LOG;
   178     
   171     
   179     // list all mailboxes
   172     // list all mailboxes
   180     RPointerArray<CFSMailBox> mailBoxes;
   173     RPointerArray<CFSMailBox> mailBoxes;
   181     CleanupResetAndDestroyPushL( mailBoxes );
   174     CleanupResetAndDestroyPushL( mailBoxes );
   182     iMailClient.ListMailBoxes( TFSMailMsgId(), mailBoxes );
   175     iMailClient.ListMailBoxes( TFSMailMsgId(), mailBoxes );
   222 // -----------------------------------------------------------------------------
   215 // -----------------------------------------------------------------------------
   223 CGulIcon* CFSMailBrandManagerImpl::GetGraphicL(
   216 CGulIcon* CFSMailBrandManagerImpl::GetGraphicL(
   224     TFSBrandElement aElement, 
   217     TFSBrandElement aElement, 
   225 	const TFSMailMsgId& aMailboxId )
   218 	const TFSMailMsgId& aMailboxId )
   226 	{
   219 	{
   227     NM_FUNCTION;
   220     FUNC_LOG;
   228     
       
   229 	CFSMailBox* mailBox( NULL );
   221 	CFSMailBox* mailBox( NULL );
   230 	TRAPD( mailboxError,
   222 	TRAPD( mailboxError,
   231 	       mailBox = iMailClient.GetMailBoxByUidL( aMailboxId ) );
   223 	       mailBox = iMailClient.GetMailBoxByUidL( aMailboxId ) );
   232 	if ( mailboxError != KErrNone )
   224 	if ( mailboxError != KErrNone )
   233 	    {
   225 	    {
   253 // -----------------------------------------------------------------------------
   245 // -----------------------------------------------------------------------------
   254 CGulIcon* CFSMailBrandManagerImpl::GetGraphicL(
   246 CGulIcon* CFSMailBrandManagerImpl::GetGraphicL(
   255     TFSBrandElement aElement, 
   247     TFSBrandElement aElement, 
   256     const TDesC& aBrandId )
   248     const TDesC& aBrandId )
   257     {
   249     {
   258     NM_FUNCTION;
   250     FUNC_LOG;
   259     
       
   260     CFSMailBrand* brand = FindMatchingBrandL( aBrandId );
   251     CFSMailBrand* brand = FindMatchingBrandL( aBrandId );
   261     if ( brand == NULL )
   252     if ( brand == NULL )
   262         {
   253         {
   263         return NULL;    
   254         return NULL;    
   264         }    
   255         }    
   271 TInt CFSMailBrandManagerImpl::GetGraphicIdsL(
   262 TInt CFSMailBrandManagerImpl::GetGraphicIdsL(
   272     TFSBrandElement aElement, 
   263     TFSBrandElement aElement, 
   273 	const TFSMailMsgId& aMailboxId,
   264 	const TFSMailMsgId& aMailboxId,
   274     TDes& aIconIds  )
   265     TDes& aIconIds  )
   275 	{
   266 	{
   276     NM_FUNCTION;
   267     FUNC_LOG;
   277     
       
   278 	CFSMailBox* mailBox( NULL );
   268 	CFSMailBox* mailBox( NULL );
   279 	TRAPD( mailboxError,
   269 	TRAPD( mailboxError,
   280 	       mailBox = iMailClient.GetMailBoxByUidL( aMailboxId ) );
   270 	       mailBox = iMailClient.GetMailBoxByUidL( aMailboxId ) );
   281 	if ( mailboxError != KErrNone )
   271 	if ( mailboxError != KErrNone )
   282 	    {
   272 	    {
   303 TInt CFSMailBrandManagerImpl::GetGraphicIdsL(
   293 TInt CFSMailBrandManagerImpl::GetGraphicIdsL(
   304     TFSBrandElement aElement, 
   294     TFSBrandElement aElement, 
   305     const TDesC& aBrandId,
   295     const TDesC& aBrandId,
   306     TDes& aIconIds  )
   296     TDes& aIconIds  )
   307     {
   297     {
   308     NM_FUNCTION;
   298     FUNC_LOG;
   309 
   299 
   310     CFSMailBrand* brand = FindMatchingBrandL( aBrandId );
   300     CFSMailBrand* brand = FindMatchingBrandL( aBrandId );
   311     if ( brand == NULL )
   301     if ( brand == NULL )
   312         {
   302         {
   313         return KErrNotFound;
   303         return KErrNotFound;
   320 // -----------------------------------------------------------------------------
   310 // -----------------------------------------------------------------------------
   321 TPtrC CFSMailBrandManagerImpl::GetTextL(
   311 TPtrC CFSMailBrandManagerImpl::GetTextL(
   322     TFSBrandElement aElement,
   312     TFSBrandElement aElement,
   323     const TFSMailMsgId& aMailboxId )
   313     const TFSMailMsgId& aMailboxId )
   324 	{
   314 	{
   325     NM_FUNCTION;
   315     FUNC_LOG;
   326     
       
   327 	CFSMailBox* mailBox( NULL );
   316 	CFSMailBox* mailBox( NULL );
   328 	TRAPD( mailboxError,
   317 	TRAPD( mailboxError,
   329 	       mailBox = iMailClient.GetMailBoxByUidL( aMailboxId ) );
   318 	       mailBox = iMailClient.GetMailBoxByUidL( aMailboxId ) );
   330 	if ( mailboxError != KErrNone )
   319 	if ( mailboxError != KErrNone )
   331 	    {
   320 	    {
   351 // -----------------------------------------------------------------------------
   340 // -----------------------------------------------------------------------------
   352 TPtrC CFSMailBrandManagerImpl::GetTextL(
   341 TPtrC CFSMailBrandManagerImpl::GetTextL(
   353 	TFSBrandElement aElement,
   342 	TFSBrandElement aElement,
   354 	const TDesC& aBrandId )
   343 	const TDesC& aBrandId )
   355 	{
   344 	{
   356     NM_FUNCTION;
   345     FUNC_LOG;
   357 
   346 
   358 	CFSMailBrand* brand = FindMatchingBrandL( aBrandId );
   347 	CFSMailBrand* brand = FindMatchingBrandL( aBrandId );
   359 	if ( brand == NULL )
   348 	if ( brand == NULL )
   360 	    {
   349 	    {
   361 	    return KNullDesC();    
   350 	    return KNullDesC();    
   370 TInt CFSMailBrandManagerImpl::GetColorL(
   359 TInt CFSMailBrandManagerImpl::GetColorL(
   371     TFSBrandElement aElement,
   360     TFSBrandElement aElement,
   372     const TFSMailMsgId& aMailboxId,
   361     const TFSMailMsgId& aMailboxId,
   373     TRgb& aColor )
   362     TRgb& aColor )
   374 	{
   363 	{
   375     NM_FUNCTION;
   364     FUNC_LOG;
   376     
       
   377 	CFSMailBox* mailBox = iMailClient.GetMailBoxByUidL( aMailboxId );
   365 	CFSMailBox* mailBox = iMailClient.GetMailBoxByUidL( aMailboxId );
   378 	User::LeaveIfNull( mailBox );
   366 	User::LeaveIfNull( mailBox );
   379     CleanupStack::PushL( mailBox );    
   367     CleanupStack::PushL( mailBox );    
   380     TDesC& brandId = mailBox->GetBrandingIdL();
   368     TDesC& brandId = mailBox->GetBrandingIdL();
   381 	
   369 	
   392 // -----------------------------------------------------------------------------
   380 // -----------------------------------------------------------------------------
   393 // CFSMailBrandManagerImpl::ConstructFromResourceL
   381 // CFSMailBrandManagerImpl::ConstructFromResourceL
   394 // -----------------------------------------------------------------------------
   382 // -----------------------------------------------------------------------------
   395 void CFSMailBrandManagerImpl::ConstructFromResourceL( TResourceReader& aReader )
   383 void CFSMailBrandManagerImpl::ConstructFromResourceL( TResourceReader& aReader )
   396 	{
   384 	{
   397     NM_FUNCTION;
   385     FUNC_LOG;
   398     
       
   399 	iBrands = new ( ELeave )
   386 	iBrands = new ( ELeave )
   400 				CArrayPtrSeg< CFSMailBrand >( KBrandArrayGranularity );
   387 				CArrayPtrSeg< CFSMailBrand >( KBrandArrayGranularity );
   401 						
   388 						
   402 	// Read White Label Brand from Cenrep
   389 	// Read White Label Brand from Cenrep
   403 	CFSMailBrand* newBrand = CFSMailBrand::NewLC( aReader, true );
   390 	CFSMailBrand* newBrand = CFSMailBrand::NewLC( aReader, true );
   419 // -----------------------------------------------------------------------------
   406 // -----------------------------------------------------------------------------
   420 // CFSMailBrandManagerImpl::FindMatchingBrandL
   407 // CFSMailBrandManagerImpl::FindMatchingBrandL
   421 // -----------------------------------------------------------------------------
   408 // -----------------------------------------------------------------------------
   422 CFSMailBrand* CFSMailBrandManagerImpl::FindMatchingBrandL( const TDesC& aBrandId )
   409 CFSMailBrand* CFSMailBrandManagerImpl::FindMatchingBrandL( const TDesC& aBrandId )
   423     {
   410     {
   424     NM_FUNCTION;
   411     FUNC_LOG;
   425     
       
   426     if( aBrandId.Length() )
   412     if( aBrandId.Length() )
   427         {
   413         {
   428         TInt brandCount( iBrands->Count() );
   414         TInt brandCount( iBrands->Count() );
   429         for ( TInt i( 0 ); i < brandCount; i++ )
   415         for ( TInt i( 0 ); i < brandCount; i++ )
   430             {
   416             {
   439 // CFSMailBrandManagerImpl::MailboxMatchingBrandIdL
   425 // CFSMailBrandManagerImpl::MailboxMatchingBrandIdL
   440 // -----------------------------------------------------------------------------
   426 // -----------------------------------------------------------------------------
   441 CFSMailBox* CFSMailBrandManagerImpl::MailboxMatchingBrandIdL(
   427 CFSMailBox* CFSMailBrandManagerImpl::MailboxMatchingBrandIdL(
   442     const TDesC& aBrandId ) const
   428     const TDesC& aBrandId ) const
   443     {    
   429     {    
   444     NM_FUNCTION;
       
   445     
       
   446     RPointerArray<CFSMailBox> mailboxes;
   430     RPointerArray<CFSMailBox> mailboxes;
   447 
   431 
   448     CleanupResetAndDestroyPushL( mailboxes );
   432     CleanupResetAndDestroyPushL( mailboxes );
   449 
   433 
   450     iMailClient.ListMailBoxes( TFSMailMsgId(), mailboxes );
   434     iMailClient.ListMailBoxes( TFSMailMsgId(), mailboxes );
   482 // -----------------------------------------------------------------------------
   466 // -----------------------------------------------------------------------------
   483 // CFSMailBrandManagerImpl::GetMCCValueL
   467 // CFSMailBrandManagerImpl::GetMCCValueL
   484 // -----------------------------------------------------------------------------
   468 // -----------------------------------------------------------------------------
   485 void CFSMailBrandManagerImpl::GetMCCValueL( TDes& aMcc ) const
   469 void CFSMailBrandManagerImpl::GetMCCValueL( TDes& aMcc ) const
   486     {
   470     {
   487     NM_FUNCTION;
       
   488     
       
   489     aMcc.Zero();
   471     aMcc.Zero();
   490     
   472     
   491     TInt err = KErrNone;
   473     TInt err = KErrNone;
   492 
   474 
   493 #ifndef __WINS__
   475 #ifndef __WINS__
   574 // CFSMailBrandManagerImpl::GetMCCValueFromSIML
   556 // CFSMailBrandManagerImpl::GetMCCValueFromSIML
   575 // ----------------------------------------------------------------------------
   557 // ----------------------------------------------------------------------------
   576 // 
   558 // 
   577 void CFSMailBrandManagerImpl::GetMCCValueFromSIML( TDes& aMcc ) const
   559 void CFSMailBrandManagerImpl::GetMCCValueFromSIML( TDes& aMcc ) const
   578     {
   560     {
   579     NM_FUNCTION;
       
   580     
       
   581     RTelServer telServer;
   561     RTelServer telServer;
   582 
   562 
   583     CleanupClosePushL( telServer );
   563     CleanupClosePushL( telServer );
   584 
   564 
   585     User::LeaveIfError( telServer.Connect() );
   565     User::LeaveIfError( telServer.Connect() );
   616 // CFSMailBrandManagerImpl::GetCurrentCountryL
   596 // CFSMailBrandManagerImpl::GetCurrentCountryL
   617 // ----------------------------------------------------------------------------
   597 // ----------------------------------------------------------------------------
   618 // 
   598 // 
   619 TUint8 CFSMailBrandManagerImpl::GetCurrentCountryL() const
   599 TUint8 CFSMailBrandManagerImpl::GetCurrentCountryL() const
   620     {
   600     {
   621     NM_FUNCTION;
       
   622     
       
   623     CTzLocalizer* localizer = CTzLocalizer::NewLC();
   601     CTzLocalizer* localizer = CTzLocalizer::NewLC();
   624 
   602 
   625     CTzLocalizedCity* city = localizer->GetFrequentlyUsedZoneCityL(
   603     CTzLocalizedCity* city = localizer->GetFrequentlyUsedZoneCityL(
   626         CTzLocalizedTimeZone::ECurrentZone );
   604         CTzLocalizedTimeZone::ECurrentZone );
   627         
   605         
   644 // CFSMailBrandManagerImpl::VerifyMailAccountName
   622 // CFSMailBrandManagerImpl::VerifyMailAccountName
   645 // -----------------------------------------------------------------------------
   623 // -----------------------------------------------------------------------------
   646 void CFSMailBrandManagerImpl::VerifyMailAccountName(
   624 void CFSMailBrandManagerImpl::VerifyMailAccountName(
   647         TPtrC& aBrandedName ) const
   625         TPtrC& aBrandedName ) const
   648     {
   626     {
   649     NM_FUNCTION;
       
   650     
       
   651     // Due to legal reasons we don't show brand name "Gmail" in Germany and UK
   627     // Due to legal reasons we don't show brand name "Gmail" in Germany and UK
   652     if ( !aBrandedName.CompareF( KBrandNameGmail ) )
   628     if ( !aBrandedName.CompareF( KBrandNameGmail ) )
   653         {
   629         {
   654         // First check timezone id
   630         // First check timezone id
   655         TUint8 timeZone = 0;
   631         TUint8 timeZone = 0;