From: Igor Olshevskyi Date: Tue, 10 Oct 2017 12:18:58 +0000 (+0300) Subject: TizenRefApp-9562 [Call UI] Reimplement AcceptDialog using ucl::ListPresenter X-Git-Tag: submit/tizen_4.0/20171018.080056~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=664a6feb17dec93c880ac22de583e3d51f4272df;p=profile%2Fwearable%2Fapps%2Fnative%2Fcall-ui.git TizenRefApp-9562 [Call UI] Reimplement AcceptDialog using ucl::ListPresenter Change-Id: I1e7444272ac1a954a2c83b3280a42dc6e1c906da --- diff --git a/.cproject b/.cproject index d1a9f68..9daccd5 100644 --- a/.cproject +++ b/.cproject @@ -134,98 +134,6 @@ @@ -494,10 +402,10 @@ - - @@ -633,98 +541,6 @@ @@ -969,13 +785,13 @@ - - - diff --git a/call-ui/presenters/dialogs/AcceptDialog.cpp b/call-ui/presenters/dialogs/AcceptDialog.cpp index c6c3710..64a2373 100644 --- a/call-ui/presenters/dialogs/AcceptDialog.cpp +++ b/call-ui/presenters/dialogs/AcceptDialog.cpp @@ -26,17 +26,7 @@ namespace callui { namespace { namespace impl { constexpr ElmStyle POPUP_STYLE {"circle"}; - void *asData(const AcceptDialog::Event event) - { - return reinterpret_cast(static_cast(event)); - } - - AcceptDialog::Event asEvent(void *const data) - { - return static_cast( - reinterpret_cast(data)); - } - + constexpr EdjePart PART_CIRCLE_SFC {"elm.swallow.progress"}; }}} namespace callui { @@ -72,15 +62,12 @@ namespace callui { AcceptDialog::AcceptDialog(IRefCountObj &rc, const EventHandler &handler): Dialog(rc), - m_handler(handler) + m_handler(handler), + m_circleObj(nullptr), + m_isRotaryActive(false) { } - AcceptDialog::~AcceptDialog() - { - unsetLanguageChangeCallback(); - } - Result AcceptDialog::prepare(ElmWidget &parent) { FAIL_RETURN(Dialog::prepare(parent, PopupType::NORMAL, @@ -97,146 +84,81 @@ namespace callui { { m_popup->setStyle(impl::POPUP_STYLE); - FAIL_RETURN(createGenlist(), "createGenlist() failed!"); + FAIL_RETURN(createList(), "createList() failed!"); - setLanguageChangeCallback(); + FAIL_RETURN(createCircleObject(), "createCircleObject() failed"); - return RES_OK; - } + FAIL_RETURN(createListItems(), "createListItems() failed!"); - void AcceptDialog::onGenlistItemClickedCb(Evas_Object *obj, - void *eventInfo) - { - if (!eventInfo) - LOG_RETURN_VOID(RES_FAIL, "eventInfo is NULL"); - - Elm_Object_Item *item = static_cast(eventInfo); - handleEvent(impl::asEvent(elm_object_item_data_get(item))); + return RES_OK; } - Result AcceptDialog::createGenlist() + Result AcceptDialog::createCircleObject() { - Evas_Object *const glEo = elm_genlist_add(*m_popup); - if (!glEo) { - LOG_RETURN(RES_FAIL, "elm_genlist_add() failed!"); + const auto layout = Layout::Builder(). + setIsOwner(false). + build(*m_popup); + if (!layout) { + LOG_RETURN(RES_FAIL, "Layout::build() failed!"); } - elm_genlist_mode_set(glEo, ELM_LIST_COMPRESS); - elm_genlist_homogeneous_set(glEo, EINA_TRUE); - - m_genlist = makeShared(glEo, false); - m_genlist->setWeight(EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - m_genlist->setAlign(EVAS_HINT_FILL, EVAS_HINT_FILL); - - Evas_Object *circleGlEo = eext_circle_object_genlist_add(glEo, - utils::getCircleSurface(*m_genlist)); - eext_circle_object_genlist_scroller_policy_set(circleGlEo, - ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO); - eext_rotary_object_event_activated_set(circleGlEo, EINA_TRUE); - - FAIL_RETURN(fillGenlist(), "fillGenlist() failed!"); + m_popup->setContent(*layout, impl::PART_CIRCLE_SFC); - m_popup->setContent(glEo); + auto surface = eext_circle_surface_layout_add(*layout); - return RES_OK; - } - - Result AcceptDialog::addGenlistTitleItem() - { - static Elm_Genlist_Item_Class titleItc = - utils::createGenlistItemClass("title", - [](void *data, Evas_Object *obj, const char *part) -> char * - { - return strdup(STR_ANSWER_CALL.translate()); - }); - - Elm_Object_Item *item = elm_genlist_item_append(*m_genlist, &titleItc, - nullptr, - nullptr, - ELM_GENLIST_ITEM_NONE, - nullptr, - nullptr); - if (!item) - LOG_RETURN(RES_FAIL, "elm_genlist_item_append() failed!"); + m_circleObj = eext_circle_object_genlist_add( + m_listPresenter->getWidget(), surface); - return RES_OK; - } + eext_circle_object_genlist_scroller_policy_set(m_circleObj, + ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO); - Result AcceptDialog::addGenlistTextItem(Event event) - { - static Elm_Genlist_Item_Class textItc = - utils::createGenlistItemClass("1text.1icon", - [](void *data, Evas_Object *obj, const char *part) -> char * - { - switch (impl::asEvent(data)) { - case Event::HOLD_AND_ACCEPT: - return strdup(STR_HOLD_AND_ACCEPT.translate()); - case Event::END_AND_ACCEPT: - return strdup(STR_END_AND_ACCEPT.translate()); - default: - return nullptr; - } - }); - - Elm_Object_Item *item = elm_genlist_item_append(*m_genlist, &textItc, - impl::asData(event), - nullptr, - ELM_GENLIST_ITEM_NONE, - CALLBACK_A(AcceptDialog::onGenlistItemClickedCb), - this); - if (!item) - LOG_RETURN(RES_FAIL, "elm_genlist_item_append() failed!"); + updateRotaryActiveState(); return RES_OK; } - Result AcceptDialog::addGenlistBottomItem() + Result AcceptDialog::createList() { - static Elm_Genlist_Item_Class paddingItc = - utils::createGenlistItemClass("1text.1icon"); - Elm_Object_Item *item = elm_genlist_item_append(*m_genlist, &paddingItc, - nullptr, - nullptr, - ELM_GENLIST_ITEM_NONE, - nullptr, - nullptr); - if (!item) - LOG_RETURN(RES_FAIL, "elm_genlist_item_append() failed!"); + m_listPresenter = ListPresenter::Builder(). + setParentWidget(m_popup). + build(*this); + if (!m_listPresenter) { + LOG_RETURN(RES_FAIL, "ListPresenter::build() failed!"); + } + m_popup->setContent(m_listPresenter->getWidget()); return RES_OK; } - Result AcceptDialog::fillGenlist() + ucl::Result AcceptDialog::createListItems() { - FAIL_RETURN(addGenlistTitleItem(), "addGenlistTitleItem() failed!"); + FAIL_RETURN(m_listPresenter->append( + *makeTitleListItem(STR_ANSWER_CALL)), + "m_listPresenter->append failed!"); - FAIL_RETURN(addGenlistTextItem(Event::HOLD_AND_ACCEPT), - "addGenlistTextItem() failed!"); + FAIL_RETURN(m_listPresenter->append( + *makeMenuListItem(STR_HOLD_AND_ACCEPT, + WEAK_DELEGATE_THIS(onHoldAndAcceptItemSelected))), + "m_listPresenter->append failed!"); - FAIL_RETURN(addGenlistTextItem(Event::END_AND_ACCEPT), - "addGenlistTextItem() failed!"); + FAIL_RETURN(m_listPresenter->append( + *makeMenuListItem(STR_END_AND_ACCEPT, + WEAK_DELEGATE_THIS(onEndAndAcceptItemSelected))), + "m_listPresenter->append failed!"); - FAIL_RETURN(addGenlistBottomItem(), "addGenlistBottomItem() failed!"); + FAIL_RETURN(m_listPresenter->append(*makePaddingListItem()), + "m_listPresenter->append failed!"); return RES_OK; } - void AcceptDialog::setLanguageChangeCallback() + void AcceptDialog::onHoldAndAcceptItemSelected() { - getWindow().addEventHandler(WIN_LANGUAGE_CHANGED, - WEAK_DELEGATE_THIS(onLanguageChanged)); + handleEvent(Event::HOLD_AND_ACCEPT); } - void AcceptDialog::unsetLanguageChangeCallback() + void AcceptDialog::onEndAndAcceptItemSelected() { - getWindow().delEventHandler(WIN_LANGUAGE_CHANGED, - DELEGATE_THIS(onLanguageChanged)); - } - - void AcceptDialog::onLanguageChanged(Widget &widget, void *eventInfo) - { - if (m_genlist) { - elm_genlist_realized_items_update(*m_genlist); - } + handleEvent(Event::END_AND_ACCEPT); } void AcceptDialog::handleEvent(Event event) @@ -261,4 +183,31 @@ namespace callui { handleEvent(Event::BACK); } + bool AcceptDialog::isNeedRotaryActivate() const + { + return isActive(); + } + + void AcceptDialog::updateRotaryActiveState() + { + if (m_circleObj) { + const bool needActivate = isNeedRotaryActivate(); + if (needActivate != m_isRotaryActive) { + m_isRotaryActive = needActivate; + eext_rotary_object_event_activated_set(m_circleObj, + toEina(needActivate)); + } + } + } + + void AcceptDialog::onActivate() + { + updateRotaryActiveState(); + } + + void AcceptDialog::onDeactivate() + { + updateRotaryActiveState(); + } + } diff --git a/call-ui/presenters/dialogs/AcceptDialog.h b/call-ui/presenters/dialogs/AcceptDialog.h index 6fb1cb8..6c627d0 100644 --- a/call-ui/presenters/dialogs/AcceptDialog.h +++ b/call-ui/presenters/dialogs/AcceptDialog.h @@ -19,6 +19,8 @@ #include "base/Dialog.h" +#include "ucl/mvp/ListPresenter.h" + #include "call-ui/types.h" namespace callui { @@ -76,33 +78,35 @@ namespace callui { private: AcceptDialog(ucl::IRefCountObj &rc, const EventHandler &handler); - ~AcceptDialog(); + ~AcceptDialog() = default; ucl::Result prepare(ucl::ElmWidget &parent); ucl::Result doPrepare(); - ucl::Result createGenlist(); - ucl::Result fillGenlist(); - ucl::Result addGenlistTitleItem(); - ucl::Result addGenlistTextItem(Event event); - ucl::Result addGenlistBottomItem(); - - void setLanguageChangeCallback(); - void unsetLanguageChangeCallback(); - void onLanguageChanged(ucl::Widget &widget, void *eventInfo); + ucl::Result createList(); + ucl::Result createCircleObject(); + ucl::Result createListItems(); + void onHoldAndAcceptItemSelected(); + void onEndAndAcceptItemSelected(); void handleEvent(Event event); bool dispatchEvent(Event event); - void onGenlistItemClickedCb(Evas_Object *obj, void *eventInfo); + bool isNeedRotaryActivate() const; + void updateRotaryActiveState(); // Dialog // virtual void onBackKey() override final; + virtual void onActivate() override final; + virtual void onDeactivate() override final; private: const EventHandler m_handler; - ucl::StyledWidgetSRef m_genlist; + + ucl::ListPresenterSRef m_listPresenter; + Evas_Object *m_circleObj; + bool m_isRotaryActive; friend class ucl::ReffedObj; }; diff --git a/call-ui/presenters/items/SimpleListItem.cpp b/call-ui/presenters/items/SimpleListItem.cpp new file mode 100644 index 0000000..46b12ad --- /dev/null +++ b/call-ui/presenters/items/SimpleListItem.cpp @@ -0,0 +1,60 @@ +/* + * Copyright 2017 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.1 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://floralicense.org/license/ + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "SimpleListItem.h" + +#include "call-ui/presenters/common.h" + +namespace callui { + + SimpleListItem::SimpleListItem(IRefCountObj &rc, + ElmStyle style, PartTextMap parts) : + ListItemPresenter::ListItemPresenter(rc), + m_listItemStyle(style), + m_listItemParts(std::move(parts)) + { + } + + void SimpleListItem::setItemSelectHandler(NotiHandler handler) + { + m_onItemSelected = std::move(handler); + } + + ListItemPresenter::ItemInsertionParams + SimpleListItem::getItemInsertionParams() + { + return m_listItemStyle; + } + + CString SimpleListItem::getItemPartText(EdjePart part) + { + TString text; + if (!m_listItemParts.get(part, text)) + return nullptr; + + return CString::dup(text.translate()); + } + + void SimpleListItem::onItemSelected() + { + if (isActive()) { + if (const auto handler = m_onItemSelected.lock()) { + handler(); + } + } + } + +} diff --git a/call-ui/presenters/items/SimpleListItem.h b/call-ui/presenters/items/SimpleListItem.h new file mode 100644 index 0000000..03f8e6f --- /dev/null +++ b/call-ui/presenters/items/SimpleListItem.h @@ -0,0 +1,78 @@ +/* + * Copyright 2017 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.1 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://floralicense.org/license/ + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __CALL_UI_PRESENTERS_ITEMS_SIMPLE_LIST_ITEM_H__ +#define __CALL_UI_PRESENTERS_ITEMS_SIMPLE_LIST_ITEM_H__ + +#include "ucl/mvp/ListItemPresenter.h" + +#include "call-ui/presenters/types.h" + +namespace callui { + + UCL_DECLARE_REF_ALIASES(SimpleListItem); + + class SimpleListItem final : public ucl::ListItemPresenter { + public: + + /** + * @brief Constructor + * @param[in] rc Pointer to IRefCountObj (passed automatically) + * @param[in] style Item style + * @param[in] parts Map of item text parts value + */ + SimpleListItem(ucl::IRefCountObj &rc, ucl::ElmStyle style, + PartTextMap parts = {}); + + /** + * @brief Sets item select handler + * @param[in] handler Select handler + */ + void setItemSelectHandler(NotiHandler handler); + + protected: + + // ListItemPresenter // + + /** + * @see ucl::ListItemPresenter::getItemInsertionParams() + */ + virtual ItemInsertionParams getItemInsertionParams() override; + + /** + * @see ucl::ListItemPresenter::getItemPartText() + */ + virtual ucl::CString getItemPartText(ucl::EdjePart part) override; + + /** + * @see ucl::ListItemPresenter::onItemSelected() + */ + virtual void onItemSelected() override; + + private: + ~SimpleListItem() = default; + + private: + const ucl::ElmStyle m_listItemStyle; + const PartTextMap m_listItemParts; + + NotiHandler m_onItemSelected; + + friend class ucl::ReffedObj; + }; +} + +#endif // __CALL_UI_PRESENTERS_ITEMS_SIMPLE_LIST_ITEM_H__ diff --git a/call-ui/presenters/misc/helpers.cpp b/call-ui/presenters/misc/helpers.cpp index 2c2002d..1ba8369 100644 --- a/call-ui/presenters/misc/helpers.cpp +++ b/call-ui/presenters/misc/helpers.cpp @@ -20,10 +20,16 @@ #include "call-ui/presenters/common.h" -namespace callui { namespace { namespace himpl { +namespace callui { namespace { namespace impl { constexpr EoDataKey INSTANCE_PTR {"callui,instance,data,ptr"}; + constexpr EdjePart LIST_ITEM_TEXT_PART {"elm.text"}; + + constexpr ElmStyle LIST_ITEM_PADDING_STYLE {"padding"}; + constexpr ElmStyle LIST_ITEM_MENU_STYLE {"1text"};; + constexpr ElmStyle LIST_ITEM_TITLE_STYLE {"title"}; + const TString STR_HH_MM_SS_TIME{"%02d:%02d:%02d"}; const TString STR_MM_SS_TIME{"%02d:%02d"}; @@ -40,14 +46,14 @@ namespace callui { void setInstancePaused(Window &win, const bool value) { - win.setData(himpl::INSTANCE_PTR, reinterpret_cast(value)); + win.setData(impl::INSTANCE_PTR, reinterpret_cast(value)); win.callEvent((value ? INSTANCE_PAUSED : INSTANCE_RESUMED), nullptr); } bool isInstancePaused(const Window &win) { return (reinterpret_cast( - win.getData(himpl::INSTANCE_PTR)) != 0); + win.getData(impl::INSTANCE_PTR)) != 0); } void replaceSubstringInString(std::string &str, @@ -68,10 +74,10 @@ namespace callui { { TString tmp; if (time.tm_hour > 0) { - tmp = himpl::STR_HH_MM_SS_TIME.format( + tmp = impl::STR_HH_MM_SS_TIME.format( time.tm_hour, time.tm_min, time.tm_sec); } else { - tmp = himpl::STR_MM_SS_TIME.format( + tmp = impl::STR_MM_SS_TIME.format( time.tm_min, time.tm_sec); } return tmp; @@ -82,13 +88,13 @@ namespace callui { { switch (type) { case BidiTextEncloseType::LRM: - return himpl::BIDI_TXT_LRM + txt + himpl::BIDI_TXT_LRM; + return impl::BIDI_TXT_LRM + txt + impl::BIDI_TXT_LRM; case BidiTextEncloseType::RLM: - return himpl::BIDI_TXT_RLM + txt + himpl::BIDI_TXT_RLM; + return impl::BIDI_TXT_RLM + txt + impl::BIDI_TXT_RLM; case BidiTextEncloseType::LRM_RLM: - return himpl::BIDI_TXT_LRM_RLM + txt + himpl::BIDI_TXT_RLM_LRM; + return impl::BIDI_TXT_LRM_RLM + txt + impl::BIDI_TXT_RLM_LRM; case BidiTextEncloseType::RLM_LRM: - return himpl::BIDI_TXT_RLM_LRM + txt + himpl::BIDI_TXT_LRM_RLM; + return impl::BIDI_TXT_RLM_LRM + txt + impl::BIDI_TXT_LRM_RLM; default: ELOG("Invalid type"); return txt; @@ -101,20 +107,20 @@ namespace callui { { switch (type) { case BidiTextEncloseType::LRM: - txt.insert(0, himpl::BIDI_TXT_LRM); - txt.append(himpl::BIDI_TXT_LRM); + txt.insert(0, impl::BIDI_TXT_LRM); + txt.append(impl::BIDI_TXT_LRM); break; case BidiTextEncloseType::RLM: - txt.insert(0, himpl::BIDI_TXT_RLM); - txt.append(himpl::BIDI_TXT_RLM); + txt.insert(0, impl::BIDI_TXT_RLM); + txt.append(impl::BIDI_TXT_RLM); break; case BidiTextEncloseType::LRM_RLM: - txt.insert(0, himpl::BIDI_TXT_LRM_RLM); - txt.append(himpl::BIDI_TXT_RLM_LRM); + txt.insert(0, impl::BIDI_TXT_LRM_RLM); + txt.append(impl::BIDI_TXT_RLM_LRM); break; case BidiTextEncloseType::RLM_LRM: - txt.insert(0, himpl::BIDI_TXT_RLM_LRM); - txt.append(himpl::BIDI_TXT_LRM_RLM); + txt.insert(0, impl::BIDI_TXT_RLM_LRM); + txt.append(impl::BIDI_TXT_LRM_RLM); break; default: ELOG("Invalid type"); @@ -149,5 +155,34 @@ namespace callui { } return RES_OK; } + + SimpleListItemSRef makePaddingListItem() + { + return makeShared(impl::LIST_ITEM_PADDING_STYLE); + } + + SimpleListItemSRef makeMenuListItem(TString text, + NotiHandler itemSelectHandler) + { + PartTextMap map; + map.set(impl::LIST_ITEM_TEXT_PART, std::move(text)); + + auto result = makeShared(impl::LIST_ITEM_MENU_STYLE, + std::move(map)); + + result->setItemSelectHandler(std::move(itemSelectHandler)); + + return result; + } + + SimpleListItemSRef makeTitleListItem(TString text) + { + PartTextMap map; + map.set(impl::LIST_ITEM_TEXT_PART, std::move(text)); + + return makeShared(impl::LIST_ITEM_TITLE_STYLE, + std::move(map)); + } + } diff --git a/call-ui/presenters/misc/helpers.h b/call-ui/presenters/misc/helpers.h index cf48380..5f1c5df 100644 --- a/call-ui/presenters/misc/helpers.h +++ b/call-ui/presenters/misc/helpers.h @@ -23,6 +23,8 @@ #include "ucl/gui/EdjeWidget.h" #include "ucl/gui/types.h" +#include "call-ui/presenters/items/SimpleListItem.h" + namespace callui { /** @@ -100,6 +102,28 @@ namespace callui { * @return Enclosed string */ std::string encloseBidirectionalText(std::string &&txt, BidiTextEncloseType type); + + /** + * @brief Creates Padding list item + * @return Shared reference to Padding list item on success, NULL otherwise + */ + SimpleListItemSRef makePaddingListItem(); + + /** + * @brief Creates Menu list item + * @param[in] text Menu item text + * @param[in] itemSelectHandler Select handler + * @return Shared reference to Menu list item on success, NULL otherwise + */ + SimpleListItemSRef makeMenuListItem(ucl::TString text, + NotiHandler itemSelectHandler); + + /** + * @brief Creates Title list item + * @param[in] text Title item text + * @return Shared reference to Title list item on success, NULL otherwise + */ + SimpleListItemSRef makeTitleListItem(ucl::TString text); } #endif // __CALL_UI_PRESENTERS_MISC_HELPERS_H__ diff --git a/call-ui/presenters/types.h b/call-ui/presenters/types.h index df9dd48..eff272d 100644 --- a/call-ui/presenters/types.h +++ b/call-ui/presenters/types.h @@ -17,6 +17,8 @@ #ifndef __CALL_UI_PRESENTERS_TYPES_H__ #define __CALL_UI_PRESENTERS_TYPES_H__ +#include "ucl/misc/HashMap.h" + #include "call-ui/view/types.h" #include "call-ui/model/types.h" @@ -25,6 +27,8 @@ namespace callui { struct PowerBtnEventInfo { bool stopPropagation = false; }; + + using PartTextMap = ucl::HashMap; } #endif // __CALL_UI_PRESENTERS_TYPES_H__ diff --git a/project_def.prop b/project_def.prop index 22da83a..b725b1d 100644 --- a/project_def.prop +++ b/project_def.prop @@ -9,7 +9,7 @@ type = app profile = wearable-4.0 # C/CPP Sources -USER_SRCS = call-ui/presenters/dialogs/base/Dialog.cpp call-ui/view/VolumeControl.cpp call-ui/model/impl/CallInfo.cpp call-ui/model/impl/IncomingCall.cpp ucl/source/appfw/helpers.cpp ucl/source/mvp/ListItemPresenter.cpp call-ui/model/impl/RejectMsg.cpp ucl/source/gui/Genlist.cpp ucl/source/util/types/Result.cpp call-ui/model/impl/ConferenceCallInfo.cpp call-ui/model/impl/BluetoothManager.cpp ucl/source/gui/Layout.cpp call-ui/presenters/misc/MotionSensorPresenter.cpp call-ui/model/impl/RssiStateSource.cpp call-ui/presenters/Instance.cpp call-ui/model/impl/ActiveCall.cpp call-ui/model/impl/SimSlotStateSource.cpp call-ui/presenters/misc/AcceptRejectPresenter.cpp ucl/source/gui/WidgetItem.cpp call-ui/presenters/pages/MainPage.cpp ucl/source/gui/NaviItem.cpp call-ui/presenters/misc/DeviceStatePresenter.cpp call-ui/model/impl/ContactInfoProvider.cpp call-ui/model/impl/HdVoiceStateSource.cpp ucl/source/gui/Window.cpp call-ui/model/impl/ConnectionStateSource.cpp call-ui/presenters/misc/RejectMsgPresenter.cpp call-ui/presenters/pages/KeypadPage.cpp ucl/source/util/logging.cpp ucl/source/appfw/UIApp.cpp call-ui/presenters/misc/AccessoryPresenter.cpp call-ui/model/impl/ContactInfo.cpp call-ui/model/impl/EndCall.cpp call-ui/view/Slider.cpp call-ui/model/impl/RejectMsgProvider.cpp ucl/source/mvp/GuiPresenter.cpp ucl/source/appfw/InstanceManagerBase.cpp call-ui/model/impl/BatteryStateSource.cpp ucl/source/gui/Widget.cpp call-ui/presenters/dialogs/AcceptDialog.cpp call-ui/types.cpp call-ui/presenters/misc/helpers.cpp call-ui/model/impl/IndicatorStateProvider.cpp call-ui/view/AcceptRejectWidget.cpp ucl/source/misc/Timeout.cpp call-ui/resources.cpp ucl/source/util/types/classTypes.cpp call-ui/model/CallUIBuilder.cpp call-ui/presenters/misc/CallStatusPresenter.cpp call-ui/model/impl/HeldCall.cpp call-ui/model/impl/SoundManager.cpp ucl/source/gui/EdjeWidget.cpp call-ui/model/impl/MsgClient.cpp call-ui/presenters/InstanceManager.cpp call-ui/presenters/pages/base/Page.cpp call-ui/presenters/misc/MoreOptionsPresenter.cpp call-ui/presenters/misc/IndicatorPresenter.cpp call-ui/presenters/misc/AtspiHighlightHelper.cpp ucl/source/gui/Naviframe.cpp call-ui/model/impl/CallUI.cpp ucl/source/gui/ElmWidget.cpp ucl/source/gui/RadioBox.cpp ucl/source/misc/Variant.cpp call-ui/view/helpers.cpp call-ui/main.cpp call-ui/model/impl/CallManager.cpp call-ui/presenters/misc/CallInfoPresenter.cpp ucl/source/appfw/SysEventProvider.cpp call-ui/model/impl/CallClient.cpp ucl/source/mvp/ListPresenter.cpp +USER_SRCS = call-ui/presenters/dialogs/base/Dialog.cpp call-ui/view/VolumeControl.cpp call-ui/model/impl/CallInfo.cpp call-ui/presenters/items/SimpleListItem.cpp call-ui/model/impl/IncomingCall.cpp ucl/source/appfw/helpers.cpp ucl/source/mvp/ListItemPresenter.cpp call-ui/model/impl/RejectMsg.cpp ucl/source/gui/Genlist.cpp ucl/source/util/types/Result.cpp call-ui/model/impl/ConferenceCallInfo.cpp call-ui/model/impl/BluetoothManager.cpp ucl/source/gui/Layout.cpp call-ui/presenters/misc/MotionSensorPresenter.cpp call-ui/model/impl/RssiStateSource.cpp call-ui/presenters/Instance.cpp call-ui/model/impl/ActiveCall.cpp call-ui/model/impl/SimSlotStateSource.cpp call-ui/presenters/misc/AcceptRejectPresenter.cpp ucl/source/gui/WidgetItem.cpp call-ui/presenters/pages/MainPage.cpp ucl/source/gui/NaviItem.cpp call-ui/presenters/misc/DeviceStatePresenter.cpp call-ui/model/impl/ContactInfoProvider.cpp call-ui/model/impl/HdVoiceStateSource.cpp ucl/source/gui/Window.cpp call-ui/model/impl/ConnectionStateSource.cpp call-ui/presenters/misc/RejectMsgPresenter.cpp call-ui/presenters/pages/KeypadPage.cpp ucl/source/util/logging.cpp ucl/source/appfw/UIApp.cpp call-ui/presenters/misc/AccessoryPresenter.cpp call-ui/model/impl/ContactInfo.cpp call-ui/model/impl/EndCall.cpp call-ui/view/Slider.cpp call-ui/model/impl/RejectMsgProvider.cpp ucl/source/mvp/GuiPresenter.cpp ucl/source/appfw/InstanceManagerBase.cpp call-ui/model/impl/BatteryStateSource.cpp ucl/source/gui/Widget.cpp call-ui/presenters/dialogs/AcceptDialog.cpp call-ui/types.cpp call-ui/presenters/misc/helpers.cpp call-ui/model/impl/IndicatorStateProvider.cpp call-ui/view/AcceptRejectWidget.cpp ucl/source/misc/Timeout.cpp call-ui/resources.cpp ucl/source/util/types/classTypes.cpp call-ui/model/CallUIBuilder.cpp call-ui/presenters/misc/CallStatusPresenter.cpp call-ui/model/impl/HeldCall.cpp call-ui/model/impl/SoundManager.cpp ucl/source/gui/EdjeWidget.cpp call-ui/model/impl/MsgClient.cpp call-ui/presenters/InstanceManager.cpp call-ui/presenters/pages/base/Page.cpp call-ui/presenters/misc/MoreOptionsPresenter.cpp call-ui/presenters/misc/IndicatorPresenter.cpp call-ui/presenters/misc/AtspiHighlightHelper.cpp ucl/source/gui/Naviframe.cpp call-ui/model/impl/CallUI.cpp ucl/source/gui/ElmWidget.cpp ucl/source/gui/RadioBox.cpp ucl/source/misc/Variant.cpp call-ui/view/helpers.cpp call-ui/main.cpp call-ui/model/impl/CallManager.cpp call-ui/presenters/misc/CallInfoPresenter.cpp ucl/source/appfw/SysEventProvider.cpp call-ui/model/impl/CallClient.cpp ucl/source/mvp/ListPresenter.cpp # EDC Sources USER_EDCS =