if (groupIndex == 0)
{
- DateTime minRange = __pPm->GetViewMinRange();
- minRange.AddMonths(PREVIOUS_DATE);
- DateTime minDateTime = Calendarbook::GetMinDateTime();
- minDateTime.AddYears(1);
- if (minRange < minDateTime)
- {
- minRange = minDateTime;
- }
-
- __pPm->SetViewType(VIEW_TYPE_LIST);
- __pPm->SetViewRange(minRange, __pPm->GetViewMaxRange());
-
- Update();
+ RefreshGroups(groupIndex);
return;
}
else if (groupIndex == lastGroupIndex)
{
- DateTime maxRange = __pPm->GetViewMaxRange();
- maxRange.AddMonths(NEXT_DATE);
- DateTime maxDateTime = Calendarbook::GetMaxDateTime();
- maxDateTime.AddYears(-1);
- if (maxRange > maxDateTime)
- {
- maxRange = maxDateTime;
- }
-
- __pPm->SetViewType(VIEW_TYPE_LIST);
- __pPm->SetViewRange(__pPm->GetViewMinRange(), maxRange);
-
- Update();
-
+ RefreshGroups(groupIndex);
listView.ScrollToItem(listView.GetGroupCount() - 1, 0);
listView.Invalidate(false);
return;
result
ListPanel::Update(void)
{
- int initialcount = __pGroupedListViewEventsList->GetGroupCount();
result r = __pGroupedListViewEventsList->UpdateList();
- int finalcount = __pGroupedListViewEventsList->GetGroupCount();
- if (initialcount != finalcount)
- {
- __pGroupedListViewEventsList->ExpandAllGroups();
- }
if (r == E_SUCCESS)
{
return r;
}
+
+void
+ListPanel::RefreshGroups(int groupIndex)
+{
+ if (groupIndex == 0)
+ {
+ DateTime startDate = __pPm->GetDateTimeFromGroupIndex(0);
+ DateTime minRange = __pPm->GetViewMinRange();
+ minRange.AddMonths(PREVIOUS_DATE);
+ DateTime minDateTime = Calendarbook::GetMinDateTime();
+ minDateTime.AddYears(1);
+ if (minRange < minDateTime)
+ {
+ minRange = minDateTime;
+ }
+
+ __pPm->SetViewType(VIEW_TYPE_LIST);
+ __pPm->SetViewRange(minRange, __pPm->GetViewMaxRange());
+ int addedGroupCount = __pPm->GetGroupIndex(startDate);
+
+ __pGroupedListViewEventsList->RefreshList(0, 0, LIST_REFRESH_TYPE_ITEM_MODIFY);
+ for (int i = 0; i < addedGroupCount; ++i)
+ {
+ __pGroupedListViewEventsList->RefreshList(i + TOP_BOTTOM_ITEM_COUNT, -1, LIST_REFRESH_TYPE_ITEM_ADD);
+ }
+ if (__pGroupedListViewEventsList->IsGroupExpanded(GetGroupCount() - 1) == false)
+ {
+ __pGroupedListViewEventsList->ExpandGroup(GetGroupCount() - 1);
+ }
+ return;
+ }
+ else
+ {
+ int prevGroupCount = __pPm->GetWholeDayCount();
+ DateTime maxRange = __pPm->GetViewMaxRange();
+ maxRange.AddMonths(NEXT_DATE);
+ DateTime maxDateTime = Calendarbook::GetMaxDateTime();
+ maxDateTime.AddYears(-1);
+ if (maxRange > maxDateTime)
+ {
+ maxRange = maxDateTime;
+ }
+
+ __pPm->SetViewType(VIEW_TYPE_LIST);
+ __pPm->SetViewRange(__pPm->GetViewMinRange(), maxRange);
+
+ int groupCount = __pPm->GetWholeDayCount();
+
+ for (int i = prevGroupCount; i < groupCount; ++i)
+ {
+ __pGroupedListViewEventsList->RefreshList(i + TOP_BOTTOM_ITEM_COUNT, -1, LIST_REFRESH_TYPE_ITEM_ADD);
+ }
+ __pGroupedListViewEventsList->RefreshList(__pGroupedListViewEventsList->GetGroupCount() - 1, 0, LIST_REFRESH_TYPE_ITEM_MODIFY);
+
+ return;
+ }
+}
, __customReminderTimeUnit(REMINDER_TIME_UNIT_MINUTE)
, __customReminderTimeUnitText(ResourceManager::GetString(IDS_TMR_OPT_MIN_LC_ABB))
, __index(0)
+ ,__isKeypadOpen(false)
+ ,__showContextMenu(false)
{
}
{
case IDA_REMINDER_FORM_TIME_UNIT:
{
- Point point = __pButtonReminderTimeUnit->ConvertToScreenPosition(__pButtonReminderTimeUnit->GetPosition());
- point.x -= __pButtonReminderTimeUnit->GetWidth();
- __pContextMenuTimeUnitSelector->SetAnchorPosition(point);
- __pContextMenuTimeUnitSelector->SetShowState(true);
- __pContextMenuTimeUnitSelector->Show();
+ if(__isKeypadOpen == true)
+ {
+ //should wait till it is closed
+ __showContextMenu = true;
+ SetFocus();
+ }
+ else
+ {
+ Point point = __pButtonReminderTimeUnit->ConvertToScreenPosition(__pButtonReminderTimeUnit->GetPosition());
+ point.x -= __pButtonReminderTimeUnit->GetWidth();
+ __pContextMenuTimeUnitSelector->SetAnchorPosition(point);
+ __pContextMenuTimeUnitSelector->SetShowState(true);
+ __pContextMenuTimeUnitSelector->Show();
+ }
break;
}
case REMINDER_TIME_UNIT_MINUTE:
void
ReminderForm::OnKeypadOpened(Tizen::Ui::Control& source)
{
- if (__pButtonReminderTimeUnit->IsVisible())
- {
- Point point = __pButtonReminderTimeUnit->ConvertToScreenPosition(__pButtonReminderTimeUnit->GetPosition());
- point.x -= __pButtonReminderTimeUnit->GetWidth();
- __pContextMenuTimeUnitSelector->SetAnchorPosition(point);
- __pContextMenuTimeUnitSelector->Invalidate(false);
- }
+ __isKeypadOpen = true;
}
void
ReminderForm::OnKeypadClosed(Tizen::Ui::Control& source)
{
- if (__pButtonReminderTimeUnit->IsVisible())
+ __isKeypadOpen = false;
+ if(__showContextMenu == true)
{
Point point = __pButtonReminderTimeUnit->ConvertToScreenPosition(__pButtonReminderTimeUnit->GetPosition());
point.x -= __pButtonReminderTimeUnit->GetWidth();
__pContextMenuTimeUnitSelector->SetAnchorPosition(point);
- __pContextMenuTimeUnitSelector->Invalidate(false);
+ __pContextMenuTimeUnitSelector->SetShowState(true);
+ __pContextMenuTimeUnitSelector->Show();
+ __showContextMenu = false;
}
}
void