result Construct(void);
int ConvertDayOfWeek(int dayOfWeek) const;
int FindGroupIndex(const Tizen::Base::DateTime& date, int start, int end) const;
+ int FindOriginalGroupIndex(const Tizen::Base::DateTime& date, int start, int end) const;
void FireCalendarEventChangedEvent(void);
const Tizen::Base::String GetMonthFormatterPattern(const Tizen::Base::String& fullDatePattern) const;
const Tizen::Base::String GetYearFormatterPattern(const Tizen::Base::String& fullDatePattern) const;
int
EventListPresentationModel::GetGroupIndex(const DateTime& date) const
{
- if (date < __minRange || date > __maxRange)
+ if ((__viewType != VIEW_TYPE_DELETE) && (date < __minRange || date > __maxRange))
{
AppLogException("%ls over range", date.ToString().GetPointer());
return -1;
}
return index;
}
+ else if (__viewType == VIEW_TYPE_DELETE)
+ {
+ int index = FindOriginalGroupIndex(date, 0, __indexedOriginalEvents.GetCount() - 1);
+ return index;
+ }
+
return FindGroupIndex(date, 0, __indexedEvents.GetCount() - 1);
}
return -1;
}
+int
+EventListPresentationModel::FindOriginalGroupIndex(const DateTime& date, int start, int end) const
+{
+ if (start < end)
+ {
+ int mid = (start + end) >> 1;
+ const EventInstanceListNode* pNode = static_cast<const EventInstanceListNode*>(__indexedOriginalEvents.GetAt(mid));
+ if (IsSameDay(date, pNode->GetDate()) == true)
+ {
+ return mid;
+ }
+
+ if (pNode->GetDate() > date)
+ {
+ return FindOriginalGroupIndex(date, start, mid - 1);
+ }
+ return FindOriginalGroupIndex(date, mid + 1, end);
+ }
+ else if (start == end)
+ {
+ const EventInstanceListNode* pNode = static_cast<const EventInstanceListNode*>(__indexedOriginalEvents.GetAt(start));
+ if (IsSameDay(date, pNode->GetDate()) == true)
+ {
+ return start;
+ }
+ return -1;
+ }
+
+ return -1;
+}
+
void
EventListPresentationModel::FireCalendarEventChangedEvent(void)
{