From 7fd3ab36683b36d36601c030a80db6c019511d20 Mon Sep 17 00:00:00 2001 From: Dongseok JANG Date: Sat, 13 Apr 2013 01:45:13 +0900 Subject: [PATCH] Fixed jira issues(N_SE-34018) Change-Id: If8b2303dc43eff486dd60da2cbbb3645493593b0 Signed-off-by: Dongseok JANG --- inc/CtContactEditorForm.h | 1 + src/CtContactEditorForm.cpp | 40 ++++++++++++++++++++++++++++++++-------- 2 files changed, 33 insertions(+), 8 deletions(-) diff --git a/inc/CtContactEditorForm.h b/inc/CtContactEditorForm.h index 7ff3b50..b7ca7d7 100644 --- a/inc/CtContactEditorForm.h +++ b/inc/CtContactEditorForm.h @@ -177,6 +177,7 @@ private: bool __isMoreInformationContextMenuShowing; bool __isKeypadOpened; int __scrolledDistance; + Tizen::App::AppControl* __pAppControl; Tizen::Base::Collection::ArrayList* __pPhoneNumberFieldItem; Tizen::Base::Collection::ArrayList* __pEmailFieldItem; Tizen::Base::Collection::ArrayList* __pAddressFieldItem; diff --git a/src/CtContactEditorForm.cpp b/src/CtContactEditorForm.cpp index a7be512..86460f2 100644 --- a/src/CtContactEditorForm.cpp +++ b/src/CtContactEditorForm.cpp @@ -163,6 +163,7 @@ ContactEditorForm::ContactEditorForm(void) , __isMoreInformationContextMenuShowing(false) , __isKeypadOpened(false) , __scrolledDistance(0) +, __pAppControl(null) , __pPhoneNumberFieldItem(null) , __pEmailFieldItem(null) , __pAddressFieldItem(null) @@ -282,6 +283,7 @@ ContactEditorForm::OnTerminating(void) delete __pImAddressFieldItem; } + delete __pAppControl; delete __pNameFieldItem; delete __pNoteFieldItem; delete __pDefaultPhoneNumberContextMenu; @@ -3299,6 +3301,12 @@ ContactEditorForm::OnAppControlCompleteResponseReceived(const Tizen::App::AppId& SetEnabled(true); Invalidate(true); + if (__pAppControl != null) + { + delete __pAppControl; + __pAppControl = null; + } + TryReturnVoid(appControlResult == APP_CTRL_RESULT_SUCCEEDED, "[E_FAILURE] The result of an appcontrol is not succeeded."); TryReturnVoid(pExtraData != null, "[E_FAILURE] The extra data is null."); @@ -3373,20 +3381,24 @@ ContactEditorForm::LaunchAppControl(const Tizen::App::AppId& appId, const Tizen: extraData.Add(new (std::nothrow) String(INPUT_KEY_SELECTION_MODE), new (std::nothrow) String(INPUT_DATA_SELECTION_MODE_SINGLE)); } - AppControl* pAppControl = AppManager::FindAppControlN(appId, operationId); + __pAppControl = AppManager::FindAppControlN(appId, operationId); - if (pAppControl != null) + if (__pAppControl != null) { - r = pAppControl->Start(&uri, &mimeType, &extraData, this); + r = __pAppControl->Start(&uri, &mimeType, &extraData, this); TryCatch(r == E_SUCCESS, , "[%s] Unable to launch app control.", GetErrorMessage(r)); SetEnabled(false); Invalidate(true); } + extraData.RemoveAll(true); + + return r; CATCH: extraData.RemoveAll(true); - delete pAppControl; + delete __pAppControl; + __pAppControl = null; return r; } @@ -3400,7 +3412,20 @@ ContactEditorForm::OnContactsChanged(void) { if (__pPresentationModel->IsContactRemoved()) { - pSceneManager->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_RIGHT)); + ContactsApp* pContactsApp = static_cast(ContactsApp::GetInstance()); + + if (pContactsApp->GetOperationId() == OPERATION_ID_VIEW) + { + __pPresentationModel->RemoveContactChangeListener(*this); + } + else + { + if (__pAppControl != null) + { + __pAppControl->Stop(); + } + pSceneManager->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_RIGHT)); + } } return; @@ -3408,10 +3433,9 @@ ContactEditorForm::OnContactsChanged(void) SetFocus(); - if (__isAppControl == true) + if (__isAppControl) { - UiApp* pApp = UiApp::GetInstance(); - pApp->Terminate(); + UiApp::GetInstance()->Terminate(); } else { -- 2.7.4