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 |