emailservices/emailframework/src/CFSMailBrandManagerImpl.cpp
changeset 18 578830873419
parent 0 8466d47a6819
child 20 ecc8def7944a
--- a/emailservices/emailframework/src/CFSMailBrandManagerImpl.cpp	Tue Feb 02 00:02:40 2010 +0200
+++ b/emailservices/emailframework/src/CFSMailBrandManagerImpl.cpp	Fri Apr 16 14:51:52 2010 +0300
@@ -16,18 +16,11 @@
 */
 
 
+#include <nmcommonheaders.h>
 #include "emailtrace.h"
-#include <fsmailbrandmanager.rsg>
+#include <FSMAILBRANDMANAGER.rsg>
 #include <barsread.h>
 #include <bautils.h>
-#include <mmf/common/mmfcontrollerpluginresolver.h> // CleanupResetAndDestroy
-// <gmail_brand_issue>
-#include <etelmm.h>
-#include <mmtsy_names.h>
-#include <startupdomainpskeys.h>
-#include <tzlocalizer.h> // CTzLocalizer
-#include <centralrepository.h>
-// </gmail_brand_issue>
 //<cmail>
 #include "CFSMailClient.h"
 //</cmail>
@@ -39,37 +32,6 @@
 const TInt KBrandArrayGranularity = 5;
 _LIT( KResourceFilePath,"\\resource\\fsmailbrandmanager.rsc" );
 
-// The following are needed to convert "Gmail" brand name to "Google Mail"
-// in certain countries.
-// <gmail_brand_issue>
-
-_LIT( KBrandNameGmail, "Gmail" );
-_LIT( KBrandNameGoogleMail, "Google Mail" );
-
-_LIT( KMCCGermany, "262" );
-_LIT( KMCCUK1, "234" );
-_LIT( KMCCUK2, "235" );
-
-const TUint8 KGermanyTzId = 36;
-const TUint8 KUKTzId = 104;
-
-const TInt KMCCValueMaxLength = 3;
-
-#ifdef __WINS__
-LOCAL_C void RetrieveNextToken( TDes8& aContent, TDes& aToken )	
-	{
-	_LIT8( KComma, "," );
-	TInt pos = aContent.Find( KComma );
-	if ( pos != KErrNotFound ) 
-		{
-		aToken.Copy( aContent.MidTPtr( 0, pos ) );
-		aContent.Copy(
-		    aContent.RightTPtr( aContent.Length() - pos - 1 ) );
-		}
-	}
-#endif // __WINS__
-// </gmail_brand_issue>
-
 // -----------------------------------------------------------------------------
 // CFSMailBrandManagerImpl::CFSMailBrandManagerImpl
 // -----------------------------------------------------------------------------
@@ -171,43 +133,42 @@
     
     // list all mailboxes
     RPointerArray<CFSMailBox> mailBoxes;
-    CleanupResetAndDestroyPushL( mailBoxes );
-    iMailClient.ListMailBoxes( TFSMailMsgId(), mailBoxes );
-    // Check is there need to change the name of the mailbox
-    TPtrC name = GetTextL( EFSMailboxName, aMailBoxId);
-    // <gmail_brand_issue>
-    VerifyMailAccountName( name );
-    // </gmail_brand_issue>
-    if( name.Length() )
+    TInt rcode = iMailClient.ListMailBoxes( TFSMailMsgId(), mailBoxes );
+    if( rcode == KErrNone )
         {
-        // check duplicates
-        TInt orderNumber(2);
-        TBool duplicate(ETrue);
-        HBufC* newName = HBufC::NewL(name.Length()+6);
-        TPtrC brandedName = name;
-        while(duplicate != EFalse)
+        // Check is there need to change the name of the mailbox
+        TPtrC name = GetTextL( EFSMailboxName, aMailBoxId);
+        if( name.Length() )
             {
-            duplicate = EFalse;
-            for(TInt i = 0; i < mailBoxes.Count( );i++)
+            // check duplicates
+            TInt orderNumber(2);
+            TBool duplicate(ETrue);
+            HBufC* newName = HBufC::NewL(name.Length()+6);
+            TPtrC brandedName = name;
+            while(duplicate != EFalse)
                 {
-                if(brandedName == mailBoxes[i]->GetName() && 
-                   aMailBoxId != mailBoxes[i]->GetId( ))
+                duplicate = EFalse;
+                for(TInt i = 0; i < mailBoxes.Count( );i++)
                     {
-                    duplicate = ETrue;
-                    newName->Des().Copy(name);
-                    newName->Des().Append(' ');
-                    newName->Des().Append('(');
-                    newName->Des().AppendNum(orderNumber++);
-                    newName->Des().Append(')');
-                    brandedName.Set(newName->Des());
-                    break;
+                    if(brandedName == mailBoxes[i]->GetName() && 
+                       aMailBoxId != mailBoxes[i]->GetId( ))
+                        {
+                        duplicate = ETrue;
+                        newName->Des().Copy(name);
+                        newName->Des().Append(' ');
+                        newName->Des().Append('(');
+                        newName->Des().AppendNum(orderNumber++);
+                        newName->Des().Append(')');
+                        brandedName.Set(newName->Des());
+                        break;
+                        }
                     }
                 }
+            iMailClient.SetMailboxName(aMailBoxId,brandedName);
+            delete newName;
             }
-        iMailClient.SetMailboxName(aMailBoxId,brandedName);
-        delete newName;
         }
-    CleanupStack::PopAndDestroy( &mailBoxes );
+       mailBoxes.ResetAndDestroy();
     }
 
 // -----------------------------------------------------------------------------
@@ -241,22 +202,6 @@
 	}
 
 // -----------------------------------------------------------------------------
-// CFSMailBrandManagerImpl::GetGraphicL
-// -----------------------------------------------------------------------------
-CGulIcon* CFSMailBrandManagerImpl::GetGraphicL(
-    TFSBrandElement aElement, 
-    const TDesC& aBrandId )
-    {
-    FUNC_LOG;
-    CFSMailBrand* brand = FindMatchingBrandL( aBrandId );
-    if ( brand == NULL )
-        {
-        return NULL;    
-        }    
-    return brand->GetGraphicL( aElement );
-    }
-    
-// -----------------------------------------------------------------------------
 // CFSMailBrandManagerImpl::GetGraphicIdsL
 // -----------------------------------------------------------------------------
 TInt CFSMailBrandManagerImpl::GetGraphicIdsL(
@@ -391,14 +336,11 @@
 CFSMailBrand* CFSMailBrandManagerImpl::FindMatchingBrandL( const TDesC& aBrandId )
     {
     FUNC_LOG;
-    if( aBrandId.Length() )
+    TInt brandCount( iBrands->Count() );
+    for ( TInt i( 0 ); i < brandCount; i++ )
         {
-        TInt brandCount( iBrands->Count() );
-        for ( TInt i( 0 ); i < brandCount; i++ )
-            {
-            if ( (*iBrands)[ i ]->IsMatching( aBrandId ) )
-                return (*iBrands)[ i ];
-            }
+        if ( (*iBrands)[ i ]->IsMatching( aBrandId ) )
+            return (*iBrands)[ i ];
         }
     return NULL;
     }
@@ -408,13 +350,18 @@
 // -----------------------------------------------------------------------------
 CFSMailBox* CFSMailBrandManagerImpl::MailboxMatchingBrandIdL(
     const TDesC& aBrandId ) const
-    {    
+    {
+    FUNC_LOG;
     RPointerArray<CFSMailBox> mailboxes;
-
-    CleanupResetAndDestroyPushL( mailboxes );
-
-    iMailClient.ListMailBoxes( TFSMailMsgId(), mailboxes );
-
+    TInt outcome( KErrNone );
+    
+    outcome = iMailClient.ListMailBoxes( TFSMailMsgId(), mailboxes );
+    if ( outcome != KErrNone )
+        {
+        mailboxes.ResetAndDestroy();
+        User::Leave( outcome );
+        }
+    
     TInt mailboxCount( mailboxes.Count() );
     TInt mailboxIndexer( 0 );
     while ( mailboxIndexer < mailboxCount )
@@ -439,201 +386,8 @@
         ++mailboxIndexer;
         }
         
-    CleanupStack::PopAndDestroy( &mailboxes );
+    mailboxes.ResetAndDestroy();
     User::Leave( KErrNotFound );
     return NULL; // To prevent warning
     }
 
-// <gmail_brand_issue>
-// -----------------------------------------------------------------------------
-// CFSMailBrandManagerImpl::GetMCCValueL
-// -----------------------------------------------------------------------------
-void CFSMailBrandManagerImpl::GetMCCValueL( TDes& aMcc ) const
-    {
-    aMcc.Zero();
-    
-    TInt err = KErrNone;
-
-#ifndef __WINS__
-
-    TBool isSimPresent = EFalse;
-    
-    TInt simStatus( 0 );
-
-	err = RProperty::Get( KPSUidStartup, KPSSimStatus, simStatus );
-
-	if ( err == KErrNone &&
-	        simStatus != ESimNotPresent &&
-	        simStatus != ESimNotSupported )
-	    {
-	    isSimPresent = ETrue;
-	    }
-
-    if ( isSimPresent )
-        {
-        // We cannot let the method leave here
-        TRAP( err, GetMCCValueFromSIML( aMcc ) );
-
-        // If reading from SIM fails one time try again after 0.5 secs
-        if ( err != KErrNone )
-            {
-            const TInt KHalfSecond = 500000;
-
-            User::After( KHalfSecond );
-            
-            err = KErrNone;
-
-            // We cannot let the method leave here
-            TRAP( err, GetMCCValueFromSIML( aMcc ) );
-            }
-        }
-
-#else // __WINS__
-
-    _LIT( KSIMInfo, "C:\\data\\Settings\\SIMInfo.txt" );
-
-    RFs fs;
-
-    User::LeaveIfError( fs.Connect() );
-
-    RFile simFile;
-
-    err = simFile.Open( fs, KSIMInfo(), EFileShareReadersOnly |
-                                        EFileStream |
-                                        EFileRead );
-    if ( err == KErrNone )
-        {
-        TBuf8<100> content;
-        TBuf<100> dummy;
-
-        simFile.Read( content );
-
-    	simFile.Close();
-
-    	fs.Close();
-
-        if ( content.Length() > 0 )
-        	{
-            RetrieveNextToken( content, dummy );
-            RetrieveNextToken( content, dummy );
-            RetrieveNextToken( content, dummy );
-            RetrieveNextToken( content, dummy );
-
-            RMobilePhone::TMobilePhoneSubscriberId subscriberId;
-
-            RetrieveNextToken( content, subscriberId );
-
-            if ( subscriberId.Length() >= KMCCValueMaxLength )
-                {
-                aMcc = subscriberId.Left( KMCCValueMaxLength );
-                }
-        	}
-        }
-
-#endif // __WINS__
-
-    }
-
-// ----------------------------------------------------------------------------
-// CFSMailBrandManagerImpl::GetMCCValueFromSIML
-// ----------------------------------------------------------------------------
-// 
-void CFSMailBrandManagerImpl::GetMCCValueFromSIML( TDes& aMcc ) const
-    {
-    RTelServer telServer;
-
-    CleanupClosePushL( telServer );
-
-    User::LeaveIfError( telServer.Connect() );
-
-    User::LeaveIfError( telServer.LoadPhoneModule( KMmTsyModuleName ) );
-    
-    RMobilePhone mobilePhone;
-
-    CleanupClosePushL( mobilePhone );
-
-    User::LeaveIfError( mobilePhone.Open( telServer, KMmTsyPhoneName ) );
-    
-    TRequestStatus status;
-
-    RMobilePhone::TMobilePhoneSubscriberId subscriberId;       
-
-    mobilePhone.GetSubscriberId( status, subscriberId );
-    
-    User::WaitForRequest( status );
-
-    User::LeaveIfError( status.Int() );
-    
-    CleanupStack::PopAndDestroy( &mobilePhone );
-
-    CleanupStack::PopAndDestroy( &telServer );
-
-    if ( subscriberId.Length() >= KMCCValueMaxLength )
-        {
-        aMcc = subscriberId.Left( KMCCValueMaxLength );
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CFSMailBrandManagerImpl::GetCurrentCountryL
-// ----------------------------------------------------------------------------
-// 
-TUint8 CFSMailBrandManagerImpl::GetCurrentCountryL() const
-    {
-    CTzLocalizer* localizer = CTzLocalizer::NewLC();
-
-    CTzLocalizedCity* city = localizer->GetFrequentlyUsedZoneCityL(
-        CTzLocalizedTimeZone::ECurrentZone );
-        
-    CleanupStack::PushL( city );
-
-    CTzLocalizedCityGroup* cityGroup = 
-        localizer->GetCityGroupL( city->GroupId() );
-
-    TUint8 countryId = cityGroup->Id();
-    
-    delete cityGroup;
-    cityGroup = NULL;
-    
-    CleanupStack::PopAndDestroy( 2, localizer );
-    
-    return countryId;
-    }
-
-// -----------------------------------------------------------------------------
-// CFSMailBrandManagerImpl::VerifyMailAccountName
-// -----------------------------------------------------------------------------
-void CFSMailBrandManagerImpl::VerifyMailAccountName(
-        TPtrC& aBrandedName ) const
-    {
-    // Due to legal reasons we don't show brand name "Gmail" in Germany and UK
-    if ( !aBrandedName.CompareF( KBrandNameGmail ) )
-        {
-        // First check timezone id
-        TUint8 timeZone = 0;
-        
-        TRAPD( err, timeZone = GetCurrentCountryL() );
-        
-        if ( err == KErrNone && ( timeZone == KGermanyTzId ||
-                                  timeZone == KUKTzId ) )
-            {
-            aBrandedName.Set( KBrandNameGoogleMail );
-            }
-        // Then if necessary check MCC
-        else
-            {
-            TBuf<KMCCValueMaxLength> mcc;
-
-            TRAPD( err2, GetMCCValueL( mcc ) );
-            
-            if ( err2 == KErrNone && ( mcc == KMCCGermany ||
-                                       mcc == KMCCUK1 ||
-                                       mcc == KMCCUK2 ) )
-                {
-                aBrandedName.Set( KBrandNameGoogleMail );
-                }
-            }
-
-        }
-    }
-// </gmail_brand_issue>