omads/omadsextensions/adapters/agenda/src/nsmlagendadatastore.cpp
changeset 38 1bb40c16ad33
parent 37 74081e1a0272
child 41 e32446434994
child 46 38e18a8b16c7
--- a/omads/omadsextensions/adapters/agenda/src/nsmlagendadatastore.cpp	Tue Jul 13 03:28:47 2010 +0530
+++ b/omads/omadsextensions/adapters/agenda/src/nsmlagendadatastore.cpp	Tue Jul 13 03:31:55 2010 +0530
@@ -177,7 +177,7 @@
     
 	delete iImporter;
     delete iExporter;
-    
+    delete iInstanceView;
     delete iEntryView;
     delete iVCalSession;
     delete iInterimUtils;
@@ -219,9 +219,14 @@
         err = KErrNone;
         TRAP( err, iVCalSession->CreateCalFileL( aStoreName ));
         DBG_ARGS(_S("CNSmlAgendaDataStore::DoOpenL: creating the new calfile '%d'"), err );
+        if( err == KErrNone )
+            {
+            TRAP( err, iVCalSession->OpenL( aStoreName ));
+            }       
         }
 	if ( err )
 	    {
+        DBG_ARGS(_S("CNSmlAgendaDataStore::DoOpenL: end with error '%d'"), err );
 	    User::RequestComplete( iCallerStatus, err );
 	    return;
 	    }
@@ -245,7 +250,12 @@
     // Progress view
 	iAgendaProgressview = CNSmlAgendaProgressview::NewL();
 
+	// Entry View
     iEntryView = CCalEntryView::NewL( *iVCalSession, *iAgendaProgressview );
+    
+    // Instance View
+    iInstanceView = CCalInstanceView::NewL(*iVCalSession);
+    
     CActiveScheduler::Start();
     TInt completedStatus = iAgendaProgressview->GetCompletedStatus();
     if ( completedStatus != KErrNone )
@@ -1181,23 +1191,35 @@
 	CleanupStack::PushL( snapshot );
 	
     // First find all entries ...
-	RArray<TCalLocalUid> uidArray;
-	CleanupClosePushL( uidArray );
-	TCalTime zeroTime;
-	zeroTime.SetTimeUtcL( Time::NullTTime() );
-	iEntryView->GetIdsModifiedSinceDateL( zeroTime, uidArray );
-	
-	// ... and then create snapshot items
-	for ( TInt i = 0; i < uidArray.Count(); i++ )
-	    {
-	    TNSmlSnapshotItem newItem = CreateSnapshotItemL( uidArray[i] );
-	    if ( newItem.ItemId() != 0 )
-	        {
-	        snapshot->InsertIsqL( newItem, iKey );
-	        }
-	    }
-	
-	CleanupStack::PopAndDestroy( &uidArray );
+    RPointerArray<CCalInstance> array;
+    CleanupRPtrArrayPushL(array);
+
+    TCalTime startDate;
+    startDate.SetTimeLocalL(TDateTime(1900, EJanuary, 1, 0, 0, 0, 0));
+    TCalTime endDate;
+    endDate.SetTimeLocalL(TDateTime(2100, EJanuary, 30, 0, 0, 0, 0));
+    CalCommon::TCalTimeRange timeRange(startDate, endDate);
+
+    iInstanceView->FindInstanceL(array,
+                                 CalCommon::EIncludeAppts|
+                                 CalCommon::EIncludeReminder|
+                                 CalCommon::EIncludeEvents|
+                                 CalCommon::EIncludeAnnivs|
+                                 CalCommon::EIncludeCompletedTodos|
+                                 CalCommon::EIncludeIncompletedTodos,
+                                 timeRange);
+    TInt i = 0;
+
+    while (i < array.Count())
+        {
+        TNSmlSnapshotItem newItem = CreateSnapshotItemL( array[i]->Entry().LocalUidL() );
+        if ( newItem.ItemId() != 0 )
+            {
+            snapshot->InsertIsqL( newItem, iKey );
+            }
+        i++;
+        }
+    CleanupStack::PopAndDestroy(&array);
 		
 	iChangeFinder->SetNewSnapshot( snapshot );