calendarui/controller/src/calenalarmmanager.cpp
branchRCL_3
changeset 25 bf573002ff72
parent 16 55d60436f00b
child 27 aba12c885d83
--- a/calendarui/controller/src/calenalarmmanager.cpp	Wed Jun 09 09:40:23 2010 +0300
+++ b/calendarui/controller/src/calenalarmmanager.cpp	Mon Jun 21 15:38:59 2010 +0300
@@ -49,6 +49,8 @@
 #include "calenattachmentmodel.h"
 
 static const TUint32 KMaxMissedAlarms = 10;
+// Order of calendar window(at front) after Stop/Snooze of alarm from event viewer.
+static const TInt KCalendarWindowOnFront(0);
 
 // ----------------------------------------------------------------------------
 // CCalenAlarmManager::NewL
@@ -103,10 +105,9 @@
         }
     delete iMissedAlarmStore;
     
-    if(iMissedAlarmList.Count())
-        {
-        iMissedAlarmList.Close();
-        }
+      
+	iMissedAlarmList.Close();
+     
  
     TRACE_EXIT_POINT;
     }
@@ -288,6 +289,16 @@
             HandleMissedAlarmViewClosedL();
             }
             break;
+        case ECalenNotifyClearMissedAlarms:
+            {
+            TVwsViewId activeView;
+            iController.AppUi().GetActiveViewId(activeView);
+            if(activeView.iViewUid == KUidCalenMissedAlarmsView)
+                {
+                OnCmdClearAllMissedAlarmsL();
+                }
+            }
+            break;
         case ECalenNotifyMissedEventViewClosed:
             {
             HandleMissedEventViewClosedL();
@@ -448,7 +459,7 @@
     
     // restore window group priority
     RWindowGroup& windowGroup = CCoeEnv::Static()->RootWin();
-    PIM_ASSERT( windowGroup.SetOrdinalPositionErr( iOrigWGPos, iOrigWGPrio ) );  
+	PIM_ASSERT( windowGroup.SetOrdinalPositionErr( KCalendarWindowOnFront, iOrigWGPrio ) );  
 
     //Close Event View
     if(aCloseEventView)
@@ -480,7 +491,7 @@
     
     // restore window group priority
     RWindowGroup& windowGroup = CCoeEnv::Static()->RootWin();
-    PIM_ASSERT( windowGroup.SetOrdinalPositionErr( iOrigWGPos, iOrigWGPrio ) );  
+	PIM_ASSERT( windowGroup.SetOrdinalPositionErr( KCalendarWindowOnFront, iOrigWGPrio ) );  
     
     // After auto snooze, stop the alarm and open the event viewer in normal mode.
     iController.BroadcastNotification( ECalenNotifyStopAlarm );    
@@ -607,8 +618,18 @@
     TRACE_ENTRY_POINT;
     
     // Clear all the missed alarm events from cenrep
-    iMissedAlarmStore->RemoveAllL();
-   
+    
+    RPointerArray<CMissedAlarm> missedAlarmArray;      
+    CleanupResetAndDestroyPushL( missedAlarmArray );   
+    iMissedAlarmStore->GetL(missedAlarmArray);
+    for(TInt index = 0;index < missedAlarmArray.Count();index++)
+        {
+        // remove from cenrep
+        iMissedAlarmStore->RemoveL(*missedAlarmArray[index]);
+        }
+    
+    CleanupStack::PopAndDestroy(); // aMissedAlarmArray
+    
     if(iMissedAlarmList.Count())
         {
         iMissedAlarmList.Close();
@@ -731,8 +752,8 @@
     {
     TRACE_ENTRY_POINT;
     
-    // remove all the viewed events
-    RemoveAllViewedEventsL();
+    // remove all the missed alarms
+   OnCmdClearAllMissedAlarmsL();
     
     if(iPreviousToMissedAlarmView.iViewUid!=KNullUid)
         {
@@ -916,20 +937,20 @@
     {
     TRACE_ENTRY_POINT;
     
-    RPointerArray<CMissedAlarm> aMissedAlarmArray;      
-    CleanupResetAndDestroyPushL( aMissedAlarmArray );   
-    iMissedAlarmStore->GetL(aMissedAlarmArray);
+    RPointerArray<CMissedAlarm> missedAlarmArray;      
+    CleanupResetAndDestroyPushL( missedAlarmArray );   
+    iMissedAlarmStore->GetL(missedAlarmArray);
     TBool retValue = EFalse;
-    for(TInt index = 0;index < aMissedAlarmArray.Count();index++)
+    for(TInt index = 0;index < missedAlarmArray.Count();index++)
         {
-        if( aEntryLocalUid == aMissedAlarmArray[index]->iLuid )
+        if( aEntryLocalUid == missedAlarmArray[index]->iLuid )
             {
-            CCalSession &session = iController.Services().SessionL( aMissedAlarmArray[index]->iCalFileName );
+            CCalSession &session = iController.Services().SessionL( missedAlarmArray[index]->iCalFileName );
            TCalCollectionId colid = session.CollectionIdL();
             if( colid == aColid)
                 {
                 // remove from cenrep
-                iMissedAlarmStore->RemoveL(*aMissedAlarmArray[index]);
+                iMissedAlarmStore->RemoveL(*missedAlarmArray[index]);
                 retValue = ETrue;
                 break;
                 }