messagingapp/msgnotifications/msgerrornotifier/src/msgerrornotifiersvc.cpp
changeset 31 ebfee66fde93
child 43 35b64624a9e7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingapp/msgnotifications/msgerrornotifier/src/msgerrornotifiersvc.cpp	Fri Jun 04 10:25:39 2010 +0100
@@ -0,0 +1,110 @@
+/*
+ * 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 "msgerrornotifiersvc.h"
+#include <QVariant>
+#include <HbMessageBox>
+#include <HbDialog>
+#include <hbdevicemessagebox.h>
+#include <HbAction>
+#include <xqservicerequest.h>
+#include <xqaiwrequest.h>
+#include <xqappmgr.h>
+#include <ccsdefs.h>
+#include <qaction.h>
+
+#define LOC_VIEW hbTrId("txt_messaging_button_view")
+#define LOC_CANCEL hbTrId("txt_common_button_cancel")
+#define LOC_SEND_FAILURE hbTrId("txt_messaging_list_message_sending_failed")
+
+//---------------------------------------------------------
+// Constructor
+//---------------------------------------------------------
+MsgErrorNotifierSvc::MsgErrorNotifierSvc(QObject* parent) :
+    XQServiceProvider(QLatin1String("messaging.com.nokia.symbian.MsgErrorNotifier"), parent)
+{
+    publishAll();
+
+}
+//---------------------------------------------------------
+// Destructor
+//---------------------------------------------------------
+MsgErrorNotifierSvc::~MsgErrorNotifierSvc()
+{
+
+}
+
+//---------------------------------------------------------
+// displayErrorNote
+// @see msgerrornotifiersvc.h
+//---------------------------------------------------------
+void MsgErrorNotifierSvc::displayErrorNote(QVariantList displayParams)
+{
+
+    HbDeviceMessageBox messageBox(HbMessageBox::MessageTypeWarning);
+    QVariant first = displayParams[0];
+    QVariant second = displayParams[1];
+    QVariant third = displayParams[2];
+
+    int convId = second.toInt();
+    qint64 id = convId;
+    QString errorNote;
+    
+    int msgType = third.toInt();
+    if (msgType == ECsMmsNotification)
+    {
+        errorNote.append("Message Retrieval Failed!");//TODO: use logical str name
+    }
+    else
+    {
+        errorNote.append(LOC_SEND_FAILURE);
+        errorNote.append(QChar(QChar::LineSeparator));
+
+        QString contactName = first.toString();
+        errorNote.append(contactName);        
+    }
+    
+    messageBox.setTimeout(HbPopup::NoTimeout);
+    messageBox.setText(errorNote);
+    QAction* actionView = new QAction(LOC_VIEW,this);
+    messageBox.setAction(actionView,HbDeviceMessageBox::AcceptButtonRole);
+
+    QAction* actionQuit = new QAction(LOC_CANCEL,this);
+    actionQuit->setMenuRole(QAction::QuitRole);
+    messageBox.setAction(actionView,HbDeviceMessageBox::RejectButtonRole);
+
+    setCurrentRequestAsync();
+
+    const QAction* result = messageBox.exec();
+
+    // TODO: use XQAiwrequest
+    if (result->menuRole() != QAction::QuitRole) {
+        QList<QVariant> args;
+        QString serviceName("com.nokia.services.hbserviceprovider");
+        QString operation("open(qint64)");
+        XQAiwRequest* request;
+        XQApplicationManager appManager;
+        request = appManager.create(serviceName, "conversationview", operation, false); // embedded
+        if (request == NULL) {
+            return;
+        }
+        args << QVariant(id);
+        request->setArguments(args);
+        request->send();
+        delete request;
+    }
+}