src/screensavershareddatamonitor.cpp
branchRCL_3
changeset 15 2e08ef6b6eda
parent 14 d8eca2b0590d
child 16 1f307dce3b5a
equal deleted inserted replaced
14:d8eca2b0590d 15:2e08ef6b6eda
    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