diff -r 84197e66a4bd -r 35b64624a9e7 messagingapp/msgui/msgapp/src/msgactivityhandler.cpp --- a/messagingapp/msgui/msgapp/src/msgactivityhandler.cpp Fri Jun 11 13:35:48 2010 +0300 +++ b/messagingapp/msgui/msgapp/src/msgactivityhandler.cpp Wed Jun 23 18:09:17 2010 +0300 @@ -25,8 +25,10 @@ #include #include +const int INVALID_MSGID = -1; // Activity Names const QString ListViewActivityName("MsgConversationsList"); +const QString EditorActivityName("MsgCreate"); //----------------------------------------------------------------------------- // MsgActivityHandler::MsgActivityHandler @@ -55,18 +57,35 @@ { HbActivityManager* activityManager = qobject_cast(qApp)->activityManager(); - - if( mMainWindow->viewManager()->currentView()== MsgBaseView::CLV) + + int currentView = mMainWindow->viewManager()->currentView(); + int msgId = INVALID_MSGID; + if((currentView == MsgBaseView::CV) || (currentView== MsgBaseView::UNIEDITOR)) + { + msgId = mMainWindow->viewManager()->saveContentToDraft(); + } + + // get a screenshot for saving to the activity manager + QVariantHash metadata; + metadata.insert("screenshot", + QPixmap::grabWidget(mMainWindow, mMainWindow->rect())); + + // save any data necessary to save the state + QByteArray serializedActivity; + QDataStream stream(&serializedActivity, + QIODevice::WriteOnly | QIODevice::Append); + + if( msgId != INVALID_MSGID) { - // get a screenshot for saving to the activity manager - QVariantHash metadata; - metadata.insert("screenshot", - QPixmap::grabWidget(mMainWindow, mMainWindow->rect())); + stream << EditorActivityName; + stream << msgId; - // save any data necessary to save the state - QByteArray serializedActivity; - QDataStream stream(&serializedActivity, - QIODevice::WriteOnly | QIODevice::Append); + // add the activity to the activity manager + bool ok = activityManager->addActivity(EditorActivityName, + serializedActivity, metadata); + } + else + { stream << ListViewActivityName; // add the activity to the activity manager @@ -76,13 +95,22 @@ } //----------------------------------------------------------------------------- -// MsgActivityHandler::handleActivity +// MsgActivityHandler::parseActivityData // @see header //----------------------------------------------------------------------------- -void MsgActivityHandler::handleActivity(const QVariant &activityData) +int MsgActivityHandler::parseActivityData(const QVariant &activityData) { - // To be handled later - Q_UNUSED(activityData) + QByteArray serializedModel = activityData.toByteArray(); + QDataStream stream(&serializedModel, QIODevice::ReadOnly); + + QString activityName; + int msgId = INVALID_MSGID; + stream >> activityName; + if( activityName == EditorActivityName) + { + stream >> msgId; + } + return msgId; } //----------------------------------------------------------------------------- @@ -94,6 +122,7 @@ HbActivityManager* activityManager = qobject_cast(qApp)->activityManager(); activityManager->removeActivity(ListViewActivityName); + activityManager->removeActivity(EditorActivityName); } //-----------------------------------------------------------------------------