src/screensavershareddatamonitor.cpp
branchRCL_3
changeset 16 1f307dce3b5a
parent 15 2e08ef6b6eda
--- a/src/screensavershareddatamonitor.cpp	Tue May 25 12:43:23 2010 +0300
+++ b/src/screensavershareddatamonitor.cpp	Wed Jun 09 09:42:47 2010 +0300
@@ -26,6 +26,8 @@
 #include <ScreensaverInternalPSKeys.h>
 #include <UikonInternalPSKeys.h>             // kuikmmcinserted
 #include <hwrmpowerstatesdkpskeys.h>
+#include <ctsydomaincrkeys.h>
+#include <centralrepository.h>
 
 #ifdef RD_UI_TRANSITION_EFFECTS_PHASE2
 #include <akntransitionutils.h>
@@ -72,6 +74,9 @@
     
     DeleteSubscriber( iChargerStateSubscriber );
     iChargerStateProperty.Close();
+    
+    delete iMessageWaitingWatcher;
+    delete iMessageWaitingRepository;
     }
 
 // -----------------------------------------------------------------------------
@@ -150,6 +155,12 @@
     iChargerStateSubscriber = new (ELeave) CSubscriber( 
         TCallBack( HandleChargerStateChanged, this ), iChargerStateProperty );
     iChargerStateSubscriber->SubscribeL();
+    
+    iMessageWaitingRepository = CRepository::NewL( KCRUidCtsyMessageWaitingIndicator );
+    iMessageWaitingWatcher = CScreensaverRepositoryWatcher::NewL( KCRUidCtsyMessageWaitingIndicator,
+                                                                  TCallBack( HandleMessageWaitingStateChanged, this ),
+                                                                  iMessageWaitingRepository );
+
     }
 
 // -----------------------------------------------------------------------------
@@ -250,22 +261,7 @@
     CScreensaverSharedDataMonitor* _this =
         STATIC_CAST(CScreensaverSharedDataMonitor*, aPtr);
 
-    if ( _this->iData->IsKeyguardOn() )
-        {
-        // Keys locked - if screensaver is running, this was caused by
-        // automatic keyguard and screensaver should refresh the view
-        // to show the keylock indicator
-        if ( _this->Model().ScreenSaverIsOn() )
-            {
-            _this->View()->UpdateAndRefresh();
-            }
-        _this->Model().StartScreenSaver();
-        }
-    else
-        {
-        _this->Model().StopScreenSaver();
-        }
-
+    _this->Model().HandleKeyguardStateChanged( _this->iData->IsKeyguardOn() );
     return KErrNone;
     }
 
@@ -363,4 +359,18 @@
     return KErrNone;
     }
 
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+TInt CScreensaverSharedDataMonitor::HandleMessageWaitingStateChanged( TAny* aPtr )
+    {
+    CScreensaverSharedDataMonitor* self = STATIC_CAST(CScreensaverSharedDataMonitor*, aPtr);
+    if ( self->iMessageWaitingWatcher->ChangedKey() == KCtsyMessageWaitingDisplayStatus )
+        {
+        self->View()->UpdateAndRefresh();
+        }
+    return KErrNone;
+    }
+
 // End of file