#include <FBase.h>
#include <FGraphics.h>
#include <FUi.h>
+#include "ClICalendarEventChangedEventListener.h"
class CalendarSelectorPopup;
class EventPresentationModel;
, public virtual Tizen::Ui::Controls::ISectionTableViewItemEventListener
, public virtual Tizen::Ui::Controls::ISectionTableViewItemProvider
, public virtual Tizen::Ui::Scenes::ISceneEventListener
+ , public virtual ICalendarEventChangedEventListener
{
public:
result Initialize(void);
virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+ virtual void OnCalendarEventChanged(void);
+
private:
Tizen::Ui::Controls::TableViewItem* CreateMainItemN(int itemWidth, const Tizen::Base::String& title,
const Tizen::Base::DateTime& start, const Tizen::Base::DateTime& end);
virtual ~EventListPresentationModel(void);
result AddCalendarEventChangedEventListener(ICalendarEventChangedEventListener& listener);
- result RemoveCalendarEventChangedEventListener(ICalendarEventChangedEventListener& listner);
+ result RemoveCalendarEventChangedEventListener(ICalendarEventChangedEventListener& listener);
result AddCurrentDateChangedEventListener(ICurrentDateChangedEventListener& listener);
result RemoveCurrentDateChangedEventListener(ICurrentDateChangedEventListener& listener);
Tizen::Base::DateTime GetCurrentDate(void) const;
Tizen::Base::Runtime::Timer __timer;
bool __isEmpty;
bool __isPendingCalendarEventChangedEvent;
+ bool __is24HourEnabled;
static EventListPresentationModel* __pInstance;
}; // EventListPresentationModel
#include <FGraphics.h>
#include <FLocales.h>
#include <FSocial.h>
+#include "ClICalendarAppStatusChangedEventListener.h"
+#include "ClICalendarEventChangedEventListener.h"
class EventPresentationModel
+ : public virtual ICalendarAppStatusChangedEventListener
{
public:
result Construct(const Tizen::Social::RecordId eventId = Tizen::Social::INVALID_RECORD_ID);
+ result AddCalendarEventChangedEventListener(ICalendarEventChangedEventListener& listener);
+ result RemoveCalendarEventChangedEventListener(ICalendarEventChangedEventListener& listener);
+
Tizen::Base::String GetAccountName(void) const;
Tizen::Graphics::Bitmap* GetCalendarIconN(void) const;
Tizen::Base::String GetCalendarName(void) const;
EventPresentationModel(void);
virtual ~EventPresentationModel(void);
+ virtual void OnForeground(void);
+ virtual void OnBackground(void);
+
+private:
+ void FireCalendarEventChangedEvent(void);
+
private:
Tizen::Social::Calendarbook* __pCalendarbook;
Tizen::Social::Calendar* __pCalendar;
Tizen::Locales::DateTimeFormatter* __pDateFormatter;
Tizen::Locales::DateTimeFormatter* __pDateTimeFormatter;
Tizen::Locales::DateTimeFormatter* __pTimeFormatter;
+ Tizen::Base::Collection::LinkedList __listeners;
bool __allEventEditing;
+ bool __is24HourEnabled;
}; // EventPresentationModel
#endif // _CL_EVENT_PRESENTATION_MODEL_H_
#include <FGraphics.h>
#include <FLocales.h>
#include <FSocial.h>
+#include "ClICalendarAppStatusChangedEventListener.h"
#include "ClICalendarEventChangedEventListener.h"
class EventSearchPresentationModel
: public virtual Tizen::Social::ICalendarbookEventListener
+ , public virtual ICalendarAppStatusChangedEventListener
{
public:
result Construct(void);
result AddCalendarEventChangedEventListener(ICalendarEventChangedEventListener& listener);
- result RemoveCalendarEventChangedEventListener(ICalendarEventChangedEventListener& listner);
+ result RemoveCalendarEventChangedEventListener(ICalendarEventChangedEventListener& listener);
Tizen::Locales::DateTimeFormatter* GetDateFormatter(void) const;
Tizen::Locales::DateTimeFormatter* GetTimeFormatter(void) const;
virtual void OnCalendarEventsChanged(const Tizen::Base::Collection::IList& eventChangeInfoList);
virtual void OnCalendarTodosChanged(const Tizen::Base::Collection::IList& todoChangeInfoList);
+ virtual void OnForeground(void);
+ virtual void OnBackground(void);
+
static bool IsSameDay(const Tizen::Base::DateTime& day1, const Tizen::Base::DateTime& day2);
static bool IsToday(const Tizen::Base::DateTime& date);
private:
int FindGroupIndex(const Tizen::Base::DateTime& date, int start, int end) const;
+ void FireCalendarEventChangedEvent(void);
void RemoveAllEvents(void);
private:
Tizen::Locales::DateTimeFormatter* __pDateFormatter;
Tizen::Locales::DateTimeFormatter* __pTimeFormatter;
Tizen::Base::String __searchText;
+ bool __is24HourEnabled;
}; // EventSearchPresenationModel
#endif // _CL_EVENT_SEARCH_PRESENTATION_MODEL_H_
{
__pPm->SetAllEventEditing(false);
__pPm->SetEventInstance(*pEvent);
- __pTableView->UpdateTableView();
GetFooter()->SetItemEnabled(0, __pPm->IsEditable());
GetFooter()->Invalidate(true);
delete pArgs;
}
+ __pTableView->UpdateTableView();
+ __pPm->AddCalendarEventChangedEventListener(*this);
return;
}
GetFooter()->RemoveButtonAt(BUTTON_POSITION_LEFT);
GetFooter()->RemoveAllItems();
}
+ __pPm->AddCalendarEventChangedEventListener(*this);
}
else if (pApp->GetMimeType() == MIME_TYPE_VCALENDAR)
{
item.SetText(ResourceManager::GetString(IDS_EMAIL_OPT_ADD_TO_CALENDAR));
pFooter->AddItem(item);
}
+ __pPm->AddCalendarEventChangedEventListener(*this);
}
CATCH:
void
EventDetailsForm::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
{
+ __pPm->RemoveCalendarEventChangedEventListener(*this);
}
void
}
}
+void
+EventDetailsForm::OnCalendarEventChanged(void)
+{
+ __pTableView->UpdateTableView();
+}
+
TableViewItem*
EventDetailsForm::CreateMainItemN(int itemWidth, const String& title, const DateTime& start, const DateTime& end)
{
, __pCurrentDateChangeEvent(null)
, __isEmpty(false)
, __isPendingCalendarEventChangedEvent(false)
+ , __is24HourEnabled(false)
{
}
void
EventListPresentationModel::OnForeground(void)
{
+ bool is24HourEnabled = false;
+ SettingInfo::GetValue(KEY_SYSTEM_24_HOUR_NOTATION_ENABLED, is24HourEnabled);
+ if (is24HourEnabled != __is24HourEnabled)
+ {
+ delete __pDateFormatter;
+ __pDateFormatter = ResourceManager::CreateDateFormatterN(Locales::DATE_TIME_STYLE_FULL);
+
+ String pattern = __pDateFormatter->GetPattern();
+ delete __pMonthFormatter;
+ __pMonthFormatter = ResourceManager::CreateDateFormatterN(Locales::DATE_TIME_STYLE_NONE);
+ __pMonthFormatter->ApplyPattern(GetMonthFormatterPattern(pattern));
+
+ delete __pYearFormatter;
+ __pYearFormatter = ResourceManager::CreateDateFormatterN(Locales::DATE_TIME_STYLE_NONE);
+ __pYearFormatter->ApplyPattern(GetYearFormatterPattern(pattern));
+
+ delete __pTimeFormatter;
+ __pTimeFormatter = ResourceManager::CreateTimeFormatterN();
+ __is24HourEnabled = is24HourEnabled;
+
+ FireCalendarEventChangedEvent();
+ }
+
DateTime today = GetToday();
DateTime current = GetCurrentDate();
current.SetValue(current.GetYear(), current.GetMonth(), current.GetDay(), today.GetHour(), today.GetMinute(), today.GetSecond());
__pCurrentDateChangeEvent = new (std::nothrow) CurrentDateChangeEvent();
+ SettingInfo::GetValue(KEY_SYSTEM_24_HOUR_NOTATION_ENABLED, __is24HourEnabled);
+
static_cast<CalendarApp*>(Tizen::App::UiApp::GetInstance())->AddCalendarAppStatusChangedEventListener(*this);
return E_SUCCESS;
*/
#include <FSystem.h>
+#include "ClCalendarApp.h"
#include "ClEventPresentationModel.h"
#include "ClResourceManager.h"
#include "ClTypes.h"
using namespace Tizen;
+using namespace Tizen::App;
using namespace Tizen::Base;
using namespace Tizen::Base::Collection;
using namespace Tizen::Graphics;
, __pDateTimeFormatter(null)
, __pTimeFormatter(null)
, __allEventEditing(true)
+ , __is24HourEnabled(false)
{
}
EventPresentationModel::~EventPresentationModel(void)
{
+ static_cast<CalendarApp*>(UiApp::GetInstance())->RemoveCalendarAppStatusChangedEventListener(*this);
+
delete __pCalendarbook;
delete __pCalendar;
delete __pEvent;
__pDateTimeFormatter = ResourceManager::CreateDateTimeFormatterN(Locales::DATE_TIME_STYLE_LONG);
__pTimeFormatter = ResourceManager::CreateTimeFormatterN();
+ SettingInfo::GetValue(KEY_SYSTEM_24_HOUR_NOTATION_ENABLED, __is24HourEnabled);
+
+ static_cast<CalendarApp*>(UiApp::GetInstance())->AddCalendarAppStatusChangedEventListener(*this);
+
return E_SUCCESS;
CATCH:
delete __pCalendarbook;
return r;
}
+result
+EventPresentationModel::AddCalendarEventChangedEventListener(ICalendarEventChangedEventListener& listener)
+{
+ return __listeners.Add(&listener);
+}
+
+result
+EventPresentationModel::RemoveCalendarEventChangedEventListener(ICalendarEventChangedEventListener& listener)
+{
+ return __listeners.Remove(listener);
+}
+
String
EventPresentationModel::GetAccountName(void) const
{
{
return __pEvent->RemoveReminderAt(index);
}
+
+void
+EventPresentationModel::OnForeground(void)
+{
+ bool is24HourEnabled = false;
+ SettingInfo::GetValue(KEY_SYSTEM_24_HOUR_NOTATION_ENABLED, is24HourEnabled);
+ if (is24HourEnabled != __is24HourEnabled)
+ {
+ __pDateFormatter = ResourceManager::CreateDateFormatterN(Locales::DATE_TIME_STYLE_LONG);
+ __pDateTimeFormatter = ResourceManager::CreateDateTimeFormatterN(Locales::DATE_TIME_STYLE_LONG);
+ __pTimeFormatter = ResourceManager::CreateTimeFormatterN();
+ __is24HourEnabled = is24HourEnabled;
+ FireCalendarEventChangedEvent();
+ }
+}
+
+void
+EventPresentationModel::OnBackground(void)
+{
+}
+
+void
+EventPresentationModel::FireCalendarEventChangedEvent(void)
+{
+ if (__listeners.GetCount() > 0)
+ {
+ IEnumerator* pEnum = __listeners.GetEnumeratorN();
+ while (pEnum->MoveNext() == E_SUCCESS)
+ {
+ static_cast<ICalendarEventChangedEventListener*>(pEnum->GetCurrent())->OnCalendarEventChanged();
+ }
+ delete pEnum;
+ }
+}
*/
#include <FSystem.h>
+#include "ClCalendarApp.h"
#include "ClEventSearchPresentationModel.h"
#include "ClNodes.h"
#include "ClResourceManager.h"
#include "ClTypes.h"
using namespace Tizen;
+using namespace Tizen::App;
using namespace Tizen::Base;
using namespace Tizen::Base::Collection;
using namespace Tizen::Graphics;
: __pCalendarbook(null)
, __pDateFormatter(null)
, __pTimeFormatter(null)
+ , __is24HourEnabled(false)
{
}
EventSearchPresentationModel::~EventSearchPresentationModel(void)
{
+ static_cast<CalendarApp*>(UiApp::GetInstance())->RemoveCalendarAppStatusChangedEventListener(*this);
+
__calendars.RemoveAll(true);
RemoveAllEvents();
__pDateFormatter = ResourceManager::CreateDateFormatterN(Locales::DATE_TIME_STYLE_FULL);
__pTimeFormatter = ResourceManager::CreateTimeFormatterN();
+ SettingInfo::GetValue(KEY_SYSTEM_24_HOUR_NOTATION_ENABLED, __is24HourEnabled);
+
+ static_cast<CalendarApp*>(UiApp::GetInstance())->AddCalendarAppStatusChangedEventListener(*this);
+
return E_SUCCESS;
}
if (__searchText.IsEmpty() == false)
{
SearchEvent(__searchText);
- if (__eventChangedListeners.GetCount() > 0)
- {
- IEnumerator* pEnum = __eventChangedListeners.GetEnumeratorN();
- while (pEnum->MoveNext() == E_SUCCESS)
- {
- static_cast<ICalendarEventChangedEventListener*>(pEnum->GetCurrent())->OnCalendarEventChanged();
- }
- delete pEnum;
- }
+ FireCalendarEventChangedEvent();
}
}
{
}
+void
+EventSearchPresentationModel::OnForeground(void)
+{
+ bool is24HourEnabled = false;
+ SettingInfo::GetValue(KEY_SYSTEM_24_HOUR_NOTATION_ENABLED, is24HourEnabled);
+ if (is24HourEnabled != __is24HourEnabled)
+ {
+ delete __pDateFormatter;
+ __pDateFormatter = ResourceManager::CreateDateFormatterN(Locales::DATE_TIME_STYLE_FULL);
+ delete __pTimeFormatter;
+ __pTimeFormatter = ResourceManager::CreateTimeFormatterN();
+
+ __is24HourEnabled = is24HourEnabled;
+
+ FireCalendarEventChangedEvent();
+ }
+}
+
+void
+EventSearchPresentationModel::OnBackground(void)
+{
+}
+
bool
EventSearchPresentationModel::IsSameDay(const DateTime& day1, const DateTime& day2)
{
}
void
+EventSearchPresentationModel::FireCalendarEventChangedEvent(void)
+{
+ if (__eventChangedListeners.GetCount() > 0)
+ {
+ IEnumerator* pEnum = __eventChangedListeners.GetEnumeratorN();
+ while (pEnum->MoveNext() == E_SUCCESS)
+ {
+ static_cast<ICalendarEventChangedEventListener*>(pEnum->GetCurrent())->OnCalendarEventChanged();
+ }
+ delete pEnum;
+ }
+}
+
+void
EventSearchPresentationModel::RemoveAllEvents(void)
{
__indexedEvents.RemoveAll(true);