506 |
506 |
507 if( !iStoreFormat ) |
507 if( !iStoreFormat ) |
508 { |
508 { |
509 TFileName fileName; |
509 TFileName fileName; |
510 TParse parse; |
510 TParse parse; |
511 |
511 |
512 parse.Set( GetStoreFormatResourceFileL(), &KDC_RESOURCE_FILES_DIR, NULL ); |
512 // Locate the resource file |
|
513 TFileName dllFileName; |
|
514 Dll::FileName( dllFileName ); |
|
515 |
|
516 TFileName resourceFileName; |
|
517 resourceFileName.Copy( TParsePtrC( dllFileName ).Drive() ); |
|
518 |
|
519 resourceFileName.Append( GetStoreFormatResourceFileL() ); |
|
520 |
|
521 parse.Set( resourceFileName, &KDC_RESOURCE_FILES_DIR, NULL ); |
513 |
522 |
514 fileName = parse.FullName(); |
523 fileName = parse.FullName(); |
|
524 |
|
525 DBG_ARGS(_S("CNSmlContactsDataStore::SetOwnStoreFormatL(): '%S'"), &parse.FullName()); |
515 |
526 |
516 RResourceFile resourceFile; |
527 RResourceFile resourceFile; |
517 BaflUtils::NearestLanguageFile( iRfs, fileName ); |
528 BaflUtils::NearestLanguageFile( iRfs, fileName ); |
518 |
529 |
519 resourceFile.OpenL( iRfs, fileName ); |
530 resourceFile.OpenL( iRfs, fileName ); |
650 |
661 |
651 TInt err = KErrNone; |
662 TInt err = KErrNone; |
652 |
663 |
653 if ( iState != ENSmlOpenAndWaiting ) |
664 if ( iState != ENSmlOpenAndWaiting ) |
654 { |
665 { |
|
666 _DBG_FILE("CNSmlContactsDataStore::DoCreateItemL - KErrNotReady: END"); |
655 User::RequestComplete( iCallerStatus, KErrNotReady ); |
667 User::RequestComplete( iCallerStatus, KErrNotReady ); |
656 _DBG_FILE("CNSmlContactsDataStore::DoCreateItemL - KErrNotReady: END"); |
|
657 return; |
668 return; |
658 } |
669 } |
659 |
670 |
660 iItemSize = aSize; // Size sent from server |
671 iItemSize = aSize; // Size sent from server |
661 iModType = ENSmlCntItemAdd; |
672 iModType = ENSmlCntItemAdd; |
683 if( ( aMimeType.MatchF( KNSmlvCard21Name ) < 0 ) && |
694 if( ( aMimeType.MatchF( KNSmlvCard21Name ) < 0 ) && |
684 ( aMimeType.MatchF( KNSmlvCard30Name ) < 0 ) && |
695 ( aMimeType.MatchF( KNSmlvCard30Name ) < 0 ) && |
685 // Allow using custom MIME type defined in store format resource file |
696 // Allow using custom MIME type defined in store format resource file |
686 ( aMimeType.MatchF( iUsedMimeType ) < 0 ) ) |
697 ( aMimeType.MatchF( iUsedMimeType ) < 0 ) ) |
687 { |
698 { |
|
699 _DBG_FILE("CNSmlContactsDataStore::DoCreateItemL - KErrNotSupported: END"); |
688 User::RequestComplete( iCallerStatus, KErrNotSupported ); |
700 User::RequestComplete( iCallerStatus, KErrNotSupported ); |
689 _DBG_FILE("CNSmlContactsDataStore::DoCreateItemL - KErrNotSupported: END"); |
|
690 return; |
701 return; |
691 } |
702 } |
692 |
703 |
693 // Is there enough space on drive ? |
704 // Is there enough space on drive ? |
694 if( DriveBelowCriticalLevelL( aSize ) ) |
705 if( DriveBelowCriticalLevelL( aSize ) ) |
1240 EXPORT_C void CNSmlContactsDataStore::DoResetChangeInfoL( TRequestStatus& aStatus ) |
1251 EXPORT_C void CNSmlContactsDataStore::DoResetChangeInfoL( TRequestStatus& aStatus ) |
1241 { |
1252 { |
1242 _DBG_FILE("CNSmlContactsDataStore::DoResetChangeInfoL(): begin"); |
1253 _DBG_FILE("CNSmlContactsDataStore::DoResetChangeInfoL(): begin"); |
1243 iCallerStatus = &aStatus; |
1254 iCallerStatus = &aStatus; |
1244 *iCallerStatus = KRequestPending; |
1255 *iCallerStatus = KRequestPending; |
1245 TInt error(KErrNone); |
1256 |
|
1257 iSnapshotRegistered = EFalse; |
1246 |
1258 |
1247 if( iChangeFinder ) |
1259 if( iChangeFinder ) |
1248 { |
1260 { |
1249 iChangeFinder->ResetL(); |
1261 iChangeFinder->ResetL(); |
1250 } |
1262 FetchModificationsL(); |
1251 |
1263 } |
1252 iSnapshotRegistered = EFalse; |
1264 |
1253 |
1265 User::RequestComplete( iCallerStatus, KErrNone ); |
1254 error = FetchModificationsL(); |
|
1255 |
|
1256 User::RequestComplete( iCallerStatus, error ); |
|
1257 |
1266 |
1258 _DBG_FILE("CNSmlContactsDataStore::DoResetChangeInfoL(): end"); |
1267 _DBG_FILE("CNSmlContactsDataStore::DoResetChangeInfoL(): end"); |
1259 } |
1268 } |
1260 |
1269 |
1261 // ---------------------------------------------------------------------------- |
1270 // ---------------------------------------------------------------------------- |
1524 CBufBase* bItem = LdoMergeLC( aUid, aItem ); |
1533 CBufBase* bItem = LdoMergeLC( aUid, aItem ); |
1525 HBufC8* hItemBuf = HBufC8::NewL( bItem->Size() + 80 ); |
1534 HBufC8* hItemBuf = HBufC8::NewL( bItem->Size() + 80 ); |
1526 *hItemBuf = bItem->Ptr(0); |
1535 *hItemBuf = bItem->Ptr(0); |
1527 CleanupStack::PopAndDestroy(); // bItem |
1536 CleanupStack::PopAndDestroy(); // bItem |
1528 CleanupStack::PushL( hItemBuf ); |
1537 CleanupStack::PushL( hItemBuf ); |
1529 //StripPropertyL( hItemBuf, KVersitTokenUID() ); |
1538 StripPropertyL( hItemBuf, KVersitTokenUID() ); |
|
1539 |
1530 TPtr8 hItemPtr( hItemBuf->Des() ); |
1540 TPtr8 hItemPtr( hItemBuf->Des() ); |
|
1541 HBufC8* endPropBuf = HBufC8::NewLC( KVersitTokenEND().Length() + KVersitTokenCRLF().Length() + KVersitTokenColon().Length() ); |
|
1542 TPtr8 endPropPtr( endPropBuf->Des() ); |
|
1543 endPropPtr.Append( KVersitTokenCRLF() ); |
|
1544 endPropPtr.Append( KVersitTokenEND() ); |
|
1545 endPropPtr.Append( KVersitTokenColon() ); |
|
1546 TInt endPos = hItemPtr.Find( endPropPtr ); |
|
1547 if( endPos == KErrNotFound ) |
|
1548 { |
|
1549 User::Leave( KErrNotSupported ); |
|
1550 } |
|
1551 hItemPtr.Insert( endPos, KVersitTokenCRLF() ); |
|
1552 endPos += KVersitTokenCRLF().Length(); |
|
1553 hItemPtr.Insert( endPos, KVersitTokenUID() ); |
|
1554 endPos += KVersitTokenUID().Length(); |
|
1555 hItemPtr.Insert( endPos, KVersitTokenColon() ); |
|
1556 endPos += KVersitTokenColon().Length(); |
|
1557 hItemPtr.Insert( endPos, *contactitem->iGuid ); |
1531 |
1558 |
1532 DBG_DUMP((void*)hItemPtr.Ptr(), hItemPtr.Length(), |
1559 DBG_DUMP((void*)hItemPtr.Ptr(), hItemPtr.Length(), |
1533 _S8("CNSmlContactsDataStore::LdoUpdateItemL(): MergedItem:")); |
1560 _S8("CNSmlContactsDataStore::LdoUpdateItemL(): MergedItem:")); |
|
1561 |
|
1562 CleanupStack::PopAndDestroy( endPropBuf ); |
1534 |
1563 |
1535 // TODO: Get it reviewed |
1564 // TODO: Get it reviewed |
1536 CArrayFixFlat<TUid>* entryArray = NULL; |
1565 CArrayFixFlat<TUid>* entryArray = NULL; |
1537 TRAP( ret, entryArray = iContactsDataStoreExtension->ImportContactsL( hItemPtr ) ); |
1566 TRAP( ret, entryArray = iContactsDataStoreExtension->ImportContactsL( hItemPtr ) ); |
1538 |
1567 |
1738 TInt error = RProperty::Get( KPSUidDataSynchronizationInternalKeys, |
1767 TInt error = RProperty::Get( KPSUidDataSynchronizationInternalKeys, |
1739 KDataSyncStatus, |
1768 KDataSyncStatus, |
1740 value ); |
1769 value ); |
1741 if ( error == KErrNone && value == EDataSyncRunning ) |
1770 if ( error == KErrNone && value == EDataSyncRunning ) |
1742 { |
1771 { |
1743 _DBG_FILE("CNSmlContactsDataStore::GetStoreFormatResourceFileL(): END"); |
1772 _DBG_FILE("CNSmlContactsDataStore::GetStoreFormatResourceFileL() 1.1.2: END"); |
1744 return KNSmlContactsStoreFormatRsc_1_1_2; |
1773 return KNSmlContactsStoreFormatRsc_1_1_2; |
1745 } |
1774 } |
1746 else // error or protocol version 1.2 |
1775 else // error or protocol version 1.2 |
1747 { |
1776 { |
1748 _DBG_FILE("CNSmlContactsDataStore::GetStoreFormatResourceFileL(): END"); |
1777 _DBG_FILE("CNSmlContactsDataStore::GetStoreFormatResourceFileL() 1.2: END"); |
1749 return KNSmlContactsStoreFormatRsc_1_2; |
1778 return KNSmlContactsStoreFormatRsc_1_2; |
1750 } |
1779 } |
1751 } |
1780 } |
1752 |
1781 |
1753 |
1782 |