diff -r 8d171aa39c3f -r 2bb96f4ecad8 omads/omadsappui/AspSyncUtil/src/AspProfile.cpp --- a/omads/omadsappui/AspSyncUtil/src/AspProfile.cpp Thu Jul 15 18:23:06 2010 +0300 +++ b/omads/omadsappui/AspSyncUtil/src/AspProfile.cpp Thu Aug 19 09:41:17 2010 +0300 @@ -40,8 +40,8 @@ #include #include -_LIT(KDrive ,"C:"); _LIT(KCharUnderscore, "_"); +_LIT( KNSmlAgendaFileNameForDefaultDB, "c:calendar" ); /******************************************************************************* * class TAspProviderItem @@ -898,10 +898,9 @@ if (task.iDataProviderId == KUidNSmlAdapterCalendar.iUid) { - CCalSession* session = CCalSession::NewL(); - CleanupStack::PushL(session); - TRAPD (err, session->OpenL(task.iClientDataSource)); - if (err == KErrNotFound) + TBool status = EFalse; + status = IsValidClientDataSourceL( task.iClientDataSource ); + if ( !status ) { TInt index = FindProviderIndex(task.iDataProviderId); TAspProviderItem& provider = ProviderItem(index); @@ -920,7 +919,7 @@ InitAllTasksL(); InitDataProvidersL(); } - CleanupStack::PopAndDestroy(session); + } goodContentCount++; @@ -1242,7 +1241,7 @@ if (aDataProvider.iDataProviderId == KUidNSmlAdapterCalendar.iUid ) { TBuf<128> calLocalDb ; - CreateCalLocalDatabaseL(calLocalDb); + CreateCalLocalDatabaseL(calLocalDb); task.CreateL(iProfile->Profile(), aDataProvider.iDataProviderId, KNullDesC, calLocalDb); } @@ -1317,8 +1316,7 @@ if (err != KErrNone) { CreateCalLocalDatabaseL(calLocalDb); - } - + } task.CreateL(iProfile->Profile(), aDataProviderId, aRemoteDatabase, calLocalDb); } @@ -1338,8 +1336,7 @@ if (err != KErrNone) { CreateCalLocalDatabaseL(calLocalDb); - } - + } task.CreateL(iProfile->Profile(), aDataProviderId, aRemoteDatabase, calLocalDb); } @@ -1390,8 +1387,7 @@ // void CAspContentList::CreateCalLocalDatabaseL(TDes& aCalName) { - - aCalName.Copy(KDrive); + TBuf buffer; iProfile->GetName(buffer); @@ -1510,8 +1506,8 @@ // Create the CalFile HBufC* calfilename = CCalenMultiCalUtil::GetNextAvailableCalFileL(); calSession->CreateCalFileL( calfilename->Des(), *calinfo ); - - aCalName.Copy( calfilename->Des() ); + + aCalName.Copy(KNSmlAgendaFileNameForDefaultDB); delete calfilename; @@ -1580,6 +1576,23 @@ CCalCalendarInfo* caleninfo = vCalSubSession->CalendarInfoL(); CleanupStack::PushL(caleninfo); + + //Get MARKASDELETE MetaData property + keyBuff.Zero(); + TBool markAsdelete = EFalse; + keyBuff.AppendNum( EMarkAsDelete ); + TPckgC pckMarkAsDelete(markAsdelete); + TRAPD(err,pckMarkAsDelete.Set(caleninfo->PropertyValueL(keyBuff))); + if ( err == KErrNone ) + { + markAsdelete = pckMarkAsDelete(); + if( markAsdelete ) + { + CleanupStack::PopAndDestroy(caleninfo); + CleanupStack::PopAndDestroy(vCalSubSession); + continue; + } + } TInt profileId; keyBuff.Zero(); @@ -1623,6 +1636,49 @@ } // ----------------------------------------------------------------------------- +// CAspContentList::IsValidClientDataSource +// +// ----------------------------------------------------------------------------- +// +TBool CAspContentList::IsValidClientDataSourceL( TDes& aCalName ) + { + TBool datasourcefound = ETrue; + TBuf8 keyBuff; + CCalCalendarInfo* caleninfo = NULL; + CCalSession* session = CCalSession::NewL(); + CleanupStack::PushL(session); + TRAPD (err, session->OpenL(aCalName)); + + if( err == KErrNotFound ) + { + datasourcefound = EFalse; + } + else + { + caleninfo = session->CalendarInfoL(); + CleanupStack::PushL(caleninfo); + + //Get MARKASDELETE MetaData property + keyBuff.Zero(); + TBool markAsdelete = EFalse; + keyBuff.AppendNum( EMarkAsDelete ); + TPckgC pckMarkAsDelete(markAsdelete); + TRAP(err,pckMarkAsDelete.Set(caleninfo->PropertyValueL(keyBuff))); + if ( err == KErrNone ) + { + markAsdelete = pckMarkAsDelete(); + if( markAsdelete ) + { + datasourcefound = EFalse; + } + } + CleanupStack::PopAndDestroy(caleninfo); + } + CleanupStack::PopAndDestroy(session); + return datasourcefound; + } + +// ----------------------------------------------------------------------------- // CAspContentList::ReadTaskL // // -----------------------------------------------------------------------------