phonebookui/phonebookservices/tsrc/qtpbkservicestestapp/testpbkservices.cpp
changeset 24 0ba2181d7c28
child 27 de1630741fbe
equal deleted inserted replaced
0:e686773b3f54 24:0ba2181d7c28
       
     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 "testpbkservices.h"
       
    19 #include <cntservicescontact.h>
       
    20 #include <hbmessagebox.h>
       
    21 #include <hbdialog.h>
       
    22 #include <hblistwidget.h>
       
    23 #include <hblabel.h>
       
    24 #include <mobcntmodel.h>
       
    25 #include <hbaction.h>
       
    26 #include <hbmainwindow.h>
       
    27 #include <qtcontacts.h>
       
    28 #include <hbview.h>
       
    29 #include <QGraphicsLinearLayout>
       
    30 #include <QDebug>
       
    31 
       
    32 testPbkServices::testPbkServices(HbMainWindow *aParent)
       
    33 {
       
    34     mSndFetch=0;
       
    35     mSndEdit=0;
       
    36     mMainWindow=aParent;
       
    37     setParent(aParent);
       
    38 
       
    39 }
       
    40 
       
    41 testPbkServices::~testPbkServices()
       
    42 {
       
    43 
       
    44 }
       
    45 
       
    46 void testPbkServices::launchEditorNumber()
       
    47 {
       
    48     if (mSndEdit)
       
    49         {
       
    50         delete mSndEdit;
       
    51         mSndEdit=0;
       
    52         }
       
    53 
       
    54     mSndEdit = new XQServiceRequest("com.nokia.services.phonebookservices.Fetch", "editCreateNew(QString,QString)", false);
       
    55     connect(mSndEdit, SIGNAL(requestCompleted(QVariant)), this, SLOT(onEditCompleted(QVariant)));
       
    56 
       
    57     QString type = QContactPhoneNumber::DefinitionName;
       
    58     *mSndEdit << type;
       
    59     *mSndEdit << "1234567";
       
    60 
       
    61     QVariant retValue;
       
    62     bool res=mSndEdit->send(retValue);
       
    63 }
       
    64 
       
    65 void testPbkServices::launchEditorEmail()
       
    66 {
       
    67     if (mSndEdit)
       
    68         {
       
    69         delete mSndEdit;
       
    70         mSndEdit=0;
       
    71         }
       
    72 
       
    73     mSndEdit = new XQServiceRequest("com.nokia.services.phonebookservices.Fetch", "editCreateNew(QString,QString)", false);
       
    74     connect(mSndEdit, SIGNAL(requestCompleted(QVariant)), this, SLOT(onEditCompleted(QVariant)));
       
    75 
       
    76     QString type = QContactEmailAddress::DefinitionName;
       
    77     *mSndEdit << type;
       
    78     *mSndEdit << "email@mailprovider.com";
       
    79 
       
    80     QVariant retValue;
       
    81     bool res=mSndEdit->send(retValue);
       
    82 }
       
    83 
       
    84 void testPbkServices::launchEditorOnlineAccount()
       
    85 {
       
    86     if (mSndEdit)
       
    87         {
       
    88         delete mSndEdit;
       
    89         mSndEdit=0;
       
    90         }
       
    91 
       
    92     mSndEdit = new XQServiceRequest("com.nokia.services.phonebookservices.Fetch", "editCreateNew(QString,QString)", false);
       
    93     connect(mSndEdit, SIGNAL(requestCompleted(QVariant)), this, SLOT(onEditCompleted(QVariant)));
       
    94 
       
    95     QString type = QContactOnlineAccount::DefinitionName;
       
    96     *mSndEdit << type;
       
    97     *mSndEdit << "account@provider.com";
       
    98 
       
    99     QVariant retValue;
       
   100     bool res=mSndEdit->send(retValue);
       
   101 }
       
   102 
       
   103 void testPbkServices::launchUpdateEditorNumber()
       
   104 {
       
   105     if (mSndEdit)
       
   106         {
       
   107         delete mSndEdit;
       
   108         mSndEdit=0;
       
   109         }
       
   110 
       
   111     mSndEdit = new XQServiceRequest("com.nokia.services.phonebookservices.Fetch", "editUpdateExisting(QString,QString)", false);
       
   112     connect(mSndEdit, SIGNAL(requestCompleted(QVariant)), this, SLOT(onEditCompleted(QVariant)));
       
   113 
       
   114     QString type = QContactPhoneNumber::DefinitionName;
       
   115     *mSndEdit << type;
       
   116     *mSndEdit << "1234567";
       
   117 
       
   118     QVariant retValue;
       
   119     bool res=mSndEdit->send(retValue);
       
   120 }
       
   121 
       
   122 void testPbkServices::launchUpdateEditorEmail()
       
   123 {
       
   124     if (mSndEdit)
       
   125         {
       
   126         delete mSndEdit;
       
   127         mSndEdit=0;
       
   128         }
       
   129 
       
   130     mSndEdit = new XQServiceRequest("com.nokia.services.phonebookservices.Fetch", "editUpdateExisting(QString,QString)", false);
       
   131     connect(mSndEdit, SIGNAL(requestCompleted(QVariant)), this, SLOT(onEditCompleted(QVariant)));
       
   132 
       
   133     QString type = QContactEmailAddress::DefinitionName;
       
   134     *mSndEdit << type;
       
   135     *mSndEdit << "email@mailprovider.com";
       
   136 
       
   137     QVariant retValue;
       
   138     bool res=mSndEdit->send(retValue);
       
   139 }
       
   140 
       
   141 void testPbkServices::launchUpdateEditorOnlineAccount()
       
   142 {
       
   143     if (mSndEdit)
       
   144         {
       
   145         delete mSndEdit;
       
   146         mSndEdit=0;
       
   147         }
       
   148 
       
   149     mSndEdit = new XQServiceRequest("com.nokia.services.phonebookservices.Fetch", "editUpdateExisting(QString,QString)", false);
       
   150     connect(mSndEdit, SIGNAL(requestCompleted(QVariant)), this, SLOT(onEditCompleted(QVariant)));
       
   151 
       
   152     QString type = QContactOnlineAccount::DefinitionName;
       
   153     *mSndEdit << type;
       
   154     *mSndEdit << "account@provider.com";
       
   155 
       
   156     QVariant retValue;
       
   157     bool res=mSndEdit->send(retValue);
       
   158 }
       
   159 
       
   160 void testPbkServices::onEditCompleted(const QVariant& value)
       
   161 {
       
   162     mMainWindow->activateWindow();
       
   163     
       
   164     if (value.toBool())
       
   165     {
       
   166         HbMessageBox note;
       
   167         note.setTimeout(10000);
       
   168         note.setText("Contact saved");
       
   169         note.exec();
       
   170     }
       
   171     else
       
   172     {
       
   173         HbMessageBox note;
       
   174         note.setTimeout(10000);
       
   175         note.setText("Contact saving failed");
       
   176         note.exec();
       
   177     }
       
   178 }
       
   179 
       
   180 void testPbkServices::launchFetch()
       
   181 {
       
   182 
       
   183     if (mSndFetch)
       
   184         {
       
   185         delete mSndFetch;
       
   186         mSndFetch=0;
       
   187         }
       
   188 
       
   189     //XQServiceRequest snd("com.nokia.services.hbserviceprovider.Dialer","dial(QString)",true);
       
   190     mSndFetch = new XQServiceRequest("com.nokia.services.phonebookservices.Fetch", "fetch(QString,QString,QString)",false);
       
   191     connect(mSndFetch, SIGNAL(requestCompleted(QVariant)), this, SLOT(onRequestCompleted(QVariant)));
       
   192 
       
   193     *mSndFetch << "Non-filtered multi-fetch";
       
   194     *mSndFetch << KCntActionAll;
       
   195     *mSndFetch << KCntFilterDisplayAll;
       
   196 
       
   197     QVariant retValue;
       
   198     bool res=mSndFetch->send(retValue);
       
   199 
       
   200 }
       
   201 
       
   202 void testPbkServices::launchSmsFilteredFetch()
       
   203 {
       
   204 
       
   205     if (mSndFetch)
       
   206         {
       
   207         delete mSndFetch;
       
   208         mSndFetch=0;
       
   209         }
       
   210 
       
   211     //XQServiceRequest snd("com.nokia.services.hbserviceprovider.Dialer","dial(QString)",true);
       
   212     mSndFetch = new XQServiceRequest("com.nokia.services.phonebookservices.Fetch", "fetch(QString,QString,QString)",false);
       
   213     connect(mSndFetch, SIGNAL(requestCompleted(QVariant)), this, SLOT(onRequestCompleted(QVariant)));
       
   214 
       
   215     *mSndFetch << "Filtered multi-fetch";
       
   216     *mSndFetch << KCntActionSms;
       
   217     *mSndFetch << KCntFilterDisplayAll;
       
   218 
       
   219     QVariant retValue;
       
   220     bool res=mSndFetch->send(retValue);
       
   221 }
       
   222 
       
   223 void testPbkServices::launchEmailFilteredFetch()
       
   224 {
       
   225 
       
   226     if (mSndFetch)
       
   227         {
       
   228         delete mSndFetch;
       
   229         mSndFetch=0;
       
   230         }
       
   231     mSndFetch = new XQServiceRequest("com.nokia.services.phonebookservices.Fetch", "fetch(QString,QString,QString)",false);
       
   232     connect(mSndFetch, SIGNAL(requestCompleted(QVariant)), this, SLOT(onRequestCompleted(QVariant)));
       
   233 
       
   234     *mSndFetch << "Filtered multi-fetch";
       
   235     *mSndFetch << KCntActionEmail;
       
   236     *mSndFetch << KCntFilterDisplayAll;
       
   237 
       
   238     QVariant retValue;
       
   239     bool res=mSndFetch->send(retValue);
       
   240 }
       
   241 
       
   242 
       
   243 
       
   244 void testPbkServices::onRequestCompleted(const QVariant& value)
       
   245 {
       
   246 
       
   247     mMainWindow->activateWindow();
       
   248 
       
   249     CntServicesContactList retValue;
       
   250     retValue=qVariantValue<CntServicesContactList>(value);
       
   251 
       
   252 
       
   253     if (retValue.count() == 0)
       
   254     {
       
   255         HbMessageBox note;
       
   256         note.setTimeout(10000);
       
   257         note.setText("Nothing returned");
       
   258         note.exec();
       
   259     }
       
   260 
       
   261     else
       
   262     {
       
   263         HbListWidget *listWidget = new HbListWidget();
       
   264         for(int i = 0; i < retValue.count(); i++ )
       
   265             {
       
   266             QString name      = retValue[i].mDisplayName;
       
   267             listWidget->addItem("name:" );
       
   268             listWidget->addItem(name);
       
   269 
       
   270             QString number    = retValue[i].mPhoneNumber;
       
   271             if (number!="")
       
   272                 {
       
   273                 listWidget->addItem("number:");
       
   274                 listWidget->addItem(number);
       
   275                 }
       
   276 
       
   277             QString emailAddress    = retValue[i].mEmailAddress;
       
   278             if (emailAddress!="")
       
   279                 {
       
   280                 listWidget->addItem("emailAddress:");
       
   281                 listWidget->addItem(emailAddress);
       
   282                 }
       
   283 
       
   284 
       
   285             QString contactId = QString("id: %1").arg(retValue[i].mContactId);
       
   286             listWidget->addItem( contactId );
       
   287 
       
   288             }
       
   289             HbDialog popup;
       
   290 
       
   291             // Set dismiss policy that determines what tap events will cause the popup
       
   292             // to be dismissed
       
   293             popup.setDismissPolicy(HbDialog::NoDismiss);
       
   294 
       
   295             // Set the label as heading widget
       
   296             popup.setHeadingWidget(new HbLabel(tr("Contact")));
       
   297 
       
   298             // Set a list widget as content widget in the popup
       
   299             popup.setContentWidget(listWidget);
       
   300 
       
   301             // Sets the primary action and secondary action
       
   302             //popup.setPrimaryAction(new HbAction(tr("Ok"),&popup));
       
   303             //popup.setSecondaryAction(new HbAction(tr("Cancel"),&popup));
       
   304 
       
   305             // Launch popup syncronously
       
   306             popup.setTimeout(15000);
       
   307             popup.exec();
       
   308     }
       
   309 
       
   310 }
       
   311 
       
   312 
       
   313 Q_IMPLEMENT_USER_METATYPE(CntServicesContact)
       
   314 Q_IMPLEMENT_USER_METATYPE_NO_OPERATORS(CntServicesContactList)