--- 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