idlefw/src/framework/aistateprovider.cpp
branchRCL_3
changeset 18 bd874ee5e5e2
parent 9 d0529222e3f0
child 51 15e4dd19031c
equal deleted inserted replaced
9:d0529222e3f0 18:bd874ee5e5e2
    38 // ----------------------------------------------------------------------------
    38 // ----------------------------------------------------------------------------
    39 // CAiStateProvider::NewL()
    39 // CAiStateProvider::NewL()
    40 // Two-phased constructor.
    40 // Two-phased constructor.
    41 // ----------------------------------------------------------------------------
    41 // ----------------------------------------------------------------------------
    42 //
    42 //
    43 CAiStateProvider* CAiStateProvider::NewL( 
    43 CAiStateProvider* CAiStateProvider::NewL( MAiStateObserver& aObserver )     
    44     MAiStateObserver& aObserver, CCoeEnv& aCoeEnv )
       
    45     {
    44     {
    46     CAiStateProvider* self = 
    45     CAiStateProvider* self = 
    47         CAiStateProvider::NewLC( aObserver, aCoeEnv );
    46         CAiStateProvider::NewLC( aObserver );
    48     
    47     
    49     CleanupStack::Pop( self );
    48     CleanupStack::Pop( self );
    50     
    49     
    51     return self;
    50     return self;
    52     }
    51     }
    54 // ----------------------------------------------------------------------------
    53 // ----------------------------------------------------------------------------
    55 // CAiStateProvider::NewLC()
    54 // CAiStateProvider::NewLC()
    56 // Two-phased constructor.
    55 // Two-phased constructor.
    57 // ----------------------------------------------------------------------------
    56 // ----------------------------------------------------------------------------
    58 //
    57 //
    59 CAiStateProvider* CAiStateProvider::NewLC( 
    58 CAiStateProvider* CAiStateProvider::NewLC( MAiStateObserver& aObserver )     
    60     MAiStateObserver& aObserver, CCoeEnv& aCoeEnv )
       
    61     {
    59     {
    62     CAiStateProvider* self = 
    60     CAiStateProvider* self = 
    63         new ( ELeave ) CAiStateProvider( aObserver, aCoeEnv );
    61         new ( ELeave ) CAiStateProvider( aObserver );
    64     
    62     
    65     CleanupStack::PushL( self );
    63     CleanupStack::PushL( self );
    66     self->ConstructL();
    64     self->ConstructL();
    67     
    65     
    68     return self;
    66     return self;
    72 // CAiStateProvider::~CAiStateProvider()
    70 // CAiStateProvider::~CAiStateProvider()
    73 // C++ default destructor.
    71 // C++ default destructor.
    74 // ----------------------------------------------------------------------------
    72 // ----------------------------------------------------------------------------
    75 //
    73 //
    76 CAiStateProvider::~CAiStateProvider()
    74 CAiStateProvider::~CAiStateProvider()
    77     {        
    75     {  
    78     iObserver.NotifyStateChange( EAiFwUiShutdown );
    76     Stop();
    79     
       
    80     iCoeEnv.RemoveMessageMonitorObserver( *this );
       
    81     
       
    82     delete iEcomObserver;
       
    83     
       
    84     iSkinSrv.Close();
       
    85            
       
    86     Release( iBackupRestoreObserver );
       
    87     
       
    88     delete iLightObserver;       
       
    89     }
    77     }
    90 
    78 
    91 // ----------------------------------------------------------------------------
    79 // ----------------------------------------------------------------------------
    92 // CAiStateProvider::CAiStateProvider()
    80 // CAiStateProvider::CAiStateProvider()
    93 // C++ default constructor.
    81 // C++ default constructor.
    94 // ----------------------------------------------------------------------------
    82 // ----------------------------------------------------------------------------
    95 //
    83 //
    96 CAiStateProvider::CAiStateProvider( MAiStateObserver& aObserver, 
    84 CAiStateProvider::CAiStateProvider( MAiStateObserver& aObserver )        
    97     CCoeEnv& aCoeEnv )     
    85     : iObserver( aObserver )
    98     : iObserver( aObserver ), iCoeEnv( aCoeEnv )
    86     {      
    99     {  
       
   100     iObserver.NotifyStateChange( EAiFwUiStartup );
       
   101     }
    87     }
   102 
    88 
   103 // ----------------------------------------------------------------------------
    89 // ----------------------------------------------------------------------------
   104 // CAiStateProvider::ConstructL()
    90 // CAiStateProvider::ConstructL()
   105 // 2nd phase constructor
    91 // 2nd phase constructor
   106 // ----------------------------------------------------------------------------
    92 // ----------------------------------------------------------------------------
   107 //
    93 //
   108 void CAiStateProvider::ConstructL()
    94 void CAiStateProvider::ConstructL()
   109     {
    95     {
   110     iLightObserver = CHWRMLight::NewL( this );
    96     }
   111     
    97 
   112     iBackupRestoreObserver = AiUtility::CreatePSPropertyObserverL(
    98 // ----------------------------------------------------------------------------
   113         TCallBack( BackupRestoreEvent, this ),
    99 // CAiStateProvider::StartL()
   114         KUidSystemCategory, conn::KUidBackupRestoreKey );
   100 // 
   115     
   101 // ----------------------------------------------------------------------------
   116     User::LeaveIfError( iSkinSrv.Connect( this ) );
   102 //
   117        
   103 void CAiStateProvider::StartL( CCoeEnv& aCoeEnv )
   118     iEcomObserver = CAiEcomObserver::NewL();
   104     {
   119     iEcomObserver->AddObserverL( this );
   105     if ( !iStarted )
   120     
   106         {        
   121     iCoeEnv.AddMessageMonitorObserverL( *this );
   107         iStarted = ETrue;
       
   108                         
       
   109         iObserver.NotifyStateChange( EAiFwUiStartup );
       
   110         
       
   111         iLightObserver = CHWRMLight::NewL( this );
       
   112         
       
   113         iBackupRestoreObserver = AiUtility::CreatePSPropertyObserverL(
       
   114             TCallBack( BackupRestoreEvent, this ),
       
   115             KUidSystemCategory, conn::KUidBackupRestoreKey );
       
   116         
       
   117         User::LeaveIfError( iSkinSrv.Connect( this ) );
       
   118            
       
   119         iEcomObserver = CAiEcomObserver::NewL();
       
   120         iEcomObserver->AddObserverL( this );
       
   121         
       
   122         iCoeEnv = &aCoeEnv;
       
   123         
       
   124         iCoeEnv->AddMessageMonitorObserverL( *this );
       
   125         }
       
   126     }
       
   127 
       
   128 // ----------------------------------------------------------------------------
       
   129 // CAiStateProvider::Stop()
       
   130 // 
       
   131 // ----------------------------------------------------------------------------
       
   132 //
       
   133 void CAiStateProvider::Stop()
       
   134     {
       
   135     if ( iStarted )
       
   136         {
       
   137         iStarted = EFalse;
       
   138         
       
   139         iObserver.NotifyStateChange( EAiFwUiShutdown );
       
   140         
       
   141         if ( iCoeEnv )
       
   142             {
       
   143             iCoeEnv->RemoveMessageMonitorObserver( *this );        
       
   144             }
       
   145                 
       
   146         iCoeEnv = NULL;
       
   147         
       
   148         delete iEcomObserver;
       
   149         iEcomObserver = NULL;
       
   150         
       
   151         iSkinSrv.Close();
       
   152                
       
   153         Release( iBackupRestoreObserver );
       
   154         iBackupRestoreObserver = NULL;
       
   155         
       
   156         delete iLightObserver;      
       
   157         iLightObserver = NULL;
       
   158         }           
   122     }
   159     }
   123 
   160 
   124 // ----------------------------------------------------------------------------
   161 // ----------------------------------------------------------------------------
   125 // CAiStateProvider::MonitorWsMessage()
   162 // CAiStateProvider::MonitorWsMessage()
   126 // 
   163 //