connectivitymodules/SeCon/services/pcd/src/sconinstaller.cpp
changeset 40 b63e67867dcd
parent 20 e1de7d03f843
child 64 a62b67d1f67c
--- a/connectivitymodules/SeCon/services/pcd/src/sconinstaller.cpp	Tue Jul 13 03:35:14 2010 +0530
+++ b/connectivitymodules/SeCon/services/pcd/src/sconinstaller.cpp	Tue Jul 13 03:39:25 2010 +0530
@@ -17,30 +17,36 @@
 
 
 // INCLUDE FILES
+#include <s32mem.h> // For RBufWriteStream
+#include <utf.h>  // for CnvUtfConverter
+//#include <pathinfo.h>
+#include <usif/sif/sifcommon.h>
 
-#include <pathinfo.h>
-#include <swi/sisregistryentry.h>
-#include <swi/sisregistrypackage.h>
-#include <swi/sisregistrysession.h>
-#include <SWInstDefs.h>
-#include <mmf/common/mmfcontrollerpluginresolver.h>
-#include <javaregistry.h>
-
-using namespace Java;
+using namespace Usif;
 
 #include "debug.h"
 #include "sconinstaller.h"
 #include "sconpcdconsts.h"
 #include "sconpcdutility.h"
 
-_LIT8( KWidgetMimeType, "application/x-nokia-widget");
 
 const TInt KSConSeConUidValue = 0x101f99f6;
 const TUid KSConSeConUid = {KSConSeConUidValue};
 
+_LIT8(KValSep, "=");
+_LIT8(KComma, ",");
+_LIT8(KLineEnd, "\r\n");
+
 // ============================= MEMBER FUNCTIONS ===============================
 
-
+CSConAppInstaller* CSConAppInstaller::NewL( CSConInstallerQueue* aQueue, RFs& aFs )
+    {
+    CSConAppInstaller* self = new (ELeave) CSConAppInstaller( aQueue, aFs );
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    return self;
+    }
 // -----------------------------------------------------------------------------
 // CSConAppInstaller::CSConAppInstaller( CSConInstallerQueue* aQueue )
 // Constructor
@@ -49,7 +55,13 @@
 CSConAppInstaller::CSConAppInstaller( CSConInstallerQueue* aQueue, RFs& aFs ) :
     CActive( EPriorityStandard ), iQueue( aQueue ), iFs( aFs )
     {
-    TRACE_FUNC;
+    CActiveScheduler::Add( this );
+    }
+
+void CSConAppInstaller::ConstructL()
+    {
+    iSifOptions = COpaqueNamedParams::NewL();
+    iSifResults = COpaqueNamedParams::NewL();
     }
 
 // -----------------------------------------------------------------------------
@@ -60,7 +72,10 @@
 CSConAppInstaller::~CSConAppInstaller()
     {
     TRACE_FUNC;
-    iSWInst.Close();
+    Cancel();
+    iSwInstaller.Close();
+    delete iSifOptions;
+    delete iSifResults;
     }
 
 // -----------------------------------------------------------------------------
@@ -79,7 +94,7 @@
     
     if( aTaskId > 0 && ret != KErrNotFound )
         {
-        if ( iInstallerState != EIdle || IsActive() )
+        if ( IsActive() )
             {
             LOGGER_WRITE("WARNING! SConAppInstaller was not on idle state!");
             iQueue->CompleteTask( aTaskId, KErrInUse );
@@ -95,32 +110,24 @@
             {
             case EInstall :
                 iQueue->ChangeQueueProcessStatus();
-                err = iSWInst.Connect();
-                
+                err = iSwInstaller.Connect();
                 if( err == KErrNone )
                     {
-                    if ( task->iInstallParams->iMode == ESilentInstall )
-                    	{
-                    	LOGGER_WRITE( "Begin silent installation.. " );
-                    	iOptions.iUntrusted = SwiUI::EPolicyNotAllowed;
-                        iOptions.iOCSP = SwiUI::EPolicyNotAllowed;
-                        iOptionsPckg = iOptions;
-                        iInstallerState = ESilentInstalling;
-                    	iSWInst.SilentInstall( iStatus, task->iInstallParams->iPath, iOptionsPckg );
-                    	}
-                    else
-                    	{
-                    	LOGGER_WRITE( "Begin to install.. " );
-                    	iInstallerState = EInstalling;
-                        iSWInst.Install( iStatus, task->iInstallParams->iPath );
-                    	}
+                    TRAP(err, ProcessInstallL( *task->iInstallParams ));
+                    if( err != KErrNone )
+                        {
+                        LOGGER_WRITE_1( "StartInstaller ProcessInstallL err: %d", err );
+                        iStatus = KRequestPending;
+                        SetActive();
+                        status = &iStatus;
+                        User::RequestComplete( status, err );
+                        }
                     }
                 
                 break;
             case EUninstall :
                 iQueue->ChangeQueueProcessStatus();
-                err = iSWInst.Connect();
-                
+                err = iSwInstaller.Connect();
                 if( err == KErrNone )
                     {
                     LOGGER_WRITE( "Begin to uninstall.. " );
@@ -129,6 +136,8 @@
                     if( err != KErrNone )
                         {
                         LOGGER_WRITE_1( "StartInstaller ProcessUninstallL err: %d", err );
+                        iStatus = KRequestPending;
+                        SetActive();
                         status = &iStatus;
                         User::RequestComplete( status, err );
                         }
@@ -137,7 +146,8 @@
                 break;
             case EListInstalledApps :
                 iQueue->ChangeQueueProcessStatus();
-                iInstallerState = EListingInstalledApps;
+                iStatus = KRequestPending;
+                SetActive();
                 TRAP( err, ProcessListInstalledAppsL() );
                 status = &iStatus;
                 User::RequestComplete( status, err );
@@ -145,8 +155,6 @@
             default :
                 break;
             }
-
-        SetActive();
         }
     TRACE_FUNC_EXIT;
     }
@@ -163,7 +171,7 @@
     if( iCurrentTask == aTaskId )
         {
         Cancel();
-        iSWInst.Close();
+        iSwInstaller.Close();
         }
     TRACE_FUNC_EXIT;
     }
@@ -175,14 +183,7 @@
 //
 TBool CSConAppInstaller::InstallerActive() const
     {
-    if ( iInstallerState == EIdle )
-        {
-        return EFalse;
-        }
-    else
-        {
-        return ETrue;
-        }
+    return IsActive();
     }
 
 // -----------------------------------------------------------------------------
@@ -194,38 +195,9 @@
     {
     TRACE_FUNC_ENTRY;
     
-    switch (iInstallerState)
-        {
-        case EInstalling:
-            LOGGER_WRITE("Cancel normal install");
-            iSWInst.CancelAsyncRequest( SwiUI::ERequestInstall );
-            break;
-        case ESilentInstalling:
-            LOGGER_WRITE("Cancel silent install");
-            iSWInst.CancelAsyncRequest( SwiUI::ERequestSilentInstall );
-            break;
-        case EUninstalling:
-            LOGGER_WRITE("Cancel normal uninstall");
-            iSWInst.CancelAsyncRequest( SwiUI::ERequestUninstall );
-            break;
-        case ESilentUninstalling:
-            LOGGER_WRITE("Cancel silent uninstall");
-            iSWInst.CancelAsyncRequest( SwiUI::ERequestSilentUninstall );
-            break;
-        case ECustomUninstalling: 
-            LOGGER_WRITE("Cancel custom uninstall");
-            iSWInst.CancelAsyncRequest( SwiUI::ERequestCustomUninstall );
-            break;
-        case ESilentCustomUnistalling:
-            LOGGER_WRITE("Cancel silent custom uninstall");
-            iSWInst.CancelAsyncRequest( SwiUI::ERequestSilentCustomUninstall );
-            break;
-        default:
-            LOGGER_WRITE("WARNING! Unknown state");
-            break;
-        }
-    iInstallerState = EIdle;
-    
+    LOGGER_WRITE("Cancel iSwInstaller");
+    iSwInstaller.CancelOperation();
+    /*
     // find and complete current task
     CSConTask* task = NULL;
     TInt ret = iQueue->GetTask( iCurrentTask, task );
@@ -245,6 +217,7 @@
                 break;
             }
         }
+        */
     TRACE_FUNC_EXIT;
     }
 
@@ -256,19 +229,24 @@
 void CSConAppInstaller::RunL()
     {
     TRACE_FUNC_ENTRY;
-    iInstallerState = EIdle;
-    iSWInst.Close();
+    iSwInstaller.Close();
     iQueue->ChangeQueueProcessStatus();
     TInt err( iStatus.Int() );
     LOGGER_WRITE_1( "CSConAppInstaller::RunL() iStatus.Int() : returned %d", err );
     
     CSConTask* task = NULL;
     TInt taskErr = iQueue->GetTask( iCurrentTask, task );
-    
-    LOGGER_WRITE_1( "CSConAppInstaller::RunL() GetTask %d", taskErr );
-        
     if( taskErr == KErrNone )
         {
+        if ( task->GetServiceId() == EInstall || task->GetServiceId() == EUninstall )
+            {
+            TRAPD(dataErr, WriteTaskDataL( *task ));
+            if (dataErr)
+                {
+                LOGGER_WRITE_1("WriteTaskDataL err: %d", dataErr);
+                }
+            }
+        
         if( task->GetServiceId() == EInstall && err == KErrNone )
             {
             LOGGER_WRITE( "CSConAppInstaller::RunL() : before DeleteFile" );
@@ -281,10 +259,190 @@
     TRACE_FUNC_EXIT;
     }
 
+// -----------------------------------------------------------------------------
+// CSConAppInstaller::WriteTaskDataL()
+// Writes data to task
+// -----------------------------------------------------------------------------
+//
+void CSConAppInstaller::WriteTaskDataL( CSConTask& aTask )
+    {
+    TRACE_FUNC_ENTRY;
+    CBufFlat* buffer = CBufFlat::NewL(200);
+    CleanupStack::PushL(buffer);
+    RBufWriteStream stream( *buffer );
+    CleanupClosePushL( stream );
+    
+    ExternalizeResultArrayIntValL( KSifOutParam_ComponentId , stream);
+    ExternalizeResultIntValL( KSifOutParam_ErrCategory , stream);
+    ExternalizeResultIntValL( KSifOutParam_ErrCode , stream);
+    ExternalizeResultIntValL( KSifOutParam_ExtendedErrCode , stream);
+    ExternalizeResultStringValL( KSifOutParam_ErrMessage , stream);
+    ExternalizeResultStringValL( KSifOutParam_ErrMessageDetails , stream);
+    
+    stream.CommitL();
+    
+    buffer->Compress();
+    
+    HBufC8* data = HBufC8::NewL( buffer->Size() );
+    TPtr8 dataPtr = data->Des();
+    buffer->Read( 0, dataPtr, buffer->Size() );
+    
+    if ( aTask.GetServiceId() == EInstall )
+        {
+        if ( aTask.iInstallParams->iData )
+            {
+            delete aTask.iInstallParams->iData;
+            aTask.iInstallParams->iData = NULL;
+            }
+        aTask.iInstallParams->iData = data;
+        data = NULL;
+        }
+    else if ( aTask.GetServiceId() == EUninstall )
+        {
+        if ( aTask.iUninstallParams->iData )
+            {
+            delete aTask.iUninstallParams->iData;
+            aTask.iUninstallParams->iData = NULL;
+            }
+        aTask.iUninstallParams->iData = data;
+        data = NULL;
+        }
+    else
+        {
+        delete data;
+        data = NULL;
+        }
+    
+    CleanupStack::PopAndDestroy( &stream );
+    CleanupStack::PopAndDestroy( buffer );
+    TRACE_FUNC_EXIT;
+    }
+
+void CSConAppInstaller::ExternalizeResultArrayIntValL( const TDesC& aName, RWriteStream& aStream )
+    {
+    TRACE_FUNC_ENTRY;
+    RArray<TInt> valueArray;
+    TRAPD(err, valueArray = iSifResults->IntArrayByNameL(aName));
+    if ( !err && valueArray.Count() > 0 )
+        {
+        LOGGER_WRITE_1("count: %d", valueArray.Count());
+        TBuf8<100> nameBuf;
+        err = CnvUtfConverter::ConvertFromUnicodeToUtf8( nameBuf, aName );
+        if (!err)
+            {
+            LOGGER_WRITE("2");
+            aStream.WriteL( nameBuf, nameBuf.Length() );
+            aStream.WriteL( KValSep, 1 );
+            aStream.WriteInt32L( valueArray[0] );
+            for (TInt i=1; i<valueArray.Count(); i++)
+                {
+                aStream.WriteL( KComma, 1 );
+                aStream.WriteInt32L( valueArray[i] );
+                }
+            aStream.WriteL( KLineEnd, 2 );
+            }
+        }
+    TRACE_FUNC_EXIT;
+    }
+// -----------------------------------------------------------------------------
+// CSConAppInstaller::ExternalizeResultIntValL()
+// Read integer value and write it to stream
+// -----------------------------------------------------------------------------
+//
+void CSConAppInstaller::ExternalizeResultIntValL( const TDesC& aName, RWriteStream& aStream )
+    {
+    TRACE_FUNC_ENTRY;
+    TInt value;
+    TBool found(EFalse);
+    found = iSifResults->GetIntByNameL(aName, value);
+
+    if (found)
+        {
+        TBuf8<100> nameBuf;
+        TInt err = CnvUtfConverter::ConvertFromUnicodeToUtf8( nameBuf, aName );
+        if (!err)
+            {
+            aStream.WriteL( nameBuf, nameBuf.Length() );
+            aStream.WriteL( KValSep, 1 );
+            aStream.WriteInt32L( value );
+            aStream.WriteL( KLineEnd, 2 );
+            }
+        }
+    TRACE_FUNC_EXIT;
+    }
+
+// -----------------------------------------------------------------------------
+// CSConAppInstaller::ExternalizeResultStringValL()
+// Read string value and write it to stream
+// -----------------------------------------------------------------------------
+//
+void CSConAppInstaller::ExternalizeResultStringValL( const TDesC& aName, RWriteStream& aStream )
+    {
+    TRACE_FUNC_ENTRY;
+    const TDesC& strValue = iSifResults->StringByNameL( aName );
+    if (strValue.Length() > 0)
+        {
+        TBuf8<100> nameBuf;
+        TInt err = CnvUtfConverter::ConvertFromUnicodeToUtf8( nameBuf, aName );
+        if (!err)
+            {
+            HBufC8* nameVal = CnvUtfConverter::ConvertFromUnicodeToUtf8L( strValue );
+            CleanupStack::PushL( nameVal );
+            aStream.WriteL( nameBuf, nameBuf.Length() );
+            aStream.WriteL( KValSep, 1 );
+            aStream.WriteL( nameVal->Des(), nameVal->Length() );
+            aStream.WriteL( KLineEnd, 2 );
+            CleanupStack::PopAndDestroy( nameVal );
+            }
+        }
+    TRACE_FUNC_EXIT;
+    }
+
+// -----------------------------------------------------------------------------
+// CSConAppInstaller::ProcessInstallL()
+// Executes Install task
+// -----------------------------------------------------------------------------
+//
+void CSConAppInstaller::ProcessInstallL( const CSConInstall& aInstallParams )
+    {
+    TRACE_FUNC_ENTRY;
+    iSifOptions->Cleanup();
+    iSifResults->Cleanup();
+    
+    if ( aInstallParams.iMode == ESilentInstall )
+        {
+        LOGGER_WRITE( "Begin silent installation.. " );
+        
+        iSifOptions->AddIntL( Usif::KSifInParam_InstallSilently, ETrue );
+        iSifOptions->AddIntL( Usif::KSifInParam_PerformOCSP, EFalse );   
+        // Note if upgrade is allowed, see NeedsInstallingL function.
+        iSifOptions->AddIntL( Usif::KSifInParam_AllowUpgrade, ETrue );
+        iSifOptions->AddIntL( Usif::KSifInParam_AllowUntrusted, EFalse );
+        iSifOptions->AddIntL( Usif::KSifInParam_GrantCapabilities, EFalse ); 
+        // Defined for the install.
+        iSifOptions->AddIntL( Usif::KSifInParam_InstallOptionalItems, ETrue );          
+        iSifOptions->AddIntL( Usif::KSifInParam_IgnoreOCSPWarnings, ETrue );            
+        iSifOptions->AddIntL( Usif::KSifInParam_AllowAppShutdown, ETrue );
+        iSifOptions->AddIntL( Usif::KSifInParam_AllowDownload, ETrue );
+        iSifOptions->AddIntL( Usif::KSifInParam_AllowOverwrite, ETrue );
+
+        iSwInstaller.Install( aInstallParams.iPath, *iSifOptions,
+                *iSifResults, iStatus, ETrue );
+        }
+    else
+        {
+        LOGGER_WRITE( "Begin to install.. " );
+        
+        iSwInstaller.Install( aInstallParams.iPath, *iSifOptions,
+                *iSifResults, iStatus, ETrue );
+        }
+    SetActive();
+    TRACE_FUNC_EXIT;
+    }
 
 // -----------------------------------------------------------------------------
 // CSConAppInstaller::ProcessUninstallL( const CSConUninstall& aUninstallParams )
-// Execures UnInstall task
+// Executes UnInstall task
 // -----------------------------------------------------------------------------
 //
 void CSConAppInstaller::ProcessUninstallL( const CSConUninstall& aUninstallParams )
@@ -295,209 +453,29 @@
     LOGGER_WRITE_1( "aVendor: %S", &aUninstallParams.iVendor );
     LOGGER_WRITE_1( "aType: %d", aUninstallParams.iType );
     LOGGER_WRITE_1( "aMode: %d", aUninstallParams.iMode );
-    switch ( aUninstallParams.iType )
-	    {
-	    case ESisApplication:
-	    case ESisAugmentation:
-	    	UninstallSisL( aUninstallParams );
-	    	break;
-	    case EJavaApplication:
-	    	UninstallJavaL( aUninstallParams.iUid,
-    			aUninstallParams.iMode);
-	    	break;
-	    case EWidgetApplication:
-	    	UninstallWidget( aUninstallParams.iUid,
-	    		aUninstallParams.iMode );
-	    	break;
-	    default:
-	    	User::Leave( KErrNotSupported );
-	    }
     
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConAppInstaller::UninstallSisL( const CSConUninstall& aUninstallParams )
-// Uninstall sis package or augmentation
-// -----------------------------------------------------------------------------
-//
-void CSConAppInstaller::UninstallSisL( const CSConUninstall& aUninstallParams )
-	{
-	TRACE_FUNC_ENTRY;
-
-	if ( aUninstallParams.iUid == KSConSeConUid )
+    if ( aUninstallParams.iUid == KSConSeConUid )
 	    {
 	    LOGGER_WRITE("Cannot uninstall itself, leave");
 	    // cannot uninstall itself
-	    User::Leave( SwiUI::KSWInstErrFileInUse );
+	    User::Leave( KErrInUse ); //SwiUI::KSWInstErrFileInUse );
 	    }
-	
-	Swi::RSisRegistrySession sisRegistry;
-    User::LeaveIfError( sisRegistry.Connect() );
-    CleanupClosePushL( sisRegistry );
-    //Check if uid belongs to SIS package
-    if( !sisRegistry.IsInstalledL( aUninstallParams.iUid ) )
-        {
-        CleanupStack::PopAndDestroy( &sisRegistry );
-        User::Leave( KErrNotFound );
-        }
+    TComponentId componentId = aUninstallParams.iUid.iUid;
+    iSifOptions->Cleanup();
+    iSifResults->Cleanup();
     
-    Swi::RSisRegistryEntry entry;
-    CleanupClosePushL(entry);
-    User::LeaveIfError( entry.Open( sisRegistry, aUninstallParams.iUid ) );
-    if ( aUninstallParams.iType == ESisAugmentation )
+    if ( aUninstallParams.iMode == ESilentInstall)
         {
-        // augmentation pkg
-        LOGGER_WRITE( "CSConAppInstaller::ProcessUninstallL ESisAugmentation" );
-        
-        TBool augmentationFound(EFalse);
-        // Get possible augmentations
-        RPointerArray<Swi::CSisRegistryPackage> augPackages;
-        CleanupResetAndDestroyPushL( augPackages );
-        entry.AugmentationsL( augPackages );
-        for ( TInt j( 0 ); j < augPackages.Count() && !augmentationFound; j++ )
-            {
-            Swi::RSisRegistryEntry augmentationEntry;
-            CleanupClosePushL( augmentationEntry );
-            augmentationEntry.OpenL( sisRegistry, *augPackages[j] );
-            
-            HBufC* augPackageName = augmentationEntry.PackageNameL();
-            CleanupStack::PushL( augPackageName );
-            HBufC* augUniqueVendorName = augmentationEntry.UniqueVendorNameL();
-            CleanupStack::PushL( augUniqueVendorName );
-            
-            if ( !augmentationEntry.IsInRomL() 
-                && augmentationEntry.IsPresentL()
-                && aUninstallParams.iName.Compare( *augPackageName ) == 0
-                && aUninstallParams.iVendor.Compare( *augUniqueVendorName ) == 0 )
-                {
-                // Correct augmentation found, uninstall it.
-                augmentationFound = ETrue;
-                TInt augmentationIndex = augPackages[j]->Index();
-                LOGGER_WRITE_1( "CSConAppInstaller::ProcessUninstallL augmentationIndex %d", augmentationIndex );
-        
-                SwiUI::TOpUninstallIndexParam params;
-                params.iUid = aUninstallParams.iUid;
-                params.iIndex = augmentationIndex;
-                SwiUI::TOpUninstallIndexParamPckg pckg( params );
-                SwiUI::TOperation operation( SwiUI::EOperationUninstallIndex );
-                if( aUninstallParams.iMode == ESilentInstall )
-                    {
-                    LOGGER_WRITE( "CSConAppInstaller::ProcessUninstallL : silent aug-sis-uninstall" );
-                    SwiUI::TUninstallOptionsPckg options;
-                    iInstallerState = ESilentCustomUnistalling;
-                    iSWInst.SilentCustomUninstall( iStatus, operation, options, pckg, KSISMIMEType );
-                    }
-                else
-                    {
-                    LOGGER_WRITE( "CSConAppInstaller::ProcessUninstallL : unsilent aug-sis-uninstall" )
-                    iInstallerState = ECustomUninstalling;
-                    iSWInst.CustomUninstall( iStatus, operation, pckg, KSISMIMEType );
-                    }
-                }
-            CleanupStack::PopAndDestroy( augUniqueVendorName );
-            CleanupStack::PopAndDestroy( augPackageName );
-            CleanupStack::PopAndDestroy( &augmentationEntry );
-            }  
-        CleanupStack::PopAndDestroy( &augPackages );
-        
-        if ( !augmentationFound )
-            {
-            LOGGER_WRITE( "CSConAppInstaller::ProcessUninstallL augmentation not found -> Leave" );
-            User::Leave( KErrNotFound );
-            }
+        iSifOptions->AddIntL( Usif::KSifInParam_InstallSilently, ETrue );
+        iSwInstaller.Uninstall( componentId, *iSifOptions, *iSifResults, iStatus, ETrue );
         }
     else
         {
-        // Only uninstall if not in rom and is present
-        if ( !entry.IsInRomL() && entry.IsPresentL() )
-            { 
-            if ( aUninstallParams.iMode == ESilentInstall )
-                {
-                LOGGER_WRITE( "CSConAppInstaller::ProcessUninstallL : silent sis-uninstall" );
-                SwiUI::TUninstallOptionsPckg options;
-                iInstallerState = ESilentUninstalling;
-                iSWInst.SilentUninstall( iStatus, aUninstallParams.iUid, options, KSISMIMEType );
-                }
-            else
-                {
-                LOGGER_WRITE( "CSConAppInstaller::ProcessUninstallL : unsilent sis-uninstall" )
-                iInstallerState = EUninstalling;
-                iSWInst.Uninstall( iStatus, aUninstallParams.iUid, KSISMIMEType );
-                }
-            }
-        else
-            {
-            LOGGER_WRITE( "CSConAppInstaller::ProcessUninstallL sis not present -> Leave" );
-            User::Leave( KErrNotFound );
-            }
+        iSwInstaller.Uninstall( componentId, *iSifOptions, *iSifResults, iStatus, ETrue );
         }
-    
-    CleanupStack::PopAndDestroy( &entry );
-	CleanupStack::PopAndDestroy( &sisRegistry );
-	TRACE_FUNC_EXIT;
-	}
-
-// -----------------------------------------------------------------------------
-// CSConAppInstaller::UninstallJavaL( const TUid& aUid, const TSConInstallMode aMode )
-// Uninstall java package
-// -----------------------------------------------------------------------------
-//
-void CSConAppInstaller::UninstallJavaL( const TUid& aUid, const TSConInstallMode aMode )
-	{
-	TRACE_FUNC_ENTRY;
-	CJavaRegistry* javaRegistry = CJavaRegistry::NewLC( );
-	TBool entryExist = javaRegistry->RegistryEntryExistsL( aUid );
-	CleanupStack::PopAndDestroy( javaRegistry ); 
-	
-    if( entryExist )
-        {
-        if( aMode == ESilentInstall )
-            {
-            LOGGER_WRITE( "CSConAppInstaller::UninstallJavaL : silent midlet-uninstall" )
-            SwiUI::TUninstallOptionsPckg options;
-            iInstallerState = ESilentUninstalling;
-            iSWInst.SilentUninstall( iStatus, aUid, options, KMidletMIMEType );
-            }
-        else
-            {
-            LOGGER_WRITE( "CSConAppInstaller::UninstallJavaL : unsilent midlet-uninstall" )
-            iInstallerState = EUninstalling;
-            iSWInst.Uninstall( iStatus, aUid, KMidletMIMEType );
-            }
-        }
-    else
-        {
-        LOGGER_WRITE( "CSConAppInstaller::UninstallJavaL java entry does not exist -> Leave" )
-        User::Leave( KErrNotFound );
-        }
+    SetActive();
     TRACE_FUNC_EXIT;
-	}
-
-// -----------------------------------------------------------------------------
-// CSConAppInstaller::UninstallWidget( const TUid& aUid, const TSConInstallMode aMode )
-// Uninstall widget
-// -----------------------------------------------------------------------------
-//
-void CSConAppInstaller::UninstallWidget( const TUid& aUid, const TSConInstallMode aMode )
-	{
-	TRACE_FUNC_ENTRY;
-	if( aMode == ESilentInstall )
-        {
-        LOGGER_WRITE( "CSConAppInstaller::UninstallWidget : silent uninstall" )
-        SwiUI::TUninstallOptionsPckg options;
-        iInstallerState = ESilentUninstalling;
-        iSWInst.SilentUninstall( iStatus, aUid, options, KWidgetMimeType );
-        }
-    else
-        {
-        LOGGER_WRITE( "CSConAppInstaller::UninstallWidget : unsilent uninstall" )
-        iInstallerState = EUninstalling;
-        iSWInst.Uninstall( iStatus, aUid, KWidgetMimeType );
-        }
-	TRACE_FUNC_EXIT;
-	}
-
+    }
     
 //--------------------------------------------------------------------------------
 //void CSConAppInstaller::ProcessListInstalledAppsL()