diff -r 7d48bed6ce0c -r 987c9837762f telutils/phoneparser/src/CPhoneGsmParser.cpp --- a/telutils/phoneparser/src/CPhoneGsmParser.cpp Tue Aug 31 15:45:17 2010 +0300 +++ b/telutils/phoneparser/src/CPhoneGsmParser.cpp Wed Sep 01 12:15:03 2010 +0100 @@ -20,13 +20,13 @@ // INCLUDE FILES #include -#include "cphonegsmparser.h" -#include "cphonegsmparserresult.h" -#include "cphonegsmparserbase.h" -#include "cphonegsmdummyparser.h" -#include "cphonegsmoptioncontainer.h" -#include "cphoneparserfeatures.h" -#include "cphonegsmoptioncontainerbase.h" +#include "CPhoneGsmParser.h" +#include "CPhoneGsmParserResult.h" +#include "CPhoneGsmParserBase.h" +#include "CPhoneGsmDummyParser.h" +#include "CPhoneGsmOptionContainer.h" +#include "CPhoneParserFeatures.h" +#include "CPhoneGsmOptionContainerBase.h" // CONSTANTS @@ -43,7 +43,8 @@ CPhoneGsmParserBase* aPhoneNumber, CPhoneGsmParserBase* aManufacturerSpecific, CPhoneGsmParserBase* aEmergencyNumberParser, - CPhoneGsmParserBase* aVoipNumber) + CPhoneGsmParserBase* aVoipNumber, + CPhoneGsmParserBase* aImeiParser ) { // Ownership of these instances is transferred, thus // creation of the instance must not leave. @@ -55,7 +56,8 @@ aPhoneNumber, aManufacturerSpecific, aEmergencyNumberParser, - aVoipNumber); + aVoipNumber, + aImeiParser ); if ( !self ) { @@ -65,6 +67,7 @@ delete aManufacturerSpecific; delete aEmergencyNumberParser; delete aVoipNumber; + delete aImeiParser; User::Leave( KErrNoMemory ); } @@ -88,6 +91,7 @@ delete iGsmManufacturerProcedure; delete iGsmEmergencyNumber; delete iVoipNumber; + delete iImeiParser; CPhoneParserFeatures::Free(); } @@ -101,13 +105,15 @@ CPhoneGsmParserBase* aPhoneNumber, CPhoneGsmParserBase* aManufacturerSpecific, CPhoneGsmParserBase* aEmergencyNumberParser, - CPhoneGsmParserBase* aVoipNumber) + CPhoneGsmParserBase* aVoipNumber, + CPhoneGsmParserBase* aImeiParser ) : iGsmSsProcedure( aSsProcedure ), iGsmSimControlProcedure( aSimControlProcedure ), iGsmPhoneNumber( aPhoneNumber ), iGsmManufacturerProcedure( aManufacturerSpecific ), iGsmEmergencyNumber( aEmergencyNumberParser ), - iVoipNumber( aVoipNumber ) + iVoipNumber( aVoipNumber ), + iImeiParser( aImeiParser ) { } @@ -143,6 +149,10 @@ { iVoipNumber = CPhoneGsmDummyParser::NewL(); } + if ( !iImeiParser ) + { + iImeiParser = CPhoneGsmDummyParser::NewL(); + } } // ----------------------------------------------------------------------------- @@ -188,9 +198,15 @@ } TBool sendOperation = aOptions.FindOptionStatus( KPhoneOptionSend ); + + // Check if it is the only phone control string, show imei. + result = iImeiParser->ParseL( aString, aResult, aOptions ); // Check if emergency number. - result = iGsmEmergencyNumber->ParseL( aString, aResult, aOptions ); + if ( !result ) + { + result = iGsmEmergencyNumber->ParseL( aString, aResult, aOptions ); + } // First check if string is GSM ss procedure supported by MS. if ( !result )