applicationmanagement/server/src/appmgmtnotifier.cpp
author hgs
Fri, 17 Sep 2010 19:58:05 +0530
changeset 62 03849bd79877
parent 52 6e38e48ee756
permissions -rw-r--r--
201037
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
47
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     1
/*
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     2
 * Copyright (c) 2000 Nokia Corporation and/or its subsidiary(-ies). 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     3
 * All rights reserved.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     8
 *
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     9
 * Initial Contributors:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    11
 *
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    12
 * Contributors:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    13
 *
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    14
 * Description: Implementation of applicationmanagement components
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    15
 *
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    16
 */
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    17
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    18
52
hgs
parents: 47
diff changeset
    19
#include <hbdevicedialog.h>
47
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    20
#include <apgtask.h>
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    21
#include <eikenv.h>
52
hgs
parents: 47
diff changeset
    22
#include <driveinfo.h>
hgs
parents: 47
diff changeset
    23
#include <hbapplication.h>
hgs
parents: 47
diff changeset
    24
#include <hbmessagebox.h>
47
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    25
#include "amstorage.h"
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    26
#include "appmgmtnotifier.h"
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    27
#include "appmgmtdownloadmgr.h"
52
hgs
parents: 47
diff changeset
    28
#include "ApplicationManagementUtility.h"
47
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    29
#include "debug.h"
52
hgs
parents: 47
diff changeset
    30
47
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    31
// ------------------------------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    32
// AppMgmtNotifier::AppMgmtNotifier
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    33
// ------------------------------------------------------------------------------------------------ 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    34
AppMgmtNotifier::AppMgmtNotifier(QString aAppName)
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    35
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    36
    m_appname = aAppName;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    37
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    38
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    39
// ------------------------------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    40
// AppMgmtNotifier::~AppMgmtNotifier
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    41
// ------------------------------------------------------------------------------------------------ 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    42
AppMgmtNotifier::~AppMgmtNotifier()
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    43
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    44
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    45
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    46
// ------------------------------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    47
// AppMgmtNotifier::getAvailableDrives
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    48
// ------------------------------------------------------------------------------------------------ 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    49
void AppMgmtNotifier::getAvailableDrives()
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    50
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    51
    RFs iFs;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    52
    int err;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    53
    qt_symbian_throwIfError(iFs.Connect());
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    54
    TDriveList driveList;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    55
    TInt driveCount = 0;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    56
    TBuf<20> buf;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    57
    int i = 0;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    58
    QString val;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    59
    QStringList list;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    60
    TDriveInfo info;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    61
    TVolumeInfo volumeInfo;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    62
    qt_symbian_throwIfError(DriveInfo::GetUserVisibleDrives(iFs, driveList,
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    63
            driveCount));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    64
    TUint driveStatus = 0;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    65
    for (TInt index(0); index < KMaxDrives; index++)
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    66
        {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    67
        if (driveList[index])
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    68
            {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    69
            TRealFormat realFormat;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    70
            qt_symbian_throwIfError(DriveInfo::GetDriveStatus(iFs, index,
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    71
                    driveStatus));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    72
            TFileName path;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    73
            TDriveUnit driveUnit(index);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    74
            if (!(driveStatus & DriveInfo::EDriveRemote))
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    75
                {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    76
                TBuf<64> freeSpace;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    77
                TReal free;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    78
                TInt64 freeKBytes;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    79
                realFormat.iWidth = 6;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    80
                iFs.Drive(info, index);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    81
                if(iFs.Volume(volumeInfo, index)==KErrNone)
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    82
                    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    83
                freeKBytes = 0;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    84
                freeKBytes = volumeInfo.iFree / 1024;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    85
                RDEBUG_2("free space: (%d)", volumeInfo.iFree  );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    86
                free = volumeInfo.iFree / 1024;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    87
                freeSpace.Num(freeKBytes);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    88
                TInt sizeUnit = -1;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    89
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    90
                //converting the drive freespace
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    91
                int len = freeSpace.Length();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    92
                if (len >= 7)
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    93
                    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    94
                    TReal nul = (1024 * 1024);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    95
                    TReal temp = free / nul;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    96
                    freeSpace.Num(temp, realFormat);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    97
                    sizeUnit = 1;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    98
                    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    99
                else
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   100
                    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   101
                    TReal temp = free / 1024;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   102
                    freeSpace.Num(temp, realFormat);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   103
                    sizeUnit = 0;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   104
                    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   105
                //Getting the drive name in QString
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   106
                path.Zero();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   107
                path.Append(driveUnit.Name());
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   108
                val = QString::fromUtf16(path.Ptr(), path.Length());
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   109
                m_Drilist.Append(path);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   110
                //Getting the drive free space in QString
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   111
                path.Zero();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   112
                path.Append(freeSpace);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   113
                QString str1 = QString::fromUtf16(path.Ptr(), path.Length());
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   114
                QString driv;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   115
                if (sizeUnit == -1)
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   116
                    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   117
                    driv
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   118
                            = hbTrId(
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   119
                                    "txt_deviceupdate_setlabel_install_to_val_1_2_kb").arg(
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   120
                                    val, str1);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   121
                    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   122
                else if (sizeUnit == 0)
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   123
                    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   124
                    driv
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   125
                            = hbTrId(
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   126
                                    "txt_deviceupdate_setlabel_install_to_val_1_2_Mb").arg(
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   127
                                    val, str1);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   128
                    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   129
                else
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   130
                    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   131
                    driv
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   132
                            = hbTrId(
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   133
                                    "txt_deviceupdate_setlabel_install_to_val_1_2_Gb").arg(
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   134
                                    val, str1);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   135
                    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   136
                    m_DriveBox->insertItem(i++, driv);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   137
                    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   138
                }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   139
            }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   140
        }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   141
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   142
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   143
// ------------------------------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   144
// AppMgmtNotifier::showInstallDialog
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   145
// ------------------------------------------------------------------------------------------------ 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   146
void AppMgmtNotifier::showInstallDialog(CDeploymentComponent *aCompo, TRequestStatus &s)
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   147
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   148
    bringServerToForeground();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   149
    iStat = &s;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   150
    iComp = aCompo;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   151
    HbDocumentLoader loader;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   152
    QString val;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   153
    bool ok = false;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   154
    HbLabel* label;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   155
    int err;    
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   156
    iComp->SetDriveSelectionStatus(true);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   157
    CDeliveryComponentStorage* iStorage ;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   158
    QT_TRAP_THROWING(iStorage= CDeliveryComponentStorage::NewL());
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   159
    TRAP( err, QT_TRYCATCH_LEAVING(iStorage->UpdateL(*iComp)));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   160
    delete iStorage;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   161
    loader.load(":/xml/sample.docml", &ok);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   162
    if (!ok)
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   163
        {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   164
        return;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   165
        }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   166
    Q_ASSERT_X(ok, "Device Manager", "Invalid docml file");
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   167
    m_Dialog = qobject_cast<HbDialog*> (loader.findWidget("dialog"));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   168
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   169
    //set title for the dialog
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   170
    label = qobject_cast<HbLabel*> (loader.findWidget(
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   171
            "qtl_dialog_pri_heading"));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   172
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   173
    val = hbTrId("txt_device_update_title_install");
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   174
    label->setPlainText(val);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   175
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   176
    TDeploymentComponentName name = aCompo->ComponentName();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   177
    TBuf<KDeploymentComponentNameMaxLength> nameBuf;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   178
    nameBuf.Copy(name);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   179
    m_appname = QString::fromUtf16(nameBuf.Ptr(), nameBuf.Length());
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   180
    //set the app name
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   181
    label = qobject_cast<HbLabel*> (loader.findWidget("label"));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   182
    val = hbTrId("txt_deviceupdate_info_file_1_2").arg(m_appname);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   183
    label->setPlainText(val);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   184
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   185
    //size
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   186
    label = qobject_cast<HbLabel*> (loader.findWidget("label_1"));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   187
	label->setPlainText("");
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   188
    //icon
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   189
    label = qobject_cast<HbLabel*> (loader.findWidget("icon"));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   190
    label->setIcon(HbIcon(":/icon/qgn_prop_sml_http.svg"));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   191
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   192
    //"install to" label
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   193
    label = qobject_cast<HbLabel*> (loader.findWidget("qtl_dialog_pri5"));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   194
    val = hbTrId("txt_device_update_setlabel_install_to");
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   195
    label->setPlainText(val);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   196
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   197
    //getting the available free space in all drives and adding to combobox
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   198
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   199
    m_DriveBox = qobject_cast<HbComboBox*> (loader.findWidget("combobox"));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   200
    
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   201
    TRAP(err,getAvailableDrives());
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   202
    if(err==KErrNone)
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   203
        {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   204
    connect(m_DriveBox, SIGNAL(currentIndexChanged(int)), this,
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   205
            SLOT(defaultDriveChanged(int )));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   206
        }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   207
    else
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   208
        m_DriveBox->setVisible(false);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   209
    //setting the actions
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   210
    m_OkButton = qobject_cast<HbAction*> (loader.findObject(
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   211
            "qtl_dialog_softkey_2_left"));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   212
    m_Cancel = qobject_cast<HbAction*> (loader.findObject(
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   213
            "qtl_dialog_softkey_2_right"));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   214
    val = hbTrId("txt_common_button_ok");
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   215
    m_OkButton->setText(val);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   216
    val = hbTrId("txt_common_button_cancel");
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   217
    m_Cancel->setText(val);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   218
    m_Dialog->setTimeout(20000);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   219
    CApplicationManagementUtility::mCurrDlg = m_Dialog;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   220
    m_Dialog->open(this, SLOT(dlgSlot(HbAction*)));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   221
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   222
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   223
// ------------------------------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   224
// AppMgmtNotifier::defaultDriveChanged
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   225
// ------------------------------------------------------------------------------------------------ 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   226
void AppMgmtNotifier::defaultDriveChanged(int i)
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   227
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   228
    TAMInstallOptions opts = iComp->InstallOpts();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   229
    TChar drive = m_Drilist[i*2];
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   230
    drive.LowerCase();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   231
    int err;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   232
    opts.iOptions.iDrive = drive;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   233
    TPtrC8 buf;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   234
    TAMInstallOptionsPckg optsb(opts);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   235
    buf.Set(optsb);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   236
    TRAP( err, QT_TRYCATCH_LEAVING(iComp->SetInstallOptsL(buf)));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   237
    CDeliveryComponentStorage* iStorage;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   238
    TRAP( err, QT_TRYCATCH_LEAVING(iStorage = CDeliveryComponentStorage::NewL()));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   239
    TRAP( err, QT_TRYCATCH_LEAVING(iStorage->UpdateL(*iComp)));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   240
    delete iStorage;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   241
    iStorage = NULL;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   242
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   243
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   244
// ------------------------------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   245
// AppMgmtNotifier::dlgSlot
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   246
// ------------------------------------------------------------------------------------------------ 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   247
void AppMgmtNotifier::dlgSlot(HbAction* action)
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   248
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   249
    if(action == m_Cancel)
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   250
        {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   251
        sendServerToBackground();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   252
        TRequestStatus* status(iStat);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   253
        User::RequestComplete(status, KStatusUserCancelled);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   254
        }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   255
    else
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   256
        {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   257
        TRequestStatus* status(iStat);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   258
        User::RequestComplete(status, KErrCompletion );      
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   259
        }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   260
    CApplicationManagementUtility::mCurrDlg = 0;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   261
    m_OkButton=0;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   262
    m_Cancel = 0;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   263
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   264
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   265
// ------------------------------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   266
// AppMgmtNotifier::showInstallFailedNote
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   267
//launching a device dialog to display notefor "install failed" case
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   268
// ------------------------------------------------------------------------------------------------ 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   269
void AppMgmtNotifier::showInstallFailedNote()
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   270
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   271
    HbDeviceDialog deviceDialog;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   272
    QVariantMap parameters;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   273
    //_LIT(KScomoNotifier, "scomonotifier");
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   274
    parameters.insertMulti(QString("scomonotifier"), QVariant(QString("installfailed")));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   275
    QString data = m_appname;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   276
    parameters.insertMulti(QString("scomoappname"), QVariant(data));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   277
    const char *deviceDialogType = "com.nokia.hb.devicemanagementdialog/1.0";
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   278
    bool ret = deviceDialog.show(QString(deviceDialogType), parameters);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   279
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   280
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   281
// ------------------------------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   282
// AppMgmtNotifier::sendServerToBackground
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   283
// ------------------------------------------------------------------------------------------------ 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   284
void AppMgmtNotifier::sendServerToBackground()
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   285
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   286
    CCoeEnv* coe = CCoeEnv::Static();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   287
    TApaTaskList taskList(coe->WsSession());
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   288
    TApaTask task=taskList.FindApp(TUid::Uid(KAppMgmtServerUid));  
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   289
    if(task.Exists())
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   290
        {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   291
        task.SendToBackground();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   292
        }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   293
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   294
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   295
// ------------------------------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   296
// AppMgmtNotifier::bringServerToForeground
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   297
// ------------------------------------------------------------------------------------------------ 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   298
void AppMgmtNotifier::bringServerToForeground()
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   299
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   300
    CCoeEnv* coe = CCoeEnv::Static();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   301
    TApaTaskList taskList(coe->WsSession());
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   302
    TApaTask task = taskList.FindApp(TUid::Uid(KAppMgmtServerUid));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   303
    if (task.Exists())
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   304
        {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   305
        task.BringToForeground();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   306
        }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   307
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   308
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   309
// ------------------------------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   310
// AppMgmtNotifier::operationSuccessSlot
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   311
// ------------------------------------------------------------------------------------------------ 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   312
void AppMgmtNotifier::successSlot(HbAction* action)
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   313
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   314
    RDEBUG("successslot");
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   315
    if(action == m_OkButton || action == NULL)
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   316
        {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   317
        sendServerToBackground();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   318
        RDEBUG("slot entered");
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   319
        TRequestStatus* status(iStat);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   320
        User::RequestComplete(status, KErrCompletion);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   321
        }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   322
    m_OkButton = 0;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   323
    RDEBUG("successslot end");
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   324
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   325
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   326
// ------------------------------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   327
// AppMgmtNotifier::showInstallSuccessNote
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   328
// ------------------------------------------------------------------------------------------------ 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   329
void AppMgmtNotifier::showInstallSuccessNote()
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   330
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   331
    if (CApplicationManagementUtility::mHidden == 1)
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   332
        {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   333
        //Display Installation complete dialog
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   334
        HbDeviceNotificationDialog notificationDialog;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   335
        QString text =
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   336
                hbTrId("txt_device_update_title_installation_complete");
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   337
        notificationDialog.setTitle(text);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   338
        text
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   339
                = hbTrId("txt_device_update_dblist_product_code_val_installa").arg(
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   340
                        m_appname);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   341
        notificationDialog.setText(text);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   342
        notificationDialog.show();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   343
        }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   344
    else
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   345
        {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   346
        bringServerToForeground();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   347
        HbDocumentLoader loader;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   348
        bool ok = false;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   349
        loader.load(":/xml/error_notes.docml", &ok);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   350
        QString val;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   351
        // Exit if the file format is invalid
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   352
        Q_ASSERT_X(ok, "Device Manager", "Invalid docml file");
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   353
        m_Dialog = qobject_cast<HbDialog*> (loader.findWidget(
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   354
                "dialog"));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   355
        HbLabel* label = qobject_cast<HbLabel*> (loader.findWidget(
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   356
                "heading_text"));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   357
        val = hbTrId("txt_device_update_title_installation_complete");
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   358
        label->setPlainText(val);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   359
        
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   360
        val = hbTrId("txt_deviceupdate_info_file_1_2").arg(m_appname);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   361
        label = qobject_cast<HbLabel*> (loader.findWidget("content_text"));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   362
        label->setPlainText(val);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   363
        m_OkButton = qobject_cast<HbAction*> (loader.findObject(
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   364
                "qtl_dialog_softkey_2_left"));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   365
        val = hbTrId("txt_common_button_ok");
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   366
        m_OkButton->setText(val);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   367
        
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   368
        m_Dialog->setTimeout(HbPopup::ContextMenuTimeout);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   369
        //m_Dialog->setAttribute(Qt::WA_DeleteOnClose);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   370
        m_Dialog->open(this, SLOT(successSlot(HbAction*)));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   371
	    CDialogWait* wait = CDialogWait::NewL();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   372
        registerStatus(wait->iStatus);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   373
	    RDEBUG_2("AppMgmtNotifier::Start before StartWait (%d)", wait->iStatus.Int());
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   374
        wait->StartWait();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   375
	    delete wait;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   376
        }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   377
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   378
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   379
// ------------------------------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   380
// AppMgmtNotifier::dialogUnSlot
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   381
// ------------------------------------------------------------------------------------------------ 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   382
void AppMgmtNotifier::dialogUnSlot(HbAction* retAction)
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   383
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   384
    sendServerToBackground();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   385
    if (retAction == m_Cancel)
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   386
        {      
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   387
        TRequestStatus* status(iStat);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   388
        User::RequestComplete(status, KStatusUserCancelled);    
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   389
        }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   390
    else
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   391
        {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   392
        TRequestStatus* status(iStat);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   393
        User::RequestComplete(status, KErrCompletion);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   394
        }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   395
    CApplicationManagementUtility::mCurrDlg = 0;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   396
    m_OkButton = 0;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   397
    m_Cancel = 0;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   398
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   399
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   400
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   401
// ------------------------------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   402
// AppMgmtNotifier::showUninstallDialog
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   403
//uninstall beginning confirmation note
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   404
// ------------------------------------------------------------------------------------------------ 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   405
void AppMgmtNotifier::showUninstallDialog(const CDeploymentComponent &aCompo,
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   406
        TRequestStatus &s)
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   407
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   408
    iStat = &s;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   409
    bringServerToForeground();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   410
    
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   411
    HbDocumentLoader loader;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   412
    bool ok;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   413
    loader.load(":/xml/downloaddialog.docml", &ok);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   414
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   415
    Q_ASSERT_X(ok, "Device Manager", "Invalid docml file");
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   416
    m_Dialog = qobject_cast<HbDialog*> (loader.findWidget("dialog"));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   417
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   418
    HbLabel* label = qobject_cast<HbLabel*> (loader.findWidget(
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   419
            "qtl_dialog_pri_heading"));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   420
    QString val = hbTrId("txt_device_update_title_uninstalling_application");
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   421
    label->setPlainText(val);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   422
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   423
    label = qobject_cast<HbLabel*> (loader.findWidget("icon"));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   424
    label->setIcon(HbIcon(":/icons/qgn_prop_sml_http.svg"));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   425
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   426
    label = qobject_cast<HbLabel*> (loader.findWidget("qtl_dialog_pri5"));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   427
    TDeploymentComponentName name = aCompo.ComponentName();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   428
    TBuf<255> ne;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   429
    ne.Copy(name);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   430
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   431
    QString str = QString::fromUtf16(ne.Ptr(), ne.Length());
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   432
    val = hbTrId("txt_deviceupdate_info_application_1").arg(str);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   433
    label->setPlainText(val);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   434
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   435
    label = qobject_cast<HbLabel*> (loader.findWidget("qtl_dialog_pri5_1"));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   436
    label->setPlainText("");
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   437
    
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   438
    m_OkButton = qobject_cast<HbAction*> (loader.findObject(
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   439
            "qtl_dialog_softkey_2_left"));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   440
    m_Cancel = qobject_cast<HbAction*> (loader.findObject(
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   441
            "qtl_dialog_softkey_2_right"));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   442
    val = hbTrId("txt_common_button_ok");
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   443
    m_OkButton->setText(val);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   444
    val = hbTrId("txt_common_button_cancel");
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   445
    m_Cancel->setText(val);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   446
    CApplicationManagementUtility::mCurrDlg = m_Dialog;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   447
    m_Dialog->setTimeout(10000);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   448
    m_Dialog->open(this, SLOT(dialogUnSlot(HbAction*)));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   449
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   450
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   451
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   452
// ------------------------------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   453
//AppMgmtNotifier::showUnInstallFailedNote
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   454
//Displaying uninstall failed note
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   455
// ------------------------------------------------------------------------------------------------ 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   456
void AppMgmtNotifier::showUnInstallFailedNote()
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   457
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   458
    HbDeviceDialog deviceDialog;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   459
    QVariantMap parameters;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   460
    //_LIT(KScomoNotifier, "scomonotifier");
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   461
    parameters.insertMulti(QString("scomonotifier"), QVariant(QString(
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   462
            "uninstallfailed")));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   463
    QString data = m_appname;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   464
    parameters.insertMulti(QString("scomoappname"), QVariant(data));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   465
    const char *deviceDialogType = "com.nokia.hb.devicemanagementdialog/1.0";
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   466
    bool ret = deviceDialog.show(QString(deviceDialogType), parameters);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   467
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   468
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   469
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   470
// ------------------------------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   471
// AppMgmtNotifier::showUnInstallSuccessNote
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   472
//uninstall success notification
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   473
// ------------------------------------------------------------------------------------------------ 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   474
void AppMgmtNotifier::showUnInstallSuccessNote()
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   475
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   476
    if (CApplicationManagementUtility::mHidden == 1)
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   477
        {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   478
        //Display Installation complete dialog
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   479
        HbDeviceNotificationDialog notificationDialog;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   480
        QString text = hbTrId(
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   481
                "txt_device_update_title_uninstallation_complete");
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   482
        notificationDialog.setTitle(text);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   483
        text
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   484
                = hbTrId(
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   485
                        "txt_device_update_dblist_product_code_val_uninstalla_comple").arg(
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   486
                        m_appname);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   487
        notificationDialog.setText(text);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   488
        notificationDialog.show();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   489
        }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   490
    else
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   491
        {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   492
        bringServerToForeground();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   493
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   494
        HbDocumentLoader loader;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   495
        bool ok = false;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   496
        loader.load(":/xml/error_notes.docml", &ok);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   497
        QString val;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   498
        // Exit if the file format is invalid
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   499
        Q_ASSERT_X(ok, "Device Manager", "Invalid docml file");
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   500
        m_Dialog = qobject_cast<HbDialog*> (loader.findWidget(
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   501
                "dialog"));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   502
        QString blank("");
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   503
        HbLabel* label = qobject_cast<HbLabel*> (loader.findWidget(
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   504
                "heading_text"));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   505
        val = hbTrId("txt_device_update_title_uninstallation_complete");
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   506
        label->setPlainText(val);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   507
        val
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   508
                = hbTrId(
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   509
                        "txt_device_update_dblist_product_code_val_uninstalla_comple").arg(
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   510
                        m_appname);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   511
        label = qobject_cast<HbLabel*> (loader.findWidget("content_text"));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   512
        label->setPlainText(val);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   513
        m_OkButton = qobject_cast<HbAction*> (loader.findObject(
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   514
                "qtl_dialog_softkey_2_left"));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   515
        val = hbTrId("txt_common_button_ok");
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   516
        m_OkButton->setText(val);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   517
        
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   518
        m_Dialog->setTimeout(HbPopup::StandardTimeout);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   519
        m_Dialog->open(this, SLOT(successSlot(HbAction*)));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   520
        CDialogWait* wait = CDialogWait::NewL();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   521
        registerStatus(wait->iStatus);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   522
        RDEBUG_2("AppMgmtNotifier::Start before StartWait (%d)", wait->iStatus.Int());
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   523
        wait->StartWait();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   524
        delete wait;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   525
        }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   526
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   527
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   528
// ------------------------------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   529
// AppMgmtNotifier::showDownloadFailedNote
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   530
// ------------------------------------------------------------------------------------------------ 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   531
bool AppMgmtNotifier::showDownloadFailedNote(QString aNotifierdata)
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   532
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   533
    HbDeviceDialog deviceDialog;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   534
    QVariantMap parameters;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   535
    //_LIT(KScomoNotifier, "scomonotifier");
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   536
    parameters.insertMulti(QString("scomonotifier"), QVariant(QString(
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   537
            "downloadfailed")));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   538
    parameters.insertMulti(QString("scomoappdata"),QVariant(aNotifierdata));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   539
    const char *deviceDialogType = "com.nokia.hb.devicemanagementdialog/1.0";
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   540
    bool stat = deviceDialog.show(QString(deviceDialogType), parameters); 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   541
    return stat;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   542
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   543
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   544
// ------------------------------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   545
// AppMgmtNotifier::showDownloadSuccessNote
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   546
// ------------------------------------------------------------------------------------------------ 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   547
void AppMgmtNotifier::showDownloadSuccessNote()
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   548
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   549
    if (CApplicationManagementUtility::mHidden == 1)
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   550
        {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   551
        HbDeviceNotificationDialog notificationDialog;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   552
        QString tr = hbTrId("txt_device_update_title_download_complete");
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   553
        notificationDialog.setTitle(tr);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   554
        tr
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   555
                = hbTrId(
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   556
                        "txt_device_update_dblist_product_code_val_download_comple").arg(
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   557
                        m_appname);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   558
        notificationDialog.setText(tr);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   559
        notificationDialog.show();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   560
        }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   561
    else
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   562
        {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   563
        bringServerToForeground();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   564
        HbDocumentLoader loader;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   565
        bool ok = false;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   566
        loader.load(":/xml/error_notes.docml", &ok);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   567
        QString val;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   568
        // Exit if the file format is invalid
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   569
        Q_ASSERT_X(ok, "Device Manager", "Invalid docml file");
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   570
        m_Dialog = qobject_cast<HbDialog*> (loader.findWidget(
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   571
                "dialog"));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   572
        HbLabel* label = qobject_cast<HbLabel*> (loader.findWidget(
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   573
                "heading_text"));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   574
        val = hbTrId("txt_device_update_title_download_complete");
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   575
        label->setPlainText(val);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   576
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   577
        val = hbTrId("txt_device_update_dblist_product_code_val_download_comple").arg(m_appname);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   578
        label = qobject_cast<HbLabel*> (loader.findWidget("content_text"));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   579
        label->setPlainText(val);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   580
        m_OkButton = qobject_cast<HbAction*> (loader.findObject(
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   581
                "qtl_dialog_softkey_2_left"));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   582
        val = hbTrId("txt_common_button_ok");
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   583
        m_OkButton->setText(val);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   584
        
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   585
        m_Dialog->setTimeout(HbPopup::ContextMenuTimeout);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   586
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   587
        m_Dialog->open(this, SLOT(successSlot(HbAction*)));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   588
        CDialogWait* wait = CDialogWait::NewL();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   589
        registerStatus(wait->iStatus);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   590
        RDEBUG_2("AppMgmtNotifier::Start before StartWait (%d)", wait->iStatus.Int());
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   591
        wait->StartWait();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   592
        delete wait;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   593
        }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   594
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   595
void AppMgmtNotifier::registerStatus(TRequestStatus &stat)
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   596
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   597
    RDEBUG("registering request status");
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   598
    iStat = &stat;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   599
    stat = KRequestPending;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   600
    RDEBUG_2("stat = %d",stat.Int() );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   601
    RDEBUG("registering request status end");
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   602
    }