phoneengine/phoneservices/src/dialservicedepricated.cpp
changeset 50 377c906a8701
parent 30 ebdbd102c78a
equal deleted inserted replaced
46:bc5a64e5bc3c 50:377c906a8701
    16 */
    16 */
    17 
    17 
    18 #include <xqserviceutil.h>
    18 #include <xqserviceutil.h>
    19 #include <e32base.h>
    19 #include <e32base.h>
    20 #include <qregexp.h>
    20 #include <qregexp.h>
       
    21 #include <featmgr.h>
       
    22 #include <settingsinternalcrkeys.h>
       
    23 #include <xqsettingsmanager.h>
    21 #include "dialservicedepricated.h"
    24 #include "dialservicedepricated.h"
    22 #include "qtphonelog.h"
    25 #include "qtphonelog.h"
    23 
    26 
       
    27 // CONSTANTS
       
    28 const XQSettingsKey dialPrefixMode(XQSettingsKey::TargetCentralRepository, KCRUidTelephonySettings.iUid, KSettingsDialPrefixChangeMode);
       
    29 const XQSettingsKey dialPrefixString(XQSettingsKey::TargetCentralRepository, KCRUidTelephonySettings.iUid, KSettingsDialPrefixText);
    24 
    30 
    25 DialServiceDepricated::DialServiceDepricated(MPECallControlIF &call, MPECallSettersIF &parameters, QObject* parent) : 
    31 DialServiceDepricated::DialServiceDepricated(MPECallControlIF &call, MPECallSettersIF &parameters, QObject* parent) : 
    26     XQServiceProvider(QLatin1String("com.nokia.services.telephony"), parent), m_call (call), m_parameters (parameters)
    32     XQServiceProvider(QLatin1String("com.nokia.symbian.ICallDial"), parent), m_call (call), m_parameters (parameters)
    27 {
    33 {
    28     publishAll();
    34     publishAll();
       
    35     m_settingsManager = new XQSettingsManager(this);
       
    36     Q_ASSERT(m_settingsManager != 0);
    29 }
    37 }
    30 
    38 
    31 DialServiceDepricated::~DialServiceDepricated()
    39 DialServiceDepricated::~DialServiceDepricated()
    32 {
    40 {
    33 }
    41 }
    34 
    42 
    35 int DialServiceDepricated::dial(const QString& number)
    43 int DialServiceDepricated::dial(const QString& number)
    36 {
    44 {
    37     PHONE_DEBUG2("DialServiceDepricated::dial number:", number);
    45     PHONE_DEBUG2("DialServiceDepricated::dial number:", number);
    38     QString simplifiedNumber = simplified(number);
    46     QString phoneNumber = modifyPhoneNumber(number);
    39     TPtrC16 numberPtr(reinterpret_cast<const TUint16*>(simplifiedNumber.utf16()));
    47     TPtrC16 numberPtr(reinterpret_cast<const TUint16*>(phoneNumber.utf16()));
    40     m_parameters.SetPhoneNumber (numberPtr);
    48     m_parameters.SetPhoneNumber (numberPtr);
    41     m_parameters.SetCallTypeCommand (EPECallTypeCSVoice);
    49     m_parameters.SetCallTypeCommand (EPECallTypeCSVoice);
    42     return m_call.HandleDialServiceCall ();
    50     return m_call.HandleDialServiceCall ();
    43 }
    51 }
    44 
    52 
    45 int DialServiceDepricated::dial(const QString& number, int contactId)
    53 int DialServiceDepricated::dial(const QString& number, int contactId)
    46 {
    54 {
    47     PHONE_DEBUG4("DialServiceDepricated::dial number:", number, "contactId:", contactId);
    55     PHONE_DEBUG4("DialServiceDepricated::dial number:", number, "contactId:", contactId);
    48     QString simplifiedNumber = simplified(number);
    56     QString phoneNumber = modifyPhoneNumber(number);
    49     TPtrC16 numberPtr (reinterpret_cast<const TUint16*>(simplifiedNumber.utf16()));
    57     TPtrC16 numberPtr (reinterpret_cast<const TUint16*>(phoneNumber.utf16()));
    50     m_parameters.SetPhoneNumber (numberPtr);
    58     m_parameters.SetPhoneNumber (numberPtr);
    51     m_parameters.SetCallTypeCommand (EPECallTypeCSVoice);
    59     m_parameters.SetCallTypeCommand (EPECallTypeCSVoice);
    52     m_parameters.SetContactId2 (contactId);
    60     m_parameters.SetContactId2 (contactId);
    53     return m_call.HandleDialServiceCall (); 
    61     return m_call.HandleDialServiceCall (); 
    54 }
    62 }
    55 
    63 
    56 void DialServiceDepricated::dialVideo(const QString& number)
    64 void DialServiceDepricated::dialVideo(const QString& number)
    57 {
    65 {
    58     PHONE_DEBUG2("DialServiceDepricated::dialVideo number:", number);
    66     PHONE_DEBUG2("DialServiceDepricated::dialVideo number:", number);
    59     QString simplifiedNumber = simplified(number);
    67     QString phoneNumber = modifyPhoneNumber(number);
    60     TPtrC16 numberPtr(reinterpret_cast<const TUint16*>(simplifiedNumber.utf16()));
    68     TPtrC16 numberPtr(reinterpret_cast<const TUint16*>(phoneNumber.utf16()));
    61     m_parameters.SetPhoneNumber (numberPtr);
    69     m_parameters.SetPhoneNumber (numberPtr);
    62     m_parameters.SetCallTypeCommand (EPECallTypeVideo);
    70     m_parameters.SetCallTypeCommand (EPECallTypeVideo);
    63     m_call.HandleDialServiceCall ();
    71     m_call.HandleDialServiceCall ();
    64 }
    72 }
    65 
    73 
    66 void DialServiceDepricated::dialVideo(const QString& number, int contactId)
    74 void DialServiceDepricated::dialVideo(const QString& number, int contactId)
    67 {
    75 {
    68     PHONE_DEBUG4("DialServiceDepricated::dialVideo number:", number, "contactId:", contactId);
    76     PHONE_DEBUG4("DialServiceDepricated::dialVideo number:", number, "contactId:", contactId);
    69     QString simplifiedNumber = simplified(number);
    77     QString phoneNumber = modifyPhoneNumber(number);
    70     TPtrC16 numberPtr (reinterpret_cast<const TUint16*>(simplifiedNumber.utf16()));
    78     TPtrC16 numberPtr (reinterpret_cast<const TUint16*>(phoneNumber.utf16()));
    71     m_parameters.SetPhoneNumber (numberPtr);
    79     m_parameters.SetPhoneNumber (numberPtr);
    72     m_parameters.SetCallTypeCommand (EPECallTypeVideo);
    80     m_parameters.SetCallTypeCommand (EPECallTypeVideo);
    73     m_parameters.SetContactId2 (contactId);
    81     m_parameters.SetContactId2 (contactId);
    74     m_call.HandleDialServiceCall ();    
    82     m_call.HandleDialServiceCall ();    
    75 }
    83 }
   115     m_parameters.SetServiceIdCommand(serviceId);
   123     m_parameters.SetServiceIdCommand(serviceId);
   116     m_parameters.SetContactId2(contactId);
   124     m_parameters.SetContactId2(contactId);
   117     m_call.HandleDialServiceCall();    
   125     m_call.HandleDialServiceCall();    
   118 }
   126 }
   119 
   127 
       
   128 QString DialServiceDepricated::modifyPhoneNumber(const QString &number)
       
   129 {
       
   130     PHONE_DEBUG2("DialService::modifyPhoneNumber number:", number);
       
   131     QString modifiedNumber = simplified(number);
       
   132     modifiedNumber = japanPrefixModifications(modifiedNumber);
       
   133 
       
   134     return modifiedNumber;
       
   135 }
       
   136 
   120 QString DialServiceDepricated::simplified(const QString &number)
   137 QString DialServiceDepricated::simplified(const QString &number)
   121 {
   138 {
   122     QString simplifiedNumber = number;
   139     QString simplifiedNumber = number;
   123     QRegExp rx(QString("[\\s,.\\[\\]\\(\\)\\-]"));
   140     QRegExp rx(QString("[\\s,.\\[\\]\\(\\)\\-]"));
   124     simplifiedNumber.remove(rx);
   141     simplifiedNumber.remove(rx);
   125     return simplifiedNumber;
   142     return simplifiedNumber;
   126 }
   143 }
       
   144 
       
   145 QString DialServiceDepricated::japanPrefixModifications(const QString &number)
       
   146 {    
       
   147     PHONE_DEBUG2("DialService::japanPrefixModifications number:", number);
       
   148     bool checkPrefix = FeatureManager::FeatureSupported(KFeatureIdJapanPrefixChange);
       
   149     if(checkPrefix == false) {
       
   150     	  // prefix change setting is off so don't play with the number
       
   151         return number;
       
   152     }
       
   153     
       
   154     QString modifiedNumber = number;
       
   155     
       
   156     int prefixMode = m_settingsManager->readItemValue(dialPrefixMode, XQSettingsManager::TypeInt).toInt();
       
   157     PHONE_DEBUG2("DialService::japanPrefixModifications prefixMode:", prefixMode);
       
   158 
       
   159     if((m_settingsManager->error() == XQSettingsManager::NoError) && (prefixMode > 0)) {
       
   160         // No error fetching value and setting is on
       
   161         QString prefixString = m_settingsManager->readItemValue(dialPrefixString, XQSettingsManager::TypeString).toString();
       
   162         PHONE_DEBUG2("DialService::japanPrefixModifications prefixString:", prefixString);
       
   163 
       
   164         if(m_settingsManager->error() == XQSettingsManager::NoError) {
       
   165             if(modifiedNumber.startsWith("+")) {
       
   166                 modifiedNumber = modifiedNumber.remove(0, 1);
       
   167                 modifiedNumber = modifiedNumber.insert(0, prefixString);
       
   168             }        	
       
   169         }
       
   170     }
       
   171                 	
       
   172     PHONE_DEBUG2("DialService::japanPrefixModifications modifiedNumber:", modifiedNumber);
       
   173     return modifiedNumber;
       
   174 }