activityfw/orbitintegration/hbactivityplugin/hbactivityplugin.cpp
changeset 61 8e5041d13c84
child 66 32469d7d46ff
equal deleted inserted replaced
60:f62f87b200ec 61:8e5041d13c84
       
     1 /*
       
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description: 
       
    15 *
       
    16 */
       
    17 
       
    18 #include "hbactivityplugininterface.h"
       
    19 #include "hbactivityplugin.h"
       
    20 
       
    21 #include <qservicemanager.h>
       
    22 
       
    23 QTM_USE_NAMESPACE
       
    24 
       
    25 HbActivityPlugin::HbActivityPlugin(QObject *parent) : HbActivityPluginInterface(parent), mActivityClient(0)
       
    26 {
       
    27     QServiceManager serviceManager;
       
    28     
       
    29     if (serviceManager.findInterfaces("ActivityService").isEmpty()) {
       
    30         // clean old entries
       
    31         serviceManager.removeService("ActivityService");
       
    32         bool servicesAdded = serviceManager.addService(":/activityserviceplugin.xml");
       
    33         if (!servicesAdded) {
       
    34             qWarning("addService for ActivityService returned false, error %d", serviceManager.error());
       
    35         }
       
    36     }
       
    37 
       
    38     mActivityClient = serviceManager.loadInterface("com.nokia.qt.activities.ActivityClient");    
       
    39     if (!mActivityClient) {
       
    40         qWarning("Cannot initialize critical com.nokia.qt.activities.ActivityClient service.");
       
    41     }
       
    42     
       
    43     connect(mActivityClient, SIGNAL(activityRequested(QString)), this, SIGNAL(activityRequested(QString)));
       
    44 }
       
    45 
       
    46 HbActivityPlugin::~HbActivityPlugin()
       
    47 {
       
    48     delete mActivityClient;
       
    49 }
       
    50 
       
    51 bool HbActivityPlugin::addActivity(const QString &activityId, const QVariant &data, const QVariantHash &parameters)
       
    52 {
       
    53     bool retVal(false);
       
    54     QMetaObject::invokeMethod(mActivityClient, 
       
    55                               "addActivity", 
       
    56                               Q_RETURN_ARG(bool, retVal), 
       
    57                               Q_ARG(QString, activityId), 
       
    58                               Q_ARG(QVariant, data), 
       
    59                               Q_ARG(QVariantHash, parameters));
       
    60     return retVal;
       
    61 }
       
    62 
       
    63 bool HbActivityPlugin::removeActivity(const QString &activityId)
       
    64 {
       
    65     bool retVal(false);
       
    66     QMetaObject::invokeMethod(mActivityClient, 
       
    67                               "removeActivity", 
       
    68                               Q_RETURN_ARG(bool, retVal), 
       
    69                               Q_ARG(QString, activityId));
       
    70     return retVal;
       
    71 }
       
    72 
       
    73 bool HbActivityPlugin::updateActivity(const QString &activityId, const QVariant &data, const QVariantHash &parameters)
       
    74 {
       
    75     bool retVal(false);
       
    76     QMetaObject::invokeMethod(mActivityClient, 
       
    77                               "updateActivity", 
       
    78                               Q_RETURN_ARG(bool, retVal), 
       
    79                               Q_ARG(QString, activityId),
       
    80                               Q_ARG(QVariant, data),
       
    81                               Q_ARG(QVariantHash, parameters));
       
    82     return retVal;
       
    83 }
       
    84 QList<QVariantHash> HbActivityPlugin::activities()
       
    85 {
       
    86     QList<QVariantHash> data;
       
    87     QMetaObject::invokeMethod(mActivityClient, 
       
    88                               "activities", 
       
    89                               Q_RETURN_ARG(QList<QVariantHash>, data));
       
    90     return data;
       
    91 }
       
    92 
       
    93 QVariant HbActivityPlugin::activityData(const QString &activityId)
       
    94 {
       
    95     QVariant data;
       
    96     QMetaObject::invokeMethod(mActivityClient, 
       
    97                               "activityData", 
       
    98                               Q_RETURN_ARG(QVariant, data),
       
    99                               Q_ARG(QString, activityId));
       
   100     return data;
       
   101 }
       
   102 
       
   103 bool HbActivityPlugin::waitActivity()
       
   104 {
       
   105     bool retVal(false);
       
   106     QMetaObject::invokeMethod(mActivityClient, 
       
   107                               "waitActivity", 
       
   108                               Q_RETURN_ARG(bool, retVal));
       
   109     return retVal;
       
   110 }
       
   111 
       
   112 Q_EXPORT_PLUGIN2(hbactivityplugin, HbActivityPlugin)