# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1266613022 -7200 # Node ID 51c0f5edf5ef526e2042c730d0862cc486afee94 # Parent aba6b8104af318fad5e7aa6e4d09eb7c837400d2 Revision: 201003 Kit: 201007 diff -r aba6b8104af3 -r 51c0f5edf5ef appinstaller/AppMngr2/Sisx/src/appmngr2sisxappinfo.cpp --- 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( ®Session ); 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 ) { diff -r aba6b8104af3 -r 51c0f5edf5ef appinstaller/AppMngr2/help/data/xhtml.zip Binary file appinstaller/AppMngr2/help/data/xhtml.zip has changed diff -r aba6b8104af3 -r 51c0f5edf5ef appinstaller/AppMngr2/help/inc/am.hlp.hrh --- 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: * */ diff -r aba6b8104af3 -r 51c0f5edf5ef appinstaller/AppMngr2/inc/appmngr2model.h --- 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& 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 ) }; diff -r aba6b8104af3 -r 51c0f5edf5ef appinstaller/AppMngr2/src/appmngr2appui.cpp --- 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( 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 } diff -r aba6b8104af3 -r 51c0f5edf5ef appinstaller/AppMngr2/src/appmngr2filerecognizer.cpp --- 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 ); diff -r aba6b8104af3 -r 51c0f5edf5ef appinstaller/AppMngr2/src/appmngr2listcontainer.cpp --- 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* 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 ) diff -r aba6b8104af3 -r 51c0f5edf5ef appinstaller/AppMngr2/src/appmngr2listview.cpp --- 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( 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 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; diff -r aba6b8104af3 -r 51c0f5edf5ef appinstaller/AppMngr2/src/appmngr2model.cpp --- 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& 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( 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 ); diff -r aba6b8104af3 -r 51c0f5edf5ef appinstaller/AppinstUi/Server/Data/SWInstSvrUI_reg.rss --- 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 }; } diff -r aba6b8104af3 -r 51c0f5edf5ef appinstaller/AppinstUi/Server/Src/SWInstInstallRequest.cpp --- 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 ); } diff -r aba6b8104af3 -r 51c0f5edf5ef iaupdate/IAD/ui/group/iaupdate.rss --- 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; } }; }; diff -r aba6b8104af3 -r 51c0f5edf5ef iaupdate/IAD/ui/inc/iaupdate.hrh --- 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 diff -r aba6b8104af3 -r 51c0f5edf5ef iaupdate/IAD/ui/inc/iaupdateprivatecrkeys.h --- 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. diff -r aba6b8104af3 -r 51c0f5edf5ef iaupdate/IAD/ui/inc/iaupdateroaminghandler.h --- 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; + }; diff -r aba6b8104af3 -r 51c0f5edf5ef iaupdate/IAD/ui/inc/iaupdatesettingdialog.h --- 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; }; diff -r aba6b8104af3 -r 51c0f5edf5ef iaupdate/IAD/ui/inc/iaupdateuicontroller.h --- 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; diff -r aba6b8104af3 -r 51c0f5edf5ef iaupdate/IAD/ui/src/iaupdateroaminghandler.cpp --- 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 diff -r aba6b8104af3 -r 51c0f5edf5ef iaupdate/IAD/ui/src/iaupdatesettingdialog.cpp --- 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; - } } diff -r aba6b8104af3 -r 51c0f5edf5ef iaupdate/IAD/ui/src/iaupdateuicontroller.cpp --- 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 #include #include +#include #include #include @@ -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 diff -r aba6b8104af3 -r 51c0f5edf5ef installationservices/swi/source/securitymanager/certchainconstraints.cpp --- 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 +#include //#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; iCompareF(*aRequestDeviceID)==0) + if (iValidDeviceIDs[i]->CompareC(*aRequestDeviceID, 0, &m) ==0) { ret=ETrue; break; diff -r aba6b8104af3 -r 51c0f5edf5ef ncdengine/engine/transport/src/catalogshttpstack.cpp --- 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 #include #include -#include +#include #include "catalogs_device_config.h" #include "catalogshttptypes.h" diff -r aba6b8104af3 -r 51c0f5edf5ef ncdengine/provider/deviceinteraction/inc/ncdinstallationserviceimpl.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 #include #include -#include +#include #include "ncdinstallationservice.h" #include "ncditempurpose.h"