# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1282201508 -10800 # Node ID 0818dd463d41f709e572dcd73df744a8e86b5f40 # Parent 5e7d68cc22e049cfc364a7e6fd2a001e3ed0a249 Revision: 201031 Kit: 201033 diff -r 5e7d68cc22e0 -r 0818dd463d41 appsupport_plat/oom_monitor_plugin_api/inc/oommonitorplugin.h --- a/appsupport_plat/oom_monitor_plugin_api/inc/oommonitorplugin.h Thu Jul 15 18:49:38 2010 +0300 +++ b/appsupport_plat/oom_monitor_plugin_api/inc/oommonitorplugin.h Thu Aug 19 10:05:08 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2006-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" @@ -78,6 +78,16 @@ * between low and good memory states. */ virtual void MemoryGood() = 0; + + /** + * Function: AppId + * The function return the UID3 of the process which implements the plugin + * By default, the Null UID [KNullUid] is returned. + * The plugin can override this API with their own implementation. + * COomMonitorPlugin monitor plugins + * @return the UID3 the application which implements the plugin + */ + virtual const TUid AppId() const; public: /** @@ -174,6 +184,16 @@ public: IMPORT_C static CAppOomMonitorPlugin* NewL(TUid aAppUid); + /** + * Function: AppId + * The function return the UID3 of the process which implements the plugin + * By default, the Null UID [KNullUid] is returned. + * The plugin can override this API with their own implementation. + * COomMonitorPlugin monitor plugins + * @return the UID3 the application which implements the plugin + */ + const TUid AppId() const; + private: CAppOomMonitorPlugin(TUid aAppUid); diff -r 5e7d68cc22e0 -r 0818dd463d41 appsupport_plat/system_application_notification_api/inc/coreapplicationuisdomainpskeys.h --- a/appsupport_plat/system_application_notification_api/inc/coreapplicationuisdomainpskeys.h Thu Jul 15 18:49:38 2010 +0300 +++ b/appsupport_plat/system_application_notification_api/inc/coreapplicationuisdomainpskeys.h Thu Aug 19 10:05:08 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006-2007 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2006-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" @@ -332,4 +332,31 @@ ECoreAppUIsProfileActivatedNoteShown = 1 }; + + +// ============================================================================= +// GAN Mode API +// ============================================================================= + +// Use TUid KPSUidCoreApplicationUIs = { 0x101F8767 } + +const TUint32 KCoreAppUIsGanPropertyGanMode = 0x00000601; + +/** GANmode (actual network mode) */ +enum TCoreAppUIsGanMode + { + EGanModeUnspecified = 0, // We are not aware of MS GAN/GERAN state + EGanModeGAN = 1, // MS is in GAN + EGanModeGeran = 2 // MS is in GERAN + }; + + +// ============================================================================= +// GAN Signal strength +// ============================================================================= + +// Use TUid KPSUidCoreApplicationUIs = { 0x101F8767 } + +const TUint32 KCoreAppUIsGanPropertySignalLevel = 0x00000602; + #endif // COREAPPLICATIONUISDOMAINPSKEYS_H diff -r 5e7d68cc22e0 -r 0818dd463d41 contextframework/cfw/src/cfclient/cfcontextservice.cpp --- a/contextframework/cfw/src/cfclient/cfcontextservice.cpp Thu Jul 15 18:49:38 2010 +0300 +++ b/contextframework/cfw/src/cfclient/cfcontextservice.cpp Thu Aug 19 10:05:08 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2008-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" @@ -291,7 +291,7 @@ TInt err = KErrNone; // Stream context query set into buffer - HBufC8* buffer = buffer = WriteStreamContextQueryLC( aContextQuery ); + HBufC8* buffer = WriteStreamContextQueryLC( aContextQuery ); HBufC8* resultBuffer = HBufC8::NewLC( iRequestBufferSize ); TPtr8 resultBufferPtr = resultBuffer->Des(); TPckg bufferSizePtr( iRequestBufferSize ); diff -r 5e7d68cc22e0 -r 0818dd463d41 contextframework/cfw/src/cfscriptengine/cfpersistentdata.cpp --- a/contextframework/cfw/src/cfscriptengine/cfpersistentdata.cpp Thu Jul 15 18:49:38 2010 +0300 +++ b/contextframework/cfw/src/cfscriptengine/cfpersistentdata.cpp Thu Aug 19 10:05:08 2010 +0300 @@ -183,7 +183,7 @@ { FUNC_LOG; - for (TInt i = iPendingTasks.Count(); i > 0; i--) + for (TInt i = iPendingTasks.Count()-1; i >= 0; i--) { CCFPendingPersistencyTask* iTask = iPendingTasks[i]; if ( iTask->Mode() == CCFPendingPersistencyTask::EStore ) diff -r 5e7d68cc22e0 -r 0818dd463d41 contextframework/cfwplugins/PSStateSourcePlugIn/src/psstatesourceplugin.cpp --- a/contextframework/cfwplugins/PSStateSourcePlugIn/src/psstatesourceplugin.cpp Thu Jul 15 18:49:38 2010 +0300 +++ b/contextframework/cfwplugins/PSStateSourcePlugIn/src/psstatesourceplugin.cpp Thu Aug 19 10:05:08 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006-2006 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2006-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" @@ -247,7 +247,7 @@ TInt psValue; TLex lex( psValueDesc ); - lex.Val(psValue); + User::LeaveIfError( lex.Val(psValue) ); intmapper->AddMappingL(psValue, contextValue); } diff -r 5e7d68cc22e0 -r 0818dd463d41 contextframework/cfwplugins/orientationactionplugin/src/orientationactionplugin.cpp --- a/contextframework/cfwplugins/orientationactionplugin/src/orientationactionplugin.cpp Thu Jul 15 18:49:38 2010 +0300 +++ b/contextframework/cfwplugins/orientationactionplugin/src/orientationactionplugin.cpp Thu Aug 19 10:05:08 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006-2006 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2006-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" @@ -84,7 +84,6 @@ CCFActionPlugIn::TExecutionTime time = CCFActionPlugIn::ENone; - const RKeyValueArray& params = aActionIndication->Parameters(); // Check for action ID: Orientation if( aActionIndication->Identifier().CompareF( KOrientationAction ) == KErrNone ) diff -r 5e7d68cc22e0 -r 0818dd463d41 coreapplicationuis/Rfs/eabi/rfsU.DEF --- a/coreapplicationuis/Rfs/eabi/rfsU.DEF Thu Jul 15 18:49:38 2010 +0300 +++ b/coreapplicationuis/Rfs/eabi/rfsU.DEF Thu Aug 19 10:05:08 2010 +0300 @@ -33,4 +33,6 @@ _ZTV12CRfsShutdown @ 32 NONAME ; ## _ZTV13CRfsCompleter @ 33 NONAME ; ## _ZTV9CRfsAppUi @ 34 NONAME ; ## + _ZTI12CRfsConTimer @ 35 NONAME + _ZTV12CRfsConTimer @ 36 NONAME diff -r 5e7d68cc22e0 -r 0818dd463d41 coreapplicationuis/Rfs/group/rfs.mmp --- a/coreapplicationuis/Rfs/group/rfs.mmp Thu Jul 15 18:49:38 2010 +0300 +++ b/coreapplicationuis/Rfs/group/rfs.mmp Thu Aug 19 10:05:08 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2002 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" @@ -41,6 +41,7 @@ SOURCE rfsShutdown.cpp SOURCE rfsCompleter.cpp SOURCE rfsConnectionObserver.cpp +SOURCE rfscontimer.cpp START RESOURCE ../src/rfs.rss TARGETPATH RESOURCE_FILES_DIR diff -r 5e7d68cc22e0 -r 0818dd463d41 coreapplicationuis/Rfs/inc/rfsConTimer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/coreapplicationuis/Rfs/inc/rfsConTimer.h Thu Aug 19 10:05:08 2010 +0300 @@ -0,0 +1,58 @@ +/* +* Copyright (c) 2006-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" +* 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: +* +*/ + + +#ifndef __RFSCONTIMER_H +#define __RFSCONTIMER_H + +#include +#include +#include + +#include "rfsConnectionObserver.h" + +class CRfsConnectionObserver; + +class CRfsConTimer : public CActive + { + private: + + CRfsConTimer(CRfsConnectionObserver * aRfsConnectionObserver); // Construction + + + +public: + + static CRfsConTimer* CRfsConTimer::NewL(CRfsConnectionObserver * aRfsConnectionObserver); + ~CRfsConTimer(); // Destruction + void IssueTimerRequest(); // issue request + +protected: + void DoCancel(); // Cancel request + void RunL(); // service completed request. + +public: + + RTimer iTimer; // Asynchronous service provider. + CRfsConnectionObserver* iRfsConnectionObserver; + +private: // friend classes + + friend class CRfsConnectionObserver; + }; + +#endif //__RFSCONTIMER_H diff -r 5e7d68cc22e0 -r 0818dd463d41 coreapplicationuis/Rfs/inc/rfsConnectionObserver.h --- a/coreapplicationuis/Rfs/inc/rfsConnectionObserver.h Thu Jul 15 18:49:38 2010 +0300 +++ b/coreapplicationuis/Rfs/inc/rfsConnectionObserver.h Thu Aug 19 10:05:08 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2006-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" @@ -19,6 +19,16 @@ #ifndef __RFSPDPOBSERVER_H #define __RFSPDPOBSERVER_H +#include + +// P&S KEYS FROM SIP & PDP CONNECTION +#include +#include +#include + +#include "rfsConTimer.h" + +class CRfsConTimer; enum TRfsConnectionCloseState { @@ -26,7 +36,7 @@ EPdpConnectionClose // this should be the last enum }; -NONSHARABLE_CLASS( CRfsConnectionObserver ): CActive +NONSHARABLE_CLASS( CRfsConnectionObserver ): public CActive { public: @@ -62,13 +72,22 @@ void ReOpenPDPConnection(); void ReportRfsFailureToSip(); void ReportRfsCompletionToSip(); + /** + * Subscribes PDP property + * + * @since S60 v3.1 + */ + void Subscribe(); + + -private: +protected: /** * From base class CActive */ - + void DoCancel(); + /** * From CActive * @@ -76,25 +95,13 @@ */ void RunL(); - /** - * From CActive - * - * @since S60 v3.1 - */ - void DoCancel(); - + private: /** * New methods */ - /** - * Subscribes PDP property - * - * @since S60 v3.1 - */ - void Subscribe(); /** * Dismisses closing connections dialog @@ -161,14 +168,17 @@ */ TBool iAllConnectionClosed; TBool iIsWaitForDialogExecuted; - TInt iIsPDPFeatureEnabled; TBool iIsSIPConnectionsPresent; TBool iIsDialogNeedToBeDisplayed; TBool iIsSipInformedForClosingAllConnection; TBool iIsPDPInformedforClosingAllConnection; TBool iIsClosingConnectionsApplicable; + +public: TRfsConnectionCloseState iState; + TInt iIsPDPFeatureEnabled; + CRfsConTimer* iRfsConTimer; }; #endif //RFSPDPOBSERVER_H diff -r 5e7d68cc22e0 -r 0818dd463d41 coreapplicationuis/Rfs/src/rfsConnectionObserver.cpp --- a/coreapplicationuis/Rfs/src/rfsConnectionObserver.cpp Thu Jul 15 18:49:38 2010 +0300 +++ b/coreapplicationuis/Rfs/src/rfsConnectionObserver.cpp Thu Aug 19 10:05:08 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2006-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" @@ -20,17 +20,12 @@ // SYSTEM INCLUDES #include #include -#include + #include #include -#include #include #include -// P&S KEYS FROM SIP & PDP CONNECTION -#include -#include -#include // USER INCLUDES #include "rfsConnectionObserver.h" @@ -141,6 +136,9 @@ Subscribe(); } + // Create the Timer Active Object + iRfsConTimer = CRfsConTimer :: NewL(this); + TRACES("CRfsConnectionObserver::ConstructL(): End"); } @@ -170,6 +168,11 @@ CRfsConnectionObserver::~CRfsConnectionObserver() { TRACES("CRfsConnectionObserver::~CRfsConnectionObserver()"); + + if(iRfsConTimer) + { + delete iRfsConTimer; + } Cancel(); TRACES("CRfsConnectionObserver::~CRfsConnectionObserver(): End"); } @@ -190,16 +193,21 @@ // only perform the following operation if the 'iIsClosingConnectionsApplicable' is ETrue iAllConnectionClosed = EFalse; - // Send P&S notification to SIP that RFS has started TInt err(KErrNone); if (iIsSIPConnectionsPresent && iState == ESipConnectionClose) { + // Send P&S notification to SIP that RFS has started and start the timer + err = iSIPProperty.Set(KPSSipRfsUid, KSipRfsState, ESipRfsStarted ); + iRfsConTimer->IssueTimerRequest(); iIsSipInformedForClosingAllConnection = ETrue; } else if (iIsPDPFeatureEnabled && iState == EPdpConnectionClose) { + // Send P&S notification to PDP that RFS has started and start the timer + err = iPDPProperty.Set(KPDPContextManager2,KPDPContextManagerFactorySettingsReset,EPDPContextManagerFactorySettingsResetStart ); + iRfsConTimer->IssueTimerRequest(); iIsPDPInformedforClosingAllConnection = ETrue; } @@ -207,12 +215,6 @@ // Leave from here is there is any error setting the intial handshake information // This means that RFS has failed as there was some problem setting the P&S keys User::LeaveIfError(err); - if(err != KErrNone) - { - TRACES1("CRfsConnectionObserver::CloseAlwaysOnConnectionL(): Err = %d", err); - // This means that the RFS has failed - return EFalse; - } // we set the flag to indicate ExecuteLD is called and the dialog needs to be // dismissed from within the RunL() @@ -236,6 +238,11 @@ { iPDPProperty.Set(KPDPContextManager2,KPDPContextManagerFactorySettingsReset,EPDPContextManagerFactorySettingsResetStop); } + if(iRfsConTimer) + { + // Cancel the Active timer if the user cancel the Rfs operation + iRfsConTimer->Cancel(); + } } return iAllConnectionClosed; } @@ -316,7 +323,9 @@ { // set the information that we have closed all the active connections // here itself because the PDP connection/feature doen't exist + // Cancel the outstanding timer request iAllConnectionClosed = ETrue; + iRfsConTimer->Cancel(); DismissWaitDialog(); } @@ -325,7 +334,14 @@ iPDPProperty.Set(KPDPContextManager2,KPDPContextManagerFactorySettingsReset,EPDPContextManagerFactorySettingsResetStart ); // change the state to the next from within this as we are done with closing the SIP connection - iState = EPdpConnectionClose; + // Cancel the Outstanding SIP and timer request + // Subscribe to PDP and start the timer + Cancel(); + iRfsConTimer->Cancel(); + iState = EPdpConnectionClose; + Subscribe(); + iRfsConTimer->IssueTimerRequest(); + // // Under following cases the 'iIsPDPInformedforClosingAllConnection' will be set // @@ -366,8 +382,9 @@ // Now we may proceed to dsmiss the dialog and also set the state to the True for // all active connections closed iAllConnectionClosed = ETrue; + iRfsConTimer->Cancel(); DismissWaitDialog(); - } + } } } // end switch-case block } @@ -400,17 +417,19 @@ { TRACES("CRfsConnectionObserver::DoCancel()"); - if(iIsPDPFeatureEnabled) + if(iIsSIPConnectionsPresent && iState == ESipConnectionClose) + { + iSIPProperty.Cancel(); + if(!iIsPDPFeatureEnabled) + { + DismissWaitDialog(); + } + } + if(iIsPDPFeatureEnabled && iState == EPdpConnectionClose) { iPDPProperty.Cancel(); + DismissWaitDialog(); } - if(iIsSIPConnectionsPresent) - { - iSIPProperty.Cancel(); - } - - DismissWaitDialog(); - TRACES("CRfsConnectionObserver::DoCancel(): End"); } diff -r 5e7d68cc22e0 -r 0818dd463d41 coreapplicationuis/Rfs/src/rfscontimer.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/coreapplicationuis/Rfs/src/rfscontimer.cpp Thu Aug 19 10:05:08 2010 +0300 @@ -0,0 +1,89 @@ +/* +* Copyright (c) 2005-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" +* 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: +* Implements CRFsScript class which controls the parsing of the Rfs scripts +* +*/ + + +#include "rfsConTimer.h" +#include "RfsTraces.h" + +const TInt KRfsConnectionTimeOut = 60000000; + +CRfsConTimer :: CRfsConTimer(CRfsConnectionObserver * aRfsConnectionObserver):CActive( EPriorityStandard ) + { + iRfsConnectionObserver = aRfsConnectionObserver; + iTimer.CreateLocal(); + CActiveScheduler::Add( this ); + } + +CRfsConTimer :: ~CRfsConTimer() + { + TRACES("CRfsConTimer :: ~CRfsConTimer()"); + + iRfsConnectionObserver = NULL; + Cancel(); + iTimer.Close(); + } + +CRfsConTimer* CRfsConTimer::NewL(CRfsConnectionObserver * aRfsConnectionObserver) + { + TRACES("CRfsConTimer :: NewL()"); + + CRfsConTimer* self = new (ELeave) CRfsConTimer(aRfsConnectionObserver ); + return self; + } + +void CRfsConTimer :: IssueTimerRequest() + { + TRACES("CRfsConTimer :: IssueTimerRequest()"); + + if(!IsActive()) + { + iTimer.After(iStatus, KRfsConnectionTimeOut); + SetActive(); + } + } +void CRfsConTimer :: RunL() + { + TRACES("CRfsConTimer :: RunL()"); + + if(iRfsConnectionObserver->iState == ESipConnectionClose && iRfsConnectionObserver->iIsPDPFeatureEnabled) + { + // If SIP doesn't respond with in the set time, RunL will be called, + // Rfs cancels the outstanding SIP request and If PDP connection exists, + // Rfs will inform the PDP and start the timer. + + iRfsConnectionObserver->Cancel(); + iRfsConnectionObserver->iState = EPdpConnectionClose; + iRfsConnectionObserver->Subscribe(); + iTimer.After(iStatus, KRfsConnectionTimeOut); + SetActive(); + } + else + { + iRfsConnectionObserver->Cancel(); + } + } + +void CRfsConTimer :: DoCancel() + { + TRACES("CRfsConTimer :: DoCancel()"); + + if(IsActive()) + { + iTimer.Cancel(); + } + } diff -r 5e7d68cc22e0 -r 0818dd463d41 coreapplicationuis/SysAp/Group/SysAp.mmp --- a/coreapplicationuis/SysAp/Group/SysAp.mmp Thu Jul 15 18:49:38 2010 +0300 +++ b/coreapplicationuis/SysAp/Group/SysAp.mmp Thu Aug 19 10:05:08 2010 +0300 @@ -147,6 +147,9 @@ SOURCE powersavemode/sysappsmcontroller.cpp SOURCE sysapbatteryinfocontroller.cpp +SOURCE gan\sysapganpropertylistener.cpp +SOURCE gan\sysapganhandler.cpp + SOURCE SysApSatObserver.cpp LIBRARY satclient.lib // for sat refresh @@ -181,6 +184,8 @@ USERINCLUDE ../CenRep USERINCLUDE ../PubSub +USERINCLUDE ../src/gan + APP_LAYER_SYSTEMINCLUDE // used instead of MW_LAYER_SYSTEMINCLUDE due to dependencies to APP layer LIBRARY euser.lib diff -r 5e7d68cc22e0 -r 0818dd463d41 coreapplicationuis/SysAp/Inc/SysApAppUi.h --- a/coreapplicationuis/SysAp/Inc/SysApAppUi.h Thu Jul 15 18:49:38 2010 +0300 +++ b/coreapplicationuis/SysAp/Inc/SysApAppUi.h Thu Aug 19 10:05:08 2010 +0300 @@ -98,6 +98,8 @@ class CSysApDriveUnlockHandler; class CSysApDriveEjectHandler; +class CSysApGanHandler; + class CSysApBatteryInfoController; //CONSTANTS @@ -736,6 +738,13 @@ void SetSignalIndicatorWcdmaL(); /** + * Gets called by SetSignalIndicatorL() when in Gan network + * @param None + * @return void + */ + void SetSignalIndicatorGanL(); + + /** * Handles GPRS suspend/resume notes if feature supported. * ie. Gprs state icon or common signal icon. * @param None @@ -1430,7 +1439,7 @@ * @since S60 3.2 * @return reference to CSysApCenRepLogsObserver object */ - CSysApCenRepLogsObserver& CSysApAppUi::LogsObserverL(); + CSysApCenRepLogsObserver& LogsObserverL(); /** * Adds MMC removal item(s) to power menu. @@ -1692,6 +1701,12 @@ //Flag to record if the TD network is enalbed. TBool iTDEnable; TBool IsDefaultPowerKeyBehavior(); + + // Are we in GAN mode + TBool iGanEnabled; + + // Handler for GAN events + CSysApGanHandler* iSysApGanHandler; }; diff -r 5e7d68cc22e0 -r 0818dd463d41 coreapplicationuis/SysAp/Inc/SysApFeatureManager.h --- a/coreapplicationuis/SysAp/Inc/SysApFeatureManager.h Thu Jul 15 18:49:38 2010 +0300 +++ b/coreapplicationuis/SysAp/Inc/SysApFeatureManager.h Thu Aug 19 10:05:08 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2003-2009 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" @@ -185,7 +185,7 @@ * @since S60 9.2 * @return ETrue if feature is set */ - TBool CSysApFeatureManager::SlideSupported() const; + TBool SlideSupported() const; /** * Returns whether Cover Display is supported. @@ -264,6 +264,14 @@ */ TBool PowerKeyIsLockKey() const; + /** + * Returns whether GAN is supported. + * + * @since S60 3.2 + * @return ETrue if feature is supported + */ + TBool GanSupported() const; + private: /** @@ -389,6 +397,12 @@ * Short press of power key invokes keylock */ TBool iPowerKeyIsLockKey; + + /** + * Generic Access Network (GAN) supported status. + */ + TBool iGanSupported; + }; #endif // SYSAPFEATUREMANAGER_H diff -r 5e7d68cc22e0 -r 0818dd463d41 coreapplicationuis/SysAp/Inc/sysapremconobserver.h --- a/coreapplicationuis/SysAp/Inc/sysapremconobserver.h Thu Jul 15 18:49:38 2010 +0300 +++ b/coreapplicationuis/SysAp/Inc/sysapremconobserver.h Thu Aug 19 10:05:08 2010 +0300 @@ -58,7 +58,7 @@ /** * Open remcon interface and reserve the volume keys */ - void StartRemconInterface(); + void StartRemconInterfaceL(); /** * close the remcon interface and release the volume keys diff -r 5e7d68cc22e0 -r 0818dd463d41 coreapplicationuis/SysAp/Src/CenRepObservers/SysApCenRepLogsObserver.cpp --- a/coreapplicationuis/SysAp/Src/CenRepObservers/SysApCenRepLogsObserver.cpp Thu Jul 15 18:49:38 2010 +0300 +++ b/coreapplicationuis/SysAp/Src/CenRepObservers/SysApCenRepLogsObserver.cpp Thu Aug 19 10:05:08 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-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" @@ -79,7 +79,7 @@ KLogsNewMissedCalls ); iNewMissedCallsHandler->StartListeningL(); - iSession->Get(KLogsNewMissedCalls, iMissedCallsValue); + User::LeaveIfError(iSession->Get(KLogsNewMissedCalls, iMissedCallsValue)); } // ---------------------------------------------------------------------------- diff -r 5e7d68cc22e0 -r 0818dd463d41 coreapplicationuis/SysAp/Src/SysApAppUi.cpp --- a/coreapplicationuis/SysAp/Src/SysApAppUi.cpp Thu Jul 15 18:49:38 2010 +0300 +++ b/coreapplicationuis/SysAp/Src/SysApAppUi.cpp Thu Aug 19 10:05:08 2010 +0300 @@ -59,6 +59,7 @@ #include #include +#include "sysapganhandler.h" #include #include #include @@ -247,7 +248,8 @@ iSysApAudioRoutingObserver( NULL ), iSysApCenRepCallForwardingObserver( NULL ), iSysApCenRepMsgWaitingObserver( NULL ), - iKeyBoardRepeatCount(-1) + iSysApGanHandler( NULL ), + iKeyBoardRepeatCount(-1) { TRACES( RDebug::Print( _L("CSysApAppUi::CSysApAppUi()") ) ); } @@ -490,6 +492,15 @@ DeactivatePSMifBatteryNotLowL (); + if( iSysApFeatureManager->GanSupported() ) + { + + + RProperty::Define( KPSUidCoreApplicationUIs, KCoreAppUIsGanPropertyGanMode, RProperty::EInt, KAlwaysPassPolicy, KWriteDeviceDataPolicy ); + RProperty::Define( KPSUidCoreApplicationUIs, KCoreAppUIsGanPropertySignalLevel, RProperty::EInt, KAlwaysPassPolicy, KWriteDeviceDataPolicy ); + iSysApGanHandler = CSysApGanHandler::NewL( *this ); + } + TRACES( RDebug::Print( _L("CSysApAppUi::ConstructL: END") ) ); } @@ -570,6 +581,8 @@ delete iSysApStartupController; + delete iSysApGanHandler; + #ifdef RD_MULTIPLE_DRIVE iInsertedMemoryCards.Close(); delete iSysApDriveEjectHandler; @@ -747,6 +760,7 @@ TInt errorCode2 = RProperty::Get( KPSUidStartup, KStartupSecurityCodeQueryStatus, securityQueryState); TRACES( RDebug::Print( _L( "CSysApAppUi::HandleKeyEventL(): Reading value of KCoreAppUIsDisableKeyguard - State Value: %d"),alarmState)); TRACES( RDebug::Print( _L( "CSysApAppUi::HandleKeyEventL(): Reading value of KStartupSecurityCodeQueryStatus - State Value: %d"),securityQueryState)); + TInt callState( StateOfProperty( KPSUidCtsyCallInformation, KCTsyCallState ) ); //Disable keylock if Alarm is active or if a Security code query is active on the display if ( alarmState == ECoreAppUIsDisableKeyguard || securityQueryState == ESecurityQueryActive ) { @@ -754,7 +768,10 @@ } else { - KeyLock().EnableWithoutNote(); + if( callState != EPSCTsyCallStateConnected && !iDeviceLockEnabled) + { + KeyLock().EnableWithoutNote(); + } } } else @@ -1888,8 +1905,11 @@ void CSysApAppUi::UpdateSignalBarsL( const TInt aState ) { TRACES( RDebug::Print( _L("CSysApAppUi::UpdateSignalBarsL aState: %d"), aState ) ); - - if( aState == KAknSignalOffLineMode || (iSysApOfflineModeController->OfflineModeActive() && !iEmergencyCallActive) ) + if( iSysApGanHandler && iSysApGanHandler->IsInGanMode() ) + { + iSignalNotify->SetSignalLevelL( iSysApGanHandler->GanSignalLevel() ); + } + else if( aState == KAknSignalOffLineMode || (iSysApOfflineModeController->OfflineModeActive() && !iEmergencyCallActive) ) { iSignalNotify->SetSignalLevelL( KAknSignalOffLineMode ); } @@ -1942,22 +1962,39 @@ } iSignalNotify->SetWcdmaStateL( EAknSignalWcdmaIndicatorOff ); iSignalNotify->SetHsdpaStateL( EAknSignalHsdpaIndicatorOff); + TRACES( RDebug::Print(_L("CSysApAppUi::SetSignalIndicatorL: gan off" ) ) ); + iSignalNotify->SetUmaStateL( EAknSignalUmaIndicatorOff ); } else { - // The device is in Online Mode - switch ( networkMode ) - { - case ESysApGSM: - SetSignalIndicatorGsmL(); - break; - - case ESysApWCDMA: - SetSignalIndicatorWcdmaL(); - break; - - default: - break; + if( iSysApGanHandler && iSysApGanHandler->IsInGanMode() ) + { + // Enter GAN: set GAN signal bar + SetSignalIndicatorGanL(); + iGanEnabled = ETrue; + } + else + { + if( iGanEnabled ) + { + UpdateSignalBarsL(); + iGanEnabled = EFalse; + } + + // The device is in Online Mode + switch ( networkMode ) + { + case ESysApGSM: + SetSignalIndicatorGsmL(); + break; + + case ESysApWCDMA: + SetSignalIndicatorWcdmaL(); + break; + + default: + break; + } } } } @@ -2209,6 +2246,47 @@ } // ---------------------------------------------------------------------------- +// CSysApAppUi::SetSignalIndicatorGanL() +// ---------------------------------------------------------------------------- +void CSysApAppUi::SetSignalIndicatorGanL() + { + TRACES( RDebug::Print(_L("CSysApAppUi::SetSignalIndicatorGanL: available" ) ) ); + + TInt gprsStatus( 0 ); + gprsStatus = StateOfProperty( KUidSystemCategory, KPSUidGprsStatusValue ); + + TRACES( RDebug::Print( _L("CSysApAppUi::SetSignalIndicatorGanL gprsStatus: %d" ), gprsStatus ) ); + + switch ( gprsStatus ) + { + case EPSGprsContextActive: + iSignalNotify->SetUmaStateL( EAknSignalUmaIndicatorContext ); + break; + + case EPSGprsContextActivating: + iSignalNotify->SetUmaStateL( EAknSignalUmaIndicatorEstablishingContext ); + break; + + case EPSGprsSuspend: + iSignalNotify->SetUmaStateL( EAknSignalUmaIndicatorSuspended ); + break; + + case EPSGprsAttach: + iSignalNotify->SetUmaStateL( EAknSignalUmaIndicatorAttached ); + break; + + case EPSGprsMultibleContextActive: + iSignalNotify->SetUmaStateL( EAknSignalUmaIndicatorMultipdp ); + break; + + case EPSGprsUnattached: + default: + iSignalNotify->SetUmaStateL( EAknSignalUmaIndicatorAvailable ); + break; + } + } + +// ---------------------------------------------------------------------------- // CSysApAppUi::HandleGprsNotesL() // ---------------------------------------------------------------------------- diff -r 5e7d68cc22e0 -r 0818dd463d41 coreapplicationuis/SysAp/Src/SysApFeatureManager.cpp --- a/coreapplicationuis/SysAp/Src/SysApFeatureManager.cpp Thu Jul 15 18:49:38 2010 +0300 +++ b/coreapplicationuis/SysAp/Src/SysApFeatureManager.cpp Thu Aug 19 10:05:08 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2003-2009 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" @@ -114,6 +114,9 @@ iPowerKeyIsLockKey = FeatureManager::FeatureSupported( KFeatureIdFfPowerKeyAsKeyguard ); TRACES( RDebug::Print( _L("CSysApFeatureManager::ConstructL: Power Key as keyguard supported=%d"), iPowerKeyIsLockKey ) ); + + iGanSupported = FeatureManager::FeatureSupported( KFeatureIdFfGenericAccessNetwork ); + TRACES( RDebug::Print( _L("CSysApFeatureManager::ConstructL: GAN supported=%d"), iGanSupported ) ); CRepository* repository = NULL; @@ -192,8 +195,8 @@ iVmbxCallDivertIconSupported( EFalse ), iTouchUnlockStrokeSupported( EFalse ), iFmTxRdsTextSupported( EFalse ), - iPowerKeyIsLockKey ( EFalse ) - + iPowerKeyIsLockKey ( EFalse ), + iGanSupported( EFalse ) { } @@ -441,6 +444,15 @@ return iPowerKeyIsLockKey; } +// ---------------------------------------------------------------------------- +// CSysApFeatureManager::GanSupported() +// ---------------------------------------------------------------------------- +// +TBool CSysApFeatureManager::GanSupported() const + { + return iGanSupported; + } + // End of File diff -r 5e7d68cc22e0 -r 0818dd463d41 coreapplicationuis/SysAp/Src/SysApPubSubObserver.cpp --- a/coreapplicationuis/SysAp/Src/SysApPubSubObserver.cpp Thu Jul 15 18:49:38 2010 +0300 +++ b/coreapplicationuis/SysAp/Src/SysApPubSubObserver.cpp Thu Aug 19 10:05:08 2010 +0300 @@ -718,7 +718,7 @@ if(iFmTxRemConObserver) { //Open Remcon and reserve the volume keys - iFmTxRemConObserver->StartRemconInterface(); + iFmTxRemConObserver->StartRemconInterfaceL(); } } else diff -r 5e7d68cc22e0 -r 0818dd463d41 coreapplicationuis/SysAp/Src/gan/msysapganpropertyobserver.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/coreapplicationuis/SysAp/Src/gan/msysapganpropertyobserver.h Thu Aug 19 10:05:08 2010 +0300 @@ -0,0 +1,37 @@ +/* +* 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" +* 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: MSysApGanPropertyObserver class definition. This is a callback +* interface from RProperty listener to client application. +* +*/ + +#ifndef MSYSAPGANPROPERTYOBSERVER_H_ +#define MSYSAPGANPROPERTYOBSERVER_H_ + +class CSysApGanPropertyListener; + +NONSHARABLE_CLASS( MSysApGanPropertyObserver ) + { +public: + /** + * Method is called when property value changes. + * @param aPropertyListener Listener of the changed property. + * @param aStatus Status of the event. + */ + virtual void PropertyEvent( + CSysApGanPropertyListener& aPropertyListener, + TInt aStatus ) = 0; + }; + +#endif /* MSYSAPGANPROPERTYOBSERVER_H_ */ diff -r 5e7d68cc22e0 -r 0818dd463d41 coreapplicationuis/SysAp/Src/gan/sysapganhandler.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/coreapplicationuis/SysAp/Src/gan/sysapganhandler.cpp Thu Aug 19 10:05:08 2010 +0300 @@ -0,0 +1,142 @@ +/* +* 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" +* 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: Handle GAN server events +* +*/ + +#include +#include "coreapplicationuisdomainpskeys.h" +#include "sysapganhandler.h" +#include "SysApAppUi.h" +#include "SysAp.hrh" + +// ======== MEMBER FUNCTIONS ======== + +// --------------------------------------------------------------------------- +// C++ constructor +// --------------------------------------------------------------------------- +// +CSysApGanHandler::CSysApGanHandler( CSysApAppUi& aSysApAppUi ) : + iSysApAppUi( aSysApAppUi ), + iGanMode( EGanModeUnspecified ) + { + } + +// --------------------------------------------------------------------------- +// Symbian 2nd phase constructor +// --------------------------------------------------------------------------- +// +void CSysApGanHandler::ConstructL() + { + TRACES( RDebug::Print( _L("CSysApGanHandler::ConstructL IN") ) ); + TInt err( KErrNone ); + + // Start listening for GAN mode + err = iPropertyGanMode.Attach( KPSUidCoreApplicationUIs, KCoreAppUIsGanPropertyGanMode ); + User::LeaveIfError( err ); + iGanModeListener = CSysApGanPropertyListener::NewL( iPropertyGanMode, *this ); + iGanModeListener->Subscribe(); + + // Start listening for signal strength + err = iPropertySignalLevel.Attach( KPSUidCoreApplicationUIs, KCoreAppUIsGanPropertySignalLevel ); + User::LeaveIfError( err ); + iSignalLevelListener = CSysApGanPropertyListener::NewL( iPropertySignalLevel, *this ); + iSignalLevelListener->Subscribe(); + + // Get current GAN mode + TInt mode; + err = iPropertyGanMode.Get( mode ); + if( KErrNone == err ) + { + iGanMode = (TCoreAppUIsGanMode)mode; + } + + // Get current GAN signal level + iPropertySignalLevel.Get( iGanSignalLevel ); + + TRACES( RDebug::Print( _L("CSysApGanHandler::ConstructL OUT") ) ); + } + +// --------------------------------------------------------------------------- +// Static constructor. +// --------------------------------------------------------------------------- +// +CSysApGanHandler* CSysApGanHandler::NewL( CSysApAppUi& aSysApAppUi ) + { + CSysApGanHandler* self = new (ELeave) CSysApGanHandler( aSysApAppUi ); + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + return self; + } + +// --------------------------------------------------------------------------- +// Destructor. +// --------------------------------------------------------------------------- +// +CSysApGanHandler::~CSysApGanHandler() + { + delete iGanModeListener; + delete iSignalLevelListener; + iPropertyGanMode.Close(); + iPropertySignalLevel.Close(); + } + +TBool CSysApGanHandler::IsInGanMode() + { + return iGanMode == EGanModeGAN; + } + +TInt CSysApGanHandler::GanSignalLevel() + { + return iGanSignalLevel; + } + +// --------------------------------------------------------------------------- +// Handle UI Status RProperty change event. Read the new RProperty value +// and publish the content on idle screen. +// --------------------------------------------------------------------------- +// +void CSysApGanHandler::PropertyEvent( + CSysApGanPropertyListener& aPropertyListener, + TInt aStatus ) + { + TRACES( RDebug::Print( _L("CSysApGanHandler::PropertyEvent IN") ) ); + TRACES( RDebug::Print( _L("CSysApGanHandler::PropertyEvent status %d"), aStatus ) ); + + if( KErrNone == aStatus ) + { + if( iGanModeListener == &aPropertyListener ) + { + // GAN mode event + TInt mode; + TInt err = iPropertyGanMode.Get( mode ); + iGanMode = (TCoreAppUIsGanMode)mode; + TRACES( RDebug::Print( _L("CSysApGanHandler::PropertyEvent RProp err %d"), err ) ); + TRACES( RDebug::Print( _L("CSysApGanHandler::PropertyEvent GAN mode %d"), iGanMode ) ); + iSysApAppUi.SetSignalIndicatorL(); + } + else if( iSignalLevelListener == &aPropertyListener ) + { + // Signal level event + TInt err = iPropertySignalLevel.Get( iGanSignalLevel ); + TRACES( RDebug::Print( _L("CSysApGanHandler::PropertyEvent RProp err %d"), err ) ); + TRACES( RDebug::Print( _L("CSysApGanHandler::PropertyEvent signal level %d"), iGanSignalLevel ) ); + iSysApAppUi.UpdateSignalBarsL(); + } + } + aPropertyListener.Subscribe(); + TRACES( RDebug::Print( _L("CSysApGanHandler::PropertyEvent OUT") ) ); + } + diff -r 5e7d68cc22e0 -r 0818dd463d41 coreapplicationuis/SysAp/Src/gan/sysapganhandler.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/coreapplicationuis/SysAp/Src/gan/sysapganhandler.h Thu Aug 19 10:05:08 2010 +0300 @@ -0,0 +1,121 @@ +/* +* 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" +* 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: CSysApGanHandler class definition. +* +*/ + +#ifndef SYSAPGANHANDLER_H_ +#define SYSAPGANHANDLER_H_ + +#include +#include +#include "sysapganpropertylistener.h" + +class CSysApAppUi; + +/** + * Listen RProperty events from GAN server. + */ +NONSHARABLE_CLASS( CSysApGanHandler ) : + public CBase, + private MSysApGanPropertyObserver + { +public: + /** + * Static constructor. + * @param aSysApUi Application UI. + */ + static CSysApGanHandler* NewL( CSysApAppUi& aSysApAppUi ); + + /** + * Destructor. + */ + ~CSysApGanHandler(); + + /** + * Tells if phone is in GAN mode. + * @return ETrue if in GAN mode (not in GERAN) + */ + TBool IsInGanMode(); + + /** + * Tells the signal bar level in GAN mode. + * @return The number of signal bar blocks. + */ + TInt GanSignalLevel(); + +private: // from MSysApGanPropertyObserver + + /** + * Receive RProperty notification. This same interface can receive + * notifications from multiple listeners. + * @param aPropertyListener Property lister that received the notification. + * @param aStatus Status of the notification. + */ + void PropertyEvent( + CSysApGanPropertyListener& aPropertyListener, TInt aStatus ); + +private: + /** + * C++ constructor. + * @param aSysApUi Application UI. + */ + CSysApGanHandler( CSysApAppUi& aSysApAppUi ); + + /** + * Symbian 2nd phase constructor. + */ + void ConstructL(); + + +protected: // Data + + /** + * Application UI. + */ + CSysApAppUi& iSysApAppUi; + + /** + * Current GAN mode. + */ + TCoreAppUIsGanMode iGanMode; + + /** + * Current GAN signal level. + */ + TInt iGanSignalLevel; + + /** + * GAN mode property. + */ + RProperty iPropertyGanMode; + + /** + * Signal level property. + */ + RProperty iPropertySignalLevel; + + /** + * Listener for GAN mode property. + */ + CSysApGanPropertyListener* iGanModeListener; + + /** + * Listener for signal level property. + */ + CSysApGanPropertyListener* iSignalLevelListener; + + }; + +#endif /* SYSAPGANHANDLER_H_ */ diff -r 5e7d68cc22e0 -r 0818dd463d41 coreapplicationuis/SysAp/Src/gan/sysapganpropertylistener.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/coreapplicationuis/SysAp/Src/gan/sysapganpropertylistener.cpp Thu Aug 19 10:05:08 2010 +0300 @@ -0,0 +1,99 @@ +/* +* 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" +* 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: Listens to given P&S key and notifies +* observer whenever the value changes. +*/ + + +#include "sysapganpropertylistener.h" + +// ======== MEMBER FUNCTIONS ======== + +// --------------------------------------------------------------------------- +// C++ constructor +// --------------------------------------------------------------------------- +// +CSysApGanPropertyListener::CSysApGanPropertyListener( + RProperty& aProperty, + MSysApGanPropertyObserver& aObserver ) : + CActive( CActive::EPriorityStandard ), + iObserver( aObserver ), + iProperty( aProperty ) + { + CActiveScheduler::Add( this ); + } + +// --------------------------------------------------------------------------- +// Static constructor. +// --------------------------------------------------------------------------- +// +CSysApGanPropertyListener* CSysApGanPropertyListener::NewL( + RProperty& aProperty, + MSysApGanPropertyObserver& aObserver ) + { + CSysApGanPropertyListener* self = + new ( ELeave ) CSysApGanPropertyListener( aProperty, aObserver ); + return self; + } + +// --------------------------------------------------------------------------- +// Destructor. +// --------------------------------------------------------------------------- +// +CSysApGanPropertyListener::~CSysApGanPropertyListener() + { + Cancel(); // Cancel any request, if outstanding + } + +// --------------------------------------------------------------------------- +// Subscribe for property value changes. +// --------------------------------------------------------------------------- +// +void CSysApGanPropertyListener::Subscribe() + { + // Cancel any outstanding request + Cancel(); + + iProperty.Subscribe( iStatus ); + SetActive(); + } + +// --------------------------------------------------------------------------- +// Property value changed. +// --------------------------------------------------------------------------- +// +void CSysApGanPropertyListener::RunL() + { + // Notify the observer. + iObserver.PropertyEvent( *this, iStatus.Int() ); + } + +// --------------------------------------------------------------------------- +// Subscription cancelled. +// --------------------------------------------------------------------------- +// +void CSysApGanPropertyListener::DoCancel() + { + iProperty.Cancel(); + } + +// --------------------------------------------------------------------------- +// Error in RunL. +// --------------------------------------------------------------------------- +// +TInt CSysApGanPropertyListener::RunError( TInt /*aError*/ ) + { + // ignore error + return KErrNone; + } diff -r 5e7d68cc22e0 -r 0818dd463d41 coreapplicationuis/SysAp/Src/gan/sysapganpropertylistener.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/coreapplicationuis/SysAp/Src/gan/sysapganpropertylistener.h Thu Aug 19 10:05:08 2010 +0300 @@ -0,0 +1,100 @@ +/* +* 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" +* 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: CSysApGanPropertyListener class definition. Class for +* RProperty changes from GAN server. +*/ + + +#ifndef C_SYSAPGANPROPERTYLISTENER_H +#define C_SYSAPGANPROPERTYLISTENER_H + +#include +#include +#include "msysapganpropertyobserver.h" + +/** + * Listen RProperty events. + */ +NONSHARABLE_CLASS( CSysApGanPropertyListener ) : + public CActive + { +public: + /** + * Static constructor. + * @param aProperty Property to listen to. + * @param aObserver Object that is informed about about new IAP usage. + */ + static CSysApGanPropertyListener* NewL( + RProperty& aProperty, + MSysApGanPropertyObserver& aObserver ); + + /** + * Destructor. + */ + ~CSysApGanPropertyListener(); + +protected: + /** + * C++ constructor. + * @param aProperty Property to listen to. + * @param aObserver Object that is informed about about new IAP usage. + */ + CSysApGanPropertyListener( + RProperty& aProperty, + MSysApGanPropertyObserver& aObserver ); + + /** + * Symbian 2nd phase constructor. + */ + void ConstructL(); + +public: + /** + * Subscribes to a property. + */ + void Subscribe(); + +protected: // From CActive + + /** + * Handles an active object's request completion event. + */ + void RunL(); + + /** + * Cancels asynchronous request. + */ + void DoCancel(); + + /** + * Handles a leave occurring in RunL(). + * @param aError Error that caused RunL to leave. + */ + TInt RunError( TInt aError ); + +protected: // Data + + /** + * Observer to notifiy about property changes. + */ + MSysApGanPropertyObserver& iObserver; + + /** + * Property to listen to. + */ + RProperty& iProperty; + + }; + +#endif // C_SYSAPGANPROPERTYLISTENER_H diff -r 5e7d68cc22e0 -r 0818dd463d41 coreapplicationuis/SysAp/Src/sysapdefaultkeyhandler.cpp --- a/coreapplicationuis/SysAp/Src/sysapdefaultkeyhandler.cpp Thu Jul 15 18:49:38 2010 +0300 +++ b/coreapplicationuis/SysAp/Src/sysapdefaultkeyhandler.cpp Thu Aug 19 10:05:08 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006-2008 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2006-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" @@ -237,7 +237,7 @@ { TInt keyGuardSetting; - iSlideRepository->Get( KSlideKeyguard, keyGuardSetting ); + User::LeaveIfError(iSlideRepository->Get( KSlideKeyguard, keyGuardSetting )); switch( ( TSlideSettingKeyguard ) keyGuardSetting ) { case ESlideSettingsKeyguardActivatingOn: diff -r 5e7d68cc22e0 -r 0818dd463d41 coreapplicationuis/SysAp/Src/sysapremconobserver.cpp --- a/coreapplicationuis/SysAp/Src/sysapremconobserver.cpp Thu Jul 15 18:49:38 2010 +0300 +++ b/coreapplicationuis/SysAp/Src/sysapremconobserver.cpp Thu Aug 19 10:05:08 2010 +0300 @@ -108,7 +108,7 @@ /** * Reserve the volume keys */ -void CSysApRemConObserver::StartRemconInterface() +void CSysApRemConObserver::StartRemconInterfaceL() { TRACES( RDebug::Print( _L("CSysApRemConObserver::BlockKeys"))); if(!iInterfaceSelector) diff -r 5e7d68cc22e0 -r 0818dd463d41 coreapplicationuis/advancedtspcontroller/data/keyevent.rul --- a/coreapplicationuis/advancedtspcontroller/data/keyevent.rul Thu Jul 15 18:49:38 2010 +0300 +++ b/coreapplicationuis/advancedtspcontroller/data/keyevent.rul Thu Aug 19 10:05:08 2010 +0300 @@ -105,7 +105,6 @@ - + + + + + + + /> diff -r 5e7d68cc22e0 -r 0818dd463d41 coreapplicationuis/kefmapper/data/AknKeyEventMap.rss --- a/coreapplicationuis/kefmapper/data/AknKeyEventMap.rss Thu Jul 15 18:49:38 2010 +0300 +++ b/coreapplicationuis/kefmapper/data/AknKeyEventMap.rss Thu Aug 19 10:05:08 2010 +0300 @@ -44,7 +44,22 @@ devicemode = { KKefModeDefault }; eventtype = { KKefTypeShort | KKefTypeKey }; feedbacktype = 1; // 1 = Basic feedback - } + }, + KEF_KEY_EVENT + { + scancode = { EStdKeyRightFunc, EStdKeyUpArrow } ; + keycode = { EStdKeyApplicationC, EStdKeyApplicationC, EStdKeyApplicationC } ; + devicemode = { 0, 1, 2 }; + eventtype = { KKefTypeShort | KKefTypeLong, KKefTypeShort | KKefTypeLong, KKefTypeShort | KKefTypeLong }; + }, + + KEF_KEY_EVENT + { + scancode = { EStdKeyRightFunc, EStdKeyDownArrow } ; + keycode = { EStdKeyApplicationD, EStdKeyApplicationD, EStdKeyApplicationD } ; + devicemode = { 0, 1, 2 }; + eventtype = { KKefTypeShort | KKefTypeLong, KKefTypeShort | KKefTypeLong, KKefTypeShort | KKefTypeLong }; + } }; } diff -r 5e7d68cc22e0 -r 0818dd463d41 coreapplicationuis/powersaveutilities/batterypopupcontrol/inc/batterypopupcontrol.h --- a/coreapplicationuis/powersaveutilities/batterypopupcontrol/inc/batterypopupcontrol.h Thu Jul 15 18:49:38 2010 +0300 +++ b/coreapplicationuis/powersaveutilities/batterypopupcontrol/inc/batterypopupcontrol.h Thu Aug 19 10:05:08 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2007-10 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" @@ -290,6 +290,11 @@ * Rect for link */ TRect iLinkRect; + + /** + * Alignment of the Layout either ERight or ELeft + */ + CGraphicsContext::TTextAlign iAlign; }; diff -r 5e7d68cc22e0 -r 0818dd463d41 coreapplicationuis/powersaveutilities/batterypopupcontrol/src/batterypopupcontrol.cpp --- a/coreapplicationuis/powersaveutilities/batterypopupcontrol/src/batterypopupcontrol.cpp Thu Jul 15 18:49:38 2010 +0300 +++ b/coreapplicationuis/powersaveutilities/batterypopupcontrol/src/batterypopupcontrol.cpp Thu Aug 19 10:05:08 2010 +0300 @@ -341,7 +341,7 @@ TInt textBaseLineOffset = 0; textBaseLineOffset = (rect.Height() - font->FontMaxHeight())/2; - gc.DrawText( *(iText->Text()), rect, textBaseLineOffset, CGraphicsContext::ELeft ); + gc.DrawText( *(iText->Text()), rect, textBaseLineOffset, iAlign ); //gc.Reset(); } @@ -397,7 +397,7 @@ baselineOffset = font->AscentInPixels() + ( rect.Height() - font->AscentInPixels() ) / 2; gc.DrawText( ptr, rect, baselineOffset, - CGraphicsContext::ELeft ); + iAlign ); delete visualText; } } @@ -475,12 +475,8 @@ TAknTextComponentLayout textLayout = AknLayoutScalable_Avkon::popup_battery_window_t1( iVariant ); - TAknLayoutText textRect; - textRect.LayoutText( rectPopUpWindow, textLayout ); - - iText->SetRect( textRect.TextRect() ); - // Set text font - iText->SetFont( textRect.Font() ); + AknLayoutUtils::LayoutLabel(iText, rectPopUpWindow, textLayout); + } // Set link text rect @@ -491,6 +487,8 @@ linkLayoutText.LayoutText( rectPopUpWindow, AknLayoutScalable_Avkon::popup_battery_window_t2( EVariantIconTextLink ) ); + iAlign = linkLayoutText.Align(); + iFont = linkLayoutText.Font(); TInt tempWidth = iFont->TextWidthInPixels( *(iLinkText) ); @@ -508,7 +506,17 @@ tempRect = TRect( linkLayout.Rect() ); } - tempRect.SetWidth( tempWidth ); + + if( iAlign == CGraphicsContext::ERight ) + { + tempRect.iTl.iX = tempWidth - tempRect.iBr.iX; + } + else + { + tempRect.SetWidth( tempWidth ); + } + + iLinkRect = tempRect; } } diff -r 5e7d68cc22e0 -r 0818dd463d41 mediakeys/MMKeyBearer/src/MMKeyBearerImplementation.cpp --- a/mediakeys/MMKeyBearer/src/MMKeyBearerImplementation.cpp Thu Jul 15 18:49:38 2010 +0300 +++ b/mediakeys/MMKeyBearer/src/MMKeyBearerImplementation.cpp Thu Aug 19 10:05:08 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005-2008 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-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" @@ -342,6 +342,12 @@ INFO_3( "Received key: enumValue = %d, keyType = %d, usbFileTransfer = %d", aEnumValue, aKeyType, iUSBFileTransfer ); + //Start the listener once again + if (aKeyType == ESideVolumeKeys) + { + iMMKeyBearerObserver->Start(); + } + // Mediakeys must be disabled when MTP (Music Transfer) is happening. if (aKeyType == EFileTransferStatus) { @@ -412,11 +418,7 @@ TInt aError = Observer().NewCommand(addr); //Start the listener once again - if (aKeyType == ESideVolumeKeys) - { - iMMKeyBearerObserver->Start(); - } - else if (aKeyType == EMediaKeys) + if (aKeyType == EMediaKeys) { iMediaKeyObserver->Start(); } diff -r 5e7d68cc22e0 -r 0818dd463d41 startupservices/Startup/inc/StartupAppUi.h --- a/startupservices/Startup/inc/StartupAppUi.h Thu Jul 15 18:49:38 2010 +0300 +++ b/startupservices/Startup/inc/StartupAppUi.h Thu Aug 19 10:05:08 2010 +0300 @@ -393,6 +393,8 @@ * @param aType The type of resources that have changed. */ void HandleResourceChangeL( TInt aType ); + + void IsFTUAvailableL(TBool& aFTUAvailable); #endif // RD_STARTUP_ANIMATION_CUSTOMIZATION /** diff -r 5e7d68cc22e0 -r 0818dd463d41 startupservices/Startup/inc/StartupWelcomeCrKeys.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/startupservices/Startup/inc/StartupWelcomeCrKeys.h Thu Aug 19 10:05:08 2010 +0300 @@ -0,0 +1,33 @@ +/* +* 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" +* 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: Startup Welcome keys +*/ + +#ifndef __STARTUPWELCOMECRKEYS_H +#define __STARTUPWELCOMECRKEYS_H + +/** + * The Uid for the repository itself + * This repository holds the settings for Welcome2 + */ +const TUid KCRUidWelcome6 = { 0x200122A4 }; + +/* + * Used by PA to indicate if it has accomplished the task. + */ + +const TUint32 KPhoneActicationCompleted = 0x0000000B; +#endif // STARTUPWELCOMCRKEYS_H + +// End of file \ No newline at end of file diff -r 5e7d68cc22e0 -r 0818dd463d41 startupservices/Startup/src/StartupAppUi.cpp --- a/startupservices/Startup/src/StartupAppUi.cpp Thu Jul 15 18:49:38 2010 +0300 +++ b/startupservices/Startup/src/StartupAppUi.cpp Thu Aug 19 10:05:08 2010 +0300 @@ -35,6 +35,7 @@ #include #include #include +#include "StartupWelcomeCrKeys.h" #ifdef RD_UI_TRANSITION_EFFECTS_PHASE2 // Transition effects @@ -939,7 +940,21 @@ #endif // RD_STARTUP_ANIMATION_CUSTOMIZATION #ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION - UpdateStartupUiPhase( EStartupUiPhaseAllDone ); + TBool fTUDone = ETrue; + TRAP_IGNORE(IsFTUAvailableL(fTUDone)); + + if(fTUDone) + { + UpdateStartupUiPhase( EStartupUiPhaseAllDone ); + } + else + { + UpdateStartupUiPhase(EStartupUiPhaseAllDone+1); + } + + //UpdateStartupUiPhase( EStartupUiPhaseAllDone ); + + #endif // RD_STARTUP_ANIMATION_CUSTOMIZATION TRACES("CStartupAppUi::DoStartupEndPart(): Exit application."); @@ -948,6 +963,15 @@ TRACES("CStartupAppUi::DoStartupEndPart(): End"); } +void CStartupAppUi::IsFTUAvailableL(TBool& aFTUAvailable) + { + //From Startupwelcomecrkeys.h + CRepository* repo = CRepository::NewLC(KCRUidWelcome6); + repo->Get(KPhoneActicationCompleted, aFTUAvailable); + CleanupStack::PopAndDestroy(repo); + } + + #ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION // --------------------------------------------------------------------------- // CStartupAppUi::ContinueStartupAfterToneL() diff -r 5e7d68cc22e0 -r 0818dd463d41 sysresmonitoring/oommonitor/bwins/oommonitorU.DEF --- a/sysresmonitoring/oommonitor/bwins/oommonitorU.DEF Thu Jul 15 18:49:38 2010 +0300 +++ b/sysresmonitoring/oommonitor/bwins/oommonitorU.DEF Thu Aug 19 10:05:08 2010 +0300 @@ -17,4 +17,5 @@ ?RequestOptionalRam@ROomMonitorSession@@QAEHHHHAAH@Z @ 16 NONAME ; int ROomMonitorSession::RequestOptionalRam(int, int, int, int &) ?RequestOptionalRam@ROomMonitorSession@@QAEXHHHAAVTRequestStatus@@@Z @ 17 NONAME ; void ROomMonitorSession::RequestOptionalRam(int, int, int, class TRequestStatus &) ?SetOomPriority@ROomMonitorSession@@QAEXW4TOomPriority@1@@Z @ 18 NONAME ; void ROomMonitorSession::SetOomPriority(enum ROomMonitorSession::TOomPriority) + ?AppId@COomMonitorPlugin@@UBE?BVTUid@@XZ @ 19 NONAME ; class TUid const COomMonitorPlugin::AppId(void) const diff -r 5e7d68cc22e0 -r 0818dd463d41 sysresmonitoring/oommonitor/data/oomconfig.xml --- a/sysresmonitoring/oommonitor/data/oomconfig.xml Thu Jul 15 18:49:38 2010 +0300 +++ b/sysresmonitoring/oommonitor/data/oomconfig.xml Thu Aug 19 10:05:08 2010 +0300 @@ -1,5 +1,5 @@ - +