diff -r a6d55a2e75be -r 782e3408c2ab homescreensrv_plat/sapi_actionhandler/actionhandlerplugins/src/ahpapplauncher.cpp --- a/homescreensrv_plat/sapi_actionhandler/actionhandlerplugins/src/ahpapplauncher.cpp Fri Mar 26 13:00:55 2010 +0200 +++ b/homescreensrv_plat/sapi_actionhandler/actionhandlerplugins/src/ahpapplauncher.cpp Fri Apr 16 14:45:49 2010 +0300 @@ -77,7 +77,7 @@ TInt errCode(KErrArgument); RBuf launchMethod; CleanupClosePushL( launchMethod ); - + if ( !ExtractDesL( aMap, launchMethod, KLaunchMethod ) ) { if ( !launchMethod.CompareF( KLaunchMethodValueCmdLine ) ) @@ -90,8 +90,8 @@ errCode = ExecuteApaMessageL( aMap ); } } - - CleanupStack::PopAndDestroy( &launchMethod ); + + CleanupStack::PopAndDestroy( &launchMethod ); return errCode; } @@ -133,19 +133,19 @@ // --------------------------------------------------------------------------- // Executes provided apa message action // --------------------------------------------------------------------------- -// +// TInt CAHAppLauncher::ExecuteApaMessageL( const CLiwMap* aMap ) { TInt errCode(KErrArgument); TUid appUid= TUid::Null( ); if ( !ExtractUidL( aMap, appUid, KApplicationUid ) ) { - TApaTaskList taskList( iEnv->WsSession() ); + TApaTaskList taskList( iEnv->WsSession() ); TApaTask task = taskList.FindApp( appUid ); if ( task.Exists( ) ) { TUid messageUid= TUid::Null( ); - + RBuf8 additionalData; CleanupClosePushL( additionalData ); if ( !ExtractUidL( aMap, messageUid, KMessageUid ) @@ -153,7 +153,7 @@ { errCode = task.SendMessage( messageUid, additionalData ); } - CleanupStack::PopAndDestroy( &additionalData ); + CleanupStack::PopAndDestroy( &additionalData ); } else { // app not yet running @@ -170,7 +170,7 @@ errCode = StartAppL( aMap ); } } - CleanupStack::PopAndDestroy( &launchMethod ); + CleanupStack::PopAndDestroy( &launchMethod ); } } return errCode; @@ -179,14 +179,14 @@ // --------------------------------------------------------------------------- // Start document // --------------------------------------------------------------------------- -// +// TInt CAHAppLauncher::StartDocumentL( const CLiwMap* aMap ) { TInt errCode(KErrArgument); TUid appUid= TUid::Null( ); RBuf documentNameValue; CleanupClosePushL( documentNameValue ); - if ( !ExtractUidL( aMap, appUid, KApplicationUid ) + if ( !ExtractUidL( aMap, appUid, KApplicationUid ) && !ExtractDesL( aMap, documentNameValue, KDocumentName ) ) { RApaLsSession appArcSession; @@ -202,7 +202,7 @@ // --------------------------------------------------------------------------- // Starts application // --------------------------------------------------------------------------- -// +// TInt CAHAppLauncher::StartAppL( const CLiwMap* aMap ) { TInt errCode(KErrArgument); @@ -294,7 +294,7 @@ } // --------------------------------------------------------------------------- -// +// // --------------------------------------------------------------------------- // TInt CAHAppLauncher::ExtractDesL( const CLiwMap* aMap, @@ -306,17 +306,23 @@ TPtrC tempString( KNullDesC ); if ( aMap->FindL( aMapName, variant ) ) { - variant.Get( tempString ); - aString.ReAllocL( tempString.Length( ) ); - aString.Append( tempString ); - errCode = KErrNone; + if ( variant.Get( tempString ) ) + { + aString.ReAllocL( tempString.Length( ) ); + aString.Append( tempString ); + errCode = KErrNone; + } + else + { + errCode = KErrCorrupt; + } } - CleanupStack::PopAndDestroy( &variant ); + CleanupStack::PopAndDestroy( &variant ); return errCode; } - + // --------------------------------------------------------------------------- -// +// // --------------------------------------------------------------------------- // TInt CAHAppLauncher::ExtractDes8L( const CLiwMap* aMap, @@ -328,17 +334,23 @@ TPtrC8 tempString( KNullDesC8 ); if ( aMap->FindL( aMapName, variant ) ) { - variant.Get( tempString ); - aString.ReAllocL( tempString.Length( ) ); - aString.Append( tempString ); - errCode = KErrNone; + if ( variant.Get( tempString ) ) + { + aString.ReAllocL( tempString.Length( ) ); + aString.Append( tempString ); + errCode = KErrNone; + } + else + { + errCode = KErrCorrupt; + } } - CleanupStack::PopAndDestroy( &variant ); + CleanupStack::PopAndDestroy( &variant ); return errCode; - } + } // --------------------------------------------------------------------------- -// +// // --------------------------------------------------------------------------- // TInt CAHAppLauncher::ExtractUidL( const CLiwMap* aMap, TUid& aUid, @@ -351,16 +363,22 @@ variant.PushL( ); if ( aMap->FindL( aMapName, variant ) ) { - variant.Get( temp ); - aUid = TUid::Uid( temp ); - errCode = KErrNone; + if ( variant.Get( temp ) ) + { + aUid = TUid::Uid( temp ); + errCode = KErrNone; + } + else + { + errCode = KErrCorrupt; + } } CleanupStack::PopAndDestroy( &variant ); return errCode; } // --------------------------------------------------------------------------- -// +// // --------------------------------------------------------------------------- // TInt CAHAppLauncher::ExtractViewIdL( const CLiwMap* aMap, TVwsViewId& aViewId ) @@ -370,13 +388,25 @@ TLiwVariant variant; if ( aMap->FindL( KViewId, variant ) ) { - variant.Get( aViewId.iViewUid.iUid ); - variant.Reset( ); - if ( aMap->FindL( KViewAppUid, variant ) ) + if ( variant.Get( aViewId.iViewUid.iUid ) ) { - variant.Get( aViewId.iAppUid.iUid ); variant.Reset( ); - errCode = KErrNone; + if ( aMap->FindL( KViewAppUid, variant ) ) + { + if ( variant.Get( aViewId.iAppUid.iUid ) ) + { + variant.Reset( ); + errCode = KErrNone; + } + else + { + errCode = KErrCorrupt; + } + } + } + else + { + errCode = KErrCorrupt; } } @@ -384,7 +414,7 @@ } // --------------------------------------------------------------------------- -// +// // --------------------------------------------------------------------------- // TApaCommand CAHAppLauncher::GetCommandL( const CLiwMap* aMap ) @@ -403,4 +433,4 @@ return command; } -// End of file +// End of file