diff -r 45459746d5e8 -r 27f2d7aec52a ui/viewmanagement/statehandler/src/glxstatemanager.cpp --- a/ui/viewmanagement/statehandler/src/glxstatemanager.cpp Mon Sep 27 15:13:20 2010 +0530 +++ b/ui/viewmanagement/statehandler/src/glxstatemanager.cpp Wed Oct 06 14:49:39 2010 +0530 @@ -22,8 +22,10 @@ #include #include #include -#include #include +#include +#include + //user includes #include "glxstatemanager.h" @@ -63,13 +65,17 @@ mActionHandler( NULL ), mTNObserver ( NULL ), isProgressbarRunning ( false ), - mFetcherFilterType ( EGlxFetcherFilterNone ) + mFetcherFilterType ( EGlxFetcherFilterNone ), + mActivityStorage (NULL), + mActivation (NULL) { qDebug("GlxStateManager::GlxStateManager"); PERFORMANCE_ADV ( d1, "view manager creation time") { mViewManager = new GlxViewManager(); } mTNObserver = new GlxTNObserver(); + mActivityStorage = new AfActivityStorage(); + mActivation = new AfActivation(); connect ( this, SIGNAL( setupItemsSignal() ), this, SLOT( setupItems() ), Qt::QueuedConnection ); connect ( mViewManager, SIGNAL(actionTriggered( qint32 )), this, SLOT(actionTriggered( qint32 )), Qt::QueuedConnection ); @@ -80,7 +86,7 @@ void GlxStateManager::enterMarkingMode() { - mViewManager->enterMarkingMode(mCurrentState->id()); + mViewManager->enterMarkingMode( mCurrentState->id(), mCurrentState->commandId() ); } void GlxStateManager::exitMarkingMode() @@ -137,9 +143,10 @@ qDebug("GlxStateManager::launchApplication"); bool activitySuccess = false; //To:Do use it in future once performance code is removed nextState(GLX_GRIDVIEW_ID, ALL_ITEM_S) - HbApplication* app = qobject_cast(qApp); - if(app->activateReason() == Hb::ActivationReasonActivity) { + + if( mActivation->reason() == Af::ActivationReasonActivity ) { activitySuccess = launchActivity(); + qDebug("GlxStateManager::launchApplication as Activity"); } if( !activitySuccess ) { @@ -158,8 +165,8 @@ mTNObserver->startTNObserving() ; } - HbActivityManager* activityManager = app->activityManager(); - bool ok = activityManager->removeActivity("PhotosMainView"); + + bool ok = mActivityStorage->removeActivity("PhotosMainView"); if ( !ok ) { qDebug("launchapplication::Remove activity failed" ); @@ -168,19 +175,17 @@ bool GlxStateManager::launchActivity() { - HbApplication* app = qobject_cast(qApp); - bool ok = app->activityManager()->waitActivity(); - if ( !ok ) - { - qDebug("subscribing to activity manager failed" ); - } - QVariant data = app->activityManager()->activityData( "PhotosMainView" ); + QVariant data = mActivityStorage->activityData("PhotosMainView"); QByteArray serializedModel = data.toByteArray(); QDataStream stream(&serializedModel, QIODevice::ReadOnly); //Fetch the data from the activity Manager stream >> mSaveActivity; - qint32 stateId = mSaveActivity.value("ID"); + + if(!validateActivityData()) + return false; + + qint32 stateId = mSaveActivity.value("ID"); mCurrentState = createState(stateId); mCurrentState->setState( mSaveActivity.value("InternalState") ); createModel( stateId); @@ -193,6 +198,26 @@ return true; } +bool GlxStateManager::validateActivityData() +{ + + if( (mSaveActivity.value("ID") == GLX_GRIDVIEW_ID) || + ( (mSaveActivity.value("ID") == GLX_LISTVIEW_ID) && (mSaveActivity.value("InternalState") == ALL_ITEM_S) ) || + (mSaveActivity.value("VisibleIndex") >= 0 ) ) { + qDebug("GlxStateManager::validation passed"); + return true; + } + + qDebug("GlxStateManager::Validation failed"); + qDebug("VIEW : %u", mSaveActivity.value("ID")); + qDebug("SUB STATE: %u", mSaveActivity.value("InternalState")); + qDebug("Visible Index: %u", mSaveActivity.value("VisibleIndex")); + + return false; + +} + + void GlxStateManager::launchFromExternal() { qDebug("GlxStateManager::launchFromExternal"); @@ -276,7 +301,7 @@ mSaveActivity.insert("VisibleIndex",0); } - HbActivityManager* activityManager = qobject_cast(qApp)->activityManager(); + QVariantHash metadata; HbMainWindow *window = hbInstance->allMainWindows().first(); metadata.insert("screenshot", QPixmap::grabWidget(window, window->rect())); @@ -284,11 +309,11 @@ QByteArray serializedModel; QDataStream stream(&serializedModel, QIODevice::WriteOnly | QIODevice::Append); stream << mSaveActivity; + bool ok = mActivityStorage->saveActivity("PhotosMainView", serializedModel, metadata); - bool ok = activityManager->addActivity("PhotosMainView", serializedModel, metadata); if ( !ok ) { - qDebug("SaveData::Add activity failed" ); + qDebug("SaveData::Save activity failed" ); } } } @@ -794,6 +819,8 @@ cleanAllModel(); mSaveActivity.clear(); delete mActionHandler; + delete mActivation; + delete mActivityStorage; qDebug("GlxStateManager::~GlxStateManager delete Model"); disconnect ( mViewManager, SIGNAL(actionTriggered(qint32 )), this, SLOT(actionTriggered(qint32 )) );