|
1 /* |
|
2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). |
|
3 * All rights reserved. |
|
4 * This component and the accompanying materials are made available |
|
5 * under the terms of the License "Eclipse Public License v1.0" |
|
6 * which accompanies this distribution, and is available |
|
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 * |
|
9 * Initial Contributors: |
|
10 * Nokia Corporation - initial contribution. |
|
11 * |
|
12 * Contributors: |
|
13 * |
|
14 * Description: ?Description |
|
15 * |
|
16 */ |
|
17 |
|
18 // INCLUDE FILES |
|
19 #include <etelmm.h> |
|
20 #include <tisi.h> |
|
21 #include "tsylogger.h" |
|
22 #include <ctsy/serviceapi/mmtsy_ipcdefs.h> |
|
23 #include "cmmmessagerouter.h" |
|
24 #include "cmmphonebookstoreoperationbase.h" |
|
25 #include "cmmphonemesshandler.h" |
|
26 #include "cmmuiccmesshandler.h" |
|
27 |
|
28 #ifdef INTERNAL_RD_USIM_PHONEBOOK_GAS_AND_AAS |
|
29 #include "cmmphonebookalphastring.h" |
|
30 #endif // INTERNAL_RD_USIM_PHONEBOOK_GAS_AND_AAS |
|
31 |
|
32 #include "osttracedefinitions.h" |
|
33 #ifdef OST_TRACE_COMPILER_IN_USE |
|
34 #include "cmmphonebookstoreoperationbasetraces.h" |
|
35 #endif |
|
36 // EXTERNAL DATA STRUCTURES |
|
37 // None |
|
38 |
|
39 // EXTERNAL FUNCTION PROTOTYPES |
|
40 // None |
|
41 |
|
42 // CONSTANTS |
|
43 //const TUint8 KMinLength = 1; |
|
44 |
|
45 |
|
46 // MACROS |
|
47 // None |
|
48 |
|
49 // LOCAL CONSTANTS AND MACROS |
|
50 // None |
|
51 |
|
52 // MODULE DATA STRUCTURES |
|
53 // None |
|
54 |
|
55 // LOCAL FUNCTION PROTOTYPES |
|
56 // None |
|
57 |
|
58 // ==================== LOCAL FUNCTIONS ====================================== |
|
59 // None |
|
60 |
|
61 |
|
62 // ================= MEMBER FUNCTIONS ======================================== |
|
63 |
|
64 // --------------------------------------------------------------------------- |
|
65 // CMmPhoneBookStoreOperationBase::CMmPhoneBookStoreOperationBase |
|
66 // C++ default constructor can NOT contain any code, that |
|
67 // might leave. |
|
68 // --------------------------------------------------------------------------- |
|
69 // |
|
70 CMmPhoneBookStoreOperationBase::CMmPhoneBookStoreOperationBase() |
|
71 { |
|
72 TFLOGSTRING("TSY: CMmPhoneBookStoreOperationBase::\ |
|
73 CMmPhoneBookStoreOperationBase"); |
|
74 OstTrace0( TRACE_NORMAL, CMMPHONEBOOKSTOREOPERATIONBASE_CMMPHONEBOOKSTOREOPERATIONBASE, "CMmPhoneBookStoreOperationBase::CMmPhoneBookStoreOperationBase" ); |
|
75 |
|
76 iRet = KErrNone; |
|
77 iWriteLocation = 0; |
|
78 iNumberOfFdnInfoResps = 0; |
|
79 iWriteLocation = 0; |
|
80 iRet = 0; |
|
81 } |
|
82 |
|
83 // --------------------------------------------------------------------------- |
|
84 // CMmPhoneBookStoreOperationBase::~CMmPhoneBookStoreOperationBase |
|
85 // C++ destructor. |
|
86 // --------------------------------------------------------------------------- |
|
87 // |
|
88 CMmPhoneBookStoreOperationBase::~CMmPhoneBookStoreOperationBase() |
|
89 { |
|
90 TFLOGSTRING("TSY: CMmPhoneBookStoreOperationBase::\ |
|
91 ~CMmPhoneBookStoreOperationBase"); |
|
92 OstTrace0( TRACE_NORMAL, DUP1_CMMPHONEBOOKSTOREOPERATIONBASE_CMMPHONEBOOKSTOREOPERATIONBASE, "CMmPhoneBookStoreOperationBase::~CMmPhoneBookStoreOperationBase" ); |
|
93 } |
|
94 |
|
95 // --------------------------------------------------------------------------- |
|
96 // CMmPhoneBookStoreOperationBase::CancelReq |
|
97 // Cancels the operation. Canceling of canceled operation is allowed. |
|
98 // --------------------------------------------------------------------------- |
|
99 // |
|
100 void CMmPhoneBookStoreOperationBase::CancelReq() |
|
101 { |
|
102 TFLOGSTRING("TSY: CMmPhoneBookStoreOperationBase::CancelReq - does nothing"); |
|
103 OstTrace0( TRACE_NORMAL, DUP2_CMMPHONEBOOKSTOREOPERATIONBASE_CANCELREQ, "CMmPhoneBookStoreOperationBase::CancelReq - does nothing" ); |
|
104 } |
|
105 |
|
106 // --------------------------------------------------------------------------- |
|
107 // CMmPhoneBookStoreOperationBase::PrepareReq |
|
108 // Prepares the operation (makes it ready to be launched). |
|
109 // --------------------------------------------------------------------------- |
|
110 // |
|
111 TInt CMmPhoneBookStoreOperationBase::PrepareReq( |
|
112 TInt /*aIpc*/, |
|
113 const CMmDataPackage* /*aDataPackage*/ |
|
114 ) |
|
115 { |
|
116 TFLOGSTRING("TSY: CMmPhoneBookStoreOperationBase::PrepareReq - not supported"); |
|
117 OstTrace0( TRACE_NORMAL, DUP3_CMMPHONEBOOKSTOREOPERATIONBASE_PREPAREREQ, "CMmPhoneBookStoreOperationBase::PrepareReq - not supported" ); |
|
118 return KErrNotSupported; |
|
119 } |
|
120 |
|
121 // --------------------------------------------------------------------------- |
|
122 // CMmPhoneBookStoreOperationBase::IsPrepared |
|
123 // Checks if operation is ready to be launched. |
|
124 // --------------------------------------------------------------------------- |
|
125 // |
|
126 TBool CMmPhoneBookStoreOperationBase::IsPrepared() const |
|
127 { |
|
128 TFLOGSTRING("TSY: CMmPhoneBookStoreOperationBase::IsPrepared"); |
|
129 OstTrace0( TRACE_NORMAL, CMMPHONEBOOKSTOREOPERATIONBASE_ISPREPARED, "CMmPhoneBookStoreOperationBase::IsPrepared" ); |
|
130 return EFalse; |
|
131 } |
|
132 |
|
133 // --------------------------------------------------------------------------- |
|
134 // CMmPhoneBookStoreOperationBase::LaunchReq |
|
135 // Launches activated operation. |
|
136 // --------------------------------------------------------------------------- |
|
137 // |
|
138 TInt CMmPhoneBookStoreOperationBase::LaunchReq() |
|
139 { |
|
140 TFLOGSTRING("TSY: CMmPhoneBookStoreOperationBase::LaunchReq - not supported"); |
|
141 OstTrace0( TRACE_NORMAL, DUP3_CMMPHONEBOOKSTOREOPERATIONBASE_LAUNCHREQ, "CMmPhoneBookStoreOperationBase::LaunchReq - not supported" ); |
|
142 return KErrNotSupported; |
|
143 } |
|
144 |
|
145 // --------------------------------------------------------------------------- |
|
146 // CMmPhoneBookStoreOperationBase::CompleteReq |
|
147 // Completes the request. |
|
148 // --------------------------------------------------------------------------- |
|
149 // |
|
150 TInt CMmPhoneBookStoreOperationBase::CompleteReq( TInt /*aErrorCode*/ ) |
|
151 { |
|
152 TFLOGSTRING("TSY: CMmPhoneBookStoreOperationBase::CompleteReq - not supported"); |
|
153 OstTrace0( TRACE_NORMAL, DUP2_CMMPHONEBOOKSTOREOPERATIONBASE_COMPLETEREQ, "CMmPhoneBookStoreOperationBase::CompleteReq - not supported" ); |
|
154 return KErrNotSupported; |
|
155 } |
|
156 |
|
157 // --------------------------------------------------------------------------- |
|
158 // TUint8 CMmPhoneBookStoreOperationBase::TransId |
|
159 // Gets transactionId |
|
160 // --------------------------------------------------------------------------- |
|
161 // |
|
162 TUint8 CMmPhoneBookStoreOperationBase::TransId() |
|
163 { |
|
164 TFLOGSTRING("TSY: CMmPhoneBookStoreOperationBase::TransId"); |
|
165 OstTrace0( TRACE_NORMAL, CMMPHONEBOOKSTOREOPERATIONBASE_TRANSID, "CMmPhoneBookStoreOperationBase::TransId" ); |
|
166 |
|
167 return iTransactionId; |
|
168 } |
|
169 |
|
170 |
|
171 |
|
172 // --------------------------------------------------------------------------- |
|
173 // CMmPhoneBookStoreOperationBase::ConvertToSimPhoneBookType |
|
174 // Converts internal phonebook number to server phonebook number |
|
175 // --------------------------------------------------------------------------- |
|
176 // |
|
177 TUint16 CMmPhoneBookStoreOperationBase::ConvertToSimPhoneBookType( |
|
178 const TUint8 aPbMask ) |
|
179 { |
|
180 TFLOGSTRING2("TSY: CMmPhoneBookStoreOperationBase::\ |
|
181 ConvertToSimPhoneBookType SourcePBType: 0x%x", aPbMask); |
|
182 OstTraceExt1( TRACE_NORMAL, CMMPHONEBOOKSTOREOPERATIONBASE_CONVERTTOSIMPHONEBOOKTYPE, "CMmPhoneBookStoreOperationBase::ConvertToSimPhoneBookType;aPbMask=%hhx", aPbMask ); |
|
183 |
|
184 TUint16 phoneBookType( KMaskUnspecifiedType ); |
|
185 |
|
186 switch( aPbMask ) |
|
187 { |
|
188 case KMaskMbdnType: |
|
189 { |
|
190 phoneBookType = PB_MBDN_FID; |
|
191 break; |
|
192 } |
|
193 case KMaskAdnType: |
|
194 { |
|
195 phoneBookType = PB_ADN_FID; |
|
196 break; |
|
197 } |
|
198 case KMaskFdnType: |
|
199 { |
|
200 phoneBookType = PB_FDN_FID; |
|
201 break; |
|
202 } |
|
203 case KMaskSdnType: |
|
204 { |
|
205 phoneBookType = PB_SDN_FID; |
|
206 break; |
|
207 } |
|
208 case KMaskVoiceMailBox: |
|
209 {// When Mask is SDN we set service type to SIM_PB_VMBX |
|
210 phoneBookType = PB_VMBX_FID; |
|
211 break; |
|
212 } |
|
213 case KMaskBdnType: |
|
214 { |
|
215 phoneBookType = PB_BDN_FID; |
|
216 break; |
|
217 } |
|
218 default: |
|
219 { |
|
220 OstTrace1( TRACE_NORMAL, DUP2_CMMPHONEBOOKSTOREOPERATIONBASE_CONVERTTOSIMPHONEBOOKTYPE, "CMmPhoneBookStoreOperationBase::ConvertToSimPhoneBookType;ASSERT phoneBookType (%d) != KMaskUnspecifiedType", phoneBookType ); |
|
221 TF_ASSERT( phoneBookType != KMaskUnspecifiedType ); |
|
222 break; |
|
223 } |
|
224 } |
|
225 |
|
226 TFLOGSTRING2("TSY: CMmPhoneBookStoreOperationBase::\ |
|
227 ConvertToSimPhoneBookType phoneBookType: 0x%x" ,phoneBookType ); |
|
228 OstTrace1( TRACE_NORMAL, DUP1_CMMPHONEBOOKSTOREOPERATIONBASE_CONVERTTOSIMPHONEBOOKTYPE, "CMmPhoneBookStoreOperationBase::ConvertToSimPhoneBookType;phoneBookType=%x", phoneBookType ); |
|
229 |
|
230 return phoneBookType; |
|
231 } |
|
232 |
|
233 |
|
234 |
|
235 void CMmPhoneBookStoreOperationBase::ConvertPBTypeToPbName(const TUint aPhoneBook , TName& apbName) |
|
236 { |
|
237 switch(aPhoneBook) |
|
238 { |
|
239 case EPhonebookTypeAdn: |
|
240 apbName.Copy(KETelIccAdnPhoneBook); |
|
241 break; |
|
242 case EPhonebookTypeFdn: |
|
243 apbName.Copy(KETelIccFdnPhoneBook); |
|
244 break; |
|
245 case EPhonebookTypeBdn: |
|
246 apbName.Copy(KETelIccBdnPhoneBook); |
|
247 break; |
|
248 case EPhonebookTypeSdn: |
|
249 apbName.Copy(KETelIccSdnPhoneBook); |
|
250 break; |
|
251 case EPhonebookTypeMBDN: |
|
252 apbName.Copy(KETelIccMbdnPhoneBook); |
|
253 break; |
|
254 case EPhonebookTypeVMBX: |
|
255 apbName.Copy(KETelIccVoiceMailBox); |
|
256 break; |
|
257 |
|
258 default: |
|
259 break; |
|
260 } |
|
261 } |
|
262 |
|
263 |
|
264 // --------------------------------------------------------------------------- |
|
265 // CMmPhoneBookStoreOperationBase::ConvertToPBtype |
|
266 // Converts client phonebook type to internal phonebook mask |
|
267 // --------------------------------------------------------------------------- |
|
268 // |
|
269 TUint8 CMmPhoneBookStoreOperationBase::ConvertToPBtype( |
|
270 const TName& aPBType ) |
|
271 { |
|
272 TFLOGSTRING("TSY: CMmPhoneBookStoreOperationBase::ConvertToPBtype"); |
|
273 OstTrace0( TRACE_NORMAL, CMMPHONEBOOKSTOREOPERATIONBASE_CONVERTTOPBTYPE, "CMmPhoneBookStoreOperationBase::ConvertToPBtype" ); |
|
274 |
|
275 TUint8 pbMask( 0 ); |
|
276 |
|
277 if ( 0 == aPBType.CompareF( KETelIccAdnPhoneBook ) ) |
|
278 { |
|
279 pbMask = KMaskAdnType; |
|
280 } |
|
281 else if ( 0 == aPBType.CompareF( KETelIccBdnPhoneBook ) ) |
|
282 { |
|
283 pbMask = KMaskBdnType; |
|
284 } |
|
285 else if ( 0 == aPBType.CompareF( KETelIccSdnPhoneBook ) ) |
|
286 { |
|
287 pbMask = KMaskSdnType; |
|
288 } |
|
289 else if ( 0 == aPBType.CompareF( KETelIccFdnPhoneBook ) ) |
|
290 { |
|
291 pbMask = KMaskFdnType; |
|
292 } |
|
293 else if ( 0 == aPBType.CompareF( KETelIccVoiceMailBox ) ) |
|
294 { |
|
295 pbMask = KMaskVoiceMailBox; |
|
296 } |
|
297 else if ( 0 == aPBType.CompareF( KETelIccMbdnPhoneBook ) ) |
|
298 { |
|
299 pbMask = KMaskMbdnType; |
|
300 } |
|
301 else |
|
302 { |
|
303 pbMask = KMaskUnspecifiedType; |
|
304 } |
|
305 |
|
306 TFLOGSTRING2("TSY: CMmPhoneBookStoreOperationBase::ConvertToPBtype \ |
|
307 phonebooktype: %d", pbMask); |
|
308 OstTraceExt1( TRACE_NORMAL, DUP2_CMMPHONEBOOKSTOREOPERATIONBASE_CONVERTTOPBTYPE, "CMmPhoneBookStoreOperationBase::ConvertToPBtype;pbMask=%hhx", pbMask ); |
|
309 |
|
310 return pbMask; |
|
311 } |
|
312 |
|
313 // --------------------------------------------------------------------------- |
|
314 // CMmPhoneBookStoreOperationBase::ConvertToPBname |
|
315 // Converts internal phonebook mask to client phonebook type |
|
316 // --------------------------------------------------------------------------- |
|
317 // |
|
318 void CMmPhoneBookStoreOperationBase::ConvertToPBname( |
|
319 const TUint8 aTrans, |
|
320 TName& aName ) |
|
321 { |
|
322 TFLOGSTRING2("TSY: CMmPhoneBookStoreOperationBase::ConvertToPBname \ |
|
323 source: %d" ,aTrans ); |
|
324 OstTraceExt1( TRACE_NORMAL, CMMPHONEBOOKSTOREOPERATIONBASE_CONVERTTOPBNAME, "CMmPhoneBookStoreOperationBase::ConvertToPBname;source=%hhu", aTrans ); |
|
325 |
|
326 // get number of phonebook type from transaction Id |
|
327 TUint8 numOfPbType( aTrans & KMaskPhonebookType ); |
|
328 |
|
329 if ( KMaskAdnType == numOfPbType ) |
|
330 { |
|
331 TFLOGSTRING("TSY: CMmPhoneBookStoreOperationBase::ConvertToPBname \ |
|
332 - ADN"); |
|
333 OstTrace0( TRACE_NORMAL, DUP1_CMMPHONEBOOKSTOREOPERATIONBASE_CONVERTTOPBNAME, "CMmPhoneBookStoreOperationBase::ConvertToPBname - ADN" ); |
|
334 aName = KETelIccAdnPhoneBook; |
|
335 } |
|
336 else if ( KMaskFdnType == numOfPbType ) |
|
337 { |
|
338 TFLOGSTRING("TSY: CMmPhoneBookStoreOperationBase::ConvertToPBname \ |
|
339 - FDN"); |
|
340 OstTrace0( TRACE_NORMAL, DUP2_CMMPHONEBOOKSTOREOPERATIONBASE_CONVERTTOPBNAME, "CMmPhoneBookStoreOperationBase::ConvertToPBname - FDN" ); |
|
341 aName = KETelIccFdnPhoneBook; |
|
342 } |
|
343 else if ( KMaskSdnType == numOfPbType ) |
|
344 { |
|
345 TFLOGSTRING("TSY: CMmPhoneBookStoreOperationBase::ConvertToPBname \ |
|
346 - SDN"); |
|
347 OstTrace0( TRACE_NORMAL, DUP3_CMMPHONEBOOKSTOREOPERATIONBASE_CONVERTTOPBNAME, "CMmPhoneBookStoreOperationBase::ConvertToPBname - SDN" ); |
|
348 aName = KETelIccSdnPhoneBook; |
|
349 } |
|
350 else if ( KMaskBdnType == numOfPbType ) |
|
351 { |
|
352 TFLOGSTRING("TSY: CMmPhoneBookStoreOperationBase::ConvertToPBname \ |
|
353 - BDN"); |
|
354 OstTrace0( TRACE_NORMAL, DUP4_CMMPHONEBOOKSTOREOPERATIONBASE_CONVERTTOPBNAME, "CMmPhoneBookStoreOperationBase::ConvertToPBname - BDN" ); |
|
355 aName = KETelIccBdnPhoneBook; |
|
356 } |
|
357 else if ( KMaskVoiceMailBox == numOfPbType ) |
|
358 { |
|
359 TFLOGSTRING("TSY: CMmPhoneBookStoreOperationBase::ConvertToPBname \ |
|
360 - VMBX"); |
|
361 OstTrace0( TRACE_NORMAL, DUP5_CMMPHONEBOOKSTOREOPERATIONBASE_CONVERTTOPBNAME, "CMmPhoneBookStoreOperationBase::ConvertToPBname - VMBX" ); |
|
362 aName = KETelIccVoiceMailBox; |
|
363 } |
|
364 else if ( KMaskMbdnType == numOfPbType ) |
|
365 { |
|
366 TFLOGSTRING("TSY: CMmPhoneBookStoreOperationBase::ConvertToPBname \ |
|
367 - MBDN"); |
|
368 OstTrace0( TRACE_NORMAL, DUP6_CMMPHONEBOOKSTOREOPERATIONBASE_CONVERTTOPBNAME, "CMmPhoneBookStoreOperationBase::ConvertToPBname - MBDN" ); |
|
369 aName = KETelIccMbdnPhoneBook; |
|
370 } |
|
371 else |
|
372 { |
|
373 TFLOGSTRING("TSY: CMmPhoneBookStoreOperationBase::ConvertToPBname \ |
|
374 - unknown -> Error situation!" ); |
|
375 OstTrace0( TRACE_NORMAL, DUP7_CMMPHONEBOOKSTOREOPERATIONBASE_CONVERTTOPBNAME, "CMmPhoneBookStoreOperationBase::ConvertToPBname - unknown -> Error situation!" ); |
|
376 //Nothing can do. |
|
377 } |
|
378 } |
|
379 |
|
380 |
|
381 |
|
382 |
|
383 // --------------------------------------------------------------------------- |
|
384 // CMmPhoneBookStoreOperationBase::SeparatePhoneBookEntryFromIsiMsgL |
|
385 // Separate phonebook entry from ISI message |
|
386 // --------------------------------------------------------------------------- |
|
387 // |
|
388 TInt CMmPhoneBookStoreOperationBase::SeparatePhoneBookEntryFromUiccMsgL( |
|
389 const TDesC8& aFileData, // ISI message |
|
390 TDes8& aNameBuf, |
|
391 TUint16 aSimPhonebookType) // Entry to be filled |
|
392 { |
|
393 TInt ret( KErrNone ); |
|
394 TBool nameNumberFound (ETrue); |
|
395 TUint8 nameLength (0); |
|
396 TUint8 numLength(0); |
|
397 |
|
398 // Maximum record length will be RecordLength -14 |
|
399 // Actual string length can be find the first FF , which indicates that after |
|
400 // that its empty |
|
401 nameLength = aFileData.Find(&KTagUnusedbyte,1); |
|
402 // minus 1 is for TON/NPI digit , which is 1 byte long |
|
403 numLength = aFileData[iRecordLength -14 + 1] - 1; |
|
404 |
|
405 if(nameLength == 1 && numLength == 1) |
|
406 nameNumberFound = EFalse; |
|
407 |
|
408 switch(aSimPhonebookType) |
|
409 { |
|
410 case PB_FDN_FID: |
|
411 case PB_BDN_FID: |
|
412 case PB_MBDN_FID: |
|
413 case PB_MSISDN_FID: |
|
414 case PB_VMBX_FID: |
|
415 { |
|
416 // Save name |
|
417 if ( KMinLength < nameLength ) |
|
418 { |
|
419 TFLOGSTRING("TSY: CMmPhoneBookStoreOperationBase::\ |
|
420 SeparatePhoneBookEntryFromIsiMsgL. Saving name."); |
|
421 OstTrace0( TRACE_NORMAL, DUP1_CMMPHONEBOOKSTOREOPERATIONBASE_SEPARATEPHONEBOOKENTRYFROMISIMSGL, "CMmPhoneBookStoreOperationBase::SeparatePhoneBookEntryFromIsiMsgL, Saving name" ); |
|
422 |
|
423 aNameBuf.Copy(aFileData.Mid(0,nameLength)); |
|
424 } |
|
425 //no else |
|
426 |
|
427 // Save number |
|
428 if ( KMinLength < numLength ) |
|
429 { |
|
430 // Store number in buffer |
|
431 iNumberBuf.Append(aFileData.Mid(10,numLength)); |
|
432 } |
|
433 //no else |
|
434 |
|
435 } |
|
436 break; |
|
437 default: |
|
438 // None |
|
439 break; |
|
440 } |
|
441 |
|
442 if(!nameNumberFound) |
|
443 ret = KErrNotFound; |
|
444 |
|
445 return ret; |
|
446 |
|
447 } |
|
448 |
|
449 |
|
450 void CMmPhoneBookStoreOperationBase::StorePhonebookEntry( |
|
451 TDes8& /*aName*/, |
|
452 TDes8& /*aNumber*/, |
|
453 CPhoneBookStoreEntry& /*aEntry*/) |
|
454 { |
|
455 |
|
456 } |
|
457 |
|
458 // --------------------------------------------------------------------------- |
|
459 // CMmPhoneBookStoreOperationBase::ConvertOperationToClientIPCType |
|
460 // Converts internal request mask to client ipc request. |
|
461 // --------------------------------------------------------------------------- |
|
462 // |
|
463 void CMmPhoneBookStoreOperationBase::ConvertOperationToClientIPCType( |
|
464 TInt& aDestination, |
|
465 const TUint8 aSource ) |
|
466 { |
|
467 TFLOGSTRING2("TSY: CMmPhoneBookStoreOperationBase::\ |
|
468 ConvertOperationToClientIPCType - source: %d", aSource ); |
|
469 OstTraceExt1( TRACE_NORMAL, CMMPHONEBOOKSTOREOPERATIONBASE_CONVERTOPERATIONTOCLIENTIPCTYPE, "CMmPhoneBookStoreOperationBase::ConvertOperationToClientIPCType;aSource=%hhu", aSource ); |
|
470 |
|
471 switch( aSource ) |
|
472 { |
|
473 case KOperationInit: |
|
474 { |
|
475 aDestination = EMmTsyPhoneBookStoreInitIPC; |
|
476 break; |
|
477 } |
|
478 case KOperationCache: |
|
479 { |
|
480 aDestination = EMmTsyPhoneBookStoreCacheIPC; |
|
481 break; |
|
482 } |
|
483 case KOperationRead: |
|
484 { |
|
485 aDestination = EMmTsyPhoneBookStoreReadIPC; |
|
486 break; |
|
487 } |
|
488 case KOperationWrite: |
|
489 case KOperationReWrite: |
|
490 { |
|
491 aDestination = EMmTsyPhoneBookStoreWriteIPC; |
|
492 break; |
|
493 } |
|
494 case KOperationDelete: |
|
495 case KOperationDeleteWrite: |
|
496 { |
|
497 aDestination = EMmTsyPhoneBookStoreDeleteIPC; |
|
498 break; |
|
499 } |
|
500 case KOperationDeleteAll: |
|
501 { |
|
502 aDestination = EMmTsyPhoneBookStoreDeleteAllIPC; |
|
503 break; |
|
504 } |
|
505 case KOperationGetMailBoxNumber: |
|
506 { |
|
507 aDestination = EMobilePhoneGetMailboxNumbers; |
|
508 break; |
|
509 } |
|
510 default: //KOperationUnknown |
|
511 { |
|
512 TFLOGSTRING("TSY: CMmPhoneBookStoreOperationBase::\ |
|
513 ConvertOperationToClientIPCType - Default case" ); |
|
514 OstTrace0( TRACE_NORMAL, DUP1_CMMPHONEBOOKSTOREOPERATIONBASE_CONVERTOPERATIONTOCLIENTIPCTYPE, "CMmPhoneBookStoreOperationBase::ConvertOperationToClientIPCType, Default case" ); |
|
515 aDestination = KErrNotFound; |
|
516 break; |
|
517 } |
|
518 } |
|
519 } |
|
520 |
|
521 |
|
522 |
|
523 // --------------------------------------------------------------------------- |
|
524 // CMmPhoneBookStoreOperationBase::HandleFcpData |
|
525 // Handles FCP data for both SIm and USIM card |
|
526 // to get the different parameters |
|
527 // --------------------------------------------------------------------------- |
|
528 // |
|
529 TInt CMmPhoneBookStoreOperationBase::HandleFcpData( const TDesC8 &aFileData, TInt& aValue , TUint8 aParam ) |
|
530 { |
|
531 TFLOGSTRING("TSY: CMmPhoneBookStoreOperationBase::HandleFcpData"); |
|
532 OstTrace0( TRACE_NORMAL, CMMPHONEBOOKSTOREOPERATIONBASE_HANDLEFCPDATA, "CMmPhoneBookStoreOperationBase::HandleFcpData" ); |
|
533 |
|
534 |
|
535 TInt ret(KErrNone); |
|
536 if(UICC_CARD_TYPE_UICC == iMmUiccMessHandler->GetCardType()) |
|
537 { |
|
538 switch(aParam) |
|
539 { |
|
540 case KRecordLength: |
|
541 { |
|
542 // get the offset for File Descriptor for all EF's |
|
543 TUint8 offset = aFileData.Find(&KTagFCIFileDescriptor,1); |
|
544 Get16bit(aValue, aFileData, (offset+4) ); |
|
545 } |
|
546 break; |
|
547 case KNoOfRecords: |
|
548 { |
|
549 // get the no of records |
|
550 TUint8 offset = aFileData.Find(&KTagFCIFileDescriptor,1); |
|
551 aValue = aFileData[offset + 6]; |
|
552 } |
|
553 break; |
|
554 case KFileSize: |
|
555 { |
|
556 // get the file size tith tag value "85" |
|
557 TUint8 offset = aFileData.Find(&KTagFCIFileSize,1); |
|
558 aValue = aFileData[offset + 2]; |
|
559 } |
|
560 break; |
|
561 case KFileIdentifier: |
|
562 { |
|
563 TUint8 offset = aFileData.Find(&KTagFCIFileIdentifier,1); |
|
564 Get16bit(aValue, aFileData, (offset+2) ); |
|
565 } |
|
566 break; |
|
567 default: |
|
568 { |
|
569 TFLOGSTRING("TSY: CMmPhoneBookStoreOperationBase::HandleFcpData - No such parameter exist in UICC"); |
|
570 OstTrace0( TRACE_NORMAL, DUP1_CMMPHONEBOOKSTOREOPERATIONBASE_HANDLEFCPDATA, "CMmPhoneBookStoreOperationBase::HandleFcpData - No such parameter exist in UICC" ); |
|
571 } |
|
572 break; |
|
573 } |
|
574 } |
|
575 else if(UICC_CARD_TYPE_ICC == iMmUiccMessHandler->GetCardType()) |
|
576 { |
|
577 switch(aParam) |
|
578 { |
|
579 case KRecordLength: |
|
580 { |
|
581 // 14 is the index for record length Data |
|
582 aValue = aFileData[14]; |
|
583 } |
|
584 break; |
|
585 case KNoOfRecords: |
|
586 { |
|
587 // 2 is the index value for File Size Data |
|
588 TInt fileSize(0); |
|
589 Get16bit(fileSize, aFileData, 2 ); |
|
590 |
|
591 // 14 is the index for record Length Data |
|
592 TInt recordLength(0); |
|
593 recordLength = aFileData[14]; |
|
594 |
|
595 // get the No of records |
|
596 |
|
597 aValue = (fileSize/recordLength); |
|
598 } |
|
599 break; |
|
600 case KFileSize: |
|
601 { |
|
602 // 2 is the index location for File Size which is 2 bytes long |
|
603 Get16bit(aValue, aFileData, 2 ); |
|
604 } |
|
605 break; |
|
606 case KFileIdentifier: |
|
607 { |
|
608 // 4 is the index location for File ID which is 2 bytes long |
|
609 Get16bit(aValue, aFileData, 4 ); |
|
610 } |
|
611 break; |
|
612 case KFileStatus: |
|
613 { |
|
614 // 11 is index value for File Status |
|
615 aValue = aFileData[11]; |
|
616 } |
|
617 default: |
|
618 TFLOGSTRING("TSY: CMmPhoneBookStoreOperationBase::HandleFcpData - No such parameter exist in ICC"); |
|
619 OstTrace0( TRACE_NORMAL, DUP2_CMMPHONEBOOKSTOREOPERATIONBASE_HANDLEFCPDATA, "CMmPhoneBookStoreOperationBase::HandleFcpData - No such parameter exist in ICC Card" ); |
|
620 break; |
|
621 } |
|
622 } |
|
623 return ret; |
|
624 } |
|
625 |
|
626 |
|
627 |
|
628 // ----------------------------------------------------------------------------- |
|
629 // CMmPhoneBookStoreOperationBase::Get16bit |
|
630 // Copies unsigned 16-bit word from source descriptor from location pointed |
|
631 // by index |
|
632 // ----------------------------------------------------------------------------- |
|
633 // |
|
634 void CMmPhoneBookStoreOperationBase::Get16bit |
|
635 ( |
|
636 TInt& aTarget, //Target |
|
637 const TDesC8& aSource, //Source |
|
638 TInt aIndex //Index |
|
639 ) |
|
640 { |
|
641 TFLOGSTRING("TSY: CMmPhoneBookStoreOperationBase::Get16bit"); |
|
642 OstTrace0( TRACE_NORMAL, CMMPHONEBOOKSTOREOPERATIONBASE_GET16BIT, "CMmPhoneBookStoreOperationBase::Get16bit" ); |
|
643 |
|
644 |
|
645 if ( aIndex + 1 < aSource.Length() ) |
|
646 { |
|
647 aTarget = TUint16( aSource[aIndex] ) << 8; |
|
648 aTarget = TUint16( aTarget | aSource[aIndex + 1] ); |
|
649 } |
|
650 } |
|
651 |
|
652 |
|
653 |
|
654 // End of File |