--- /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 <e32base.h>
+#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") ) );
+ }
+