messagingapp/msgnotifications/msgindicatorplugin/src/msgindicatorplugin.cpp
changeset 31 ebfee66fde93
child 47 5b14749788d7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingapp/msgnotifications/msgindicatorplugin/src/msgindicatorplugin.cpp	Fri Jun 04 10:25:39 2010 +0100
@@ -0,0 +1,112 @@
+/*
+ * 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 "msgindicatorplugin.h"
+
+#include "msgindicator.h"
+#include "msginfodefs.h"
+
+#include <QtPlugin>
+#include <QVariant>
+
+
+// ----------------------------------------------------------------------------
+// MsgIndicatorPlugin::MsgIndicatorPlugin
+// @see msgindicatorplugin.h
+// ----------------------------------------------------------------------------
+MsgIndicatorPlugin::MsgIndicatorPlugin() :
+    mError(0)
+{
+    mIndicatorTypes.append(QString("com.nokia.messaging.newindicatorplugin"));
+    mIndicatorTypes.append(QString("com.nokia.messaging.failedindicatorplugin"));
+    mIndicatorTypes.append(QString("com.nokia.messaging.pendingindicatorplugin"));
+
+}
+
+// ----------------------------------------------------------------------------
+// MsgIndicatorPlugin::~MsgIndicatorPlugin
+// @see msgindicatorplugin.h
+// ----------------------------------------------------------------------------
+MsgIndicatorPlugin::~MsgIndicatorPlugin()
+{
+}
+
+// ----------------------------------------------------------------------------
+// MsgIndicatorPlugin::indicatorTypes
+// Return notification types this plugin implements
+// @see msgindicatorplugin.h
+// ----------------------------------------------------------------------------
+QStringList MsgIndicatorPlugin::indicatorTypes() const
+{
+    return mIndicatorTypes;
+}
+
+// ----------------------------------------------------------------------------
+// MsgIndicatorPlugin::accessAllowed
+// Check if client is allowed to use notification widget
+// @see msgindicatorplugin.h
+// ----------------------------------------------------------------------------
+bool MsgIndicatorPlugin::accessAllowed(const QString &indicatorType,
+    const QVariantMap& securityInfo) const
+{
+    Q_UNUSED(indicatorType)
+    Q_UNUSED(securityInfo)
+
+    // This plugin doesn't perform operations that may compromise security.
+    // All clients are allowed to use.
+    return true;
+}
+
+// ----------------------------------------------------------------------------
+// MsgIndicatorPlugin::createIndicator
+// @see msgindicatorplugin.h
+// ----------------------------------------------------------------------------
+HbIndicatorInterface* MsgIndicatorPlugin::createIndicator(const QString &indicatorType)
+{
+    HbIndicatorInterface *indicator = NULL;
+    int index(typeIndex(indicatorType));
+    if (index >= 0) {
+        indicator = new MsgIndicator(indicatorType);
+    }
+
+    return indicator;
+}
+
+// ----------------------------------------------------------------------------
+// MsgIndicatorPlugin::error
+// @see msgindicatorplugin.h
+// ----------------------------------------------------------------------------
+int MsgIndicatorPlugin::error() const
+{
+    return mError;
+}
+
+// ----------------------------------------------------------------------------
+// MsgIndicatorPlugin::typeIndex
+// @see msgindicatorplugin.h
+// ----------------------------------------------------------------------------
+int MsgIndicatorPlugin::typeIndex(const QString &indicatorType) const
+{
+    for (int i = 0; i < mIndicatorTypes.count(); ++i) {
+        if (mIndicatorTypes.at(i) == indicatorType) {
+            return i;
+        }
+    }
+    return -1;
+}
+
+Q_EXPORT_PLUGIN2(msgindicatorplugin,MsgIndicatorPlugin)