diff -r 238255e8b033 -r 84d9eb65b26f messagingapp/msgsettings/msgsettingsmw/src/smssettingsprivate.cpp --- a/messagingapp/msgsettings/msgsettingsmw/src/smssettingsprivate.cpp Fri Apr 16 14:56:15 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,397 +0,0 @@ -/* - * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). - * All rights reserved. - * This component and the accompanying materials are made available - * under the terms of "Eclipse Public License v1.0" - * which accompanies this distribution, and is available - * at the URL "http://www.eclipse.org/legal/epl-v10.html". - * - * Initial Contributors: - * Nokia Corporation - initial contribution. - * - * Contributors: - * - * Description: This provides the messaging mw interface for sms - * - */ - -#include -#include -#include -#include -#include -#include -#include -#include "debugtraces.h" - - -#include "smssettingsprivate.h" -#include "msgsettingsutil.h" - - -const TInt KUniSmsSCStringLength = 50; - -/** - * Message Server session event handler - */ -class CObserver : public MMsvSessionObserver -{ -public: - void HandleSessionEvent(TMsvSessionEvent /*aEvent*/, TAny* /*aArg1*/, - TAny* /*aArg2*/, TAny* /*aArg3*/) - { - } - - void HandleSessionEventL(TMsvSessionEvent /*aEvent*/, TAny* /*aArg1*/, - TAny* /*aArg2*/, TAny* /*aArg3*/) - { - } -}; - -//two phase constructor -SmsSettingsPrivate* SmsSettingsPrivate::NewL() -{ - SmsSettingsPrivate* self = new (ELeave) SmsSettingsPrivate(); - CleanupStack::PushL(self); - self->ConstructL(); - CleanupStack::Pop(); - return self; -} - -//2nd phase constructor -void SmsSettingsPrivate::ConstructL() -{ - createRepositoryL(); -} - -//--------------------------------------------------------------- -// SmsSettingsPrivate::SmsSettingsPrivate -// @see header -//--------------------------------------------------------------- -SmsSettingsPrivate::SmsSettingsPrivate() -{ - //do nothing -} - -//--------------------------------------------------------------- -// SmsSettingsPrivate::~SmsSettingsPrivate -// @see header -//--------------------------------------------------------------- -SmsSettingsPrivate::~SmsSettingsPrivate() -{ - //do nothing -} - -//--------------------------------------------------------------- -// SmsSettingsPrivate::createRepository -// @see header -//--------------------------------------------------------------- -void SmsSettingsPrivate::createRepositoryL() -{ - CObserver* pObserver = new (ELeave) CObserver(); - CleanupStack::PushL(pObserver); - - TMsvSelectionOrdering ordering; - CMsvSession* iMsvSession = CMsvSession::OpenSyncL(*pObserver); - CleanupStack::PushL(iMsvSession); - CMsvEntry* root = CMsvEntry::NewL(*iMsvSession, - KMsvRootIndexEntryId, - ordering); - CleanupStack::PushL(root); - - //then do not create a new entry - TMsvId firstId; - TRAPD(err, TSmsUtilities::ServiceIdL(*root,firstId)); - if (err == KErrNotFound) - { - TMsvEntry entry; - entry.iMtm = KUidMsgTypeSMS; - entry.iType = KUidMsvServiceEntry; - entry.SetReadOnly(EFalse); - entry.SetVisible(EFalse); - entry.iDate.UniversalTime(); - entry.iDetails.Set(_L("Nokiatest")); - - root->SetEntryL(KMsvRootIndexEntryId); - root->CreateL(entry); - } - - //create a dummy entry - CSmsAccount* smsAccount = CSmsAccount::NewLC(); - - CSmsSettings* smsSettings = CSmsSettings::NewLC(); - - smsAccount->LoadSettingsL(*smsSettings); - smsSettings->SetValidityPeriod(ESmsVPMaximum); - smsSettings->SetReplyQuoted(ETrue); - smsSettings->SetRejectDuplicate(ETrue); - smsSettings->SetDelivery(ESmsDeliveryImmediately); - smsSettings->SetDeliveryReport(EFalse); - smsSettings->SetReplyPath(EFalse); - smsSettings->SetMessageConversion((TSmsPIDConversion) 0); - smsSettings->SetCanConcatenate(ETrue); - smsSettings->SetCharacterSet(TSmsDataCodingScheme::ESmsAlphabet7Bit); - smsSettings->SetValidityPeriodFormat(TSmsFirstOctet::ESmsVPFInteger); - smsSettings->SetStatusReportHandling(CSmsSettings::EMoveReportToInboxVisible); - smsSettings->SetSpecialMessageHandling(CSmsSettings::EMoveReportToInboxVisible); - smsSettings->SetSmsBearer((CSmsSettings::TMobileSmsBearer) 3); - smsSettings->SetCommDbAction(CSmsSettings::EStoreToCommDb); - smsSettings->SetSmsBearerAction(CSmsSettings::EStoreToCommDb); - - smsAccount->SaveSettingsL(*smsSettings); - - CleanupStack::PopAndDestroy(2); - CleanupStack::PopAndDestroy(3); -} - -void SmsSettingsPrivate::setDeliveryReport(TBool report) -{ - CSmsAccount* smsAccount = CSmsAccount::NewLC(); - CSmsSettings* smsSettings = CSmsSettings::NewLC(); - - smsAccount->LoadSettingsL(*smsSettings); - - smsSettings->SetDeliveryReport(report); - - smsAccount->SaveSettingsL(*smsSettings); - - CleanupStack::PopAndDestroy(2); -} - -void SmsSettingsPrivate::setCharacterEncoding(TBool status) -{ - CSmsAccount* smsAccount = CSmsAccount::NewLC(); - CSmsSettings* smsSettings = CSmsSettings::NewLC(); - - smsAccount->LoadSettingsL(*smsSettings); - - if (status == EFalse) - { - smsSettings->SetCharacterSet(TSmsDataCodingScheme::ESmsAlphabet7Bit); - } - else - { - smsSettings->SetCharacterSet(TSmsDataCodingScheme::ESmsAlphabetUCS2); - } - - smsAccount->SaveSettingsL(*smsSettings); - - CleanupStack::PopAndDestroy(2); -} - -void SmsSettingsPrivate::settingsDeliverReportAndCharEncoding( - TBool& report, - TBool& statusEncoding) -{ - CSmsAccount* smsAccount = CSmsAccount::NewLC(); - CSmsSettings* smsSettings = CSmsSettings::NewLC(); - - smsAccount->LoadSettingsL(*smsSettings); - - report = smsSettings->DeliveryReport(); - - TSmsDataCodingScheme::TSmsAlphabet charSet = smsSettings->CharacterSet(); - - statusEncoding = ETrue; - if (charSet == TSmsDataCodingScheme::ESmsAlphabet7Bit) - { - statusEncoding = EFalse; - } - CleanupStack::PopAndDestroy(2); -} - -void SmsSettingsPrivate::getAllSMSMessageCenter( - RPointerArray& accessPoints, - TInt &defaultIndex) -{ - CSmsAccount* smsAccount = CSmsAccount::NewLC(); - CSmsSettings* settings = CSmsSettings::NewLC(); - - smsAccount->LoadSettingsL(*settings); - - //save the default index - defaultIndex = settings->DefaultServiceCenter(); - - int totalSMSc = settings->ServiceCenterCount(); - for (int index = 0; index < totalSMSc; index++) - { - TPtrC16 name = settings->GetServiceCenter(index).Name(); - HBufC* accessName = name.AllocL(); - accessPoints.AppendL(accessName); - } - - CleanupStack::PopAndDestroy(2); - - return; -} - -void SmsSettingsPrivate::setSMSMessageCenter(int index) -{ - CSmsAccount* smsAccount = CSmsAccount::NewLC(); - CSmsSettings* smsSettings = CSmsSettings::NewLC(); - - smsAccount->LoadSettingsL(*smsSettings); - smsSettings->SetDefaultServiceCenter(index); - smsAccount->SaveSettingsL(*smsSettings); - - CleanupStack::PopAndDestroy(2); -} - -void SmsSettingsPrivate::editSMSServiceCentre(HBufC* address, HBufC* name, - TInt index) -{ - CSmsAccount* smsAccount = CSmsAccount::NewLC(); - CSmsSettings* smsSettings = CSmsSettings::NewLC(); - - smsAccount->LoadSettingsL(*smsSettings); - - TInt indexDefault = smsSettings->DefaultServiceCenter(); - bool flag = false; - if (index == indexDefault) - { - flag = true; - } - - //remove the service center - smsSettings->RemoveServiceCenter(index); - //add a new service center - smsSettings->AddServiceCenterL(name->Des(), address->Des()); - - if (flag == true) - { - smsSettings->SetDefaultServiceCenter(smsSettings->ServiceCenterCount() - - 1); - } - smsAccount->SaveSettingsL(*smsSettings); - - CleanupStack::PopAndDestroy(2); -} - -void SmsSettingsPrivate::addSmsMessageCenter(HBufC* address, HBufC* name) -{ - CSmsAccount* smsAccount = CSmsAccount::NewLC(); - CSmsSettings* smsSettings = CSmsSettings::NewLC(); - - smsAccount->LoadSettingsL(*smsSettings); - smsSettings->AddServiceCenterL(name->Des(), address->Des()); - smsAccount->SaveSettingsL(*smsSettings); - - CleanupStack::PopAndDestroy(2); -} - -void SmsSettingsPrivate::smsCenterNameAndNumber(int index, - HBufC** centerNumber, - HBufC** centerName) -{ - CSmsAccount* smsAccount = CSmsAccount::NewLC(); - CSmsSettings* smsSettings = CSmsSettings::NewLC(); - - smsAccount->LoadSettingsL(*smsSettings); - - TPtrC16 addr = smsSettings->GetServiceCenter(index).Address(); - TPtrC16 name = smsSettings->GetServiceCenter(index).Name(); - - (*centerNumber) = addr.AllocL(); - (*centerName) = name.AllocL(); - - CleanupStack::PopAndDestroy(2); -} - -void SmsSettingsPrivate::setEmailGateway(HBufC* emailGateway) -{ -#ifdef _DEBUG_TRACES_ - qDebug() << "Enter SmsSettingsPrivate::setEmailGateway" << emailGateway; -#endif - - - TBuf emailGateWayNumber; - - MsgSettingsUtil::WriteEmailGatewayOverSmsSettingsL( - emailGateway->Des(), - ETrue ); - -#ifdef _DEBUG_TRACES_ - qDebug() << "Exit SmsSettingsPrivate::setEmailGateway"; -#endif - - return; -} - -void SmsSettingsPrivate::setEmailSeriveCenterNumber(HBufC* emailNumber) -{ -#ifdef _DEBUG_TRACES_ - qDebug() << "Enter SmsSettingsPrivate::setEmailSeriveCenterNumber" - << emailNumber; -#endif - - - MsgSettingsUtil::WriteEmailServiceNumberOverSmsSettingsL(emailNumber->Des(), - ETrue ); - -#ifdef _DEBUG_TRACES_ - qDebug() << "Enter SmsSettingsPrivate::setEmailSeriveCenterNumber"; -#endif - - return; -} - -void SmsSettingsPrivate::emailEmailGatewayAndServiceCenterNumber( - HBufC** emailGateway, - HBufC** serviceNumber) -{ -#ifdef _DEBUG_TRACES_ - qDebug() - << "Enter SmsSettingsPrivate::emailEmailGatewayAndServiceCenterNumber"; -#endif - - CSmsAccount* smsAccount = CSmsAccount::NewLC(); - CSmsSettings* smsSettings = CSmsSettings::NewLC(); - - smsAccount->LoadSettingsL(*smsSettings); - - TBuf emailSmscNumber; - TBuf emailGateWayNumber; - - TInt readResult = MsgSettingsUtil::ReadEmailOverSmsSettingsL(emailSmscNumber, - emailGateWayNumber); - if (KErrNone == readResult) - { - // In any otther case we need to show the conf pop-up window - if (emailSmscNumber == KNullDesC) - { - if (smsSettings->DefaultServiceCenter() > 0) - { - emailSmscNumber = smsSettings->GetServiceCenter( - smsSettings->DefaultServiceCenter()).Address(); - } - else - { - int totalSMSc = smsSettings->ServiceCenterCount(); - if (totalSMSc > 0) - { - emailSmscNumber - = smsSettings->GetServiceCenter(0).Address(); - } - } - } - } - - MsgSettingsUtil::WriteEmailServiceNumberOverSmsSettingsL( - emailSmscNumber, - ETrue); - - *emailGateway = emailGateWayNumber.AllocL(); - *serviceNumber = emailSmscNumber.AllocL(); - - CleanupStack::PopAndDestroy(2); //smssetting and smsaccount - -#ifdef _DEBUG_TRACES_ - qDebug() - << "Enter SmsSettingsPrivate::emailEmailGatewayAndServiceCenterNumber" - << serviceNumber << " " << emailGateway; -#endif - - -} - -//eof