coreapplicationuis/SysAp/Src/CenRepObservers/SysApCenRepLogsObserver.cpp
changeset 0 2e3d3ce01487
child 21 c4cbaa4fb734
child 58 0818dd463d41
equal deleted inserted replaced
-1:000000000000 0:2e3d3ce01487
       
     1 /*
       
     2 * Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  CSysApCenRepLogsObserver implementation.
       
    15  *
       
    16 */
       
    17 
       
    18 
       
    19 // INCLUDE FILES
       
    20 #include "SysApCenRepLogsObserver.h"
       
    21 #include "SysApAppUi.h"
       
    22 
       
    23 // ========================== MEMBER FUNCTIONS ================================
       
    24 
       
    25 // ----------------------------------------------------------------------------
       
    26 // CSysApCenRepLogsObserver* CSysApCenRepLogsObserver::NewL()
       
    27 // ----------------------------------------------------------------------------
       
    28 
       
    29 CSysApCenRepLogsObserver* CSysApCenRepLogsObserver::NewL( CSysApAppUi& aSysApAppUi )
       
    30     {       
       
    31     TRACES( RDebug::Print( _L("CSysApCenRepLogsObserver::NewL" ) ) );
       
    32     CSysApCenRepLogsObserver* self = new ( ELeave ) CSysApCenRepLogsObserver( aSysApAppUi );
       
    33     CleanupStack::PushL( self );
       
    34     self->ConstructL();
       
    35     CleanupStack::Pop( self );
       
    36     return self;
       
    37     }
       
    38 
       
    39 // ----------------------------------------------------------------------------
       
    40 // CSysApCenRepLogsObserver::CSysApCenRepLogsObserver( CSysApAppUi& aSysApAppUi )
       
    41 // ----------------------------------------------------------------------------
       
    42 
       
    43 CSysApCenRepLogsObserver::CSysApCenRepLogsObserver( CSysApAppUi& aSysApAppUi  )
       
    44     : iSysApAppUi( aSysApAppUi ),
       
    45       iUiReady( EFalse ),
       
    46       iSimChangedCheckDone( EFalse )
       
    47     {
       
    48     TRACES( RDebug::Print( _L("CSysApCenRepLogsObserver::CSysApCenRepLogsObserver" ) ) );
       
    49     }
       
    50 
       
    51 // ----------------------------------------------------------------------------
       
    52 // CSysApCenRepLogsObserver::~CSysApCenRepLogsObserver()
       
    53 // ----------------------------------------------------------------------------
       
    54 
       
    55 CSysApCenRepLogsObserver::~CSysApCenRepLogsObserver()
       
    56     {
       
    57     TRACES( RDebug::Print( _L("~CSysApCenRepLogsObserver") ) );
       
    58     if ( iNewMissedCallsHandler )
       
    59         {
       
    60         iNewMissedCallsHandler->StopListening();
       
    61         }
       
    62     delete iNewMissedCallsHandler;
       
    63     delete iSession;
       
    64     }
       
    65 
       
    66 // ----------------------------------------------------------------------------
       
    67 // CSysApCenRepLogsObserver::ConstructL()
       
    68 // ----------------------------------------------------------------------------
       
    69 
       
    70 void CSysApCenRepLogsObserver::ConstructL()
       
    71     {
       
    72     TRAPD( err, iSession = CRepository::NewL( KCRUidLogs ) );
       
    73     TRACES( RDebug::Print( _L("CSysApCenRepLogsObserver::ConstructL: err=%d (KCRUidLogs)"), err ) );
       
    74     User::LeaveIfError( err );
       
    75     iNewMissedCallsHandler = 
       
    76         CCenRepNotifyHandler::NewL( *this, 
       
    77                                     *iSession, 
       
    78                                     CCenRepNotifyHandler::EIntKey, 
       
    79                                     KLogsNewMissedCalls );
       
    80                                     iNewMissedCallsHandler->StartListeningL();
       
    81     
       
    82     iSession->Get(KLogsNewMissedCalls, iMissedCallsValue);
       
    83     }
       
    84 
       
    85 // ----------------------------------------------------------------------------
       
    86 // CSysApCenRepLogsObserver::HandleNotifyInt()
       
    87 // ----------------------------------------------------------------------------
       
    88 void CSysApCenRepLogsObserver::HandleNotifyInt( TUint32 /* aId */, TInt aNewValue )
       
    89     {
       
    90     TRACES( RDebug::Print( _L("CSysApCenRepLogsObserver::HandleNotifyInt: aNewValue=%d"),  aNewValue ) );
       
    91     
       
    92     iMissedCallsValue = aNewValue;
       
    93     
       
    94     TRAPD( err, UpdateMissedCallsIndicatorL() );
       
    95         
       
    96     if ( err )
       
    97         {
       
    98         TRACES( RDebug::Print( _L("CSysApCenRepLogsObserver::HandleNotifyInt: err=%d" ), err ) );
       
    99         }
       
   100     }
       
   101 
       
   102 // ----------------------------------------------------------------------------
       
   103 // CSysApCenRepLogsObserver::HandleNotifyError()
       
   104 // ----------------------------------------------------------------------------
       
   105 void CSysApCenRepLogsObserver::HandleNotifyError( TUint32 /* aId */, TInt /* error */, CCenRepNotifyHandler* /* aHandler */ )
       
   106     {
       
   107     TRACES( RDebug::Print( _L("CSysApCenRepLogsObserver::HandleNotifyError()" ) ) );
       
   108     }
       
   109     
       
   110     
       
   111 // ----------------------------------------------------------------------------
       
   112 // CSysApCenRepLogsObserver::HandleUiReady()
       
   113 // ----------------------------------------------------------------------------
       
   114 void CSysApCenRepLogsObserver::HandleUiReadyL()
       
   115     {
       
   116     TRACES( RDebug::Print( _L("CSysApCenRepLogsObserver::HandleUiReady()" ) ) ); 
       
   117     
       
   118     if ( !iUiReady ) // handle only once during device startup
       
   119         {
       
   120         iUiReady = ETrue;
       
   121             
       
   122         UpdateMissedCallsIndicatorL();
       
   123         }
       
   124     }
       
   125 
       
   126 // ----------------------------------------------------------------------------
       
   127 // CSysApCenRepLogsObserver::HandleSimChangedCheckDone()
       
   128 // ----------------------------------------------------------------------------
       
   129 void CSysApCenRepLogsObserver::HandleSimChangedCheckDoneL()
       
   130     {
       
   131     TRACES( RDebug::Print( _L("CSysApCenRepLogsObserver::HandleSimChangedCheckDone()" ) ) );
       
   132     
       
   133     if ( !iSimChangedCheckDone ) // handle only once during device startup
       
   134         {
       
   135         iSimChangedCheckDone = ETrue;
       
   136             
       
   137         UpdateMissedCallsIndicatorL();
       
   138         }
       
   139     }
       
   140 
       
   141 // ----------------------------------------------------------------------------
       
   142 // CSysApCenRepLogsObserver::UpdateMissedCallsIndicatorL()
       
   143 // ----------------------------------------------------------------------------
       
   144 void CSysApCenRepLogsObserver::UpdateMissedCallsIndicatorL()
       
   145     {
       
   146     TRACES( RDebug::Print( _L("CSysApCenRepLogsObserver::UpdateMissedCallsIndicatorL(): iMissedCallsValue=%d, UI flags=%d" ),
       
   147                 iMissedCallsValue, iSimChangedCheckDone && iUiReady ) );
       
   148     
       
   149     if ( iSimChangedCheckDone && iUiReady )
       
   150         {
       
   151         TInt newState( iMissedCallsValue > 0 ? EAknIndicatorStateOn : EAknIndicatorStateOff );
       
   152         
       
   153         iSysApAppUi.SetIndicatorStateL( EAknIndicatorMissedCalls, newState );
       
   154         }
       
   155     }
       
   156 
       
   157 // End of File
       
   158