startupservices/Startup/MediatorPlugin/src/StartupMediatorPluginPSObserver.cpp
changeset 0 2e3d3ce01487
child 33 332e7bf3b42f
--- /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