telutils/dialpad/src/dialpadvideomailboxeventfilter.cpp
changeset 45 61f927bc9441
parent 39 cee7e9e0906c
--- a/telutils/dialpad/src/dialpadvideomailboxeventfilter.cpp	Wed Aug 18 10:19:22 2010 +0300
+++ b/telutils/dialpad/src/dialpadvideomailboxeventfilter.cpp	Thu Sep 02 21:00:29 2010 +0300
@@ -24,10 +24,14 @@
 #include "qtphonesrvlog.h"
 
 #ifdef Q_OS_SYMBIAN
-#include <xqservicerequest.h>
 #include <xqserviceutil.h>
 #endif //Q_OS_SYMBIAN
 
+#include <xqsettingsmanager.h>
+#include <xqsettingskey.h>
+#include <voicemailboxdomaincrkeys.h>
+
+
 const QString VideoVmbxCharacter("2");
 
 DialpadVideoMailboxEventFilter::DialpadVideoMailboxEventFilter(Dialpad* dialpad, QObject* parent) :
@@ -106,24 +110,40 @@
 void DialpadVideoMailboxEventFilter::handleMailboxOperation()
 {
     PHONE_TRACE;
-    QString mailboxNumber;
-    int error = mSymbianWrapper->getVideoMailboxNumber(mailboxNumber);
-    // If here is no vmbx number and dialpad must start vmbx number definition procedures.
-    if (DialpadErrorNone != error || mailboxNumber.length() == 0) {
-        mDialpad->closeDialpad();
-        // If define mailbox query was interupted than reopen dialpad.
-        error = mSymbianWrapper->defineVideoMailboxNumber(mailboxNumber);
-        if (DialpadErrorCancel == error) {
+    
+    if (isVideoMbxSupported()) {
+        QString mailboxNumber;
+        int error = mSymbianWrapper->getVideoMailboxNumber(mailboxNumber);
+        // If here is no vmbx number and dialpad must start vmbx number definition procedures.
+        if (DialpadErrorNone != error || mailboxNumber.length() == 0) {
+            mDialpad->closeDialpad();
+            // If define mailbox query was interupted than reopen dialpad.
+            error = mSymbianWrapper->defineVideoMailboxNumber(mailboxNumber);
+            if (DialpadErrorCancel == error) {
+                mDialpad->openDialpad();
+            }
+        }
+    
+        // Valid vmbx number found or defined and there vmbx didnt
+        // return error values then create a call.
+        if ((DialpadErrorNone == error) &&
+            (mailboxNumber.length() != 0)) {
+            createCall(mailboxNumber, true);
+            clearEditor();
             mDialpad->openDialpad();
         }
     }
+}
 
-    // Valid vmbx number found or defined and there vmbx didnt
-    // return error values then create a call.
-    if ((DialpadErrorNone == error) &&
-        (mailboxNumber.length() != 0)) {
-        createCall(mailboxNumber, true);
-        clearEditor();
-        mDialpad->openDialpad();
-    }
+bool DialpadVideoMailboxEventFilter::isVideoMbxSupported()
+{
+    XQSettingsKey key(XQSettingsKey::TargetCentralRepository,
+        KCRUidVideoMailbox.iUid,
+        KVideoMbxSupport);
+    XQSettingsManager settingsMgr;
+    
+    int ret = settingsMgr.readItemValue(key, XQSettingsManager::TypeInt).toInt();
+    PHONE_TRACE2("Video mbx support:", ret);
+    return ret;
 }
+