phoneengine/phonemodel/src/cpeparsermanufacturerhandler.cpp
changeset 21 92ab7f8d0eab
parent 0 5f000ab63145
child 51 f39ed5e045e0
equal deleted inserted replaced
4:c84cf270c54f 21:92ab7f8d0eab
    42         RFs& aFsSession )
    42         RFs& aFsSession )
    43         : iModel( aModel ),
    43         : iModel( aModel ),
    44             iCallHandling( aCallHandling ),
    44             iCallHandling( aCallHandling ),
    45             iFsSession( aFsSession )
    45             iFsSession( aFsSession )
    46     {
    46     {
    47 	TEFLOGSTRING( KTAOBJECT, "PE CPEParserManufacturerHandler::CPEParserManufacturerHandler()" );
    47     TEFLOGSTRING( KTAOBJECT, "PE CPEParserManufacturerHandler::CPEParserManufacturerHandler()" );
    48     }
    48     }
    49 
    49 
    50 // Destructor
    50 // Destructor
    51 CPEParserManufacturerHandler::~CPEParserManufacturerHandler()
    51 CPEParserManufacturerHandler::~CPEParserManufacturerHandler()
    52     {    
    52     {    
    53 	TEFLOGSTRING( KTAOBJECT, "PE CPEParserManufacturerHandler::~CPEParserManufacturerHandler()" );
    53     TEFLOGSTRING( KTAOBJECT, "PE CPEParserManufacturerHandler::~CPEParserManufacturerHandler()" );
    54     }
    54     }
    55 
    55 
    56 // -----------------------------------------------------------------------------
    56 // -----------------------------------------------------------------------------
    57 // CPhoneManufacturerHandler::ProcessCommandL
    57 // CPhoneManufacturerHandler::ProcessCommandL
    58 // -----------------------------------------------------------------------------
    58 // -----------------------------------------------------------------------------
    59 //
    59 //
    60 void CPEParserManufacturerHandler::ProcessCommandL( 
    60 void CPEParserManufacturerHandler::ProcessCommandL( 
    61         TUint aCommand )       // aCommand command enumeration.
    61         TUint aCommand )       // aCommand command enumeration.
    62     {
    62     {
    63 	TEFLOGSTRING( KTAINT, "PE CPEParserManufacturerHandler::ProcessCommandL" );
    63     TEFLOGSTRING( KTAINT, "PE CPEParserManufacturerHandler::ProcessCommandL" );
    64 
    64 
    65     switch ( aCommand )
    65     switch ( aCommand )
    66         {
    66         {
    67         case EShowVersion: // *#0000#
    67         case EShowVersion: // *#0000#
    68             {
    68             {
    69             TEFLOGSTRING( KTAINT, "PE CPEParserManufacturerHandler::ProcessCommandL, EShowVersion" );
    69             TEFLOGSTRING( KTAINT, "PE CPEParserManufacturerHandler::ProcessCommandL, EShowVersion" );
    70 			
    70             
    71 			TPEPhoneIdentityParameters phoneIdentity;
    71             TPEPhoneIdentityParameters phoneIdentity;
    72             phoneIdentity = iModel.DataStore()->PhoneIdentityParameters();
    72             phoneIdentity = iModel.DataStore()->PhoneIdentityParameters();
    73             if ( GetSwVersionAndPhoneModelL( phoneIdentity.iRevision ) == KErrNone )
    73             if ( GetSwVersionAndPhoneModelL( phoneIdentity.iRevision ) == KErrNone )
    74 				{
    74                 {
    75 				iModel.DataStore()->SetPhoneIdentityParameters( phoneIdentity );
    75                 iModel.DataStore()->SetPhoneIdentityParameters( phoneIdentity );
    76 				iModel.SendMessage( MEngineMonitor::EPEMessageShowVersion );
    76                 iModel.SendMessage( MEngineMonitor::EPEMessageShowVersion );
    77 				}
    77                 }
    78 			else
    78             else
    79 				{
    79                 {
    80 				iModel.SendMessage( MEngineMonitor::EPEMessageError );
    80                 iModel.SendMessage( MEngineMonitor::EPEMessageError );
    81 				TEFLOGSTRING( KTAERROR, 
    81                 TEFLOGSTRING( KTAERROR, 
    82 				    "PE CPEGSMPARSERMANUFACTURERHANDLER::PROCESSCOMMANDL: FAILED TO RETRIEVE SW VERSION" );
    82                     "PE CPEGSMPARSERMANUFACTURERHANDLER::PROCESSCOMMANDL: FAILED TO RETRIEVE SW VERSION" );
    83 				}
    83                 }
    84 			break;
    84             break;
    85             }
    85             }
    86         case EBadPinChange:    
    86         case EBadPinChange:    
    87             {
    87             {
    88             iModel.SendMessage( MEngineMonitor::EPEMessageBadPin1Change );
    88             iModel.SendMessage( MEngineMonitor::EPEMessageBadPin1Change );
    89             break;
    89             break;
   216     TEFLOGSTRING( KTAINT, "PE CPEParserManufacturerHandler::GetSwVersionAndPhoneModelL" );
   216     TEFLOGSTRING( KTAINT, "PE CPEParserManufacturerHandler::GetSwVersionAndPhoneModelL" );
   217     
   217     
   218     TInt errorCode = SysUtil::GetSWVersion( aSwVersion ) ;
   218     TInt errorCode = SysUtil::GetSWVersion( aSwVersion ) ;
   219     
   219     
   220     TEFLOGSTRING2( KTAINT,
   220     TEFLOGSTRING2( KTAINT,
   221     	"PE CPEParserManufacturerHandler::GetSwVersionAndPhoneModelL > SysUtil::GetSWVersion, error code: %d",
   221         "PE CPEParserManufacturerHandler::GetSwVersionAndPhoneModelL > SysUtil::GetSWVersion, error code: %d",
   222     	errorCode );
   222         errorCode );
   223 
   223 
   224     if ( errorCode == KErrNone )
   224     if ( errorCode == KErrNone )
   225 	    {
   225         {
   226 	    // Remove needless lines
   226         // Remove needless lines
   227 	    RemoveLinesAfterThreeLines( aSwVersion );
   227         RemoveLinesAfterThreeLines( aSwVersion );
   228 		// Add phone model
   228         // Add phone model
   229 		AppendPhoneModelL( aSwVersion );
   229         AppendPhoneModelL( aSwVersion );
   230 	    }
   230         }
   231 	    
   231         
   232     return errorCode;  
   232     return errorCode;  
   233     }
   233     }
   234 
   234 
   235 // -----------------------------------------------------------------------------
   235 // -----------------------------------------------------------------------------
   236 // CPEParserManufacturerHandler::RemoveNeedlessLinesL
   236 // CPEParserManufacturerHandler::RemoveNeedlessLinesL
   237 // Removes lines after 3 end-of-line (\n) chars.
   237 // Removes lines after 3 end-of-line (\n) chars.
   238 // -----------------------------------------------------------------------------
   238 // -----------------------------------------------------------------------------
   239 //
   239 //
   240 void CPEParserManufacturerHandler::RemoveLinesAfterThreeLines( 
   240 void CPEParserManufacturerHandler::RemoveLinesAfterThreeLines( 
   241 	TDes& aSwVersion ) 
   241     TDes& aSwVersion ) 
   242 	{
   242     {
   243 	TEFLOGSTRING( KTAINT, "PE CPEParserManufacturerHandler::RemoveLinesAfterThreeLines" );
   243     TEFLOGSTRING( KTAINT, "PE CPEParserManufacturerHandler::RemoveLinesAfterThreeLines" );
   244 	
   244     
   245     TInt lineFeedCount = 0;
   245     TInt lineFeedCount = 0;
   246     
   246     
   247     const TInt swVersionLength( aSwVersion.Length() );
   247     const TInt swVersionLength( aSwVersion.Length() );
   248     for( TInt i = 0; i < swVersionLength ; i++ )
   248     for( TInt i = 0; i < swVersionLength ; i++ )
   249         {
   249         {
   254                 {
   254                 {
   255                 const TInt charsToDelete( aSwVersion.Length() - i );
   255                 const TInt charsToDelete( aSwVersion.Length() - i );
   256                 
   256                 
   257                 // Dont delete the last line feed characted, thats why
   257                 // Dont delete the last line feed characted, thats why
   258                 // i + 1.
   258                 // i + 1.
   259 				aSwVersion.Delete( i + 1, charsToDelete );
   259                 aSwVersion.Delete( i + 1, charsToDelete );
   260                 return;
   260                 return;
   261                 }
   261                 }
   262             }
   262             }
   263         }
   263         }
   264 	}
   264     }
   265     
   265     
   266 // -----------------------------------------------------------------------------
   266 // -----------------------------------------------------------------------------
   267 // CPEParserManufacturerHandler::AppendPhoneModelL
   267 // CPEParserManufacturerHandler::AppendPhoneModelL
   268 // Reads phone model info from disk and appends it to aSwVersion.
   268 // Reads phone model info from disk and appends it to aSwVersion.
   269 // -----------------------------------------------------------------------------
   269 // -----------------------------------------------------------------------------
   270 //
   270 //
   271 void CPEParserManufacturerHandler::AppendPhoneModelL( 	
   271 void CPEParserManufacturerHandler::AppendPhoneModelL(   
   272 	TDes& aSwVersion ) 
   272     TDes& aSwVersion ) 
   273 	{	
   273     {   
   274 	RFile file;
   274     RFile file;
   275 	User::LeaveIfError( file.Open( iFsSession, 
   275     User::LeaveIfError( file.Open( iFsSession, 
   276 		                           KPESalesModelFileName, 
   276                                    KPESalesModelFileName, 
   277 		                           EFileShareReadersOnly | EFileRead ) );
   277                                    EFileShareReadersOnly | EFileRead ) );
   278 	CleanupClosePushL( file );
   278     CleanupClosePushL( file );
   279 	
   279     
   280 	HBufC* model = HBufC::NewLC( KPESalesModelNameMaxLength );
   280     HBufC* model = HBufC::NewLC( KPESalesModelNameMaxLength );
   281 	TPtr ptr = model->Des();
   281     TPtr ptr = model->Des();
   282 
   282 
   283 	// Read the data from file.
   283     // Read the data from file.
   284 	TFileText reader;
   284     TFileText reader;
   285 	reader.Set( file );
   285     reader.Set( file );
   286 	User::LeaveIfError( reader.Read( ptr ) );
   286     User::LeaveIfError( reader.Read( ptr ) );
   287 
   287 
   288 	// Append the phone model to aSwVersion
   288     // Append the phone model to aSwVersion
   289     aSwVersion.Append( *model );
   289     aSwVersion.Append( *model );
   290 	
   290     
   291 	CleanupStack::PopAndDestroy( 2 ); // model, file
   291     CleanupStack::PopAndDestroy( 2 ); // model, file
   292 	}
   292     }
   293 
   293 
   294 // End of File
   294 // End of File