diff -r 942573423a60 -r fa67e03b87df adaptationlayer/tsy/nokiatsy_dll/src/cmmphonebookoperationcache.cpp --- a/adaptationlayer/tsy/nokiatsy_dll/src/cmmphonebookoperationcache.cpp Fri Jan 22 10:04:04 2010 +0200 +++ b/adaptationlayer/tsy/nokiatsy_dll/src/cmmphonebookoperationcache.cpp Wed Feb 17 13:58:55 2010 +0200 @@ -92,7 +92,7 @@ CMmPhoneBookOperationCache* CMmPhoneBookOperationCache::NewL ( CMmPhoneBookStoreMessHandler* aMmPhoneBookStoreMessHandler, - CMmUiccMessHandler* /*aUiccMessHandler*/, + CMmUiccMessHandler* aUiccMessHandler, TInt /*aIpc*/, const CMmDataPackage* aDataPackage // Data ) @@ -115,6 +115,8 @@ mmPhoneBookOperationCache->iMmPhoneBookStoreMessHandler = aMmPhoneBookStoreMessHandler; + mmPhoneBookOperationCache->iMmUiccMessHandler = aUiccMessHandler; + return mmPhoneBookOperationCache; } @@ -211,7 +213,7 @@ { // Convert Phone Book name to file id TUint16 fileIdExt ( UICC_ILLEGAL_FILE_ID ); - TUint16 pbFileId = ConvertToPBfileId( iPhoneBookTypeName, fileIdExt ); + TUint16 pbFileId = ConvertToPBfileId( iPhoneBookTypeName, fileIdExt, iMmUiccMessHandler->GetCardType()); TUint8 pbArrayIndex = ConvertToConfArrayIndex( pbFileId ); switch(pbFileId) @@ -241,7 +243,7 @@ // Seperate Entry data form UICC Server response message // Case: iMmPhoneBookStoreMessHandler-> - iPBStoreConf[EPhonebookTypeAdn]. + iPBStoreConf[pbArrayIndex]. GetPBEntryFromUICCData( aFileData, iNumberBuf, @@ -253,7 +255,7 @@ // Length + 14 , minus 1 is for Array index Calculation //(it starts from 0) if ( 0xFF == aFileData[iMmPhoneBookStoreMessHandler-> - iPBStoreConf[EPhonebookTypeAdn]. + iPBStoreConf[pbArrayIndex]. iAlphaStringlength + 13] ) { // Append Entry to list @@ -287,7 +289,7 @@ iExtensionToRead = ETrue; // Record no to be read from EXT File TInt recordNo = aFileData[iMmPhoneBookStoreMessHandler-> - iPBStoreConf[EPhonebookTypeAdn]. + iPBStoreConf[pbArrayIndex]. iAlphaStringlength + 13]; // Append EXT record no. @@ -457,8 +459,6 @@ TInt ret( KErrNone ); TInt appFileID ( APPL_FILE_ID ); // Application File id for DFphonebook - // get the index to be read from phonebook - TInt index( iIndexToRead ); TUiccReadLinearFixed cmdParams; cmdParams.messHandlerPtr = static_cast @@ -468,45 +468,68 @@ cmdParams.filePath.Append( static_cast( MF_FILE )); cmdParams.filePath.Append( appFileID>>8); cmdParams.filePath.Append( appFileID); - cmdParams.filePath.Append( static_cast( DF_PHONEBOOK >> 8 )); - cmdParams.filePath.Append( static_cast( DF_PHONEBOOK )); + + if( UICC_CARD_TYPE_UICC == iMmUiccMessHandler->GetCardType()) + { + cmdParams.filePath.Append( static_cast( DF_PHONEBOOK >> 8 )); + cmdParams.filePath.Append( static_cast( DF_PHONEBOOK )); + } // Convert Phone Book name to file id TUint16 fileIdExt ( 0x0000 ); - TUint16 pbFileId = ConvertToPBfileId( iPhoneBookTypeName, fileIdExt ); - - // get the corect Location to be read from phone book - if( PB_MBDN_FID == pbFileId) + TUint16 pbFileId = ConvertToPBfileId( iPhoneBookTypeName, fileIdExt, iMmUiccMessHandler->GetCardType() ); + TUint8 pbArrayIndex = ConvertToConfArrayIndex( pbFileId ); + + switch( pbFileId ) { - // Index to be read contains two types of information. - // The least significant byte contains the profile number - // and the most significant byte contains the type. - index = index || 0x0100; // Only subscriber profile number 1 is supported - } - - switch( pbFileId ) + case PB_ADN_FID: + case PB_FDN_FID: + case PB_SDN_FID: { - case PB_ADN_FID: + // For 2G ADN Phonebook EXT1 will be the extension number store + cmdParams.trId = static_cast ( aTransId ); + cmdParams.serviceType = UICC_APPL_READ_LINEAR_FIXED; + cmdParams.record = aRecordNo; + + // Check for Extension Data is Present or not + if(!iExtensionToRead) { - // For 2G ADN Phonebook EXT1 will be the extension number store - cmdParams.trId = static_cast ( aTransId ); - cmdParams.serviceType = UICC_APPL_READ_LINEAR_FIXED; - cmdParams.record = aRecordNo; - - // Check for Extension Data is Present or not - if(!iExtensionToRead) + // Check for the record Number to be + //read is valid record number + if( iIndexToRead <= iMmPhoneBookStoreMessHandler-> + iPBStoreConf[pbArrayIndex].iNoOfRecords) { - // Check for the record Number to be - //read is valid record number - if( iIndexToRead <= iMmPhoneBookStoreMessHandler-> - iPBStoreConf[EPhonebookTypeAdn].iNoOfRecords) + // Start from first location and Search for First Valid + //Entry in the Stored List And if some Entry is invalid + // then Read From Sim and Check the Staus its Free + // or not till end of the records + + cmdParams.fileId = pbFileId; + cmdParams.serviceType = UICC_APPL_READ_LINEAR_FIXED; + cmdParams.record = aRecordNo; + // till End of Record + cmdParams.dataAmount = 0; + // Start from begining of record + cmdParams.dataOffset = 0; + } + else + { + ret = KErrNotFound; + } + } // end of if case for checking extension data + else + { + // Send Request to Read Extension Data + // Check for UST Table supports for EXT File + if( iMmPhoneBookStoreMessHandler-> + iPBStoreConf[pbArrayIndex].iExtension ) + { + // Check for Extension data record in valid + if(iMmPhoneBookStoreMessHandler-> + iPBStoreConf[pbArrayIndex].iExtNoOfRec >= aRecordNo) { - // Start from first location and Search for First Valid - //Entry in the Stored List And if some Entry is invalid - // then Read From Sim and Check the Staus its Free - // or not till end of the records - - cmdParams.fileId = PB_ADN_FID; + // Read Request to read that index + cmdParams.fileId = fileIdExt; cmdParams.serviceType = UICC_APPL_READ_LINEAR_FIXED; cmdParams.record = aRecordNo; // till End of Record @@ -516,67 +539,32 @@ } else { - ret = KErrNotFound; - } - } // end of if case for checking extension data - else - { - // Send Request to Read Extension Data - // Check for UST Table supports for EXT File - if( iMmPhoneBookStoreMessHandler-> - iPBStoreConf[EPhonebookTypeAdn].iExtension ) - { - // Check for Extension data record in valid - if(iMmPhoneBookStoreMessHandler-> - iPBStoreConf[EPhonebookTypeAdn].iExtNoOfRec > aRecordNo) - { - // Read Request to read that index - cmdParams.fileId = PB_EXT1_FID; - cmdParams.serviceType = UICC_APPL_READ_LINEAR_FIXED; - cmdParams.record = aRecordNo; - // till End of Record - cmdParams.dataAmount = 0; - // Start from begining of record - cmdParams.dataOffset = 0; - } - else - { - ret = KErrGeneral; - } - } - else - { ret = KErrGeneral; } } - break; + else + { + ret = KErrGeneral; + } } - case PB_FDN_FID: - { - // For FDN Phonebook EXT2 will be the extension number store - cmdParams.trId = ETrIdPbReadFdn; - cmdParams.fileId = PB_EXT2_FID; - - cmdParams.serviceType = UICC_APPL_READ_LINEAR_FIXED; - cmdParams.record = aRecordNo; break; - } - default: - { + } + default: + { TFLOGSTRING("TSY: CMmPhoneBookOperationRead::USimPbReqRead - PhoenBook Not supported"); OstTrace0( TRACE_NORMAL, DUP1_CMMPHONEBOOKOPERATIONCACHE_USIMPBREQREAD, "CMmPhoneBookOperationCache::USimPbReqRead - PhoneBook not supported" ); break; - } } + } - if( KErrNone == ret ) - { - ret = iMmPhoneBookStoreMessHandler->UiccMessHandler()-> - CreateUiccApplCmdReq( cmdParams ); + if( KErrNone == ret ) + { + ret = iMmPhoneBookStoreMessHandler->UiccMessHandler()-> + CreateUiccApplCmdReq( cmdParams ); TFLOGSTRING2("TSY: CreateUiccApplCmdReq returns %d", ret); OstTraceExt1( TRACE_NORMAL, DUP2_CMMPHONEBOOKOPERATIONCACHE_USIMPBREQREAD, "CMmPhoneBookOperationCache::USimPbReqRead;ret=%hd", ret ); - } + } return ret; }