--- a/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandlersilent.cpp Mon Jul 26 18:52:42 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandlersilent.cpp Fri Aug 06 10:59:22 2010 +0300
@@ -20,6 +20,7 @@
#include "sisxsifpluginerrorhandler.h" // CSisxSifPluginErrorHandler
#include "sisxsifplugin.pan" // Panic codes
#include "sisxsifcleanuputils.h" // CleanupResetAndDestroyPushL
+#include "sisxsifpluginerrors.h" // Error codes
using namespace Usif;
@@ -54,9 +55,10 @@
// ---------------------------------------------------------------------------
//
TBool CSisxSifPluginUiHandlerSilent::DisplayTextL( const Swi::CAppInfo& /*aAppInfo*/,
- Swi::TFileTextOption /*aOption*/, const TDesC& /*aText*/ )
+ Swi::TFileTextOption aOption, const TDesC& aText )
{
TBool okToContinue = EFalse;
+
if( iInstallParams )
{
switch( iInstallParams->PackageInfo() )
@@ -65,13 +67,33 @@
okToContinue = ETrue;
break;
case EUserConfirm:
- // TODO: EPolicyUserConfirm
+ switch( aOption )
+ {
+ case Swi::EInstFileTextOptionContinue:
+ ShowQuestionWithContinueL( aText );
+ okToContinue = ETrue;
+ break;
+ case Swi::EInstFileTextOptionSkipOneIfNo:
+ okToContinue = ShowQuestionL( aText );
+ break;
+ case Swi::EInstFileTextOptionAbortIfNo:
+ case Swi::EInstFileTextOptionExitIfNo:
+ okToContinue = ShowQuestionL( aText );
+ break;
+ case Swi::EInstFileTextOptionForceAbort:
+ ShowQuestionWithContinueL( aText );
+ break;
+ default:
+ break;
+ }
break;
case ENotAllowed:
default:
+ SetErrorL( KErrPermissionDenied, ESifUiNeedsPackageInfoParameter, aText );
break;
}
}
+
return okToContinue;
}
@@ -82,7 +104,7 @@
void CSisxSifPluginUiHandlerSilent::DisplayErrorL( const Swi::CAppInfo& /*aAppInfo*/,
Swi::TErrorDialog aType, const TDesC& aParam )
{
- SetDisplayErrorL( aType, aParam );
+ SetErrorSwiErrorL( aType, aParam );
}
// ---------------------------------------------------------------------------
@@ -93,6 +115,7 @@
const RPointerArray<TDesC>& /*aComponents*/ )
{
TBool okToContinue = EFalse;
+
if( iInstallParams )
{
switch( iInstallParams->AllowAppBreakDependency() )
@@ -103,9 +126,11 @@
case EUserConfirm:
case ENotAllowed:
default:
+ SetErrorL( KErrPermissionDenied, ESifUiNeedsAllowAppBreakDependencyParameter );
break;
}
}
+
return okToContinue;
}
@@ -117,6 +142,7 @@
const RPointerArray<TDesC>& /*aAppNames*/ )
{
TBool okToContinue = EFalse;
+
if( iInstallParams )
{
switch( iInstallParams->AllowAppShutdown() )
@@ -127,9 +153,11 @@
case EUserConfirm:
case ENotAllowed:
default:
+ SetErrorL( KErrPermissionDenied, ESifUiNeedsAllowAppShutdownParameter );
break;
}
}
+
return okToContinue;
}
@@ -138,9 +166,10 @@
// ---------------------------------------------------------------------------
//
TBool CSisxSifPluginUiHandlerSilent::DisplayQuestionL( const Swi::CAppInfo& /*aAppInfo*/,
- Swi::TQuestionDialog aQuestion, const TDesC& /*aDes*/ )
+ Swi::TQuestionDialog aQuestion, const TDesC& aDes )
{
TBool okToContinue = EFalse;
+
switch( aQuestion )
{
case Swi::EQuestionIncompatible:
@@ -157,6 +186,10 @@
break;
}
}
+ if( !okToContinue )
+ {
+ SetErrorL( KErrPermissionDenied, ESifUiNeedsAllowIncompatibleParameter, aDes );
+ }
break;
case Swi::EQuestionOverwriteFile:
@@ -173,11 +206,17 @@
break;
}
}
+ if( !okToContinue )
+ {
+ SetErrorL( KErrPermissionDenied, ESifUiNeedsAllowOverwriteParameter, aDes );
+ }
break;
default:
+ SetErrorL( KErrNotSupported, KErrNotSupported, aDes );
break;
}
+
return okToContinue;
}
@@ -201,6 +240,7 @@
const TCapabilitySet& /*aCapabilitySet*/ )
{
TBool okToContinue = EFalse;
+
if( iInstallParams )
{
switch( iInstallParams->GrantCapabilities() )
@@ -211,9 +251,11 @@
case EUserConfirm:
case ENotAllowed:
default:
+ SetErrorL( KErrPermissionDenied, ESifUiNeedsGrantCapabilitiesParameter );
break;
}
}
+
return okToContinue;
}
@@ -478,9 +520,12 @@
// ---------------------------------------------------------------------------
//
void CSisxSifPluginUiHandlerSilent::DisplayCannotOverwriteFileL( const Swi::CAppInfo& /*aAppInfo*/,
- const Swi::CAppInfo& /*aInstalledAppInfo*/, const TDesC& /*aFileName*/ )
+ const Swi::CAppInfo& /*aInstalledAppInfo*/, const TDesC& aFileName )
{
- // TODO: error handling
+ // TODO: localized UI string needed: "The package tries to overwrite file '%1' it does not own."
+ TName detailsString;
+ detailsString.Format( _L("The package tries to overwrite file '%S' it does not own."), &aFileName );
+ SetErrorL( KErrPermissionDenied, ESifUiCannotOverwriteFile, detailsString );
}
// ---------------------------------------------------------------------------
@@ -492,6 +537,7 @@
TVersion /*aWantedVersionTo*/, TVersion /*aInstalledVersion*/ )
{
TBool okToContinue = EFalse;
+
if( iInstallParams )
{
switch( iInstallParams->AllowAppBreakDependency() )
@@ -505,6 +551,12 @@
break;
}
}
+
+ if( !okToContinue )
+ {
+ SetErrorL( KErrSifMissingDependencies, 0, KNullDesC );
+ }
+
return okToContinue;
}