--- 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 <calenmulticalutil.h>
#include <CalenInterimUtils2.h>
-_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<KBufSize> 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<TBool> 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<KBufSize> 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<TBool> 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
//
// -----------------------------------------------------------------------------