--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/startupservices/Startup/MediatorPlugin/src/StartupMediatorPluginPSObserver.cpp Tue Feb 02 10:12:00 2010 +0200
@@ -0,0 +1,174 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* This class the handles the received indications from the System
+* Agent. Indications are SimStatus, SecurityCodeStatus and
+* MasterCodeStatus.
+*
+*/
+
+
+// SYSTEM INCLUDES
+#include <MediatorDomainUIDs.h>
+#include <startupdomainpskeys.h>
+#include <SecondaryDisplay/SecondaryDisplaySystemStateAPI.h>
+#include <avkondomainpskeys.h>
+#include <coreapplicationuisdomainpskeys.h>
+
+
+// USER INCLUDES
+#include "StartupMediatorPlugin.h"
+#include "StartupMediatorPluginSubscriber.h"
+#include "StartupMediatorPluginTrace.h"
+#include "StartupMediatorPluginPSObserver.h"
+
+
+// ================= MEMBER FUNCTIONS =======================
+
+// ----------------------------------------------------
+// CStartupMediatorPluginPSObserver::CStartupMediatorPluginPSObserver( CStartupMediatorPlugin* aStartupMediatorPlugin )
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// ----------------------------------------------------
+CStartupMediatorPluginPSObserver::CStartupMediatorPluginPSObserver( CStartupMediatorPlugin* aStartupMediatorPlugin ) :
+ iStartupMediatorPlugin( aStartupMediatorPlugin )
+ {
+ }
+
+// ----------------------------------------------------
+// CStartupMediatorPluginPSObserver::ConstructL()
+// ----------------------------------------------------
+void CStartupMediatorPluginPSObserver::ConstructL()
+ {
+ TRACES("CStartupMediatorPluginPSObserver::ConstructL()");
+
+ // -------- Autolock status -------------
+ iAutoLockStatusSubscriber = CStartupMediatorPluginSubscriber::NewL( *this,
+ KPSUidCoreApplicationUIs,
+ KCoreAppUIsAutolockStatus );
+ iAutoLockStatusSubscriber->Subscribe();
+
+
+ // -------- Keyquard status -------------
+ iKeyGuardStatusSubscriber = CStartupMediatorPluginSubscriber::NewL( *this,
+ KPSUidAvkonDomain,
+ KAknKeyguardStatus );
+ iKeyGuardStatusSubscriber->Subscribe();
+
+
+ // -------- Global system state ---------
+ iGlobalSystemStateSubscriber = CStartupMediatorPluginSubscriber::NewL( *this,
+ KPSUidStartup,
+ KPSGlobalSystemState );
+ iGlobalSystemStateSubscriber->Subscribe();
+
+
+
+ TRACES("CStartupMediatorPluginPSObserver::ConstructL(): End");
+ }
+
+// ----------------------------------------------------------------------------
+// CStartupMediatorPluginPSObserver::HandlePropertyChangedL()
+// ----------------------------------------------------------------------------
+void CStartupMediatorPluginPSObserver::HandlePropertyChangedL( const TUid& aCategory, TUint aKey )
+ {
+ TRACES("CStartupMediatorPluginPSObserver::HandlePropertyChangedL()");
+ TRACES1("CStartupMediatorPluginPSObserver::HandlePropertyChangedL(): aKey: %d",aKey );
+
+ // -------- Global system state ---------
+ if ( aCategory == KPSUidStartup && aKey == KPSGlobalSystemState )
+ {
+ TRACES("CStartupMediatorPluginPSObserver::HandlePropertyChangedL(): KPSGlobalSystemState");
+ TInt value;
+ value = iStartupMediatorPlugin->GetSystemStateL();
+ if ( value == KErrNone )
+ {
+ TPckgBuf<TInt> data( value );
+ iStartupMediatorPlugin->RaiseEvent( KMediatorSecondaryDisplayDomain,
+ SecondaryDisplay::KCatSystemState,
+ SecondaryDisplay::EMsgSystemStateChange,
+ TVersion(0,0,0),
+ data );
+ }
+ }
+
+ // -------- Autolock status -------------
+ else if ( aCategory == KPSUidCoreApplicationUIs && aKey == KCoreAppUIsAutolockStatus )
+ {
+ TRACES("CStartupMediatorPluginPSObserver::HandlePropertyChangedL(): KPSUidAutolockStatusValue");
+ TInt value;
+ value = iStartupMediatorPlugin->GetAutolockStateL();
+ TPckgBuf<TInt> data( value );
+
+ iStartupMediatorPlugin->RaiseEvent( KMediatorSecondaryDisplayDomain,
+ SecondaryDisplay::KCatSystemState,
+ SecondaryDisplay::EMsgAutolockEvent,
+ TVersion(0,0,0),
+ data );
+ }
+
+ // -------- Keyquard status -------------
+ else if ( aCategory == KPSUidAvkonDomain && aKey == KAknKeyguardStatus )
+ {
+ TRACES("CStartupMediatorPluginPSObserver::HandlePropertyChangedL(): KAknKeyguardStatus");
+ TInt value;
+ value = iStartupMediatorPlugin->GetKeyGuardStateL();
+ TPckgBuf<TInt> data( value );
+
+ iStartupMediatorPlugin->RaiseEvent( KMediatorSecondaryDisplayDomain,
+ SecondaryDisplay::KCatSystemState,
+ SecondaryDisplay::EMsgKeyGuardEvent,
+ TVersion(0,0,0),
+ data );
+ }
+
+ else
+ {
+ TRACES("CStartupMediatorPluginPSObserver::HandlePropertyChangedL(): Key not supported");
+ }
+ TRACES("CStartupMediatorPluginPSObserver::HandlePropertyChangedL(): End");
+ }
+
+// ----------------------------------------------------
+// CStartupMediatorPluginPSObserver::NewL( CStartupAppUi* aStartupAppUi )
+// ----------------------------------------------------
+CStartupMediatorPluginPSObserver* CStartupMediatorPluginPSObserver::NewL( CStartupMediatorPlugin* aStartupMediatorPlugin )
+ {
+ TRACES("CStartupMediatorPluginPSObserver::NewL()");
+ CStartupMediatorPluginPSObserver* self = new (ELeave) CStartupMediatorPluginPSObserver( aStartupMediatorPlugin );
+
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop(); // self
+
+ TRACES("CStartupMediatorPluginPSObserver::NewL(): End");
+ return self;
+ }
+
+// ----------------------------------------------------
+// CStartupMediatorPluginPSObserver::~CStartupMediatorPluginPSObserver()
+// ----------------------------------------------------
+CStartupMediatorPluginPSObserver::~CStartupMediatorPluginPSObserver()
+ {
+ TRACES("CStartupMediatorPluginPSObserver::~CStartupMediatorPluginPSObserver()");
+
+ delete iAutoLockStatusSubscriber;
+ delete iKeyGuardStatusSubscriber;
+ delete iGlobalSystemStateSubscriber;
+ iProperty.Close();
+
+ TRACES("CStartupMediatorPluginPSObserver::~CStartupMediatorPluginPSObserver(): End");
+ }
+
+// End of File