--- a/omacp/omacpadapters/EmailAdapter/src/CWPEmailAdapter.cpp Tue Feb 02 00:03:17 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,391 +0,0 @@
-/*
-* Copyright (c) 2002 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: Class for handling provisioning message
-*
-*/
-
-
-
-// INCLUDE FILES
-#include "CWPEmailAdapter.h"
-#include "CWPEmailItem.h"
-#include "CWPEmailSaveSmtpImapItem.h"
-#include "CWPEmailSaveSmtpPopItem.h"
-#include "EmailAdapter.pan" // Panic codes
-#include "WPEmail.hrh"
-#include <wpemailadapterresource.rsg>
-#include "Cwplog.h"
-
-#include <WPAdapterUtil.h> // Adapter utils
-#include <CWPAdapter.h>
-#include <CWPCharacteristic.h>
-#include <CWPParameter.h>
-
-#include <commdb.h>
-
-// CONSTANTS
-const TInt KFirstArrayIndex = 0;
-const TInt KArrayGranularity = 5;
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CWPEmailAdapter::CWPEmailAdapter
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CWPEmailAdapter::CWPEmailAdapter() : CWPAdapter()
- {
- }
-
-// -----------------------------------------------------------------------------
-// CWPEmailAdapter::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CWPEmailAdapter::ConstructL()
- {
- iSession = CMsvSession::OpenSyncL(*this);
-
- // Usually 1 or 2 settings.
- iEmailSettings = new(ELeave) CArrayPtrFlat<CWPEmailItem>(KArrayGranularity);
-
- iEmailSettingPair =
- new(ELeave) CArrayPtrFlat<CWPEmailSaveItem>(KArrayGranularity);
-
- TFileName fileName;
- Dll::FileName( fileName );
- iTitle = WPAdapterUtil::ReadHBufCL( fileName,
- KAdapterName,
- R_QTN_SM_TITLE_EMAIL_SETTINGS );
- }
-
-// -----------------------------------------------------------------------------
-// CWPEmailAdapter::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CWPEmailAdapter* CWPEmailAdapter::NewL()
- {
- CWPEmailAdapter* self = new(ELeave) CWPEmailAdapter;
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// Destructor
-// -----------------------------------------------------------------------------
-CWPEmailAdapter::~CWPEmailAdapter()
- {
- delete iSession;
- delete iCommsDb;
- delete iCurrentItem;
- delete iTitle;
-
- if ( iEmailSettings )
- {
- iEmailSettings->ResetAndDestroy();
- delete iEmailSettings;
- }
- if ( iEmailSettingPair )
- {
- iEmailSettingPair->ResetAndDestroy();
- delete iEmailSettingPair;
- }
- }
-// -----------------------------------------------------------------------------
-// CWPEmailAdapter::AcceptedSettingGroup
-// -----------------------------------------------------------------------------
-//
-TBool CWPEmailAdapter::AcceptedSettingGroup()
- {
- return ( iCurrentItem->IsValid() );
- }
-
-// -----------------------------------------------------------------------------
-// CWPEmailAdapter::AddSmtpImapSettingsL
-// -----------------------------------------------------------------------------
-//
-void CWPEmailAdapter::AddSmtpImapSettingsL( CWPEmailItem* aSmtpItem,
- CWPEmailItem* aImapItem )
- {
- CWPEmailSaveItem* settingPair = CSaveSmtpImapItem::NewLC( aSmtpItem,
- aImapItem );
- if ( settingPair->ValidateL() )
- {
- iEmailSettingPair->AppendL( settingPair );
- CleanupStack::Pop(); //settingPair
- }
- else
- {
- //not valid so delete
- CleanupStack::PopAndDestroy(); //settingPair
- }
- }
-
-// -----------------------------------------------------------------------------
-// CWPEmailAdapter::AddSmtpPopSettingsL
-// -----------------------------------------------------------------------------
-//
-void CWPEmailAdapter::AddSmtpPopSettingsL( CWPEmailItem* aSmtpItem,
- CWPEmailItem* aPopItem )
- {
- CWPEmailSaveItem* settingPair = CSaveSmtpPopItem::NewLC( aSmtpItem,
- aPopItem );
- if ( settingPair->ValidateL() )
- {
- iEmailSettingPair->AppendL(settingPair);
- CleanupStack::Pop(); //settingPair
- }
- else
- {
- //not valid so delete
- CleanupStack::PopAndDestroy(); //settingPair
- }
- }
-
-// -----------------------------------------------------------------------------
-// CWPEmailAdapter::CreateSettingsL
-// -----------------------------------------------------------------------------
-//
-void CWPEmailAdapter::CreateSettingsL( CWPEmailItem* aItem )
- {
- // All settings
- TInt count = iEmailSettings->Count();
- const TDesC& newItemID = aItem->ParameterValue( EWPParameterAppID );
-
- for (TInt i(KFirstArrayIndex); i < count; ++i)
- {
- const TDesC& appId = iEmailSettings->At(i)->
- ParameterValue( EWPParameterAppID );
-
- // SMTP item
- if ( newItemID == KEmailSettingPortSMTP)
- {
- if ( appId == KEmailSettingPortIMAP )
- {
- AddSmtpImapSettingsL( aItem, iEmailSettings->At(i) );
- }
- if ( appId == KEmailSettingPortPOP )
- {
- AddSmtpPopSettingsL( aItem, iEmailSettings->At(i) );
- }
- }
- // POP/IMAP item
- else
- {
- if ( appId == KEmailSettingPortSMTP )
- {
- if ( newItemID == KEmailSettingPortIMAP )
- {
- AddSmtpImapSettingsL( iEmailSettings->At(i), aItem );
- }
- if ( newItemID == KEmailSettingPortPOP )
- {
- AddSmtpPopSettingsL( iEmailSettings->At(i), aItem );
- }
- }
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CWPEmailAdapter::HandleSessionEventL
-// -----------------------------------------------------------------------------
-//
-void CWPEmailAdapter::HandleSessionEventL( TMsvSessionEvent /*aEvent*/,
- TAny* /*aArg1*/,
- TAny* /*aArg2*/,
- TAny* /*aArg3*/ )
- {
- // From MMsvSessionObserver. Ignore session events
- }
-
-// -----------------------------------------------------------------------------
-// CWPEmailAdapter::ItemCount
-// -----------------------------------------------------------------------------
-//
-TInt CWPEmailAdapter::ItemCount() const
- {
- return iEmailSettingPair->Count();
- }
-// -----------------------------------------------------------------------------
-// CWPEmailAdapter::SummaryTitle
-// -----------------------------------------------------------------------------
-//
-const TDesC16& CWPEmailAdapter::SummaryTitle( TInt /*aIndex*/ ) const
- {
- // title text is always same
- return *iTitle;
- }
-
-// -----------------------------------------------------------------------------
-// CWPEmailAdapter::SummaryText
-// -----------------------------------------------------------------------------
-//
-const TDesC16& CWPEmailAdapter::SummaryText( TInt aIndex ) const
- {
- if ( ItemCount() == 0 )
- {
- return KNullDesC;
- }
- return iEmailSettingPair->At(aIndex)->SummaryText();
- }
-
-// -----------------------------------------------------------------------------
-// CWPEmailAdapter::SaveL
-// -----------------------------------------------------------------------------
-//
-void CWPEmailAdapter::SaveL( TInt aItem )
- {
- __ASSERT_DEBUG(aItem < ItemCount() &&
- aItem >= KFirstArrayIndex, Panic( EMailAdapterArgument ));
-
- // Create the commsdb when the save is initiated first time.
- // This stays alive until the adapter is destroyed.
- if ( !iCommsDb )
- {
- iCommsDb = CCommsDatabase::NewL( EDatabaseTypeIAP );
- }
- User::LeaveIfNull(iCommsDb);
- iEmailSettingPair->At(aItem)->SetCommsDataBase( *iCommsDb );
- iEmailSettingPair->At(aItem)->SaveL( iSession );
- }
-
-// -----------------------------------------------------------------------------
-// CWPEmailAdapter::CanSetAsDefault
-// -----------------------------------------------------------------------------
-//
-TBool CWPEmailAdapter::CanSetAsDefault( TInt aItem ) const
- {
- // always set first setting as default
- return (aItem == KFirstArrayIndex && ItemCount());
- }
-
-// -----------------------------------------------------------------------------
-// CWPEmailAdapter::SetAsDefaultL
-// -----------------------------------------------------------------------------
-//
-void CWPEmailAdapter::SetAsDefaultL( TInt /*aItem*/ )
- {
- // set always first setting as default
- iEmailSettingPair->At(KFirstArrayIndex)->SetAsDefaultL();
- }
-
-// -----------------------------------------------------------------------------
-// CWPEmailAdapter::DetailsL
-// -----------------------------------------------------------------------------
-//
-TInt CWPEmailAdapter::DetailsL( TInt /*aItem*/, MWPPairVisitor& /*aVisitor*/ )
- {
- return KErrNotSupported;
- }
-
-// -----------------------------------------------------------------------------
-// CWPEmailAdapter::ContextExtension
-// -----------------------------------------------------------------------------
-//
-TInt CWPEmailAdapter::ContextExtension( MWPContextExtension*& aExtension )
- {
- aExtension = this;
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CWPEmailAdapter::VisitL
-// -----------------------------------------------------------------------------
-//
-void CWPEmailAdapter::VisitL( CWPCharacteristic& aCharacteristic )
- {
- TInt type = aCharacteristic.Type();
- // Are we dealing with application specific data.
- if ( type == KWPApplication )
- {
- iCurrentItem = CWPEmailItem::NewL();
- aCharacteristic.AcceptL( *iCurrentItem );
-
- if( AcceptedSettingGroup() )
- {
- CreateSettingsL( iCurrentItem );
- iEmailSettings->AppendL( iCurrentItem );
- }
- else
- {
- delete iCurrentItem;
- }
- iCurrentItem = NULL;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CWPEmailAdapter::VisitL
-// -----------------------------------------------------------------------------
-//
-void CWPEmailAdapter::VisitL( CWPParameter& /*aParameter*/)
- {
- // parameters are handled in the CWPEmailItem.
- }
-
-// -----------------------------------------------------------------------------
-// CWPEmailAdapter::VisitL
-// -----------------------------------------------------------------------------
-//
-void CWPEmailAdapter::VisitLinkL( CWPCharacteristic& /*aParameter*/)
- {
- // visit link is handled in the CWPEmailItem.
- }
-
-// -----------------------------------------------------------------------------
-// CWPEmailAdapter::SaveDataL
-// -----------------------------------------------------------------------------
-//
-const TDesC8& CWPEmailAdapter::SaveDataL( TInt aIndex ) const
- {
- // From MWPContextExtension
- return iEmailSettingPair->At(aIndex)->SaveData();
- }
-
-// -----------------------------------------------------------------------------
-// CWPEmailAdapter::DeleteL
-// -----------------------------------------------------------------------------
-//
-void CWPEmailAdapter::DeleteL( const TDesC8& aSaveData )
- {
- // From MWPContextExtension
- TPckgBuf<CWPEmailSaveItem::TSettingId> uids;
- uids.Copy( aSaveData );
-
- TInt32 smtpId = uids().iSmtpId;
- TInt32 popimapId = uids().iPopImapId;
- iSession->RemoveEntry( popimapId );
- // removing POP/IMAP entry removes also
- // SMTP entry, but lets make sure it is deleted
- iSession->RemoveEntry(smtpId);
-
- LOG2("CWPEmailAdapter::DeleteL, popimapId: %d, smtpId: %d", popimapId, smtpId);
- }
-
-// -----------------------------------------------------------------------------
-// CWPEmailAdapter::Uid
-// -----------------------------------------------------------------------------
-//
-TUint32 CWPEmailAdapter::Uid() const
- {
- return iDtor_ID_Key.iUid;
- }
-
-// End of File