Revision: 201003 RCL_3 PDK_3.0.h
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 19 Feb 2010 22:57:02 +0200
branchRCL_3
changeset 9 51c0f5edf5ef
parent 5 aba6b8104af3
child 11 3ba40be8e484
Revision: 201003 Kit: 201007
appinstaller/AppMngr2/Sisx/src/appmngr2sisxappinfo.cpp
appinstaller/AppMngr2/help/data/xhtml.zip
appinstaller/AppMngr2/help/inc/am.hlp.hrh
appinstaller/AppMngr2/inc/appmngr2model.h
appinstaller/AppMngr2/src/appmngr2appui.cpp
appinstaller/AppMngr2/src/appmngr2filerecognizer.cpp
appinstaller/AppMngr2/src/appmngr2listcontainer.cpp
appinstaller/AppMngr2/src/appmngr2listview.cpp
appinstaller/AppMngr2/src/appmngr2model.cpp
appinstaller/AppinstUi/Server/Data/SWInstSvrUI_reg.rss
appinstaller/AppinstUi/Server/Src/SWInstInstallRequest.cpp
iaupdate/IAD/ui/group/iaupdate.rss
iaupdate/IAD/ui/inc/iaupdate.hrh
iaupdate/IAD/ui/inc/iaupdateprivatecrkeys.h
iaupdate/IAD/ui/inc/iaupdateroaminghandler.h
iaupdate/IAD/ui/inc/iaupdatesettingdialog.h
iaupdate/IAD/ui/inc/iaupdateuicontroller.h
iaupdate/IAD/ui/src/iaupdateroaminghandler.cpp
iaupdate/IAD/ui/src/iaupdatesettingdialog.cpp
iaupdate/IAD/ui/src/iaupdateuicontroller.cpp
installationservices/swi/source/securitymanager/certchainconstraints.cpp
ncdengine/engine/transport/src/catalogshttpstack.cpp
ncdengine/provider/deviceinteraction/inc/ncdinstallationserviceimpl.h
--- a/appinstaller/AppMngr2/Sisx/src/appmngr2sisxappinfo.cpp	Tue Feb 02 00:20:15 2010 +0200
+++ b/appinstaller/AppMngr2/Sisx/src/appmngr2sisxappinfo.cpp	Fri Feb 19 22:57:02 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2003-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2003-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -235,13 +235,14 @@
     {
     FLOG( "CAppMngr2SisxAppInfo::ConstructL()" );
     CAppMngr2AppInfo::ConstructL();     // base construct
-    
+
     iAppUid = aEntry.UidL();
     FLOG( "CAppMngr2SisxAppInfo::ConstructL, iAppUid = 0x%08x", iAppUid.iUid );
     iName = aEntry.PackageNameL();
     FLOG( "CAppMngr2SisxAppInfo::ConstructL, iName = %S", iName );
     iDetails = SizeStringWithUnitsL( aEntry.SizeL() );
-    FLOG( "CAppMngr2SisxAppInfo::ConstructL, iDetails = %S", iDetails );
+    FLOG( "CAppMngr2SisxAppInfo::ConstructL, aEntry.SizeL() = %Ld, iDetails = %S",
+            aEntry.SizeL(), iDetails );
 
     TUint drivesMask = aEntry.InstalledDrivesL();
     if( drivesMask )
@@ -263,7 +264,7 @@
 
     iVersion = aEntry.VersionL();
     iVendor = aEntry.LocalizedVendorNameL();
-    
+
     iIsAugmentation = aEntry.IsAugmentationL();
     if( iIsAugmentation )
         {
@@ -272,7 +273,7 @@
         delete pkg;
         }
 
-    Swi::TSisPackageTrust trustLevel = aEntry.TrustL();  
+    Swi::TSisPackageTrust trustLevel = aEntry.TrustL();
     if( trustLevel >= Swi::ESisPackageCertificateChainValidatedToTrustAnchor )
         {
         iIsTrusted = ETrue;
@@ -296,8 +297,8 @@
                 FLOG( "CAppMngr2SisxAppInfo::ConstructL, protected file %S", fileName );
                 iProtectedFile = fileName;  // takes ownership
                 files.Remove( fileIndex );
-                iIsRightsObjectMissingOrExpired = 
-                    TAppMngr2DRMUtils::IsDRMRightsObjectExpiredOrMissingL( *fileName ); 
+                iIsRightsObjectMissingOrExpired =
+                    TAppMngr2DRMUtils::IsDRMRightsObjectExpiredOrMissingL( *fileName );
                 }
             }
         CleanupStack::PopAndDestroy( &files );
@@ -316,21 +317,21 @@
     {
     FLOG( "CAppMngr2SisxAppInfo::ShowDetailsL()" );
     TRAP_IGNORE( ReadCertificatesL() );
-    
+
     CAppMngr2SisxInfoIterator* iterator = CAppMngr2SisxInfoIterator::NewL( *this,
             EAppMngr2StatusInstalled );
     CleanupStack::PushL( iterator );
-    
+
     SwiUI::CommonUI::CCUIDetailsDialog* details = SwiUI::CommonUI::CCUIDetailsDialog::NewL();
     FLOG( "CAppMngr2SisxAppInfo::ShowDetailsL, isDRM %d, noRightsObj %d, CertCount %d",
             iIsDRMProtected, iIsRightsObjectMissingOrExpired, iCertificates.Count() );
-    
+
     if( iIsDRMProtected && !iIsRightsObjectMissingOrExpired )
         {
         RFile fileHandle;
         TInt err = fileHandle.Open( iFs, *iProtectedFile, EFileShareReadersOnly | EFileRead );
         CleanupClosePushL( fileHandle );
-        
+
         if( iCertificates.Count() )
             {
             details->ExecuteLD( *iterator, iCertificates, fileHandle );
@@ -353,7 +354,7 @@
             details->ExecuteLD( *iterator );
             }
         }
-    
+
     CleanupStack::PopAndDestroy( iterator );
     }
 
@@ -366,7 +367,7 @@
     if( !iCertsRead )
         {
         FLOG_PERF_STATIC_BEGIN( SisxAppInfo_ReadCerts );
-        
+
         Swi::RSisRegistrySession regSession;
         CleanupClosePushL( regSession );
         User::LeaveIfError( regSession.Connect() );
@@ -400,7 +401,7 @@
         CleanupStack::PopAndDestroy( &entry );
         CleanupStack::PopAndDestroy( &regSession );
         iCertsRead = ETrue;
-        
+
         FLOG_PERF_STATIC_END( SisxAppInfo_ReadCerts )
         }
     }
@@ -424,14 +425,14 @@
         {
         User::Leave( KErrInUse );
         }
-    
+
     if( iIsAugmentation )
         {
         FLOG( "CAppMngr2SisxAppInfo::HandleUninstallL, is augmentation" );
         SwiUI::TOpUninstallIndexParam params;
         params.iUid = iAppUid;
         params.iIndex = iAugmentationIndex;
-        
+
         SwiUI::TOpUninstallIndexParamPckg pckg( params );
         if( iSWInstLauncherCustomUninstallParams )
             {
Binary file appinstaller/AppMngr2/help/data/xhtml.zip has changed
--- a/appinstaller/AppMngr2/help/inc/am.hlp.hrh	Tue Feb 02 00:20:15 2010 +0200
+++ b/appinstaller/AppMngr2/help/inc/am.hlp.hrh	Fri Feb 19 22:57:02 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -10,8 +10,8 @@
 * Nokia Corporation - initial contribution.
 *
 * Contributors:
-*
-* Description: 
+* 
+* Description:
 *
 */
 	
--- a/appinstaller/AppMngr2/inc/appmngr2model.h	Tue Feb 02 00:20:15 2010 +0200
+++ b/appinstaller/AppMngr2/inc/appmngr2model.h	Fri Feb 19 22:57:02 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -52,15 +52,15 @@
 
 public:     // new functions
     TInt AppInfoCount() const;
-    CAppMngr2AppInfo& AppInfo( TInt aIndex ) const; 
+    CAppMngr2AppInfo& AppInfo( TInt aIndex ) const;
     TInt PackageInfoCount() const;
-    CAppMngr2PackageInfo& PackageInfo( TInt aIndex ) const; 
+    CAppMngr2PackageInfo& PackageInfo( TInt aIndex ) const;
     void LoadIconsL( CAknIconArray& aIconArray );
     void GetIconIndexesL( TUid aUid, TInt& aIconIndexBase, TInt& aIconIndexMax ) const;
     void HandleCommandL( CAppMngr2InfoBase& aInfo, TInt aCommand );
     void StartFetchingInstallationFilesL();
     void StartFetchingInstalledAppsL();
-    
+
 protected:  // from CActive
     void DoCancel();
     void RunL();
@@ -68,7 +68,7 @@
 public:     // from MAppMngr2RuntimeObserver
     void RefreshInstalledApps();
     void RefreshInstallationFiles();
-    
+
 public:     // from MAppMngr2ScannerObserver
     void ScanningResultL( RPointerArray<CAppMngr2RecognizedFile>& aResult );
     void ScanningComplete();
@@ -87,7 +87,7 @@
 
 public:     // from MAppMngr2InfoArrayObserver
     void ArrayContentChanged( CAppMngr2InfoArray* aArray, TInt aMoreRefreshesExpected );
-    
+
 private:    // new functions
     CAppMngr2Model( RFs& aFsSession, MAppMngr2ModelObserver& aObserver );
     void ConstructL();
@@ -110,7 +110,9 @@
     CAppMngr2InfoBase* iActiveItem; // not owned
     TInt iActiveCommand;
     TBool iClosing;
-    
+    TBool iFetchingInstallationFiles;
+    TBool iFetchingInstalledApps;
+
     FLOG_PERF_DEFINE( FetchInstallationFiles )
     FLOG_PERF_DEFINE( FetchInstalledApps )
     };
--- a/appinstaller/AppMngr2/src/appmngr2appui.cpp	Tue Feb 02 00:20:15 2010 +0200
+++ b/appinstaller/AppMngr2/src/appmngr2appui.cpp	Fri Feb 19 22:57:02 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -49,7 +49,7 @@
     wsSession.ComputeMode( RWsSession::EPriorityControlDisabled );
 
     FeatureManager::InitializeLibL();
-    
+
     TFileName* fullName = TAppMngr2DriveUtils::NearestResourceFileLC(
             KSWInstCommonUIResourceFileName, iEikonEnv->FsSession() );
     FLOG( "CAppMngr2AppUi::ConstructL, opening %S", fullName );
@@ -58,7 +58,7 @@
 
     FLOG( "CAppMngr2AppUi::ConstructL, creting model" );
     iModel = CAppMngr2Model::NewL( iEikonEnv->FsSession(), *this );
-   
+
     FLOG( "CAppMngr2AppUi::ConstructL, creting views" );
     CAppMngr2InstalledView* installedView = CAppMngr2InstalledView::NewL();
     AddViewL( installedView );  // takes ownership
@@ -92,7 +92,7 @@
         {
         ActivateLocalViewL( KInstalledViewId );
         }
-    
+
     FLOG( "CAppMngr2AppUi::ConstructL, starting delayed construct" );
     iIdle = CIdle::NewL( CActive::EPriorityStandard );
     iIdle->Start( TCallBack( &CAppMngr2AppUi::DelayedConstructL, this ) );
@@ -180,35 +180,20 @@
         CAppMngr2AppUi* self = static_cast<CAppMngr2AppUi*>( aSelf );
         FLOG( "CAppMngr2AppUi::DelayedConstructL, step %d",
                 self->iDelayedConstructionStep );
-        switch( self->iDelayedConstructionStep )
-            {
-            case EFirstStep:
-                if( self->iConstructInstallationFilesFirst )
-                    {
-                    self->iModel->StartFetchingInstallationFilesL();
-                    }
-                else
-                    {
-                    self->iModel->StartFetchingInstalledAppsL();
-                    }
-                self->iDelayedConstructionStep = ESecondStep;
-                return ETrue; // call DelayedConstruct again
 
-            case ESecondStep:
-                if( self->iConstructInstallationFilesFirst )
-                    {
-                    self->iModel->StartFetchingInstalledAppsL();
-                    }
-                else
-                    {
-                    self->iModel->StartFetchingInstallationFilesL();
-                    }
-                self->iDelayedConstructionStep = EAllDone;
-                break;
-                
-            default:
-                break;
+        // Only necessary part of the model is constructed. AppMngr2 runs
+        // as embedded application in Control panel. It is started either
+        // to display installed applications, or installation files.
+        if( self->iConstructInstallationFilesFirst )
+            {
+            self->iModel->StartFetchingInstallationFilesL();
             }
+        else
+            {
+            self->iModel->StartFetchingInstalledAppsL();
+            }
+
+        self->iDelayedConstructionStep = EAllDone;
         }
     return EFalse; // all done
     }
--- a/appinstaller/AppMngr2/src/appmngr2filerecognizer.cpp	Tue Feb 02 00:20:15 2010 +0200
+++ b/appinstaller/AppMngr2/src/appmngr2filerecognizer.cpp	Fri Feb 19 22:57:02 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -200,10 +200,10 @@
         
         HBufC* mimeType = HBufC::NewLC( KMaxDataTypeLength );
         TPtr mimePtr( mimeType->Des() );
-        content->GetStringAttribute( ContentAccess::EMimeType, mimePtr );
-        
+        User::LeaveIfError( content->GetStringAttribute( ContentAccess::EMimeType, mimePtr ) );
+
         CAppMngr2RecognizedFile* recFile = CAppMngr2RecognizedFile::NewL( fullName, mimeType );
-        CleanupStack::Pop( mimeType );
+        CleanupStack::Pop( mimeType );		// CAppMngr2RecognizedFile takes ownership
         CleanupStack::PopAndDestroy( content );
         CleanupStack::Pop( fullName );
         
--- a/appinstaller/AppMngr2/src/appmngr2listcontainer.cpp	Tue Feb 02 00:20:15 2010 +0200
+++ b/appinstaller/AppMngr2/src/appmngr2listcontainer.cpp	Fri Feb 19 22:57:02 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -64,7 +64,7 @@
 TKeyResponse CAppMngr2ListContainer::OfferKeyEventL(
         const TKeyEvent& aKeyEvent, TEventCode aType )
     {
-    TKeyResponse response = iListBox->OfferKeyEventL( aKeyEvent, aType ); 
+    TKeyResponse response = iListBox->OfferKeyEventL( aKeyEvent, aType );
     if( aKeyEvent.iCode == EKeyUpArrow || aKeyEvent.iCode == EKeyDownArrow )
         {
         iView.UpdateMiddleSoftkeyCommandL();
@@ -178,8 +178,9 @@
 void CAppMngr2ListContainer::RefreshL( TBool aPreserveSelectedItem,
         TBool& aSelectedItemChanged, TInt aMoreRefreshesExpected )
     {
-    FLOG( "CAppMngr2ListContainer::RefreshL( %d )", aPreserveSelectedItem );
-    
+    FLOG( "CAppMngr2ListContainer::RefreshL( %d %d %d ) begin",
+            aPreserveSelectedItem, aSelectedItemChanged, aMoreRefreshesExpected );
+
     // Record the item text of the current item if selection must be preserved in
     // the current item. The item text is used to identify the item later, so that
     // it can be selected again.
@@ -195,7 +196,7 @@
     CreateItemArrayL();                         // resets the item array
     PopulateItemArrayL();                       // fills in new items
     iListBox->HandleItemAdditionL();            // re-calculates size and scrollbar
-    
+
     // If selection must be preserved, search the item in new item array
     // and select it again. Make sure to delete itemText if it was allocated.
     TBool currentItemSet = EFalse;
@@ -212,7 +213,7 @@
             }
         CleanupStack::PopAndDestroy( itemText );
         }
-    
+
     // If item is not found (it may have been deleted), then tell to the
     // caller that the selected item was changed and select another item
     // from the same row number than the previously selected item.
@@ -232,6 +233,8 @@
             iListBox->SetCurrentItemIndex( currentItemIndex );
             }
         }
+
+    FLOG( "CAppMngr2ListContainer::RefreshL() end" );
     }
 
 // ---------------------------------------------------------------------------
@@ -246,19 +249,19 @@
     iListBox->SetContainerWindowL( *this );
     iListBox->ConstructL( this, EAknListBoxSelectionList );
     iListBox->SetListBoxObserver( this );
-    
+
     // Dont display default "(no data)" empty text
     iListBox->View()->SetListEmptyTextL( KNullDesC );
 
     LoadIconsL();
     CreateItemArrayL();
     PopulateItemArrayL();
-    
+
     iListBox->CreateScrollBarFrameL();
     iListBox->ScrollBarFrame()->SetScrollBarVisibilityL(
             CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto );
     iListBox->SetRect( aRect.Size() );
-    
+
     // Enable marquee effect
     iListBox->ItemDrawer()->ColumnData()->EnableMarqueeL( ETrue );
     }
@@ -311,10 +314,10 @@
 void CAppMngr2ListContainer::PopulateItemArrayL()
     {
     FLOG( "CAppMngr2ListContainer::PopulateItemArrayL()" );
-    
+
     CArrayPtr<CGulIcon>* iconArray = iListBox->ItemDrawer()->ColumnData()->IconArray();
     DeleteItemSpecificIcons( *iconArray );
-    
+
     TInt count = ItemCount();
     for( TInt index = 0; index < count; index++ )
         {
@@ -329,10 +332,10 @@
         TInt iconIndexMax;
         Model().GetIconIndexesL( appInfo.Runtime().RuntimeUid(),
                 iconIndexBase, iconIndexMax );
-        
+
         // Get list icon index from plugin
         TInt iconIndex = appInfo.IconIndex();
-        
+
         // Convert index into the range of 0 .. (icons - 1)
         if( iconIndex == EAppMngr2UseSpecificIcon )
             {
@@ -366,7 +369,7 @@
                 iconIndex = EAppMngr2IconIndex_QgnPropUnknown;
                 }
             }
-        // Sanity check - index must be in range, otherwise list panics 
+        // Sanity check - index must be in range, otherwise list panics
         if( iconIndex < 0 || iconIndex >= iconArray->Count() )
             {
             iconIndex = EAppMngr2IconIndex_QgnPropUnknown;
@@ -374,7 +377,7 @@
 
         // Get indicator icon index from plugin
         TInt indIconIndex = appInfo.IndicatorIconIndex();
-        
+
         // Convert indicator icon index into the range of 0 .. (icons-1) or
         // leave special value EAppMngr2NoIndicatorIcon in it
         if( indIconIndex == EAppMngr2UseSpecificIcon )
--- a/appinstaller/AppMngr2/src/appmngr2listview.cpp	Tue Feb 02 00:20:15 2010 +0200
+++ b/appinstaller/AppMngr2/src/appmngr2listview.cpp	Fri Feb 19 22:57:02 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -45,24 +45,24 @@
 // ======== MEMBER FUNCTIONS ========
 
 // ---------------------------------------------------------------------------
-// CAppMngr2ListView::ConstructL() 
+// CAppMngr2ListView::ConstructL()
 // ---------------------------------------------------------------------------
 //
 void CAppMngr2ListView::ConstructL( TInt aResourceId )
     {
     FLOG( "CAppMngr2ListView::ConstructL( 0x%08x )", aResourceId );
-    
+
     BaseConstructL( aResourceId );
     }
 
 // ---------------------------------------------------------------------------
-// CAppMngr2ListView::~CAppMngr2ListView() 
+// CAppMngr2ListView::~CAppMngr2ListView()
 // ---------------------------------------------------------------------------
 //
 CAppMngr2ListView::~CAppMngr2ListView()
     {
     FLOG( "CAppMngr2ListView::~CAppMngr2ListView" );
-    
+
     if( iContainer )
         {
         AppUi()->RemoveFromViewStack( *this, iContainer );
@@ -79,6 +79,8 @@
     {
     if( iContainer )
         {
+        FLOG( "CAppMngr2ListView::RefreshL( %d ) begin", aMoreRefreshesExpected );
+
         TBool selectedItemChanged = EFalse;
         iContainer->RefreshL( iMaintainFocus, selectedItemChanged, aMoreRefreshesExpected );
         if( selectedItemChanged )
@@ -95,6 +97,8 @@
             delete iInfoPopup;
             iInfoPopup = NULL;
             }
+
+        FLOG( "CAppMngr2ListView::RefreshL() end" );
         }
     }
 
@@ -105,7 +109,7 @@
 void CAppMngr2ListView::UpdateMiddleSoftkeyCommandL()
     {
     FLOG_PERF_STATIC_BEGIN( UpdateMiddleSoftkeyCommandL );
-    
+
     if( iContainer && !iContainer->IsListEmpty() )
         {
         // add item-specific MSK if the current item has one
@@ -133,7 +137,7 @@
             }
         SetDefaultMiddleSoftkeyCommandL();
         }
-    
+
     FLOG_PERF_STATIC_END( UpdateMiddleSoftkeyCommandL )
     }
 
@@ -165,7 +169,7 @@
 void CAppMngr2ListView::HandleCommandL( TInt aCommand )
     {
     FLOG( "CAppMngr2ListView::HandleCommandL( %d )", aCommand );
-    
+
     switch( aCommand )
         {
         case EAknSoftkeyBack:
@@ -201,12 +205,12 @@
     if( aResourceId == R_APPMNGR2_INSTALLED_MENU
             || aResourceId == R_APPMNGR2_PACKAGES_MENU )
         {
-        if( !FeatureManager::FeatureSupported( KFeatureIdHelp ) ) 
+        if( !FeatureManager::FeatureSupported( KFeatureIdHelp ) )
             {
             aMenuPane->SetItemDimmed( EAknCmdHelp, ETrue );
             }
 
-        // Keep the currently selected item focused in forthcoming list refreshes. 
+        // Keep the currently selected item focused in forthcoming list refreshes.
         iMaintainFocus = ETrue;
         }
     }
@@ -219,11 +223,11 @@
         TUid /*aCustomMessageId*/, const TDesC8& /*aCustomMessage*/ )
     {
     FLOG( "CAppMngr2ListView::DoActivateL, id 0x%08x", Id().iUid );
-    
+
     CAknTitlePane* titlePane = NULL;
     titlePane = static_cast<CAknTitlePane*>( StatusPane()->ControlL( KStatusPaneUid ) );
     SetTitleL( *titlePane );
-    
+
     if( iContainer == NULL )
         {
         iContainer = CreateContainerL();
@@ -252,7 +256,7 @@
 void CAppMngr2ListView::DoDeactivate()
     {
     FLOG( "CAppMngr2ListView::DoDeactivate, id 0x%08x", Id().iUid );
-    
+
     if( iContainer )
         {
         AppUi()->RemoveFromViewStack( *this, iContainer );
@@ -285,12 +289,12 @@
     if( aMenuPane )
         {
         FLOG_PERF_STATIC_BEGIN( AddDynamicMenuItemsL );
-        
+
         TInt position = 0;
         if( aMenuPane->MenuItemExists( EAppMngr2PlaceForPluginSpecificCmds, position ) )
             {
             aMenuPane->DeleteMenuItem( EAppMngr2PlaceForPluginSpecificCmds );
-    
+
             RPointerArray<CEikMenuPaneItem::SData> menuItems;
             CleanupResetAndDestroyPushL( menuItems );
 
@@ -307,7 +311,7 @@
 
             CleanupStack::PopAndDestroy( &menuItems );
             }
-        
+
         FLOG_PERF_STATIC_END( AddDynamicMenuItemsL )
         }
     }
@@ -328,7 +332,7 @@
                     iMiddleSoftkeyCommandId );
             }
         HBufC* middleSoftkeyLabel = StringLoader::LoadLC( aResourceId );
-        cba->AddCommandToStackL( CEikButtonGroupContainer::EMiddleSoftkeyPosition, 
+        cba->AddCommandToStackL( CEikButtonGroupContainer::EMiddleSoftkeyPosition,
                 aCommandId, *middleSoftkeyLabel );
         CleanupStack::PopAndDestroy( middleSoftkeyLabel );
         iMiddleSoftkeyCommandId = aCommandId;
--- a/appinstaller/AppMngr2/src/appmngr2model.cpp	Tue Feb 02 00:20:15 2010 +0200
+++ b/appinstaller/AppMngr2/src/appmngr2model.cpp	Fri Feb 19 22:57:02 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -133,7 +133,7 @@
 // CAppMngr2Model::PackageInfo()
 // ---------------------------------------------------------------------------
 //
-CAppMngr2PackageInfo& CAppMngr2Model::PackageInfo( TInt aIndex ) const 
+CAppMngr2PackageInfo& CAppMngr2Model::PackageInfo( TInt aIndex ) const
     {
     return *( reinterpret_cast< CAppMngr2PackageInfo* >( iInstallationFiles->At( aIndex ) ) );
     }
@@ -145,7 +145,7 @@
 void CAppMngr2Model::LoadIconsL( CAknIconArray& aIconArray )
     {
     LoadDefaultIconsL( aIconArray );
-    
+
     TInt pluginCount = iPlugins.Count();
     for( TInt index = 0; index < pluginCount; index++ )
         {
@@ -179,7 +179,7 @@
 void CAppMngr2Model::HandleCommandL( CAppMngr2InfoBase& aInfo, TInt aCommand )
     {
     FLOG( "CAppMngr2Model::HandleCommandL( %d ), IsActive() = %d", aCommand, IsActive() );
-    
+
     if( !IsActive() )
         {
         // About to start plugin specific command. Note that when the command completes
@@ -204,7 +204,7 @@
         iActiveItem = &aInfo;
         iActiveCommand = aCommand;
         FLOG( "CAppMngr2Model::HandleCommandL, iActiveItem = 0x%08x '%S'",
-                iActiveItem, &( iActiveItem->Name() ) ); 
+                iActiveItem, &( iActiveItem->Name() ) );
         TRAPD( err, iActiveItem->HandleCommandL( aCommand, iStatus ) );
         FLOG( "CAppMngr2Model::HandleCommandL, command started, err = %d", err );
         SetActive();
@@ -226,17 +226,22 @@
 //
 void CAppMngr2Model::StartFetchingInstallationFilesL()
     {
-    FLOG( "CAppMngr2Model::StartFetchingInstallationFilesL" );
-    FLOG_PERF_START( FetchInstallationFiles )
-    
-    // Installation files cache must be enabled until scanner has completed.
-    // This ensures that scanner has time to call GetInstallationFilesL() for
-    // each plugin and for each directory before the first call completes.
-    // If the first call completes before scanner has made all these requets,
-    // cache will be turned off and partial results are displayed.
-    iInstallationFiles->IncrementCacheUseStartingNewRoundL();
+    FLOG( "CAppMngr2Model::StartFetchingInstallationFilesL, fetching %d",
+            iFetchingInstallationFiles );
+    if( !iFetchingInstallationFiles )
+        {
+        FLOG_PERF_START( FetchInstallationFiles )
+        iFetchingInstallationFiles = ETrue;
 
-    iScanner->StartScanningL();
+        // Installation files cache must be enabled until scanner has completed.
+        // This ensures that scanner has time to call GetInstallationFilesL() for
+        // each plugin and for each directory before the first call completes.
+        // If the first call completes before scanner has made all these requets,
+        // cache will be turned off and partial results are displayed.
+        iInstallationFiles->IncrementCacheUseStartingNewRoundL();
+
+        iScanner->StartScanningL();
+        }
     }
 
 // ---------------------------------------------------------------------------
@@ -245,39 +250,44 @@
 //
 void CAppMngr2Model::StartFetchingInstalledAppsL()
     {
-    FLOG( "CAppMngr2Model::StartFetchingInstalledAppsL" );
-    FLOG_PERF_START( FetchInstalledApps )
-
-    // Additional cache increment to ensure that iInstalledApps cache is
-    // used until GetInstalledAppsL() function is called for each plugin.
-    // Without this, the fastest plugin might get it's list complete before
-    // other IncrementCacheUseL() calls and iInstalledApps would display
-    // partial list.
-    iInstalledApps->IncrementCacheUseStartingNewRoundL();
-    
-    TInt pluginCount = iPlugins.Count();
-    for( TInt pluginIndex = 0; pluginIndex < pluginCount; pluginIndex++ )
+    FLOG( "CAppMngr2Model::StartFetchingInstalledAppsL, fetching %d",
+            iFetchingInstalledApps );
+    if( !iFetchingInstalledApps )
         {
-        CAppMngr2AppInfoMaker* appInfoMaker = CAppMngr2AppInfoMaker::NewLC(
-                iPlugins[ pluginIndex ]->Runtime(), *this, iFs );
-        
-        TRAPD( err, appInfoMaker->StartGettingInstalledAppsL() );
-        FLOG( "CAppMngr2Model::StartFetchingInstalledAppsL, plugin 0x%08x, err = %d",
-                iPlugins[ pluginIndex ]->Runtime().RuntimeUid().iUid, err );
-        if( err == KErrNone )
+        FLOG_PERF_START( FetchInstalledApps )
+        iFetchingInstalledApps = ETrue;
+
+        // Additional cache increment to ensure that iInstalledApps cache is
+        // used until GetInstalledAppsL() function is called for each plugin.
+        // Without this, the fastest plugin might get it's list complete before
+        // other IncrementCacheUseL() calls and iInstalledApps would display
+        // partial list.
+        iInstalledApps->IncrementCacheUseStartingNewRoundL();
+
+        TInt pluginCount = iPlugins.Count();
+        for( TInt pluginIndex = 0; pluginIndex < pluginCount; pluginIndex++ )
             {
-            iInfoMakers.AppendL( appInfoMaker );
-            CleanupStack::Pop( appInfoMaker );
-            iInstalledApps->IncrementCacheUseL();
+            CAppMngr2AppInfoMaker* appInfoMaker = CAppMngr2AppInfoMaker::NewLC(
+                    iPlugins[ pluginIndex ]->Runtime(), *this, iFs );
+
+            TRAPD( err, appInfoMaker->StartGettingInstalledAppsL() );
+            FLOG( "CAppMngr2Model::StartFetchingInstalledAppsL, plugin 0x%08x, err = %d",
+                    iPlugins[ pluginIndex ]->Runtime().RuntimeUid().iUid, err );
+            if( err == KErrNone )
+                {
+                iInfoMakers.AppendL( appInfoMaker );
+                CleanupStack::Pop( appInfoMaker );
+                iInstalledApps->IncrementCacheUseL();
+                }
+            else
+                {
+                CleanupStack::PopAndDestroy( appInfoMaker );
+                }
             }
-        else
-            {
-            CleanupStack::PopAndDestroy( appInfoMaker );
-            }
+
+        // All GetInstalledAppsL() requests have been issued
+        iInstalledApps->DecrementCacheUse();
         }
-
-    // All GetInstalledAppsL() requests have been issued
-    iInstalledApps->DecrementCacheUse();
     }
 
 // ---------------------------------------------------------------------------
@@ -287,7 +297,7 @@
 void CAppMngr2Model::DoCancel()
     {
     FLOG( "CAppMngr2Model::DoCancel, iActiveItem = 0x%08x", iActiveItem );
-    
+
     if( iActiveItem )
         {
         iActiveItem->CancelCommand();
@@ -324,7 +334,7 @@
 
         // Leave on error. This displays error note (if error notes are enabled).
         User::LeaveIfError( err );
-        
+
         // If the command is EAppMngr2CmdUninstall or EAppMngr2CmdRemove, and it
         // completed without errors, then we remove the current item immediatelty
         // from the displayed list. Otherwise it may take quite long time until
@@ -355,7 +365,7 @@
 void CAppMngr2Model::RefreshInstalledApps()
     {
     FLOG( "CAppMngr2Model::RefreshInstalledApps" );
-    
+
     TRAP_IGNORE( StartFetchingInstalledAppsL() );
     }
 
@@ -377,7 +387,7 @@
 void CAppMngr2Model::ScanningResultL( RPointerArray<CAppMngr2RecognizedFile>& aResult )
     {
     FLOG( "CAppMngr2Model::ScanningResultL, begin: aResult.Count() = %d", aResult.Count() );
-    
+
     // Split recognition result array into smaller (plugin specific) arrays. Plugin
     // specific arrays are maintained by CAppMngr2PackageInfoMaker objects, so one
     // CAppMngr2PackageInfoMaker object is needed for each plugin that has recognized
@@ -424,7 +434,7 @@
 void CAppMngr2Model::ScanningComplete()
     {
     FLOG( "CAppMngr2Model::ScanningComplete" );
-    
+
     iInstallationFiles->DecrementCacheUse();
     }
 
@@ -435,7 +445,7 @@
 void CAppMngr2Model::DirectoryChangedL( const TDesC& /*aChangedDir*/ )
     {
     FLOG( "CAppMngr2Model::DirectoryChangedL" );
-    
+
     // This might be improved by scanning the changed directory only. Model
     // could record which items are got from which directory, so that it could
     // remove those items that were created from the changed directory and
@@ -451,7 +461,7 @@
 void CAppMngr2Model::HandleAppListEvent( TInt /*aEvent*/ )
     {
     FLOG( "CAppMngr2Model::HandleAppListEvent" );
-    
+
     TRAP_IGNORE( StartFetchingInstalledAppsL() );
     }
 
@@ -464,7 +474,7 @@
     {
     FLOG( "CAppMngr2Model::NewAppsCreatedL, plugin 0x%08x: packageCount = %d",
             aMaker.RuntimeUid().iUid, aAppInfos.Count() );
-    
+
     iInstalledApps->AddItemsInOrderL( aAppInfos );
     iInstalledApps->DecrementCacheUse();
     CloseInfoMaker( aMaker );
@@ -483,7 +493,7 @@
     {
     FLOG( "CAppMngr2Model::ErrorInCreatingAppsL, plugin 0x%08x: error = %d",
             aMaker.RuntimeUid().iUid, aError );
-    
+
     iInstalledApps->DecrementCacheUse();
     CloseInfoMaker( aMaker );
     }
@@ -497,7 +507,7 @@
     {
     FLOG( "CAppMngr2Model::NewPackagesCreatedL, plugin 0x%08x: packageCount = %d",
             aMaker.RuntimeUid().iUid, aPackageInfos.Count() );
-    
+
     iInstallationFiles->AddItemsInOrderL( aPackageInfos );
     iInstallationFiles->DecrementCacheUse();
     CloseInfoMaker( aMaker );
@@ -516,7 +526,7 @@
     {
     FLOG( "CAppMngr2Model::ErrorInCreatingPackagesL, plugin 0x%08x: error = %d",
             aMaker.RuntimeUid().iUid, aError );
-    
+
     iInstallationFiles->DecrementCacheUse();
     CloseInfoMaker( aMaker );
     }
@@ -528,17 +538,28 @@
 void CAppMngr2Model::ArrayContentChanged( CAppMngr2InfoArray* aArray,
         TInt aMoreRefreshesExpected )
     {
+    FLOG( "CAppMngr2Model::ArrayContentChanged, more = %d", aMoreRefreshesExpected );
     if( aArray == iInstalledApps )
         {
         FLOG_PERF_STOP( FetchInstalledApps )
         FLOG_PERF_PRINT( FetchInstalledApps )
         iObs.InstalledAppsChanged( aMoreRefreshesExpected );
+        if( !aMoreRefreshesExpected )
+            {
+            FLOG( "CAppMngr2Model::ArrayContentChanged: StartFetchingInstalledAppsL done" );
+            iFetchingInstalledApps = EFalse;
+            }
         }
     if( aArray == iInstallationFiles )
         {
         FLOG_PERF_STOP( FetchInstallationFiles )
         FLOG_PERF_PRINT( FetchInstallationFiles )
         iObs.InstallationFilesChanged( aMoreRefreshesExpected );
+        if( !aMoreRefreshesExpected )
+            {
+            FLOG( "CAppMngr2Model::ArrayContentChanged: StartFetchingInstallationFilesL done" );
+            iFetchingInstallationFiles = EFalse;
+            }
         }
     }
 
@@ -563,7 +584,7 @@
 
     iInstalledApps = CAppMngr2AppInfoArray::NewL( *this );
     iInstallationFiles = CAppMngr2PackageInfoArray::NewL( *this );
-    
+
     FLOG_PERF_STATIC_BEGIN( LoadPluginsL )
     LoadPluginsL();
     FLOG_PERF_STATIC_END( LoadPluginsL )
@@ -585,13 +606,13 @@
 void CAppMngr2Model::LoadDefaultIconsL( CAknIconArray& aIconArray )
     {
     FLOG( "CAppMngr2Model::LoadDefaultIconsL" );
-    
+
     MAknsSkinInstance* skinInstance = AknsUtils::SkinInstance();
     HBufC* bitmapFile = TAppMngr2DriveUtils::FullBitmapFileNameLC( KAppMngr2BitmapFile, iFs );
     CFbsBitmap* bitmap = NULL;
     CFbsBitmap* mask = NULL;
     CGulIcon* icon = NULL;
-    
+
     // Note that icons can be graphically-skinned (icon graphic defined in theme)
     // or color-skinned (icon colors change depending on background color defined
     // in theme). Normal icons are graphically-skinned and indicator icons are
@@ -601,9 +622,9 @@
 
     // Icon 0: EAppMngr2IconIndex_QgnIndiAmInstMmcAdd
     // Indicator icon for items stored/installed in memory card
-    AknsUtils::CreateColorIconLC( skinInstance, 
+    AknsUtils::CreateColorIconLC( skinInstance,
             KAknsIIDQgnIndiMmcAdd, KAknsIIDQsnIconColors, EAknsCIQsnIconColorsCG13,
-            bitmap, mask, *bitmapFile, 
+            bitmap, mask, *bitmapFile,
             EMbmAppmngr2Qgn_indi_mmc_add,
             EMbmAppmngr2Qgn_indi_mmc_add_mask,
             KRgbBlack );
@@ -616,9 +637,9 @@
 
     // Icon 1: EAppMngr2IconIndex_QgnIndiFmgrMsAdd
     // Indicator icon for items stored/installed in mass memory
-    AknsUtils::CreateColorIconLC( skinInstance, 
+    AknsUtils::CreateColorIconLC( skinInstance,
             KAknsIIDQgnIndiFmgrMsAdd, KAknsIIDQsnIconColors, EAknsCIQsnIconColorsCG13,
-            bitmap, mask, *bitmapFile, 
+            bitmap, mask, *bitmapFile,
             EMbmAppmngr2Qgn_indi_fmgr_ms_add,
             EMbmAppmngr2Qgn_indi_fmgr_ms_add_mask,
             KRgbBlack );
@@ -633,14 +654,14 @@
     // List icon for items that are not known
     icon = AknsUtils::CreateGulIconL( skinInstance,
             KAknsIIDQgnPropUnknown, *bitmapFile,
-            EMbmAppmngr2Qgn_prop_unknown, 
+            EMbmAppmngr2Qgn_prop_unknown,
             EMbmAppmngr2Qgn_prop_unknown_mask );
     CleanupStack::PushL( icon );
     aIconArray.AppendL( icon );
     CleanupStack::Pop( icon );
 
     CleanupStack::PopAndDestroy( bitmapFile );
-    
+
     // Additionally some unknown indicator icon could be defined.
     // Now, if some plugin gives incorrect index fox indicator icon,
     // then no indicator icon is displayed.
@@ -653,7 +674,7 @@
 void CAppMngr2Model::LoadPluginsL()
     {
     FLOG( "CAppMngr2Model::LoadPluginsL" );
-    
+
     RImplInfoPtrArray implInfoArray;
     CleanupResetAndDestroyPushL( implInfoArray  );
     REComSession::ListImplementationsL( KAppMngr2PluginInterface, implInfoArray );
@@ -747,7 +768,7 @@
             }
         CleanupStack::PopAndDestroy( &dirsToScan );
         }
-    
+
     // KSWInstallerPackageFolder directory if defined in CenRep
     CRepository* cenrep = CRepository::NewLC( KCRUidSWInstallerLV );
     err = cenrep->Get( KSWInstallerPackageFolder, path );
@@ -780,7 +801,7 @@
                                 {
                                 TFileName fullPath;
                                 fullPath.Format( KDriveSpec, static_cast<TUint>( driveLetter ) );
-                                fullPath.Append( path ); 
+                                fullPath.Append( path );
                                 iScanner->AddDirectoryL( fullPath );
                                 }
                             }
@@ -809,7 +830,7 @@
 void CAppMngr2Model::FetchDataTypesL()
     {
     FLOG( "CAppMngr2Model::FetchDataTypesL" );
-    
+
     TInt pluginCount = iPlugins.Count();
     for( TInt pluginIndex = 0; pluginIndex < pluginCount; pluginIndex++ )
         {
@@ -827,7 +848,7 @@
     const CAppMngr2InfoMaker* makerToClose = &aMaker;
     for( TInt index = iInfoMakers.Count() - 1; index >= 0; index-- )
         {
-        CAppMngr2InfoMaker* maker = iInfoMakers[ index ]; 
+        CAppMngr2InfoMaker* maker = iInfoMakers[ index ];
         if( maker == makerToClose )
             {
             iInfoMakers.Remove( index );
--- a/appinstaller/AppinstUi/Server/Data/SWInstSvrUI_reg.rss	Tue Feb 02 00:20:15 2010 +0200
+++ b/appinstaller/AppinstUi/Server/Data/SWInstSvrUI_reg.rss	Fri Feb 19 22:57:02 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2006 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -22,7 +22,7 @@
 #include "SWInstPrivateUid.h"
 
 UID2 KUidAppRegistrationResourceFile
-UID3 KSWInstSvrUid // Define your application UID here
+UID3 KSWInstSvrUid
 
 RESOURCE APP_REGISTRATION_INFO
     {
@@ -45,6 +45,7 @@
         DATATYPE { priority=EDataTypePrioritySystem; type="application/x-pip"; }
 #ifdef __WEB_WIDGETS
         , DATATYPE { priority=EDataTypePrioritySystem; type="application/x-nokia-widget"; }
+        , DATATYPE { priority=EDataTypePrioritySystem; type="application/widget"; }
 #endif
         };  
     }
--- a/appinstaller/AppinstUi/Server/Src/SWInstInstallRequest.cpp	Tue Feb 02 00:20:15 2010 +0200
+++ b/appinstaller/AppinstUi/Server/Src/SWInstInstallRequest.cpp	Fri Feb 19 22:57:02 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -389,7 +389,7 @@
     {
     HBufC* tmpMIME = HBufC::NewLC( KMaxDataTypeLength );
     TPtr mimePtr( tmpMIME->Des() );            
-    aContent.GetStringAttribute( ContentAccess::EMimeType, mimePtr );
+    User::LeaveIfError( aContent.GetStringAttribute( ContentAccess::EMimeType, mimePtr ) );
     aMIME.Copy( *tmpMIME );
     CleanupStack::PopAndDestroy( tmpMIME );
     }
--- a/iaupdate/IAD/ui/group/iaupdate.rss	Tue Feb 02 00:20:15 2010 +0200
+++ b/iaupdate/IAD/ui/group/iaupdate.rss	Fri Feb 19 22:57:02 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -836,15 +836,6 @@
     }
 
 //
-// Update while roaming confirmation dialog
-//
-
-RESOURCE TBUF r_iaupdate_connect_to_server
-    {
-    buf = qtn_swupdate_connect_to_server;
-    }
-
-//
 // Automatic updates check dialog resources
 //
 
@@ -1106,13 +1097,6 @@
                      name = qtn_swupdate_automatic_update_checks;
                      setting_page_resource = r_iaupdate_auto_update_check_setting_page;
                      associated_resource = r_iaupdate_auto_update_check_texts;
-                     },
-                 AVKON_SETTING_ITEM
-                     {
-                     identifier = EIAUpdateSettingRoamingWarning;
-                     name = qtn_swupdate_roaming_warning;
-                     setting_page_resource = r_iaupdate_roaming_warning_setting_page;
-                     associated_resource = r_iaupdate_roaming_warning_texts;
                      }
                  };
 	          };
--- a/iaupdate/IAD/ui/inc/iaupdate.hrh	Tue Feb 02 00:20:15 2010 +0200
+++ b/iaupdate/IAD/ui/inc/iaupdate.hrh	Fri Feb 19 22:57:02 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -52,8 +52,7 @@
 enum TIAUpdateSettingDialogItems 
     {
     EIAUpdateSettingAccessPoint = 0,
-    EIAUpdateSettingAutoUpdateCheck = 1,
-    EIAUpdateSettingRoamingWarning = 2
+    EIAUpdateSettingAutoUpdateCheck = 1
     };
 
 enum TIAUpdateSettingItemBoolean 
--- a/iaupdate/IAD/ui/inc/iaupdateprivatecrkeys.h	Tue Feb 02 00:20:15 2010 +0200
+++ b/iaupdate/IAD/ui/inc/iaupdateprivatecrkeys.h	Fri Feb 19 22:57:02 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -52,16 +52,6 @@
 **/
 const TUint32 KIAUpdateAutoUpdateCheck = 0x1;
 
-/**
-* Roaming warning, integer value.
-*
-* Possible values:
-*
-* 0 = No roaming warning
-* 1 = Roaming warning
-**/
-const TUint32 KIAUpdateRoamingWarning = 0x2;
-
 
 /**
 * Checking frequency. 
--- a/iaupdate/IAD/ui/inc/iaupdateroaminghandler.h	Tue Feb 02 00:20:15 2010 +0200
+++ b/iaupdate/IAD/ui/inc/iaupdateroaminghandler.h	Fri Feb 19 22:57:02 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -86,12 +86,6 @@
     */
     TBool IsRoaming();
     
-    /**
-    * Shows roaming warning dialog if needed 
-    * @return True value if network access rejected because of roaming warning
-    */
-    TBool RoamingRejectionL();
-        
 
 private:
 
@@ -116,8 +110,7 @@
 	TBool iPreparing;
 	
 	TBool iPrepared;
-	
-	TBool iRoamingConnectionAccepted;
+
     };
 
 
--- a/iaupdate/IAD/ui/inc/iaupdatesettingdialog.h	Tue Feb 02 00:20:15 2010 +0200
+++ b/iaupdate/IAD/ui/inc/iaupdatesettingdialog.h	Fri Feb 19 22:57:02 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -50,8 +50,7 @@
     enum TAttributeKeys
         {
         EAccessPoint = 0,
-        EAutoUpdateCheck,
-        ERoamingWarning
+        EAutoUpdateCheck
         };
     
 	public:
@@ -245,7 +244,6 @@
 	private:
 	    TInt iAccessPoint;
         TInt iAutoUpdateCheck;
-        TInt iRoamingWarning;
         };
 
 
--- a/iaupdate/IAD/ui/inc/iaupdateuicontroller.h	Tue Feb 02 00:20:15 2010 +0200
+++ b/iaupdate/IAD/ui/inc/iaupdateuicontroller.h	Fri Feb 19 22:57:02 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -533,6 +533,8 @@
     void CreateSelectedNodesArrayL();
     
     TBool IAUpdateEnabledL() const;
+    
+    TBool AutomaticConnectionWhenRoamingL() const;
 
 private: // data
 
@@ -593,8 +595,6 @@
     
     CIAUpdateParameters* iParams;
     
-    TBool iUserRoamingRejection;
-    
     TBool iCancelling;
     
     TBool iFileInUseError;
--- a/iaupdate/IAD/ui/src/iaupdateroaminghandler.cpp	Tue Feb 02 00:20:15 2010 +0200
+++ b/iaupdate/IAD/ui/src/iaupdateroaminghandler.cpp	Fri Feb 19 22:57:02 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -140,39 +140,7 @@
 	return iRoaming;
     }
     
-// ---------------------------------------------------------------------------
-// CIAUpdateRoamingHandler::RoamingRejectionL()
-// 
-// ---------------------------------------------------------------------------
-//    
-TBool CIAUpdateRoamingHandler::RoamingRejectionL()
-    {
-  	TBool rejected = EFalse;
-  	if ( ( iRoaming )  && ( !iRoamingConnectionAccepted ) )
-  	    {
-  		CRepository* cenrep = CRepository::NewLC( KCRUidIAUpdateSettings );
-    
-        TInt num = KErrNotFound;
-        User::LeaveIfError( cenrep->Get( KIAUpdateRoamingWarning, num ) );
-        
-        CleanupStack::PopAndDestroy( cenrep );
-        if ( num == EIAUpdateSettingValueOn ) 
-            {
-        	TInt ret = IAUpdateDialogUtil::ShowConfirmationQueryL( 
-   	                                          R_IAUPDATE_CONNECT_TO_SERVER, 
-	                                          R_AVKON_SOFTKEYS_YES_NO );
-	        if ( ret == EAknSoftkeyYes )
-	            {
-	        	iRoamingConnectionAccepted = ETrue;
-	            }
-	        else
-	            {
-	            rejected = ETrue;
-	            }
-	        }   
-  	    }
-	return rejected;
-    }
+
 
     
 // End of File  
--- a/iaupdate/IAD/ui/src/iaupdatesettingdialog.cpp	Tue Feb 02 00:20:15 2010 +0200
+++ b/iaupdate/IAD/ui/src/iaupdatesettingdialog.cpp	Fri Feb 19 22:57:02 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -425,11 +425,7 @@
     num = iList->Attribute( EAutoUpdateCheck );
     err = cenrep->Set( KIAUpdateAutoUpdateCheck, num );
     User::LeaveIfError( err );
-    
-    num = iList->Attribute( ERoamingWarning );
-    err = cenrep->Set( KIAUpdateRoamingWarning, num );
-    User::LeaveIfError( err );
-    
+           
     TUint32 ignore = KErrNone;
     User::LeaveIfError( cenrep->CommitTransaction( ignore ) );
     CleanupStack::PopAndDestroy(); // CleanupCancelTransactionPushL()
@@ -480,14 +476,6 @@
             break;
             }
 
-        case EIAUpdateSettingRoamingWarning:
-            {
-            User::LeaveIfError( cenrep->Get( KIAUpdateRoamingWarning, iRoamingWarning ) );
-            item = new (ELeave) CAknBinaryPopupSettingItem
-                               ( aSettingId, iRoamingWarning );
-            break;
-            }
-
         default:
             {
             item = new (ELeave) CAknSettingItem( aSettingId );
@@ -548,11 +536,6 @@
             ret = iAutoUpdateCheck;
             break;
             }
-        case CIAUpdateSettingDialog::ERoamingWarning:
-            {
-            ret = iRoamingWarning;
-            break;
-            }
         default:
             {
             IAUpdateDialogUtil::Panic( KErrNotSupported );
@@ -577,12 +560,6 @@
         {
         iAutoUpdateCheck = EIAUpdateSettingValueEnable;
         }
-
-    if ( iRoamingWarning != EIAUpdateSettingValueOff &&
-         iRoamingWarning != EIAUpdateSettingValueOn )
-        {
-        iRoamingWarning = EIAUpdateSettingValueOn;
-        }
     }
 
 
--- a/iaupdate/IAD/ui/src/iaupdateuicontroller.cpp	Tue Feb 02 00:20:15 2010 +0200
+++ b/iaupdate/IAD/ui/src/iaupdateuicontroller.cpp	Fri Feb 19 22:57:02 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -26,6 +26,7 @@
 #include <SWInstDefs.h>
 #include <avkon.rsg>
 #include <featurecontrol.h>
+#include <cmmanager.h>
 #include <iaupdate.rsg>
 #include <iaupdateparameters.h>
 
@@ -360,19 +361,23 @@
        	    return;	
        	    }
         }
-            
-    if ( iRequestType == IAUpdateUiDefines::EShowUpdates && iRefreshed )
+    if ( iRequestType == IAUpdateUiDefines::ECheckUpdates && 
+         AllowNetworkRefreshL() && 
+         iRoamingHandler->IsRoaming() && 
+         !AutomaticConnectionWhenRoamingL() )
+        {
+        // In Silent check updates case, global setting when roaming to be automatic 
+        // Promt dialog is not allowed in the silent check
+        // error is returned that a client (backround checker) will try again later 
+        iObserver.RefreshCompleteL( EFalse, KErrAbort );
+        }  
+    else if ( iRequestType == IAUpdateUiDefines::EShowUpdates && iRefreshed )
         {
     	iFilter->FilterAndSortNodesL( iNodes, iFwNodes );
         iObserver.RefreshCompleteL( ETrue, KErrNone );
         }
     else
         {
-        if ( IsStartedByLauncher() && AllowNetworkRefreshL() )
-            {
-        	iUserRoamingRejection = iRoamingHandler->RoamingRejectionL();
-            }
-
         TInt ret( iController->Startup() );
         if ( ret == KErrAlreadyExists )   
             {
@@ -411,43 +416,39 @@
     // started.
     iController->ResetSelfUpdate();
 
-    iUserRoamingRejection = iRoamingHandler->RoamingRejectionL();
-    if ( !iUserRoamingRejection )
+    CreateSelectedNodesArrayL();
+                
+    if ( !IAUpdateUtils::SpaceAvailableInInternalDrivesL( iSelectedNodesArray ) )
         {
-        CreateSelectedNodesArrayL();
-                
-        if ( !IAUpdateUtils::SpaceAvailableInInternalDrivesL( iSelectedNodesArray ) )
+  	    HBufC* noteText = NULL;
+        noteText = StringLoader::LoadLC( R_IAUPDATE_INSUFFICIENT_MEMORY );
+        IAUpdateDialogUtil::ShowInformationQueryL( *noteText ); 
+        CleanupStack::PopAndDestroy( noteText );
+        }
+    else
+        {
+        if ( !IsStartedByLauncher() )
             {
-    	    HBufC* noteText = NULL;
-            noteText = StringLoader::LoadLC( R_IAUPDATE_INSUFFICIENT_MEMORY );
-            IAUpdateDialogUtil::ShowInformationQueryL( *noteText ); 
-            CleanupStack::PopAndDestroy( noteText );
-            }
-        else
-            {
-            if ( !IsStartedByLauncher() )
+            if ( !iStarter )
                 {
-                if ( !iStarter )
-                    {
-                    // Notice, that the ownership of the filter parameters will
-                    // remain in the filter.
-                    CIAUpdateParameters* params = iFilter->FilterParams();
-        	        iStarter = CIAUpdateStarter::NewL( params->CommandLineExecutable(), 
+                // Notice, that the ownership of the filter parameters will
+                // remain in the filter.
+                CIAUpdateParameters* params = iFilter->FilterParams();
+      	        iStarter = CIAUpdateStarter::NewL( params->CommandLineExecutable(), 
         	                                           params->CommandLineArguments() );
-                    }
                 }
-            // Inform the controller that we are now starting updates. This way the
-            // controller can handle situations as a whole and not as one item at the
-            // time.
-            iController->StartingUpdatesL();
+            }
+        // Inform the controller that we are now starting updates. This way the
+        // controller can handle situations as a whole and not as one item at the
+        // time.
+        iController->StartingUpdatesL();
             
-            iFileInUseError = EFalse;
-            // Set the node index to -1 because ContinueUpdateL increases it by one
-            // in the beginning of the function. So, we can use the ContinueUpdateL
-            // also in here.
-            iNodeIndex = -1;
-            ContinueUpdateL( EFalse );
-            }
+        iFileInUseError = EFalse;
+        // Set the node index to -1 because ContinueUpdateL increases it by one
+        // in the beginning of the function. So, we can use the ContinueUpdateL
+        // also in here.
+        iNodeIndex = -1;
+        ContinueUpdateL( EFalse );
         }
 
 	IAUPDATE_TRACE("[IAUPDATE] CIAUpdateUiController::StartUpdateL() end");
@@ -2267,7 +2268,6 @@
     if ( IsStartedByLauncher() )
         {
     	if ( !iRefreshFromNetworkDenied && 
-    	     !iUserRoamingRejection && 
     	     !RestartedFromSelfUpdate() )
     	    {
     		if ( LocalNodesExpiredL() )
@@ -2718,4 +2718,24 @@
     return enabled;        
     }
 
+// ---------------------------------------------------------------------------
+// CIAUpdateUiController::AutomaticConnectionWhenRoamingL()
+// ---------------------------------------------------------------------------
+//
+TBool CIAUpdateUiController::AutomaticConnectionWhenRoamingL() const
+    {
+    TBool automaticConnection = EFalse;
+    RCmManager cmManager;
+    cmManager.OpenLC();
+    TCmGenConnSettings genConnSettings;
+    cmManager.ReadGenConnSettingsL( genConnSettings );
+    CleanupStack::PopAndDestroy( &cmManager );
+    if ( genConnSettings.iCellularDataUsageVisitor == ECmCellularDataUsageAutomatic )
+        {
+        automaticConnection = ETrue;
+        }
+    return automaticConnection;
+    }
+
+
 // End of File  
--- a/installationservices/swi/source/securitymanager/certchainconstraints.cpp	Tue Feb 02 00:20:15 2010 +0200
+++ b/installationservices/swi/source/securitymanager/certchainconstraints.cpp	Fri Feb 19 22:57:02 2010 +0200
@@ -26,6 +26,7 @@
 #include "certchainconstraints.h"
 #include "x509constraintext.h"
 #include <x509certext.h>
+#include <collate.h> 
 //#include "log.h"
 
 using namespace Swi;
@@ -87,17 +88,21 @@
 	{
 	return iValidCapabilities.HasCapabilities(aRequestCapabilities);
 	}
-	
+
 EXPORT_C TBool CCertChainConstraints::DeviceIDIsValid(const HBufC* aRequestDeviceID) const
 	{
 	TBool ret=EFalse;
 	if (iDeviceIDsAreConstrained)
 		{
 		TInt deviceIDCount=iValidDeviceIDs.Count();
+
+		TCollationMethod m = *Mem::CollationMethodByIndex(0); // get the standard method
+		m.iFlags |= TCollationMethod::EFoldCase; // Convert to lowercase and compare.
+
 		//Check if request Device ID is in the valid device ID list
 		for(TInt i=0; i<deviceIDCount; i++)
 			{
-			if (iValidDeviceIDs[i]->CompareF(*aRequestDeviceID)==0)
+			if (iValidDeviceIDs[i]->CompareC(*aRequestDeviceID, 0, &m) ==0)
 				{
 				ret=ETrue;
 				break;
--- a/ncdengine/engine/transport/src/catalogshttpstack.cpp	Tue Feb 02 00:20:15 2010 +0200
+++ b/ncdengine/engine/transport/src/catalogshttpstack.cpp	Fri Feb 19 22:57:02 2010 +0200
@@ -36,7 +36,7 @@
 #include <deflatefilterinterface.h>
 #include <httpfiltercommonstringsext.h>
 #include <httpfilterproxyinterface.h>
-#include <CookieFilterInterface.h>
+#include <cookiefilterinterface.h>
     
 #include "catalogs_device_config.h"
 #include "catalogshttptypes.h"
--- a/ncdengine/provider/deviceinteraction/inc/ncdinstallationserviceimpl.h	Tue Feb 02 00:20:15 2010 +0200
+++ b/ncdengine/provider/deviceinteraction/inc/ncdinstallationserviceimpl.h	Fri Feb 19 22:57:02 2010 +0200
@@ -27,7 +27,7 @@
 #include <apgcli.h>
 #include <centralrepository.h>
 #include <SWInstApi.h>
-#include <WidgetRegistryClient.h>
+#include <widgetregistryclient.h>
 
 #include "ncdinstallationservice.h"
 #include "ncditempurpose.h"