appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandlersilent.cpp
branchRCL_3
changeset 25 7333d7932ef7
equal deleted inserted replaced
24:5cc91383ab1e 25:7333d7932ef7
       
     1 /*
       
     2 * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description: Native SISX SIF (Software Install Framework) plugin.
       
    15 *
       
    16 */
       
    17 
       
    18 #include "sisxsifpluginuihandlersilent.h"   // CSisxSifPluginUiHandlerSilent
       
    19 #include "sisxsifplugininstallparams.h"     // CSisxSifPluginInstallParams
       
    20 #include "sisxsifpluginerrorhandler.h"      // CSisxSifPluginErrorHandler
       
    21 #include "sisxsifplugin.pan"                // Panic codes
       
    22 #include "sisxsifcleanuputils.h"            // CleanupResetAndDestroyPushL
       
    23 #include "sisxsifpluginerrors.h"            // Error codes
       
    24 
       
    25 using namespace Usif;
       
    26 
       
    27 
       
    28 // ======== MEMBER FUNCTIONS ========
       
    29 
       
    30 // ---------------------------------------------------------------------------
       
    31 // CSisxSifPluginUiHandlerSilent::NewL()
       
    32 // ---------------------------------------------------------------------------
       
    33 //
       
    34 CSisxSifPluginUiHandlerSilent* CSisxSifPluginUiHandlerSilent::NewL( RFs& aFs,
       
    35         CSisxSifPluginErrorHandler& aErrorHandler )
       
    36     {
       
    37     CSisxSifPluginUiHandlerSilent *self = new( ELeave ) CSisxSifPluginUiHandlerSilent(
       
    38             aFs, aErrorHandler );
       
    39     CleanupStack::PushL( self );
       
    40     self->ConstructL();
       
    41     CleanupStack::Pop( self );
       
    42     return self;
       
    43     }
       
    44 
       
    45 // ---------------------------------------------------------------------------
       
    46 // CSisxSifPluginUiHandlerSilent::~CSisxSifPluginUiHandlerSilent()
       
    47 // ---------------------------------------------------------------------------
       
    48 //
       
    49 CSisxSifPluginUiHandlerSilent::~CSisxSifPluginUiHandlerSilent()
       
    50     {
       
    51     }
       
    52 
       
    53 // ---------------------------------------------------------------------------
       
    54 // CSisxSifPluginUiHandlerSilent::DisplayTextL()
       
    55 // ---------------------------------------------------------------------------
       
    56 //
       
    57 TBool CSisxSifPluginUiHandlerSilent::DisplayTextL( const Swi::CAppInfo& /*aAppInfo*/,
       
    58         Swi::TFileTextOption aOption, const TDesC& aText )
       
    59     {
       
    60 	TBool okToContinue = EFalse;
       
    61 
       
    62 	if( iInstallParams )
       
    63 		{
       
    64 		switch( iInstallParams->PackageInfo() )
       
    65 			{
       
    66 			case EAllowed:
       
    67 				okToContinue = ETrue;
       
    68 				break;
       
    69 			case EUserConfirm:
       
    70 			    switch( aOption )
       
    71 			        {
       
    72 			        case Swi::EInstFileTextOptionContinue:
       
    73 			            ShowQuestionWithContinueL( aText );
       
    74                         okToContinue = ETrue;
       
    75 			            break;
       
    76 			        case Swi::EInstFileTextOptionSkipOneIfNo:
       
    77 			            okToContinue = ShowQuestionL( aText );
       
    78 			            break;
       
    79 			        case Swi::EInstFileTextOptionAbortIfNo:
       
    80 			        case Swi::EInstFileTextOptionExitIfNo:
       
    81 			            okToContinue = ShowQuestionL( aText );
       
    82 			            break;
       
    83 			        case Swi::EInstFileTextOptionForceAbort:
       
    84 			            ShowQuestionWithContinueL( aText );
       
    85 			            break;
       
    86 			        default:
       
    87 			            break;
       
    88 			        }
       
    89 				break;
       
    90 			case ENotAllowed:
       
    91 			default:
       
    92 		        SetErrorL( KErrPermissionDenied, ESifUiNeedsPackageInfoParameter, aText );
       
    93 				break;
       
    94 			}
       
    95 		}
       
    96 
       
    97     return okToContinue;
       
    98     }
       
    99 
       
   100 // ---------------------------------------------------------------------------
       
   101 // CSisxSifPluginUiHandlerSilent::DisplayErrorL()
       
   102 // ---------------------------------------------------------------------------
       
   103 //
       
   104 void CSisxSifPluginUiHandlerSilent::DisplayErrorL( const Swi::CAppInfo& /*aAppInfo*/,
       
   105         Swi::TErrorDialog aType, const TDesC& aParam )
       
   106     {
       
   107     SetErrorSwiErrorL( aType, aParam );
       
   108     }
       
   109 
       
   110 // ---------------------------------------------------------------------------
       
   111 // CSisxSifPluginUiHandlerSilent::DisplayDependencyBreakL()
       
   112 // ---------------------------------------------------------------------------
       
   113 //
       
   114 TBool CSisxSifPluginUiHandlerSilent::DisplayDependencyBreakL( const Swi::CAppInfo& /*aAppInfo*/,
       
   115         const RPointerArray<TDesC>& /*aComponents*/ )
       
   116     {
       
   117 	TBool okToContinue = EFalse;
       
   118 
       
   119 	if( iInstallParams )
       
   120 		{
       
   121 		switch( iInstallParams->AllowAppBreakDependency() )
       
   122 			{
       
   123 			case EAllowed:
       
   124 				okToContinue = ETrue;
       
   125 				break;
       
   126 			case EUserConfirm:
       
   127 			case ENotAllowed:
       
   128 			default:
       
   129 			    SetErrorL( KErrPermissionDenied, ESifUiNeedsAllowAppBreakDependencyParameter );
       
   130 				break;
       
   131 			}
       
   132 		}
       
   133 
       
   134     return okToContinue;
       
   135     }
       
   136 
       
   137 // ---------------------------------------------------------------------------
       
   138 // CSisxSifPluginUiHandlerSilent::DisplayApplicationsInUseL()
       
   139 // ---------------------------------------------------------------------------
       
   140 //
       
   141 TBool CSisxSifPluginUiHandlerSilent::DisplayApplicationsInUseL( const Swi::CAppInfo& /*aAppInfo*/,
       
   142         const RPointerArray<TDesC>& /*aAppNames*/ )
       
   143     {
       
   144 	TBool okToContinue = EFalse;
       
   145 
       
   146 	if( iInstallParams )
       
   147 		{
       
   148 		switch( iInstallParams->AllowAppShutdown() )
       
   149 			{
       
   150 			case EAllowed:
       
   151 				okToContinue = ETrue;
       
   152 				break;
       
   153 			case EUserConfirm:
       
   154 			case ENotAllowed:
       
   155 			default:
       
   156 			    SetErrorL( KErrPermissionDenied, ESifUiNeedsAllowAppShutdownParameter );
       
   157 				break;
       
   158 			}
       
   159 		}
       
   160 
       
   161     return okToContinue;
       
   162     }
       
   163 
       
   164 // ---------------------------------------------------------------------------
       
   165 // CSisxSifPluginUiHandlerSilent::DisplayQuestionL()
       
   166 // ---------------------------------------------------------------------------
       
   167 //
       
   168 TBool CSisxSifPluginUiHandlerSilent::DisplayQuestionL( const Swi::CAppInfo& /*aAppInfo*/,
       
   169         Swi::TQuestionDialog aQuestion, const TDesC& aDes )
       
   170     {
       
   171 	TBool okToContinue = EFalse;
       
   172 
       
   173     switch( aQuestion )
       
   174         {
       
   175         case Swi::EQuestionIncompatible:
       
   176         	if( iInstallParams )
       
   177         		{
       
   178 				switch( iInstallParams->AllowIncompatible() )
       
   179 					{
       
   180 					case EAllowed:
       
   181 						okToContinue = ETrue;
       
   182 						break;
       
   183                     case EUserConfirm:
       
   184 					case ENotAllowed:
       
   185 					default:
       
   186 						break;
       
   187 					}
       
   188         		}
       
   189         	if( !okToContinue )
       
   190         	    {
       
   191                 SetErrorL( KErrPermissionDenied, ESifUiNeedsAllowIncompatibleParameter, aDes );
       
   192         	    }
       
   193             break;
       
   194 
       
   195         case Swi::EQuestionOverwriteFile:
       
   196         	if( iInstallParams )
       
   197         		{
       
   198 				switch( iInstallParams->AllowOverwrite() )
       
   199 					{
       
   200 					case EAllowed:
       
   201 						okToContinue = ETrue;
       
   202 						break;
       
   203 					case EUserConfirm:
       
   204 					case ENotAllowed:
       
   205 					default:
       
   206 						break;
       
   207 					}
       
   208         		}
       
   209         	if( !okToContinue )
       
   210         	    {
       
   211                 SetErrorL( KErrPermissionDenied, ESifUiNeedsAllowOverwriteParameter, aDes );
       
   212                 }
       
   213         	break;
       
   214 
       
   215         default:
       
   216             SetErrorL( KErrNotSupported, KErrNotSupported, aDes );
       
   217             break;
       
   218         }
       
   219 
       
   220     return okToContinue;
       
   221     }
       
   222 
       
   223 // ---------------------------------------------------------------------------
       
   224 // CSisxSifPluginUiHandlerSilent::DisplayInstallL()
       
   225 // ---------------------------------------------------------------------------
       
   226 //
       
   227 TBool CSisxSifPluginUiHandlerSilent::DisplayInstallL( const Swi::CAppInfo& /*aAppInfo*/,
       
   228         const CApaMaskedBitmap* /*aLogo*/,
       
   229         const RPointerArray<Swi::CCertificateInfo>& /*aCertificates*/ )
       
   230     {
       
   231     iOperationPhase = EInstalling;
       
   232     return ETrue;
       
   233     }
       
   234 
       
   235 // ---------------------------------------------------------------------------
       
   236 // CSisxSifPluginUiHandlerSilent::DisplayGrantCapabilitiesL()
       
   237 // ---------------------------------------------------------------------------
       
   238 //
       
   239 TBool CSisxSifPluginUiHandlerSilent::DisplayGrantCapabilitiesL( const Swi::CAppInfo& /*aAppInfo*/,
       
   240         const TCapabilitySet& /*aCapabilitySet*/ )
       
   241     {
       
   242 	TBool okToContinue = EFalse;
       
   243 
       
   244 	if( iInstallParams )
       
   245 		{
       
   246 		switch( iInstallParams->GrantCapabilities() )
       
   247 			{
       
   248 			case EAllowed:
       
   249 				okToContinue = ETrue;
       
   250 				break;
       
   251 			case EUserConfirm:
       
   252 			case ENotAllowed:
       
   253 			default:
       
   254 			    SetErrorL( KErrPermissionDenied, ESifUiNeedsGrantCapabilitiesParameter );
       
   255 				break;
       
   256 			}
       
   257 		}
       
   258 
       
   259     return okToContinue;
       
   260     }
       
   261 
       
   262 // ---------------------------------------------------------------------------
       
   263 // CSisxSifPluginUiHandlerSilent::DisplayLanguageL()
       
   264 // ---------------------------------------------------------------------------
       
   265 //
       
   266 TInt CSisxSifPluginUiHandlerSilent::DisplayLanguageL( const Swi::CAppInfo& /*aAppInfo*/,
       
   267         const RArray<TLanguage>& aLanguages )
       
   268     {
       
   269 	TInt languageIndex = 0;
       
   270 	TBool found = EFalse;
       
   271 	TInt languageCount = aLanguages.Count();
       
   272 	if( iInstallParams )
       
   273 		{
       
   274 		TLanguage lang = iInstallParams->Language();
       
   275 		TInt index = aLanguages.Find( lang );
       
   276 		if( index >= 0 && index < languageCount )
       
   277 			{
       
   278 			languageIndex = index;
       
   279 			found = ETrue;
       
   280 			}
       
   281 		}
       
   282 	if( !found )
       
   283 		{
       
   284 		TLanguage lang = User::Language();
       
   285 		TInt index = aLanguages.Find( lang );
       
   286 		if( index > 0 && index < languageCount )
       
   287 			{
       
   288 			languageIndex = index;
       
   289 			}
       
   290 		}
       
   291     return languageIndex;
       
   292     }
       
   293 
       
   294 // ---------------------------------------------------------------------------
       
   295 // CSisxSifPluginUiHandlerSilent::DisplayDriveL()
       
   296 // ---------------------------------------------------------------------------
       
   297 //
       
   298 TInt CSisxSifPluginUiHandlerSilent::DisplayDriveL( const Swi::CAppInfo& /*aAppInfo*/,
       
   299         TInt64 aSize, const RArray<TChar>& aDriveLetters,
       
   300         const RArray<TInt64>& aDriveSpaces )
       
   301     {
       
   302 	TInt driveIndex = 0;
       
   303 	TBool found = EFalse;
       
   304 	TInt driveCount = aDriveLetters.Count();
       
   305 	if( iInstallParams )
       
   306 		{
       
   307 		TChar driveLetter = 0;
       
   308 		RFs::DriveToChar( iInstallParams->Drive(), driveLetter );
       
   309 		TInt index = aDriveLetters.Find( driveLetter );
       
   310 		if( index >= 0 && index < driveCount )
       
   311 			{
       
   312 			if( aDriveSpaces[ index ] > aSize )
       
   313 				{
       
   314 				driveIndex = index;
       
   315 				found = ETrue;
       
   316 				}
       
   317 			}
       
   318 		}
       
   319 	// TODO: should there be some default drive?
       
   320 	if( !found )
       
   321 		{
       
   322 		User::Leave( KErrNoMemory );
       
   323 		}
       
   324     return driveIndex;
       
   325     }
       
   326 
       
   327 // ---------------------------------------------------------------------------
       
   328 // CSisxSifPluginUiHandlerSilent::DisplayUpgradeL()
       
   329 // ---------------------------------------------------------------------------
       
   330 //
       
   331 TBool CSisxSifPluginUiHandlerSilent::DisplayUpgradeL( const Swi::CAppInfo& /*aAppInfo*/,
       
   332         const Swi::CAppInfo& /*aExistingAppInfo*/ )
       
   333     {
       
   334 	TBool okToContinue = EFalse;
       
   335 	if( iInstallParams )
       
   336 		{
       
   337 		switch( iInstallParams->AllowUpgrade() )
       
   338 			{
       
   339 			case EAllowed:
       
   340 				okToContinue = ETrue;
       
   341 				break;
       
   342 			case EUserConfirm:
       
   343 			case ENotAllowed:
       
   344 			default:
       
   345 				break;
       
   346 			}
       
   347 		}
       
   348     return okToContinue;
       
   349     }
       
   350 
       
   351 // ---------------------------------------------------------------------------
       
   352 // CSisxSifPluginUiHandlerSilent::DisplayOptionsL()
       
   353 // ---------------------------------------------------------------------------
       
   354 //
       
   355 TBool CSisxSifPluginUiHandlerSilent::DisplayOptionsL( const Swi::CAppInfo& /*aAppInfo*/,
       
   356         const RPointerArray<TDesC>& aOptions, RArray<TBool>& aSelections )
       
   357     {
       
   358 	TBool allowOptions = EFalse;
       
   359 	if( iInstallParams )
       
   360 		{
       
   361 		switch( iInstallParams->InstallOptionalItems() )
       
   362 			{
       
   363 			case EAllowed:
       
   364 				allowOptions = ETrue;
       
   365 				break;
       
   366 			case EUserConfirm:
       
   367 			case ENotAllowed:
       
   368 			default:
       
   369 				break;
       
   370 			}
       
   371 		}
       
   372 	for( TInt index = 0; index < aOptions.Count(); ++index )
       
   373 		{
       
   374 		aSelections[ index ] = allowOptions;
       
   375 		}
       
   376     return ETrue;		// always ok to continue
       
   377     }
       
   378 
       
   379 // ---------------------------------------------------------------------------
       
   380 // CSisxSifPluginUiHandlerSilent::HandleInstallEventL()
       
   381 // ---------------------------------------------------------------------------
       
   382 //
       
   383 TBool CSisxSifPluginUiHandlerSilent::HandleInstallEventL( const Swi::CAppInfo& /*aAppInfo*/,
       
   384         Swi::TInstallEvent aEvent, TInt aValue, const TDesC& /*aDes*/ )
       
   385     {
       
   386     switch( aEvent )
       
   387         {
       
   388         case Swi::EEventSetProgressBarFinalValue:
       
   389             iProgressBarFinalValue = aValue;
       
   390             break;
       
   391 
       
   392         case Swi::EEventUpdateProgressBar:
       
   393             iProgressBarCurrentValue += aValue;
       
   394             PublishProgressL( EFileOperation );
       
   395             break;
       
   396 
       
   397         case Swi::EEventDevCert:
       
   398         case Swi::EEventOcspCheckEnd:
       
   399         case Swi::EEventAbortedInstall:
       
   400         case Swi::EEventAbortedUnInstall:
       
   401         case Swi::EEventCompletedInstall:
       
   402         case Swi::EEventCompletedUnInstall:
       
   403         case Swi::EEventCompletedNoMessage:
       
   404         case Swi::EEventLeave:
       
   405         default:
       
   406             break;
       
   407         }
       
   408 
       
   409     return ETrue;
       
   410     }
       
   411 
       
   412 // ---------------------------------------------------------------------------
       
   413 // CSisxSifPluginUiHandlerSilent::HandleCancellableInstallEventL()
       
   414 // ---------------------------------------------------------------------------
       
   415 //
       
   416 void CSisxSifPluginUiHandlerSilent::HandleCancellableInstallEventL(
       
   417         const Swi::CAppInfo& /*aAppInfo*/, Swi::TInstallCancellableEvent aEvent,
       
   418         Swi::MCancelHandler& /*aCancelHandler*/, TInt /*aValue*/, const TDesC& /*aDes*/ )
       
   419     {
       
   420     switch( aEvent )
       
   421         {
       
   422         case Swi::EEventOcspCheckStart:
       
   423             PublishProgressL( EOCSPCheck );
       
   424             break;
       
   425 
       
   426         case Swi::EEventRemovingFiles:
       
   427         case Swi::EEventCopyingFiles:
       
   428         case Swi::EEventShuttingDownApps:
       
   429         default:
       
   430             break;
       
   431         }
       
   432     }
       
   433 
       
   434 // ---------------------------------------------------------------------------
       
   435 // CSisxSifPluginUiHandlerSilent::DisplaySecurityWarningL()
       
   436 // ---------------------------------------------------------------------------
       
   437 //
       
   438 TBool CSisxSifPluginUiHandlerSilent::DisplaySecurityWarningL( const Swi::CAppInfo& /*aAppInfo*/,
       
   439         Swi::TSignatureValidationResult aSigValidationResult,
       
   440         RPointerArray<CPKIXValidationResultBase>& /*aPkixResults*/,
       
   441         RPointerArray<Swi::CCertificateInfo>& /*aCertificates*/,
       
   442         TBool aInstallAnyway )
       
   443     {
       
   444     TBool okToContinue = EFalse;
       
   445 
       
   446     switch( aSigValidationResult )
       
   447         {
       
   448         case Swi::EValidationSucceeded:
       
   449         	okToContinue = ETrue;
       
   450             break;
       
   451 
       
   452         // TODO: check these, now same functionality as before
       
   453         case Swi::ESignatureSelfSigned:
       
   454         case Swi::ENoCertificate:
       
   455         case Swi::ECertificateValidationError:
       
   456         case Swi::ESignatureNotPresent:
       
   457         case Swi::ESignatureCouldNotBeValidated:
       
   458         case Swi::ENoCodeSigningExtension:
       
   459         case Swi::ENoSupportedPolicyExtension:
       
   460         case Swi::EMandatorySignatureMissing:
       
   461             if( aInstallAnyway && iInstallParams )
       
   462                 {
       
   463 				switch( iInstallParams->AllowUntrusted() )
       
   464 					{
       
   465 					case EAllowed:
       
   466 						okToContinue = ETrue;
       
   467 						break;
       
   468 					case EUserConfirm:
       
   469 					case ENotAllowed:
       
   470 					default:
       
   471 						break;
       
   472 					}
       
   473                 }
       
   474             break;
       
   475 
       
   476         default:
       
   477             break;
       
   478         }
       
   479 
       
   480     return okToContinue;
       
   481     }
       
   482 
       
   483 // ---------------------------------------------------------------------------
       
   484 // CSisxSifPluginUiHandlerSilent::DisplayOcspResultL()
       
   485 // ---------------------------------------------------------------------------
       
   486 //
       
   487 TBool CSisxSifPluginUiHandlerSilent::DisplayOcspResultL( const Swi::CAppInfo& /*aAppInfo*/,
       
   488         Swi::TRevocationDialogMessage aMessage, RPointerArray<TOCSPOutcome>& /*aOutcomes*/,
       
   489         RPointerArray<Swi::CCertificateInfo>& /*aCertificates*/, TBool aWarningOnly )
       
   490     {
       
   491 	TBool okToContinue = EFalse;
       
   492 
       
   493 	if( aWarningOnly && !IsOcspMandatoryL() )
       
   494 		{
       
   495 	    if( iInstallParams )
       
   496 	        {
       
   497             switch( iInstallParams->IgnoreOCSPWarnings() )
       
   498                 {
       
   499                 case EAllowed:
       
   500                     okToContinue = ETrue;
       
   501                     break;
       
   502                 case EUserConfirm:
       
   503                 case ENotAllowed:
       
   504                 default:
       
   505                     break;
       
   506                 }
       
   507 	        }
       
   508 		}
       
   509 
       
   510 	if( !okToContinue )
       
   511 	    {
       
   512 	    SetOcspErrorL( aMessage );
       
   513 	    }
       
   514 
       
   515     return okToContinue;
       
   516     }
       
   517 
       
   518 // ---------------------------------------------------------------------------
       
   519 // CSisxSifPluginUiHandlerSilent::DisplayCannotOverwriteFileL()
       
   520 // ---------------------------------------------------------------------------
       
   521 //
       
   522 void CSisxSifPluginUiHandlerSilent::DisplayCannotOverwriteFileL( const Swi::CAppInfo& /*aAppInfo*/,
       
   523         const Swi::CAppInfo& /*aInstalledAppInfo*/, const TDesC& aFileName )
       
   524     {
       
   525     // TODO: localized UI string needed: "The package tries to overwrite file '%1' it does not own."
       
   526 	TName detailsString;
       
   527 	detailsString.Format( _L("The package tries to overwrite file '%S' it does not own."), &aFileName );
       
   528     SetErrorL( KErrPermissionDenied, ESifUiCannotOverwriteFile, detailsString );
       
   529     }
       
   530 
       
   531 // ---------------------------------------------------------------------------
       
   532 // CSisxSifPluginUiHandlerSilent::DisplayMissingDependencyL()
       
   533 // ---------------------------------------------------------------------------
       
   534 //
       
   535 TBool CSisxSifPluginUiHandlerSilent::DisplayMissingDependencyL( const Swi::CAppInfo& /*aAppInfo*/,
       
   536         const TDesC& /*aDependencyName*/, TVersion /*aWantedVersionFrom*/,
       
   537         TVersion /*aWantedVersionTo*/, TVersion /*aInstalledVersion*/ )
       
   538     {
       
   539 	TBool okToContinue = EFalse;
       
   540 
       
   541 	if( iInstallParams )
       
   542 		{
       
   543 		switch( iInstallParams->AllowAppBreakDependency() )
       
   544 			{
       
   545 			case EAllowed:
       
   546 				okToContinue = ETrue;
       
   547 				break;
       
   548 			case EUserConfirm:
       
   549 			case ENotAllowed:
       
   550 			default:
       
   551 				break;
       
   552 			}
       
   553 		}
       
   554 
       
   555 	if( !okToContinue )
       
   556 	    {
       
   557         SetErrorL( KErrSifMissingDependencies, 0, KNullDesC );
       
   558 	    }
       
   559 
       
   560     return okToContinue;
       
   561     }
       
   562 
       
   563 // ---------------------------------------------------------------------------
       
   564 // CSisxSifPluginUiHandlerSilent::DisplayUninstallL()
       
   565 // ---------------------------------------------------------------------------
       
   566 //
       
   567 TBool CSisxSifPluginUiHandlerSilent::DisplayUninstallL( const Swi::CAppInfo& /*aAppInfo*/ )
       
   568     {
       
   569     iOperationPhase = EUninstalling;
       
   570     return ETrue;
       
   571     }
       
   572 
       
   573 // ---------------------------------------------------------------------------
       
   574 // CSisxSifPluginUiHandlerSilent::DisplayPreparingInstallL()
       
   575 // ---------------------------------------------------------------------------
       
   576 //
       
   577 void CSisxSifPluginUiHandlerSilent::DisplayPreparingInstallL( const TDesC& /*aFileName*/ )
       
   578     {
       
   579     // nothing displayed in silent mode
       
   580     }
       
   581 
       
   582 // ---------------------------------------------------------------------------
       
   583 // CSisxSifPluginUiHandlerSilent::DisplayCompleteL()
       
   584 // ---------------------------------------------------------------------------
       
   585 //
       
   586 void CSisxSifPluginUiHandlerSilent::DisplayCompleteL()
       
   587     {
       
   588     // nothing displayed in silent mode
       
   589     }
       
   590 
       
   591 // ---------------------------------------------------------------------------
       
   592 // CSisxSifPluginUiHandlerSilent::DisplayFailedL()
       
   593 // ---------------------------------------------------------------------------
       
   594 //
       
   595 void CSisxSifPluginUiHandlerSilent::DisplayFailedL(
       
   596         const CSisxSifPluginErrorHandler& /*aError*/ )
       
   597     {
       
   598     // nothing displayed in silent mode
       
   599     }
       
   600 
       
   601 // ---------------------------------------------------------------------------
       
   602 // CSisxSifPluginUiHandlerSilent::CSisxSifPluginUiHandlerSilent()
       
   603 // ---------------------------------------------------------------------------
       
   604 //
       
   605 CSisxSifPluginUiHandlerSilent::CSisxSifPluginUiHandlerSilent( RFs& aFs,
       
   606         CSisxSifPluginErrorHandler& aErrorHandler ) :
       
   607         CSisxSifPluginUiHandlerBase( aFs, aErrorHandler )
       
   608     {
       
   609     }
       
   610 
       
   611 // ---------------------------------------------------------------------------
       
   612 // CSisxSifPluginUiHandlerSilent::ConstructL()
       
   613 // ---------------------------------------------------------------------------
       
   614 //
       
   615 void CSisxSifPluginUiHandlerSilent::ConstructL()
       
   616     {
       
   617     }
       
   618