# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1277125238 -10800 # Node ID 9e077f9a342c60bc7922fcfe2208880af1b8b94f # Parent ace62b58f4b2641efea7c9300f68bc578a8ed3cd Revision: 201023 Kit: 2010125 diff -r ace62b58f4b2 -r 9e077f9a342c backsteppingsrv/data/bs_config.xml --- a/backsteppingsrv/data/bs_config.xml Wed Jun 09 10:01:25 2010 +0300 +++ b/backsteppingsrv/data/bs_config.xml Mon Jun 21 16:00:38 2010 +0300 @@ -12,6 +12,6 @@ - + diff -r ace62b58f4b2 -r 9e077f9a342c backsteppingsrv/inc/bsengine.h --- a/backsteppingsrv/inc/bsengine.h Wed Jun 09 10:01:25 2010 +0300 +++ b/backsteppingsrv/inc/bsengine.h Mon Jun 21 16:00:38 2010 +0300 @@ -83,11 +83,6 @@ */ void RemoveAppRecord( const TUid& aApp ); - /** - * Marks that application was pressed - */ - void ApplicationKeyWasPressed(); - private: CBSEngine(); @@ -130,13 +125,8 @@ /** * flag for handling fast swap events - */ - TBool swap; - - /** - * flag for application key state - */ - TBool wasPressed; + */ + TBool iSwap; /** * Configuration of BS diff -r ace62b58f4b2 -r 9e077f9a342c backsteppingsrv/inc/bsserver.h --- a/backsteppingsrv/inc/bsserver.h Wed Jun 09 10:01:25 2010 +0300 +++ b/backsteppingsrv/inc/bsserver.h Mon Jun 21 16:00:38 2010 +0300 @@ -60,7 +60,6 @@ void ConstructL(); void HandleWsEventL( const TWsEvent& aEvent, CCoeControl* aDestination ); - void ForwardEventL( const TWsEvent& aEvent ); CBSEngine* iEngine; }; diff -r ace62b58f4b2 -r 9e077f9a342c backsteppingsrv/src/bsengine.cpp --- a/backsteppingsrv/src/bsengine.cpp Wed Jun 09 10:01:25 2010 +0300 +++ b/backsteppingsrv/src/bsengine.cpp Mon Jun 21 16:00:38 2010 +0300 @@ -39,8 +39,7 @@ CBSEngine::CBSEngine() { iEnv = CEikonEnv::Static( ); - swap = EFalse; - wasPressed = EFalse; + iSwap = EFalse; } // ----------------------------------------------------------------------------- @@ -93,15 +92,6 @@ // // ----------------------------------------------------------------------------- // -void CBSEngine::ApplicationKeyWasPressed() - { - wasPressed = ETrue; - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// void CBSEngine::HandleFocusChangeL( const TUid& aApp ) { DEBUG(("-> HandleFocusChangeL(0x%X)", aApp.iUid )); @@ -116,16 +106,14 @@ if ( fsCount > 0 && iFocusHistory[fsCount - 1] == aApp.iUid ) { DEBUG(("\tIgnore the event - application already on top")); - swap = EFalse; - wasPressed = EFalse; + iSwap = EFalse; return; } // check if we should not reset back stepping stack if ( iConfiguration->IsReset( aApp ) ) { - swap = EFalse; - wasPressed = EFalse; + iSwap = EFalse; ResetHistory( ); } @@ -138,26 +126,24 @@ if ( aApp.iUid == thuApps[i] ) { //mark that there is a fast swap or dialog - swap = ETrue; + iSwap = ETrue; return; } - else + else if( iSwap ) { - if ( swap ) + iSwap = EFalse; + + TInt pos = iFocusHistory.Count( ) - 1; + if ( pos >= 0 ) { - swap = EFalse; TInt currentApp = aApp.iUid; - TInt pos = iFocusHistory.Count( ) - 1; - if ( pos >= 0 ) + TInt prevApp = iFocusHistory[pos]; + if ( currentApp != prevApp ) { - TInt prevApp = iFocusHistory[pos]; - if ( currentApp != prevApp && wasPressed ) - { - //we are here as the result of the fast swap - ResetHistory( ); - iFocusHistory.AppendL( thuApps[i] ); - wasPressed = EFalse; - } + //we are here as the result of the fast swap + ResetHistory( ); + iFocusHistory.AppendL( thuApps[i] ); + break; } } } diff -r ace62b58f4b2 -r 9e077f9a342c backsteppingsrv/src/bsserver.cpp --- a/backsteppingsrv/src/bsserver.cpp Wed Jun 09 10:01:25 2010 +0300 +++ b/backsteppingsrv/src/bsserver.cpp Mon Jun 21 16:00:38 2010 +0300 @@ -27,8 +27,6 @@ #include "bsdebug.h" #include "bsserver.h" -const TInt idsArrayGranularity = 30; - // ============================ MEMBER FUNCTIONS =============================== // ----------------------------------------------------------------------------- @@ -174,6 +172,7 @@ ui->PrepareToExit( ); } + // ----------------------------------------------------------------------------- // Create and start the server. // ----------------------------------------------------------------------------- @@ -230,6 +229,7 @@ SetAutoForwarding(ETrue); User::SetPriorityControl(EFalse); } + // ----------------------------------------------------------------------------- // // ----------------------------------------------------------------------------- @@ -243,12 +243,11 @@ // ----------------------------------------------------------------------------- // void CBSServer::CBSAppUi::HandleWsEventL( const TWsEvent& aEvent, - CCoeControl* /*aDestination*/) + CCoeControl* aDestination) { if ( aEvent.Type( ) == EEventFocusGroupChanged || aEvent.Type( ) == EEventWindowGroupsChanged ) { - TInt windowsGroupID = iCoeEnv->WsSession().GetFocusWindowGroup( ); CApaWindowGroupName* apaWGName = CApaWindowGroupName::NewLC( iCoeEnv->WsSession( ), windowsGroupID ); @@ -261,37 +260,7 @@ iEngine->HandleFocusChangeL( uid ); } } - else if( aEvent.Type( ) == EEventKeyDown ) - { - iEngine->ApplicationKeyWasPressed( ); - ForwardEventL( aEvent ); - } - else if( aEvent.Type( ) == EEventKeyUp ) - { - ForwardEventL( aEvent ); - } - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CBSServer::CBSAppUi::ForwardEventL( const TWsEvent& aEvent ) - { - CArrayFixFlat* idArray = - new (ELeave) CArrayFixFlat( idsArrayGranularity ); - iCoeEnv->WsSession().WindowGroupList( idArray ); - - TInt ownId = iCoeEnv->RootWin().Identifier(); - for( TInt x(0); x < idArray->Count(); x++ ) - { - if( (*idArray)[x] != ownId ) - { - iCoeEnv->WsSession().SendEventToWindowGroup( - (*idArray)[x], aEvent ); - } - } - delete idArray; + CEikAppUi::HandleWsEventL( aEvent, aDestination ); } // ----------------------------------------------------------------------------- @@ -307,8 +276,6 @@ iCoeEnv->RootWin().EnableGroupChangeEvents( ); //disable notifications about layout change iCoeEnv->RootWin().DisableScreenChangeEvents(); - //get notifications about application key event - iCoeEnv->RootWin().CaptureKeyUpAndDowns( EStdKeyApplication0, 0, 0 ); } // ============================= LOCAL FUNCTIONS =============================== diff -r ace62b58f4b2 -r 9e077f9a342c contentcontrolsrv/ccsrv/src/ccsrvsession.cpp --- a/contentcontrolsrv/ccsrv/src/ccsrvsession.cpp Wed Jun 09 10:01:25 2010 +0300 +++ b/contentcontrolsrv/ccsrv/src/ccsrvsession.cpp Mon Jun 21 16:00:38 2010 +0300 @@ -385,30 +385,33 @@ void CCcSrvSession::HandleGetMsgDataL( RMessage2& aMessage ) { - // Read sender and receiver of a response + // Read transaction id which message data is requested TPckgBuf pckg; aMessage.ReadL( 0, pckg ); TUint32 trId = pckg(); CCcSrvMsg* req( NULL ); - TInt index( 0 ); - for( TInt i = 0; i < iRequests.Count() && !req; i++ ) + TBool found( EFalse ); + for( TInt i = 0; i < iRequests.Count() && !found; i++ ) { - if ( iRequests[ i ]->TrId() == trId ) + req = iRequests[ i ]; + if ( req->Function() == ECcGetMsgData && + req->TrId() == trId ) { - req = iRequests[ i ]; - index = i; + iRequests.Remove( i ); + found = ETrue; } } TInt err( KErrNone ); - if ( req ) + if ( found ) { + CleanupStack::PushL( req ); + // Write message data aMessage.WriteL( 1, req->Data(), 0); - // Remove request - iRequests.Remove( index ); - delete req; + + CleanupStack::PopAndDestroy( req ); } else { @@ -474,7 +477,9 @@ found = ETrue; } else if ( aMessage.Function() == ECcApiResp && - req->TrId() == aMessage.TrId() ) + req->Function() == ECcApiReq && + req->TrId() == aMessage.TrId() && + !req->Message().IsNull() ) { // Pending ApiReq transaction found iRequests.Remove( i ); @@ -536,7 +541,14 @@ // Store message to handled later CCcSrvMsg* msg = CCcSrvMsg::NewL(); CleanupStack::PushL( msg ); - msg->SetFunction( aMessage.Function() ); + if ( found && aMessage.DataSize() ) + { + msg->SetFunction( ECcGetMsgData ); + } + else + { + msg->SetFunction( aMessage.Function() ); + } msg->SetSender( aMessage.Sender() ); msg->SetReceiver( aMessage.Receiver() ); msg->SetMsgId( aMessage.MsgId() ); diff -r ace62b58f4b2 -r 9e077f9a342c contentpublishingsrv/contentpublishingutils/pluginvalidator/inc/charvesterpluginvalidator.h --- a/contentpublishingsrv/contentpublishingutils/pluginvalidator/inc/charvesterpluginvalidator.h Wed Jun 09 10:01:25 2010 +0300 +++ b/contentpublishingsrv/contentpublishingutils/pluginvalidator/inc/charvesterpluginvalidator.h Mon Jun 21 16:00:38 2010 +0300 @@ -91,7 +91,16 @@ */ void LoadPluginL( TPluginInfo& aPluginInfo ); + /** + * Calls UpdateL() for every plugin + */ + void UpdatePluginsL(); + /** + * Callback used for delayed update + */ + static TInt UpdateCallback( TAny* aValidator ); + private: /** @@ -105,6 +114,12 @@ * Own */ RProperty iInProgressProperty; + + /* + * Idle AO used for delayed update + * Own + */ + CIdle* iUpdateIdle; }; #endif // CHARVESTERPLUGINVALIDATOR_H diff -r ace62b58f4b2 -r 9e077f9a342c contentpublishingsrv/contentpublishingutils/pluginvalidator/src/charvesterpluginvalidator.cpp --- a/contentpublishingsrv/contentpublishingutils/pluginvalidator/src/charvesterpluginvalidator.cpp Wed Jun 09 10:01:25 2010 +0300 +++ b/contentpublishingsrv/contentpublishingutils/pluginvalidator/src/charvesterpluginvalidator.cpp Mon Jun 21 16:00:38 2010 +0300 @@ -1,30 +1,35 @@ /* -* Copyright (c) 2006 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" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: + * Copyright (c) 2006 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" + * which accompanies this distribution, and is available + * at the URL "http://www.eclipse.org/legal/epl-v10.html". * -*/ + * Initial Contributors: + * Nokia Corporation - initial contribution. + * + * Contributors: + * + * Description: + * + */ #include #include #include #include // harvesting plugin - #include "charvesterpluginvalidator.h" #include "cblacklisthandler.h" -const TUint32 KInProgressPropertyKey = { 0x1028000E }; -const TUint32 KHarvesterUid = { 0x10282E5A }; +const TUint32 KInProgressPropertyKey = + { + 0x1028000E + }; +const TUint32 KHarvesterUid = + { + 0x10282E5A + }; // ======== MEMBER FUNCTIONS ======== @@ -32,12 +37,12 @@ // // ---------------------------------------------------------------------------- // -EXPORT_C CHarvesterPluginValidator* CHarvesterPluginValidator::NewL( TUid aUid, - TAny *aParameter ) +EXPORT_C CHarvesterPluginValidator* CHarvesterPluginValidator::NewL( + TUid aUid, TAny *aParameter) { - CHarvesterPluginValidator* self = - CHarvesterPluginValidator::NewLC( aUid , aParameter ); - CleanupStack::Pop( self ); + CHarvesterPluginValidator* self = CHarvesterPluginValidator::NewLC(aUid, + aParameter); + CleanupStack::Pop(self); return self; } @@ -45,25 +50,24 @@ // // ---------------------------------------------------------------------------- // -EXPORT_C CHarvesterPluginValidator* CHarvesterPluginValidator::NewLC( TUid aUid, - TAny *aParameter ) +EXPORT_C CHarvesterPluginValidator* CHarvesterPluginValidator::NewLC( + TUid aUid, TAny *aParameter) { - CHarvesterPluginValidator* self = new( ELeave ) - CHarvesterPluginValidator( aUid, aParameter ); - CleanupStack::PushL( self ); + CHarvesterPluginValidator* self = new (ELeave) CHarvesterPluginValidator( + aUid, aParameter); + CleanupStack::PushL(self); self->ConstructL(); return self; } - - // --------------------------------------------------------------------------- // destructor // --------------------------------------------------------------------------- CHarvesterPluginValidator::~CHarvesterPluginValidator() { - iInProgressProperty.Close( ); + iInProgressProperty.Close(); delete iBlacklist; + delete iUpdateIdle; } // ---------------------------------------------------------------------------- @@ -71,11 +75,11 @@ // ---------------------------------------------------------------------------- // CHarvesterPluginValidator::CHarvesterPluginValidator(TUid aUid, - TAny* aParameter) : + TAny* aParameter) : CPluginValidator(aUid, aParameter) -{ + { -} + } // ---------------------------------------------------------------------------- // @@ -84,45 +88,44 @@ void CHarvesterPluginValidator::ConstructL() { iBlacklist = CBlacklistHandler::NewL(); + iUpdateIdle = CIdle::NewL( CActive::EPriorityIdle ); + iUpdateIdle->Start( TCallBack( UpdateCallback, this ) ); CPluginValidator::ConstructL(); } - // ---------------------------------------------------------------------------- // // ---------------------------------------------------------------------------- // void CHarvesterPluginValidator::ManagePluginsL() { - TInt errorCode = iInProgressProperty.Define( TUid::Uid( KHarvesterUid ), - KInProgressPropertyKey, RProperty::EInt ); + TInt errorCode = iInProgressProperty.Define(TUid::Uid(KHarvesterUid), + KInProgressPropertyKey, RProperty::EInt); - if ( KErrAlreadyExists == errorCode ) - { - TInt value(-1); - iInProgressProperty.Get( TUid::Uid( KHarvesterUid ), - KInProgressPropertyKey, value); - if ( value == 1 ) + if (KErrAlreadyExists == errorCode) { - // property value == inprogress - // there was a panic in the previous startup - // so we make unofficial blacklist official - iBlacklist->CopyBlacklistL( EFalse ); + TInt value(-1); + iInProgressProperty.Get(TUid::Uid(KHarvesterUid), + KInProgressPropertyKey, value); + if (value == 1) + { + // property value == inprogress + // there was a panic in the previous startup + // so we make unofficial blacklist official + iBlacklist->CopyBlacklistL(EFalse); + } } - } else - { - User::LeaveIfError( errorCode ); - } + { + User::LeaveIfError(errorCode); + } // copy blacklisted plugins to unoffical blacklist at startup - iBlacklist->CopyBlacklistL( ETrue ); + iBlacklist->CopyBlacklistL(ETrue); // set property value to 1 (which means "in progress") - iInProgressProperty.Set( TUid::Uid( KHarvesterUid ), - KInProgressPropertyKey, 1 ); - + iInProgressProperty.Set(TUid::Uid(KHarvesterUid), KInProgressPropertyKey, + 1); CPluginValidator::ManagePluginsL(); - // set property value to 0 (which means "finished") iInProgressProperty.Set( TUid::Uid( KHarvesterUid ), KInProgressPropertyKey, 0 ); @@ -132,32 +135,66 @@ // // ---------------------------------------------------------------------------- // -void CHarvesterPluginValidator::LoadPluginL( TPluginInfo& aPluginInfo ) +void CHarvesterPluginValidator::LoadPluginL(TPluginInfo& aPluginInfo) { - if ( !iBlacklist->IsPresentL( aPluginInfo.iImplementationUid ) ) - { - //first we append UID to the blacklist - iBlacklist->AppendL( aPluginInfo.iImplementationUid ); - TAny* plug ( NULL ); - TInt err( KErrNone ); - TRAP( err, plug = REComSession::CreateImplementationL( - aPluginInfo.iImplementationUid, - aPluginInfo.iDtor_ID_Key, iParameter ) ); - if( err==KErrNone && plug ) + if (!iBlacklist->IsPresentL(aPluginInfo.iImplementationUid)) { - TRAP_IGNORE( - CleanupStack::PushL( plug ); - aPluginInfo.iPlugin = plug; - iPluginArray.AppendL( aPluginInfo ); - CleanupStack::Pop( plug ); - static_cast( plug )->UpdateL() - ); + //first we append UID to the blacklist + iBlacklist->AppendL(aPluginInfo.iImplementationUid); + TAny* plug(NULL); + TInt err(KErrNone); + TRAP( err, plug = REComSession::CreateImplementationL( + aPluginInfo.iImplementationUid, + aPluginInfo.iDtor_ID_Key, iParameter ) ); + if (err == KErrNone && plug) + { + TRAP_IGNORE( + CleanupStack::PushL( plug ); + aPluginInfo.iPlugin = plug; + iPluginArray.AppendL( aPluginInfo ); + CleanupStack::Pop( plug ); + ); + } + //no panic during load so we can remove UID from blacklist + iBlacklist->RemoveL(aPluginInfo.iImplementationUid); } - //no panic during load so we can remove UID from blacklist - iBlacklist->RemoveL( aPluginInfo.iImplementationUid ); - } } +// ---------------------------------------------------------------------------- +// +// ---------------------------------------------------------------------------- +// +void CHarvesterPluginValidator::UpdatePluginsL() + { + // set property value to 1 (which means "in progress") + iInProgressProperty.Set(TUid::Uid(KHarvesterUid), KInProgressPropertyKey, + 1); + for (TInt i = 0; i < iPluginArray.Count(); i++) + { + //first we append UID to the blacklist + iBlacklist->AppendL(iPluginArray[i].iImplementationUid); + TRAP_IGNORE( static_cast + ( iPluginArray[i].iPlugin )->UpdateL() ); + //no panic during update so we can remove UID from blacklist + iBlacklist->RemoveL(iPluginArray[i].iImplementationUid); + } + // set property value to 0 (which means "finished") + iInProgressProperty.Set(TUid::Uid(KHarvesterUid), KInProgressPropertyKey, + 0); + } +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +TInt CHarvesterPluginValidator::UpdateCallback( TAny* aValidator ) + { + if ( aValidator ) + { + TRAP_IGNORE( static_cast(aValidator)-> + UpdatePluginsL( )); + } + return KErrNone; + } diff -r ace62b58f4b2 -r 9e077f9a342c contentpublishingsrv/contentpublishingutils/pluginvalidator/src/cpluginvalidator.cpp --- a/contentpublishingsrv/contentpublishingutils/pluginvalidator/src/cpluginvalidator.cpp Wed Jun 09 10:01:25 2010 +0300 +++ b/contentpublishingsrv/contentpublishingutils/pluginvalidator/src/cpluginvalidator.cpp Mon Jun 21 16:00:38 2010 +0300 @@ -196,9 +196,6 @@ } } - - - // ---------------------------------------------------------------------------- // // ---------------------------------------------------------------------------- diff -r ace62b58f4b2 -r 9e077f9a342c homescreenpluginsrv/hspsmanager/group/hspsthemeserver.mmp --- a/homescreenpluginsrv/hspsmanager/group/hspsthemeserver.mmp Wed Jun 09 10:01:25 2010 +0300 +++ b/homescreenpluginsrv/hspsmanager/group/hspsthemeserver.mmp Mon Jun 21 16:00:38 2010 +0300 @@ -85,6 +85,7 @@ LIBRARY MemMan.lib LIBRARY ws32.lib // RWsSession LIBRARY SysLangUtil.lib +LIBRARY PlatformEnv.lib #ifdef _hsps_DEBUG_ LIBRARY flogger.lib diff -r ace62b58f4b2 -r 9e077f9a342c homescreenpluginsrv/hspsmanager/inc/hspsserverutil.h --- a/homescreenpluginsrv/hspsmanager/inc/hspsserverutil.h Wed Jun 09 10:01:25 2010 +0300 +++ b/homescreenpluginsrv/hspsmanager/inc/hspsserverutil.h Mon Jun 21 16:00:38 2010 +0300 @@ -629,6 +629,14 @@ */ static void GetInstalledLanguagesL( CArrayFixFlat*& aLanguages ); + /** + * Returns index of internal mass memory drive + * @since S60 5.2 + * @param aFs Reference to open file server handle. + * @return index of internal mass memory drive. KErrNotFound if drive + * does not exists. + */ + static TInt GetEmmcDrivePath( RFs& aFs ); private: /** diff -r ace62b58f4b2 -r 9e077f9a342c homescreenpluginsrv/hspsmanager/inc/hspsthemeserver.h --- a/homescreenpluginsrv/hspsmanager/inc/hspsthemeserver.h Wed Jun 09 10:01:25 2010 +0300 +++ b/homescreenpluginsrv/hspsmanager/inc/hspsthemeserver.h Mon Jun 21 16:00:38 2010 +0300 @@ -178,8 +178,8 @@ // C-Drive directory for the SISX installation files _LIT( KImportDirectoryC, "c:\\private\\200159c0\\import\\" ); -// E-Drive directory for the SISX installation files -_LIT( KImportDirectoryE, "e:\\private\\200159c0\\import\\" ); +// directory for the SISX installation files +_LIT( KImportDirectory, "\\private\\200159c0\\import\\" ); /** hspsThemeServer name: */ _LIT(KhspsThemeServerName,"hspsthemeserver"); diff -r ace62b58f4b2 -r 9e077f9a342c homescreenpluginsrv/hspsmanager/src/hspsinstallationhandler.cpp --- a/homescreenpluginsrv/hspsmanager/src/hspsinstallationhandler.cpp Wed Jun 09 10:01:25 2010 +0300 +++ b/homescreenpluginsrv/hspsmanager/src/hspsinstallationhandler.cpp Mon Jun 21 16:00:38 2010 +0300 @@ -42,6 +42,7 @@ #include "hspsserverutil.h" #include "hspsfamilylistener.h" + #ifdef HSPS_LOG_ACTIVE #include #include @@ -2205,7 +2206,6 @@ const TDesC& aPath ) { // Retrieve supported localizations. - CArrayFixFlat* systemEpocLanguageCodes = NULL; hspsServerUtil::GetInstalledLanguagesL( systemEpocLanguageCodes ); @@ -2213,10 +2213,14 @@ // Find all entries under the Xuikon folders that // match our eclipsing rules and localisations supported by phone. - RArray driveArray; CleanupClosePushL( driveArray ); - driveArray.Append( EDriveE ); + TInt drive = hspsServerUtil::GetEmmcDrivePath( iFsSession ); + if ( drive != KErrNotFound ) + { + driveArray.Append( drive ); + } + driveArray.Append( EDriveC ); driveArray.Append( EDriveZ ); diff -r ace62b58f4b2 -r 9e077f9a342c homescreenpluginsrv/hspsmanager/src/hspsmaintenancehandler.cpp --- a/homescreenpluginsrv/hspsmanager/src/hspsmaintenancehandler.cpp Wed Jun 09 10:01:25 2010 +0300 +++ b/homescreenpluginsrv/hspsmanager/src/hspsmaintenancehandler.cpp Mon Jun 21 16:00:38 2010 +0300 @@ -4737,14 +4737,28 @@ // void ChspsMaintenanceHandler::HandleReinstallationL( const TBool aInstallUdaEmmc ) - { + { // Install plug-in configurations from the "install" directories iThemeServer.InstallWidgetsL( aInstallUdaEmmc ); if( aInstallUdaEmmc ) { - // Install plug-in configurations from the "import" directories in C and E + // Install plug-in configurations from the "import" directories in C + // and emmc(if exists) iThemeServer.InstallUDAWidgetsL( KImportDirectoryC ); - iThemeServer.InstallUDAWidgetsL( KImportDirectoryE ); + + TInt drive = hspsServerUtil::GetEmmcDrivePath( + iServerSession->FileSystem() ); + if ( drive != KErrNotFound ) + { + TDriveUnit unit(drive); + HBufC* importDirectoryE = HBufC::NewLC( + KImportDirectory().Length() + unit.Name().Length() ); + importDirectoryE->Des().Append( unit.Name() ); + importDirectoryE->Des().Append( KImportDirectory ); + + iThemeServer.InstallUDAWidgetsL( *importDirectoryE ); + CleanupStack::PopAndDestroy( importDirectoryE ); + } } // Force updating of the header cache diff -r ace62b58f4b2 -r 9e077f9a342c homescreenpluginsrv/hspsmanager/src/hspsserverutil.cpp --- a/homescreenpluginsrv/hspsmanager/src/hspsserverutil.cpp Wed Jun 09 10:01:25 2010 +0300 +++ b/homescreenpluginsrv/hspsmanager/src/hspsserverutil.cpp Mon Jun 21 16:00:38 2010 +0300 @@ -30,6 +30,7 @@ #include "bautils.h" #include "sysutil.h" #include +#include _LIT(KHspsFolder, "\\200159c0\\themes\\" ); @@ -1996,7 +1997,11 @@ KDriveAttExclude|KDriveAttRemovable|KDriveAttRemote|KDriveAttSubsted ); if( aFindFromUdaEmmcDrives ) { - aFs.SetSessionToPrivate( EDriveE ); + TInt drive = hspsServerUtil::GetEmmcDrivePath( aFs ); + if ( drive != KErrNotFound ) + { + aFs.SetSessionToPrivate( drive ); + } } else { @@ -2198,6 +2203,28 @@ // ----------------------------------------------------------------------------- +// hspsServerUtil::GetEmmcDrivePathL +// ----------------------------------------------------------------------------- +// +TInt hspsServerUtil::GetEmmcDrivePath( RFs& aFs ) + { + TInt drive = KErrNotFound; + if ( DriveInfo::GetDefaultDrive( + DriveInfo::EDefaultMassStorage, drive ) == KErrNone ) + { + TUint status; + if ( DriveInfo::GetDriveStatus( aFs, drive, status ) == KErrNone ) + { + if ( status & DriveInfo::EDriveInternal ) + { + return drive; + } + } + } + return KErrNotFound; + } + +// ----------------------------------------------------------------------------- // hspsServerUtil::hspsServerUtil // ----------------------------------------------------------------------------- // diff -r ace62b58f4b2 -r 9e077f9a342c homescreenpluginsrv/hspsmanager/src/hspsthemeserver.cpp --- a/homescreenpluginsrv/hspsmanager/src/hspsthemeserver.cpp Wed Jun 09 10:01:25 2010 +0300 +++ b/homescreenpluginsrv/hspsmanager/src/hspsthemeserver.cpp Mon Jun 21 16:00:38 2010 +0300 @@ -2755,10 +2755,24 @@ // Install widgets from \private\200159C0\install\ directories (ROM and UDA image) InstallWidgetsL(); - // Install widgets from \private\200159C0\imports\ directory (UDA image) C & E + // Install widgets from \private\200159C0\imports\ directory + //from c (UDA image) and from emmc InstallUDAWidgetsL( KImportDirectoryC ); - InstallUDAWidgetsL( KImportDirectoryE ); - + + TInt drive = hspsServerUtil::GetEmmcDrivePath( iFsSession ); + if ( drive != KErrNotFound ) + { + TDriveUnit unit(drive); + HBufC* importDirectoryE = HBufC::NewLC( + KImportDirectory().Length() + unit.Name().Length() ); + + importDirectoryE->Des().Append( unit.Name() ); + importDirectoryE->Des().Append( KImportDirectory ); + + InstallUDAWidgetsL( *importDirectoryE ); + CleanupStack::PopAndDestroy( importDirectoryE ); + } + // Post RFS installations have been done, prevent re-installations at next startup // by reading firmware version and saving it to cenrep. GetFWVersion( fwVersion ); diff -r ace62b58f4b2 -r 9e077f9a342c homescreensrv_plat/menu_content_service_api/inc/mcsdef.h --- a/homescreensrv_plat/menu_content_service_api/inc/mcsdef.h Wed Jun 09 10:01:25 2010 +0300 +++ b/homescreensrv_plat/menu_content_service_api/inc/mcsdef.h Mon Jun 21 16:00:38 2010 +0300 @@ -55,6 +55,7 @@ // Menu clients always need to check that the necessary attributes are present. // +_LIT( KMenuAttrPredefined, "predefined" ); _LIT( KMenuAttrTitleName, "title_name" ); ///< Title name (displayed in Title Pane). _LIT( KMenuAttrShortName, "short_name" ); ///< Short name. _LIT( KMenuAttrLongName, "long_name" ); ///< Long name. diff -r ace62b58f4b2 -r 9e077f9a342c idlefw/plugins/mcsplugin/data/mcspluginsettingsres.rss --- a/idlefw/plugins/mcsplugin/data/mcspluginsettingsres.rss Wed Jun 09 10:01:25 2010 +0300 +++ b/idlefw/plugins/mcsplugin/data/mcspluginsettingsres.rss Mon Jun 21 16:00:38 2010 +0300 @@ -102,7 +102,6 @@ RESOURCE AVKON_VIEW r_ai_mcs_settings_view { menubar = r_ai_mcs_settings_menubar; - //cba = R_AVKON_SOFTKEYS_OPTIONS_BACK; cba = r_scut_softkeys_options_back_change; } @@ -243,18 +242,4 @@ }; } -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -RESOURCE CBA r_scut_softkeys_options_exit_change -{ - buttons = - { - CBA_BUTTON {id = EAknSoftkeyOptions; txt = text_softkey_option; }, - CBA_BUTTON {id = EAknSoftkeyExit; txt = text_softkey_exit; }, - CBA_BUTTON {id = EAiScutSettingsCmdChange; txt = qtn_msk_change; } - }; -} - // End of File. diff -r ace62b58f4b2 -r 9e077f9a342c idlefw/plugins/mcsplugin/settings/src/mcspluginsettings.cpp --- a/idlefw/plugins/mcsplugin/settings/src/mcspluginsettings.cpp Wed Jun 09 10:01:25 2010 +0300 +++ b/idlefw/plugins/mcsplugin/settings/src/mcspluginsettings.cpp Mon Jun 21 16:00:38 2010 +0300 @@ -37,11 +37,6 @@ AI_UID_ECOM_IMPLEMENTATION_SETTINGS_MCSPLUGIN }; -const TUid KUidAiFwCommon = -{ - AI_UID3_AIFW_COMMON -}; - _LIT(KMCSSettingsResourceFileName, "mcspluginsettingsres.rsc"); /** Implementation table for MCS settings plug-in */ @@ -148,17 +143,6 @@ break; case EAknSoftkeyBack: - if (iAppUi->View(KGSMainViewUid)) - { - // if we are in GS activate parent plugin view (standby view)... - iAppUi->ActivateLocalViewL(KGSPrslnPluginUid); - } - else - { - iAppUi->ActivateLocalViewL(iPrevViewId.iViewUid); - } - break; - case EAknSoftkeyExit: iAppUi->HandleCommandL(EAknCmdExit); break; @@ -176,21 +160,6 @@ // void CMCSPluginSettings::DoActivateL(const TVwsViewId& aPrevViewId, TUid aCustomMessageId, const TDesC8& aCustomMessage) { - CEikButtonGroupContainer* cba = Cba(); - - if (cba) - { - if (aCustomMessageId == KUidAiFwCommon) - { - cba->SetCommandSetL(R_SCUT_SOFTKEYS_OPTIONS_EXIT_CHANGE); - } - else - { - cba->SetCommandSetL(R_SCUT_SOFTKEYS_OPTIONS_BACK_CHANGE); - } - cba->DrawDeferred(); - } - iModel->SetPluginIdL( aCustomMessage ); iModel->UpdateAppListL( EFalse ); iModel->UpdateBkmListL( EFalse ); diff -r ace62b58f4b2 -r 9e077f9a342c idlefw/src/idleint/aiuiidleintegration.cpp --- a/idlefw/src/idleint/aiuiidleintegration.cpp Wed Jun 09 10:01:25 2010 +0300 +++ b/idlefw/src/idleint/aiuiidleintegration.cpp Mon Jun 21 16:00:38 2010 +0300 @@ -221,8 +221,6 @@ // void CAiUiIdleIntegrationImpl::SetCallBubbleIfNeededL() { - __PRINTS( "*** CAiUiIdleIntegrationImpl::SetCallBubbleIfNeededL" ); - if( !iIncallBubbleAllowed ) { TInt callStatus( 0 ); @@ -234,11 +232,8 @@ // Call ongoing => show bubble if( err == KErrNone && callStatus > EPSCTsyCallStateNone ) { - __PRINTS( "*** CAiUiIdleIntegrationImpl::SetCallBubbleIfNeededL - enable" ); - - iIncallBubble->SetIncallBubbleAllowedInUsualL( ETrue ); - iIncallBubble->SetIncallBubbleAllowedInIdleL( ETrue ); - iIncallBubbleAllowed = ETrue; + iIncallBubble->SetIncallBubbleAllowedInIdleL( ETrue ); + iIncallBubbleAllowed = ETrue; } } } @@ -249,16 +244,11 @@ // void CAiUiIdleIntegrationImpl::ClearCallBubbleL() { - __PRINTS( "*** CAiUiIdleIntegrationImpl::ClearCallBubbleL" ); - if( iIncallBubbleAllowed ) { - __PRINTS( "*** CAiUiIdleIntegrationImpl::ClearCallBubbleL - disable" ); - iIncallBubble->SetIncallBubbleAllowedInIdleL( EFalse ); - iIncallBubble->SetIncallBubbleAllowedInUsualL( EFalse ); iIncallBubbleAllowed = EFalse; - } + } } // ---------------------------------------------------------------------------- @@ -292,16 +282,34 @@ if ( err == KErrNone ) { // Call ongoing => show bubble if not showing already + TBool allowed = EFalse; + if ( !self->iIncallBubbleAllowed && self->iForeground && ( callStatus > EPSCTsyCallStateNone ) ) { - TRAP_IGNORE( self->SetCallBubbleIfNeededL() ); + allowed = ETrue; + + TRAP( err, + self->iIncallBubble->SetIncallBubbleAllowedInIdleL( allowed ) ); + + if ( err == KErrNone ) + { + self->iIncallBubbleAllowed = allowed; + } } // No call ongoing => hide if bubble is visible else if ( self->iIncallBubbleAllowed && callStatus <= EPSCTsyCallStateNone ) { - TRAP_IGNORE( self->ClearCallBubbleL() ); + allowed = EFalse; + + TRAP( err, + self->iIncallBubble->SetIncallBubbleAllowedInIdleL( allowed ) ); + + if ( err == KErrNone ) + { + self->iIncallBubbleAllowed = allowed; + } } } diff -r ace62b58f4b2 -r 9e077f9a342c menucontentsrv/enginc/menueng.h --- a/menucontentsrv/enginc/menueng.h Wed Jun 09 10:01:25 2010 +0300 +++ b/menucontentsrv/enginc/menueng.h Mon Jun 21 16:00:38 2010 +0300 @@ -421,6 +421,11 @@ */ void SetIdSeedL( TInt aSeed ); + /** + * Appends predefined attribute to items in a tree + */ + void AppendPredefinedAttributeL( ); + private: // state machine parts /** diff -r ace62b58f4b2 -r 9e077f9a342c menucontentsrv/engsrc/menueng.cpp --- a/menucontentsrv/engsrc/menueng.cpp Wed Jun 09 10:01:25 2010 +0300 +++ b/menucontentsrv/engsrc/menueng.cpp Mon Jun 21 16:00:38 2010 +0300 @@ -645,6 +645,7 @@ // Error loading ROM tree is fatal. Nothing we can do. User::LeaveIfError( iStatus.Int() ); iState = ESaveFile; + AppendPredefinedAttributeL(); SaveTempFileL(); break; } @@ -1201,6 +1202,25 @@ } // --------------------------------------------------------- +// +// --------------------------------------------------------- +// +void CMenuEng::AppendPredefinedAttributeL( ) + { + __ASSERT_DEBUG( iTree, User::Invariant() ); + MXCFWNode* root = iTree->Root(); + RNodeArray nodes; + CleanupClosePushL( nodes ); + iTree->GetNodesOfTypeL(KMenuTypeApp(),nodes, root, ETrue ); + for (TInt i = 0; iSetAttributeL( KMenuAttrPredefined(), KNullDesC(), EFalse ); + } + CleanupStack::PopAndDestroy( &nodes ); + } + +// --------------------------------------------------------- // CMenuEng::SelfComplete // --------------------------------------------------------- // diff -r ace62b58f4b2 -r 9e077f9a342c menucontentsrv/srvsrc/menusrvappscanner.cpp --- a/menucontentsrv/srvsrc/menusrvappscanner.cpp Wed Jun 09 10:01:25 2010 +0300 +++ b/menucontentsrv/srvsrc/menusrvappscanner.cpp Mon Jun 21 16:00:38 2010 +0300 @@ -32,7 +32,6 @@ _LIT( KMenuOne, "1" ); _LIT( KMenuAttrMmcId, "mmc_id" ); _LIT( KMenuMassStorage, "mass_storage" ); -_LIT( KMenuPredefinedWidget, "predefined_widget" ); _LIT( KMenuMmcHistoryFname, "mmchistory" ); // ==================== LOCAL FUNCTIONS ==================== @@ -1058,7 +1057,7 @@ flags = TMenuItem::EMissing; } else if ( iEng.ObjectL( aItem.Id() ).FindAttribute( - KMenuPredefinedWidget(), val, dummy ) ) + KMenuAttrPredefined(), val, dummy ) ) { flags = TMenuItem::EMissing; } @@ -1066,7 +1065,7 @@ else if( iEng.ObjectL( aItem.Id() ).GetAppType() != CMenuEngObject::EWidgetApp || iEng.ObjectL( aItem.Id() ).FindAttribute( - KMenuPredefinedWidget(), val, dummy ) ) + KMenuAttrPredefined(), val, dummy ) ) { flags = TMenuItem::EHidden; }