23 #include <avkondomainpskeys.h> // kaknkeyguardstatus |
23 #include <avkondomainpskeys.h> // kaknkeyguardstatus |
24 #include <ctsydomainpskeys.h> // kpsuidctsycallinformation |
24 #include <ctsydomainpskeys.h> // kpsuidctsycallinformation |
25 #include <startupdomainpskeys.h> // kpsglobalsystemstate |
25 #include <startupdomainpskeys.h> // kpsglobalsystemstate |
26 #include <ScreensaverInternalPSKeys.h> |
26 #include <ScreensaverInternalPSKeys.h> |
27 #include <UikonInternalPSKeys.h> // kuikmmcinserted |
27 #include <UikonInternalPSKeys.h> // kuikmmcinserted |
|
28 #include <hwrmpowerstatesdkpskeys.h> |
28 |
29 |
29 #ifdef RD_UI_TRANSITION_EFFECTS_PHASE2 |
30 #ifdef RD_UI_TRANSITION_EFFECTS_PHASE2 |
30 #include <akntransitionutils.h> |
31 #include <akntransitionutils.h> |
31 #endif |
32 #endif |
32 |
33 |
66 DeleteSubscriber( iShuttingDownSubscriber ); |
67 DeleteSubscriber( iShuttingDownSubscriber ); |
67 iShuttingDownProperty.Close(); |
68 iShuttingDownProperty.Close(); |
68 |
69 |
69 DeleteSubscriber( iActivateSSSubscriber ); |
70 DeleteSubscriber( iActivateSSSubscriber ); |
70 iActivateSSProperty.Close(); |
71 iActivateSSProperty.Close(); |
|
72 |
|
73 DeleteSubscriber( iChargerStateSubscriber ); |
|
74 iChargerStateProperty.Close(); |
71 } |
75 } |
72 |
76 |
73 // ----------------------------------------------------------------------------- |
77 // ----------------------------------------------------------------------------- |
74 // CScreensaverSharedDataMonitor::NewL |
78 // CScreensaverSharedDataMonitor::NewL |
75 // ----------------------------------------------------------------------------- |
79 // ----------------------------------------------------------------------------- |
136 iShuttingDownSubscriber = new (ELeave) CSubscriber( |
140 iShuttingDownSubscriber = new (ELeave) CSubscriber( |
137 TCallBack(HandleShuttingDownStateChanged, this), iShuttingDownProperty); |
141 TCallBack(HandleShuttingDownStateChanged, this), iShuttingDownProperty); |
138 iShuttingDownSubscriber->SubscribeL(); |
142 iShuttingDownSubscriber->SubscribeL(); |
139 |
143 |
140 User::LeaveIfError( iActivateSSProperty.Attach( KPSUidScreenSaver, KScreenSaverActivate ) ); |
144 User::LeaveIfError( iActivateSSProperty.Attach( KPSUidScreenSaver, KScreenSaverActivate ) ); |
141 iActivateSSSubscriber = new( ELeave ) CSubscriber( TCallBack( HandleActivateSSChanged, this ), iActivateSSProperty ); |
145 iActivateSSSubscriber = new( ELeave ) CSubscriber( |
|
146 TCallBack( HandleActivateSSChanged, this ), iActivateSSProperty ); |
142 iActivateSSSubscriber->SubscribeL(); |
147 iActivateSSSubscriber->SubscribeL(); |
|
148 |
|
149 User::LeaveIfError( iChargerStateProperty.Attach( KPSUidHWRMPowerState, KHWRMChargingStatus ) ); |
|
150 iChargerStateSubscriber = new (ELeave) CSubscriber( |
|
151 TCallBack( HandleChargerStateChanged, this ), iChargerStateProperty ); |
|
152 iChargerStateSubscriber->SubscribeL(); |
143 } |
153 } |
144 |
154 |
145 // ----------------------------------------------------------------------------- |
155 // ----------------------------------------------------------------------------- |
146 // CScreensaverSharedDataMonitor::View |
156 // CScreensaverSharedDataMonitor::View |
147 // ----------------------------------------------------------------------------- |
157 // ----------------------------------------------------------------------------- |
238 // happened because of automatic keyguard fired, and screensaver |
248 // happened because of automatic keyguard fired, and screensaver |
239 // should update the display to show the keyguard indicator |
249 // should update the display to show the keyguard indicator |
240 CScreensaverSharedDataMonitor* _this = |
250 CScreensaverSharedDataMonitor* _this = |
241 STATIC_CAST(CScreensaverSharedDataMonitor*, aPtr); |
251 STATIC_CAST(CScreensaverSharedDataMonitor*, aPtr); |
242 |
252 |
243 _this->Model().HandleKeyguardStateChanged( _this->iData->IsKeyguardOn() ); |
253 if ( _this->iData->IsKeyguardOn() ) |
|
254 { |
|
255 // Keys locked - if screensaver is running, this was caused by |
|
256 // automatic keyguard and screensaver should refresh the view |
|
257 // to show the keylock indicator |
|
258 if ( _this->Model().ScreenSaverIsOn() ) |
|
259 { |
|
260 _this->View()->UpdateAndRefresh(); |
|
261 } |
|
262 _this->Model().StartScreenSaver(); |
|
263 } |
|
264 else |
|
265 { |
|
266 _this->Model().StopScreenSaver(); |
|
267 } |
244 |
268 |
245 return KErrNone; |
269 return KErrNone; |
246 } |
270 } |
247 |
271 |
248 // ----------------------------------------------------------------------------- |
272 // ----------------------------------------------------------------------------- |
278 } |
302 } |
279 |
303 |
280 return KErrNone; |
304 return KErrNone; |
281 } |
305 } |
282 |
306 |
283 |
307 // --------------------------------------------------------------------------- |
|
308 // CScreensaverSharedDataMonitor::HandleActivateSSChanged |
|
309 // --------------------------------------------------------------------------- |
|
310 // |
284 TInt CScreensaverSharedDataMonitor::HandleActivateSSChanged( TAny* aPtr ) |
311 TInt CScreensaverSharedDataMonitor::HandleActivateSSChanged( TAny* aPtr ) |
285 { |
312 { |
286 TInt activateState = -1; |
313 TInt activateState = -1; |
287 |
314 |
288 RProperty::Get( KPSUidScreenSaver, KScreenSaverActivate, activateState ); |
315 RProperty::Get( KPSUidScreenSaver, KScreenSaverActivate, activateState ); |
289 |
316 |
290 if( activateState && -1 != activateState ) |
317 if( activateState && -1 != activateState ) |
291 { |
318 { |
292 // Enable SS |
319 // Enable SS |
293 SCRLOGGER_WRITE("SharedDataMonitor: Activate SS"); |
320 SCRLOGGER_WRITE("SharedDataMonitor: Activate SS"); |
294 STATIC_CAST(CScreensaverSharedDataMonitor*, aPtr)->Model().HandleActivateSSChanged( ETrue ); |
321 STATIC_CAST(CScreensaverSharedDataMonitor*, aPtr)->Model().StartScreenSaver(); |
295 } |
322 } |
296 else if ( !activateState ) |
323 else if ( !activateState ) |
297 { |
324 { |
298 // Disable SS |
325 // Disable SS |
299 SCRLOGGER_WRITE("SharedDataMonitor: Stop SS"); |
326 SCRLOGGER_WRITE("SharedDataMonitor: Stop SS"); |
300 STATIC_CAST(CScreensaverSharedDataMonitor*, aPtr)->Model().HandleActivateSSChanged( EFalse ); |
327 STATIC_CAST(CScreensaverSharedDataMonitor*, aPtr)->Model().StopScreenSaver(); |
301 } |
328 } |
302 else |
329 else |
303 { |
330 { |
304 // Unknown state |
331 // Unknown state |
305 } |
332 } |
306 return KErrNone; |
333 return KErrNone; |
307 } |
334 } |
308 |
335 |
|
336 // --------------------------------------------------------------------------- |
|
337 // CScreensaverSharedDataMonitor::HandleChargerStateChanged |
|
338 // --------------------------------------------------------------------------- |
|
339 // |
|
340 TInt CScreensaverSharedDataMonitor::HandleChargerStateChanged( TAny* aPtr ) |
|
341 { |
|
342 TInt state = -1; |
|
343 |
|
344 RProperty::Get( KPSUidHWRMPowerState, KHWRMChargingStatus, state ); |
|
345 |
|
346 switch ( state ) |
|
347 { |
|
348 case EChargingStatusError: // Some error has occurred when charger is connected or charging. |
|
349 case EChargingStatusNotConnected: // Charger not connected/uninitialized |
|
350 case EChargingStatusCharging: // Device is charging |
|
351 { |
|
352 User::ResetInactivityTime(); |
|
353 STATIC_CAST(CScreensaverSharedDataMonitor*, aPtr)->Model().StopScreenSaver(); |
|
354 } |
|
355 break; |
|
356 case EChargingStatusChargingComplete: // Charging completed |
|
357 case EChargingStatusNotCharging: // Charger is connected, device not charging |
|
358 case EChargingStatusAlmostComplete: // Charging almost completed |
|
359 case EChargingStatusChargingContinued: // Charging continued after brief interruption |
|
360 default: |
|
361 break; |
|
362 } |
|
363 return KErrNone; |
|
364 } |
309 |
365 |
310 // End of file |
366 // End of file |