webengine/wrtharvester/src/wrtharvester.cpp
changeset 26 cb62a4f66ebe
parent 15 60c5402cb945
child 27 6297cdf66332
equal deleted inserted replaced
25:0ed94ceaa377 26:cb62a4f66ebe
    24 
    24 
    25 #include "wrtharvesterconst.h"
    25 #include "wrtharvesterconst.h"
    26 #include <widgetregistryconstants.h>
    26 #include <widgetregistryconstants.h>
    27 #include <wrtharvester.rsg>
    27 #include <wrtharvester.rsg>
    28 
    28 
    29 #include <implementationproxy.h>
    29 #include <ecom/implementationproxy.h>
    30 
    30 
    31 #include <LiwServiceHandler.h>
    31 #include <LiwServiceHandler.h>
    32 #include <LiwVariant.h>
    32 #include <LiwVariant.h>
    33 #include <LiwGenericParam.h>
    33 #include <LiwGenericParam.h>
    34 #include <e32property.h>    //Publish & Subscribe
    34 #include <e32property.h>    //Publish & Subscribe
   227     iWidgetUsbListener = CWrtUsbHandler::NewL( this, iFs );
   227     iWidgetUsbListener = CWrtUsbHandler::NewL( this, iFs );
   228     
   228     
   229     iWidgetUsbListener->Start();
   229     iWidgetUsbListener->Start();
   230     SetMSMode(0);
   230     SetMSMode(0);
   231     
   231     
       
   232     iCanAccessRegistry = ETrue;    
       
   233 	iReinstallingWidget = EFalse;
       
   234 	
       
   235 	    
   232     TFileName resourceFileName;  
   236     TFileName resourceFileName;  
   233     TParse parse;    
   237     TParse parse;    
   234     Dll::FileName (resourceFileName);           
   238     Dll::FileName (resourceFileName);           
   235     parse.Set(KResourceFileName, &resourceFileName, NULL); 
   239     parse.Set(KResourceFileName, &resourceFileName, NULL); 
   236     resourceFileName = parse.FullName(); 
   240     resourceFileName = parse.FullName(); 
   276     iWidgetStateArray.ResetAll();
   280     iWidgetStateArray.ResetAll();
   277     delete iWidgetUIListener;
   281     delete iWidgetUIListener;
   278     delete iWidgetRegListener;
   282     delete iWidgetRegListener;
   279     delete iWidgetMMCListener;
   283     delete iWidgetMMCListener;
   280     delete iWidgetUsbListener;
   284     delete iWidgetUsbListener;
       
   285     if(iAsyncCallBack)
       
   286         {
       
   287         iAsyncCallBack->Cancel();       
       
   288         }
       
   289     delete iAsyncCallBack;
       
   290     iAsyncCallBack = NULL;
       
   291     iUid.Close();
   281     iWidgetOperations.Close();
   292     iWidgetOperations.Close();
   282     iHSWidgets.ResetAndDestroy();
   293     iHSWidgets.ResetAndDestroy();
   283     iApaSession.Close();
   294     iApaSession.Close();
   284     }
   295     }
   285     
   296     
   383 // 
   394 // 
   384 // ----------------------------------------------------------------------------
   395 // ----------------------------------------------------------------------------
   385 //
   396 //
   386 void CWrtHarvester::UpdatePublishersL() 
   397 void CWrtHarvester::UpdatePublishersL() 
   387     {
   398     {
       
   399     if(iReinstallingWidget)
       
   400         {        
       
   401         iReinstallingWidget = EFalse;
       
   402         return;
       
   403         }
   388     iRegistryAccess.WidgetInfosL( iWidgetInfo );
   404     iRegistryAccess.WidgetInfosL( iWidgetInfo );
   389     RemoveObsoletePublishersL();
   405     RemoveObsoletePublishersL();
   390     
   406     
   391     for( TInt i = iWidgetInfo.Count() - 1; i >= 0; --i )
   407     for( TInt i = iWidgetInfo.Count() - 1; i >= 0; --i )
   392         {
   408         {
   793 void CWrtHarvester::QueueResumeL( TUid& aUid )
   809 void CWrtHarvester::QueueResumeL( TUid& aUid )
   794     {
   810     {
   795     RWidgetRegistryClientSession session;
   811     RWidgetRegistryClientSession session;
   796     CleanupClosePushL( session );
   812     CleanupClosePushL( session );
   797     User::LeaveIfError( session.Connect() );
   813     User::LeaveIfError( session.Connect() );
   798     if ( session.IsBlanketPermGranted ( aUid ) == EBlanketUnknown && !iDialogShown )
   814     TBool preInstalled = *(session.GetWidgetPropertyValueL( aUid, EPreInstalled ) );
       
   815     
       
   816     // Set blanket permission to true for pre-installed widgets
       
   817     if ( preInstalled )
       
   818         {
       
   819         session.SetBlanketPermissionL( aUid, EBlanketTrue );
       
   820         }
       
   821     
       
   822     if ( session.IsBlanketPermGranted ( aUid ) == EBlanketUnknown && !iDialogShown 
       
   823          &&  iCanAccessRegistry  )
   799         {
   824         {
   800         iDialogShown = ETrue;            
   825         iDialogShown = ETrue;            
   801         AllowPlatformAccessL( aUid );
   826         AllowPlatformAccessL( aUid );
   802         }
   827         }
   803     else if(!iDialogShown)
   828     else if(session.IsBlanketPermGranted ( aUid ) == EBlanketUnknown)
       
   829         {
       
   830         iUid.Append(aUid);
       
   831         }
       
   832     else
   804         {
   833         {
   805         QueueOperationL( WidgetResume, aUid );
   834         QueueOperationL( WidgetResume, aUid );
   806         }        
   835         }        
   807     CleanupStack::PopAndDestroy( &session );
   836     CleanupStack::PopAndDestroy( &session );
   808     }
   837     }
   876     User::LeaveIfError( session.Connect() );
   905     User::LeaveIfError( session.Connect() );
   877     TBool networkAccess = *(session.GetWidgetPropertyValueL( aUid, EAllowNetworkAccess ) );
   906     TBool networkAccess = *(session.GetWidgetPropertyValueL( aUid, EAllowNetworkAccess ) );
   878     CleanupStack::PopAndDestroy( &session );
   907     CleanupStack::PopAndDestroy( &session );
   879     
   908     
   880     return networkAccess;
   909     return networkAccess;
       
   910     }
       
   911 // ----------------------------------------------------------------------------
       
   912 // 
       
   913 // ----------------------------------------------------------------------------
       
   914 //
       
   915 TInt CWrtHarvester::DeleteCallback(TAny* aPtr)
       
   916     {
       
   917     CWrtHarvester* self = (CWrtHarvester*)aPtr;    
       
   918     self->QueueResumeL(self->iUid[0]);
       
   919     self->iUid.Remove(0);    
       
   920     delete self->iAsyncCallBack;
       
   921     self->iAsyncCallBack = NULL;
       
   922     return 0;
       
   923     }
       
   924 
       
   925 // ----------------------------------------------------------------------------
       
   926 // 
       
   927 // ----------------------------------------------------------------------------
       
   928 //
       
   929 void CWrtHarvester::DialogShown()
       
   930     {
       
   931     iDialogShown = EFalse;
       
   932     if(iUid.Count())
       
   933         {
       
   934         iAsyncCallBack = new (ELeave) CAsyncCallBack(TCallBack(DeleteCallback,this),CActive::EPriorityUserInput);
       
   935         iAsyncCallBack->CallBack(); 
       
   936         }
   881     }
   937     }
   882 
   938 
   883 // ----------------------------------------------------------------------------
   939 // ----------------------------------------------------------------------------
   884 // 
   940 // 
   885 // ----------------------------------------------------------------------------
   941 // ----------------------------------------------------------------------------