devicemgmtdialogsplugin/src/devicemanagementnotifierplugin.cpp
author hgs
Fri, 15 Oct 2010 11:39:02 +0530
changeset 67 fdbfe0a95492
parent 47 d316aecb87fd
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
45
0f9fc722d255 201021_01
hgs
parents:
diff changeset
     1
/*
0f9fc722d255 201021_01
hgs
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
0f9fc722d255 201021_01
hgs
parents:
diff changeset
     3
* All rights reserved.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
0f9fc722d255 201021_01
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
0f9fc722d255 201021_01
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
0f9fc722d255 201021_01
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
0f9fc722d255 201021_01
hgs
parents:
diff changeset
     8
*
0f9fc722d255 201021_01
hgs
parents:
diff changeset
     9
* Initial Contributors:
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    11
*
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    12
* Contributors:
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    13
*
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    14
* Description: 
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    15
*
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    16
*/
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    17
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    18
#include <QtPlugin>
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    19
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    20
#include <hbdevicedialog.h>
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    21
#include <devicedialogconsts.h>
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    22
#include "devicemanagementnotifierplugin_p.h"
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    23
#include "devicemanagementnotifierwidget_p.h"
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    24
#include "omacppinquerydialog.h"
47
d316aecb87fd 201025_02
hgs
parents: 45
diff changeset
    25
#include "fotadevicedialogs.h"
45
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    26
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    27
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    28
Q_EXPORT_PLUGIN2(devicemanagementnotifiersplugin, devicemanagementnotifierplugin)
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    29
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    30
// This plugin implements one device dialog type
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    31
static const struct
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    32
    {
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    33
    const char *mTypeString;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    34
    } dialogInfos[] =
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    35
    {
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    36
        {
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    37
        devicedialogtype
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    38
        }
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    39
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    40
    };
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    41
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    42
class devicemanagementnotifierpluginprivate
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    43
{
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    44
public:
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    45
    devicemanagementnotifierpluginprivate() {mError = 0;}
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    46
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    47
    int mError;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    48
};
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    49
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    50
// Constructor
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    51
devicemanagementnotifierplugin::devicemanagementnotifierplugin()
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    52
{
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    53
    
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    54
    d = new devicemanagementnotifierpluginprivate;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    55
    
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    56
}
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    57
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    58
// Destructor
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    59
devicemanagementnotifierplugin::~devicemanagementnotifierplugin()
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    60
{
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    61
    
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    62
    delete d;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    63
    
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    64
}
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    65
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    66
// Check if client is allowed to use device dialog widget
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    67
bool devicemanagementnotifierplugin::accessAllowed(const QString &deviceDialogType,
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    68
    const QVariantMap &parameters, const QVariantMap &securityInfo) const
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    69
{
67
hgs
parents: 47
diff changeset
    70
    Q_UNUSED(deviceDialogType);
hgs
parents: 47
diff changeset
    71
    Q_UNUSED(parameters);
hgs
parents: 47
diff changeset
    72
    Q_UNUSED(securityInfo);
45
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    73
    // This plugin doesn't perform operations that may compromise security.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    74
    // All clients are allowed to use.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    75
    return true;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    76
    
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    77
}
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    78
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    79
// Create device dialog widget
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    80
HbDeviceDialogInterface *devicemanagementnotifierplugin::createDeviceDialog(
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    81
        const QString &deviceDialogType, const QVariantMap &parameters)
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    82
    {
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    83
    // Find the dialog key
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    84
    QVariantMap::const_iterator i = parameters.find(keydialog);
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    85
    if (i != parameters.end())
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    86
        {
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    87
        int dialogtype = i.value().toInt();
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    88
        //Compare the dialog with the constant declared
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    89
        if (dialogtype == EOmaCPPinDialog)
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    90
            {
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    91
            // Return specific object for showing appropriate dialog
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    92
            return new omacppinquerydialog(parameters);
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    93
            }
67
hgs
parents: 47
diff changeset
    94
hgs
parents: 47
diff changeset
    95
        //if (dialogtype >= EFwDLNeedMoreMemory && dialogtype <= EFwUpdResumeUpdate)
hgs
parents: 47
diff changeset
    96
        //{
hgs
parents: 47
diff changeset
    97
        // Return specific object for showing appropriate dialog
hgs
parents: 47
diff changeset
    98
        // return new fotadevicedialogs(parameters);
hgs
parents: 47
diff changeset
    99
        //}
45
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   100
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   101
        }
67
hgs
parents: 47
diff changeset
   102
45
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   103
    return new devicemanagementnotifierwidget(parameters);
67
hgs
parents: 47
diff changeset
   104
    
hgs
parents: 47
diff changeset
   105
    }
45
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   106
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   107
// Return information of device dialog the plugin creates
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   108
bool devicemanagementnotifierplugin::deviceDialogInfo(const QString &deviceDialogType,
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   109
    const QVariantMap &parameters, DeviceDialogInfo *info) const
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   110
{
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   111
    info->group = GenericDeviceDialogGroup;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   112
    info->flags = NoDeviceDialogFlags;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   113
    info->priority = DefaultPriority;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   114
    return true;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   115
}
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   116
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   117
// Return device dialog types this plugin implements
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   118
QStringList devicemanagementnotifierplugin::deviceDialogTypes() const
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   119
{
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   120
    
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   121
    QStringList types;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   122
    const int numTypes = sizeof(dialogInfos) / sizeof(dialogInfos[0]);
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   123
    for(int i = 0; i < numTypes; i++) {
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   124
        types.append(dialogInfos[i].mTypeString);
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   125
    }
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   126
    
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   127
    return types;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   128
}
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   129
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   130
// Return plugin flags
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   131
HbDeviceDialogPlugin::PluginFlags devicemanagementnotifierplugin::pluginFlags() const
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   132
{
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   133
    
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   134
    return NoPluginFlags;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   135
}
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   136
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   137
// Return last error
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   138
int devicemanagementnotifierplugin::error() const
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   139
{
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   140
    return d->mError;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   141
}