coreapplicationuis/SysAp/Src/SysApSsSettingsObserver.cpp
changeset 0 2e3d3ce01487
child 28 b0b858956ed5
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/SysAp/Src/SysApSsSettingsObserver.cpp	Tue Feb 02 10:12:00 2010 +0200
@@ -0,0 +1,111 @@
+/*
+* Copyright (c) 2002 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:  CSysApSSSettingsObserver implementation.
+*
+*/
+
+
+// INCLUDE FILES
+#include "SysApSsSettingsObserver.h"
+#include "SysApAppUi.h"
+#include <avkon.hrh>
+#include <RSSSettings.h>
+
+//CONSTANTS
+
+// ========================== MEMBER FUNCTIONS ================================
+
+// ----------------------------------------------------------------------------
+// CSysApSsSettingsObserver* CSysApSsSettingsObserver::NewL( CSysApAppUi& aSysApAppUi )
+// ----------------------------------------------------------------------------
+
+CSysApSsSettingsObserver* CSysApSsSettingsObserver::NewL( CSysApAppUi& aSysApAppUi )
+    {       
+    TRACES( RDebug::Print( _L("CSysApSsSettingsObserver::CSysApSsSettingsObserver::NewL" ) ) );
+    CSysApSsSettingsObserver* self = new ( ELeave ) CSysApSsSettingsObserver( aSysApAppUi );
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop(); //self
+    return self;
+    }
+
+// ----------------------------------------------------------------------------
+// CSysApSsSettingsObserver::CSysApSsSettingsObserver( CSysApAppUi& aSysApAppUi )
+// ----------------------------------------------------------------------------
+
+CSysApSsSettingsObserver::CSysApSsSettingsObserver( CSysApAppUi& aSysApAppUi ) :
+    iSysApAppUi( aSysApAppUi )
+    {
+    }
+
+// ----------------------------------------------------------------------------
+// CSysApSsSettingsObserver::~CSysApSsSettingsObserver()
+// ----------------------------------------------------------------------------
+
+CSysApSsSettingsObserver::~CSysApSsSettingsObserver()
+    {
+    TRACES( RDebug::Print( _L("CSysApSsSettingsObserver::~CSysApSsSettingsObserver") ) );
+    iSysApSsSettings.CancelAll( *this );
+    iSysApSsSettings.Close();
+    }
+
+// ----------------------------------------------------------------------------
+// CSysApSsSettingsObserver::PhoneSettingChanged( TSSSettingsSetting aSetting, TInt aNewValue )
+// ----------------------------------------------------------------------------
+
+void CSysApSsSettingsObserver::PhoneSettingChanged( TSSSettingsSetting aSetting, TInt aNewValue )
+    {
+    TRACES( RDebug::Print( _L("CSysApSsSettingsObserver::PhoneSettingChanged( aSetting:%d, aNewValue:%d )"), aSetting, aNewValue ) );
+    if( aSetting == ESSSettingsAls )
+        {
+        TRAPD( err, SetSecondLineIndicatorL( aNewValue ) );
+        if ( err ) err = 0; // hide compiler warning about not using variable
+        }
+    }
+
+// ----------------------------------------------------------------------------
+// CSysApSsSettingsObserver::ConstructL()
+// ----------------------------------------------------------------------------
+
+void CSysApSsSettingsObserver::ConstructL(  )
+    {
+    User::LeaveIfError(iSysApSsSettings.Open(iSysApAppUi.GetTelServer()));
+    iSysApSsSettings.Register( ESSSettingsAls, *this );
+    TSSSettingsSetting ssSetting( ESSSettingsAls );
+    TInt ssSettingAlsValue( 0 );
+    TInt err( iSysApSsSettings.Get( ssSetting, ssSettingAlsValue ) );
+    if( err == KErrNone )
+        {
+        SetSecondLineIndicatorL( ssSettingAlsValue );
+        }
+    }
+
+// ----------------------------------------------------------------------------
+// CSysApSsSettingsObserver::SetSecondLineIndicatorL( TInt aSsSettingsAlsLineValue )
+// ----------------------------------------------------------------------------
+
+void CSysApSsSettingsObserver::SetSecondLineIndicatorL( const TInt aSsSettingsAlsLineValue ) const
+    {
+    TRACES( RDebug::Print( _L("CSysApSsSettingsObserver::SetSecondLineIndicatorL( aSsSettingsAlsLineValue:%d, "), aSsSettingsAlsLineValue ) );
+    if( aSsSettingsAlsLineValue == ESSSettingsAlsAlternate )
+        {
+        iSysApAppUi.SetIndicatorStateL( EAknIndicatorSelectedLine, EAknIndicatorStateOn );        
+        }
+    else 
+        {
+        iSysApAppUi.SetIndicatorStateL( EAknIndicatorSelectedLine, EAknIndicatorStateOff );        
+        } 
+    }
+
+// End of File