phoneapp/phoneuiview/src/cphonenotecontroller.cpp
changeset 0 5f000ab63145
child 15 2a26698d78ba
equal deleted inserted replaced
-1:000000000000 0:5f000ab63145
       
     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: Implementation of CPhoneNoteController class.
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 // INCLUDE FILES
       
    20 #include "cphonenotecontroller.h"
       
    21 
       
    22 #include <eikenv.h>
       
    23 #include <eikappui.h>
       
    24 #include <eikprogi.h>
       
    25 #include <StringLoader.h>
       
    26 #include <aknnotedialog.h> // for CAknNoteDialog
       
    27 #include <AknGlobalNote.h> // for CAknGlobalNote
       
    28 
       
    29 #include "phoneui.pan"
       
    30 #include "tphonecommandparam.h"
       
    31 #include "tphonecmdparamnote.h"
       
    32 #include "tphonecmdparamboolean.h"
       
    33 #include "tphonecmdparamprogressnote.h" 
       
    34 #include "tphonecmdparamglobalnote.h"
       
    35 #include "tphonecmdparaminteger.h"
       
    36 #include "phoneconstants.h"
       
    37 #include "cphonemainresourceresolver.h"
       
    38 #include "phonerssbase.h"
       
    39 #include "phonelogger.h"
       
    40 #include "cphonetimer.h"
       
    41 #include "cphonenote.h"
       
    42 #include "cphonedtmfsendingnote.h"
       
    43 #include "cphoneuidisablednote.h"
       
    44 
       
    45 // CONSTANTS
       
    46 const TInt KPhoneIntervalDivider = 100;
       
    47 // ================= MEMBER FUNCTIONS =======================
       
    48 // C++ default constructor can NOT contain any code, that
       
    49 // might leave.
       
    50 //
       
    51 CPhoneNoteController::CPhoneNoteController( CEikonEnv& aEikEnv ) : iGlobalNoteId( KErrNotFound ), 
       
    52                                                                    iEikEnv( aEikEnv ),
       
    53                                                                    iNoteText( NULL )
       
    54     {
       
    55     }
       
    56 
       
    57 // ---------------------------------------------------------
       
    58 // CPhoneNoteController::NewL()
       
    59 // Two-phased constructor
       
    60 // (other items were commented in a header).
       
    61 // ---------------------------------------------------------
       
    62 CPhoneNoteController* CPhoneNoteController::NewL( CEikonEnv& aEikEnv )
       
    63     {   
       
    64     CPhoneNoteController* self = 
       
    65         new( ELeave ) CPhoneNoteController( aEikEnv );
       
    66     
       
    67     return self;
       
    68     }
       
    69 
       
    70 // ---------------------------------------------------------
       
    71 // Destructor
       
    72 // ---------------------------------------------------------
       
    73 // 
       
    74 CPhoneNoteController::~CPhoneNoteController()
       
    75     {
       
    76     __LOGMETHODSTARTEND(EPhoneUIView, "CPhoneNoteController::~CPhoneNoteController");
       
    77     DestroyNote();
       
    78     DestroyProgressNote();
       
    79     }
       
    80 
       
    81 // ---------------------------------------------------------
       
    82 // CPhoneNoteController::CreateNoteL
       
    83 // ---------------------------------------------------------
       
    84 //
       
    85 void CPhoneNoteController::CreateNoteL( 
       
    86     TPhoneCommandParam* aCommandParam )
       
    87     {
       
    88     __LOGMETHODSTARTEND(EPhoneUIView, "CPhoneNoteController::CreateNoteL");
       
    89     TInt resourceId = 0;
       
    90     CAknNoteDialog::TTone tone = CAknNoteDialog::ENoTone;
       
    91     CAknNoteDialog::TTimeout timeout = CAknNoteDialog::ENoTimeout;
       
    92 
       
    93     TPhoneCmdParamNote* noteParam = static_cast<TPhoneCmdParamNote*>(
       
    94         aCommandParam );
       
    95     
       
    96     if( iNote && noteParam->Type() == EPhoneNoteDtmfSending )
       
    97         {
       
    98         // Dtmf sending ongoing.
       
    99         UpdateNoteTextL( aCommandParam );
       
   100         return;
       
   101         }
       
   102     
       
   103     // Delete the existing note
       
   104     DestroyNote();
       
   105 
       
   106     // Setup parameters according to the type of note
       
   107     switch ( noteParam->Type() )
       
   108         {
       
   109         case EPhoneNoteError:
       
   110             resourceId = CPhoneMainResourceResolver::Instance()->
       
   111                 ResolveResourceID( EPhoneInformationErrorNote );
       
   112             timeout = CAknNoteDialog::ELongTimeout;
       
   113             tone = CAknNoteDialog::EErrorTone;
       
   114             break;
       
   115             
       
   116         case EPhoneNoteWarning:
       
   117             resourceId = CPhoneMainResourceResolver::Instance()->
       
   118                 ResolveResourceID( EPhoneInformationWarningNote );
       
   119             timeout = CAknNoteDialog::ELongTimeout;
       
   120             tone = CAknNoteDialog::EWarningTone;
       
   121             break;
       
   122             
       
   123         case EPhoneNoteConfirmation:
       
   124             resourceId = CPhoneMainResourceResolver::Instance()->
       
   125                 ResolveResourceID( EPhoneInformationConfirmationNote );
       
   126             timeout = CAknNoteDialog::EShortTimeout;
       
   127             tone = CAknNoteDialog::EConfirmationTone;
       
   128             break;
       
   129             
       
   130         case EPhoneNoteInformation:
       
   131             resourceId = CPhoneMainResourceResolver::Instance()->
       
   132                 ResolveResourceID( EPhoneInformationNote );
       
   133             timeout = CAknNoteDialog::ELongTimeout;
       
   134             tone = CAknNoteDialog::ENoTone;
       
   135             break;
       
   136         
       
   137         case EPhoneNoteSecurity:
       
   138         case EPhoneNoteCustom: // Fall through
       
   139         case EPhoneNotePermanent:
       
   140         case EPhoneNoteDtmfSending:
       
   141             // Use the specified values
       
   142             resourceId = noteParam->ResourceId();
       
   143             timeout = noteParam->Timeout();
       
   144             tone = noteParam->Tone();
       
   145             break;
       
   146 
       
   147         case EPhoneNoteUIDisabled:
       
   148             // Use the specified values
       
   149             resourceId = noteParam->ResourceId();
       
   150             timeout = CAknNoteDialog::ENoTimeout;
       
   151             tone = CAknNoteDialog::ENoTone;
       
   152             break;
       
   153             
       
   154         default:
       
   155             Panic( EPhoneViewCaseNotHandled );
       
   156             break;
       
   157         }
       
   158 
       
   159 	// Create correct note
       
   160 	if( noteParam->Type() == EPhoneNoteDtmfSending )
       
   161 		{
       
   162 		iNote = new ( ELeave ) CPhoneDtmfSendingNote( reinterpret_cast<CEikDialog**>( &iNote ), *iEikEnv.EikAppUi() );						
       
   163 		}
       
   164 	else if( noteParam->Type() == EPhoneNoteUIDisabled )
       
   165         {
       
   166         iNote = new ( ELeave ) CPhoneUIDisabledNote( reinterpret_cast<CEikDialog**>( &iNote ), *iEikEnv.EikAppUi() );
       
   167         }
       
   168 	else
       
   169 		{
       
   170 		iNote = new ( ELeave ) CPhoneNote( reinterpret_cast<CEikDialog**>( &iNote ), *iEikEnv.EikAppUi() );			
       
   171 		}
       
   172 
       
   173     // Override text if specified
       
   174     if ( noteParam->Text().Length() )
       
   175         {
       
   176         if( !iNoteText )
       
   177             {
       
   178 			iNoteText = noteParam->Text().AllocL();	            	
       
   179             }
       
   180         iNote->SetTextL( *iNoteText );
       
   181         }
       
   182     else if ( noteParam->TextResourceId() )
       
   183         {
       
   184         // Get the text associated with the resource Id
       
   185         TBuf<KPhoneMaxCharsInNote> noteText;
       
   186         StringLoader::Load( 
       
   187             noteText, 
       
   188             noteParam->TextResourceId(), 
       
   189             &iEikEnv );
       
   190 
       
   191         iNote->SetTextL( noteText );
       
   192         }
       
   193 
       
   194     // Override tone if specified
       
   195     if ( tone != CAknNoteDialog::ENoTone )
       
   196         {
       
   197         iNote->SetTone( tone );
       
   198         }
       
   199 
       
   200     // Override timeout if specified
       
   201     if ( timeout != CAknNoteDialog::ENoTimeout )
       
   202         {
       
   203         iNote->SetTimeout( timeout );
       
   204         }
       
   205     
       
   206     iNote->SetNoteType( noteParam->Type() );
       
   207  
       
   208     // Display the note
       
   209 	iNote->ExecuteLD( resourceId );
       
   210     }
       
   211 
       
   212 // ---------------------------------------------------------
       
   213 // CPhoneNoteController::DestroyNote
       
   214 // ---------------------------------------------------------
       
   215 //
       
   216 void CPhoneNoteController::DestroyNote()
       
   217     {
       
   218     __LOGMETHODSTARTEND(EPhoneUIView, "CPhoneNoteController::DestroyNote");
       
   219     
       
   220     // Delete note text if exists
       
   221     if( iNoteText )
       
   222         {
       
   223         delete iNoteText;
       
   224         iNoteText = NULL;            
       
   225         }
       
   226     
       
   227     // Delete the note if it exists
       
   228     if ( iNote )
       
   229         {
       
   230         delete iNote;
       
   231         iNote = NULL;
       
   232         }
       
   233     }
       
   234 
       
   235 // ---------------------------------------------------------
       
   236 // CPhoneNoteController::DestroyDTMFNote
       
   237 // ---------------------------------------------------------
       
   238 //
       
   239 void CPhoneNoteController::DestroyDTMFNote()
       
   240     {
       
   241     __LOGMETHODSTARTEND(EPhoneUIView, "CPhoneNoteController::DestroyDTMFNote");
       
   242    
       
   243     // Delete DTFM note if exists
       
   244     if ( iNote && ( iNote->NoteType() == EPhoneNoteDtmfSending ) )
       
   245         {
       
   246         // Delete note text if exists
       
   247         if( iNoteText )
       
   248             {
       
   249             delete iNoteText;
       
   250             iNoteText = NULL;            
       
   251             }
       
   252         delete iNote;
       
   253         iNote = NULL;
       
   254         }
       
   255     }
       
   256 
       
   257 
       
   258 // ---------------------------------------------------------
       
   259 // CPhoneNoteController::DestroyGlobalNoteL
       
   260 // ---------------------------------------------------------
       
   261 //
       
   262 void CPhoneNoteController::DestroyGlobalNoteL()
       
   263     {
       
   264     __LOGMETHODSTARTEND(EPhoneUIView, "CPhoneNoteController::DestroyGlobalNoteL");
       
   265     if( iGlobalNoteId != KErrNotFound )
       
   266         {
       
   267         CAknGlobalNote* glbNote = CAknGlobalNote::NewLC();
       
   268         glbNote->CancelNoteL( iGlobalNoteId );
       
   269         CleanupStack::PopAndDestroy( glbNote );        
       
   270         }
       
   271     }
       
   272 
       
   273 // ---------------------------------------------------------
       
   274 // CPhoneNoteController::CreateGlobalNoteL
       
   275 // ---------------------------------------------------------
       
   276 //
       
   277 void CPhoneNoteController::CreateGlobalNoteL(
       
   278     TPhoneCommandParam* aCommandParam )
       
   279     {
       
   280     __LOGMETHODSTARTEND(EPhoneUIView, "CPhoneNoteController::CreateGlobalNoteL");
       
   281     TPhoneCmdParamGlobalNote* globalNoteParam = 
       
   282         static_cast<TPhoneCmdParamGlobalNote*>( aCommandParam );
       
   283     TBuf<KPhoneMaxCharsInNote> noteText;
       
   284 
       
   285     // Check if the resource Id is specified
       
   286     if ( globalNoteParam->TextResourceId() )
       
   287         {
       
   288         if ( globalNoteParam->Text().Length() )
       
   289             {
       
   290             HBufC* loadedText = StringLoader::LoadL( 
       
   291                 globalNoteParam->TextResourceId(), 
       
   292                 globalNoteParam->Text(), 
       
   293                 CCoeEnv::Static() );
       
   294             noteText.Copy( *loadedText );
       
   295             delete loadedText;
       
   296             }
       
   297         else
       
   298             {
       
   299             StringLoader::Load( 
       
   300                 noteText, 
       
   301                 globalNoteParam->TextResourceId(), 
       
   302                 &iEikEnv );
       
   303             }
       
   304         }
       
   305     else if ( globalNoteParam->Text() != KNullDesC )
       
   306         {
       
   307         noteText.Copy( globalNoteParam->Text() );
       
   308         }
       
   309 
       
   310     if ( noteText.Length() > 0 )
       
   311         {
       
   312         CAknGlobalNote* glbNote = CAknGlobalNote::NewLC();
       
   313 
       
   314         // Set the tone
       
   315         glbNote->SetTone( globalNoteParam->Tone() );
       
   316         if ( globalNoteParam->Softkeys())
       
   317             {
       
   318             glbNote->SetSoftkeys(  globalNoteParam->Softkeys() );   
       
   319             }
       
   320 
       
   321         // Show the global note
       
   322         
       
   323         if ( globalNoteParam->WaitForReady() )
       
   324             {
       
   325             TRequestStatus NoteReady;
       
   326             iGlobalNoteId = glbNote->ShowNoteL( NoteReady, globalNoteParam->Type(), noteText );
       
   327             User::WaitForRequest( NoteReady );
       
   328             }
       
   329         else
       
   330             {
       
   331             iGlobalNoteId = glbNote->ShowNoteL( globalNoteParam->Type(), noteText );
       
   332             }
       
   333         CleanupStack::PopAndDestroy( glbNote );
       
   334         }
       
   335     }
       
   336 
       
   337 // ---------------------------------------------------------
       
   338 // CPhoneNoteController::CreateProgressNoteL
       
   339 // ---------------------------------------------------------
       
   340 //
       
   341 void CPhoneNoteController::CreateProgressNoteL(
       
   342     TPhoneCommandParam* aCommandParam )
       
   343     {
       
   344     __LOGMETHODSTARTEND(EPhoneUIView, "CPhoneNoteController::CreateProgressNoteL");
       
   345     TPhoneCmdParamProgressNote* noteParam = static_cast<
       
   346         TPhoneCmdParamProgressNote*>(aCommandParam );
       
   347 
       
   348     TInt resourceId = noteParam->ResourceId();
       
   349     iStartTime.UniversalTime();
       
   350     
       
   351     TTimeIntervalMicroSeconds32 waitTime =
       
   352         noteParam->WaitTime();
       
   353         
       
   354     if( !iProgressUpdateTimer )
       
   355         {
       
   356         iProgressUpdateTimer = CPhoneTimer::NewL();            
       
   357         }
       
   358 
       
   359     iWaitTime = waitTime.Int();
       
   360     
       
   361     TInt final = waitTime.Int();
       
   362     iInterval = final / KPhoneIntervalDivider;
       
   363     iProgressBarCount = 0;
       
   364         
       
   365     iProgressUpdateTimer->After( iInterval, this );
       
   366         
       
   367     CPhoneProgressNote* dlg = 
       
   368         new ( ELeave ) CPhoneProgressNote(
       
   369              ( reinterpret_cast< CEikDialog** >( &iProgressNote )),
       
   370              static_cast<MEikCommandObserver*>( iEikEnv.EikAppUi() ) );
       
   371 
       
   372     iProgressNote = dlg;
       
   373     dlg->PrepareLC( resourceId );
       
   374 
       
   375     CEikProgressInfo* info = dlg->GetProgressInfoL();
       
   376     
       
   377     if ( info )
       
   378         {
       
   379         info->SetFinalValue( KPhoneIntervalDivider );
       
   380         }
       
   381     
       
   382     dlg->RunLD();        
       
   383     }
       
   384     
       
   385 // ---------------------------------------------------------
       
   386 // CPhoneNoteController::DestroyProgressBar
       
   387 // ---------------------------------------------------------
       
   388 //
       
   389 void CPhoneNoteController::DestroyProgressNote()
       
   390     {
       
   391     __LOGMETHODSTARTEND(EPhoneUIView, "CPhoneNoteController::DestroyProgressNote");
       
   392 
       
   393     // Delete the progress note if it exists
       
   394     if ( iProgressNote )
       
   395         {
       
   396         delete iProgressNote;
       
   397         iProgressNote = NULL;
       
   398         }
       
   399     if ( iProgressUpdateTimer )
       
   400         {
       
   401         if( iProgressUpdateTimer->IsActive() )
       
   402             {
       
   403             iProgressUpdateTimer->CancelTimer();                
       
   404             }
       
   405             
       
   406         delete iProgressUpdateTimer;
       
   407         iProgressUpdateTimer = NULL;            
       
   408         }
       
   409     iProgressBarCount = 0; 
       
   410     }
       
   411     
       
   412 // ---------------------------------------------------------
       
   413 // CPhoneNoteController::HandleTimeOutL
       
   414 // ---------------------------------------------------------
       
   415 //
       
   416 void CPhoneNoteController::HandleTimeOutL()
       
   417     {
       
   418     __LOGMETHODSTARTEND(EPhoneUIView, "CPhoneNoteController::HandleTimeOutL");
       
   419 
       
   420     if ( iProgressNote )
       
   421         {
       
   422         TTime current;
       
   423         current.UniversalTime();
       
   424         
       
   425         CEikProgressInfo* info = iProgressNote->GetProgressInfoL();           
       
   426 
       
   427         if ( info )
       
   428             {
       
   429             TTime current;
       
   430             current.UniversalTime();
       
   431             TInt64 timeDelta = 
       
   432                     current.MicroSecondsFrom( iStartTime ).Int64();
       
   433                     
       
   434             iProgressBarCount = ( timeDelta / iInterval )+1 ;
       
   435             if ( iProgressBarCount > KPhoneIntervalDivider )
       
   436                 {
       
   437                  iProgressBarCount = KPhoneIntervalDivider;           
       
   438                 }
       
   439             info->SetAndDraw( iProgressBarCount );                     
       
   440             }        
       
   441         
       
   442         if ( !iProgressUpdateTimer->IsActive() )
       
   443             {
       
   444             iProgressUpdateTimer->After( iInterval, this );
       
   445             }
       
   446         }
       
   447     else
       
   448         {         
       
   449         if( iProgressUpdateTimer->IsActive() )
       
   450             {
       
   451             iProgressUpdateTimer->CancelTimer();                
       
   452             }
       
   453             
       
   454         delete iProgressUpdateTimer;
       
   455         iProgressUpdateTimer = NULL;
       
   456         iProgressBarCount = 0;            
       
   457         }
       
   458     }
       
   459 
       
   460 // ---------------------------------------------------------
       
   461 // CPhoneNoteController::IsNoteVisible
       
   462 // ---------------------------------------------------------
       
   463 //
       
   464 void CPhoneNoteController::IsNoteVisible( TPhoneCommandParam* aCommandParam )
       
   465     {
       
   466     __LOGMETHODSTARTEND(EPhoneUIView, "CPhoneNoteController::IsNoteVisible");
       
   467 
       
   468     TPhoneCmdParamBoolean* booleanParam = 
       
   469         static_cast<TPhoneCmdParamBoolean*>( aCommandParam );
       
   470 
       
   471     if( iNote )
       
   472         {
       
   473         if( iNote->IsVisible() )
       
   474             {
       
   475             booleanParam->SetBoolean( ETrue );                
       
   476             }
       
   477         }
       
   478     else
       
   479         {
       
   480         booleanParam->SetBoolean( EFalse );                
       
   481         }
       
   482     }
       
   483 
       
   484 // ---------------------------------------------------------
       
   485 // CPhoneNoteController::IsProgressNoteVisible
       
   486 // ---------------------------------------------------------
       
   487 //
       
   488 void CPhoneNoteController::IsProgressNoteVisible( TPhoneCommandParam* aCommandParam )
       
   489     {
       
   490     __LOGMETHODSTARTEND( EPhoneUIView, "CPhoneNoteController::IsProgressNoteVisible");
       
   491 
       
   492     TPhoneCmdParamBoolean* booleanParam = 
       
   493         static_cast<TPhoneCmdParamBoolean*>( aCommandParam );
       
   494 
       
   495     if( iProgressNote )
       
   496         {
       
   497         if( iProgressNote->IsVisible() )
       
   498             {
       
   499             booleanParam->SetBoolean( ETrue );
       
   500             }
       
   501         }
       
   502     else
       
   503         {
       
   504         booleanParam->SetBoolean( EFalse );                
       
   505         }
       
   506     }
       
   507 
       
   508 // ---------------------------------------------------------
       
   509 // CPhoneNoteController::IsNoteActive
       
   510 // ---------------------------------------------------------
       
   511 //
       
   512 void CPhoneNoteController::IsNoteActive( TPhoneCommandParam* aCommandParam )
       
   513     {
       
   514     __LOGMETHODSTARTEND( EPhoneUIView, "CPhoneNoteController::IsNote");
       
   515 
       
   516     TPhoneCmdParamBoolean* booleanParam = 
       
   517         static_cast<TPhoneCmdParamBoolean*>( aCommandParam );
       
   518 
       
   519     if( iProgressNote || iNote )
       
   520         {
       
   521         booleanParam->SetBoolean( ETrue );                
       
   522         }
       
   523     else 
       
   524         {
       
   525         booleanParam->SetBoolean( EFalse );    
       
   526         }
       
   527     }
       
   528 
       
   529 // ---------------------------------------------------------
       
   530 // CPhoneNoteController::IsActiveNoteDissmissableByKeyEvent
       
   531 // ---------------------------------------------------------
       
   532 //
       
   533 void CPhoneNoteController::IsActiveNoteDissmissableByKeyEvent( TPhoneCommandParam* aCommandParam )
       
   534     {
       
   535     __LOGMETHODSTARTEND( EPhoneUIView, "CPhoneNoteController::IsActiveNoteDissmissableByKeyEvent");
       
   536 
       
   537     TPhoneCmdParamBoolean* booleanParam = 
       
   538         static_cast<TPhoneCmdParamBoolean*>( aCommandParam );
       
   539     // check first that iNote is created. 
       
   540     if( ( iNote ) &&
       
   541         ( iNote->NoteType() == EPhoneNoteSecurity ) )
       
   542         {
       
   543         booleanParam->SetBoolean( ETrue );                
       
   544         }
       
   545     else 
       
   546         {
       
   547         booleanParam->SetBoolean( EFalse );    
       
   548         }
       
   549     }
       
   550 
       
   551 // ---------------------------------------------------------
       
   552 // CPhoneNoteController::UpdateNoteTextL
       
   553 // ---------------------------------------------------------
       
   554 //
       
   555 void CPhoneNoteController::UpdateNoteTextL( TPhoneCommandParam* aCommandParam )
       
   556     {
       
   557     TPhoneCmdParamNote* noteParam = static_cast<TPhoneCmdParamNote*>(
       
   558            aCommandParam );
       
   559     
       
   560     // Delete note text if exists
       
   561     if( iNoteText )
       
   562         {
       
   563         delete iNoteText;
       
   564         iNoteText = NULL;           
       
   565         }
       
   566     
       
   567     if ( iNote )
       
   568         {
       
   569         // Override text if specified
       
   570         if ( noteParam->Text().Length() )
       
   571             {
       
   572             if( !iNoteText )
       
   573                 {
       
   574                 iNoteText = noteParam->Text().Alloc();                  
       
   575                 }
       
   576             iNote->SetTextL( *iNoteText );
       
   577             }
       
   578         else if ( noteParam->TextResourceId() )
       
   579             {
       
   580             // Get the text associated with the resource Id
       
   581             TBuf<KPhoneMaxCharsInNote> noteText;
       
   582             StringLoader::Load( 
       
   583                 noteText, 
       
   584                 noteParam->TextResourceId(), 
       
   585                 &iEikEnv );
       
   586 
       
   587             iNote->SetTextL( noteText );
       
   588             }
       
   589         }
       
   590     }
       
   591 
       
   592 // ---------------------------------------------------------
       
   593 // CPhoneNoteController::UpdateNoteSoftkeysL
       
   594 // ---------------------------------------------------------
       
   595 //
       
   596 void CPhoneNoteController::UpdateNoteSoftkeysL( TPhoneCommandParam* aCommandParam )
       
   597     {
       
   598      
       
   599     TPhoneCmdParamInteger* integerParam = 
       
   600             static_cast<TPhoneCmdParamInteger*>( aCommandParam );
       
   601     
       
   602     if ( iNote )
       
   603         {
       
   604         iNote->UpdateSoftkeysL( integerParam->Integer() );
       
   605         }
       
   606     }
       
   607 
       
   608 // End of File