contentstorage/cahandler/app/src/caapphandler.cpp
changeset 94 dbb8300717f7
parent 92 782e3408c2ab
child 96 5d243a69bdda
equal deleted inserted replaced
93:82b66994846c 94:dbb8300717f7
    27 #include <usif/usifcommon.h>
    27 #include <usif/usifcommon.h>
    28 #include <usif/scr/scr.h>
    28 #include <usif/scr/scr.h>
    29 
    29 
    30 #include "caapphandler.h"
    30 #include "caapphandler.h"
    31 #include "cainnerentry.h"
    31 #include "cainnerentry.h"
    32 #include "cauninstalloperation.h"
       
    33 #include "causifuninstalloperation.h"
    32 #include "causifuninstalloperation.h"
    34 #include "catasklist.h"
    33 #include "catasklist.h"
    35 
    34 
    36 #include "cautils.h"
    35 #include "cautils.h"
    37 #include "cadef.h"
    36 #include "cadef.h"
    43 //
    42 //
    44 // ---------------------------------------------------------------------------
    43 // ---------------------------------------------------------------------------
    45 //
    44 //
    46 CCaAppHandler::~CCaAppHandler()
    45 CCaAppHandler::~CCaAppHandler()
    47 {
    46 {
    48     delete iUninstallOperation;
       
    49     delete iUsifUninstallOperation;
    47     delete iUsifUninstallOperation;
    50 }
    48 }
    51 
    49 
    52 // ---------------------------------------------------------------------------
    50 // ---------------------------------------------------------------------------
    53 //
    51 //
    67 // ---------------------------------------------------------
    65 // ---------------------------------------------------------
    68 //
    66 //
    69 CCaAppHandler::CCaAppHandler()
    67 CCaAppHandler::CCaAppHandler()
    70 {
    68 {
    71     iEikEnv = CEikonEnv::Static();
    69     iEikEnv = CEikonEnv::Static();
    72     iUninstallOperation = NULL;
       
    73     iUsifUninstallOperation = NULL;
    70     iUsifUninstallOperation = NULL;
    74 }
    71 }
    75 
    72 
    76 // ---------------------------------------------------------------------------
    73 // ---------------------------------------------------------------------------
    77 //
    74 //
   224 // ---------------------------------------------------------------------------
   221 // ---------------------------------------------------------------------------
   225 //
   222 //
   226 // ---------------------------------------------------------------------------
   223 // ---------------------------------------------------------------------------
   227 //
   224 //
   228 void CCaAppHandler::HandleRemoveL( CCaInnerEntry &aEntry )
   225 void CCaAppHandler::HandleRemoveL( CCaInnerEntry &aEntry )
   229 {
   226     {
   230     if (!( aEntry.GetFlags() & ERemovable ) )
   227     if( !( aEntry.GetFlags() & ERemovable ) )
   231         {
   228         {
   232         User::Leave( KErrAccessDenied );
   229         User::Leave( KErrAccessDenied );
   233         }
   230         }
   234     if ( aEntry.GetEntryTypeName() == KCaTypeApp() )
   231     
   235         {
   232     const TPtrC entryTypeName(aEntry.GetEntryTypeName());
   236         TComponentId componentId( GetComponentIdL( aEntry,KSoftwareTypeJava ) );
   233     
   237         if ( componentId != KErrNotFound )
   234     if( entryTypeName == KCaTypeApp()  ||
   238             {
   235         entryTypeName == KCaTypePackage() ||
   239             StartUsifUninstallL( componentId );
   236         entryTypeName == KCaTypeWidget() )
   240             }
       
   241         else
       
   242             {
       
   243             StartSwiUninstallL( aEntry );
       
   244             }
       
   245         }
       
   246     else if ( aEntry.GetEntryTypeName() == KCaTypeWidget() )
       
   247         {
       
   248         StartSwiUninstallL( aEntry );
       
   249         }
       
   250     else if( aEntry.GetEntryTypeName() == KCaTypePackage() )
       
   251         {
   237         {
   252         TPtrC componentId;
   238         TPtrC componentId;
   253         if ( aEntry.FindAttribute( KCaAttrComponentId, componentId ) )
   239         TBool result = aEntry.FindAttribute( KCaAttrComponentId, componentId );
       
   240         if( result )
   254             {
   241             {
   255             TInt32 id ;
   242             TInt32 id ;
   256             TLex idDesc;
   243             TLex idDesc;
   257             idDesc.Assign( componentId );
   244             idDesc.Assign( componentId );
   258             User::LeaveIfError( idDesc.Val( id ) );
   245             User::LeaveIfError( idDesc.Val( id ) );
   259             StartUsifUninstallL( id );
   246             StartUsifUninstallL( id );
   260             }
   247             }
       
   248          else
       
   249             {
       
   250             User::Leave( KErrNotFound );
       
   251             }
   261         }
   252         }
   262     else
   253     else
   263         {
   254         {
   264         User::Leave( KErrNotSupported );
   255         User::Leave( KErrNotSupported );
   265         }
   256         }
   266 }
   257     }
   267 
   258 
   268 // ---------------------------------------------------------------------------
   259 // ---------------------------------------------------------------------------
   269 //
   260 //
   270 // ---------------------------------------------------------------------------
   261 // ---------------------------------------------------------------------------
   271 //
   262 //
   305     delete iUsifUninstallOperation;
   296     delete iUsifUninstallOperation;
   306     iUsifUninstallOperation = NULL;
   297     iUsifUninstallOperation = NULL;
   307     iUsifUninstallOperation = CCaUsifUninstallOperation::NewL( aComponentId );
   298     iUsifUninstallOperation = CCaUsifUninstallOperation::NewL( aComponentId );
   308 }
   299 }
   309 
   300 
   310 // ---------------------------------------------------------------------------
       
   311 //
       
   312 // ---------------------------------------------------------------------------
       
   313 //
       
   314 void CCaAppHandler::StartSwiUninstallL(CCaInnerEntry &aEntry )
       
   315 {
       
   316     if ( iUninstallOperation && iUninstallOperation->IsActive() )
       
   317         {
       
   318         User::Leave( KErrInUse );
       
   319         }
       
   320     delete iUninstallOperation;
       
   321     iUninstallOperation = NULL;
       
   322     iUninstallOperation = CCaUninstallOperation::NewL( aEntry );
       
   323 }