messagingapp/msgsettings/msgsettingsmw/src/msgsettingengine.cpp
changeset 23 238255e8b033
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingapp/msgsettings/msgsettingsmw/src/msgsettingengine.cpp	Fri Apr 16 14:56:15 2010 +0300
@@ -0,0 +1,531 @@
+/*
+ * 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 class provides API m/w for msg settings plugin
+ *
+ */
+
+#include "qstringlist.h"
+#include "debugtraces.h"
+
+
+#include "msgsettingengine.h"
+#include "smssettingsprivate.h"
+#include "mmssettingprivate.h"
+#include "s60qconversions.h"
+
+//Constructor
+MsgSettingEngine::MsgSettingEngine()
+{
+#ifdef _DEBUG_TRACES_
+    qDebug() << "Enter MsgSettingEngine::MsgSettingEngine";
+#endif
+
+
+    dptr_smsSettings = SmsSettingsPrivate::NewL();
+    dptr_mmsSettings = MmsSettingsPrivate::NewL();
+
+#ifdef _DEBUG_TRACES_
+    qDebug() << "Exit MsgSettingEngine::MsgSettingEngine";
+#endif
+
+}
+
+//Destructor
+MsgSettingEngine::~MsgSettingEngine()
+{
+#ifdef _DEBUG_TRACES_
+    qDebug() << "Enter MsgSettingEngine::~MsgSettingEngine";
+#endif
+
+
+    delete dptr_smsSettings;
+    delete dptr_mmsSettings;
+
+#ifdef _DEBUG_TRACES_
+    qDebug() << "Exit MsgSettingEngine::~MsgSettingEngine";
+#endif
+
+}
+
+/**
+ * for basic message settings
+ * set the deliver report
+ * @param report bool true or false
+ */
+void MsgSettingEngine::setDeliveryReport(bool report)
+{
+#ifdef _DEBUG_TRACES_
+    qDebug() << "MsgSettingEngine::setDeliveryReport" << report;
+#endif
+
+
+    dptr_smsSettings->setDeliveryReport(report);
+    dptr_mmsSettings->setDeliveryReport(report);
+
+#ifdef _DEBUG_TRACES_
+    qDebug() << "Exit MsgSettingEngine::setDeliveryReport";
+#endif
+
+}
+
+/**
+ * set the character encoding
+ * @param encoding specifying encoding type
+ */
+void MsgSettingEngine::setCharacterEncoding(MsgSettingEngine::CharacterEncoding encoding)
+{
+#ifdef _DEBUG_TRACES_
+    qDebug() << "MsgSettingEngine::setCharacterEncoding: " << encoding;
+#endif
+
+
+    TBool flag = EFalse;
+
+    if (encoding == MsgSettingEngine::FullSupport)
+    {
+        flag = ETrue;
+    }
+    dptr_smsSettings->setCharacterEncoding(flag);
+    dptr_mmsSettings->setCharacterEncoding(flag);
+
+#ifdef _DEBUG_TRACES_
+    qDebug() << "MsgSettingEngine::setCharacterEncoding";
+#endif
+
+}
+
+/**
+ * returns settings delivery report status
+ * and character encoding
+ * @param report for getting status report
+ * @param encoding for char encoding
+ */
+void MsgSettingEngine::settingsDeliverReportAndCharEncoding( bool& report,
+                                MsgSettingEngine::CharacterEncoding& encoding )
+{
+#ifdef _DEBUG_TRACES_
+    qDebug() << "Enter MsgSettingEngine::settingsDeliverReportAndCharEncoding";
+#endif
+
+
+    TBool encodingStatus1;
+    TBool encodingStatus2;
+    TBool report1;
+    TBool report2;
+
+    dptr_smsSettings->settingsDeliverReportAndCharEncoding(report1,
+                                                           encodingStatus1);
+
+    dptr_mmsSettings->settingsDeliverReportAndCharEncoding(report2,
+                                                           encodingStatus2);
+
+    report = report1 && report2;
+
+    encoding = MsgSettingEngine::ReducedSupport;
+    if (encodingStatus1 && encodingStatus2)
+    {
+        encoding = MsgSettingEngine::FullSupport;
+    }
+
+#ifdef _DEBUG_TRACES_
+    qDebug() << "Exit settingsDeliverReportAndCharEncoding: " << report << " "
+            << encoding;
+#endif
+
+}
+
+/**
+ * for advanced settings
+ * set the creation mode
+ * @mode for creation mode
+ */
+void MsgSettingEngine::setMMSCreationmode(MsgSettingEngine::MmsCreationMode mode)
+{
+#ifdef _DEBUG_TRACES_
+    qDebug() << "MsgSettingEngine::setMMSCreationmode " << mode;
+#endif
+
+
+    dptr_mmsSettings->setMMSCreationmode(mode);
+
+#ifdef _DEBUG_TRACES_
+    qDebug() << "Exit setMMSCreationmode";
+#endif
+
+}
+
+/**
+ * set the mms retrieval mode
+ * @param retrieval specifying mode
+ */
+void MsgSettingEngine::setMMSRetrieval(MsgSettingEngine::MmsRetrieval retrieval)
+{
+#ifdef _DEBUG_TRACES_
+    qDebug() << "MsgSettingEngine::setMMSRetrieval " << retrieval;
+#endif
+
+
+    dptr_mmsSettings->setMMSRetrieval(retrieval);
+
+#ifdef _DEBUG_TRACES_
+    qDebug() << "Exit setMMSRetrieval";
+#endif
+
+}
+
+/**
+ * set the anonymous message
+ * @param status true or false
+ */
+void MsgSettingEngine::setAnonymousMessages(bool status)
+{
+#ifdef _DEBUG_TRACES_
+    qDebug() << "MsgSettingEngine::setAnonymousMessages " << status;
+#endif
+
+
+    dptr_mmsSettings->setAnonymousMessages(status);
+
+#ifdef _DEBUG_TRACES_
+    qDebug() << "Exit setAnonymousMessages";
+#endif
+
+}
+
+/**
+ * set for receiving MMS Adverts
+ * @param status for true or false
+ */
+void MsgSettingEngine::setReceiveMMSAdverts(bool status)
+{
+#ifdef _DEBUG_TRACES_
+    qDebug() << "MsgSettingEngine::setReceiveMMSAdverts " << status;
+#endif
+
+
+    dptr_mmsSettings->setReceiveMMSAdverts(status);
+
+#ifdef _DEBUG_TRACES_
+    qDebug() << "Exit setReceiveMMSAdverts";
+#endif
+
+}
+
+/**
+ * for view 2 mms advance settings\
+* get all the fields of mms advance setting
+ * @param mode return for MMsCreation mode
+ * @param retrieval return for mms retrieval
+ * @param anonymous return status true or false
+ * @param mmsadverts return status true or false
+ */
+void MsgSettingEngine::advanceMmsSettings(MsgSettingEngine::MmsCreationMode& mode,
+                                          MsgSettingEngine::MmsRetrieval& retrieval,
+                                          bool& anonymousStatus,
+                                          bool& mmsAdvertsStatus)
+{
+#ifdef _DEBUG_TRACES_
+    qDebug() << "MsgSettingEngine::setReceiveMMSAdverts";
+#endif
+
+
+    TBool anonymous_Status;
+    TBool mmsAdverts_Status;
+    dptr_mmsSettings->advanceMmsSettings(mode,
+                                         retrieval,
+                                         anonymous_Status,
+                                         mmsAdverts_Status);
+
+    anonymousStatus = (bool) anonymous_Status;
+    mmsAdvertsStatus = (bool) mmsAdverts_Status;
+
+#ifdef _DEBUG_TRACES_
+    qDebug() << "Exit setReceiveMMSAdverts " << mode << " " << retrieval << " "
+            << anonymousStatus << " " << mmsAdvertsStatus;
+#endif
+
+}
+
+/**
+ * get all the MMs access points
+ * @param returns all the access point names
+ * @attention to be displayed as per the index o to total count
+ */
+void MsgSettingEngine::allMMsAcessPoints(QStringList& nameList,
+                                         int& defaultIndex)
+{
+#ifdef _DEBUG_TRACES_
+    qDebug() << "MsgSettingEngine::allMMsAcessPoints";
+#endif
+
+
+    RPointerArray<HBufC> accessPoints;
+    //= new(ELeave)RPointerArray<HBufC>();
+
+    dptr_mmsSettings->getAllAccessPoints(accessPoints, defaultIndex);
+
+    for (int i = 0; i < accessPoints.Count(); i++)
+        {
+        HBufC* name = static_cast<HBufC *> (accessPoints[i]);
+        QString qName = S60QConversions::s60DescToQString(name->Des());
+        nameList.append(qName);
+#ifdef _DEBUG_TRACES_
+        qDebug() << "\n " << qName;
+#endif
+
+        }
+    accessPoints.ResetAndDestroy();
+
+#ifdef _DEBUG_TRACES_
+    qDebug() << "Exit allMMsAcessPoints count = " << nameList.count()
+            << " Default:" << defaultIndex;
+#endif
+
+}
+
+/**
+ * set the default access point
+ * @param index specifying the index
+ */
+void MsgSettingEngine::setMMSAccesspoint(int index)
+{
+#ifdef _DEBUG_TRACES_
+    qDebug() << "MsgSettingEngine::setMMSAccesspoint " << index;
+#endif
+
+
+    dptr_mmsSettings->setMMSAccesspoint(index);
+
+#ifdef _DEBUG_TRACES_
+    qDebug() << "Exit setMMSAccesspoint ";
+#endif
+
+}
+
+/**
+ * get the list of all SMS Message Centres
+ * @param list of all names QString
+ */
+void MsgSettingEngine::allSMSMessageCenter(QStringList& nameList,
+                                           int& defaultIndex)
+{
+
+#ifdef _DEBUG_TRACES_
+    qDebug() << "MsgSettingEngine::allSMSMessageCenter";
+#endif
+
+
+    RPointerArray<HBufC> accessPoints;
+
+    dptr_smsSettings->getAllSMSMessageCenter(accessPoints, defaultIndex);
+
+    for (int i = 0; i < accessPoints.Count(); i++)
+        {
+        HBufC* name = accessPoints[i];
+        QString qName = S60QConversions::s60DescToQString(name->Des());
+        nameList.append(qName);
+#ifdef _DEBUG_TRACES_
+        qDebug() << "\n qName";
+#endif
+
+        }
+    accessPoints.ResetAndDestroy();
+
+#ifdef _DEBUG_TRACES_
+    qDebug() << "Exit allSMSMessageCenter count = " << nameList.count()
+            << " Default:" << defaultIndex;
+#endif
+
+}
+
+/**
+ * set the default SMS message centre
+ * @param index specifying default index
+ */
+void MsgSettingEngine::setSMSMessageCenter(int index)
+{
+#ifdef _DEBUG_TRACES_
+    qDebug() << "MsgSettingEngine::setSMSMessageCenter " << index;
+#endif
+
+
+    dptr_smsSettings->setSMSMessageCenter(index);
+
+#ifdef _DEBUG_TRACES_
+    qDebug() << "Exit setSMSMessageCenter ";
+#endif
+
+}
+
+/**
+ * for editing the SMS messafe Centre
+ * @param name specifying center name
+ * @param number specifying center number
+ * @param index specying index of message list
+ */
+void MsgSettingEngine::editSmsMessageCenter(QString& centreName,
+                                            QString& centreNumber, int index)
+{
+#ifdef _DEBUG_TRACES_
+    qDebug() << "MsgSettingEngine::editSmsMessageCenter " << index << " "
+            << centreName << " " << centreNumber;
+#endif
+
+    HBufC* d_addr = S60QConversions::qStringToS60Desc(centreNumber);
+    HBufC* d_name = S60QConversions::qStringToS60Desc(centreName);
+
+    dptr_smsSettings->editSMSServiceCentre(d_addr, d_name, index);
+    delete d_addr;
+    delete d_name;
+
+#ifdef _DEBUG_TRACES_
+    qDebug() << "Exit editSmsMessageCenter ";
+#endif
+
+}
+
+/**
+ * for add new sms message centre
+ * @param name specifying center name
+ * @param number specifying center number
+ */
+void MsgSettingEngine::addSmsMessageCenter(QString& centreName,
+                                           QString& centreNumber)
+{
+#ifdef _DEBUG_TRACES_
+    qDebug() << "MsgSettingEngine::addSmsMessageCenter " << centreName << " "
+            << centreNumber;
+#endif
+
+
+    HBufC* d_addr = S60QConversions::qStringToS60Desc(centreNumber);
+    HBufC* d_name = S60QConversions::qStringToS60Desc(centreName);
+
+    dptr_smsSettings->addSmsMessageCenter(d_addr, d_name);
+    delete d_addr;
+    delete d_name;
+
+#ifdef _DEBUG_TRACES_
+    qDebug() << "Exit addSmsMessageCenter ";
+#endif
+
+}
+
+/**
+ * get the sms message centre namd and number
+ * @index for which center needs
+ * @param return name specifying center name
+ * @param return number specifying center number
+ */
+void MsgSettingEngine::smsCenterNameAndNumber(int index, QString& centreName,
+                                              QString& centreNumber)
+{
+#ifdef _DEBUG_TRACES_
+    qDebug() << "MsgSettingEngine::smsCenterNameAndNumber " << index;
+#endif
+
+
+    HBufC* d_addr;
+    HBufC* d_name;
+
+    dptr_smsSettings->smsCenterNameAndNumber(index, &d_addr, &d_name);
+
+    centreNumber = S60QConversions::s60DescToQString(d_addr->Des());
+    centreName = S60QConversions::s60DescToQString(d_name->Des());
+
+#ifdef _DEBUG_TRACES_
+    qDebug() << "Exit smsCenterNameAndNumber " << centreNumber << " "
+            << centreName;
+#endif
+
+}
+
+/**
+ * set the Sms Email gateway
+ * @param gateway string
+ */
+void MsgSettingEngine::setEmailGateway(QString& gateway)
+{
+#ifdef _DEBUG_TRACES_
+    qDebug() << "MsgSettingEngine::setEmailGateway " << gateway;
+#endif
+
+
+    HBufC* d_gateway = S60QConversions::qStringToS60Desc(gateway);
+
+    dptr_smsSettings->setEmailGateway(d_gateway);
+    delete d_gateway;
+
+#ifdef _DEBUG_TRACES_
+    qDebug() << "Exit setEmailGateway ";
+#endif
+
+}
+
+/**
+ * set the sms Email Service centre number
+ * @param centre number
+ */
+void MsgSettingEngine::setEmailSeriveCenterNumber(QString& centerNumber)
+{
+#ifdef _DEBUG_TRACES_
+    qDebug() << "MsgSettingEngine::setEmailSeriveCenterNumber " << centerNumber;
+
+#endif
+
+    HBufC* d_number = S60QConversions::qStringToS60Desc(centerNumber);
+
+    dptr_smsSettings->setEmailSeriveCenterNumber(d_number);
+    delete d_number;
+
+#ifdef _DEBUG_TRACES_
+    qDebug() << "Exit setEmailSeriveCenterNumber ";
+#endif
+
+}
+
+/**
+ * get the sms email gateway and 
+ * service centre number
+ * @param gateway return email gateway
+ * @param centreNumber return service number 
+ */
+void MsgSettingEngine::emailEmailGatewayAndServiceCenterNumber(QString& gateway,
+                                                               QString& serviceNumber)
+{
+#ifdef _DEBUG_TRACES_
+    qDebug() << "MsgSettingEngine::emailEmailGatewayAndServiceCenterNumber";
+#endif
+
+
+    HBufC* d_gateway;
+    HBufC* d_number;
+
+    dptr_smsSettings->emailEmailGatewayAndServiceCenterNumber(&d_gateway,
+                                                              &d_number);
+
+    gateway = S60QConversions::s60DescToQString(d_gateway->Des());
+    serviceNumber = S60QConversions::s60DescToQString(d_number->Des());
+
+    delete d_gateway;
+    delete d_number;
+
+#ifdef _DEBUG_TRACES_
+    qDebug() << "Exit smsCenterNameAndNumber " << gateway << " "
+            << serviceNumber;
+#endif
+
+}
+//eof
+