diff -r 64e38f08e49c -r 47d84de1c893 emailuis/nmailui/src/nmapplication.cpp --- a/emailuis/nmailui/src/nmapplication.cpp Fri Sep 17 08:27:21 2010 +0300 +++ b/emailuis/nmailui/src/nmapplication.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -49,7 +49,9 @@ mQueryDialog(NULL), mBackButtonPressed(false), mApplicationHidden(false), - mErrorNoteTimer(NULL) + mErrorNoteTimer(NULL), + mActivation(NULL), + mActivityStorage(NULL) { // Load the translation file. QTranslator *translator = new QTranslator(this); @@ -60,9 +62,12 @@ installTranslator(translator); setApplicationName(hbTrId("txt_mail_title_mail")); + mActivation = new AfActivation(this); + mActivityStorage = new AfActivityStorage(this); + quint64 accountId = 0; QString activateId = this->activateId(); - if (activateReason() == Hb::ActivationReasonActivity && + if (mActivation->reason() == Af::ActivationReasonActivity && activateId.startsWith(NmActivityName) ) { QString accountIdString = activateId.mid(NmActivityName.length()); accountId = accountIdString.toULongLong(); @@ -102,7 +107,9 @@ mEffects = new NmUiEffects(*mMainWindow); - QObject::connect(this, SIGNAL(activate()), this, SLOT(activityActivated())); + QObject::connect( + mActivation, SIGNAL(activated(Af::ActivationReason, QString, QVariantHash)), + this, SLOT(activityActivated())); } @@ -161,6 +168,8 @@ delete mMainWindow; delete mAttaManager; delete mSettingsViewLauncher; + delete mActivityStorage; + delete mActivation; } @@ -252,6 +261,7 @@ currentView->viewReady(); emit applicationReady(); } + NM_TIMESTAMP("Application view ready."); } } @@ -394,7 +404,10 @@ taskSettings.setVisibility(false); // Remove also the mailbox item from the task switcher - activityManager()->removeActivity(NmActivityName); + bool ok = mActivityStorage->removeActivity(NmActivityName); + if(!ok) { + NM_COMMENT("Remove activity from Task Switcher failed."); + } } @@ -645,7 +658,10 @@ { NM_FUNCTION; - activityManager()->removeActivity(NmActivityName); + bool ok = mActivityStorage->removeActivity(NmActivityName); + if(!ok) { + NM_COMMENT("Remove activity from Task Switcher failed."); + } delete mSendServiceInterface; mSendServiceInterface = NULL; @@ -832,8 +848,8 @@ */ void NmApplication::updateActivity() { + bool ok(false); NmMailboxMetaData *meta = mUiEngine->mailboxById(mCurrentMailboxId); - // This will ensure that when service is started as a embedded service and a mail // process already exists the task activity will show the embedded service inside the // calling processes activity and the already running mail process in its own activity. @@ -845,11 +861,16 @@ metadata.insert(ActivityScreenshotKeyword, QPixmap::grabWidget(mainWindow(), mainWindow()->rect())); metadata.insert(ActivityApplicationName, meta->name()); metadata.insert(ActivityVisibility, true); - activityManager()->removeActivity(NmActivityName); - activityManager()->addActivity(NmActivityName, QVariant(), metadata); + ok = mActivityStorage->saveActivity(NmActivityName, QVariant(), metadata); + if(!ok) { + NM_COMMENT("Save activity to Task Switcher failed."); + } } else { - activityManager()->removeActivity(NmActivityName); + ok = mActivityStorage->removeActivity(NmActivityName); + if(!ok) { + NM_COMMENT("Remove activity from Task Switcher failed."); + } TsTaskSettings tasksettings; tasksettings.setVisibility(true); } @@ -863,7 +884,7 @@ { quint64 accountId(0); QString activateId = this->activateId(); - if (activateReason() == Hb::ActivationReasonActivity && + if (mActivation->reason() == Af::ActivationReasonActivity && activateId.startsWith(NmActivityName) ) { QString accountIdString = activateId.mid(NmActivityName.length()); accountId = accountIdString.toULongLong();