# HG changeset patch # User srilekhas # Date 1282575313 -3600 # Node ID 72869d76c62987c91b768c43a4dbf6e673508d7f # Parent 0818dd463d41f709e572dcd73df744a8e86b5f40# Parent 49762640db60205b40f034b08a793f375496cd82 Merge RCL_3 fixes with latest delivery. diff -r 49762640db60 -r 72869d76c629 appsupport_plat/oom_monitor_plugin_api/inc/oommonitorplugin.h --- a/appsupport_plat/oom_monitor_plugin_api/inc/oommonitorplugin.h Mon Jul 12 15:58:51 2010 +0100 +++ b/appsupport_plat/oom_monitor_plugin_api/inc/oommonitorplugin.h Mon Aug 23 15:55:13 2010 +0100 @@ -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 49762640db60 -r 72869d76c629 appsupport_plat/system_application_notification_api/inc/coreapplicationuisdomainpskeys.h --- a/appsupport_plat/system_application_notification_api/inc/coreapplicationuisdomainpskeys.h Mon Jul 12 15:58:51 2010 +0100 +++ b/appsupport_plat/system_application_notification_api/inc/coreapplicationuisdomainpskeys.h Mon Aug 23 15:55:13 2010 +0100 @@ -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 49762640db60 -r 72869d76c629 commonappservices/alarmserver/Documentation/AlarmStateTransitionAndAlarmAlertCom.xls Binary file commonappservices/alarmserver/Documentation/AlarmStateTransitionAndAlarmAlertCom.xls has changed diff -r 49762640db60 -r 72869d76c629 commonappservices/alarmserver/Server/Source/assrvsystemstate.cpp --- a/commonappservices/alarmserver/Server/Source/assrvsystemstate.cpp Mon Jul 12 15:58:51 2010 +0100 +++ b/commonappservices/alarmserver/Server/Source/assrvsystemstate.cpp Mon Aug 23 15:55:13 2010 +0100 @@ -1,4 +1,4 @@ -// 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" @@ -142,7 +142,7 @@ aState = MASSrvSystemStateObserver::EShutdown; interestedInChange = ETrue; } - else if (ssmState.MainState() == ESsmNormal && ssmState.SubState() == ESsmNormalSubState) + else if (ssmState.MainState() == ESsmNormal) { aState = MASSrvSystemStateObserver::ENormal; interestedInChange = ETrue; diff -r 49762640db60 -r 72869d76c629 commonappservices/alarmserver/Test/Integration/AlarmTestServer/doc_pub/SGL.GT0257.603_AlarmServer updatesTest Specification.doc Binary file commonappservices/alarmserver/Test/Integration/AlarmTestServer/doc_pub/SGL.GT0257.603_AlarmServer updatesTest Specification.doc has changed diff -r 49762640db60 -r 72869d76c629 commonappservices/alarmserver/Test/Integration/TestCITAlarmServer/doc_pub/SGL.GT0257.612.Bravo_SystemSupportForUTC_Test_Case_PREQ234 Rev1.0.doc Binary file commonappservices/alarmserver/Test/Integration/TestCITAlarmServer/doc_pub/SGL.GT0257.612.Bravo_SystemSupportForUTC_Test_Case_PREQ234 Rev1.0.doc has changed diff -r 49762640db60 -r 72869d76c629 commonappservices/alarmserver/doc_pub/AlarmStateTransitionAndAlarmAlertCom.xls Binary file commonappservices/alarmserver/doc_pub/AlarmStateTransitionAndAlarmAlertCom.xls has changed diff -r 49762640db60 -r 72869d76c629 commonappservices/alarmserver/doc_pub/SGL.GT0257.207_Rev1.1_Alarm_Server_Configuration_how_to.doc Binary file commonappservices/alarmserver/doc_pub/SGL.GT0257.207_Rev1.1_Alarm_Server_Configuration_how_to.doc has changed diff -r 49762640db60 -r 72869d76c629 commonappservices/alarmserver/doc_pub/alarm server test code.doc Binary file commonappservices/alarmserver/doc_pub/alarm server test code.doc has changed diff -r 49762640db60 -r 72869d76c629 commonappservices/appservicesdocs/app-services_documentation.history.xml --- a/commonappservices/appservicesdocs/app-services_documentation.history.xml Mon Jul 12 15:58:51 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ - - - - - diff -r 49762640db60 -r 72869d76c629 commonappservices/appservicesdocs/app-services_documentation.mrp --- a/commonappservices/appservicesdocs/app-services_documentation.mrp Mon Jul 12 15:58:51 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ -component app-services_documentation - -source \sf\mw\appsupport\commonappservices\appservicesdocs\ - -notes_source \component_defs\release.src - - -ipr E - diff -r 49762640db60 -r 72869d76c629 commonappservices/appservicesdocs/architecturaldescription.eap Binary file commonappservices/appservicesdocs/architecturaldescription.eap has changed diff -r 49762640db60 -r 72869d76c629 commonappservices/coreappstest/Group/BLD.INF --- a/commonappservices/coreappstest/Group/BLD.INF Mon Jul 12 15:58:51 2010 +0100 +++ b/commonappservices/coreappstest/Group/BLD.INF Mon Aug 23 15:55:13 2010 +0100 @@ -1,4 +1,4 @@ -// 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" @@ -25,11 +25,7 @@ PRJ_TESTEXPORTS CoreAppsTestTest.iby /epoc32/rom/include/coreappstesttest.iby -#ifdef SYMBIAN_OLD_EXPORT_LOCATION -../Inc/TestServer.h /epoc32/include/coreappstest/testserver.h -#endif -#ifdef SYMBIAN_OLD_EXPORT_LOCATION -../Inc/utilities.h /epoc32/include/coreappstest/utilities.h -#endif +../Inc/testserver.h SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(coreappstest/testserver.h) +../Inc/utilities.h SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(coreappstest/utilities.h) CoreAppsTest.iby /epoc32/rom/include/coreappstest.iby runeshell.iby /epoc32/rom/include/runeshell.iby diff -r 49762640db60 -r 72869d76c629 commonappservices/doc_pub/App-Services_Architectural_Description.doc Binary file commonappservices/doc_pub/App-Services_Architectural_Description.doc has changed diff -r 49762640db60 -r 72869d76c629 commonappservices/doc_pub/App-Services_Functional_Specification.doc Binary file commonappservices/doc_pub/App-Services_Functional_Specification.doc has changed diff -r 49762640db60 -r 72869d76c629 commonappservices/doc_pub/PIMTestCodeOrganisationHowTo.doc Binary file commonappservices/doc_pub/PIMTestCodeOrganisationHowTo.doc has changed diff -r 49762640db60 -r 72869d76c629 commonappservices/doc_pub/SGL.GT0109.110_Rev1.2_AppServices_Subsystem_Release_Note.doc Binary file commonappservices/doc_pub/SGL.GT0109.110_Rev1.2_AppServices_Subsystem_Release_Note.doc has changed diff -r 49762640db60 -r 72869d76c629 commonappservices/doc_pub/SGL.GT228.017_Migration Guide for v9.1 Time Handling APIs.doc Binary file commonappservices/doc_pub/SGL.GT228.017_Migration Guide for v9.1 Time Handling APIs.doc has changed diff -r 49762640db60 -r 72869d76c629 commonappservices/doc_pub/app-services_documentation.history.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/commonappservices/doc_pub/app-services_documentation.history.xml Mon Aug 23 15:55:13 2010 +0100 @@ -0,0 +1,5 @@ + + + + + diff -r 49762640db60 -r 72869d76c629 commonappservices/doc_pub/app-services_documentation.mrp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/commonappservices/doc_pub/app-services_documentation.mrp Mon Aug 23 15:55:13 2010 +0100 @@ -0,0 +1,9 @@ +component app-services_documentation + +source \sf\mw\appsupport\commonappservices\doc_pub\ + +notes_source \component_defs\release.src + + +ipr E + diff -r 49762640db60 -r 72869d76c629 commonappservices/doc_pub/architecturaldescription.eap Binary file commonappservices/doc_pub/architecturaldescription.eap has changed diff -r 49762640db60 -r 72869d76c629 contenthandling/webrecognisers/Documentation/Uid.txt --- a/contenthandling/webrecognisers/Documentation/Uid.txt Mon Jul 12 15:58:51 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ -UIDs Allocated for Application-Protocol Recognisers - -KUidAppProtRecognisers - -101FD8D0 KUidRecogTestEcomInterface ECom Interface for recogniser test plugins -101FD8D1 KUidWebUrlRecogTestDll Web URL recogniser test plugin DLL UID -101FD8D2 KUidWebUrlRecogTest Web URL recogniser ECom implementation UID -101FD8D3 KUidEBookmarkRecogTestDll EBookmark recogniser test plugin DLL UID -101FD8D4 KUidEBookmarkRecogTest EBookmark recogniser ECom implementation UID -101FD8D5 KUidRecWebRecogTestDll Web (html/xml) recogniser test plugin DLL UID -101FD8D6 KUidRecWebRecogTest Web (html/xml) recogniser ECom implementation UID -101FD8D7 -101FD8D8 -101FD8D9 \ No newline at end of file diff -r 49762640db60 -r 72869d76c629 contenthandling/webrecognisers/doc_pub/Recogniser Test Specifications.doc Binary file contenthandling/webrecognisers/doc_pub/Recogniser Test Specifications.doc has changed diff -r 49762640db60 -r 72869d76c629 contenthandling/webrecognisers/doc_pub/Uid.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contenthandling/webrecognisers/doc_pub/Uid.txt Mon Aug 23 15:55:13 2010 +0100 @@ -0,0 +1,30 @@ +// Copyright (c) 1999-2009 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: +// + + +UIDs Allocated for Application-Protocol Recognisers + +KUidAppProtRecognisers + +101FD8D0 KUidRecogTestEcomInterface ECom Interface for recogniser test plugins +101FD8D1 KUidWebUrlRecogTestDll Web URL recogniser test plugin DLL UID +101FD8D2 KUidWebUrlRecogTest Web URL recogniser ECom implementation UID +101FD8D3 KUidEBookmarkRecogTestDll EBookmark recogniser test plugin DLL UID +101FD8D4 KUidEBookmarkRecogTest EBookmark recogniser ECom implementation UID +101FD8D5 KUidRecWebRecogTestDll Web (html/xml) recogniser test plugin DLL UID +101FD8D6 KUidRecWebRecogTest Web (html/xml) recogniser ECom implementation UID +101FD8D7 +101FD8D8 +101FD8D9 \ No newline at end of file diff -r 49762640db60 -r 72869d76c629 contextframework/cfw/src/cfclient/cfcontextservice.cpp --- a/contextframework/cfw/src/cfclient/cfcontextservice.cpp Mon Jul 12 15:58:51 2010 +0100 +++ b/contextframework/cfw/src/cfclient/cfcontextservice.cpp Mon Aug 23 15:55:13 2010 +0100 @@ -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 49762640db60 -r 72869d76c629 contextframework/cfw/src/cfscriptengine/cfpersistentdata.cpp --- a/contextframework/cfw/src/cfscriptengine/cfpersistentdata.cpp Mon Jul 12 15:58:51 2010 +0100 +++ b/contextframework/cfw/src/cfscriptengine/cfpersistentdata.cpp Mon Aug 23 15:55:13 2010 +0100 @@ -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 49762640db60 -r 72869d76c629 contextframework/cfwplugins/ApplicationStateSourcePlugIn/inc/cfapplicationstatesettings.h --- a/contextframework/cfwplugins/ApplicationStateSourcePlugIn/inc/cfapplicationstatesettings.h Mon Jul 12 15:58:51 2010 +0100 +++ b/contextframework/cfwplugins/ApplicationStateSourcePlugIn/inc/cfapplicationstatesettings.h Mon Aug 23 15:55:13 2010 +0100 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2007-2007 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" @@ -95,7 +95,7 @@ * is found. * @return None */ - void GetViewName( const TUid& aUid, TPtrC& aName ) const; + TBool GetViewName( const TUid& aUid, TPtrC& aName ) const; private: diff -r 49762640db60 -r 72869d76c629 contextframework/cfwplugins/ApplicationStateSourcePlugIn/src/ApplicationStateSourcePlugin.cpp --- a/contextframework/cfwplugins/ApplicationStateSourcePlugIn/src/ApplicationStateSourcePlugin.cpp Mon Jul 12 15:58:51 2010 +0100 +++ b/contextframework/cfwplugins/ApplicationStateSourcePlugIn/src/ApplicationStateSourcePlugin.cpp Mon Aug 23 15:55:13 2010 +0100 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2002-2009 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" @@ -452,8 +452,8 @@ if ( !fgFound && aEvent.iViewOneId.iAppUid == appSettings->Uid() ) { fgApp.Set( appSettings->Name() ); - appSettings->GetViewName( aEvent.iViewOneId.iViewUid, fgView ); - fgFound = ETrue; + //Check for flag returned by GetViewName, don't directly set the Flag to ETrue + fgFound = appSettings->GetViewName( aEvent.iViewOneId.iViewUid, fgView ); } if ( !bgFound && aEvent.iViewTwoId.iAppUid == appSettings->Uid() ) { diff -r 49762640db60 -r 72869d76c629 contextframework/cfwplugins/ApplicationStateSourcePlugIn/src/cfapplicationstatesettings.cpp --- a/contextframework/cfwplugins/ApplicationStateSourcePlugIn/src/cfapplicationstatesettings.cpp Mon Jul 12 15:58:51 2010 +0100 +++ b/contextframework/cfwplugins/ApplicationStateSourcePlugIn/src/cfapplicationstatesettings.cpp Mon Aug 23 15:55:13 2010 +0100 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2007-2007 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" @@ -99,15 +99,18 @@ // CCFApplicationStateSettings::AddViewSettingsL //----------------------------------------------------------------------------- // -void CCFApplicationStateSettings::GetViewName( const TUid& aUid, +TBool CCFApplicationStateSettings::GetViewName( const TUid& aUid, TPtrC& aName ) const { + TBool matchFound = EFalse; for ( TInt i = 0; i < iViewInfo.Count(); ++i ) { if ( aUid == iViewInfo[ i ]->Uid() ) { aName.Set( iViewInfo[ i ]->Name() ); + matchFound = ETrue; break; } } + return matchFound; } diff -r 49762640db60 -r 72869d76c629 contextframework/cfwplugins/PSStateSourcePlugIn/src/psstatesourceplugin.cpp --- a/contextframework/cfwplugins/PSStateSourcePlugIn/src/psstatesourceplugin.cpp Mon Jul 12 15:58:51 2010 +0100 +++ b/contextframework/cfwplugins/PSStateSourcePlugIn/src/psstatesourceplugin.cpp Mon Aug 23 15:55:13 2010 +0100 @@ -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 49762640db60 -r 72869d76c629 contextframework/cfwplugins/orientationactionplugin/src/orientationactionplugin.cpp --- a/contextframework/cfwplugins/orientationactionplugin/src/orientationactionplugin.cpp Mon Jul 12 15:58:51 2010 +0100 +++ b/contextframework/cfwplugins/orientationactionplugin/src/orientationactionplugin.cpp Mon Aug 23 15:55:13 2010 +0100 @@ -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 49762640db60 -r 72869d76c629 coreapplicationuis/Rfs/eabi/rfsU.DEF --- a/coreapplicationuis/Rfs/eabi/rfsU.DEF Mon Jul 12 15:58:51 2010 +0100 +++ b/coreapplicationuis/Rfs/eabi/rfsU.DEF Mon Aug 23 15:55:13 2010 +0100 @@ -33,4 +33,6 @@ _ZTV12CRfsShutdown @ 32 NONAME ; ## _ZTV13CRfsCompleter @ 33 NONAME ; ## _ZTV9CRfsAppUi @ 34 NONAME ; ## + _ZTI12CRfsConTimer @ 35 NONAME + _ZTV12CRfsConTimer @ 36 NONAME diff -r 49762640db60 -r 72869d76c629 coreapplicationuis/Rfs/group/rfs.mmp --- a/coreapplicationuis/Rfs/group/rfs.mmp Mon Jul 12 15:58:51 2010 +0100 +++ b/coreapplicationuis/Rfs/group/rfs.mmp Mon Aug 23 15:55:13 2010 +0100 @@ -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 49762640db60 -r 72869d76c629 coreapplicationuis/Rfs/inc/rfsConTimer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/coreapplicationuis/Rfs/inc/rfsConTimer.h Mon Aug 23 15:55:13 2010 +0100 @@ -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 49762640db60 -r 72869d76c629 coreapplicationuis/Rfs/inc/rfsConnectionObserver.h --- a/coreapplicationuis/Rfs/inc/rfsConnectionObserver.h Mon Jul 12 15:58:51 2010 +0100 +++ b/coreapplicationuis/Rfs/inc/rfsConnectionObserver.h Mon Aug 23 15:55:13 2010 +0100 @@ -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 49762640db60 -r 72869d76c629 coreapplicationuis/Rfs/src/rfsConnectionObserver.cpp --- a/coreapplicationuis/Rfs/src/rfsConnectionObserver.cpp Mon Jul 12 15:58:51 2010 +0100 +++ b/coreapplicationuis/Rfs/src/rfsConnectionObserver.cpp Mon Aug 23 15:55:13 2010 +0100 @@ -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 49762640db60 -r 72869d76c629 coreapplicationuis/Rfs/src/rfscontimer.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/coreapplicationuis/Rfs/src/rfscontimer.cpp Mon Aug 23 15:55:13 2010 +0100 @@ -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 49762640db60 -r 72869d76c629 coreapplicationuis/SysAp/Group/SysAp.mmp --- a/coreapplicationuis/SysAp/Group/SysAp.mmp Mon Jul 12 15:58:51 2010 +0100 +++ b/coreapplicationuis/SysAp/Group/SysAp.mmp Mon Aug 23 15:55:13 2010 +0100 @@ -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 49762640db60 -r 72869d76c629 coreapplicationuis/SysAp/Inc/SysApAppUi.h --- a/coreapplicationuis/SysAp/Inc/SysApAppUi.h Mon Jul 12 15:58:51 2010 +0100 +++ b/coreapplicationuis/SysAp/Inc/SysApAppUi.h Mon Aug 23 15:55:13 2010 +0100 @@ -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. @@ -1691,6 +1700,13 @@ TInt iProfileItemsOffset; //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 49762640db60 -r 72869d76c629 coreapplicationuis/SysAp/Inc/SysApFeatureManager.h --- a/coreapplicationuis/SysAp/Inc/SysApFeatureManager.h Mon Jul 12 15:58:51 2010 +0100 +++ b/coreapplicationuis/SysAp/Inc/SysApFeatureManager.h Mon Aug 23 15:55:13 2010 +0100 @@ -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 49762640db60 -r 72869d76c629 coreapplicationuis/SysAp/Inc/sysapremconobserver.h --- a/coreapplicationuis/SysAp/Inc/sysapremconobserver.h Mon Jul 12 15:58:51 2010 +0100 +++ b/coreapplicationuis/SysAp/Inc/sysapremconobserver.h Mon Aug 23 15:55:13 2010 +0100 @@ -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 49762640db60 -r 72869d76c629 coreapplicationuis/SysAp/Src/BtSap/SysApBtSapControllerImpl.cpp --- a/coreapplicationuis/SysAp/Src/BtSap/SysApBtSapControllerImpl.cpp Mon Jul 12 15:58:51 2010 +0100 +++ b/coreapplicationuis/SysAp/Src/BtSap/SysApBtSapControllerImpl.cpp Mon Aug 23 15:55:13 2010 +0100 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005-2007 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" @@ -27,6 +27,7 @@ #include #include #include +#include MSysApBtSapController* CreateSysApBtSapControllerL( CSysApAppUi& aSysApAppUi ) @@ -215,6 +216,7 @@ // ---------------------------------------------------------------------------- void CSysApBtSapController::HandlePropertyChangedL( const TUid& aCategory, const TUint aKey ) { + TInt simStatus = ESimStatusUninitialized; if ( aCategory == KPSUidBluetoothSapConnectionState && aKey == KBTSapConnectionState ) { TInt value( 0 ); @@ -231,7 +233,9 @@ break; case EBTSapConnecting: TRACES( RDebug::Print( _L("CSysApBtSapController::HandlePropertyChangedL: EBTSapConnecting, iBtSapEnabled=%d"), iBtSapEnabled ) ); - if ( !iBtSapEnabled ) + //Ensure SIM is present + simStatus = iSysApAppUi.StateOfProperty( KPSUidStartup, KPSSimStatus ); + if ( !iBtSapEnabled && !(simStatus == ESimNotPresent || simStatus == ESimNotSupported)) { iSysApAppUi.InitCloseSimApplicationsL(); } diff -r 49762640db60 -r 72869d76c629 coreapplicationuis/SysAp/Src/CenRepObservers/SysApCenRepLogsObserver.cpp --- a/coreapplicationuis/SysAp/Src/CenRepObservers/SysApCenRepLogsObserver.cpp Mon Jul 12 15:58:51 2010 +0100 +++ b/coreapplicationuis/SysAp/Src/CenRepObservers/SysApCenRepLogsObserver.cpp Mon Aug 23 15:55:13 2010 +0100 @@ -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 49762640db60 -r 72869d76c629 coreapplicationuis/SysAp/Src/SysApAppUi.cpp --- a/coreapplicationuis/SysAp/Src/SysApAppUi.cpp Mon Jul 12 15:58:51 2010 +0100 +++ b/coreapplicationuis/SysAp/Src/SysApAppUi.cpp Mon Aug 23 15:55:13 2010 +0100 @@ -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; @@ -685,7 +698,7 @@ { TRACES( RDebug::Print(_L("CSysApAppUi::HandleKeyEventL, Short powerkey") ) ); iLastPowerKeyWasShort = ETrue; - if ( iPowerKeyPopupMenuActive || !iSysApFeatureManager->PowerKeyIsLockKey() || (iSysApFeatureManager->PowerKeyIsLockKey() && haveStatusPane )) + if ( IsDefaultPowerKeyBehavior() ) { //do this only if the power key menu is active (handles item navigation) //or if the power key is not the lock key (default) @@ -701,7 +714,7 @@ iKeyBoardRepeatCount = -1; TRACES( RDebug::Print(_L("CSysApAppUi::HandleKeyEventL, Long powerkey") ) ); iLastPowerKeyWasShort = EFalse; - if ( !haveStatusPane && !iPowerKeyPopupMenuActive && iSysApFeatureManager->PowerKeyIsLockKey() && !iIgnoreNextPowerKeyRepeats ) + if (! IsDefaultPowerKeyBehavior() && !iIgnoreNextPowerKeyRepeats ) { if ( !iGlobalListQuery ) { @@ -735,19 +748,19 @@ else if ( aType == EEventKeyUp ) { TRACES( RDebug::Print( _L( "CSysApAppUi::HandleKeyEventL(): aType == EEventKeyUp, PowerKeyIsLockKey = %d, iLastPowerKeyWasShort = %d, iPowerKeyPopupMenuActive = %d, iCharging = %d" ), iSysApFeatureManager->PowerKeyIsLockKey(), iLastPowerKeyWasShort, iPowerKeyPopupMenuActive, iCharging ) ); - if ( iSysApFeatureManager->PowerKeyIsLockKey() - && iLastPowerKeyWasShort - && !iPowerKeyPopupMenuActive - && !haveStatusPane - && ( aKeyEvent.iScanCode == EStdKeyDevice2 ) ) + if ( !IsDefaultPowerKeyBehavior() && + iLastPowerKeyWasShort && + ( aKeyEvent.iScanCode == EStdKeyDevice2 )) { - //if the power key is the lock key && the last keypress was short && the power menu is not active - //then lock the phone + // if the power key is the lock key && the last keypress was + // short && the power menu is not active && an alarm is not + // currently being shown, then lock the phone TInt alarmState=0, securityQueryState=0; TInt errorCode = RProperty::Get( KPSUidCoreApplicationUIs, KCoreAppUIsDisableKeyguard, alarmState ); 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 ) { @@ -755,7 +768,10 @@ } else { - KeyLock().EnableWithoutNote(); + if( callState != EPSCTsyCallStateConnected && !iDeviceLockEnabled) + { + KeyLock().EnableWithoutNote(); + } } } else @@ -1889,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 ); } @@ -1943,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; + } } } } @@ -2210,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() // ---------------------------------------------------------------------------- @@ -2230,7 +2307,6 @@ } else if ( iGprsSuspendedNoteShown && !iGprsSuspended ) { - ShowUiNoteL( EGprsResumedNote ); iGprsSuspendedNoteShown = EFalse; iGprsSuspended = EFalse; iCallActivated = EFalse; @@ -2728,7 +2804,6 @@ if ( EPSCTsyCallTypeCSVoice == callType && ENWNetworkModeWcdma != networkMode ) { appUi->iGprsSuspendedNoteShown = ETrue; - TRAP_IGNORE( appUi->ShowUiNoteL( EGprsSuspendedNote ) ); } return KErrNone; } @@ -6903,6 +6978,38 @@ } } } + +TBool CSysApAppUi::IsDefaultPowerKeyBehavior() + { + TRACES( RDebug::Print( _L("CSysApAppUi::IsDefaultPowerKeyBehavior" ) ) ); + TBool powerKeyIsLockKey = iSysApFeatureManager->PowerKeyIsLockKey(); + if ( !powerKeyIsLockKey ) + return ETrue; //no need for further processing + TInt securityDialogStatus = StateOfProperty( KPSUidStartup, KStartupSecurityCodeQueryStatus ); + TRACES( RDebug::Printf( "CSysApAppUi::IsDefaultPowerKeyBehavior: securityDialogStatus = %d", securityDialogStatus ) ); + if ( securityDialogStatus == ESecurityQueryActive ) + { + // handle the exception from the exception. Currently used only when a long power key press is detected + return ETrue; + } + //make sure we can turn off device when 'sim invalid' dlg is displayed + TInt simStatus = StateOfProperty( KPSUidStartup, KStartupSimSecurityStatus ); + TBool simBogus = ( simStatus == ESimRejected ) || ( simStatus == ESimUnaccepted ) || (simStatus == ESimInvalid ); + + // check if the phone has fully booted into idle + TInt startupPhase = StateOfProperty ( KPSUidStartup, KPSStartupUiPhase ); + TBool bootCompleted = (EStartupUiPhaseAllDone == startupPhase); + + // Another exception from the exception: + // check if we're in charging or alert mode (only then we have a status pane instance) + TBool haveStatusPane = ( StatusPane()== NULL ) ? EFalse : StatusPane()->IsVisible(); + TBool defaultPowerKeyBehaviour = !bootCompleted || simBogus || haveStatusPane || iPowerKeyPopupMenuActive || !powerKeyIsLockKey; + + TRACES( RDebug::Printf( "CSysApAppUi::IsDefaultPowerKeyBehavior: Sim Status = %d, haveStatusPane = %d, power key menu active? %d" , simStatus, haveStatusPane, iPowerKeyPopupMenuActive ) ); + TRACES( RDebug::Printf( "CSysApAppUi::IsDefaultPowerKeyBehavior returns %d", defaultPowerKeyBehaviour ) ); + TRACES( RDebug::Printf( "CSysApAppUi::IsDefaultPowerKeyBehavior: startupPhase = %d", startupPhase ) ); + return defaultPowerKeyBehaviour; + } // ---------------------------------------------------------------------------- // CSysApAppUi::StartChargingBatteryL diff -r 49762640db60 -r 72869d76c629 coreapplicationuis/SysAp/Src/SysApFeatureManager.cpp --- a/coreapplicationuis/SysAp/Src/SysApFeatureManager.cpp Mon Jul 12 15:58:51 2010 +0100 +++ b/coreapplicationuis/SysAp/Src/SysApFeatureManager.cpp Mon Aug 23 15:55:13 2010 +0100 @@ -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 49762640db60 -r 72869d76c629 coreapplicationuis/SysAp/Src/SysApLightsController.cpp --- a/coreapplicationuis/SysAp/Src/SysApLightsController.cpp Mon Jul 12 15:58:51 2010 +0100 +++ b/coreapplicationuis/SysAp/Src/SysApLightsController.cpp Mon Aug 23 15:55:13 2010 +0100 @@ -31,6 +31,7 @@ #include "SysApFeatureManager.h" #include "startupdomainpskeys.h" #include +#include // CONSTANTS @@ -1103,9 +1104,17 @@ TInt error = RProperty::Get( KPSUidStartup, KPSGlobalSystemState, state ); if ( error == KErrNone && state == ESwStateCharging ) { - iSysApAppUi.StartChargingBatteryL(); - //To switch on the display - TInt result = HAL::Set( HALData::EDisplayState, 1 ); + TInt value = iSysApAppUi.StateOfProperty( KPSUidHWRMPowerState, KHWRMChargingStatus ); + if (value == EChargingStatusChargingComplete ) + { + iSysApAppUi.StopChargingBatteryL(); + } + else + { + iSysApAppUi.StartChargingBatteryL(); + //To switch on the display + TInt result = HAL::Set( HALData::EDisplayState, 1 ); + } } } else diff -r 49762640db60 -r 72869d76c629 coreapplicationuis/SysAp/Src/SysApPubSubObserver.cpp --- a/coreapplicationuis/SysAp/Src/SysApPubSubObserver.cpp Mon Jul 12 15:58:51 2010 +0100 +++ b/coreapplicationuis/SysAp/Src/SysApPubSubObserver.cpp Mon Aug 23 15:55:13 2010 +0100 @@ -718,7 +718,7 @@ if(iFmTxRemConObserver) { //Open Remcon and reserve the volume keys - iFmTxRemConObserver->StartRemconInterface(); + iFmTxRemConObserver->StartRemconInterfaceL(); } } else diff -r 49762640db60 -r 72869d76c629 coreapplicationuis/SysAp/Src/gan/msysapganpropertyobserver.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/coreapplicationuis/SysAp/Src/gan/msysapganpropertyobserver.h Mon Aug 23 15:55:13 2010 +0100 @@ -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 49762640db60 -r 72869d76c629 coreapplicationuis/SysAp/Src/gan/sysapganhandler.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/coreapplicationuis/SysAp/Src/gan/sysapganhandler.cpp Mon Aug 23 15:55:13 2010 +0100 @@ -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 49762640db60 -r 72869d76c629 coreapplicationuis/SysAp/Src/gan/sysapganhandler.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/coreapplicationuis/SysAp/Src/gan/sysapganhandler.h Mon Aug 23 15:55:13 2010 +0100 @@ -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 49762640db60 -r 72869d76c629 coreapplicationuis/SysAp/Src/gan/sysapganpropertylistener.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/coreapplicationuis/SysAp/Src/gan/sysapganpropertylistener.cpp Mon Aug 23 15:55:13 2010 +0100 @@ -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 49762640db60 -r 72869d76c629 coreapplicationuis/SysAp/Src/gan/sysapganpropertylistener.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/coreapplicationuis/SysAp/Src/gan/sysapganpropertylistener.h Mon Aug 23 15:55:13 2010 +0100 @@ -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 49762640db60 -r 72869d76c629 coreapplicationuis/SysAp/Src/sysapdefaultkeyhandler.cpp --- a/coreapplicationuis/SysAp/Src/sysapdefaultkeyhandler.cpp Mon Jul 12 15:58:51 2010 +0100 +++ b/coreapplicationuis/SysAp/Src/sysapdefaultkeyhandler.cpp Mon Aug 23 15:55:13 2010 +0100 @@ -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" @@ -38,6 +38,7 @@ #include #include #include +#include #include "sysapdefaultkeyhandler.h" #include "sysapcallback.h" #include "SysAp.hrh" @@ -220,39 +221,45 @@ } else { // keylock action is defined by user setting - TInt status(0); - TInt err = iCallStateProperty.Get( status ); - if (err == KErrNone) + TInt value = 0; + RProperty::Get(KPSUidStartup, KPSStartupUiPhase, value); + TBool startupOver = (value == EStartupUiPhaseAllDone); + if(startupOver) { - switch ( status ) - { - case EPSCTsyCallStateUninitialized: - case EPSCTsyCallStateNone: - { + TInt status(0); + TInt err = iCallStateProperty.Get( status ); + if (err == KErrNone) + { + switch ( status ) + { + case EPSCTsyCallStateUninitialized: + case EPSCTsyCallStateNone: + { - TInt keyGuardSetting; - iSlideRepository->Get( KSlideKeyguard, keyGuardSetting ); - switch( ( TSlideSettingKeyguard ) keyGuardSetting ) - { - case ESlideSettingsKeyguardActivatingOn: - iKeylock->EnableKeyLock(); - break; - case ESlideSettingsKeyguardActivatingAskMe: - iKeylock->OfferKeyLock(); - break; - case ESlideSettingsKeyguardActivatingOff: - //do nothing - break; - case ESlideSettingsKeyguardActivatingAutomatic: - if( iKeypadWasLocked ) - { - iKeylock->EnableKeyLock(); - } - break; - } - } + TInt keyGuardSetting; + User::LeaveIfError(iSlideRepository->Get( KSlideKeyguard, keyGuardSetting )); + switch( ( TSlideSettingKeyguard ) keyGuardSetting ) + { + case ESlideSettingsKeyguardActivatingOn: + iKeylock->EnableKeyLock(); + break; + case ESlideSettingsKeyguardActivatingAskMe: + iKeylock->OfferKeyLock(); + break; + case ESlideSettingsKeyguardActivatingOff: + //do nothing + break; + case ESlideSettingsKeyguardActivatingAutomatic: + if( iKeypadWasLocked ) + { + iKeylock->EnableKeyLock(); + } + break; + } + } default: // any other state break; + } } } } diff -r 49762640db60 -r 72869d76c629 coreapplicationuis/SysAp/Src/sysapremconobserver.cpp --- a/coreapplicationuis/SysAp/Src/sysapremconobserver.cpp Mon Jul 12 15:58:51 2010 +0100 +++ b/coreapplicationuis/SysAp/Src/sysapremconobserver.cpp Mon Aug 23 15:55:13 2010 +0100 @@ -108,7 +108,7 @@ /** * Reserve the volume keys */ -void CSysApRemConObserver::StartRemconInterface() +void CSysApRemConObserver::StartRemconInterfaceL() { TRACES( RDebug::Print( _L("CSysApRemConObserver::BlockKeys"))); if(!iInterfaceSelector) diff -r 49762640db60 -r 72869d76c629 coreapplicationuis/advancedtspcontroller/data/keyevent.rul --- a/coreapplicationuis/advancedtspcontroller/data/keyevent.rul Mon Jul 12 15:58:51 2010 +0100 +++ b/coreapplicationuis/advancedtspcontroller/data/keyevent.rul Mon Aug 23 15:55:13 2010 +0100 @@ -105,7 +105,6 @@ - + + + + + + + /> diff -r 49762640db60 -r 72869d76c629 coreapplicationuis/advancedtspcontroller/src/remcontspcontroller.cpp --- a/coreapplicationuis/advancedtspcontroller/src/remcontspcontroller.cpp Mon Jul 12 15:58:51 2010 +0100 +++ b/coreapplicationuis/advancedtspcontroller/src/remcontspcontroller.cpp Mon Aug 23 15:55:13 2010 +0100 @@ -1540,6 +1540,8 @@ CApaCommandLine* apaCommandLine = CApaCommandLine::NewLC(); apaCommandLine->SetExecutableNameL( appInfo.iFullName ); apaCommandLine->SetCommandL( EApaCommandRun ); + _LIT8(Kparam, "play"); + apaCommandLine->SetTailEndL( Kparam ); apaLsSession.StartApp( *apaCommandLine ); CleanupStack::PopAndDestroy( apaCommandLine ); } diff -r 49762640db60 -r 72869d76c629 coreapplicationuis/kefmapper/data/AknKeyEventMap.rss --- a/coreapplicationuis/kefmapper/data/AknKeyEventMap.rss Mon Jul 12 15:58:51 2010 +0100 +++ b/coreapplicationuis/kefmapper/data/AknKeyEventMap.rss Mon Aug 23 15:55:13 2010 +0100 @@ -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 49762640db60 -r 72869d76c629 coreapplicationuis/powersaveutilities/batterypopupcontrol/inc/batterypopupcontrol.h --- a/coreapplicationuis/powersaveutilities/batterypopupcontrol/inc/batterypopupcontrol.h Mon Jul 12 15:58:51 2010 +0100 +++ b/coreapplicationuis/powersaveutilities/batterypopupcontrol/inc/batterypopupcontrol.h Mon Aug 23 15:55:13 2010 +0100 @@ -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 49762640db60 -r 72869d76c629 coreapplicationuis/powersaveutilities/batterypopupcontrol/inc/trace.h --- a/coreapplicationuis/powersaveutilities/batterypopupcontrol/inc/trace.h Mon Jul 12 15:58:51 2010 +0100 +++ b/coreapplicationuis/powersaveutilities/batterypopupcontrol/inc/trace.h Mon Aug 23 15:55:13 2010 +0100 @@ -51,7 +51,8 @@ /** * Prefix macro for strings */ -#define _PREFIX_CHAR( aMsg ) (const char*)"[BatteryPopupControl]: " ##aMsg +#define _PREFIX_CHAR( aMsg ) (const char*)"[BatteryPopupControl]: " aMsg + /** * Define needed directories if TRACE_INTO_FILE macro in use diff -r 49762640db60 -r 72869d76c629 coreapplicationuis/powersaveutilities/batterypopupcontrol/src/batterypopupcontrol.cpp --- a/coreapplicationuis/powersaveutilities/batterypopupcontrol/src/batterypopupcontrol.cpp Mon Jul 12 15:58:51 2010 +0100 +++ b/coreapplicationuis/powersaveutilities/batterypopupcontrol/src/batterypopupcontrol.cpp Mon Aug 23 15:55:13 2010 +0100 @@ -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 49762640db60 -r 72869d76c629 coreapplicationuis/powersaveutilities/bsutil/inc/trace.h --- a/coreapplicationuis/powersaveutilities/bsutil/inc/trace.h Mon Jul 12 15:58:51 2010 +0100 +++ b/coreapplicationuis/powersaveutilities/bsutil/inc/trace.h Mon Aug 23 15:55:13 2010 +0100 @@ -51,7 +51,8 @@ /** * Prefix macro for strings */ -#define _PREFIX_CHAR( aMsg ) (const char*)"[BSUtil]: " ##aMsg +#define _PREFIX_CHAR( aMsg ) (const char*)"[BSUtil]: " aMsg + /** * Define needed directories if TRACE_INTO_FILE macro in use diff -r 49762640db60 -r 72869d76c629 filehandling/fileconverterfw/doc_pub/SGL.GT0093.110_How_To_Implement_and_use_a_file converter_objectv1.4.doc Binary file filehandling/fileconverterfw/doc_pub/SGL.GT0093.110_How_To_Implement_and_use_a_file converter_objectv1.4.doc has changed diff -r 49762640db60 -r 72869d76c629 filehandling/htmltorichtextconverter/doc_pub/CHTMLTOCRTCONVERTER test code.rtf Binary file filehandling/htmltorichtextconverter/doc_pub/CHTMLTOCRTCONVERTER test code.rtf has changed diff -r 49762640db60 -r 72869d76c629 filehandling/htmltorichtextconverter/documentation/CHTMLTOCRTCONVERTER test code.rtf Binary file filehandling/htmltorichtextconverter/documentation/CHTMLTOCRTCONVERTER test code.rtf has changed diff -r 49762640db60 -r 72869d76c629 mediakeys/MMKeyBearer/src/MMKeyBearerImplementation.cpp --- a/mediakeys/MMKeyBearer/src/MMKeyBearerImplementation.cpp Mon Jul 12 15:58:51 2010 +0100 +++ b/mediakeys/MMKeyBearer/src/MMKeyBearerImplementation.cpp Mon Aug 23 15:55:13 2010 +0100 @@ -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 49762640db60 -r 72869d76c629 package_definition.xml --- a/package_definition.xml Mon Jul 12 15:58:51 2010 +0100 +++ b/package_definition.xml Mon Aug 23 15:55:13 2010 +0100 @@ -145,7 +145,7 @@ - + diff -r 49762640db60 -r 72869d76c629 startupservices/Startup/inc/StartupAppUi.h --- a/startupservices/Startup/inc/StartupAppUi.h Mon Jul 12 15:58:51 2010 +0100 +++ b/startupservices/Startup/inc/StartupAppUi.h Mon Aug 23 15:55:13 2010 +0100 @@ -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 49762640db60 -r 72869d76c629 startupservices/Startup/inc/StartupWelcomeCrKeys.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/startupservices/Startup/inc/StartupWelcomeCrKeys.h Mon Aug 23 15:55:13 2010 +0100 @@ -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 49762640db60 -r 72869d76c629 startupservices/Startup/src/StartupAppUi.cpp --- a/startupservices/Startup/src/StartupAppUi.cpp Mon Jul 12 15:58:51 2010 +0100 +++ b/startupservices/Startup/src/StartupAppUi.cpp Mon Aug 23 15:55:13 2010 +0100 @@ -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 49762640db60 -r 72869d76c629 sysresmonitoring/oommonitor/bwins/oommonitorU.DEF --- a/sysresmonitoring/oommonitor/bwins/oommonitorU.DEF Mon Jul 12 15:58:51 2010 +0100 +++ b/sysresmonitoring/oommonitor/bwins/oommonitorU.DEF Mon Aug 23 15:55:13 2010 +0100 @@ -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 49762640db60 -r 72869d76c629 sysresmonitoring/oommonitor/data/oomconfig.xml --- a/sysresmonitoring/oommonitor/data/oomconfig.xml Mon Jul 12 15:58:51 2010 +0100 +++ b/sysresmonitoring/oommonitor/data/oomconfig.xml Mon Aug 23 15:55:13 2010 +0100 @@ -1,5 +1,5 @@ - +