satui/satapp/SATUISrc/CSatUiView.cpp
branchRCL_3
changeset 19 7d48bed6ce0c
parent 18 594d59766373
child 20 987c9837762f
equal deleted inserted replaced
18:594d59766373 19:7d48bed6ce0c
     1 /*
       
     2 * Copyright (c) 2002-2009 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: 
       
    15 *    Defines CSatUiView class
       
    16 *
       
    17 *
       
    18 */
       
    19 
       
    20 
       
    21 // INCLUDE FILES
       
    22 #include    <coecntrl.h> //for CCoeControl class
       
    23 #include    <akntitle.h>
       
    24 #include    <eikmenup.h>
       
    25 #include    <barsread.h>
       
    26 #include    <badesca.h> // for descriptor arrays
       
    27 #include    <aknlists.h>
       
    28 #include    <eiktxlbx.h>
       
    29 #include	<akncontext.h>	//for Context pane
       
    30 #include	<fbs.h>			//for iocn bitmap
       
    31 #include    <StringLoader.h>
       
    32 #include    <avkon.hrh>
       
    33 #include    "satui.hrh"
       
    34 #include    <SatUi.rsg>
       
    35 #include    <AknIconArray.h> 
       
    36 #include    <gulicon.h>
       
    37 #include    <eikclbd.h>
       
    38 #include    <msatuiadapter.h>
       
    39 #include    <aknnotedialog.h>
       
    40 #include    <aknstaticnotedialog.h>
       
    41 #include    <featmgr.h> // Used for FeatureManager
       
    42 #include    <activitymanager.h>
       
    43 
       
    44 #include    "CSatUiApplication.h"
       
    45 #include    "CSatUiViewAppUi.h"
       
    46 #include    "CSatUiViewContainer.h"
       
    47 #include    "CSatUiView.h"
       
    48 #include    "tflogger.h"
       
    49 
       
    50 // CONSTANTS
       
    51 // From Ui spec 60 sec delay user response
       
    52 const TInt KNoResponseFromUserDelay = 60;
       
    53 
       
    54 _LIT( KTab, "\t" );
       
    55 _LIT( KIconTab, "%d\t" );
       
    56 // ================= MEMBER FUNCTIONS =======================
       
    57 
       
    58 // C++ default constructor can NOT contain any code, that
       
    59 // might leave.
       
    60 //
       
    61 CSatUiView::CSatUiView( TBool aSetUpMenu, CSatUiViewAppUi* aAppUi, 
       
    62                         TBool aEmpty ):
       
    63     iSetUpMenu( aSetUpMenu ),
       
    64     iSatUiAppUi( aAppUi ),
       
    65 	iModel( NULL ),
       
    66     iIconsOn( EFalse ),
       
    67     iIconStateChange( EFalse ),
       
    68     iSelfExplanatoryItems( EFalse ),
       
    69     iListBoxVisible( ETrue ),
       
    70     iEmpty( aEmpty )
       
    71     {
       
    72     }
       
    73 
       
    74 // Symbian OS default constructor can leave.
       
    75 void CSatUiView::ConstructL()
       
    76     {
       
    77 	TFLOGSTRING( "CSatUiView::ConstructL() called" )
       
    78 
       
    79 	TInt recource( R_SATUI_SELECTITEM_VIEW );
       
    80 
       
    81     if ( iSetUpMenu )
       
    82         {
       
    83         if ( iEmpty )
       
    84             {
       
    85             recource = R_SATUI_EMPTYMENU_VIEW;
       
    86             }
       
    87         else
       
    88             {
       
    89             recource = R_SATUI_SETUPMENU_VIEW;
       
    90             }
       
    91         }
       
    92 
       
    93     BaseConstructL( recource );
       
    94 
       
    95     iItemsIconArray = new(ELeave) CAknIconArray( 1 );
       
    96 	TFLOGSTRING( "CSatUiView::ConstructL() exit" )
       
    97     }
       
    98 
       
    99 // Two-phased constructor.
       
   100 CSatUiView* CSatUiView::NewL( TBool aSetUpMenu, 
       
   101                               CSatUiViewAppUi* aAppUi, 
       
   102                               TBool aEmpty )
       
   103     {
       
   104 	TFLOGSTRING( "CSatUiView::NewL called" )
       
   105     CSatUiView* self = new ( ELeave ) CSatUiView( aSetUpMenu, aAppUi, aEmpty );
       
   106 
       
   107     CleanupStack::PushL( self );
       
   108     self->ConstructL();
       
   109     CleanupStack::Pop( self );
       
   110 	TFLOGSTRING( "CSatUiView::NewL exit" )
       
   111     return self;
       
   112     }
       
   113 
       
   114 // Destructor.
       
   115 CSatUiView::~CSatUiView()
       
   116     {
       
   117 	TFLOGSTRING( "CSatUiView::~CSatUiView() called" )
       
   118 
       
   119     delete iContainer;
       
   120     delete iMenuItemNextActions;
       
   121     delete iMenuItems;
       
   122 
       
   123     if ( iItemsIconArray )
       
   124         {
       
   125         iItemsIconArray->ResetAndDestroy();
       
   126         delete iItemsIconArray;
       
   127         iItemsIconArray = NULL;
       
   128         }
       
   129 
       
   130 	TFLOGSTRING( "CSatUiView::~CSatUiView() exit" )
       
   131     }
       
   132 
       
   133 // ---------------------------------------------------------
       
   134 // CSatUiView::SetTitle
       
   135 // Sets the title needed for showing the view.
       
   136 // (other items were commented in a header).
       
   137 // ---------------------------------------------------------
       
   138 //
       
   139 void CSatUiView::SetTitle( const HBufC* aTitle )
       
   140     {
       
   141     TFLOGSTRING( "CSatUiView::SetTitle called" )
       
   142     iTitle = aTitle;
       
   143     TFLOGSTRING( "CSatUiView::SetTitle exit" )
       
   144     }
       
   145 
       
   146 // ---------------------------------------------------------
       
   147 // CSatUiView::SetIconL
       
   148 // Sets the icon needed to the view.
       
   149 // (other items were commented in a header).
       
   150 // ---------------------------------------------------------
       
   151 //
       
   152 void CSatUiView::SetIconL( const CFbsBitmap* aIconBitmap )
       
   153 	{
       
   154     TFLOGSTRING( "CSatUiView::SetIconL called" )
       
   155 	if ( StatusPane()->PaneCapabilities( TUid::Uid(
       
   156         EEikStatusPaneUidContext ) ).IsPresent() )
       
   157 		{
       
   158 		TFLOGSTRING( "CSatUiView::SetIconL pane is present" )
       
   159         CEikStatusPane* sp=iEikonEnv->AppUiFactory()->StatusPane();
       
   160         CleanupStack::PushL( sp );
       
   161 		CAknContextPane* contextPane=( CAknContextPane * )sp->
       
   162             ControlL( TUid::Uid( EEikStatusPaneUidContext ) );
       
   163 		CleanupStack::Pop( sp );    //sp
       
   164         if ( aIconBitmap )      //icon from SIM
       
   165             {
       
   166             TFLOGSTRING( "CSatUiView::SetIconL icon from SIM" )
       
   167             contextPane->SetPicture( aIconBitmap );
       
   168             }
       
   169         else                    //set default icon
       
   170             {
       
   171             TFLOGSTRING( "CSatUiView::SetIconL default icon" )
       
   172             contextPane->SetPictureToDefaultL();
       
   173             }
       
   174 		}
       
   175 	TFLOGSTRING( "CSatUiView::SetIconL exit" )
       
   176 	}
       
   177 
       
   178 // ---------------------------------------------------------
       
   179 // CSatUiView::SetItemsIconL
       
   180 // Sets the items icon array.
       
   181 // (other items were commented in a header).
       
   182 // ---------------------------------------------------------
       
   183 //
       
   184 void CSatUiView::SetItemsIconL( 
       
   185     const CAknIconArray* aItemsIconArray, 
       
   186     const TBool aSelfExplanatoryItems )
       
   187     {
       
   188     TFLOGSTRING( "CSatUiView::SetItemsIconL called" )
       
   189     iItemsIconArray->ResetAndDestroy();
       
   190     //if items icon array available
       
   191     if ( aItemsIconArray->Count() )
       
   192         {
       
   193         TFLOGSTRING( "CSatUiView::SetItemsIconL icon array available" )
       
   194         if( !iIconsOn )
       
   195             {
       
   196             //last view not with icons
       
   197             iIconStateChange = ETrue;
       
   198             }
       
   199         iItemsIconArray->InsertL( 0, &aItemsIconArray->operator[]( 0 ), 
       
   200             aItemsIconArray->Count() );
       
   201         iIconsOn = ETrue;
       
   202         iSelfExplanatoryItems = aSelfExplanatoryItems;
       
   203         }
       
   204     else
       
   205         {
       
   206         TFLOGSTRING( "CSatUiView::SetItemsIconL icon array not available" )
       
   207         if( iIconsOn )
       
   208             {
       
   209             TFLOGSTRING( "CSatUiView::SetItemsIconL iIconsOn true" )
       
   210             iIconStateChange = ETrue;
       
   211             }
       
   212         else
       
   213             {
       
   214             TFLOGSTRING( "CSatUiView::SetItemsIconL iIconsOn false" )
       
   215             iIconStateChange = EFalse;
       
   216             }
       
   217         iIconsOn = EFalse;
       
   218         iSelfExplanatoryItems = EFalse;
       
   219         }
       
   220     TFLOGSTRING( "CSatUiView::SetItemsIconL exit" )
       
   221     }
       
   222 
       
   223 // ---------------------------------------------------------
       
   224 // CSatUiView::SetItemsL
       
   225 // Sets all parameters needed for showing the view.
       
   226 // (other items were commented in a header).
       
   227 // ---------------------------------------------------------
       
   228 //
       
   229 TSatUiResponse CSatUiView::SetItemsL(
       
   230     HBufC* aTitle,
       
   231     const MDesCArray& aMenuItems,
       
   232     const CArrayFixFlat<TSatAction>* aMenuItemNextActions,
       
   233     const TBool aHelpIsAvailable )
       
   234     {
       
   235 	TFLOGSTRING( "CSatUiView::SetItemsL called" )
       
   236     iKeypadBlocked = EFalse;
       
   237 
       
   238     delete iMenuItemNextActions;
       
   239     iMenuItemNextActions = NULL;
       
   240 
       
   241     if( !iMenuItems )
       
   242 		{
       
   243 		iMenuItems = new ( ELeave ) CDesCArrayFlat( 1 );
       
   244 		}
       
   245 	// This reset is required
       
   246 	iMenuItems->Reset();
       
   247 
       
   248     // Remove NULL characters from title
       
   249     TPtr titleptr = aTitle->Des();
       
   250     TInt nullLocation;
       
   251     while ( ( nullLocation = titleptr.Locate( NULL ) ) >= 0 )
       
   252         {
       
   253         titleptr.Delete( nullLocation, 1 );
       
   254         }
       
   255 
       
   256     iTitle = aTitle;
       
   257 
       
   258     //no memory is allocated to the array buffers here:
       
   259     iMenuItemNextActions = new ( ELeave ) CArrayFixFlat<TSatAction>( 1 );
       
   260 
       
   261     iNItems = aMenuItems.MdcaCount();
       
   262 
       
   263     TBool nextActions( EFalse );
       
   264     
       
   265     TFLOGSTRING2( "CSatUiView::SetItemsL, iNItems: %d", iNItems )
       
   266     if ( iNItems == ( aMenuItemNextActions->Count() ) )
       
   267         {
       
   268         nextActions = ETrue;
       
   269         }
       
   270 
       
   271     if (iNItems > 0)
       
   272         {
       
   273         for ( TInt i(0); i < iNItems; i++ )
       
   274             {
       
   275             TInt itemLength = aMenuItems.MdcaPoint(i).Length();
       
   276             HBufC* tmpBuf = HBufC::NewLC(
       
   277                 aMenuItems.MdcaPoint(i).Length() + KTabLength );
       
   278             TPtr tmpPtr( tmpBuf->Des() );
       
   279 
       
   280             // Item text
       
   281             TPtrC16 text ( aMenuItems.MdcaPoint(i) );
       
   282                         
       
   283             // Needed for NULL check
       
   284             HBufC* correctText = HBufC::NewLC( itemLength );
       
   285             TPtr ptr = correctText->Des();
       
   286 
       
   287             // Check item text through
       
   288             for ( TInt j(0); j < itemLength; j++)
       
   289                 {
       
   290                 TChar ch = text[j];
       
   291                 // Remove NULL characters from item text
       
   292                 if ( ch )
       
   293                     {
       
   294                     ptr.Append( ch ); 
       
   295                     }
       
   296                 }
       
   297 
       
   298             //if view includes icons
       
   299             if( iIconsOn )
       
   300                 {
       
   301                 TFLOGSTRING( "CSatUiView::SetItemsL iIconsOn true" )
       
   302                 //with icons
       
   303                 TBuf<KTabLength> lineTab;
       
   304                 lineTab.Format( KIconTab,i );
       
   305                 tmpPtr.Copy( lineTab );
       
   306                 }
       
   307             else
       
   308                 {
       
   309                 TFLOGSTRING( "CSatUiView::SetItemsL iIconsOn false" )
       
   310                 //without icons
       
   311                 tmpPtr.Copy( KTab );
       
   312                 }
       
   313 
       
   314             if( !iSelfExplanatoryItems )
       
   315                 {
       
   316                 //icons not selfexplanatory show text
       
   317                 tmpPtr.Append( ptr );
       
   318                 }
       
   319 
       
   320             //memory is allocated here:
       
   321             TRAPD( err, iMenuItems->AppendL(tmpPtr) );
       
   322 
       
   323             if ( err )
       
   324                 {
       
   325                 iMenuItems->Reset();
       
   326                 iMenuItemNextActions->Reset();
       
   327                 CleanupStack::PopAndDestroy( correctText );
       
   328                 CleanupStack::PopAndDestroy( tmpBuf ); //tmpBuf, correctText
       
   329                 TFLOGSTRING( "CSatUiView::SetItemsL having error" )
       
   330                 return ESatFailure;
       
   331                 }
       
   332             TFLOGSTRING2( "CSatUiView::SetItemsL tmpPtr=%S", &tmpPtr )
       
   333             CleanupStack::PopAndDestroy( correctText );
       
   334             CleanupStack::PopAndDestroy( tmpBuf ); //tmpBuf, correctText
       
   335             //select options menu command
       
   336             if ( nextActions )
       
   337                 {
       
   338                 TRAP( err, iMenuItemNextActions->AppendL(
       
   339                     aMenuItemNextActions->At( i ) ) );
       
   340 
       
   341                 if ( err )
       
   342                     {
       
   343                     iMenuItems->Reset();
       
   344                     iMenuItemNextActions->Reset();
       
   345     				TFLOGSTRING( "CSatUiView::SetItemsL return ESatFailure" )
       
   346                     return ESatFailure;
       
   347                     }
       
   348                 }
       
   349             }
       
   350         }
       
   351 
       
   352     iHelpIsAvailable = aHelpIsAvailable;
       
   353 
       
   354 	TFLOGSTRING( "CSatUiView::SetItemsL return ESatSuccess" )
       
   355     return ESatSuccess;
       
   356     }
       
   357 
       
   358 // ---------------------------------------------------------
       
   359 // CSatUiView::SetUpMenuL
       
   360 // Checks whether the same view should be refreshed or another
       
   361 // one activated and do it.
       
   362 // (other items were commented in a header).
       
   363 // ---------------------------------------------------------
       
   364 //
       
   365 TSatUiResponse CSatUiView::SetUpMenuL(
       
   366     HBufC* aTitle,
       
   367     const MDesCArray& aMenuItems,
       
   368     const CArrayFixFlat<TSatAction>* aMenuItemNextActions,
       
   369     const TBool aHelpIsAvailable )
       
   370     {
       
   371 	TFLOGSTRING( "CSatUiView::SetUpMenuL called" )
       
   372     iDefaultItem = 0; //could be iSelection
       
   373 
       
   374     CSatUiView* setUpMenuView = STATIC_CAST( CSatUiView*,
       
   375         AppUi()->View( KSetUpMenuViewId ) );
       
   376 
       
   377     TVwsViewId setUpMenuViewId( KUidSATUI, KSetUpMenuViewId );
       
   378     TVwsViewId viewId;
       
   379 
       
   380     AppUi()->GetActiveViewId( viewId );
       
   381 
       
   382     setUpMenuView->SetItemsL( aTitle, aMenuItems, aMenuItemNextActions,
       
   383         aHelpIsAvailable );
       
   384         
       
   385     // Incase empty view is created before the actual SetUpMenu view
       
   386     // CBA resource has to be updated
       
   387     if ( iEmpty )
       
   388         {
       
   389         TFLOGSTRING( "CSatUiView::SetUpMenuL empty view" )
       
   390         iEmpty = EFalse;
       
   391         CEikButtonGroupContainer* cba = Cba();
       
   392         
       
   393         if ( cba )
       
   394             {
       
   395             TFLOGSTRING( "CSatUiView::SetUpMenuL cba" )
       
   396             cba->SetCommandSetL( R_AVKON_SOFTKEYS_OPTIONS_EXIT );
       
   397             cba->DrawDeferred();
       
   398             }
       
   399         }
       
   400 
       
   401     if ( viewId.iAppUid == setUpMenuViewId.iAppUid )
       
   402         {        
       
   403         TFLOGSTRING( "CSatUiView::SetUpMenuL activate SetUpMenuView" )        
       
   404         //Activate SetUpMenuView
       
   405         AppUi()->ActivateLocalViewL( KSetUpMenuViewId );
       
   406 
       
   407         if ( iContainer )
       
   408             {
       
   409             RefreshL();
       
   410             }
       
   411         }
       
   412 	TFLOGSTRING( "CSatUiView::SetUpMenuL return ESatSuccess" )
       
   413     return ESatSuccess;
       
   414     }
       
   415 
       
   416 // ---------------------------------------------------------
       
   417 // CSatUiView::SetAdapter
       
   418 // Sets a pointer to MSatUiAdapter provided by SatCli.
       
   419 // (other items were commented in a header).
       
   420 // ---------------------------------------------------------
       
   421 //
       
   422 void CSatUiView::SetAdapter( MSatUiAdapter* aAdapter )
       
   423     {
       
   424     TFLOGSTRING( "CSatUiView::SetAdapter called" )
       
   425     iAdapter = aAdapter;
       
   426     TFLOGSTRING( "CSatUiView::SetAdapter exit" )
       
   427     }
       
   428 
       
   429 // ---------------------------------------------------------
       
   430 // CSatUiSelectItemView::SelectItemL
       
   431 // Checks whether the same view should be refreshed or another
       
   432 // one activated and do it.
       
   433 // (other items were commented in a header).
       
   434 // ---------------------------------------------------------
       
   435 //
       
   436 TSatUiResponse CSatUiView::SelectItemL(
       
   437     HBufC* aTitle,
       
   438     const MDesCArray& aMenuItems,
       
   439     const CArrayFixFlat<TSatAction>* aMenuItemNextActions,
       
   440     const TInt aDefaultItem, TUint8& aSelection,
       
   441     const TBool aHelpIsAvailable )
       
   442     {
       
   443 	TFLOGSTRING( "CSatUiView::SelectItemL called" )
       
   444     iDefaultItem = aDefaultItem;
       
   445     TFLOGSTRING2( "CSatUiView::SelectItemL in aDefaultItem = %d", aDefaultItem )
       
   446     CSatUiView* selectItemView = STATIC_CAST( CSatUiView*,
       
   447         AppUi()->View( KSelectItemViewId ) );
       
   448 
       
   449     TVwsViewId selectItemViewId( KUidSATUI,KSelectItemViewId );
       
   450     TVwsViewId viewId;
       
   451 
       
   452     AppUi()->GetActiveViewId( viewId );
       
   453 
       
   454     selectItemView->SetItemsL( aTitle, aMenuItems, aMenuItemNextActions,
       
   455         aHelpIsAvailable);
       
   456 
       
   457     if ( viewId.iAppUid == selectItemViewId.iAppUid )
       
   458         {        
       
   459         TFLOGSTRING( "CSatUiView::SelectItemL activate SelectItemview" )        
       
   460         //Activate SelectItemview
       
   461         AppUi()->ActivateLocalViewL( KSelectItemViewId );
       
   462     
       
   463         if ( iContainer )
       
   464             {
       
   465             RefreshL();
       
   466             }
       
   467         }
       
   468 
       
   469     iResponse = ESatSuccess;
       
   470 
       
   471     iNoResponseFromUserAfterDelay = EFalse;
       
   472 
       
   473     //activitymanager for wait user actions
       
   474     CUserActivityManager* activityManager = 
       
   475         CUserActivityManager::NewL( EPriorityNormal );
       
   476 
       
   477     CleanupStack::PushL( activityManager );
       
   478 
       
   479 	User::ResetInactivityTime();
       
   480     activityManager->Start( TTimeIntervalSeconds( KNoResponseFromUserDelay ), 
       
   481         TCallBack( DispatchUserInactive, this ), 0 );
       
   482 
       
   483     if ( !iWait.IsStarted() )
       
   484         {
       
   485         TFLOGSTRING( "CSatUiView::SelectItemL start iWait" )
       
   486         iSatUiAppUi->DispatchTimer( iWait );
       
   487         iWait.Start();
       
   488         }
       
   489 
       
   490     CleanupStack::PopAndDestroy( activityManager ); // activityManager
       
   491 
       
   492     if ( iNoResponseFromUserAfterDelay )
       
   493         {
       
   494         iResponse = ESatNoResponseFromUser;
       
   495         }
       
   496 
       
   497     aSelection= STATIC_CAST(TUint8,iSelection);
       
   498     TFLOGSTRING2( "CSatUiView::SelectItemL out aDefaultItem = %d", aDefaultItem )
       
   499 	TFLOGSTRING2( "CSatUiView::SelectItemL exit, return: %d", iResponse )
       
   500     return iResponse;
       
   501     }
       
   502 
       
   503 // ---------------------------------------------------------
       
   504 // CSatUiView::Id
       
   505 // Returns the id of the view.
       
   506 // (other items were commented in a header).
       
   507 // ---------------------------------------------------------
       
   508 //
       
   509 TUid CSatUiView::Id() const
       
   510     {
       
   511 	TFLOGSTRING( "CSatUiView::Id() called" )
       
   512     //this should be an UID.
       
   513     if ( iSetUpMenu )
       
   514         {
       
   515         TFLOGSTRING( "CSatUiView::Id() setupmenu-exit" )
       
   516         return KSetUpMenuViewId;
       
   517         }
       
   518     else
       
   519         {
       
   520         TFLOGSTRING( "CSatUiView::Id() selectitem-exit" )
       
   521         return KSelectItemViewId;
       
   522         }
       
   523     }
       
   524 
       
   525 // ---------------------------------------------------------
       
   526 // CSatUiView::HandleCommandL
       
   527 // Called by the UI framework when a command has been issued.
       
   528 // A command can originate by pressing a softkey or 
       
   529 // by selection of the options menu item.
       
   530 // (other items were commented in a header).
       
   531 // ---------------------------------------------------------
       
   532 //
       
   533 void CSatUiView::HandleCommandL(
       
   534     TInt aCommandId)
       
   535     {
       
   536 	TFLOGSTRING( "CSatUiView::HandleCommandL called" )
       
   537     if ( iKeypadBlocked || ( EAknSoftkeyEmpty == aCommandId ) )
       
   538         {
       
   539         return;
       
   540         }
       
   541         
       
   542     TFLOGSTRING2( "CSatUiView::HandleCommandL iNItems: %d", iNItems )
       
   543     if ( iNItems > 0 )
       
   544         {
       
   545         iSelection = iContainer->ListBox()->CurrentItemIndex();
       
   546         }
       
   547 
       
   548     TBool taskSwapper ( EFalse );
       
   549     
       
   550     TFLOGSTRING2( "CSatUiView::HandleCommandL aCommandId: %d", aCommandId )
       
   551     switch ( aCommandId )
       
   552         {
       
   553         case ESatUiCmdSelect:
       
   554             {
       
   555             iSatUiAppUi->HelpStatus( EFalse );
       
   556 
       
   557             if ( iSetUpMenu )
       
   558                 {
       
   559                 TFLOGSTRING( "CSatUiView::HandleCommandL setupmenu" )
       
   560                 iSatUiAppUi->ShowWaitNoteL();
       
   561                 iAdapter->MenuSelection( iSelection, EFalse );
       
   562                 }
       
   563             else
       
   564                 {
       
   565                 TFLOGSTRING( "CSatUiView::HandleCommandL others" )
       
   566                 iResponse = ESatSuccess;
       
   567 				iWait.AsyncStop();
       
   568                 }
       
   569             break;
       
   570             }
       
   571 
       
   572         case EAknSoftkeyBack:
       
   573             {
       
   574             iResponse = ESatBackwardModeRequestedByUser;
       
   575             iWait.AsyncStop();
       
   576             break;
       
   577             }
       
   578 
       
   579         case EAknSoftkeyExit:
       
   580         case EEikCmdExit:
       
   581             {
       
   582             AknSelectionService::HandleMarkableListProcessCommandL( 
       
   583                 EAknCmdExit, iContainer->ListBox() );
       
   584             STATIC_CAST( CSatUiViewAppUi*,
       
   585                 AppUi())->HandleCommandL( EEikCmdExit );
       
   586             break;
       
   587             }
       
   588         case ESatUiCmdExit:
       
   589             {
       
   590             TFLOGSTRING( "CSatUiView::HandleCommandL ESatUiCmdExit" )
       
   591             iResponse = ESatSessionTerminatedByUser;
       
   592             if ( iWait.IsStarted() )
       
   593                 {
       
   594                 iWait.AsyncStop();
       
   595                 TFLOGSTRING( "CSatUiView::HandleCommandL iWait stopped" )
       
   596                 }
       
   597             break;
       
   598             }
       
   599         case EAknCmdHelp:
       
   600 			if ( iHelpIsAvailable )
       
   601                 {
       
   602                 TFLOGSTRING( "CSatUiView::HandleCommandL help available" )
       
   603                 iSatUiAppUi->HelpStatus( ETrue );
       
   604 
       
   605                 if ( iSetUpMenu )
       
   606                     {
       
   607                     TFLOGSTRING( "CSatUiView::HandleCommandL setupmenu" )
       
   608                     iAdapter->MenuSelection( iSelection, ETrue );
       
   609                     }
       
   610                 else
       
   611                     {
       
   612                     TFLOGSTRING( "CSatUiView::HandleCommandL others" )
       
   613                     iResponse = EHelpRequestedByUser;
       
   614                     iWait.AsyncStop();
       
   615                     }
       
   616                 }
       
   617             else
       
   618                 {
       
   619                 TFLOGSTRING( "CSatUiView::HandleCommandL help not available" )
       
   620                 // Show Help
       
   621                 STATIC_CAST( CSatUiViewAppUi*, 
       
   622 								AppUi())->HandleCommandL( EAknCmdHelp );
       
   623                 }
       
   624 			break;
       
   625         case EAknCmdTaskSwapper:
       
   626             {
       
   627             taskSwapper = ETrue;
       
   628             break;
       
   629             }
       
   630 		default:
       
   631             break;
       
   632         }
       
   633 
       
   634     if ( ( ( iNItems > 0 )) && ( iContainer->ListBox()->ScrollBarFrame() ) )
       
   635         {
       
   636         iContainer->ListBox()->ScrollBarFrame()->MoveVertThumbTo(
       
   637             iSelection );
       
   638         }
       
   639         
       
   640     if ( ( ( EAknCmdHelp == aCommandId ) && !iHelpIsAvailable ) || taskSwapper )
       
   641         {
       
   642         TFLOGSTRING( "CSatUiView::HandleCommandL iKeypadBlocked false" )
       
   643         iKeypadBlocked = EFalse;
       
   644         }
       
   645     else
       
   646         {
       
   647         TFLOGSTRING( "CSatUiView::HandleCommandL iKeypadBlocked true" )
       
   648         iKeypadBlocked = ETrue;
       
   649         }
       
   650         
       
   651 	TFLOGSTRING( "CSatUiView::HandleCommandL exit" )
       
   652     }
       
   653 
       
   654 // ---------------------------------------------------------
       
   655 // CSatUiView::DynInitMenuPaneL
       
   656 // Update the options menu when opened.
       
   657 // (other items were commented in a header).
       
   658 // ---------------------------------------------------------
       
   659 //
       
   660 void CSatUiView::DynInitMenuPaneL(
       
   661     TInt aResourceId,
       
   662     CEikMenuPane* aMenuPane )
       
   663     {
       
   664     TFLOGSTRING( "CSatUiView::DynInitMenuPaneL called" )
       
   665     if (( aResourceId == R_SATUI_SETUPMENU_OPTIONS_MENU ) ||
       
   666         ( aResourceId == R_SATUI_SELECTITEM_OPTIONS_MENU ) )
       
   667         {
       
   668         
       
   669         FeatureManager::InitializeLibL();      
       
   670           
       
   671         if ( !FeatureManager::FeatureSupported( KFeatureIdHelp ) )
       
   672             {
       
   673             aMenuPane->SetItemDimmed( EAknCmdHelp, ETrue );
       
   674             }
       
   675 
       
   676         FeatureManager::UnInitializeLib();
       
   677 
       
   678         TInt nItems( aMenuPane->NumberOfItemsInPane() );
       
   679 
       
   680         TFLOGSTRING2( "CSatUiView::DynInitMenuPaneL nItems: %d", nItems )
       
   681         if ( nItems > 0 )    //number of items in the options menu
       
   682             {
       
   683             TFLOGSTRING2( "CSatUiView::DynInitMenuPaneL iNItems: %d", \
       
   684                 iNItems )
       
   685             if ( iNItems > 0 )    //number of items in the main pane
       
   686                 {
       
   687                 TInt sItem = iContainer->ListBox()->CurrentItemIndex();
       
   688                 TFLOGSTRING2( "CSatUiView::DynInitMenuPaneL sItem: %d", sItem )
       
   689                 HBufC* menuItemNextActions;
       
   690                 TInt resource( R_QTN_SAT_OPTION_SELECT );
       
   691 
       
   692                 if ( iMenuItems->MdcaCount() ==
       
   693                     iMenuItemNextActions->Count() )
       
   694                     {
       
   695                     switch ( ( *iMenuItemNextActions )[ sItem ] )
       
   696                         {
       
   697                         case ESatSetUpCallAction:
       
   698                             {                            
       
   699                             TFLOGSTRING( "CSatUiView::DynInitMenuPaneL \
       
   700                                 setupcall" )
       
   701                             resource = R_QTN_SAT_OPTION_CALL;
       
   702                             break;
       
   703                             }
       
   704                         case ESatSendSsAction:   // flow through
       
   705                         case ESatSendUssdAction: // flow through
       
   706                         case ESatSendSmAction:
       
   707                             {                            
       
   708                             TFLOGSTRING( "CSatUiView::DynInitMenuPaneL \
       
   709                                 sendss,sendussd or sendsm" )
       
   710                             resource = R_QTN_SAT_OPTION_SEND;
       
   711                             break;
       
   712                             }
       
   713                         case ESatPlayToneAction:
       
   714                             {                            
       
   715                             TFLOGSTRING( "CSatUiView::DynInitMenuPaneL \
       
   716                                 playtone" )
       
   717                             resource = R_QTN_SAT_OPTION_PLAY_TONE;
       
   718                             break;
       
   719                             }
       
   720                         case ESatDisplayTextAction:
       
   721                             {                            
       
   722                             TFLOGSTRING( "CSatUiView::DynInitMenuPaneL \
       
   723                                 displaytext" )
       
   724                             resource = R_QTN_SAT_OPTION_READ;
       
   725                             break;
       
   726                             }
       
   727                         case ESatSetUpMenuAction:
       
   728                         case ESatSelectItemAction:
       
   729                             {                            
       
   730                             TFLOGSTRING( "CSatUiView::DynInitMenuPaneL \
       
   731                                 setupmenu or selectitem" )
       
   732                             resource = R_QTN_SAT_OPTION_OPEN;
       
   733                             break;
       
   734                             }
       
   735                         case ESatLaunchBrowserAction:
       
   736                             {                            
       
   737                             TFLOGSTRING( "CSatUiView::DynInitMenuPaneL \
       
   738                                 launchbrowser" )
       
   739                             resource = R_QTN_SAT_OPTION_GOTO;
       
   740                             break;
       
   741                             }
       
   742                         default:
       
   743                             {                            
       
   744                             TFLOGSTRING( "CSatUiView::DynInitMenuPaneL \
       
   745                                 others" )
       
   746                             resource = R_QTN_SAT_OPTION_SELECT;
       
   747                             break; 
       
   748                             }
       
   749                         }
       
   750                     }
       
   751                 menuItemNextActions = StringLoader::LoadLC(
       
   752                     resource, iCoeEnv );
       
   753                 aMenuPane->SetItemTextL( ESatUiCmdSelect,
       
   754                     *menuItemNextActions );
       
   755                 aMenuPane->SetItemSpecific( ESatUiCmdSelect, ETrue );
       
   756                 // menuItemNextActions    
       
   757                 CleanupStack::PopAndDestroy( menuItemNextActions ); 
       
   758                 }
       
   759             else
       
   760                 {
       
   761                 aMenuPane->SetItemDimmed( ESatUiCmdSelect, ETrue );
       
   762                 aMenuPane->SetItemDimmed( EAknCmdHelp, ETrue );
       
   763                 }
       
   764             }
       
   765         }
       
   766     TFLOGSTRING( "CSatUiView::DynInitMenuPaneL exit" )
       
   767     }
       
   768 
       
   769 // ---------------------------------------------------------
       
   770 // CSatUiView::HandleListBoxEventL
       
   771 // Handles events that occur by selection of the menu item.
       
   772 // (other items were commented in a header).
       
   773 // ---------------------------------------------------------
       
   774 //
       
   775 void CSatUiView::HandleListBoxEventL(
       
   776     CEikListBox* /*aListBox*/,
       
   777     TListBoxEvent aEventType)
       
   778     {
       
   779     TFLOGSTRING( "CSatUiView::HandleListBoxEventL called" )
       
   780 
       
   781     if ( iKeypadBlocked || 
       
   782         ( EEventEnterKeyPressed != aEventType &&
       
   783         EEventItemSingleClicked != aEventType ) )
       
   784         {
       
   785         return;
       
   786         }
       
   787 
       
   788     TFLOGSTRING2( "CSatUiView::HandleListBoxEventL aEventType: %d", \
       
   789         aEventType )
       
   790     switch ( aEventType )
       
   791         {
       
   792         case EEventItemSingleClicked:
       
   793         case EEventEnterKeyPressed:
       
   794 
       
   795             iSatUiAppUi->HelpStatus( EFalse );
       
   796 
       
   797             if ( iNItems > 0 )
       
   798                 {
       
   799                 iSelection = iContainer->ListBox()->CurrentItemIndex();
       
   800                 }
       
   801 
       
   802             if ( iSetUpMenu )
       
   803                 {
       
   804                 TFLOGSTRING( "CSatUiView::HandleListBoxEventL setupmenu" )
       
   805                 iSatUiAppUi->ShowWaitNoteL();
       
   806                 iAdapter->MenuSelection( iSelection, EFalse );
       
   807                 }
       
   808             else
       
   809                 {
       
   810                 TFLOGSTRING( "CSatUiView::HandleListBoxEventL others" )
       
   811                 iResponse = ESatSuccess;
       
   812 
       
   813                 iWait.AsyncStop();
       
   814                 }
       
   815             break;
       
   816 
       
   817         default:
       
   818             break;
       
   819         }
       
   820 
       
   821     iKeypadBlocked = ETrue;
       
   822 
       
   823     TFLOGSTRING( "CSatUiView::HandleListBoxEventL exit" )
       
   824     }
       
   825 
       
   826 // ---------------------------------------------------------
       
   827 // CSatUiView::DoActivateL
       
   828 // Called by the view framework when this view is activated.
       
   829 // (other items were commented in a header).
       
   830 // ---------------------------------------------------------
       
   831 //
       
   832 void CSatUiView::DoActivateL(
       
   833     const TVwsViewId& PrevViewId,
       
   834     TUid /*aCustomMessageId*/,
       
   835     const TDesC8& /*aCustomMessage*/)
       
   836     {
       
   837 	TFLOGSTRING( "CSatUiView::DoActivateL called" )
       
   838 	
       
   839     TVwsViewId viewId;
       
   840     AppUi()->GetActiveViewId( viewId );
       
   841     
       
   842     if ( ( viewId == PrevViewId ) && ( !iIconStateChange ) )
       
   843         {
       
   844         TFLOGSTRING( "CSatUiView::DoActivateL refresh" )
       
   845         //if selectitems and icon state changed 
       
   846         RefreshL();
       
   847         }
       
   848     else
       
   849         {
       
   850         TFLOGSTRING( "CSatUiView::DoActivateL draw" )
       
   851         iContainer = CSatUiViewContainer::NewL( iIconsOn, this );
       
   852 
       
   853         iContainer->SetMopParent( this );
       
   854         iContainer->ListBox()->SetListBoxObserver( this );
       
   855 
       
   856         iModel = STATIC_CAST( CTextListBoxModel*,
       
   857             iContainer->ListBox()->Model() );
       
   858 
       
   859         if ( !iMenuItems )
       
   860             {
       
   861             //no memory is allocated to the array buffers here:
       
   862             iMenuItems = new (ELeave) CDesCArrayFlat(1);
       
   863             iMenuItemNextActions = new (ELeave) CArrayFixFlat<TSatAction>( 1 );
       
   864             }
       
   865 
       
   866         iRect = ClientRect();
       
   867 
       
   868         AppUi()->AddToStackL( iContainer );
       
   869 
       
   870         DrawL();
       
   871         }
       
   872 	TFLOGSTRING( "CSatUiView::DoActivateL exit" )
       
   873     }
       
   874 
       
   875 // ---------------------------------------------------------
       
   876 // CSatUiView::DoDeactivateL
       
   877 // Called by the view framework when this view is deactivated.
       
   878 // (other items were commented in a header).
       
   879 // ---------------------------------------------------------
       
   880 //
       
   881 void CSatUiView::DoDeactivate()
       
   882     {
       
   883 	TFLOGSTRING( "CSatUiView::DoDeactivate() called" )
       
   884     if ( iContainer )
       
   885         {
       
   886         TFLOGSTRING( "CSatUiView::DoActivateL iContainer" )
       
   887         AppUi()->RemoveFromStack( iContainer );
       
   888         delete iContainer;
       
   889         iContainer = NULL;
       
   890         }
       
   891 	TFLOGSTRING( "CSatUiView::DoDeactivate() exit" )
       
   892     }
       
   893 
       
   894 // ---------------------------------------------------------
       
   895 // CSatUiView::MakeListBoxVisible
       
   896 // Hides and makes list box visible if needed.
       
   897 // (other items were commented in a header).
       
   898 // ---------------------------------------------------------
       
   899 //
       
   900 void CSatUiView::MakeListBoxVisible( TBool aVisible )
       
   901     {
       
   902     
       
   903     TFLOGSTRING( "CSatUiView::MakeListBoxVisible() called" )  
       
   904     iListBoxVisible = aVisible;
       
   905     TFLOGSTRING( "CSatUiView::MakeListBoxVisible() exit" )
       
   906     
       
   907     }
       
   908 
       
   909 // ---------------------------------------------------------
       
   910 // CSatUiView::RefreshL
       
   911 // Called by SetUpMenuL and SelectItemL when view is the same but
       
   912 // data is changed.
       
   913 // (other items were commented in a header).
       
   914 // ---------------------------------------------------------
       
   915 //
       
   916 void CSatUiView::RefreshL()
       
   917     {
       
   918 	TFLOGSTRING( "CSatUiView::RefreshL() called" )
       
   919     if ( !iIconStateChange )
       
   920         {
       
   921         TFLOGSTRING( "CSatUiView::RefreshL() iIconStateChange false" )
       
   922         iRect = ClientRect();
       
   923         DrawL();
       
   924         }
       
   925     else
       
   926         {
       
   927         TFLOGSTRING( "CSatUiView::RefreshL() iIconStateChange true" )
       
   928         //deactivate last selectitem view with other icon state
       
   929         DoDeactivate();
       
   930 
       
   931         iContainer = CSatUiViewContainer::NewL( iIconsOn, this );
       
   932 
       
   933         iContainer->SetMopParent( this );
       
   934         iContainer->ListBox()->SetListBoxObserver( this );
       
   935 
       
   936         iModel = STATIC_CAST( CTextListBoxModel*,
       
   937             iContainer->ListBox()->Model() );
       
   938 
       
   939         if ( !iMenuItems )
       
   940             {
       
   941             //no memory is allocated to the array buffers here:
       
   942             iMenuItems = new ( ELeave ) CDesCArrayFlat(1);
       
   943             iMenuItemNextActions = new ( ELeave ) CArrayFixFlat<TSatAction>( 1 );
       
   944             }
       
   945 
       
   946         iRect = ClientRect();
       
   947 
       
   948         AppUi()->AddToStackL( iContainer );
       
   949 
       
   950         DrawL();
       
   951         }
       
   952 	TFLOGSTRING( "CSatUiView::RefreshL() exit" )
       
   953     }
       
   954 
       
   955 // ---------------------------------------------------------
       
   956 // CSatUiView::DrawL
       
   957 // Called by DoActivateL and RefreshL to draw the view.
       
   958 // (other items were commented in a header).
       
   959 // ---------------------------------------------------------
       
   960 //
       
   961 void CSatUiView::DrawL()
       
   962     {
       
   963 	TFLOGSTRING( "CSatUiView::DrawL() called" )
       
   964 	
       
   965     if ( iContainer )
       
   966         {
       
   967         TFLOGSTRING( "CSatUiView::DrawL make ListBox visible" )
       
   968         iContainer->ListBox()->MakeVisible( iListBoxVisible );
       
   969         }
       
   970     	
       
   971     if ( ( iTitle ) && ( StatusPane()->PaneCapabilities( TUid::Uid(
       
   972         EEikStatusPaneUidTitle ) ).IsPresent() )
       
   973         && iListBoxVisible )
       
   974         {
       
   975         TFLOGSTRING( "CSatUiView::DrawL set title pane" )       
       
   976         CAknTitlePane* titlePane = STATIC_CAST( CAknTitlePane*,
       
   977             StatusPane()->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) );
       
   978         titlePane->SetTextL( *iTitle );
       
   979         titlePane->DrawNow();
       
   980         }
       
   981 
       
   982     if( iIconsOn )
       
   983         {
       
   984         TFLOGSTRING( "CSatUiView::DrawL set icons" )
       
   985         //set icons to view
       
   986         CAknIconArray* itemIconsArray = new( ELeave ) CAknIconArray(1);
       
   987         CleanupStack::PushL( itemIconsArray );
       
   988         itemIconsArray->InsertL( 0, &iItemsIconArray->operator[]( 0 ),
       
   989             iItemsIconArray->Count() );
       
   990         iContainer->ListBox()->ItemDrawer()->ColumnData()->
       
   991             SetIconArray( itemIconsArray );
       
   992         CleanupStack::Pop( itemIconsArray );
       
   993         iItemsIconArray->Reset();
       
   994         }
       
   995 
       
   996     iModel->SetItemTextArray( iMenuItems );
       
   997     iModel->SetOwnershipType( ELbmDoesNotOwnItemArray );
       
   998 
       
   999     iContainer->MakeVisible( ETrue );
       
  1000     iContainer->SetRect( iRect );
       
  1001     iContainer->ActivateL();
       
  1002     
       
  1003     if ( iSetUpMenu )
       
  1004 	    {
       
  1005 	    TFLOGSTRING( "CSatUiView::DrawL() SetupMenu" )
       
  1006 	    UpdateMskL( 0, ETrue ); // SetupMenu starts at beginning
       
  1007 	    }
       
  1008 	else
       
  1009 	    {
       
  1010 	    TFLOGSTRING( "CSatUiView::DrawL() others" )
       
  1011 	    UpdateMskL( iDefaultItem, ETrue ); // SelectItem may have default item
       
  1012 	    }
       
  1013     iContainer->ListBox()->SetCurrentItemIndex( iDefaultItem );
       
  1014     iContainer->ListBox()->DrawNow();
       
  1015     TFLOGSTRING2( "CSatUiView::DrawL() iDefaultItem=%d", iDefaultItem )
       
  1016 	TFLOGSTRING( "CSatUiView::DrawL() exit" )
       
  1017     }
       
  1018 
       
  1019 // ---------------------------------------------------------
       
  1020 // CSatUiView::DispatchUserInactive
       
  1021 // Called when user has been inactive for a pre-defined time period
       
  1022 // (other items were commented in a header).
       
  1023 // ---------------------------------------------------------
       
  1024 //
       
  1025 TInt CSatUiView::DispatchUserInactive( TAny* aPtr )
       
  1026     {
       
  1027     TFLOGSTRING( "CSatUiView::DispatchUserInactive called-exit" )
       
  1028     if ( ( ( CSatUiView* )aPtr )->iWait.IsStarted() )
       
  1029         {
       
  1030         ( ( CSatUiView* )aPtr )->iNoResponseFromUserAfterDelay = ETrue;
       
  1031         ( ( CSatUiView* )aPtr )->iWait.AsyncStop();
       
  1032         }
       
  1033     return ( EFalse );
       
  1034     }
       
  1035     
       
  1036 
       
  1037 // ---------------------------------------------------------
       
  1038 // CSatUiView::UpdateMskL
       
  1039 // Updates the middle soft key
       
  1040 // (other items were commented in a header).
       
  1041 // ---------------------------------------------------------
       
  1042 //
       
  1043 void CSatUiView::UpdateMskL( TInt aIndex, TBool aNew )
       
  1044     {
       
  1045     TFLOGSTRING( "CSatUiView::UpdateMskL() enter" )
       
  1046     CEikButtonGroupContainer* cba = Cba();
       
  1047 
       
  1048     if ( cba && ( aNew  || ( iMenuItems->MdcaCount() ==
       
  1049         iMenuItemNextActions->Count() ) ) )
       
  1050         {
       
  1051         TInt resource ( R_QTN_MSK_SELECT  );
       
  1052         TInt commandId ( ESatUiCmdSelect );
       
  1053         
       
  1054         if ( iEmpty )
       
  1055             {
       
  1056             TFLOGSTRING( "CSatUiView::UpdateMskL iEmpty" )
       
  1057             resource = R_TEXT_SOFTKEY_EMPTY;
       
  1058             commandId = EAknSoftkeyEmpty;
       
  1059             } 
       
  1060         else if ( iMenuItems->MdcaCount() ==
       
  1061             iMenuItemNextActions->Count() && iNItems )
       
  1062             {
       
  1063             switch ( ( *iMenuItemNextActions )[ aIndex ] )
       
  1064                 {
       
  1065                 case ESatSetUpCallAction:
       
  1066                     {                    
       
  1067                     TFLOGSTRING( "CSatUiView::UpdateMskL \
       
  1068                                 setupcall" )
       
  1069                     resource = R_QTN_MSK_CALL_SAT;
       
  1070                     break;
       
  1071                     }
       
  1072                 case ESatSendSsAction:   // flow through
       
  1073                 case ESatSendUssdAction: // flow through
       
  1074                 case ESatSendSmAction:
       
  1075                     {                    
       
  1076                     TFLOGSTRING( "CSatUiView::UpdateMskL \
       
  1077                                 sendss,sendussd or sendsm" )
       
  1078                     resource = R_QTN_MSK_SEND;
       
  1079                     break;
       
  1080                     }                        
       
  1081                 case ESatPlayToneAction:
       
  1082                     {                    
       
  1083                     TFLOGSTRING( "CSatUiView::UpdateMskL \
       
  1084                                 playtone" )
       
  1085                     resource = R_QTN_MSK_PLAY;
       
  1086                     break;
       
  1087                     }
       
  1088                 case ESatDisplayTextAction:
       
  1089                     {                    
       
  1090                     TFLOGSTRING( "CSatUiView::UpdateMskL \
       
  1091                                 displaytext" )
       
  1092                     resource = R_QTN_MSK_READ_SAT;
       
  1093                     break;
       
  1094                     }
       
  1095                 case ESatSetUpMenuAction:
       
  1096                 case ESatSelectItemAction:
       
  1097                     {                    
       
  1098                     TFLOGSTRING( "CSatUiView::UpdateMskL \
       
  1099                                 setupmenu or selectitem" )
       
  1100                     resource = R_QTN_MSK_OPEN;
       
  1101                     break;
       
  1102                     }
       
  1103                 case ESatLaunchBrowserAction:
       
  1104                     {                    
       
  1105                     TFLOGSTRING( "CSatUiView::UpdateMskL \
       
  1106                                 launchbrowser" )
       
  1107                     resource = R_QTN_MSK_GOTO_SAT;
       
  1108                     break;
       
  1109                     }
       
  1110                 default:
       
  1111                     {                    
       
  1112                     TFLOGSTRING( "CSatUiView::UpdateMskL \
       
  1113                                 others" )
       
  1114                     resource = R_QTN_MSK_SELECT ;
       
  1115                     break; 
       
  1116                     }
       
  1117                 }
       
  1118             TFLOGSTRING2( "CSatUiView::UpdateMskL:aIndex=%d", aIndex )
       
  1119             }
       
  1120         else // Basic aNew
       
  1121             {
       
  1122             // No need to to do anything here, default values are used
       
  1123             }
       
  1124             
       
  1125         HBufC* msk = StringLoader::LoadLC( resource, iCoeEnv );
       
  1126         cba->SetCommandL( CEikButtonGroupContainer::EMiddleSoftkeyPosition,
       
  1127             commandId, *msk );
       
  1128         cba->DrawDeferred();
       
  1129         CleanupStack::PopAndDestroy( msk );
       
  1130         }
       
  1131     
       
  1132     TFLOGSTRING( "CSatUiView::UpdateMskL() exit" )
       
  1133     }
       
  1134