Submitting following changes -
AuthApps for Last.fm and Twitter added
API for checking ServiceAuthorization added for SMFCredMgrClient
API added for forcefully removing credential details from SMFCredMgr
Extra argument checks in SMfClient APIs
APIs for service login and logout from SMFClient
Redundant members removed from SmfServerSymbian
DSM bug fixes
Test Apps included
#include "Mainwindow.h"
#include <QUrl>
#include <QDebug>
#include <QImage>
#include <QVariant>
#include <QtGui>
#include <QDataStream>
#include <smfprovider.h>
#include <qcontactguid.h>
/*#ifndef TEST_FLICKR
#define TEST_FLICKR
#define PROVIDER_NAME "Flickr"
*/
//Test Cases
/*
#define TEST_CASE_FLCRAlbums
#define TEST_CASE_FLCRUpload*/
//#define TEST_CASE_FLCRPictures
//#define TEST_CASE_FLCRMultiUpload
//#define TEST_CASE_FLCRDescription
//#define TEST_CASE_FLCRPostComment
//#endif
/*
*/
#ifndef TEST_FACEBOOK
#define TEST_FACEBOOK
#define PROVIDER_NAME "Facebook"
#define TEST_CASE_FBFrndActvities
#endif
/*
#ifndef TEST_LastFm
#define TEST_LastFm
#define PROVIDER_NAME "last.fm"
#endif
#ifndef TEST_LyricsFly
#define TEST_LyricsFly
#define PROVIDER_NAME "Last.fm"
#endif
*/
MainWindow::MainWindow(QWidget *parent):QWidget(parent)
{
pB = new QPushButton("Start Test Application",this);
QObject::connect(pB,SIGNAL(clicked()),this,SLOT(StartTesting()));
}
MainWindow::~MainWindow()
{
}
void MainWindow::StartTesting()
{
/*#ifdef TEST_FLICKR
TestFlickrAPIS();
#endif
*/
#ifdef TEST_FACEBOOK
TestFaceBookAPIS();
#endif
}
void MainWindow::TestFlickrAPIS()
{
SmfClient m_smf;
QList<SmfProvider> *providerList = m_smf.GetServices("org.symbian.smf.client.gallery");
qDebug() <<"SmfGallery::get services "<<providerList->length() ;
qDebug()<<"client.GetServices returned a list with count = "<<providerList->count();
SmfError error =(SmfError) 100;
QString str = m_smf.errorString(error);
qDebug() << "SmfClient::error string returned " << str;
foreach(SmfProvider provider, *providerList)
{
if(PROVIDER_NAME == provider.serviceName())
{
qDebug()<<"Plugin for flickr found";
pSmfGallery = new SmfGallery(&provider);
#ifdef TEST_CASE_FLCRUpload
TEST_CASE_FLCRUpload_func(pSmfGallery);
#endif
#ifdef TEST_CASE_FLCRMultiUpload
TEST_CASE_FLCRMultiUpload_func(pSmfGallery);
#endif
#ifdef TEST_CASE_FLCRDescription
TEST_CASE_FLCRGetDescription_func(pSmfGallery);
#endif
#ifdef TEST_CASE_FLCRPostComment
TEST_CASE_FLCRPostComment_func(pSmfGallery);
#endif
#ifdef TEST_CASE_FLCRPictures
TEST_CASE_FLCRGetPictures_func(pSmfGallery);
#endif
#ifdef TEST_CASE_FLCRAlbums
TEST_CASE_FLCRGetAlbums_func(pSmfGallery);
#endif
}
}
}
void MainWindow::TestFaceBookAPIS()
{
SmfClient m_smf;
QList <SmfProvider> *services = m_smf.GetServices("org.symbian.smf.plugin.activity.fetcher");
qDebug() << "SmfClient::GetServices returned " << services->length() << " services.";
foreach(SmfProvider provider, *services)
{
if(PROVIDER_NAME == provider.serviceName())
{
qDebug()<<"Plugin for Facebook found";
activityFetcher = new SmfActivityFetcher(&provider);
#ifdef TEST_CASE_FBFrndActvities
TEST_CASE_FBFriendsActivities_func(activityFetcher);
#endif
}
}
}
void MainWindow::TEST_CASE_FLCRUpload_func(SmfGallery *pSmfGallery)
{
SmfPictureAlbum smfPictureAlbum;
SmfPicture smfImage;
smfImage.setPicture(QImage("C:\\data\\4.jpg","JPG"));
bool ret = connect(pSmfGallery,SIGNAL(uploadFinished(QList<SmfError> )),
this,SLOT(uploadFinishedSlot(QList<SmfError> )));
pSmfGallery->upload(&smfImage,&smfPictureAlbum);
qDebug()<<"SmfGallery::upload picture ";
}
void MainWindow::TEST_CASE_FLCRMultiUpload_func(SmfGallery *pSmfGallery)
{
SmfPictureAlbum smfPictureAlbum;
smfPictureAlbum.setId("72157624246208730");
SmfPicture smfPicture1,smfPicture2;
smfPicture1.setPicture(QImage("C:\\data\\Cyber_towers.jpg","jpg"));
smfPicture2.setPicture(QImage("C:\\data\\test.jpg","jpg"));
QList<SmfPicture> smfPicList;
smfPicList.append(smfPicture1);
smfPicList.append(smfPicture2);
bool ret = connect(pSmfGallery,SIGNAL(uploadFinished(QList<SmfError> )),
this,SLOT(uploadFinishedSlot(QList<SmfError> )));
pSmfGallery->upload(&smfPicList,&smfPictureAlbum);
qDebug()<<"SmfGallery::upload picture List ";
}
void MainWindow::TEST_CASE_FLCRGetDescription_func(SmfGallery *pSmfGallery)
{
SmfPicture smfImage;
smfImage.setId("5058988107");
SmfError err = pSmfGallery->description(smfImage);
bool ret = QObject::connect(pSmfGallery,SIGNAL(descriptionAvailable(QString,SmfError)),
this,SLOT(descSlot(QString,SmfError )));
qDebug()<<"SmfGallery::get description ";
}
void MainWindow::TEST_CASE_FLCRPostComment_func(SmfGallery *pSmfGallery)
{
SmfPicture smfImage;
smfImage.setId("5058988107");
SmfComment smfComment;
smfComment.setText("Hello Symbian");
SmfError err = pSmfGallery->postComment(smfImage,smfComment);
bool ret = QObject::connect(pSmfGallery,SIGNAL(uploadFinished(QList<SmfError> )),
this,SLOT(uploadFinishedSlot(QList<SmfError> )));
qDebug()<<"SmfGallery::Post a Comment ";
}
void MainWindow::TEST_CASE_FLCRGetPictures_func(SmfGallery *pSmfGallery)
{
QList<SmfPictureAlbum> smfAlbumList;
SmfPictureAlbum smfPictureAlbum;
smfPictureAlbum.setId("72157624966587095");
smfAlbumList.append(smfPictureAlbum);
int pageNum = 0, perPage = 0;
SmfError err = pSmfGallery->pictures(smfAlbumList,pageNum , perPage);
bool ret = connect(pSmfGallery,SIGNAL(picturesAvailable(SmfPictureList*, SmfError , SmfResultPage)),
this, SLOT(picturesAvailableSlot(SmfPictureList*, SmfError , SmfResultPage)));
qDebug()<<"SmfGallery::Get picture ";
}
void MainWindow::TEST_CASE_FLCRGetAlbums_func(SmfGallery *pSmfGallery)
{
SmfPictureAlbum smfPictureAlbum;
SmfPicture smfImage;
smfImage.setPicture(QImage("C:\\data\\4.jpg","JPG"));
bool ret = connect(pSmfGallery,SIGNAL(albumsAvailable(SmfPictureAlbumList*, SmfError , SmfResultPage)),
this, SLOT(albumsAvailableSlot(SmfPictureAlbumList*, SmfError , SmfResultPage)));
QStringList names;
SmfContact user;
pSmfGallery->albums(names, &user,1,2);
qDebug()<<"SmfGallery::upload picture ";
}
void MainWindow::TEST_CASE_FBFriendsActivities_func(SmfActivityFetcher *actvityFetcher)
{
SmfContact m_contact;
QContactGuid guid;
guid.setGuid("100001376714970");
QVariant contactId = QVariant::fromValue<QContactGuid>(guid);
m_contact.setValue("Guid",contactId);
actvityFetcher->friendsActivities(m_contact,1,1);
bool ret = connect(actvityFetcher, SIGNAL(resultsAvailable(SmfActivityEntryList*, SmfError , SmfResultPage)),
this, SLOT(activitiesAvailableSlot(SmfActivityEntryList*, SmfError , SmfResultPage)));
qDebug()<<"connected"<<ret;
}
void MainWindow::albumsAvailableSlot(SmfPictureAlbumList* albums, SmfError error, SmfResultPage resultPage)
{
Q_UNUSED(resultPage);
qDebug()<<"Inside HomeView::albumsAvailable()";
m_albumsList = albums;
if(error)
{
SmfClient client;
QString errStr = client.errorString(error);
qDebug()<<"Error found, code = "<<error;
qDebug()<<"Error string is = "<<errStr;
return;
}
//display album details
qDebug()<<"Number of albums retrieved = "<<albums->count();
if(albums->count() == 0)
{
QString smferrString("No Albums");
return;
}
QStringList albumPicList;
QStringList albumNameList;
foreach(SmfPictureAlbum album, *m_albumsList)
{
qDebug()<<"Album name = "<<album.title();
qDebug()<<"Album description = "<<album.description();
qDebug()<<"Album pictureCount = "<<album.pictureCount();
qDebug()<<"Album id = "<<album.id();
}
}
void MainWindow::picturesAvailableSlot(SmfPictureList* picList, SmfError error, SmfResultPage resultPage)
{
Q_UNUSED(resultPage)
qDebug()<<"Inside HomeView::picturesAvailable()";
m_picList = picList;
if(error)
{
SmfClient client;
QString errStr = client.errorString(error);
qDebug()<<"Error found, code = "<<error;
qDebug()<<"Error string is = "<<errStr;
return;
}
//display pic description
qDebug()<<"Number of pic retrieved = "<<picList->count();
QMap<QString, QUrl> urlMap;
foreach(SmfPicture pic, *picList)
{
qDebug()<<"Photo title = "<<pic.title();
qDebug()<<"Photo posted date = "<<pic.postedDate();
qDebug()<<"Photo url = "<<pic.url();
qDebug()<<"Photo id = "<<pic.id();
}
}
void MainWindow::uploadFinishedSlot( QList<SmfError> error )
{
SmfClient m_smf;
QString str = m_smf.errorString(error.at(0));
qDebug()<<"upload finished";
qDebug()<<" SMF Error Code"<<str;
}
void MainWindow::descSlot(QString str,SmfError err )
{
SmfClient m_smf;
QString errstr = m_smf.errorString(err);
qDebug()<<"description string"<<str;
qDebug()<<" SMF Error Code"<<errstr;
}
void MainWindow::activitiesAvailableSlot(SmfActivityEntryList* activitiesList, SmfError error, SmfResultPage resultPage)
{
Q_UNUSED(resultPage)
qDebug()<<"Inside HomeView::activitiesAvailable()";
qDebug()<<"Number of activities retrieved = "<<activitiesList->count();
SmfClient client;
QString errStr = client.errorString(error);
qDebug()<<"Error found, code = "<<error;
qDebug()<<"Error string is = "<<errStr;
//display activity description
qDebug()<<"Number of activities retrieved = "<<activitiesList->count();
foreach(SmfActivityEntry activity, *activitiesList)
{
qDebug()<<"Activity author name = "<<activity.author().value("Name").value<QContactName>().firstName();
qDebug()<<"Activity title = "<<activity.title().title();
qDebug()<<"Activity details = "<<activity.details().description();
}
}