|
1 /* |
|
2 * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). |
|
3 * All rights reserved. |
|
4 * This component and the accompanying materials are made available |
|
5 * under the terms of "Eclipse Public License v1.0" |
|
6 * which accompanies this distribution, and is available |
|
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 * |
|
9 * Initial Contributors: |
|
10 * Nokia Corporation - initial contribution. |
|
11 * |
|
12 * Contributors: |
|
13 * |
|
14 * Description: Handle GAN server events |
|
15 * |
|
16 */ |
|
17 |
|
18 #include <e32base.h> |
|
19 #include "coreapplicationuisdomainpskeys.h" |
|
20 #include "sysapganhandler.h" |
|
21 #include "SysApAppUi.h" |
|
22 #include "SysAp.hrh" |
|
23 |
|
24 // ======== MEMBER FUNCTIONS ======== |
|
25 |
|
26 // --------------------------------------------------------------------------- |
|
27 // C++ constructor |
|
28 // --------------------------------------------------------------------------- |
|
29 // |
|
30 CSysApGanHandler::CSysApGanHandler( CSysApAppUi& aSysApAppUi ) : |
|
31 iSysApAppUi( aSysApAppUi ), |
|
32 iGanMode( EGanModeUnspecified ) |
|
33 { |
|
34 } |
|
35 |
|
36 // --------------------------------------------------------------------------- |
|
37 // Symbian 2nd phase constructor |
|
38 // --------------------------------------------------------------------------- |
|
39 // |
|
40 void CSysApGanHandler::ConstructL() |
|
41 { |
|
42 TRACES( RDebug::Print( _L("CSysApGanHandler::ConstructL IN") ) ); |
|
43 TInt err( KErrNone ); |
|
44 |
|
45 // Start listening for GAN mode |
|
46 err = iPropertyGanMode.Attach( KPSUidCoreApplicationUIs, KCoreAppUIsGanPropertyGanMode ); |
|
47 User::LeaveIfError( err ); |
|
48 iGanModeListener = CSysApGanPropertyListener::NewL( iPropertyGanMode, *this ); |
|
49 iGanModeListener->Subscribe(); |
|
50 |
|
51 // Start listening for signal strength |
|
52 err = iPropertySignalLevel.Attach( KPSUidCoreApplicationUIs, KCoreAppUIsGanPropertySignalLevel ); |
|
53 User::LeaveIfError( err ); |
|
54 iSignalLevelListener = CSysApGanPropertyListener::NewL( iPropertySignalLevel, *this ); |
|
55 iSignalLevelListener->Subscribe(); |
|
56 |
|
57 // Get current GAN mode |
|
58 TInt mode; |
|
59 err = iPropertyGanMode.Get( mode ); |
|
60 if( KErrNone == err ) |
|
61 { |
|
62 iGanMode = (TCoreAppUIsGanMode)mode; |
|
63 } |
|
64 |
|
65 // Get current GAN signal level |
|
66 iPropertySignalLevel.Get( iGanSignalLevel ); |
|
67 |
|
68 TRACES( RDebug::Print( _L("CSysApGanHandler::ConstructL OUT") ) ); |
|
69 } |
|
70 |
|
71 // --------------------------------------------------------------------------- |
|
72 // Static constructor. |
|
73 // --------------------------------------------------------------------------- |
|
74 // |
|
75 CSysApGanHandler* CSysApGanHandler::NewL( CSysApAppUi& aSysApAppUi ) |
|
76 { |
|
77 CSysApGanHandler* self = new (ELeave) CSysApGanHandler( aSysApAppUi ); |
|
78 CleanupStack::PushL( self ); |
|
79 self->ConstructL(); |
|
80 CleanupStack::Pop( self ); |
|
81 return self; |
|
82 } |
|
83 |
|
84 // --------------------------------------------------------------------------- |
|
85 // Destructor. |
|
86 // --------------------------------------------------------------------------- |
|
87 // |
|
88 CSysApGanHandler::~CSysApGanHandler() |
|
89 { |
|
90 delete iGanModeListener; |
|
91 delete iSignalLevelListener; |
|
92 iPropertyGanMode.Close(); |
|
93 iPropertySignalLevel.Close(); |
|
94 } |
|
95 |
|
96 TBool CSysApGanHandler::IsInGanMode() |
|
97 { |
|
98 return iGanMode == EGanModeGAN; |
|
99 } |
|
100 |
|
101 TInt CSysApGanHandler::GanSignalLevel() |
|
102 { |
|
103 return iGanSignalLevel; |
|
104 } |
|
105 |
|
106 // --------------------------------------------------------------------------- |
|
107 // Handle UI Status RProperty change event. Read the new RProperty value |
|
108 // and publish the content on idle screen. |
|
109 // --------------------------------------------------------------------------- |
|
110 // |
|
111 void CSysApGanHandler::PropertyEvent( |
|
112 CSysApGanPropertyListener& aPropertyListener, |
|
113 TInt aStatus ) |
|
114 { |
|
115 TRACES( RDebug::Print( _L("CSysApGanHandler::PropertyEvent IN") ) ); |
|
116 TRACES( RDebug::Print( _L("CSysApGanHandler::PropertyEvent status %d"), aStatus ) ); |
|
117 |
|
118 if( KErrNone == aStatus ) |
|
119 { |
|
120 if( iGanModeListener == &aPropertyListener ) |
|
121 { |
|
122 // GAN mode event |
|
123 TInt mode; |
|
124 TInt err = iPropertyGanMode.Get( mode ); |
|
125 iGanMode = (TCoreAppUIsGanMode)mode; |
|
126 TRACES( RDebug::Print( _L("CSysApGanHandler::PropertyEvent RProp err %d"), err ) ); |
|
127 TRACES( RDebug::Print( _L("CSysApGanHandler::PropertyEvent GAN mode %d"), iGanMode ) ); |
|
128 iSysApAppUi.SetSignalIndicatorL(); |
|
129 } |
|
130 else if( iSignalLevelListener == &aPropertyListener ) |
|
131 { |
|
132 // Signal level event |
|
133 TInt err = iPropertySignalLevel.Get( iGanSignalLevel ); |
|
134 TRACES( RDebug::Print( _L("CSysApGanHandler::PropertyEvent RProp err %d"), err ) ); |
|
135 TRACES( RDebug::Print( _L("CSysApGanHandler::PropertyEvent signal level %d"), iGanSignalLevel ) ); |
|
136 iSysApAppUi.UpdateSignalBarsL(); |
|
137 } |
|
138 } |
|
139 aPropertyListener.Subscribe(); |
|
140 TRACES( RDebug::Print( _L("CSysApGanHandler::PropertyEvent OUT") ) ); |
|
141 } |
|
142 |