email/imum/Utils/Src/ImumMboxSymbianDataConverter.cpp
branchRCL_3
changeset 60 7fdbb852d323
parent 0 72b543305e3a
equal deleted inserted replaced
57:ebe688cedc25 60:7fdbb852d323
       
     1 /*
       
     2 * Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  ImumMboxSymbianDataConverter.cpp
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 // INCLUDE FILES
       
    20 #include <e32base.h>
       
    21 #include <SendUiConsts.h>
       
    22 #include <miutset.h>
       
    23 #include <smtpset.h>
       
    24 #include <pop3set.h>
       
    25 #include <imapset.h>
       
    26 
       
    27 #include "ImumMboxSymbianDataConverter.h"
       
    28 #include "ImumDaSettingsKeys.h"
       
    29 #include "ImumInSettingsKeys.h"
       
    30 #include "ImumDaErrorCodes.h"
       
    31 #include "ImumPanic.h"
       
    32 #include "ImumMboxSymbianDataConverter.h"
       
    33 #include "ImumMboxInternalDataConverter.h"
       
    34 #include "ImumMboxSymbianDataConverter.h"
       
    35 #include "ImumMboxData.h"
       
    36 #include "ImumInSettingsDataImpl.h"
       
    37 #include "ImumInSettingsDataCollectionImpl.h"
       
    38 #include "ImumInternalApiImpl.h"
       
    39 #include "ComDbUtl.h"
       
    40 #include "IMASAccountControl.h"
       
    41 #include "EmailUtils.H"
       
    42 #include "ImumUtilsLogging.h"
       
    43 #include "EmailFeatureUtils.h"
       
    44 
       
    45 // EXTERNAL DATA STRUCTURES
       
    46 // EXTERNAL FUNCTION PROTOTYPES
       
    47 // CONSTANTS
       
    48 // MACROS
       
    49 // LOCAL CONSTANTS AND MACROS
       
    50 // MODULE DATA STRUCTURES
       
    51 // LOCAL FUNCTION PROTOTYPES
       
    52 // FORWARD DECLARATIONS
       
    53 
       
    54 // ============================ MEMBER FUNCTIONS ===============================
       
    55 
       
    56 // ----------------------------------------------------------------------------
       
    57 // CImumMboxSymbianDataConverter::CImumMboxSymbianDataConverter()
       
    58 // ----------------------------------------------------------------------------
       
    59 //
       
    60 CImumMboxSymbianDataConverter::CImumMboxSymbianDataConverter(
       
    61     CImumInternalApiImpl& aMailboxApi,
       
    62     const CImumInSettingsData& aSourceData,
       
    63     CImumMboxData& aTargetData )
       
    64     :
       
    65     iMailboxApi( aMailboxApi ),
       
    66     iTargetData( aTargetData ),
       
    67     iSourceData( aSourceData ),
       
    68     iMailboxProtocol( TUid::Uid( 0 ) ),
       
    69     iCreationPhase( ETrue )
       
    70     {
       
    71     IMUM_CONTEXT( CImumMboxSymbianDataConverter::CImumMboxSymbianDataConverter, 0, KLogData );
       
    72     IMUM_IN();
       
    73     IMUM_OUT();
       
    74     }
       
    75 
       
    76 // ----------------------------------------------------------------------------
       
    77 // CImumMboxSymbianDataConverter::~CImumMboxSymbianDataConverter()
       
    78 // ----------------------------------------------------------------------------
       
    79 //
       
    80 CImumMboxSymbianDataConverter::~CImumMboxSymbianDataConverter()
       
    81     {
       
    82     IMUM_CONTEXT( CImumMboxSymbianDataConverter::~CImumMboxSymbianDataConverter, 0, KLogData );
       
    83     IMUM_IN();
       
    84 
       
    85     iMailboxEntries.Close();
       
    86     IMUM_OUT();
       
    87     }
       
    88 
       
    89 // ----------------------------------------------------------------------------
       
    90 // CImumMboxSymbianDataConverter::ConstructL()
       
    91 // ----------------------------------------------------------------------------
       
    92 //
       
    93 void CImumMboxSymbianDataConverter::ConstructL()
       
    94     {
       
    95     IMUM_CONTEXT( CImumMboxSymbianDataConverter::ConstructL, 0, KLogData );
       
    96     IMUM_IN();
       
    97 
       
    98     TMsvId mailboxId = 0;
       
    99     TInt error =
       
   100         iSourceData[0].GetAttr( TImumDaSettings::EKeyMailboxId, mailboxId );
       
   101 
       
   102     // Get the mailbox id from the settings. In case of wizard, the id does
       
   103     // not exist, so this can be skipped.
       
   104     if ( !error && mailboxId )
       
   105         {
       
   106         iMailboxProtocol = iMailboxApi.MailboxUtilitiesL().GetMailboxEntriesL(
       
   107             mailboxId, iMailboxEntries );
       
   108         iCreationPhase = EFalse;
       
   109         }
       
   110     IMUM_OUT();
       
   111     }
       
   112 
       
   113 // ----------------------------------------------------------------------------
       
   114 // CImumMboxSymbianDataConverter::NewL()
       
   115 // ----------------------------------------------------------------------------
       
   116 //
       
   117 CImumMboxSymbianDataConverter* CImumMboxSymbianDataConverter::NewL(
       
   118     CImumInternalApiImpl& aMailboxApi,
       
   119     const CImumInSettingsData& aSourceData,
       
   120     CImumMboxData& aTargetData )
       
   121     {
       
   122     IMUM_STATIC_CONTEXT( CImumMboxSymbianDataConverter::NewL, 0, utils, KLogData );
       
   123     IMUM_IN();
       
   124 
       
   125     CImumMboxSymbianDataConverter* self = NewLC(
       
   126         aMailboxApi, aSourceData, aTargetData );
       
   127     CleanupStack::Pop( self );
       
   128 
       
   129     IMUM_OUT();
       
   130     return self;
       
   131     }
       
   132 
       
   133 // ----------------------------------------------------------------------------
       
   134 // CImumMboxSymbianDataConverter::NewLC()
       
   135 // ----------------------------------------------------------------------------
       
   136 //
       
   137 CImumMboxSymbianDataConverter* CImumMboxSymbianDataConverter::NewLC(
       
   138     CImumInternalApiImpl& aMailboxApi,
       
   139     const CImumInSettingsData& aSourceData,
       
   140     CImumMboxData& aTargetData )
       
   141     {
       
   142     IMUM_STATIC_CONTEXT( CImumMboxSymbianDataConverter::NewLC, 0, utils, KLogData );
       
   143 
       
   144     CImumMboxSymbianDataConverter* self =
       
   145         new ( ELeave ) CImumMboxSymbianDataConverter(
       
   146             aMailboxApi, aSourceData, aTargetData );
       
   147     CleanupStack::PushL( self );
       
   148     self->ConstructL();
       
   149 
       
   150     IMUM_OUT();
       
   151     return self;
       
   152     }
       
   153 
       
   154 
       
   155 // ---------------------------------------------------------------------------
       
   156 // CImumMboxSymbianDataConverter::ConvertToSymbianMboxDataLC()
       
   157 // ---------------------------------------------------------------------------
       
   158 //
       
   159 CImumMboxData* CImumMboxSymbianDataConverter::ConvertToSymbianMboxDataLC(
       
   160     CImumInternalApiImpl& aMailboxApi,
       
   161     const CImumInSettingsData& aSourceData )
       
   162     {
       
   163     IMUM_STATIC_CONTEXT( CImumMboxSymbianDataConverter::ConvertToSymbianMboxDataLC, 0, utils, KLogData );
       
   164     IMUM_IN();
       
   165 
       
   166     CImumMboxData* targetData = CImumMboxData::NewLC();
       
   167     CImumMboxSymbianDataConverter* converter = NewLC(
       
   168         aMailboxApi, aSourceData, *targetData );
       
   169 
       
   170     TRAPD( error, converter->DoConvertToSymbianMboxDataL() );
       
   171     if ( error )
       
   172         {
       
   173         ConverterExceptionL( error );
       
   174         }
       
   175 
       
   176     CleanupStack::PopAndDestroy( converter );
       
   177     converter = NULL;
       
   178 
       
   179     IMUM_OUT();
       
   180     return targetData;
       
   181     }
       
   182 
       
   183 // ---------------------------------------------------------------------------
       
   184 // CImumMboxSymbianDataConverter::DoConvertToSymbianMboxDataL()
       
   185 // ---------------------------------------------------------------------------
       
   186 //
       
   187 void CImumMboxSymbianDataConverter::DoConvertToSymbianMboxDataL()
       
   188     {
       
   189     IMUM_CONTEXT( CImumMboxSymbianDataConverter::DoConvertToSymbianMboxDataL, 0, KLogData );
       
   190     IMUM_IN();
       
   191 
       
   192     // Collect the data from the entry
       
   193     if ( !iCreationPhase )
       
   194         {
       
   195         CollectEntryDataL();
       
   196         }
       
   197 
       
   198     TInt protocol = 0;
       
   199     iSourceData[0].GetAttr( TImumDaSettings::EKeyProtocol, protocol );
       
   200 
       
   201     // Create settings data objects according to protocol
       
   202     switch ( protocol )
       
   203         {
       
   204         case TImumDaSettings::EValueProtocolImap4:
       
   205             ConvToSymbianImap4DataL();
       
   206             break;
       
   207 
       
   208         case TImumDaSettings::EValueProtocolPop3:
       
   209             ConvToSymbianPop3DataL();
       
   210             break;
       
   211 
       
   212         default:
       
   213             ConverterExceptionL(
       
   214                 TImumDaErrorCode::EParamUnsupportedProtocol );
       
   215             break;
       
   216         }
       
   217 
       
   218     IMUM_OUT();
       
   219     }
       
   220 
       
   221 // ---------------------------------------------------------------------------
       
   222 // CImumMboxSymbianDataConverter::ConvToSymbianImap4DataL()
       
   223 // ---------------------------------------------------------------------------
       
   224 //
       
   225 void CImumMboxSymbianDataConverter::ConvToSymbianImap4DataL()
       
   226     {
       
   227     IMUM_CONTEXT( CImumMboxSymbianDataConverter::ConvToSymbianImap4DataL, 0, KLogData );
       
   228     IMUM_IN();
       
   229 
       
   230     iTargetData.iIsImap4 = ETrue;
       
   231 
       
   232     // For wizard, there is no account available
       
   233     if ( !iCreationPhase )
       
   234         {
       
   235         iMailboxApi.EmailAccountsL().GetImapAccountL(
       
   236             iMailboxEntries[0].Id(), iTargetData.iImap4AccountId );
       
   237         }
       
   238 
       
   239     DoPopulateSymbianImap4SettingsL();
       
   240     DoPopulateSymbianSmtpSettingsL();
       
   241     DoPopulateExtendedSettingsL();
       
   242 
       
   243     SetSymbianAccessPointL( 0 );
       
   244     SetSymbianAccessPointL( 1 );
       
   245 
       
   246     IMUM_OUT();
       
   247     }
       
   248 
       
   249 // ---------------------------------------------------------------------------
       
   250 // CImumMboxSymbianDataConverter::ConvToSymbianPop3DataL()
       
   251 // ---------------------------------------------------------------------------
       
   252 //
       
   253 void CImumMboxSymbianDataConverter::ConvToSymbianPop3DataL()
       
   254     {
       
   255     IMUM_CONTEXT( CImumMboxSymbianDataConverter::ConvToSymbianPop3DataL, 0, KLogData );
       
   256     IMUM_IN();
       
   257 
       
   258     // For wizard, there is no account available
       
   259     if ( !iCreationPhase )
       
   260         {
       
   261         iMailboxApi.EmailAccountsL().GetPopAccountL(
       
   262             iMailboxEntries[0].Id(), iTargetData.iPop3AccountId );
       
   263         }
       
   264 
       
   265     DoPopulateSymbianPop3SettingsL();
       
   266     DoPopulateSymbianSmtpSettingsL();
       
   267     DoPopulateExtendedSettingsL();
       
   268 
       
   269     SetSymbianAccessPointL( 0 );
       
   270     SetSymbianAccessPointL( 1 );
       
   271 
       
   272     IMUM_OUT();
       
   273     }
       
   274 
       
   275 // ---------------------------------------------------------------------------
       
   276 // CImumMboxSymbianDataConverter::DoPopulateSymbianImap4SettingsL()
       
   277 // ---------------------------------------------------------------------------
       
   278 //
       
   279 void CImumMboxSymbianDataConverter::DoPopulateSymbianImap4SettingsL()
       
   280     {
       
   281     IMUM_CONTEXT( CImumMboxSymbianDataConverter::DoPopulateSymbianImap4SettingsL, 0, KLogData );
       
   282     IMUM_IN();
       
   283 
       
   284     // CONNECTION SETTINGS
       
   285     MImumInSettingsDataCollection& rcvConnSet = iSourceData.GetInSetL(0);
       
   286     CImImap4Settings& imap4 = *iTargetData.iImap4Settings;
       
   287     TInt value = 0;
       
   288     TInt32 value32 = 0;
       
   289     TImumDaSettings::TTextServerAddress serverAddr;
       
   290     TImumDaSettings::TTextUserName username;
       
   291     TImumDaSettings::TTextPassword password;
       
   292     TImumDaSettings::TTextMailboxName name;
       
   293 
       
   294     //
       
   295     User::LeaveIfError( rcvConnSet.GetAttr(
       
   296         TImumDaSettings::EKeyServer, serverAddr ) );
       
   297     imap4.SetServerAddressL( serverAddr.Left( KImumDaMailboxNameLength ) );
       
   298 
       
   299     //
       
   300     User::LeaveIfError( rcvConnSet.GetAttr(
       
   301         TImumDaSettings::EKeyPort, value ) );
       
   302     imap4.SetPort( value );
       
   303 
       
   304     //
       
   305     User::LeaveIfError( rcvConnSet.GetAttr(
       
   306         TImumDaSettings::EKeySecurity, value ) );
       
   307     MsvEmailMtmUiUtils::StoreSecuritySettings(
       
   308         imap4, static_cast<TImumDaSettings::TSecurityValues>( value ) );
       
   309 
       
   310     //
       
   311     User::LeaveIfError( rcvConnSet.GetAttr(
       
   312         TImumDaSettings::EKeyUsername, username ) );
       
   313     imap4.SetLoginNameL( username );
       
   314 
       
   315     //
       
   316     User::LeaveIfError( rcvConnSet.GetAttr(
       
   317         TImumDaSettings::EKeyPassword, password ) );
       
   318     imap4.SetPasswordL( password );
       
   319 
       
   320     //
       
   321     User::LeaveIfError( rcvConnSet.GetAttr(
       
   322         TImumInSettings::EKeyImapIdle, value ) );
       
   323     imap4.SetImapIdle( value );
       
   324 
       
   325     //
       
   326     User::LeaveIfError( rcvConnSet.GetAttr(
       
   327         TImumInSettings::EKeyImapIdleTimeout, value ) );
       
   328     imap4.SetImapIdleTimeoutL( value );
       
   329 
       
   330     //
       
   331     User::LeaveIfError( rcvConnSet.GetAttr(
       
   332         TImumInSettings::EKeyDownloadMaxEmailSize, value ) );
       
   333     imap4.SetMaxEmailSize( value );
       
   334 
       
   335     //
       
   336     User::LeaveIfError( rcvConnSet.GetAttr(
       
   337         TImumInSettings::EKeyDownloadFlags, value32 ) );
       
   338     imap4.SetPartialMailOptionsL( GetSymbianImapPartial(
       
   339         TMuiuFlags( value32 ) ) );
       
   340 
       
   341     //
       
   342     User::LeaveIfError( rcvConnSet.GetAttr(
       
   343         TImumInSettings::EKeyDownloadBodySize, value32 ) );
       
   344     imap4.SetBodyTextSizeLimitL( value32 );
       
   345 
       
   346     //
       
   347     User::LeaveIfError( rcvConnSet.GetAttr(
       
   348         TImumInSettings::EKeyDownloadAttachmentSize, value32 ) );
       
   349     imap4.SetAttachmentSizeLimitL( value32 );
       
   350 
       
   351     //
       
   352     TImumDaSettings::TTextFolderPath folderPath;
       
   353     User::LeaveIfError( rcvConnSet.GetAttr(
       
   354         TImumDaSettings::EImapFolderPath, folderPath ) );
       
   355     imap4.SetFolderPathL( folderPath );
       
   356 
       
   357     //
       
   358     User::LeaveIfError( rcvConnSet.GetAttr(
       
   359         TImumInSettings::EKeySyncRate, value ) );
       
   360     imap4.SetSyncRateL( value );
       
   361 
       
   362     // MAILBOX SETTINGS
       
   363 
       
   364     //
       
   365     TImumInSettings::TTextSearchString searchString;
       
   366     User::LeaveIfError( iSourceData.GetAttr(
       
   367         TImumInSettings::EKeySearchString, searchString ) );
       
   368     imap4.SetSearchStringL( searchString );
       
   369 
       
   370     //
       
   371     TBuf8<KImumInSeparatorLength> pathSeparator;
       
   372     User::LeaveIfError( iSourceData.GetAttr(
       
   373         TImumInSettings::EKeyPathSeparator, pathSeparator ) );
       
   374     imap4.SetPathSeparator( *pathSeparator.Ptr() );
       
   375 
       
   376     //
       
   377     User::LeaveIfError( iSourceData.GetAttr(
       
   378         TImumInSettings::EKeyDisconnectedMode, value ) );
       
   379     imap4.SetDisconnectedUserMode( value );
       
   380 
       
   381     //
       
   382     User::LeaveIfError( iSourceData.GetAttr(
       
   383         TImumInSettings::EKeySynchronise, value ) );
       
   384     imap4.SetSynchronise( static_cast<TFolderSyncType>( value ) );
       
   385 
       
   386     //
       
   387     User::LeaveIfError( iSourceData.GetAttr(
       
   388         TImumInSettings::EKeySubscribe, value ) );
       
   389     imap4.SetSubscribe( static_cast<TFolderSubscribeType>( value ) );
       
   390 
       
   391     //
       
   392     User::LeaveIfError( iSourceData.GetAttr(
       
   393         TImumInSettings::EKeyAutoSendOnConnect, value ) );
       
   394     imap4.SetAutoSendOnConnect( value );
       
   395 
       
   396     //
       
   397     User::LeaveIfError( iSourceData.GetAttr(
       
   398         TImumInSettings::EKeyDeleteEmailsWhenDisconnecting, value ) );
       
   399     imap4.SetDeleteEmailsWhenDisconnecting( value );
       
   400 
       
   401     //
       
   402     User::LeaveIfError( iSourceData.GetAttr(
       
   403         TImumInSettings::EKeyAcknowledgeReceipts, value ) );
       
   404     imap4.SetAcknowledgeReceipts( value );
       
   405 
       
   406     //
       
   407     User::LeaveIfError( iSourceData.GetAttr(
       
   408         TImumDaSettings::EKeyInboxUpdateLimit, value32 ) );
       
   409     imap4.SetInboxSynchronisationLimit( value32 );
       
   410 
       
   411     //
       
   412     User::LeaveIfError( iSourceData.GetAttr(
       
   413         TImumDaSettings::EKeyFolderUpdateLimit, value32 ) );
       
   414     imap4.SetMailboxSynchronisationLimit( value32 );
       
   415 
       
   416     //
       
   417     User::LeaveIfError( iSourceData.GetAttr(
       
   418         TImumInSettings::EKeyUpdatingSeenFlag, value ) );
       
   419     imap4.SetUpdatingSeenFlags( value );
       
   420 
       
   421     //
       
   422     User::LeaveIfError( iSourceData.GetAttr(
       
   423         TImumInSettings::EKeyFetchSize, value ) );
       
   424     imap4.SetFetchSizeL( value );
       
   425 
       
   426     IMUM_OUT();
       
   427     }
       
   428 
       
   429 // ---------------------------------------------------------------------------
       
   430 // CImumMboxSymbianDataConverter::DoPopulateSymbianPop3SettingsL()
       
   431 // ---------------------------------------------------------------------------
       
   432 //
       
   433 void CImumMboxSymbianDataConverter::DoPopulateSymbianPop3SettingsL()
       
   434     {
       
   435     IMUM_CONTEXT( CImumMboxSymbianDataConverter::DoPopulateSymbianPop3SettingsL, 0, KLogData );
       
   436     IMUM_IN();
       
   437 
       
   438     MImumInSettingsDataCollection& rcvConnSet = iSourceData.GetInSetL(0);
       
   439     CImPop3Settings& pop3 = *iTargetData.iPop3Settings;
       
   440     TInt value = 0;
       
   441     TInt32 value32 = 0;
       
   442     TImumDaSettings::TTextServerAddress serverAddr;
       
   443     TImumDaSettings::TTextUserName username;
       
   444     TImumDaSettings::TTextPassword password;
       
   445 
       
   446     // CONNECTION SETTINGS
       
   447 
       
   448     //
       
   449     User::LeaveIfError( rcvConnSet.GetAttr(
       
   450         TImumDaSettings::EKeyServer, serverAddr ) );
       
   451     pop3.SetServerAddressL( serverAddr );
       
   452 
       
   453     //
       
   454     User::LeaveIfError( rcvConnSet.GetAttr(
       
   455         TImumDaSettings::EKeyPort, value ) );
       
   456     pop3.SetPort( value );
       
   457 
       
   458     //
       
   459     User::LeaveIfError( rcvConnSet.GetAttr(
       
   460         TImumDaSettings::EKeySecurity, value ) );
       
   461     MsvEmailMtmUiUtils::StoreSecuritySettings( pop3,
       
   462         static_cast<TImumDaSettings::TSecurityValues>( value ) );
       
   463 
       
   464     //
       
   465     User::LeaveIfError( rcvConnSet.GetAttr(
       
   466         TImumDaSettings::EKeyUsername, username ) );
       
   467     pop3.SetLoginNameL( username );
       
   468     //
       
   469     User::LeaveIfError( rcvConnSet.GetAttr(
       
   470         TImumDaSettings::EKeyPassword, password ) );
       
   471     pop3.SetPasswordL( password );
       
   472 
       
   473     //
       
   474     User::LeaveIfError( rcvConnSet.GetAttr(
       
   475         TImumInSettings::EKeyDownloadMaxEmailSize, value ) );
       
   476     pop3.SetMaxEmailSize( value );
       
   477 
       
   478     //
       
   479     User::LeaveIfError( rcvConnSet.GetAttr(
       
   480         TImumInSettings::EKeySyncFlags, value32 ) );
       
   481     pop3.SetGetMailOptions( GetSymbianPopGetMail( value32 ) );
       
   482 
       
   483     //
       
   484     User::LeaveIfError( rcvConnSet.GetAttr(
       
   485         TImumInSettings::EKeySyncFlags, value32 ) );
       
   486     pop3.SetPopulationLimitL(
       
   487         GetSymbianPopDownloadL( value32, rcvConnSet ) );
       
   488 
       
   489     //
       
   490     User::LeaveIfError( rcvConnSet.GetAttr(
       
   491         TImumDaSettings::EKeyAPop, value ) );
       
   492     pop3.SetApop( value );
       
   493 
       
   494     // MAILBOX SETTINGS
       
   495 
       
   496     //
       
   497     User::LeaveIfError( iSourceData.GetAttr(
       
   498         TImumInSettings::EKeyAutoSendOnConnect, value ) );
       
   499     pop3.SetAutoSendOnConnect( value );
       
   500 
       
   501     //
       
   502     User::LeaveIfError( iSourceData.GetAttr(
       
   503         TImumInSettings::EKeyDisconnectedMode, value ) );
       
   504     pop3.SetDisconnectedUserMode( value );
       
   505 
       
   506     //
       
   507     User::LeaveIfError( iSourceData.GetAttr(
       
   508         TImumInSettings::EKeyDeleteEmailsWhenDisconnecting, value ) );
       
   509     pop3.SetDeleteEmailsWhenDisconnecting( value );
       
   510 
       
   511     //
       
   512     User::LeaveIfError( iSourceData.GetAttr(
       
   513         TImumInSettings::EKeyAcknowledgeReceipts, value ) );
       
   514     pop3.SetAcknowledgeReceipts( value );
       
   515 
       
   516     //
       
   517     User::LeaveIfError( iSourceData.GetAttr(
       
   518         TImumDaSettings::EKeyInboxUpdateLimit, value32 ) );
       
   519     pop3.SetInboxSynchronisationLimit( value32 );
       
   520 
       
   521     IMUM_OUT();
       
   522     }
       
   523 
       
   524 // ---------------------------------------------------------------------------
       
   525 // CImumMboxSymbianDataConverter::DoPopulateSymbianSmtpSettingsL()
       
   526 // ---------------------------------------------------------------------------
       
   527 //
       
   528 void CImumMboxSymbianDataConverter::DoPopulateSymbianSmtpSettingsL()
       
   529     {
       
   530     IMUM_CONTEXT( CImumMboxSymbianDataConverter::DoPopulateSymbianSmtpSettingsL, 0, KLogData );
       
   531     IMUM_IN();
       
   532 
       
   533     MImumInSettingsDataCollection& sndConnSet = iSourceData.GetInSetL(1);
       
   534     CImSmtpSettings& smtp = *iTargetData.iSmtpSettings;
       
   535     TInt value = 0;
       
   536     TInt32 value32 = 0;
       
   537     TImumDaSettings::TTextServerAddress serverAddr;
       
   538     TImumDaSettings::TTextUserName username;
       
   539     TImumDaSettings::TTextPassword password;
       
   540 
       
   541     // CONNECTION SETTINGS
       
   542 
       
   543     //
       
   544     User::LeaveIfError( sndConnSet.GetAttr(
       
   545         TImumDaSettings::EKeyServer, serverAddr ) );
       
   546     smtp.SetServerAddressL( serverAddr );
       
   547 
       
   548     //
       
   549     User::LeaveIfError( sndConnSet.GetAttr(
       
   550         TImumDaSettings::EKeyPort, value ) );
       
   551     smtp.SetPort( value );
       
   552 
       
   553     //
       
   554     User::LeaveIfError( sndConnSet.GetAttr(
       
   555         TImumDaSettings::EKeySecurity, value ) );
       
   556     MsvEmailMtmUiUtils::StoreSecuritySettings( smtp,
       
   557         static_cast<TImumDaSettings::TSecurityValues>( value ) );
       
   558 
       
   559     //
       
   560     User::LeaveIfError( sndConnSet.GetAttr(
       
   561         TImumDaSettings::EKeyUsername, username ) );
       
   562     smtp.SetLoginNameL( username );
       
   563 
       
   564     //
       
   565     User::LeaveIfError( sndConnSet.GetAttr(
       
   566         TImumDaSettings::EKeyPassword, password ) );
       
   567     smtp.SetPasswordL( password );
       
   568 
       
   569 
       
   570     // MAILBOX SETTINGS
       
   571 
       
   572     //
       
   573     TImumDaSettings::TTextEmailAddress emailAddress;
       
   574     User::LeaveIfError( iSourceData.GetAttr(
       
   575         TImumDaSettings::EKeyEmailAddress, emailAddress ) );
       
   576     smtp.SetEmailAddressL( emailAddress );
       
   577 
       
   578     //
       
   579     TImumDaSettings::TTextUserAlias userAlias;
       
   580     User::LeaveIfError( iSourceData.GetAttr(
       
   581         TImumDaSettings::EKeyUserAlias, userAlias ) );
       
   582     smtp.SetEmailAliasL( userAlias );
       
   583 
       
   584     //
       
   585     User::LeaveIfError( iSourceData.GetAttr(
       
   586         TImumDaSettings::EKeyReplyToAddress, emailAddress ) );
       
   587     smtp.SetReplyToAddressL( emailAddress );
       
   588 
       
   589     //
       
   590     User::LeaveIfError( iSourceData.GetAttr(
       
   591         TImumInSettings::EKeyReceiptAddress, emailAddress ) );
       
   592     smtp.SetReceiptAddressL( emailAddress );
       
   593 
       
   594     //
       
   595     User::LeaveIfError( iSourceData.GetAttr(
       
   596         TImumInSettings::EKeyBodyEncoding, value ) );
       
   597     smtp.SetBodyEncoding( static_cast<TMsgOutboxBodyEncoding>( value ) );
       
   598 
       
   599     //
       
   600     User::LeaveIfError( iSourceData.GetAttr(
       
   601         TImumInSettings::EKeyDefaultMsgCharSet, value32 ) );
       
   602     smtp.SetDefaultMsgCharSet( TUid::Uid( value32 ) );
       
   603 
       
   604     //
       
   605     User::LeaveIfError( iSourceData.GetAttr(
       
   606         TImumInSettings::EKeyAddVCardToEmail, value ) );
       
   607     smtp.SetAddVCardToEmail( value );
       
   608 
       
   609     //
       
   610     User::LeaveIfError( iSourceData.GetAttr(
       
   611         TImumDaSettings::EKeyIncludeSignature, value ) );
       
   612     smtp.SetAddSignatureToEmail( value );
       
   613 
       
   614     //
       
   615     User::LeaveIfError( iSourceData.GetAttr(
       
   616         TImumInSettings::EKeyRequestReceipts, value ) );
       
   617     smtp.SetRequestReceipts( value );
       
   618 
       
   619     //
       
   620     User::LeaveIfError( iSourceData.GetAttr(
       
   621         TImumDaSettings::EKeySendCopyToSelf, value ) );
       
   622     smtp.SetSendCopyToSelf( static_cast<TImSMTPSendCopyToSelf>( value ) );
       
   623 
       
   624     //
       
   625     User::LeaveIfError( iSourceData.GetAttr(
       
   626         TImumDaSettings::EKeySendDelay, value ) );
       
   627     smtp.SetSendMessageOption(
       
   628         static_cast<TImSMTPSendMessageOption>( value ) );
       
   629 
       
   630     //
       
   631     User::LeaveIfError( iSourceData.GetAttr(
       
   632         TImumInSettings::EKeySMTPAuth, value ) );
       
   633     smtp.SetSMTPAuth( value );
       
   634 
       
   635     //
       
   636     User::LeaveIfError( iSourceData.GetAttr(
       
   637         TImumInSettings::EKeyInboxLoginDetails, value ) );
       
   638     smtp.SetInboxLoginDetails( value );
       
   639 
       
   640     //
       
   641     User::LeaveIfError( iSourceData.GetAttr(
       
   642         TImumInSettings::EKeyToCcIncludeLimit, value ) );
       
   643     smtp.SetToCcIncludeLimitL( value );
       
   644 
       
   645     IMUM_OUT();
       
   646     }
       
   647 
       
   648 // ---------------------------------------------------------------------------
       
   649 // CImumMboxSymbianDataConverter::DoPopulateExtendedSettingsL()
       
   650 // ---------------------------------------------------------------------------
       
   651 //
       
   652 void CImumMboxSymbianDataConverter::DoPopulateExtendedSettingsL()
       
   653     {
       
   654     IMUM_CONTEXT( CImumMboxSymbianDataConverter::DoPopulateExtendedSettingsL, 0, KLogData );
       
   655     IMUM_IN();
       
   656 
       
   657     CImumMboxDataExtension& ext = *iTargetData.iExtendedSettings;
       
   658 
       
   659     TInt value = 0;
       
   660     TInt64 value64 = 0;
       
   661     TImumDaSettings::TTextSignature signature;
       
   662 
       
   663     //
       
   664     User::LeaveIfError( iSourceData.GetAttr(
       
   665         TImumDaSettings::EKeyMailboxName, iTargetData.iName ) );
       
   666 
       
   667     //
       
   668     TImumDaSettings::TTextEmailAddress emailAddress;
       
   669     User::LeaveIfError( iSourceData.GetAttr(
       
   670         TImumDaSettings::EKeyEmailAddress, emailAddress ) );
       
   671     ext.SetEmailAddress( emailAddress );
       
   672 
       
   673     //
       
   674     User::LeaveIfError( iSourceData.GetAttr(
       
   675         TImumDaSettings::EKeyEmailAlert, value ) );
       
   676     ext.SetNewMailIndicators( value );
       
   677 
       
   678     //
       
   679     User::LeaveIfError( iSourceData.GetAttr(
       
   680         TImumInSettings::EKeyIsPredefinedMailbox, value ) );
       
   681     ext.SetIsPredefined( value );
       
   682 
       
   683     //
       
   684     User::LeaveIfError( iSourceData.GetAttr(
       
   685         TImumDaSettings::EKeySignature, signature ) );
       
   686     iTargetData.iSignature->iRichText->Reset();
       
   687     iTargetData.iSignature->iRichText->InsertL( 0, signature );
       
   688 
       
   689     //
       
   690     User::LeaveIfError( iSourceData.GetAttr(
       
   691         TImumDaSettings::EKeyAutoNotifications, value ) );
       
   692     ext.SetEmailNotificationState( SymbianEmnState( value ) );
       
   693 
       
   694     //
       
   695     User::LeaveIfError( iSourceData.GetAttr(
       
   696         TImumDaSettings::EKeyMailDeletion, value ) );
       
   697     ext.SetMailDeletion( static_cast<TIMASMailDeletionMode>( value ) );
       
   698 
       
   699     //
       
   700     User::LeaveIfError( iSourceData.GetAttr(
       
   701         TImumInSettings::EKeyHideMsgs, value ) );
       
   702     ext.SetHideMsgs( value );
       
   703 
       
   704     //
       
   705     User::LeaveIfError( iSourceData.GetAttr(
       
   706         TImumInSettings::EKeyOpenHtmlMail, value ) );
       
   707     ext.SetOpenHtmlMail( value );
       
   708 
       
   709     //
       
   710     User::LeaveIfError( iSourceData.GetAttr(
       
   711         TImumDaSettings::EKeyAutoRetrieval, value ) );
       
   712     ext.SetAlwaysOnlineState( SymbianAoState( value ) );
       
   713 
       
   714     //
       
   715     User::LeaveIfError( iSourceData.GetAttr(
       
   716         TImumDaSettings::EKeyAutoRetrievalDays, value ) );
       
   717     ext.SetSelectedWeekDays( value );
       
   718 
       
   719     //
       
   720     User::LeaveIfError( iSourceData.GetAttr(
       
   721         TImumDaSettings::EKeyAutoRetrievalStartHour, value64 ) );
       
   722     ext.SetSelectedTimeStart( value64 );
       
   723 
       
   724     //
       
   725     User::LeaveIfError( iSourceData.GetAttr(
       
   726         TImumDaSettings::EKeyAutoRetrievalEndHour, value64 ) );
       
   727     ext.SetSelectedTimeStop( value64 );
       
   728 
       
   729     //
       
   730     User::LeaveIfError( iSourceData.GetAttr(
       
   731         TImumDaSettings::EKeyAutoRetrievalInterval, value ) );
       
   732     ext.SetInboxRefreshTime( SymbianAoRetrievalInterval( value ) );
       
   733 
       
   734     //
       
   735     TAOInfo aoInfo;
       
   736     User::LeaveIfError( iSourceData.GetAttr(
       
   737         TImumInSettings::EKeyInfoLastUpdateFailed, value ) );
       
   738     aoInfo.iLastUpdateFailed = value;
       
   739 
       
   740     User::LeaveIfError( iSourceData.GetAttr(
       
   741         TImumInSettings::EKeyInfoLastSuccessfulUpdate, value64 ) );
       
   742     aoInfo.iLastSuccessfulUpdate = value64;
       
   743 
       
   744     User::LeaveIfError( iSourceData.GetAttr(
       
   745         TImumInSettings::EKeyAoUpdateSuccessfulWithCurSettings, value ) );
       
   746     aoInfo.iUpdateSuccessfulWithCurSettings = value;
       
   747 
       
   748     ext.SetLastUpdateInfo( aoInfo );
       
   749 
       
   750     // Temporary password status
       
   751     TMuiuFlags statusFlags =  ext.StatusFlags();
       
   752     // Receive temp password flag
       
   753     User::LeaveIfError( iSourceData[0].GetAttr(
       
   754         TImumInSettings::EKeyTemporaryPassword, value ) );
       
   755     statusFlags.ChangeFlag( EIMASStatusTempRcvPassword , value );
       
   756     // Transmit temp password flag
       
   757     User::LeaveIfError( iSourceData[1].GetAttr(
       
   758         TImumInSettings::EKeyTemporaryPassword, value ) );
       
   759     statusFlags.ChangeFlag( EIMASStatusTempSndPassword, value );
       
   760     ext.SetStatusFlags( statusFlags );
       
   761 
       
   762     IMUM_OUT();
       
   763     }
       
   764 
       
   765 // ---------------------------------------------------------------------------
       
   766 // CImumMboxSymbianDataConverter::SetSymbianAccessPointL()
       
   767 // ---------------------------------------------------------------------------
       
   768 //
       
   769 void CImumMboxSymbianDataConverter::SetSymbianAccessPointL(
       
   770     const TInt aIndex )
       
   771     {
       
   772     IMUM_CONTEXT( CImumMboxSymbianDataConverter::SetSymbianAccessPointL, 0, KLogData );
       
   773     IMUM_IN();
       
   774 
       
   775     MImumInSettingsDataCollection& source = iSourceData.GetInSetL( aIndex );
       
   776 
       
   777     TInt ap = 0;
       
   778     source.GetAttr( TImumDaSettings::EKeyAccessPoint, ap );
       
   779 
       
   780     // set ap id to 0 if always ask is set, meaning default connection
       
   781     // is used
       
   782     if( ap == TImumDaSettings::EValueApAlwaysAsk )
       
   783         {
       
   784         ap = 0;
       
   785         }
       
   786 
       
   787     if ( !aIndex )
       
   788         {
       
   789         iTargetData.iIncomingIap = ap;
       
   790         }
       
   791     else
       
   792         {
       
   793         iTargetData.iOutgoingIap = ap;
       
   794         }
       
   795 
       
   796     IMUM_OUT();
       
   797     }
       
   798 
       
   799 // ---------------------------------------------------------------------------
       
   800 // ImumInSettingsDataConverter::CollectEntryDataL()
       
   801 // ---------------------------------------------------------------------------
       
   802 //
       
   803 void CImumMboxSymbianDataConverter::CollectEntryDataL()
       
   804     {
       
   805     IMUM_CONTEXT( CImumMboxSymbianDataConverter::CollectEntryDataL, 0, KLogData );
       
   806     IMUM_IN();
       
   807 
       
   808     // Protocol
       
   809     iTargetData.iIsImap4 = ( iMailboxProtocol == KSenduiMtmImap4Uid );
       
   810     iTargetData.iExtendedSettings->SetProtocol( iMailboxProtocol );
       
   811 
       
   812     // Account Id
       
   813     const TMsvEntry& rcv = iMailboxEntries[0];
       
   814     iTargetData.iExtendedSettings->SetAccountId( rcv.iMtmData2 );
       
   815 
       
   816     // Extension Id
       
   817     TUint32 extId = IMASAccountControl::AccountIdToExtendedAccountId(
       
   818         rcv.iMtmData2,
       
   819         rcv.iMtm );
       
   820     iTargetData.iExtendedSettings->SetExtensionId( extId );
       
   821 
       
   822     // Mailbox Id
       
   823     TMsvEntry smtp = iMailboxEntries[1];
       
   824     iTargetData.iMailboxId = smtp.Id();
       
   825     iTargetData.iExtendedSettings->SetMailboxId( smtp.Id() );
       
   826 
       
   827 
       
   828     IMUM_OUT();
       
   829     }
       
   830 
       
   831 // ---------------------------------------------------------------------------
       
   832 // CImumMboxSymbianDataConverter::GetSymbianImapPartial()
       
   833 // ---------------------------------------------------------------------------
       
   834 //
       
   835 TImImap4PartialMailOptions CImumMboxSymbianDataConverter::GetSymbianImapPartial(
       
   836     const TMuiuFlags& /* aFlags */ )
       
   837     {
       
   838     IMUM_CONTEXT( CImumMboxSymbianDataConverter::GetSymbianImapPartial, 0, KLogData );
       
   839     IMUM_IN();
       
   840 
       
   841     // Currently, no sizelimits supported in imap4
       
   842     IMUM_OUT();
       
   843 
       
   844     return ENoSizeLimits;
       
   845     }
       
   846 
       
   847 // ---------------------------------------------------------------------------
       
   848 // CImumMboxSymbianDataConverter::SymbianAoState()
       
   849 // ---------------------------------------------------------------------------
       
   850 //
       
   851 TMailAoStates CImumMboxSymbianDataConverter::SymbianAoState(
       
   852     const TInt aAoState )
       
   853     {
       
   854     switch ( aAoState )
       
   855         {
       
   856         case TImumDaSettings::EValueAutoOff:
       
   857             return EMailAoOff;
       
   858         case TImumDaSettings::EValueAutoOn:
       
   859             return EMailAoAlways;
       
   860         case TImumDaSettings::EValueAutoHomeNetwork:
       
   861             return EMailAoHomeOnly;
       
   862         }
       
   863 
       
   864     return EMailAoOff;
       
   865     }
       
   866 
       
   867 // ---------------------------------------------------------------------------
       
   868 // CImumMboxSymbianDataConverter::SymbianAoRetrievalInterval()
       
   869 // ---------------------------------------------------------------------------
       
   870 //
       
   871 TInt CImumMboxSymbianDataConverter::SymbianAoRetrievalInterval(
       
   872     TInt aInterval )
       
   873     {
       
   874     switch ( aInterval )
       
   875         {
       
   876         case TImumDaSettings::EValue5Minutes:
       
   877             return KIMASAoInterval5Min;
       
   878         case TImumDaSettings::EValue15Minutes:
       
   879             return KIMASAoInterval15Min;
       
   880         case TImumDaSettings::EValue30Minutes:
       
   881             return KIMASAoInterval30Min;
       
   882         case TImumDaSettings::EValue1Hour:
       
   883             return KIMASAoInterval1Hour;
       
   884         case TImumDaSettings::EValue2Hours:
       
   885             return KIMASAoInterval2Hours;
       
   886         case TImumDaSettings::EValue4Hours:
       
   887             return KIMASAoInterval4Hours;
       
   888         case TImumDaSettings::EValue6Hours:
       
   889             return KIMASAoInterval6Hours;
       
   890         }
       
   891 
       
   892     // default
       
   893     return KIMASAoInterval1Hour;
       
   894     }
       
   895 
       
   896 // ---------------------------------------------------------------------------
       
   897 // CImumMboxSymbianDataConverter::SymbianEmnState()
       
   898 // ---------------------------------------------------------------------------
       
   899 //
       
   900 TMailEmnStates CImumMboxSymbianDataConverter::SymbianEmnState(
       
   901     const TInt aEmnState )
       
   902     {
       
   903     switch ( aEmnState )
       
   904         {
       
   905         case TImumDaSettings::EValueNotificationsOff:
       
   906             return EMailEmnOff;
       
   907         case TImumDaSettings::EValueNotificationsOn:
       
   908             return EMailEmnAutomatic;
       
   909         case TImumDaSettings::EValueNotificationsHome:
       
   910             return EMailEmnHomeOnly;
       
   911         }
       
   912 
       
   913     return EMailEmnOff;
       
   914     }
       
   915 
       
   916 // ---------------------------------------------------------------------------
       
   917 // CImumMboxSymbianDataConverter::GetSymbianPopGetMail()
       
   918 // ---------------------------------------------------------------------------
       
   919 //
       
   920 TPop3GetMailOptions CImumMboxSymbianDataConverter::GetSymbianPopGetMail(
       
   921     const TUint aFlags )
       
   922     {
       
   923     // Get body and headers as default
       
   924     return ( aFlags == TImumInSettings::EFlagSetDownloadAll ) ?
       
   925         EGetPop3EmailMessages : EGetPop3EmailHeaders ;
       
   926     }
       
   927 
       
   928 // ---------------------------------------------------------------------------
       
   929 // CImumMboxSymbianDataConverter::GetSymbianPopDownloadL()
       
   930 // ---------------------------------------------------------------------------
       
   931 //
       
   932 TInt32 CImumMboxSymbianDataConverter::GetSymbianPopDownloadL(
       
   933     const TUint aFlags,
       
   934     const MImumInSettingsDataCollection& aInternalDataCollection )
       
   935     {
       
   936     IMUM_CONTEXT( CImumMboxSymbianDataConverter::GetSymbianPopDownloadL, 0, KLogData );
       
   937     IMUM_IN();
       
   938 
       
   939     TInt32 partial = 0;
       
   940 
       
   941     // Check if Header & Body & Attachment is set
       
   942     if ( aFlags == TImumInSettings::EFlagSetDownloadAll )
       
   943         {
       
   944         partial = EIMASMapFullBody;
       
   945         }
       
   946     // Check if only headers is set
       
   947     else if ( aFlags == TImumInSettings::EFlagDownloadHeader |
       
   948         aFlags == TImumInSettings::EFlagDownloadBody )
       
   949         {
       
   950         partial = EIMASMapHeadersOnly;
       
   951         }
       
   952     // Set up the cumulative partial download
       
   953     else if ( aFlags == TImumInSettings::EFlagDownloadPartialCumulative )
       
   954         {
       
   955         // In cumulative retrieval, only bodycount matters
       
   956         User::LeaveIfError( aInternalDataCollection.GetAttr(
       
   957             TImumInSettings::EKeyDownloadBodySize, partial ) );
       
   958         }
       
   959     else
       
   960         {
       
   961         // Unsupported set... Force default set
       
   962         partial = EIMASMapHeadersOnly;
       
   963         }
       
   964 
       
   965     IMUM_OUT();
       
   966 
       
   967     return partial;
       
   968     }
       
   969 
       
   970 // ---------------------------------------------------------------------------
       
   971 // CImumMboxSymbianDataConverter::ConverterExceptionL()
       
   972 // ---------------------------------------------------------------------------
       
   973 //
       
   974 void CImumMboxSymbianDataConverter::ConverterExceptionL(
       
   975     const TInt aErrorCode )
       
   976     {
       
   977     IMUM_STATIC_CONTEXT( CImumMboxSymbianDataConverter::ConverterExceptionL, 0, utils, KLogData );
       
   978     IMUM_IN();
       
   979 
       
   980     __ASSERT_DEBUG( EFalse,
       
   981         User::Panic( KImumMboxSymbianDataConverter, aErrorCode ) );
       
   982     User::Leave( aErrorCode );
       
   983     }
       
   984 
       
   985 
       
   986 // End of File