diff -r ff572005ac23 -r 1a2a00e78665 homescreensrv_plat/sapi_homescreenplugin/hspsservice/src/hspspersonalisationservice.cpp --- a/homescreensrv_plat/sapi_homescreenplugin/hspsservice/src/hspspersonalisationservice.cpp Tue Jan 26 12:11:15 2010 +0200 +++ b/homescreensrv_plat/sapi_homescreenplugin/hspsservice/src/hspspersonalisationservice.cpp Tue Feb 02 00:23:10 2010 +0200 @@ -424,6 +424,35 @@ } } +// ----------------------------------------------------------------------------- +// Repaces a plugin in active application configuration +// ----------------------------------------------------------------------------- +EXPORT_C void CHspsPersonalisationService::RestoreConfigurationsL( + const TInt aAppUid, + const TBool aResetAllViews ) + { + ThspsServiceCompletedMessage ret = + iHspsClient->hspsRestoreConfigurations( aAppUid, aResetAllViews ); + if( ret != EhspsRestoreConfigurationsSuccess ) + { + // Get error code from the server process + ChspsResult* errorDetails = ChspsResult::NewL(); + CleanupStack::PushL( errorDetails ); + iHspsClient->GethspsResult( *errorDetails ); + + // Check if disk full error case. + if( errorDetails->iXuikonError == KErrDiskFull ) + { + User::Leave( KErrDiskFull ); + } + + CleanupStack::PopAndDestroy( errorDetails ); + + // Other error cases. + User::Leave( KErrGeneral ); + } + } + // --------------------------------------------------------------------------- // Hsps client service observer