cellular/psuinotes/src/psuidivertnotehandler.cpp
branchRCL_3
changeset 19 7d48bed6ce0c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cellular/psuinotes/src/psuidivertnotehandler.cpp	Tue Aug 31 15:45:17 2010 +0300
@@ -0,0 +1,143 @@
+/*
+ * 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:
+ *
+ */
+
+#include <psetcalldivertingwrapper.h>
+#include "psuinotes.h"
+#include "psuidivertnotehandler.h"
+#include "psuilogging.h"
+
+/*!
+  PsUiDivertNoteHandler::PsUiDivertNoteHandler 
+ */
+PsUiDivertNoteHandler::PsUiDivertNoteHandler(PSetCallDivertingWrapper& callDivertingWrapper) :
+    m_callDivertingWrapper(callDivertingWrapper)
+{
+    DPRINT << ": IN";
+   
+    QObject::connect(
+        &m_callDivertingWrapper, 
+        SIGNAL(handleDivertingChanged(const PSCallDivertingCommand&,bool)),
+        this, 
+        SLOT(handleDivertingChanged(const PSCallDivertingCommand&,bool)));
+    QObject::connect(
+        &m_callDivertingWrapper, 
+        SIGNAL(handleDivertingStatus(QList<PSCallDivertingStatus*>&, bool)),
+        this, 
+        SLOT(handleDivertingStatus(QList<PSCallDivertingStatus*>&, bool)));
+    QObject::connect(
+        &m_callDivertingWrapper, 
+        SIGNAL(handleDivertingError(int)),
+        this, 
+        SLOT(handleDivertingError(int))); 
+    QObject::connect(
+        &m_callDivertingWrapper, 
+        SIGNAL(handleCFRequesting(bool,bool)),
+        this,
+        SLOT(handleCFRequesting(bool,bool)));
+    DPRINT << ": OUT";
+}
+
+/*!
+  PsUiDivertNoteHandler::~PsUiDivertNoteHandler
+ */
+PsUiDivertNoteHandler::~PsUiDivertNoteHandler()
+{  
+}
+
+/*!
+  PsUiDivertNoteHandler::handleDivertingChanged
+ */
+void PsUiDivertNoteHandler::handleDivertingChanged(
+    const PSCallDivertingCommand& aSetting, 
+    bool aPlural)
+{  
+    DPRINT << ": IN";
+    switch ( aSetting.iStatus ) {
+        case DivertingStatusActive:
+            if (aPlural) {   
+                PsUiNotes::instance()->showGlobalNotificationDialog(
+                    hbTrId("txt_phone_info_diverts_activated"));
+            } else {       
+                PsUiNotes::instance()->showGlobalNotificationDialog(
+                    hbTrId("txt_phone_info_divert_activated"));
+            }
+            break;
+        case DivertingStatusNotRegistered:  
+        case DivertingStatusInactive:
+            if (aPlural) {
+                PsUiNotes::instance()->showGlobalNotificationDialog(
+                    hbTrId("txt_phone_info_diverts_deactivated"));
+            } else {
+                PsUiNotes::instance()->showGlobalNotificationDialog(
+                    hbTrId("txt_phone_info_divert_deactivated"));
+            }
+            break;
+        case DivertingStatusNotProvisioned:
+        case DivertingStatusUnknown:
+        default:
+            PsUiNotes::instance()->showGlobalNotificationDialog(
+                hbTrId("txt_phone_info_request_not_completed"));
+    }
+    DPRINT << ": OUT";
+}
+   
+/*!
+  PsUiDivertNoteHandler::handleDivertingStatus
+ */
+void PsUiDivertNoteHandler::handleDivertingStatus(
+    QList<PSCallDivertingStatus*>& divertList, 
+    bool plural)
+{
+    DPRINT << ": IN";   
+    Q_UNUSED(plural);
+
+    PsUiNotes::instance()->showCallDivertDetails(divertList);
+    DPRINT << ": OUT";
+}
+   
+/*!
+  PsUiDivertNoteHandler::handleDivertingError
+ */
+void PsUiDivertNoteHandler::handleDivertingError(int aReason)
+{
+    DPRINT << ": IN";
+    // Cancel previous note
+    PsUiNotes::instance()->cancelNote(m_activeNoteId);
+    // Show error note
+    PsUiNotes::instance()->showGlobalErrorNote(m_activeNoteId, aReason);    
+    DPRINT << ": OUT";
+}
+
+/*!
+  PsUiDivertNoteHandler::handleCFRequesting
+ */
+void PsUiDivertNoteHandler::handleCFRequesting(bool ongoing, bool interrupted)
+{
+    DPRINT << ": IN";
+    if (interrupted) {
+       PsUiNotes::instance()->cancelNote(m_activeProgressNoteId);
+       PsUiNotes::instance()->cancelNote(m_activeNoteId);
+    } else {
+       if (ongoing) {
+           PsUiNotes::instance()->showGlobalProgressNote(
+               m_activeProgressNoteId, hbTrId("txt_phone_info_requesting"));
+       } else {
+           PsUiNotes::instance()->cancelNote(m_activeProgressNoteId);
+       }
+    }       
+    DPRINT << ": OUT";
+}