calendarui/globaldata/src/calendbchangenotifier.cpp
branchRCL_3
changeset 59 aba12c885d83
parent 30 d68a4b5d5885
child 67 1539a383d7b6
equal deleted inserted replaced
48:bf573002ff72 59:aba12c885d83
   172         iNotificationTimer.Cancel();
   172         iNotificationTimer.Cancel();
   173         }
   173         }
   174 
   174 
   175     TRACE_EXIT_POINT;
   175     TRACE_EXIT_POINT;
   176     }
   176     }
       
   177 
       
   178 // -----------------------------------------------------------------------------
       
   179 // CCalenDbChangeNotifier::HandleMissedAlarmsL
       
   180 // Delete missed alarms when externally the entries are getting deleted.
       
   181 // -----------------------------------------------------------------------------
   177 void CCalenDbChangeNotifier::HandleMissedAlarmsL(const RArray<TCalChangeEntry>& aChangeItems)
   182 void CCalenDbChangeNotifier::HandleMissedAlarmsL(const RArray<TCalChangeEntry>& aChangeItems)
   178     {
   183     {
   179     TRACE_ENTRY_POINT
   184     TRACE_ENTRY_POINT
   180     CRepository* missedAlarmStoreRepository = CRepository::NewL(
   185     CRepository* missedAlarmStoreRepository = CRepository::NewL(
   181             KCRUidMissedAlarmStore);
   186             KCRUidMissedAlarmStore);
   182     // Create missed alarm store
   187     // Create missed alarm store
   183     CMissedAlarmStore* missedAlarmStore = CMissedAlarmStore::NewL(
   188     CMissedAlarmStore* missedAlarmStore = CMissedAlarmStore::NewL(
   184             *missedAlarmStoreRepository);
   189             *missedAlarmStoreRepository);
   185     CleanupStack::PushL(missedAlarmStore);
   190     CleanupStack::PushL(missedAlarmStore);
       
   191 
   186     RPointerArray<CMissedAlarm> missedAlarmStorelist;
   192     RPointerArray<CMissedAlarm> missedAlarmStorelist;
   187     CleanupResetAndDestroyPushL(missedAlarmStorelist);
   193     CleanupResetAndDestroyPushL(missedAlarmStorelist);
       
   194 
   188     missedAlarmStore->GetL(missedAlarmStorelist);
   195     missedAlarmStore->GetL(missedAlarmStorelist);
       
   196 
   189     CCalCalendarInfo* calendarInfo = iSession.CalendarInfoL();
   197     CCalCalendarInfo* calendarInfo = iSession.CalendarInfoL();
   190     CleanupStack::PushL(calendarInfo);
   198     CleanupStack::PushL(calendarInfo);
       
   199 
   191     CCalenDbChangeNotifier::TCalLuidFilename calLuidFilename;
   200     CCalenDbChangeNotifier::TCalLuidFilename calLuidFilename;
   192     calLuidFilename.iFilename = calendarInfo->FileNameL();
   201     calLuidFilename.iFilename = calendarInfo->FileNameL();
       
   202 
   193     if (missedAlarmStorelist.Count())
   203     if (missedAlarmStorelist.Count())
   194         {
   204         {
   195         for (TInt idx = 0; idx < aChangeItems.Count(); idx++)
   205         for (TInt idx = 0; idx < aChangeItems.Count(); idx++)
   196             {
   206             {
   197             if (aChangeItems[idx].iChangeType == EChangeDelete)
   207             if (aChangeItems[idx].iChangeType == EChangeDelete)
   198                 {
   208                 {
   199                 calLuidFilename.iLuid = aChangeItems[idx].iEntryId;
   209                 calLuidFilename.iLuid = aChangeItems[idx].iEntryId;
   200                 TInt index = missedAlarmStorelist.Find(
   210                 TInt index = missedAlarmStorelist.Find(calLuidFilename,
   201                         calLuidFilename,CCalenDbChangeNotifier::DoFindEntryByLuid);
   211                         CCalenDbChangeNotifier::DoFindEntryByLuid);
   202                 if(index != KErrNotFound)
   212                 if (index != KErrNotFound)
   203                     {
   213                     {
   204                     CMissedAlarm* missedAlarm = missedAlarmStorelist[index];
   214                     CMissedAlarm* missedAlarm = missedAlarmStorelist[index];
   205                     missedAlarmStore->RemoveL(*missedAlarm);
   215                     missedAlarmStore->RemoveL(*missedAlarm);
   206                     }
   216                     }
   207                 }
   217                 }
   208             }
   218             }
   209         }
   219         }
       
   220 
   210     CleanupStack::PopAndDestroy(calendarInfo);
   221     CleanupStack::PopAndDestroy(calendarInfo);
   211     CleanupStack::PopAndDestroy(&missedAlarmStorelist);
   222     CleanupStack::PopAndDestroy(&missedAlarmStorelist);
   212     CleanupStack::PopAndDestroy(missedAlarmStore);
   223     CleanupStack::PopAndDestroy(missedAlarmStore);
       
   224 
   213     TRACE_EXIT_POINT    
   225     TRACE_EXIT_POINT    
   214     }
   226     }
       
   227 
       
   228 // -----------------------------------------------------------------------------
       
   229 // CCalenDbChangeNotifier::DoFindEntryByLuid
       
   230 // -----------------------------------------------------------------------------
   215 TBool CCalenDbChangeNotifier::DoFindEntryByLuid(
   231 TBool CCalenDbChangeNotifier::DoFindEntryByLuid(
   216                 const TCalLuidFilename* aLuidFilename,const CMissedAlarm& aMissedAlarm)
   232                 const TCalLuidFilename* aLuidFilename,const CMissedAlarm& aMissedAlarm)
   217     {
   233     {
   218     TRACE_ENTRY_POINT
   234     TRACE_ENTRY_POINT
   219     TRACE_EXIT_POINT
   235     TRACE_EXIT_POINT