adaptationlayer/tsy/nokiatsy_dll/src/cmmphonebookoperationinit3g_adn.cpp
changeset 5 8ccc39f9d787
parent 0 63b37f68c1ce
child 7 fa67e03b87df
equal deleted inserted replaced
4:510c70acdbf6 5:8ccc39f9d787
    20 #include <tisi.h>
    20 #include <tisi.h>
    21 #include <pn_const.h>
    21 #include <pn_const.h>
    22 #include <ctsy/serviceapi/mmtsy_ipcdefs.h>
    22 #include <ctsy/serviceapi/mmtsy_ipcdefs.h>
    23 #include "cmmmessagerouter.h"
    23 #include "cmmmessagerouter.h"
    24 #include "cmmphonebookoperationinit3G_adn.h"
    24 #include "cmmphonebookoperationinit3G_adn.h"
    25 #include "osttracedefinitions.h"
    25 #include "OstTraceDefinitions.h"
    26 #ifdef OST_TRACE_COMPILER_IN_USE
    26 #ifdef OST_TRACE_COMPILER_IN_USE
    27 #include "cmmphonebookoperationinittraces.h"
    27 #include "cmmphonebookoperationinitTraces.h"
    28 #include "OstTraceDefinitions.h"
    28 #include "OstTraceDefinitions.h"
    29 #ifdef OST_TRACE_COMPILER_IN_USE
    29 #ifdef OST_TRACE_COMPILER_IN_USE
    30 #include "cmmphonebookoperationinit3g_adnTraces.h"
    30 #include "cmmphonebookoperationinit3g_adnTraces.h"
    31 #endif
    31 #endif
    32 
    32 
   116     const CPhoneBookDataPackage* phoneBookData =
   116     const CPhoneBookDataPackage* phoneBookData =
   117         static_cast<const CPhoneBookDataPackage*>( aDataPackage );
   117         static_cast<const CPhoneBookDataPackage*>( aDataPackage );
   118 
   118 
   119     phoneBookData->GetPhoneBookName( phonebookTypeName );
   119     phoneBookData->GetPhoneBookName( phonebookTypeName );
   120     // Store phonebook name
   120     // Store phonebook name
   121     mmPhoneBookOperationInit3G_adn->iPhonebookType = phonebookTypeName;
   121     mmPhoneBookOperationInit3G_adn->iPhoneBookTypeName = phonebookTypeName;
   122 
   122 
   123     if( 0 == phonebookTypeName.CompareF( KInternalPhoneBookType ) )
   123     if( 0 == phonebookTypeName.CompareF( KInternalPhoneBookType ) )
   124         {
   124         {
   125         mmPhoneBookOperationInit3G_adn->iIniPhase = EPBIniPhase_Internal;
   125         mmPhoneBookOperationInit3G_adn->iIniPhase = EPBIniPhase_Internal;
   126         }
   126         }
   127     else // Full construction is not needed in case of internal initilization
   127     else // Full construction is not needed in case of internal initilization
   128         {
   128         {
   129         mmPhoneBookOperationInit3G_adn->iTransactionId = ETrIdPbInit;
       
   130         mmPhoneBookOperationInit3G_adn->ConstructL();
   129         mmPhoneBookOperationInit3G_adn->ConstructL();
   131         }
   130         }
   132     mmPhoneBookOperationInit3G_adn->iMmPhoneBookStoreMessHandler =
   131     mmPhoneBookOperationInit3G_adn->iMmPhoneBookStoreMessHandler =
   133         aMmPhoneBookStoreMessHandler;
   132         aMmPhoneBookStoreMessHandler;
   134 
   133 
   190 // -----------------------------------------------------------------------------
   189 // -----------------------------------------------------------------------------
   191 //
   190 //
   192 TInt CMmPhoneBookOperationInit3G_adn::UICCCreateReq
   191 TInt CMmPhoneBookOperationInit3G_adn::UICCCreateReq
   193     (
   192     (
   194     TInt aIpc,
   193     TInt aIpc,
   195     const CMmDataPackage* /*aDataPackage*/
   194     const CMmDataPackage* /*aDataPackage*/,
       
   195     TUint8 aTransId
   196     )
   196     )
   197     {
   197     {
   198     TFLOGSTRING( "TSY: CMmPhoneBookOperationInit3G_adn::UICCCreateReq" );
   198     TFLOGSTRING( "TSY: CMmPhoneBookOperationInit3G_adn::UICCCreateReq" );
   199     OstTrace0( TRACE_NORMAL, CMMPHONEBOOKOPERATIONINIT3G_ADN_UICCCREATEREQ, "CMmPhoneBookOperationInit3G_adn::UICCCreateReq" );
   199     OstTrace0( TRACE_NORMAL, CMMPHONEBOOKOPERATIONINIT3G_ADN_UICCCREATEREQ, "CMmPhoneBookOperationInit3G_adn::UICCCreateReq" );
   200 
   200 
   213                     iInternalInit = ETrue;
   213                     iInternalInit = ETrue;
   214 
   214 
   215                     }
   215                     }
   216 
   216 
   217                 iServiceType = UICC_APPL_FILE_INFO;
   217                 iServiceType = UICC_APPL_FILE_INFO;
   218                 iExtensionPresent = EFalse; // Default Extension is not present
       
   219 
   218 
   220                 // Start Initialization for ADN phonebook 3G
   219                 // Start Initialization for ADN phonebook 3G
   221                 iIniPhase = EPBInitPhase_3GADN_PBR;
   220                 iIniPhase = EPBInitPhase_3GADN_PBR;
   222                 ret = UICCInitializeReq3GADN();
   221                 ret = UICCInitializeReq3GADN( aTransId );
   223                 }
   222                 }
   224             else  // else for if internalInit goign on
   223             else  // else for if internalInit goign on
   225                 {
   224                 {
   226                 // Simultaneous initializations are not allowed.
   225                 // Simultaneous initializations are not allowed.
   227                 ret = KErrInUse;
   226                 ret = KErrInUse;
   247 // -----------------------------------------------------------------------------
   246 // -----------------------------------------------------------------------------
   248 // CMmPhoneBookOperationInit3G_adn::UICCCreateReq
   247 // CMmPhoneBookOperationInit3G_adn::UICCCreateReq
   249 // For USIM Separate different request to correct function
   248 // For USIM Separate different request to correct function
   250 // -----------------------------------------------------------------------------
   249 // -----------------------------------------------------------------------------
   251 //
   250 //
   252 TInt CMmPhoneBookOperationInit3G_adn::UICCInitializeReq3GADN()
   251 TInt CMmPhoneBookOperationInit3G_adn::UICCInitializeReq3GADN( TUint8 aTransId)
   253     {
   252     {
   254     TInt ret(KErrNone);
   253     TInt ret(KErrNone);
   255 
   254 
   256     TFLOGSTRING( "TSY: CMmPhoneBookOperationInit3G_adn::UICCInitializeReq3GADN" );
   255     TFLOGSTRING( "TSY: CMmPhoneBookOperationInit3G_adn::UICCInitializeReq3GADN" );
   257     OstTrace0( TRACE_NORMAL, CMMPHONEBOOKOPERATIONINIT3G_ADN_UICCINITIALIZEREQ3GADN, "CMmPhoneBookOperationInit3G_adn::UICCInitializeReq3GADN" );
   256     OstTrace0( TRACE_NORMAL, CMMPHONEBOOKOPERATIONINIT3G_ADN_UICCINITIALIZEREQ3GADN, "CMmPhoneBookOperationInit3G_adn::UICCInitializeReq3GADN" );
   258 
   257 
   259         TInt appFileID( APPL_FILE_ID );
   258         TInt appFileID( APPL_FILE_ID );
   260         TUiccReadLinearFixed cmdParams;
   259         TUiccReadLinearFixed cmdParams;
   261         cmdParams.messHandlerPtr =
   260         cmdParams.messHandlerPtr =
   262             static_cast<MUiccOperationBase*>( iMmPhoneBookStoreMessHandler );
   261             static_cast<MUiccOperationBase*>( iMmPhoneBookStoreMessHandler );
   263         cmdParams.trId = ETrIdPbInit;
   262         cmdParams.trId = static_cast<TUiccTrId>( aTransId );
   264 
   263 
   265         cmdParams.filePath.Append( static_cast<TUint8>( MF_FILE >> 8 ));
   264         cmdParams.filePath.Append( static_cast<TUint8>( MF_FILE >> 8 ));
   266         cmdParams.filePath.Append( static_cast<TUint8>( MF_FILE ));
   265         cmdParams.filePath.Append( static_cast<TUint8>( MF_FILE ));
   267         cmdParams.filePath.Append( appFileID>>8 );
   266         cmdParams.filePath.Append( appFileID>>8 );
   268         cmdParams.filePath.Append( appFileID );
   267         cmdParams.filePath.Append( appFileID );
   392 // CmmPhonebookOperationInit::HandleUICCPbRespL
   391 // CmmPhonebookOperationInit::HandleUICCPbRespL
   393 // HAndle response for all phase init response in USIM
   392 // HAndle response for all phase init response in USIM
   394 // -----------------------------------------------------------------------------
   393 // -----------------------------------------------------------------------------
   395 //
   394 //
   396 
   395 
   397 TInt CMmPhoneBookOperationInit3G_adn::HandleUICCPbRespL
   396 TBool CMmPhoneBookOperationInit3G_adn::HandleUICCPbRespL
   398         (
   397         (
   399         TBool &aComplete,
       
   400         TInt aStatus,
   398         TInt aStatus,
       
   399         TUint8 /*aDetails*/,
   401         const TDesC8 &aFileData,
   400         const TDesC8 &aFileData,
   402         TInt /*aTransId*/
   401         TInt aTransId
   403         )
   402         )
   404     {
   403     {
   405     TInt ret( KErrNone );
   404     TInt ret( KErrNone );
       
   405     TBool complete( EFalse );
   406 
   406 
   407     // break immediatelly in case of internal init
   407     // break immediatelly in case of internal init
   408     if ( iInternalInit )
   408     if ( iInternalInit )
   409         {
   409         {
   410         TFLOGSTRING("TSY: CMmPhoneBookOperationInit3G_adn::HandleUICCPbRespL. Internal Init->Break");
   410         TFLOGSTRING("TSY: CMmPhoneBookOperationInit3G_adn::HandleUICCPbRespL. Internal Init->Break");
   412 
   412 
   413 
   413 
   414         iIniPhase = EPBIniPhase_Unknown;
   414         iIniPhase = EPBIniPhase_Unknown;
   415 
   415 
   416         iInternalInit = EFalse;
   416         iInternalInit = EFalse;
   417         aComplete = ETrue;
   417         complete = ETrue;
   418         return KErrNone;
   418         return KErrNone;
   419         }
   419         }
   420 
   420 
   421         switch(iIniPhase)
   421         switch(iIniPhase)
   422             {
   422             {
   426             case EPBInitPhase_3GADN_Type3:
   426             case EPBInitPhase_3GADN_Type3:
   427             {
   427             {
   428             TFLOGSTRING( "TSY: CMmPhoneBookOperationInit3G_adn::HandleUICCPbRespL. USIM ADN PhoneBook Init" );
   428             TFLOGSTRING( "TSY: CMmPhoneBookOperationInit3G_adn::HandleUICCPbRespL. USIM ADN PhoneBook Init" );
   429             OstTrace0( TRACE_NORMAL, CMMPHONEBOOKOPERATIONINIT3G_ADN_HANDLEUICCPBRESPL, "CMmPhoneBookOperationInit3G_adn::HandleUICCPbRespL. USIM ADN Phonebook init" );
   429             OstTrace0( TRACE_NORMAL, CMMPHONEBOOKOPERATIONINIT3G_ADN_HANDLEUICCPBRESPL, "CMmPhoneBookOperationInit3G_adn::HandleUICCPbRespL. USIM ADN Phonebook init" );
   430 
   430 
   431             ret = HandleUICCPbResp3GADN( aFileData, aStatus );
   431             ret = HandleUICCPbResp3GADN( aFileData, aStatus, aTransId );
   432             }
   432             }
   433             break;
   433             break;
   434             case EPBInitPhaseFDN:
   434             case EPBInitPhaseFDN:
   435             case EPBInitPhaseSDN:
   435             case EPBInitPhaseSDN:
   436             case EPBInitPhaseMBDN:
   436             case EPBInitPhaseMBDN:
   438             {
   438             {
   439             TFLOGSTRING( "TSY: CMmPhoneBookOperationInit::HandleUICCPbRespL. Other PhoneBook Init" );
   439             TFLOGSTRING( "TSY: CMmPhoneBookOperationInit::HandleUICCPbRespL. Other PhoneBook Init" );
   440             OstTrace0( TRACE_NORMAL, DUP2_CMMPHONEBOOKOPERATIONINIT3G_ADN_HANDLEUICCPBRESPL, "CMmPhoneBookOperationInit3G_adn::HandleUICCPbRespL. Other Phonebook Init" );
   440             OstTrace0( TRACE_NORMAL, DUP2_CMMPHONEBOOKOPERATIONINIT3G_ADN_HANDLEUICCPBRESPL, "CMmPhoneBookOperationInit3G_adn::HandleUICCPbRespL. Other Phonebook Init" );
   441 
   441 
   442             // For all other phoenbook handling is same as 2g Phonebook
   442             // For all other phoenbook handling is same as 2g Phonebook
   443             ret = HandlePBRespL( aFileData, aStatus );
   443             ret = HandlePBRespL( aFileData, aStatus, aTransId );
   444             }
   444             }
   445             break;
   445             break;
   446             default:
   446             default:
   447                 // Not to handle anything if card type is not available
   447                 // Not to handle anything if card type is not available
   448                 break;
   448                 break;
   451 
   451 
   452          // Complete, if phonebook initalization is complete or there is some error in UICC server
   452          // Complete, if phonebook initalization is complete or there is some error in UICC server
   453          if ( KErrNone != ret || EPBIniPhase_PBInitialized == iIniPhase )
   453          if ( KErrNone != ret || EPBIniPhase_PBInitialized == iIniPhase )
   454              {
   454              {
   455              CPhoneBookDataPackage phoneBookData;
   455              CPhoneBookDataPackage phoneBookData;
   456              phoneBookData.SetPhoneBookName( iPhonebookType );
   456              phoneBookData.SetPhoneBookName( iPhoneBookTypeName );
   457              phoneBookData.PackData( iPBStoreInfoData );
   457              phoneBookData.PackData( iPBStoreInfoData );
   458 
   458 
   459              if ( UICC_STATUS_OK != aStatus )
   459              if ( UICC_STATUS_OK != aStatus )
   460                  {
   460                  {
   461                  ret = CMmStaticUtility::UICCCSCauseToEpocError( aStatus );
   461                  ret = CMmStaticUtility::UICCCSCauseToEpocError( aStatus );
   464              iMmPhoneBookStoreMessHandler->MessageRouter()->Complete(
   464              iMmPhoneBookStoreMessHandler->MessageRouter()->Complete(
   465                      EMmTsyPhoneBookStoreInitIPC,
   465                      EMmTsyPhoneBookStoreInitIPC,
   466                      &phoneBookData,
   466                      &phoneBookData,
   467                      ret );
   467                      ret );
   468 
   468 
   469              aComplete = ETrue;
   469              complete = ETrue;
   470              }
   470              }
   471     return ret;
   471     return complete;
   472 
   472 
   473     }
   473     }
   474 // -----------------------------------------------------------------------------
   474 // -----------------------------------------------------------------------------
   475 // CmmPhonebookOperationInit::HandleUICCPbResp3GADN
   475 // CmmPhonebookOperationInit::HandleUICCPbResp3GADN
   476 // Handle response for ADN phone book init in USIM
   476 // Handle response for ADN phone book init in USIM
   477 // -----------------------------------------------------------------------------
   477 // -----------------------------------------------------------------------------
   478 //
   478 //
   479 TInt CMmPhoneBookOperationInit3G_adn::HandleUICCPbResp3GADN
   479 TInt CMmPhoneBookOperationInit3G_adn::HandleUICCPbResp3GADN
   480     (
   480     (
   481     const TDesC8& aFileData,
   481     const TDesC8& aFileData,
   482     TInt aStatus)
   482     TInt aStatus,
       
   483     TUint8 aTransId )
   483     {
   484     {
   484     TFLOGSTRING("TSY: CMmPhoneBookOperationInit3G_adn::HandleUICCPbResp3GADN");
   485     TFLOGSTRING("TSY: CMmPhoneBookOperationInit3G_adn::HandleUICCPbResp3GADN");
   485     OstTrace0( TRACE_NORMAL, CMMPHONEBOOKOPERATIONINIT3G_ADN_HANDLEUICCPBRESP3GADN, "CMmPhoneBookOperationInit3G_adn::HandleUICCPbResp3GADN" );
   486     OstTrace0( TRACE_NORMAL, CMMPHONEBOOKOPERATIONINIT3G_ADN_HANDLEUICCPBRESP3GADN, "CMmPhoneBookOperationInit3G_adn::HandleUICCPbResp3GADN" );
   486 
   487 
   487     TInt ret( KErrNone );
   488     TInt ret( KErrNone );
   494                     {
   495                     {
   495                     TInt offSet( 0 );
   496                     TInt offSet( 0 );
   496                     // For File Info , get the no of records in PBR file to get the total no of entries in 3G ADN phonebook
   497                     // For File Info , get the no of records in PBR file to get the total no of entries in 3G ADN phonebook
   497                     if( UICC_APPL_FILE_INFO == iServiceType )
   498                     if( UICC_APPL_FILE_INFO == iServiceType )
   498                         {
   499                         {
   499                         // Extract Number of records in PBR EF
   500                         TFci fci( aFileData );
   500                         offSet = aFileData.Find( &KTagFCIFileDescriptor,1 );
   501                         iNumOfPBRRecords = fci.GetNumberOfRecords();
   501                         if( offSet != KErrNotFound )
   502 
   502                             {
   503                         ret = KErrNone;
   503                             // Number of entries is 1 byte long
       
   504                             //iNumOfPBRRecords = aFileData[offSet + UICC_FCI_EF_FDESC_OFFSET_NUM_ENTR];
       
   505                             // get the no of records in PBR file
       
   506                             HandleFcpData(aFileData, iNumOfPBRRecords, KNoOfRecords);
       
   507 
       
   508                             ret = KErrNone;
       
   509                             }
       
   510                         iServiceType = UICC_APPL_READ_LINEAR_FIXED;
   504                         iServiceType = UICC_APPL_READ_LINEAR_FIXED;
   511                         }
   505                         }
   512                     else if( UICC_APPL_READ_LINEAR_FIXED == iServiceType )
   506                     else if( UICC_APPL_READ_LINEAR_FIXED == iServiceType )
   513                         {
   507                         {
   514                         // Get the offset for  Type 1 file tag "KTagConstructedTagA8"
   508                         // Get the offset for  Type 1 file tag "KTagConstructedTagA8"
   583                 {
   577                 {
   584                 // get the next Phone book available in UST OR SST Table (for 2G)table
   578                 // get the next Phone book available in UST OR SST Table (for 2G)table
   585                 iIniPhase = GetNextAvailablePbUicc( UICC_FDN_SERVICE_NUM );
   579                 iIniPhase = GetNextAvailablePbUicc( UICC_FDN_SERVICE_NUM );
   586                 }
   580                 }
   587             iServiceType = UICC_APPL_FILE_INFO;
   581             iServiceType = UICC_APPL_FILE_INFO;
   588             ret = UICCInitializeReq();
   582             ret = UICCInitializeReq( aTransId );
   589             }
   583             }
   590         else
   584         else
   591             {
   585             {
   592             // Call Create request for next phase
   586             // Call Create request for next phase
   593             ret = UICCInitializeReq3GADN();
   587             ret = UICCInitializeReq3GADN( aTransId );
   594             }
   588             }
   595         }
   589         }
   596 
   590 
   597     return ret;
   591     return ret;
   598     }
   592     }
   625         {
   619         {
   626         // Get the Tag name
   620         // Get the Tag name
   627         primTag.tagValue = aFileData[offset + i];
   621         primTag.tagValue = aFileData[offset + i];
   628 
   622 
   629         // get the File ID which is 2byte long
   623         // get the File ID which is 2byte long
   630         Get16bit(primTag.tagFID, aFileData, ( offset+i+2 ));
   624         primTag.tagFID = CMmStaticUtility::Get16Bit( aFileData, ( offset+i+2 ));
   631 
   625 
   632         // if file Tag length is 3 the SFI is available and if file tag length is 2 the only File ID is present
   626         // if file Tag length is 3 the SFI is available and if file tag length is 2 the only File ID is present
   633         if(KLengthWithSFI == aFileData[offset + i+1])
   627         if(KLengthWithSFI == aFileData[offset + i+1])
   634             {
   628             {
   635             primTag.tagSFI = aFileData[offset+i+4];
   629             primTag.tagSFI = aFileData[offset+i+4];
   679     for( TInt i = 0; i < aTagLength; )
   673     for( TInt i = 0; i < aTagLength; )
   680         {
   674         {
   681         // Get the Tag name
   675         // Get the Tag name
   682         primTag.tagValue = aFileData[offset+i];
   676         primTag.tagValue = aFileData[offset+i];
   683         // get the File ID which is 2byte long
   677         // get the File ID which is 2byte long
   684         Get16bit(primTag.tagFID, aFileData, ( offset+i+2 ));
   678         primTag.tagFID = CMmStaticUtility::Get16Bit( aFileData, ( offset+i+2 ));
   685 
   679 
   686         // if file Tag length is 3 the SFI is available and if file tag length is 2 the only File ID is present
   680         // if file Tag length is 3 the SFI is available and if file tag length is 2 the only File ID is present
   687         if(KLengthWithSFI == aFileData[offset+i+1])
   681         if(KLengthWithSFI == aFileData[offset+i+1])
   688             {
   682             {
   689             primTag.tagSFI = aFileData[offset+i+4];
   683             primTag.tagSFI = aFileData[offset+i+4];
   735             {
   729             {
   736             // Get the Tag name
   730             // Get the Tag name
   737             primTag.tagValue = aFileData[offset+i];
   731             primTag.tagValue = aFileData[offset+i];
   738 
   732 
   739             // get the File ID which is 2byte long
   733             // get the File ID which is 2byte long
   740             Get16bit( primTag.tagFID, aFileData, ( offset+i+2 ));
   734             primTag.tagFID = CMmStaticUtility::Get16Bit( aFileData,
       
   735             	                                          ( offset + i + 2 ));
   741 
   736 
   742             // if file Tag length is 3 the SFI is available and if file tag length is 2 the only File ID is present
   737             // if file Tag length is 3 the SFI is available and if file tag length is 2 the only File ID is present
   743             if(KLengthWithSFI == aFileData[offset+i+1])
   738             if(KLengthWithSFI == aFileData[offset+i+1])
   744                 {
   739                 {
   745                 primTag.tagSFI = aFileData[offset+i+4];
   740                 primTag.tagSFI = aFileData[offset+i+4];
   783     TUint8 tagValue = iType1FileArray[iCurrentArrayCounter].tagValue;
   778     TUint8 tagValue = iType1FileArray[iCurrentArrayCounter].tagValue;
   784 
   779 
   785     if( UICC_STATUS_OK  == aStatus )
   780     if( UICC_STATUS_OK  == aStatus )
   786         {
   781         {
   787         // Get the Record length for all linear fixed and circular EF's
   782         // Get the Record length for all linear fixed and circular EF's
   788         HandleFcpData(aFileData, recordLength, KRecordLength);
   783         TFci fci( aFileData );
   789 
   784         recordLength = fci.GetRecordLength();
   790         // Get the no of records
   785         noOfRecords = fci.GetNumberOfRecords();
   791         HandleFcpData(aFileData, noOfRecords, KNoOfRecords);
   786 			
   792 
       
   793         // Check for No of records in Type 1 file
   787         // Check for No of records in Type 1 file
   794         if( UICC_EF_ADN_TAG != tagValue )
   788         if( UICC_EF_ADN_TAG != tagValue )
   795             {
   789             {
   796             ret = CheckForNoOfRecords( noOfRecords );
   790             ret = CheckForNoOfRecords( noOfRecords );
   797             }
   791             }
   961     TInt noOfRecords(0);
   955     TInt noOfRecords(0);
   962 
   956 
   963     if( UICC_STATUS_OK  == aStatus )
   957     if( UICC_STATUS_OK  == aStatus )
   964         {
   958         {
   965         // Get the Record length for all linear fixed and circular EF's
   959         // Get the Record length for all linear fixed and circular EF's
   966         HandleFcpData(aFileData, recordLength, KRecordLength);
   960         TFci fci( aFileData );
   967 
   961         recordLength = fci.GetRecordLength();
   968         // get no of records
   962         noOfRecords = fci.GetNumberOfRecords();
   969         HandleFcpData(aFileData, noOfRecords, KNoOfRecords);
   963         }
   970 
   964 
   971         }
       
   972     // Get the tag value for current File
   965     // Get the tag value for current File
   973     TUint tagValue = iType2FileArray[iCurrentArrayCounter].tagValue;
   966     TUint tagValue = iType2FileArray[iCurrentArrayCounter].tagValue;
   974 
   967 
   975     if( iCurrentArrayCounter < iType2FileArray.Count() )
   968     if( iCurrentArrayCounter < iType2FileArray.Count() )
   976         {
   969         {
  1070     TInt noOfRecords(0);
  1063     TInt noOfRecords(0);
  1071 
  1064 
  1072 
  1065 
  1073     if( UICC_STATUS_OK  == aStatus )
  1066     if( UICC_STATUS_OK  == aStatus )
  1074         {
  1067         {
  1075         // Get the Record length for all linear fixed and circular EF's
  1068         TFci fci( aFileData );
  1076         HandleFcpData(aFileData, recordLength, KRecordLength);
  1069         recordLength = fci.GetRecordLength();
  1077 
  1070         noOfRecords = fci.GetNumberOfRecords();
  1078         HandleFcpData(aFileData, noOfRecords, KNoOfRecords);
       
  1079         }
  1071         }
  1080 
  1072 
  1081     // Get the tag value for current File
  1073     // Get the tag value for current File
  1082     TUint tagValue ( iType3FileArray[iCurrentArrayCounter].tagValue );
  1074     TUint tagValue ( iType3FileArray[iCurrentArrayCounter].tagValue );
  1083 
  1075