public:
const Tizen::Base::String* GetArgument(const Tizen::Base::String& key) const;
const Tizen::Base::String& GetInitialScene(void) const;
+ const Tizen::Base::String& GetMimeType(void) const;
OperationType GetOperationType(void) const;
RequestId GetRequestId(void) const;
+ const Tizen::Base::String& GetUri(void) const;
void AddCalendarAppStatusChangedEventListener(ICalendarAppStatusChangedEventListener& listener);
void RemoveCalendarAppStatusChangedEventListener(ICalendarAppStatusChangedEventListener& listener);
extern const wchar_t* ID_OPERATION_PICK;
extern const wchar_t* ID_OPERATION_VIEW;
+extern const wchar_t* ID_OPERATION_SOCIAL_EDIT;
+extern const wchar_t* ID_OPERATION_SOCIAL_PICK;
+extern const wchar_t* ID_OPERATION_SOCIAL_VIEW;
+
+extern const wchar_t* MIME_TYPE_VCALENDAR;
+
extern const wchar_t* KEY_CALENDAR_EVENT_ID;
extern const wchar_t* KEY_CALENDAR_TODO_ID;
+extern const wchar_t* KEY_CALENDAR_ITEM_ID;
extern const wchar_t* KEY_CALENDAR_ITEM_TYPE;
extern const wchar_t* KEY_CALENDAR_VIEW_TYPE;
extern const wchar_t* KEY_CALENDAR_SELECTION_MODE;
extern const wchar_t* KEY_CALENDAR_PATH;
+
+extern const wchar_t* KEY_DATA_PATH;
+extern const wchar_t* KEY_DATA_SELECTION_MODE;
+extern const wchar_t* KEY_DATA_RETURN_RESULT;
+
+extern const wchar_t* KEY_SOCIAL_ITEM_ID;
+extern const wchar_t* KEY_SOCIAL_ITEM_TYPE;
+extern const wchar_t* KEY_SOCIAL_RESULT_TYPE;
+
extern const wchar_t* KEY_NOTIFICATION_MANAGER_APP_MESSAGE;
+extern const wchar_t* KEY_DATA_RETURN_RESULT;
extern const wchar_t* KEY_SYSTEM_24_HOUR_NOTATION_ENABLED;
extern const wchar_t* KEY_SYSTEM_COUNTRY;
extern const wchar_t* KEY_SYSTEM_FIRST_DAY_OF_WEEK;
extern const wchar_t* VALUE_CALENDAR_SINGLE_SELECTION_MODE;
extern const wchar_t* VALUE_CALENDAR_MULTIPLE_SELECTION_MODE;
+extern const wchar_t* VALUE_SOCIAL_ITEM_ID;
+
extern const wchar_t* VCS_EXPORT_PATH;
// enums
enum OperationType
{
- OPERATION_TYPE_DEFAULT,
- OPERATION_TYPE_APPCONTROL
+ OPERATION_TYPE_MAIN,
+ OPERATION_TYPE_2_0_APPCONTROL,
+ OPERATION_TYPE_VIEW,
+ OPERATION_TYPE_PICK,
+ OPERATION_TYPE_EDIT,
+ OPERATION_TYPE_ADD
};
enum EventItemStyle
CalendarApp::CalendarApp(void)
- : __type(OPERATION_TYPE_DEFAULT)
+ : __type(OPERATION_TYPE_MAIN)
, __requestId(INVALID_REQUEST_ID)
, __initialScene(IDSCN_MONTH)
, __pArgs(null)
return __initialScene;
}
+const String&
+CalendarApp::GetMimeType(void) const
+{
+ return __mimeType;
+}
+
OperationType
CalendarApp::GetOperationType(void) const
{
return __requestId;
}
+const String&
+CalendarApp::GetUri(void) const
+{
+ return __uriScheme;
+}
+
void
CalendarApp::AddCalendarAppStatusChangedEventListener(ICalendarAppStatusChangedEventListener& listener)
{
// Set AppControl Provider
AppControlProviderManager::GetInstance()->SetAppControlProviderEventListener(this);
- // Set SettingInfo event listener
- SettingInfo::AddSettingEventListener(*this);
-
return true;
}
AddFrame(*pMainFrame);
+ if (__type == OPERATION_TYPE_MAIN)
+ {
+ // Set SettingInfo event listener
+ SettingInfo::AddSettingEventListener(*this);
+ }
+
return true;
}
if (pItemType->Equals(VALUE_CALENDAR_EVENT_TYPE, false) == true)
{
__initialScene = IDSCN_EVENT_SELECTOR;
- __type = OPERATION_TYPE_APPCONTROL;
+ __type = OPERATION_TYPE_2_0_APPCONTROL;
requestFailed = false;
}
else if (pItemType->Equals(VALUE_CALENDAR_TODO_TYPE, false) == true)
{
__initialScene = IDSCN_TASK_SELECTOR;
- __type = OPERATION_TYPE_APPCONTROL;
+ __type = OPERATION_TYPE_2_0_APPCONTROL;
requestFailed = false;
}
}
if (pViewType->Equals(VALUE_CALENDAR_EVENT_TYPE, false) == true)
{
__initialScene = IDSCN_EVENT_DETAILS;
- __type = OPERATION_TYPE_APPCONTROL;
+ __type = OPERATION_TYPE_2_0_APPCONTROL;
requestFailed = false;
}
else if (pViewType->Equals(VALUE_CALENDAR_TODO_TYPE, false) == true)
{
__initialScene = IDSCN_TASK_DETAILS;
- __type = OPERATION_TYPE_APPCONTROL;
+ __type = OPERATION_TYPE_2_0_APPCONTROL;
requestFailed = false;
}
else if (pViewType->Equals(VALUE_CALENDAR_VCS_TYPE, false) == true)
if (vcsType != VCS_TYPE_NOT_VCS_FILE)
{
__initialScene = (vcsType == VCS_TYPE_VEVENT) ? IDSCN_EVENT_DETAILS : IDSCN_TASK_DETAILS;
- __type = OPERATION_TYPE_APPCONTROL;
+ __type = OPERATION_TYPE_2_0_APPCONTROL;
requestFailed = false;
}
}
}
}
+ else if (__mimeType == MIME_TYPE_VCALENDAR)
+ {
+ VcsType vcsType = CheckVcsFileValidation(__uriScheme);
+ if (vcsType != VCS_TYPE_NOT_VCS_FILE)
+ {
+ __initialScene = (vcsType == VCS_TYPE_VEVENT) ? IDSCN_EVENT_DETAILS : IDSCN_TASK_DETAILS;
+ __type = OPERATION_TYPE_VIEW;
+ requestFailed = false;
+ }
+ }
+ }
+ else if (operationId == ID_OPERATION_SOCIAL_PICK)
+ {
+ const String* pItemType = GetArgument(KEY_SOCIAL_ITEM_TYPE);
+ if (pItemType != null)
+ {
+ if (pItemType->Equals(VALUE_CALENDAR_EVENT_TYPE, false) == true)
+ {
+ __initialScene = IDSCN_EVENT_SELECTOR;
+ __type = OPERATION_TYPE_PICK;
+ requestFailed = false;
+ }
+ else if (pItemType->Equals(VALUE_CALENDAR_TODO_TYPE, false) == true)
+ {
+ __initialScene = IDSCN_TASK_SELECTOR;
+ __type = OPERATION_TYPE_PICK;
+ requestFailed = false;
+ }
+ }
+ }
+ else if (operationId == ID_OPERATION_SOCIAL_VIEW)
+ {
+ const String* pItemType = GetArgument(KEY_SOCIAL_ITEM_TYPE);
+ if (pItemType != null)
+ {
+ if (pItemType->Equals(VALUE_CALENDAR_EVENT_TYPE, false) == true)
+ {
+ __initialScene = IDSCN_EVENT_DETAILS;
+ __type = OPERATION_TYPE_VIEW;
+ requestFailed = false;
+ }
+ else if (pItemType->Equals(VALUE_CALENDAR_TODO_TYPE, false) == true)
+ {
+ __initialScene = IDSCN_TASK_DETAILS;
+ __type = OPERATION_TYPE_VIEW;
+ requestFailed = false;
+ }
+ }
+ }
+ else if (operationId == ID_OPERATION_SOCIAL_EDIT)
+ {
+ const String* pItemType = GetArgument(KEY_SOCIAL_ITEM_TYPE);
+ if (pItemType != null)
+ {
+ if (pItemType->Equals(VALUE_CALENDAR_EVENT_TYPE, false) == true)
+ {
+ __initialScene = IDSCN_EVENT_EDITOR;
+ __type = OPERATION_TYPE_EDIT;
+ requestFailed = false;
+ }
+// else if (pItemType->Equals(VALUE_CALENDAR_TODO_TYPE, false) == true)
+// {
+// __initialScene = IDSCN_TASK_EDITOR;
+// __type = OPERATION_TYPE_EDIT;
+// requestFailed = false;
+// }
+ }
}
else if (operationId == ID_OPERATION_ADD)
{
__initialScene = IDSCN_EVENT_EDITOR;
- __type = OPERATION_TYPE_APPCONTROL;
+ __type = OPERATION_TYPE_ADD;
requestFailed = false;
}
else if (operationId == ID_OPERATION_CONFIG)
{
__initialScene = IDSCN_SETTING;
- __type = OPERATION_TYPE_APPCONTROL;
+ __type = OPERATION_TYPE_2_0_APPCONTROL;
requestFailed = false;
}
|| key.Equals(KEY_SYSTEM_COUNTRY, false) == true
|| key.Equals(KEY_SYSTEM_TIME_ZONE, false) == true)
{
- if (__type == OPERATION_TYPE_APPCONTROL)
+ if (__type != OPERATION_TYPE_MAIN)
{
result r = AppControlProviderManager::GetInstance()->SendAppControlResult(__requestId, APP_CTRL_RESULT_TERMINATED, null);
AppLogDebugIf(r != E_SUCCESS, "[%s] Unable to return result.", GetErrorMessage(r));
CalendarApp* pApp = static_cast<CalendarApp*>(UiApp::GetInstance());
if (pApp != null)
{
- if (pApp->GetOperationType() == OPERATION_TYPE_APPCONTROL)
+ if (pApp->GetOperationType() != OPERATION_TYPE_MAIN)
{
// result r = SendAppControlResult(APP_CTRL_RESULT_SUCCEEDED);
// AppLogDebugIf(r != E_SUCCESS, "[%s] Unable to return result.", GetErrorMessage(r));
EventDetailsForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs)
{
CalendarApp* pApp = static_cast<CalendarApp*>(UiApp::GetInstance());
- if (pApp->GetOperationType() == OPERATION_TYPE_DEFAULT)
+ if (pApp->GetOperationType() == OPERATION_TYPE_MAIN)
{
if (pArgs != null)
{
//AppControl
result r = E_SUCCESS;
+ const String* pViewType = null;
+ const String* pItemType = null;
const String* pParseId = null;
const String* pPath = null;
RecordId eventId = INVALID_RECORD_ID;
- const String* pViewType = pApp->GetArgument(KEY_CALENDAR_VIEW_TYPE);
- TryCatch(pViewType != null, , "[E_FAILURE] Unable to get viewtype.");
-
- if (pViewType->Equals(VALUE_CALENDAR_VCS_TYPE, false) == true)
+ if (pApp->GetOperationType() == OPERATION_TYPE_2_0_APPCONTROL)
{
- pPath = pApp->GetArgument(KEY_CALENDAR_PATH);
- r = __pPm->SetVcsFile(*pPath);
- TryCatch(r == E_SUCCESS, , "[E_FAILURE] Unable to parse events from vcs file.");
+ pViewType = pApp->GetArgument(KEY_CALENDAR_VIEW_TYPE);
+ TryCatch(pViewType != null, , "[E_FAILURE] Unable to get view type.");
- if (GetFooter() != null)
+ if (pViewType->Equals(VALUE_CALENDAR_VCS_TYPE, false) == true)
{
- Footer* pFooter = GetFooter();
- pFooter->RemoveAllItems();
- pFooter->RemoveAllButtons();
- pFooter->SetStyle(FOOTER_STYLE_BUTTON_TEXT);
- pFooter->SetBackButtonEnabled(true);
- pFooter->SetBackButton();
-
- FooterItem item;
- item.Construct(IDA_EVENT_DETAILS_FORM_ADD_TO_CALENDAR);
- item.SetText(ResourceManager::GetString(IDS_EMAIL_OPT_ADD_TO_CALENDAR));
- pFooter->AddItem(item);
+ pPath = pApp->GetArgument(KEY_CALENDAR_PATH);
+ TryCatch(pPath != null, , "[E_FAILURE] Unable to get path.");
+
+ r = __pPm->SetVcsFile(*pPath);
+ TryCatch(r == E_SUCCESS, , "[E_FAILURE] Unable to parse events from vcs file.");
+
+ if (GetFooter() != null)
+ {
+ Footer* pFooter = GetFooter();
+ pFooter->RemoveAllItems();
+ pFooter->RemoveAllButtons();
+ pFooter->SetStyle(FOOTER_STYLE_BUTTON_TEXT);
+ pFooter->SetBackButtonEnabled(true);
+ pFooter->SetBackButton();
+
+ FooterItem item;
+ item.Construct(IDA_EVENT_DETAILS_FORM_ADD_TO_CALENDAR);
+ item.SetText(ResourceManager::GetString(IDS_EMAIL_OPT_ADD_TO_CALENDAR));
+ pFooter->AddItem(item);
+ }
+ return;
+ }
+ else if (pViewType->Equals(VALUE_CALENDAR_EVENT_TYPE, false) == true)
+ {
+ pParseId = pApp->GetArgument(KEY_CALENDAR_EVENT_ID);
+ TryCatch(pParseId != null, , "[E_FAILURE] Unable to get eventid.");
+
+ r = Integer::Parse(*pParseId, eventId);
+ TryCatch(r == E_SUCCESS, , "[%s] Unable to get eventid.", GetErrorMessage(r));
+
+ r = __pPm->SetEventId(eventId);
+ TryCatch(r == E_SUCCESS, , "[%s] Unable to get event.", GetErrorMessage(r));
+
+ if (GetFooter() != null)
+ {
+ GetFooter()->RemoveButtonAt(BUTTON_POSITION_LEFT);
+ GetFooter()->RemoveAllItems();
+ }
+ return;
}
- return;
}
- else if (pViewType->Equals(VALUE_CALENDAR_EVENT_TYPE, false) == true)
+ else
{
- pParseId = pApp->GetArgument(KEY_CALENDAR_EVENT_ID);
- TryCatch(pParseId != null, , "[E_FAILURE] Unable to get eventid.");
+ pItemType = pApp->GetArgument(KEY_SOCIAL_ITEM_TYPE);
+ if (pItemType != null)
+ {
+ pParseId = pApp->GetArgument(KEY_SOCIAL_ITEM_ID);
+ TryCatch(pParseId != null, , "[E_FAILURE] Unable to get eventid.");
- r = Integer::Parse(*pParseId, eventId);
- TryCatch(r == E_SUCCESS, , "[%s] Unable to get eventid.", GetErrorMessage(r));
+ r = Integer::Parse(*pParseId, eventId);
+ TryCatch(r == E_SUCCESS, , "[%s] Unable to get eventid.", GetErrorMessage(r));
- r = __pPm->SetEventId(eventId);
- TryCatch(r == E_SUCCESS, , "[%s] Unable to get event.", GetErrorMessage(r));
+ r = __pPm->SetEventId(eventId);
+ TryCatch(r == E_SUCCESS, , "[%s] Unable to get event.", GetErrorMessage(r));
- if (GetFooter() != null)
+ if (GetFooter() != null)
+ {
+ GetFooter()->RemoveButtonAt(BUTTON_POSITION_LEFT);
+ GetFooter()->RemoveAllItems();
+ }
+ return;
+ }
+ else if (pApp->GetMimeType() == MIME_TYPE_VCALENDAR)
{
- GetFooter()->RemoveButtonAt(BUTTON_POSITION_LEFT);
- GetFooter()->RemoveAllItems();
+ r = __pPm->SetVcsFile(pApp->GetUri());
+ TryCatch(r == E_SUCCESS, , "[E_FAILURE] Unable to parse events from vcs file.");
+
+ if (GetFooter() != null)
+ {
+ Footer* pFooter = GetFooter();
+ pFooter->RemoveAllItems();
+ pFooter->RemoveAllButtons();
+ pFooter->SetStyle(FOOTER_STYLE_BUTTON_TEXT);
+ pFooter->SetBackButtonEnabled(true);
+ pFooter->SetBackButton();
+
+ FooterItem item;
+ item.Construct(IDA_EVENT_DETAILS_FORM_ADD_TO_CALENDAR);
+ item.SetText(ResourceManager::GetString(IDS_EMAIL_OPT_ADD_TO_CALENDAR));
+ pFooter->AddItem(item);
+ }
+ return;
}
- return;
}
+ AppLogDebug("[E_FAILURE] Invalid arguments.");
+
CATCH:
SendAppControlResult(APP_CTRL_RESULT_FAILED);
UiApp::GetInstance()->Terminate();
CalendarApp* pApp = static_cast<CalendarApp*>(UiApp::GetInstance());
if (pApp != null)
{
- if (pApp->GetOperationType() == OPERATION_TYPE_APPCONTROL)
+ if (pApp->GetOperationType() != OPERATION_TYPE_MAIN)
{
- result r = SendAppControlResult(APP_CTRL_RESULT_SUCCEEDED);
- AppLogDebugIf(r != E_SUCCESS, "[%s] Unable to return result.", GetErrorMessage(r));
+ const String* pReturnResult = pApp->GetArgument(KEY_DATA_RETURN_RESULT);
+ if (pReturnResult != null && pReturnResult->Equals(L"true", false) == true)
+ {
+ result r = SendAppControlResult(APP_CTRL_RESULT_SUCCEEDED);
+ AppLogDebugIf(r != E_SUCCESS, "[%s] Unable to return result.", GetErrorMessage(r));
+ }
pApp->Terminate();
return;
else
{
CalendarApp* pApp = static_cast<CalendarApp*>(UiApp::GetInstance());
- if (pApp->GetOperationType() == OPERATION_TYPE_DEFAULT)
+ if (pApp->GetOperationType() == OPERATION_TYPE_MAIN)
{
if (pArgs != null)
{
else
{
//AppControl
- DateTime start;
- SystemTime::GetCurrentTime(TIME_MODE_WALL, start);
- start.AddHours(1);
- start.AddMinutes(-start.GetMinute());
- start.AddSeconds(-start.GetSecond());
+ CalendarApp* pApp = static_cast<CalendarApp*>(UiApp::GetInstance());
+ if (pApp->GetOperationType() == OPERATION_TYPE_EDIT)
+ {
+ const String* pItemType = pApp->GetArgument(KEY_SOCIAL_ITEM_TYPE);
+ const String* pEventId = pApp->GetArgument(KEY_SOCIAL_ITEM_ID);
+ if (pItemType != null && pItemType->Equals(VALUE_CALENDAR_EVENT_TYPE, false) == true && pEventId != null)
+ {
+ RecordId eventId = INVALID_RECORD_ID;
+ Integer::Parse(*pEventId, eventId);
+ result r = __pPm->SetEventId(eventId);
+ if (r != E_SUCCESS)
+ {
+ if (pArgs != null)
+ {
+ pArgs->RemoveAll(true);
+ delete pArgs;
+ }
- DateTime end = start;
- end.AddHours(1);
- __pPm->SetStartEndTime(start, end);
+ const String* pReturnResult = pApp->GetArgument(KEY_DATA_RETURN_RESULT);
+ if (pReturnResult != null && pReturnResult->Equals(L"true", false) == true)
+ {
+ r = SendAppControlResult(APP_CTRL_RESULT_FAILED);
+ AppLogDebugIf(r != E_SUCCESS, "[%s] Unable to return result.", GetErrorMessage(r));
+ }
- SetStyle(EDIT_EVENT_FORM_STYLE_CREATE);
- if (__pEditFieldTitle != null)
+ pApp->Terminate();
+ }
+ }
+ }
+ else if (pApp->GetOperationType() == OPERATION_TYPE_ADD)
{
- __pEditFieldTitle->SetFocus();
+ DateTime start;
+ SystemTime::GetCurrentTime(TIME_MODE_WALL, start);
+ start.AddHours(1);
+ start.AddMinutes(-start.GetMinute());
+ start.AddSeconds(-start.GetSecond());
+
+ DateTime end = start;
+ end.AddHours(1);
+ __pPm->SetStartEndTime(start, end);
+
+ SetStyle(EDIT_EVENT_FORM_STYLE_CREATE);
+ if (__pEditFieldTitle != null)
+ {
+ __pEditFieldTitle->SetFocus();
+ }
}
}
}
CalendarApp* pApp = static_cast<CalendarApp*>(UiApp::GetInstance());
if (pApp != null)
{
- if (pApp->GetOperationType() == OPERATION_TYPE_APPCONTROL)
+ if (pApp->GetOperationType() != OPERATION_TYPE_MAIN)
{
- result r = SendAppControlResult(APP_CTRL_RESULT_SUCCEEDED);
- AppLogDebugIf(r != E_SUCCESS, "[%s] Unable to return result.", GetErrorMessage(r));
+ const String* pReturnResult = pApp->GetArgument(KEY_DATA_RETURN_RESULT);
+ if (pReturnResult != null && pReturnResult->Equals(L"true", false) == true)
+ {
+ result r = SendAppControlResult(APP_CTRL_RESULT_SUCCEEDED);
+ AppLogDebugIf(r != E_SUCCESS, "[%s] Unable to return result.", GetErrorMessage(r));
+ }
pApp->Terminate();
AppLogDebug("Exit.");
delete pArgs;
}
- const String* pSelectionMode = static_cast<CalendarApp*>(UiApp::GetInstance())->GetArgument(KEY_CALENDAR_SELECTION_MODE);
- const String* pItemType = static_cast<CalendarApp*>(UiApp::GetInstance())->GetArgument(KEY_CALENDAR_ITEM_TYPE);
- if (pSelectionMode != null && pItemType != null && pItemType->Equals(VALUE_CALENDAR_EVENT_TYPE, false) == true)
+ CalendarApp* pApp = static_cast<CalendarApp*>(UiApp::GetInstance());
+ const String* pSelectionMode = null;
+ const String* pItemType = null;
+ if (pApp->GetOperationType() == OPERATION_TYPE_2_0_APPCONTROL)
{
+ pSelectionMode = pApp->GetArgument(KEY_CALENDAR_SELECTION_MODE);
+ TryCatch(pSelectionMode != null, , "[E_FAILURE] Unable to get selection mode.");
+
+ pItemType = pApp->GetArgument(KEY_CALENDAR_ITEM_TYPE);
+ TryCatch(pItemType != null, , "[E_FAILURE] Unable to get item type.");
+ TryCatch(pItemType->Equals(VALUE_CALENDAR_EVENT_TYPE, false) == true, , "[E_FAILURE] Invalid item type.");
+
if (pSelectionMode->Equals(VALUE_CALENDAR_MULTIPLE_SELECTION_MODE, false) == true)
{
__selectionType = EVENT_SELECTOR_FORM_SELECTION_TYPE_MULTIPLE;
return;
}
}
+ else
+ {
+ pSelectionMode = pApp->GetArgument(KEY_DATA_SELECTION_MODE);
+ if (pSelectionMode != null && pSelectionMode->Equals(VALUE_CALENDAR_MULTIPLE_SELECTION_MODE, false) == true)
+ {
+ __selectionType = EVENT_SELECTOR_FORM_SELECTION_TYPE_MULTIPLE;
+ }
+
+ TryCatch(pApp->GetArgument(KEY_SOCIAL_RESULT_TYPE) != null, , "[E_FAILURE] Unable to get result type.");
+
+ pItemType = pApp->GetArgument(KEY_SOCIAL_ITEM_TYPE);
+ TryCatch(pItemType != null, , "[E_FAILURE] Unable to get item type.");
+ TryCatch(pItemType->Equals(VALUE_CALENDAR_EVENT_TYPE, false) == true, , "[E_FAILURE] Invalid item type.");
+
+ if (__selectionType == EVENT_SELECTOR_FORM_SELECTION_TYPE_SINGLE)
+ {
+ GetFooter()->RemoveAllItems();
+ }
+ LoadAllEvents();
+ __pListViewContents->UpdateList();
+ return;
+ }
+
+CATCH:
SendAppControlResult(APP_CTRL_RESULT_FAILED);
UiApp::GetInstance()->Terminate();
}
{
pArgs = new (std::nothrow) HashMap();
pArgs->Construct(2);
- pArgs->Add(new (std::nothrow) String(KEY_CALENDAR_ITEM_TYPE), new (std::nothrow) String(VALUE_CALENDAR_EVENT_TYPE));
+ if (pApp->GetOperationType() == OPERATION_TYPE_2_0_APPCONTROL)
+ {
+ pArgs->Add(new (std::nothrow) String(KEY_CALENDAR_ITEM_TYPE), new (std::nothrow) String(VALUE_CALENDAR_EVENT_TYPE));
- String* pPath = new (std::nothrow) String(CalendarApp::GetExportVcsFilePath());
- __pCalendarbook->ExportEventsToVcalendar(*pResultList, *pPath);
- pArgs->Add(new (std::nothrow) String(KEY_CALENDAR_PATH), pPath);
+ String* pPath = new (std::nothrow) String(CalendarApp::GetExportVcsFilePath());
+ __pCalendarbook->ExportEventsToVcalendar(*pResultList, *pPath);
+ pArgs->Add(new (std::nothrow) String(KEY_CALENDAR_PATH), pPath);
+ }
+ else
+ {
+ const String* pResultType = pApp->GetArgument(KEY_SOCIAL_RESULT_TYPE);
+ if (pResultType != null && *pResultType == VALUE_SOCIAL_ITEM_ID)
+ {
+ const String* pSelectionMode = pApp->GetArgument(KEY_DATA_SELECTION_MODE);
+ if (pSelectionMode != null && pSelectionMode->Equals(VALUE_CALENDAR_MULTIPLE_SELECTION_MODE, false) == true)
+ {
+ int itemCount = pResultList->GetCount();
+ ArrayList* pEvents = new (std::nothrow) ArrayList();
+ pEvents->Construct(itemCount);
+ for (int i = 0; i < itemCount; ++i)
+ {
+ pEvents->Add(new (std::nothrow) String(Integer::ToString(static_cast<const CalEvent*>(pResultList->GetAt(i))->GetRecordId())));
+ }
+ pArgs->Add(new (std::nothrow) String(KEY_SOCIAL_ITEM_ID), pEvents);
+ }
+ else
+ {
+ RecordId eventId = static_cast<const CalEvent*>(pResultList->GetAt(0))->GetRecordId();
+ pArgs->Add(new (std::nothrow) String(KEY_SOCIAL_ITEM_ID), new (std::nothrow) String(Integer::ToString(eventId)));
+ }
+ }
+ else
+ {
+ String* pPath = new (std::nothrow) String(CalendarApp::GetExportVcsFilePath());
+ __pCalendarbook->ExportEventsToVcalendar(*pResultList, *pPath);
+ pArgs->Add(new (std::nothrow) String(KEY_DATA_PATH), pPath);
+ }
+ }
}
result r = AppControlProviderManager::GetInstance()->SendAppControlResult(pApp->GetRequestId(), appControlResult, pArgs);
{
__untilDate = __startDate;
__untilDate.AddDays(7);
- __pEditDateUntilDate->SetDate(__untilDate);
- __pEditDateUntilDate->Invalidate(false);
+ if (__pEditDateUntilDate != null)
+ {
+ __pEditDateUntilDate->SetDate(__untilDate);
+ __pEditDateUntilDate->Invalidate(false);
+ }
}
break;
case REPEAT_TYPE_EVERY_3DAYS:
{
__untilDate = __startDate;
__untilDate.AddDays(21);
- __pEditDateUntilDate->SetDate(__untilDate);
- __pEditDateUntilDate->Invalidate(false);
+ if (__pEditDateUntilDate != null)
+ {
+ __pEditDateUntilDate->SetDate(__untilDate);
+ __pEditDateUntilDate->Invalidate(false);
+ }
}
break;
case REPEAT_TYPE_EVERY_WEEK:
{
__untilDate = __startDate;
__untilDate.AddMonths(1);
- __pEditDateUntilDate->SetDate(__untilDate);
- __pEditDateUntilDate->Invalidate(false);
+ if (__pEditDateUntilDate != null)
+ {
+ __pEditDateUntilDate->SetDate(__untilDate);
+ __pEditDateUntilDate->Invalidate(false);
+ }
}
break;
case REPEAT_TYPE_EVERY_2WEEKS:
{
__untilDate = __startDate;
__untilDate.AddMonths(2);
- __pEditDateUntilDate->SetDate(__untilDate);
- __pEditDateUntilDate->Invalidate(false);
+ if (__pEditDateUntilDate != null)
+ {
+ __pEditDateUntilDate->SetDate(__untilDate);
+ __pEditDateUntilDate->Invalidate(false);
+ }
}
break;
case REPEAT_TYPE_EVERY_MONTH:
{
__untilDate = __startDate;
__untilDate.AddYears(1);
- __pEditDateUntilDate->SetDate(__untilDate);
- __pEditDateUntilDate->Invalidate(false);
+ if (__pEditDateUntilDate != null)
+ {
+ __pEditDateUntilDate->SetDate(__untilDate);
+ __pEditDateUntilDate->Invalidate(false);
+ }
}
break;
case REPEAT_TYPE_EVERY_YEAR:
{
__untilDate = __startDate;
__untilDate.AddYears(5);
- __pEditDateUntilDate->SetDate(__untilDate);
- __pEditDateUntilDate->Invalidate(false);
+ if (__pEditDateUntilDate != null)
+ {
+ __pEditDateUntilDate->SetDate(__untilDate);
+ __pEditDateUntilDate->Invalidate(false);
+ }
}
break;
default:
CalendarApp* pApp = static_cast<CalendarApp*>(UiApp::GetInstance());
if (pApp != null)
{
- if (pApp->GetOperationType() == OPERATION_TYPE_APPCONTROL)
+ if (pApp->GetOperationType() != OPERATION_TYPE_MAIN)
{
pApp->Terminate();
return;
delete pArgs;
}
+ CalendarApp* pApp = static_cast<CalendarApp*>(UiApp::GetInstance());
result r = E_SUCCESS;
IList* pTodos = null;
+ const String* pViewType = null;
+ const String* pItemType = null;
const String* pParseId = null;
const String* pPath = null;
RecordId todoId = INVALID_RECORD_ID;
- const String* pViewType = static_cast<CalendarApp*>(UiApp::GetInstance())->GetArgument(KEY_CALENDAR_VIEW_TYPE);
- TryCatch(pViewType != null, , "[E_FAILURE] Unable to get viewtype.");
- if (pViewType->Equals(VALUE_CALENDAR_VCS_TYPE, false) == true)
+ if (pApp->GetOperationType() == OPERATION_TYPE_2_0_APPCONTROL)
{
- pPath = static_cast<CalendarApp*>(UiApp::GetInstance())->GetArgument(KEY_CALENDAR_PATH);
- TryCatch(pPath != null, , "[E_FAILURE] Unable to get vcs file path.");
- pTodos = Calendarbook::ParseTodosFromVcalendarN(*pPath);
- TryCatch(pTodos != null, , "[E_FAILURE] Unable to parse todos from vcs file.");
- TryCatch(pTodos->GetCount() > 0, delete pTodos, "[E_FAILURE] Unable to parse todos from vcs file.");
-
- __pTask = static_cast<CalTodo*>(pTodos->GetAt(0));
- pTodos->RemoveAt(0);
- pTodos->RemoveAll(true);
- delete pTodos;
- return;
+ pViewType = pApp->GetArgument(KEY_CALENDAR_VIEW_TYPE);
+ TryCatch(pViewType != null, , "[E_FAILURE] Unable to get viewtype.");
+
+ if (pViewType->Equals(VALUE_CALENDAR_VCS_TYPE, false) == true)
+ {
+ pPath = pApp->GetArgument(KEY_CALENDAR_PATH);
+ TryCatch(pPath != null, , "[E_FAILURE] Unable to get vcs file path.");
+ pTodos = Calendarbook::ParseTodosFromVcalendarN(*pPath);
+ TryCatch(pTodos != null, , "[E_FAILURE] Unable to parse todos from vcs file.");
+ TryCatch(pTodos->GetCount() > 0, delete pTodos, "[E_FAILURE] Unable to parse todos from vcs file.");
+
+ __pTask = static_cast<CalTodo*>(pTodos->GetAt(0));
+ pTodos->RemoveAt(0, false);
+ pTodos->RemoveAll(true);
+ delete pTodos;
+ return;
+ }
+ else if (pViewType->Equals(VALUE_CALENDAR_TODO_TYPE, false) == true)
+ {
+ pParseId = pApp->GetArgument(KEY_CALENDAR_TODO_ID);
+ TryCatch(pParseId != null, , "[E_FAILURE] Unable to get eventid.");
+
+ r = Integer::Parse(*pParseId, todoId);
+ TryCatch(r == E_SUCCESS, , "[%s] Unable to get eventid.", GetErrorMessage(r));
+
+ Calendarbook calendarbook;
+ calendarbook.Construct();
+ __pTask = calendarbook.GetTodoN(todoId);
+ TryCatch(__pTask != null, , "[E_FAILURE] Unable to get todo.");
+
+ GetFooter()->RemoveAllItems();
+ return;
+ }
}
- else if (pViewType->Equals(VALUE_CALENDAR_TODO_TYPE, false) == true)
+ else
{
- pParseId = static_cast<CalendarApp*>(UiApp::GetInstance())->GetArgument(KEY_CALENDAR_TODO_ID);
- TryCatch(pParseId != null, , "[E_FAILURE] Unable to get eventid.");
+ pItemType = pApp->GetArgument(KEY_SOCIAL_ITEM_TYPE);
+ if (pItemType != null)
+ {
+ pParseId = pApp->GetArgument(KEY_SOCIAL_ITEM_ID);
+ TryCatch(pParseId != null, , "[E_FAILURE] Unable to get eventid.");
- r = Integer::Parse(*pParseId, todoId);
- TryCatch(r == E_SUCCESS, , "[%s] Unable to get eventid.", GetErrorMessage(r));
+ r = Integer::Parse(*pParseId, todoId);
+ TryCatch(r == E_SUCCESS, , "[%s] Unable to get eventid.", GetErrorMessage(r));
- Calendarbook calendarbook;
- calendarbook.Construct();
- __pTask = calendarbook.GetTodoN(todoId);
- TryCatch(__pTask != null, , "[E_FAILURE] Unable to get todo.");
+ Calendarbook calendarbook;
+ calendarbook.Construct();
+ __pTask = calendarbook.GetTodoN(todoId);
+ TryCatch(__pTask != null, , "[E_FAILURE] Unable to get todo.");
- GetFooter()->RemoveAllItems();
- return;
+ GetFooter()->RemoveAllItems();
+ return;
+ }
+ else if (pApp->GetMimeType() == MIME_TYPE_VCALENDAR)
+ {
+ pTodos = Calendarbook::ParseTodosFromVcalendarN(pApp->GetUri());
+ TryCatch(pTodos != null, , "[E_FAILURE] Unable to parse todos from vcs file.");
+ TryCatch(pTodos->GetCount() > 0, delete pTodos, "[E_FAILURE] Unable to parse todos from vcs file.");
+
+ __pTask = static_cast<CalTodo*>(pTodos->GetAt(0));
+ pTodos->RemoveAt(0, false);
+ pTodos->RemoveAll(true);
+ delete pTodos;
+ return;
+ }
}
CATCH:
delete pArgs;
}
- const String* pSelectionMode = static_cast<CalendarApp*>(UiApp::GetInstance())->GetArgument(KEY_CALENDAR_SELECTION_MODE);
- const String* pItemType = static_cast<CalendarApp*>(UiApp::GetInstance())->GetArgument(KEY_CALENDAR_ITEM_TYPE);
- if (pSelectionMode != null && pItemType != null && pItemType->Equals(VALUE_CALENDAR_TODO_TYPE, false) == true)
+ CalendarApp* pApp = static_cast<CalendarApp*>(UiApp::GetInstance());
+ const String* pSelectionMode = null;
+ const String* pItemType = null;
+ if (pApp->GetOperationType() == OPERATION_TYPE_2_0_APPCONTROL)
{
+ pSelectionMode = pApp->GetArgument(KEY_CALENDAR_SELECTION_MODE);
+ TryCatch(pSelectionMode != null, , "[E_FAILURE] Unable to get selection mode.");
+
+ pItemType = pApp->GetArgument(KEY_CALENDAR_ITEM_TYPE);
+ TryCatch(pItemType != null, , "[E_FAILURE] Unable to get item type.");
+ TryCatch(pItemType->Equals(VALUE_CALENDAR_TODO_TYPE, false) == true, , "[E_FAILURE] Invalid item type.");
+
if (pSelectionMode->Equals(VALUE_CALENDAR_MULTIPLE_SELECTION_MODE, false) == true)
{
__selectionType = TASK_SELECTOR_FORM_SELECTION_TYPE_MULTIPLE;
LoadAllTodos();
- if (__pListViewContents != null)
- {
- __pListViewContents->UpdateList();
- }
+ __pListViewContents->UpdateList();
return;
}
else if (pSelectionMode->Equals(VALUE_CALENDAR_SINGLE_SELECTION_MODE, false) == true)
GetFooter()->RemoveAllItems();
LoadAllTodos();
- if (__pListViewContents != null)
- {
- __pListViewContents->UpdateList();
- }
+ __pListViewContents->UpdateList();
return;
}
}
+ else
+ {
+ pSelectionMode = pApp->GetArgument(KEY_DATA_SELECTION_MODE);
+ if (pSelectionMode != null && pSelectionMode->Equals(VALUE_CALENDAR_MULTIPLE_SELECTION_MODE, false) == true)
+ {
+ __selectionType = TASK_SELECTOR_FORM_SELECTION_TYPE_MULTIPLE;
+ }
+
+ TryCatch(pApp->GetArgument(KEY_SOCIAL_RESULT_TYPE) != null, , "[E_FAILURE] Unable to get result type.");
+ pItemType = pApp->GetArgument(KEY_SOCIAL_ITEM_TYPE);
+ TryCatch(pItemType != null, , "[E_FAILURE] Unable to get item type.");
+ TryCatch(pItemType->Equals(VALUE_CALENDAR_TODO_TYPE, false) == true, , "[E_FAILURE] Invalid item type.");
+
+ if (__selectionType == TASK_SELECTOR_FORM_SELECTION_TYPE_SINGLE)
+ {
+ GetFooter()->RemoveAllItems();
+ }
+
+ LoadAllTodos();
+ __pListViewContents->UpdateList();
+ return;
+ }
+
+CATCH:
SendAppControlResult(APP_CTRL_RESULT_FAILED);
UiApp::GetInstance()->Terminate();
}
{
pArgs = new (std::nothrow) HashMap();
pArgs->Construct(2);
- pArgs->Add(new (std::nothrow) String(KEY_CALENDAR_ITEM_TYPE), new (std::nothrow) String(VALUE_CALENDAR_TODO_TYPE));
+ if (pApp->GetOperationType() == OPERATION_TYPE_2_0_APPCONTROL)
+ {
+ pArgs->Add(new (std::nothrow) String(KEY_CALENDAR_ITEM_TYPE), new (std::nothrow) String(VALUE_CALENDAR_TODO_TYPE));
- String* pPath = new (std::nothrow) String(CalendarApp::GetExportVcsFilePath());
- __pCalendarbook->ExportTodosToVcalendar(*pResultList, *pPath);
- pArgs->Add(new (std::nothrow) String(KEY_CALENDAR_PATH), pPath);
+ String* pPath = new (std::nothrow) String(CalendarApp::GetExportVcsFilePath());
+ __pCalendarbook->ExportTodosToVcalendar(*pResultList, *pPath);
+ pArgs->Add(new (std::nothrow) String(KEY_CALENDAR_PATH), pPath);
+ }
+ else
+ {
+ const String* pResultType = pApp->GetArgument(KEY_SOCIAL_RESULT_TYPE);
+ if (pResultType != null && *pResultType == VALUE_SOCIAL_ITEM_ID)
+ {
+ const String* pSelectionMode = pApp->GetArgument(KEY_DATA_SELECTION_MODE);
+ if (pSelectionMode != null && pSelectionMode->Equals(VALUE_CALENDAR_MULTIPLE_SELECTION_MODE, false) == true)
+ {
+ int itemCount = pResultList->GetCount();
+ ArrayList* pTodos = new (std::nothrow) ArrayList();
+ pTodos->Construct(itemCount);
+ for (int i = 0; i < itemCount; ++i)
+ {
+ pTodos->Add(new (std::nothrow) String(Integer::ToString(static_cast<const CalTodo*>(pResultList->GetAt(i))->GetRecordId())));
+ }
+ pArgs->Add(new (std::nothrow) String(KEY_SOCIAL_ITEM_ID), pTodos);
+ }
+ else
+ {
+ RecordId todoId = static_cast<const CalTodo*>(pResultList->GetAt(0))->GetRecordId();
+ pArgs->Add(new (std::nothrow) String(KEY_SOCIAL_ITEM_ID), new (std::nothrow) String(Integer::ToString(todoId)));
+ }
+ }
+ else
+ {
+ String* pPath = new (std::nothrow) String(CalendarApp::GetExportVcsFilePath());
+ __pCalendarbook->ExportTodosToVcalendar(*pResultList, *pPath);
+ pArgs->Add(new (std::nothrow) String(KEY_DATA_PATH), pPath);
+ }
+ }
}
result r = AppControlProviderManager::GetInstance()->SendAppControlResult(pApp->GetRequestId(), appControlResult, pArgs);
const wchar_t* ID_OPERATION_PICK = L"http://tizen.org/appcontrol/operation/pick";
const wchar_t* ID_OPERATION_VIEW = L"http://tizen.org/appcontrol/operation/view";
+const wchar_t* ID_OPERATION_SOCIAL_EDIT = L"http://tizen.org/appcontrol/operation/social/edit";
+const wchar_t* ID_OPERATION_SOCIAL_PICK = L"http://tizen.org/appcontrol/operation/social/pick";
+const wchar_t* ID_OPERATION_SOCIAL_VIEW = L"http://tizen.org/appcontrol/operation/social/view";
+
+const wchar_t* MIME_TYPE_VCALENDAR = L"text/x-vcalendar";
+
const wchar_t* KEY_CALENDAR_EVENT_ID = L"eventId";
const wchar_t* KEY_CALENDAR_TODO_ID = L"todoId";
const wchar_t* KEY_CALENDAR_ITEM_TYPE = L"itemType";
const wchar_t* KEY_CALENDAR_VIEW_TYPE = L"viewType";
const wchar_t* KEY_CALENDAR_SELECTION_MODE = L"selectionMode";
const wchar_t* KEY_CALENDAR_PATH = L"path";
+
+const wchar_t* KEY_DATA_PATH = L"http://tizen.org/appcontrol/data/path";
+const wchar_t* KEY_DATA_SELECTION_MODE = L"http://tizen.org/appcontrol/data/selection_mode";
+const wchar_t* KEY_DATA_RETURN_RESULT = L"http://tizen.org/appcontrol/data/return_result";
+
+const wchar_t* KEY_SOCIAL_ITEM_ID = L"http://tizen.org/appcontrol/data/social/item_id";
+const wchar_t* KEY_SOCIAL_ITEM_TYPE = L"http://tizen.org/appcontrol/data/social/item_type";
+const wchar_t* KEY_SOCIAL_RESULT_TYPE = L"http://tizen.org/appcontrol/data/social/result_type";
+
const wchar_t* KEY_NOTIFICATION_MANAGER_APP_MESSAGE = L"http://tizen.org/appcontrol/data/notification";
const wchar_t* KEY_SYSTEM_24_HOUR_NOTATION_ENABLED = L"http://tizen.org/setting/locale.time.format.24hour";
const wchar_t* KEY_SYSTEM_COUNTRY = L"http://tizen.org/setting/locale.country";
const wchar_t* VALUE_CALENDAR_SINGLE_SELECTION_MODE = L"single";
const wchar_t* VALUE_CALENDAR_MULTIPLE_SELECTION_MODE = L"multiple";
+const wchar_t* VALUE_SOCIAL_ITEM_ID = L"item_id";
+
const wchar_t* VCS_EXPORT_PATH = L"/tmp/Cl%d%02d%02d%02d%02d%02d.vcs";