--- a/vmbx/vmbxengine/src/vmbxpbkstore.cpp Thu May 27 13:23:05 2010 +0300
+++ b/vmbx/vmbxengine/src/vmbxpbkstore.cpp Fri Jun 11 14:07:16 2010 +0300
@@ -59,7 +59,6 @@
VMBLOGSTRING( "VMBX: CVmbxPbkStore::~CVmbxPbkStore =>" );
Cancel();
iPhoneBook.Close();
- delete iAlphaStringFromSIM;
delete iWait;
delete iETelConnection;
VMBLOGSTRING( "VMBX: CVmbxPbkStore::~CVmbxPbkStore <=" );
@@ -251,24 +250,20 @@
RMobilePhoneBookStore::ETagPBAdnIndex, (TUint16)entryIndex );
VMBLOGSTRING2( "VMBX: CVmbxPbkStore::Write: ETagPBAdnIndex \
result=%I", result );
- // Add name if it existed on SIM card,Type of ETagPBText is TDes16
- if ( iAlphaStringFromSIM )
- {
- result = pbkBuffer->PutTagAndValue(
- RMobilePhoneBookStore::ETagPBText, *iAlphaStringFromSIM );
- VMBLOGSTRING2( "VMBX: CVmbxPbkStore::Write: ETagPBText\
- result=%I", result );
- }
+ // Add name, Type of ETagPBText is TDes16
+ TPtrC vmbxName( KNullDesC );
+ aEntry.GetVmbxName( vmbxName );
+ result = pbkBuffer->PutTagAndValue(
+ RMobilePhoneBookStore::ETagPBText, vmbxName );
+ VMBLOGSTRING2( "VMBX: CVmbxPbkStore::Write: ETagPBText\
+ result=%I", result );
+ // Add number, Type of ETagPBNumber is TDes16
TPtrC vmbxNumber( KNullDesC );
- result = aEntry.GetVmbxNumber( vmbxNumber );
- if ( KErrNone == result )
- {
- // Add number,Type of ETagPBNumber is TDes16
- result = pbkBuffer->PutTagAndValue(
- RMobilePhoneBookStore::ETagPBNumber, vmbxNumber );
- VMBLOGSTRING2( "VMBX: CVmbxPbkStore::Write: ETagPBNumber\
- result=%I", result );
- }
+ aEntry.GetVmbxNumber( vmbxNumber );
+ result = pbkBuffer->PutTagAndValue(
+ RMobilePhoneBookStore::ETagPBNumber, vmbxNumber );
+ VMBLOGSTRING2( "VMBX: CVmbxPbkStore::Write: ETagPBNumber\
+ result=%I", result );
}
if ( KErrNone == result )
@@ -477,8 +472,6 @@
TInt numEntries( 1 );
TBuf8<KVmbxPhonebookBufferSize> pbData;
- delete iAlphaStringFromSIM;
- iAlphaStringFromSIM = NULL;
TInt result( KErrInUse );
if ( iPhoneBookType == EMBDNPhoneBook )
{
@@ -548,8 +541,6 @@
{
VMBLOGSTRING( "VMBX: CVmbxPbkStore::ParseDataL =>" );
TInt result( KErrNotFound );
- delete iAlphaStringFromSIM;
- iAlphaStringFromSIM = NULL;
VMBLOGSTRING2( "CVmbxPbkStore::ParseDataL Lengh = %d", aPbData.Length() );
@@ -618,6 +609,8 @@
VMBLOGSTRING( "VMBX: CVmbxPbkStore::ReadPbkDataL =>" );
TInt result( KErrNone );
+ TInt next( KErrNone );
+ TBool found( EFalse );
TUint8 tagValue( 0 );
CPhoneBookBuffer::TPhBkTagType dataType(
CPhoneBookBuffer::EPhBkTypeNoData );
@@ -625,7 +618,7 @@
result = aPbkBuffer->GetTagAndType( tagValue, dataType );
// loop through data to find a number and an possible alpha string
- while ( result == KErrNone && aPbkBuffer->RemainingReadLength() > 0 )
+ while ( next == KErrNone && result == KErrNone )
{
VMBLOGSTRING2("VMBX: CVmbxPbkStore::ReadPbkDataL: tagValue: %d",
tagValue );
@@ -635,48 +628,38 @@
// Check for text field
if ( tagValue == RMobilePhoneBookStore::ETagPBText )
{
+ VMBLOGSTRING("VMBX: CVmbxPbkStore::ReadPbkDataL: \
+ ETagPBText found Alpha ID" );
+ found = ETrue;
// Alpha string field found from TLV entry,
// assuming 16bit data
TPtrC16 alphaPtrC;
result = aPbkBuffer->GetValue( alphaPtrC );
+
if ( KErrNone == result )
{
- iAlphaStringFromSIM = alphaPtrC.AllocL();
- VMBLOGSTRING2("VMBX: CVmbxPbkStore::ReadPbkDataL: \
- iAlphaStringFromSIM: %S", iAlphaStringFromSIM );
+ // set name to vmbx entry
+ result = aEntry.SetVmbxName( alphaPtrC );
}
}
- // Check for number field
- else if ( tagValue == RMobilePhoneBookStore::ETagPBNumber )
+ // Check for number field
+ else if ( tagValue == RMobilePhoneBookStore::ETagPBNumber )
{
+ VMBLOGSTRING("VMBX: CVmbxPbkStore::ReadPbkDataL: \
+ ETagPBNumber found Number" );
+ found = ETrue;
// Number field found from TLV entry, assuming 16bit data
TPtrC16 numberPtrC;
result = aPbkBuffer->GetValue( numberPtrC );
- VMBLOGSTRING( "VMBX: CVmbxPbkStore::ReadPbkDataL:\
- ETagPBNumber found" );
-
if ( KErrNone == result )
{
- // Error code is returned if number not fit to
- // local buffer.
- if ( numberPtrC.Length() > KVmbxMaxNumberLength )
- {
- result = KErrOverflow;
- VMBLOGSTRING( "VMBX: CVmbxPbkStore::ReadPbkDataL: \
- Overflow error" );
- }
- else
- {
- result = aEntry.SetVmbxNumber( numberPtrC );
- VMBLOGSTRING("VMBX: CVmbxPbkStore::ReadPbkDataL: \
- ETagPBNumber found Number" );
- break;
- }
+ // set number to vmbx entry
+ result = aEntry.SetVmbxNumber( numberPtrC );
}
}
- else
+ else
{
// skip field
aPbkBuffer->SkipValue( dataType );
@@ -686,12 +669,18 @@
if ( KErrNone == result )
{
// Read next field type
- result = aPbkBuffer->GetTagAndType( tagValue, dataType );
+ next = aPbkBuffer->GetTagAndType( tagValue, dataType );
VMBLOGSTRING2( "VMBX: CVmbxPbkStore::ReadPbkDataL: \
next GetTagAndType = %I", result );
}
}
+ // Neither alpha string Nor number is found
+ if( KErrNone == result && !found )
+ {
+ result = KErrNotFound;
+ }
+
VMBLOGSTRING2( "VMBX: CVmbxPbkStore::ReadPbkDataL result=%I", result );
User::LeaveIfError( result );
VMBLOGSTRING( "VMBX: CVmbxPbkStore::ReadPbkDataL <=" );