cellular/psetnotesui/src/psuinotemaster.cpp
changeset 51 12bc758d6a02
parent 48 78df25012fda
child 53 25b8d29b7c59
equal deleted inserted replaced
48:78df25012fda 51:12bc758d6a02
     1 /*
       
     2 * Copyright (c) 2002-2007 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:  Note master class shows the actual notes.
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 // INCLUDE FILES
       
    20 #include <psui.rsg> 
       
    21 #include <aknlists.h>               
       
    22 #include <psuicontainer.h> 
       
    23 #include <StringLoader.h> 
       
    24 #include <exterror.h>               
       
    25 #include <gsmerror.h>
       
    26 #include <mmlist.h>
       
    27 #include <featmgr.h>
       
    28 #include <NumberGrouping.h> 
       
    29 #include <cservicerequest.h>
       
    30 #include <e32property.h>
       
    31 #include <BTSapDomainPSKeys.h> 
       
    32 
       
    33 #include "psuiinternalconstants.h" 
       
    34 #include "psuinotemaster.h" 
       
    35 #include "psuireqobserver.h" 
       
    36 #include "psuiquerydialog.h" 
       
    37  
       
    38 #include <centralrepository.h>
       
    39 #include <NumberGroupingCRKeys.h> 
       
    40 // MACROS
       
    41 
       
    42 #ifdef _DEBUG
       
    43 
       
    44 #define RDEBUG(X)             RDebug::Print(X);
       
    45 #define RDEBUG_INT(X,Y)       RDebug::Print(X,Y);
       
    46 #else           
       
    47 #define RDEBUG(X)
       
    48 #define RDEBUG_INT(X,Y)
       
    49 #endif
       
    50 
       
    51 //  MEMBER FUNCTIONS
       
    52 
       
    53 // ---------------------------------------------------------------------------
       
    54 // Symbian OS two-phased constructor.
       
    55 // ---------------------------------------------------------------------------
       
    56 CPsuiNoteMaster* CPsuiNoteMaster::NewL()
       
    57     {  
       
    58     CPsuiNoteMaster* self = new( ELeave ) CPsuiNoteMaster;
       
    59     CleanupStack::PushL( self );
       
    60     // Sets up TLS, must be done before FeatureManager is used.
       
    61     self->ConstructL();
       
    62     CleanupStack::Pop( self );
       
    63     return self;
       
    64     }
       
    65 
       
    66 // -----------------------------------------------------------------------------
       
    67 // CPsuiNoteMaster::ConstructL
       
    68 // Symbian 2nd phase constructor can leave.
       
    69 // -----------------------------------------------------------------------------
       
    70 //
       
    71 void CPsuiNoteMaster::ConstructL()
       
    72     {
       
    73     iReqObserver = CPsuiReqObserver::NewL( *this );
       
    74     FeatureManager::InitializeLibL(); 
       
    75     
       
    76     iServiceRequest = CServiceRequest::NewL( *iReqObserver );
       
    77  
       
    78     }
       
    79 
       
    80 
       
    81 // ---------------------------------------------------------------------------
       
    82 // Destructor.
       
    83 // ---------------------------------------------------------------------------
       
    84 CPsuiNoteMaster::~CPsuiNoteMaster()
       
    85     {
       
    86     //Remove FeatureManager
       
    87     FeatureManager::UnInitializeLib();
       
    88 
       
    89     delete iServiceRequest;
       
    90     
       
    91     delete iReqObserver;
       
    92     
       
    93     if ( iQuery )
       
    94         {
       
    95         delete iQuery;
       
    96         iQuery = NULL;
       
    97         }
       
    98     
       
    99     if ( iPopupList )
       
   100         {
       
   101         iPopupList->CancelPopup();
       
   102         iPopupList = NULL;
       
   103         }
       
   104     
       
   105     iBarringEngine = NULL;
       
   106     iDivertEngine = NULL;
       
   107     iWaitingEngine = NULL;
       
   108     iCliEngine = NULL;
       
   109     
       
   110     }
       
   111 
       
   112 // ---------------------------------------------------------------------------
       
   113 // CPsuiNoteMaster::SetEngineContacts()
       
   114 // ---------------------------------------------------------------------------
       
   115 void CPsuiNoteMaster::SetEngineContacts( MPsetCallWaiting* aWaitingEngine,
       
   116                                         MPsetCallBarring* aBarringEngine, 
       
   117                                         MPsetCallDiverting* aDivertEngine, 
       
   118                                         MPsetCli* aCliEngine )
       
   119     {
       
   120     iWaitingEngine = aWaitingEngine;
       
   121     iBarringEngine = aBarringEngine;
       
   122     iDivertEngine = aDivertEngine;
       
   123     iCliEngine = aCliEngine;
       
   124     }
       
   125 
       
   126 // ---------------------------------------------------------------------------
       
   127 // CPsuiNoteMaster::ShowNoteL()
       
   128 // ---------------------------------------------------------------------------
       
   129 void CPsuiNoteMaster::ShowNoteL( TPsuiNoteTypes aType, TInt aResourceID )
       
   130     {
       
   131     if ( aResourceID < 0 )
       
   132         {
       
   133         if ( aType  == EPsuiWaitingNote )
       
   134             {
       
   135             iRequesting = ETrue;
       
   136             iServiceRequest->StartL( KNullDesC );
       
   137             }
       
   138         return; 
       
   139         }
       
   140 
       
   141     HBufC* string = StringLoader::LoadLC( aResourceID );    
       
   142     
       
   143     switch ( aType )
       
   144         {
       
   145         case EPsuiConfirmationNote:
       
   146             {
       
   147             iServiceRequest->ShowCompletionNoteL( 
       
   148             ETrue,                                        // aShowNote
       
   149             KErrNone,                                     // aError
       
   150             CServiceRequest::ESerqGlobalConfirmationNote, // aNoteType 
       
   151             string->Des() );                              // aText 
       
   152             break;
       
   153             }
       
   154         case EPsuiErrorNote:
       
   155             {
       
   156             CServiceRequest::TSerqNoteType errorType = CServiceRequest::ESerqGlobalErrorNote;
       
   157             if ( aResourceID == R_NO_SERVICE ||
       
   158                 aResourceID == R_NOT_ALLOWED )
       
   159                 {
       
   160                 errorType = CServiceRequest::ESerqGlobalInformationNote;
       
   161                 }
       
   162             iServiceRequest->ShowCompletionNoteL( 
       
   163             ETrue, 
       
   164             KErrNone, 
       
   165             errorType, 
       
   166             string->Des() );
       
   167             break;
       
   168             }
       
   169         case EPsuiInformationNote:
       
   170             {
       
   171             iServiceRequest->ShowCompletionNoteL( 
       
   172             ETrue, 
       
   173             KErrNone, 
       
   174             CServiceRequest::ESerqGlobalInformationNote, 
       
   175             string->Des() );
       
   176             }
       
   177         default:
       
   178             break;
       
   179         }
       
   180     CleanupStack::PopAndDestroy( string );
       
   181     string = NULL;
       
   182     }
       
   183 
       
   184 // ---------------------------------------------------------------------------
       
   185 // CPsuiNoteMaster::KillStaticNoteL()
       
   186 // ---------------------------------------------------------------------------
       
   187 void CPsuiNoteMaster::KillStaticNoteL()
       
   188     {
       
   189     if ( iRequesting )
       
   190         {
       
   191         delete iServiceRequest;
       
   192         iServiceRequest = NULL;
       
   193         iServiceRequest = CServiceRequest::NewL( *iReqObserver );
       
   194         iRequesting =EFalse;
       
   195         }
       
   196      
       
   197     }
       
   198 
       
   199 // ---------------------------------------------------------------------------
       
   200 // CPsuiNoteMaster::KillRequestL()
       
   201 // ---------------------------------------------------------------------------
       
   202 void CPsuiNoteMaster::KillRequestL()
       
   203     {
       
   204     if ( iWaitingEngine )
       
   205         {
       
   206         iWaitingEngine->CancelProcess();    
       
   207         }
       
   208     else if ( iBarringEngine )
       
   209         {
       
   210         iBarringEngine->CancelCurrentRequest();
       
   211         }
       
   212     else if ( iDivertEngine )
       
   213         {
       
   214         iDivertEngine->CancelCurrentRequest();
       
   215         }
       
   216     else if ( iCliEngine )
       
   217         {
       
   218         ShowCancelRequestNoteL();
       
   219         iCliEngine->CancelAll();
       
   220         }
       
   221     }
       
   222 // ---------------------------------------------------------------------------
       
   223 // CPsuiNoteMaster::ShowBscListL()
       
   224 // ---------------------------------------------------------------------------
       
   225 void CPsuiNoteMaster::ShowBscListL( TInt aResourceHeading, 
       
   226                                    TUint8 aBsc[KPSUIMaxBscNumber] )
       
   227     {
       
   228     if ( !iWaitingEngine && 
       
   229          !iBarringEngine && 
       
   230          !iDivertEngine  &&
       
   231          !iCliEngine ) 
       
   232         {
       
   233         return;
       
   234         }
       
   235 
       
   236     if ( aResourceHeading < 0 )
       
   237         {
       
   238         User::Leave( KErrArgument );
       
   239         }
       
   240     
       
   241     CAknSinglePopupMenuStyleListBox* list = 
       
   242         new ( ELeave ) CAknSinglePopupMenuStyleListBox;
       
   243     CleanupStack::PushL( list );
       
   244     
       
   245     CreateListBoxL( EPsuiNoCF, list );
       
   246     
       
   247     CDesCArray* items = new ( ELeave ) CDesCArrayFlat( KPSUIMaxBscNumber );
       
   248     CleanupStack::PushL( items );
       
   249     
       
   250     CTextListBoxModel* model = list->Model();
       
   251     if ( !model )
       
   252         {
       
   253         User::Leave( KErrGeneral );
       
   254         }
       
   255     model->SetItemTextArray( items );
       
   256     model->SetOwnershipType( ELbmOwnsItemArray );
       
   257     CleanupStack::Pop( items );   // listbox model now owns this
       
   258     
       
   259     SetTitleL( aResourceHeading );
       
   260     
       
   261     TUint8 numberOfBsc = 0;
       
   262     HBufC* string = NULL;
       
   263     while ( ( aBsc[numberOfBsc] != KPSUINoBscGroup ) &&
       
   264             ( numberOfBsc < KPSUIMaxBscNumber ) )
       
   265         {        
       
   266         TUint8 bscCode = aBsc[numberOfBsc];        
       
   267         string = SetBsGroupLC( bscCode );
       
   268         
       
   269         if ( string )
       
   270             {
       
   271             items->AppendL( *string );
       
   272             CleanupStack::PopAndDestroy( string );
       
   273             }
       
   274         numberOfBsc++;
       
   275         }        
       
   276     
       
   277     iPopupList->ExecuteLD();
       
   278     iPopupList = NULL;
       
   279     CleanupStack::PopAndDestroy( list );
       
   280     }    
       
   281 
       
   282 // ---------------------------------------------------------------------------
       
   283 // Shows additional divert information.
       
   284 // ---------------------------------------------------------------------------
       
   285 /*****************************************************
       
   286 *    Series 60 Customer / ETel
       
   287 *    Series 60  ETel API
       
   288 *****************************************************/ 
       
   289 void CPsuiNoteMaster::ShowCfInfoL( TCFType& aCFType,
       
   290                                   const RMobilePhone::TMobilePhoneCFInfoEntryV1& aSetting )
       
   291     {
       
   292     if ( aCFType == EPsuiNoCF )
       
   293         {
       
   294         User::Leave( KErrArgument );
       
   295         }
       
   296     
       
   297     // Get base text and set phone number into it.
       
   298     // Note that two characters are reserved for LRM markers.
       
   299     TBuf<KPSUIDetailsText+2> string;    
       
   300     StringLoader::Load( string, R_TO_NUMBER );
       
   301     string.Append( KPSUIListDivider ); 
       
   302 
       
   303     TInt pngErr( KErrNone );
       
   304     TInt pngSupported( 0 );
       
   305     CRepository* repository = CRepository::NewL( KCRUidNumberGrouping );
       
   306     pngErr = repository->Get( KNumberGrouping, pngSupported );
       
   307     delete repository;
       
   308         
       
   309     if ( KErrNone == pngErr && pngSupported != 0 )
       
   310         {
       
   311         CPNGNumberGrouping* numberGrouping = 
       
   312             CPNGNumberGrouping::NewL( KPSUIMaxPSUIItemLength );
       
   313         CleanupStack::PushL( numberGrouping );
       
   314 
       
   315         //Check that number fits (with or w/o number formatting).
       
   316         if ( (aSetting.iNumber.iTelNumber.Length() + 2) <= numberGrouping->MaxDisplayLength() )
       
   317             {
       
   318             numberGrouping->Set( aSetting.iNumber.iTelNumber );
       
   319             AppendCFNumber( string, numberGrouping->FormattedNumber() );
       
   320             }
       
   321         else
       
   322             {
       
   323             AppendCFNumber( string, aSetting.iNumber.iTelNumber );
       
   324             }
       
   325         CleanupStack::PopAndDestroy( numberGrouping );
       
   326         }
       
   327     else
       
   328         {
       
   329         AppendCFNumber( string, aSetting.iNumber.iTelNumber );
       
   330         }
       
   331 
       
   332     //AVKON utils check whether or not conversion is needed
       
   333     AknTextUtils::DisplayTextLanguageSpecificNumberConversion( string );    
       
   334     string.Append( KPSUIListDivider );
       
   335     
       
   336     // Add delay time.
       
   337     if ( aCFType == EPsuiCFNry )  
       
   338         {
       
   339         //Header + divider.
       
   340         HBufC* delayTime = StringLoader::LoadLC( R_DELAY_TIME );
       
   341         string.Append( *delayTime );
       
   342         CleanupStack::PopAndDestroy( delayTime );
       
   343         string.Append( KPSUIListDivider );
       
   344         
       
   345         TBuf<KPSUIMaxPSUIItemLength> writeBuffer;
       
   346         HBufC* readBuffer = StringLoader::LoadLC( R_TEXT_SS_DETAIL_DELAY_SEC );
       
   347         // format time, -1 means that there is no index in the key string.
       
   348         StringLoader::Format( writeBuffer, *readBuffer, -1, aSetting.iTimeout );
       
   349         CleanupStack::PopAndDestroy( readBuffer );
       
   350         
       
   351         string.Append( writeBuffer );
       
   352         }
       
   353     
       
   354     iQuery = CPsuiQueryDialog::NewL( CAknQueryDialog::ENoTone );
       
   355     TInt command( iQuery->ExecuteLD( R_CONFIRMATION_QUERY, string ) );
       
   356     if( command == EKeyNo )
       
   357         {
       
   358         // End -key was pressed so don't relaunch previous query
       
   359         aCFType = EPsuiNoCF;            
       
   360         }
       
   361     iQuery = NULL;
       
   362     }
       
   363 
       
   364 // ---------------------------------------------------------------------------
       
   365 // Shows request cancelled note.
       
   366 // ---------------------------------------------------------------------------
       
   367 void CPsuiNoteMaster::ShowCancelRequestNoteL()
       
   368     {
       
   369     if ( iRequesting )
       
   370         {
       
   371         ShowNoteL( EPsuiInformationNote, R_REQUEST_CANCELLED_NOTE );    
       
   372         }
       
   373     }
       
   374 
       
   375 // ---------------------------------------------------------------------------
       
   376 // Returns resource ID for the most common error codes.
       
   377 // ---------------------------------------------------------------------------
       
   378 //
       
   379 TInt CPsuiNoteMaster::SetErrorNoteResourceID ( const TInt aErrorCode )
       
   380     {
       
   381     RDEBUG_INT( _L("PSUI.SetErrorNoteResourceID - code %d: "), aErrorCode )
       
   382     TInt resourceID = KErrNone;    
       
   383     switch ( aErrorCode  )
       
   384         {
       
   385         case KErrGsmSSSubscriptionViolation:
       
   386             resourceID = R_CONTACT_SERVICE_NOTE;
       
   387             break;            
       
   388         case KErrGsmSSUnknownSubscriber:
       
   389         case KErrGsmSSAbsentSubscriber:        
       
   390         case KErrGsmSSIllegalOperation:
       
   391         case KErrGsmSSIllegalSubscriber:
       
   392         case KErrGsmSSIllegalEquipment:
       
   393         case KErrGsmSSCallBarred:
       
   394         case KErrGsmSSDataMissing:
       
   395             resourceID = R_NOT_ALLOWED;
       
   396             break;
       
   397         case KErrGsmSSIncompatibility:
       
   398             resourceID = R_SERVICES_IN_CONFLICT;
       
   399             break;
       
   400         case KErrGsmSSSystemFailure:
       
   401             resourceID = R_RESULT_UNKNOWN;
       
   402             break;        
       
   403         case KErrGsmSSUnexpectedDataValue:
       
   404         case KErrGsmSSResourcesUnavailable:
       
   405             resourceID = R_REQUEST_REJECTED;
       
   406             break;
       
   407         case KErrGsmSSNegativePasswordCheck:
       
   408         case KErrGsmSSPasswordRegistrationFailure:
       
   409             resourceID = R_PASSWORD_ERROR_NOTE;
       
   410             break;
       
   411         case KErrGsmSSPasswordAttemptsViolation:
       
   412             resourceID = R_PASSWORD_BLOCKED_NOTE;
       
   413             break;
       
   414         case KErrGsmSMSNoNetworkService:
       
   415         case KErrGsmNoService:
       
   416             resourceID = R_NO_SERVICE;
       
   417             break;
       
   418         case KErrSsActivationDataLost: 
       
   419             resourceID = R_NET_INFO_LOST;
       
   420             break;
       
   421         case KErrGsmOfflineOpNotAllowed:
       
   422             if ( FeatureManager::FeatureSupported( KFeatureIdOfflineMode ) )
       
   423                 {
       
   424                 TInt value = EBTSapNotConnected;
       
   425                 RProperty::Get(
       
   426                     KPSUidBluetoothSapConnectionState,
       
   427                     KBTSapConnectionState,
       
   428                     value );
       
   429                 if ( value == EBTSapConnected )
       
   430                     {
       
   431                     resourceID = R_OFFLINE_MODE_SAP;    
       
   432                     }
       
   433                 else
       
   434                     {
       
   435                     resourceID = R_OFFLINE_MODE;    
       
   436                     }     
       
   437                  }
       
   438             break;            
       
   439         default:
       
   440             resourceID = R_NOT_DONE_NOTE;
       
   441             break; 
       
   442         }
       
   443     return resourceID;
       
   444     }
       
   445 
       
   446 // ---------------------------------------------------------------------------
       
   447 // CPsuiNoteMaster::ShowBscCFListL()
       
   448 // ---------------------------------------------------------------------------
       
   449 /*****************************************************
       
   450 *    Series 60 Customer / ETel
       
   451 *    Series 60  ETel API
       
   452 *****************************************************/ 
       
   453 TCFType CPsuiNoteMaster::ShowBscCFListL( TInt aResourceHeading, 
       
   454                                         CMobilePhoneCFList& aList, 
       
   455                                         TCFType aCFType,
       
   456                                         TInt& aIndex )
       
   457     {
       
   458     //note master was deleted - do not create another bsc-list
       
   459     if ( !iWaitingEngine && 
       
   460          !iBarringEngine && 
       
   461          !iDivertEngine  &&
       
   462          !iCliEngine ) 
       
   463         {
       
   464         return EPsuiNoCF;
       
   465         }
       
   466 
       
   467     if ( aResourceHeading < 0 )
       
   468         {
       
   469         User::Leave( KErrArgument );
       
   470         }
       
   471     
       
   472     CAknSinglePopupMenuStyleListBox* list = 
       
   473         new ( ELeave ) CAknSinglePopupMenuStyleListBox;
       
   474     CleanupStack::PushL( list );
       
   475     
       
   476     CreateListBoxL( aCFType, list );
       
   477     
       
   478     CDesCArray* items = new ( ELeave ) CDesCArrayFlat( KPSUIMaxBscNumber );
       
   479     CleanupStack::PushL( items );
       
   480     
       
   481     CTextListBoxModel* model = list->Model();
       
   482     if ( !model )
       
   483         {
       
   484         User::Leave( KErrGeneral );
       
   485         }
       
   486     model->SetItemTextArray( items );
       
   487     model->SetOwnershipType( ELbmOwnsItemArray );
       
   488     CleanupStack::Pop( items );
       
   489     
       
   490     SetTitleL( aResourceHeading );
       
   491     
       
   492     TInt entries = aList.Enumerate();
       
   493     TInt numberOfBscs = 0;
       
   494     RMobilePhone::TMobilePhoneCFInfoEntryV1 cfInfo;
       
   495     HBufC* string = NULL;
       
   496     while ( entries > numberOfBscs )
       
   497         {
       
   498         cfInfo = aList.GetEntryL( numberOfBscs );
       
   499         string = SetBsGroupLC( 
       
   500             static_cast <TUint8> ( ChangeToGSM( cfInfo.iServiceGroup ) ) );
       
   501         // if no string was retrieved, ignore it.
       
   502         if ( string )
       
   503             {
       
   504             items->AppendL( *string );
       
   505             CleanupStack::PopAndDestroy( string );            
       
   506             }
       
   507         numberOfBscs++;
       
   508         }
       
   509     list->SetCurrentItemIndex( aIndex );
       
   510     
       
   511     TInt popupRet = iPopupList->ExecuteLD();
       
   512     aIndex = list->CurrentItemIndex();
       
   513     iPopupList = NULL;
       
   514     CleanupStack::PopAndDestroy( list );
       
   515     
       
   516     if ( popupRet ) // if number or details softkey pressed
       
   517         {
       
   518         return aCFType;
       
   519         }    
       
   520     return EPsuiNoCF;
       
   521     }    
       
   522 
       
   523 // ---------------------------------------------------------------------------
       
   524 // CPsuiNoteMaster::CreateListBoxL
       
   525 // ---------------------------------------------------------------------------
       
   526 void CPsuiNoteMaster::CreateListBoxL( TCFType aCFType, 
       
   527                                      CAknSinglePopupMenuStyleListBox* aList )
       
   528     {
       
   529     TInt resourceId = 0;
       
   530     if ( aCFType == EPsuiNoCF )
       
   531         {
       
   532         resourceId = R_AVKON_SOFTKEYS_BACK;
       
   533         }
       
   534     else if ( aCFType == EPsuiCFOther )
       
   535         {    
       
   536         resourceId = R_PSUI_SOFTKEYS_NUMBER_BACK;
       
   537         }
       
   538     else
       
   539         {
       
   540         resourceId = R_PSUI_SOFTKEYS_DETAILS_BACK;
       
   541         }
       
   542     
       
   543     // Create popup list
       
   544     iPopupList = CAknPopupList::NewL( aList, resourceId );
       
   545     aList->ConstructL( iPopupList, CEikListBox::ELeftDownInViewRect );
       
   546     aList->CreateScrollBarFrameL( ETrue );
       
   547     aList->ScrollBarFrame()->SetScrollBarVisibilityL( 
       
   548         CEikScrollBarFrame::EOff, 
       
   549         CEikScrollBarFrame::EAuto );
       
   550     }
       
   551 
       
   552 // ---------------------------------------------------------------------------
       
   553 // CPsuiNoteMaster::SetTitleL
       
   554 // ---------------------------------------------------------------------------
       
   555 void CPsuiNoteMaster::SetTitleL( const TInt& aResourceHeading )
       
   556     {
       
   557     TRAPD ( ignore, 
       
   558         HBufC* string = StringLoader::LoadLC( aResourceHeading );
       
   559         iPopupList->SetTitleL( *string );
       
   560         CleanupStack::PopAndDestroy( string );
       
   561         );
       
   562     if ( ignore )
       
   563         {
       
   564         HBufC16* emptyHeader = NULL;
       
   565         iPopupList->SetTitleL( emptyHeader->Des() );
       
   566         delete emptyHeader;
       
   567         }    
       
   568     }
       
   569 // ---------------------------------------------------------------------------
       
   570 // CPsuiNoteMaster::AppendCFNumber
       
   571 // ---------------------------------------------------------------------------
       
   572 void CPsuiNoteMaster::AppendCFNumber( TDes& aString, const TDesC& aNumber )
       
   573     {
       
   574         aString.Append( KLRMarker );
       
   575         aString.Append( aNumber );
       
   576         aString.Append( KLRMarker );
       
   577     }
       
   578 // ---------------------------------------------------------------------------
       
   579 // CPsuiNoteMaster::SetBsGroupLC
       
   580 // ---------------------------------------------------------------------------
       
   581 HBufC* CPsuiNoteMaster::SetBsGroupLC( TUint8 aBscCode )
       
   582     {
       
   583     HBufC* string = NULL;
       
   584     switch( aBscCode )
       
   585         {
       
   586         case 0:
       
   587             string = StringLoader::LoadLC( R_BS_ALPHA_0 );
       
   588             break;
       
   589         case 10:
       
   590             string = StringLoader::LoadLC( R_BS_ALPHA_10 );
       
   591             break;
       
   592         case 11:
       
   593             string = StringLoader::LoadLC( R_BS_ALPHA_11 );
       
   594             break;
       
   595         case 12:
       
   596             string = StringLoader::LoadLC( R_BS_ALPHA_12 );
       
   597             break;  
       
   598         case 13:
       
   599             string = StringLoader::LoadLC( R_BS_ALPHA_13 );
       
   600             break;
       
   601         case 16:
       
   602             string = StringLoader::LoadLC( R_BS_ALPHA_16 );
       
   603             break;
       
   604         case 19:
       
   605             string = StringLoader::LoadLC( R_BS_ALPHA_19 );
       
   606             break;
       
   607         case 20:
       
   608             if ( FeatureManager::FeatureSupported( KFeatureIdCsVideoTelephony ) )
       
   609                 {
       
   610                 string = StringLoader::LoadLC( R_BS_ALPHA_20_VT );
       
   611                 }
       
   612             else
       
   613                 {
       
   614                 string = StringLoader::LoadLC( R_BS_ALPHA_20 );
       
   615                 }
       
   616             break;
       
   617         case 21:
       
   618             string = StringLoader::LoadLC( R_BS_ALPHA_21 );
       
   619             break;
       
   620         case 22:
       
   621             string = StringLoader::LoadLC( R_BS_ALPHA_22 );
       
   622             break;
       
   623         case 24:
       
   624             string = StringLoader::LoadLC( R_BS_ALPHA_24 );
       
   625             break;
       
   626         case 25:
       
   627             string = StringLoader::LoadLC( R_BS_ALPHA_25 );
       
   628             break;
       
   629         case 26:
       
   630             string = StringLoader::LoadLC( R_BS_ALPHA_26 );
       
   631             break;
       
   632         case 27:
       
   633             string = StringLoader::LoadLC( R_BS_ALPHA_27 );
       
   634             break;
       
   635         case 30:
       
   636             string = StringLoader::LoadLC( R_BS_ALPHA_30 );
       
   637             break;
       
   638         case 89:
       
   639             string = StringLoader::LoadLC( R_BS_ALPHA_89 );
       
   640             break;
       
   641         default:
       
   642             // all the services that are not displayed to ui
       
   643             break;
       
   644         }
       
   645     return string;
       
   646     }
       
   647 
       
   648 // ---------------------------------------------------------
       
   649 // CPsuiNoteMaster::ChangeToGSM
       
   650 //
       
   651 // ---------------------------------------------------------
       
   652 TBasicServiceGroups CPsuiNoteMaster::ChangeToGSM( const TInt& aBsc )
       
   653     {
       
   654     switch ( aBsc )
       
   655         {               
       
   656         case RMobilePhone::EAllServices:
       
   657             return EAllTeleAndBearer;
       
   658         case RMobilePhone::EAllTele:
       
   659             return EAllTele;
       
   660         case RMobilePhone::EVoiceService:
       
   661         case RMobilePhone::ETelephony:
       
   662             return ETelephony;
       
   663         case RMobilePhone::EAllDataTele:
       
   664             return EAllDataTele;
       
   665         case RMobilePhone::EFaxService:
       
   666             return EFax;
       
   667         case RMobilePhone::EShortMessageService:
       
   668             return ESms;
       
   669         case RMobilePhone::EAllDataExSms:
       
   670             return EAllDataExSms;
       
   671         case RMobilePhone::EAllTeleExcSms:
       
   672             return EAllTeleExcSms;
       
   673         case RMobilePhone::EAllPlmnTele:
       
   674             return EAllPlmnTele;
       
   675         case RMobilePhone::EPlmnTele1:
       
   676             return EPlmnTele1;
       
   677         case RMobilePhone::EPlmnTele2:
       
   678             return EPlmnTele2;
       
   679         case RMobilePhone::EPlmnTele3:
       
   680             return EPlmnTele3;
       
   681         case RMobilePhone::EPlmnTele4:
       
   682             return EPlmnTele4;
       
   683         case RMobilePhone::EPlmnTele5:
       
   684             return EPlmnTele5;
       
   685         case RMobilePhone::EPlmnTele6:
       
   686             return EPlmnTele6;
       
   687         case RMobilePhone::EPlmnTele7:
       
   688             return EPlmnTele7;
       
   689         case RMobilePhone::EPlmnTele8:
       
   690             return EPlmnTele8;
       
   691         case RMobilePhone::EPlmnTele9:
       
   692             return EPlmnTele9;
       
   693         case RMobilePhone::EPlmnTeleA:
       
   694             return EPlmnTeleA;
       
   695         case RMobilePhone::EPlmnTeleB:
       
   696             return EPlmnTeleB;
       
   697         case RMobilePhone::EPlmnTeleC:
       
   698             return EPlmnTeleC;
       
   699         case RMobilePhone::EPlmnTeleD:
       
   700             return EPlmnTeleD;
       
   701         case RMobilePhone::EPlmnTeleE:
       
   702             return EPlmnTeleE;
       
   703         case RMobilePhone::EPlmnTeleF:
       
   704             return EPlmnTeleF;
       
   705         case RMobilePhone::EAllBearer:
       
   706             return EAllBearer;
       
   707         case RMobilePhone::EAllAsync:
       
   708             return EAllAsync;
       
   709         case RMobilePhone::EAllSync:
       
   710             return EAllSync;
       
   711         case RMobilePhone::ECircuitDataService:
       
   712         case RMobilePhone::ESyncData:
       
   713             return ESyncData;
       
   714         case RMobilePhone::EPacketDataService:
       
   715         case RMobilePhone::EAsyncData:
       
   716             return EAsyncData;
       
   717         case RMobilePhone::EPacketData:
       
   718             return EPacketData;
       
   719         case RMobilePhone::EPadAccess:
       
   720             return EPadAccess;
       
   721         case RMobilePhone::EAllPlmnBearer:
       
   722             return EAllPlmnBearer;
       
   723         case RMobilePhone::EPlmnBearerServ1:
       
   724             return EPlmnBearerServ1;
       
   725         case RMobilePhone::EPlmnBearerServ2:
       
   726             return EPlmnBearerServ2;
       
   727         case RMobilePhone::EPlmnBearerServ3:
       
   728             return EPlmnBearerServ3;
       
   729         case RMobilePhone::EPlmnBearerServ4:
       
   730             return EPlmnBearerServ4;
       
   731         case RMobilePhone::EPlmnBearerServ5:
       
   732             return EPlmnBearerServ5;
       
   733         case RMobilePhone::EPlmnBearerServ6:
       
   734             return EPlmnBearerServ6;
       
   735         case RMobilePhone::EPlmnBearerServ7:
       
   736             return EPlmnBearerServ7;
       
   737         case RMobilePhone::EPlmnBearerServ8:
       
   738             return EPlmnBearerServ8;
       
   739         case RMobilePhone::EPlmnBearerServ9:
       
   740             return EPlmnBearerServ9;
       
   741         case RMobilePhone::EPlmnBearerServA:
       
   742             return EPlmnBearerServA;
       
   743         case RMobilePhone::EPlmnBearerServB:
       
   744             return EPlmnBearerServB;
       
   745         case RMobilePhone::EPlmnBearerServC:
       
   746             return EPlmnBearerServC;
       
   747         case RMobilePhone::EPlmnBearerServD:
       
   748             return EPlmnBearerServD;
       
   749         case RMobilePhone::EPlmnBearerServE:
       
   750             return EPlmnBearerServE;
       
   751         case RMobilePhone::EPlmnBearerServF:
       
   752             return EPlmnBearerServF;
       
   753         case RMobilePhone::EAuxVoiceService:
       
   754         case RMobilePhone::EAltTele:
       
   755             return EAltTele;
       
   756         case RMobilePhone::EServiceUnspecified:
       
   757         default:
       
   758             return EUnknown;
       
   759         }
       
   760     }
       
   761     
       
   762 // -----------------------------------------------------------------------------
       
   763 // CPsuiNoteMaster::RequestNoteCancelledL
       
   764 // Called when the Requesting note is cancelled by the user.
       
   765 // -----------------------------------------------------------------------------
       
   766 //
       
   767 void CPsuiNoteMaster::RequestNoteCancelledL()
       
   768     {
       
   769     KillRequestL();
       
   770     iRequesting = EFalse;        
       
   771     }    
       
   772 // End of file