TizenRefApp-9564 [Call UI] Reimplement RejectMsgPresenter using ucl::ListPresenter 05/154705/7
authorIgor Olshevskyi <i.olshevskyi@samsung.com>
Tue, 10 Oct 2017 13:00:26 +0000 (16:00 +0300)
committerIgor Olshevskyi <i.olshevskyi@samsung.com>
Thu, 12 Oct 2017 05:21:15 +0000 (08:21 +0300)
Change-Id: Id7217fb20e84368fe4fde508e748b1b7e45ee400

call-ui/presenters/items/RejectMsgListItem.cpp [new file with mode: 0644]
call-ui/presenters/items/RejectMsgListItem.h [new file with mode: 0644]
call-ui/presenters/misc/RejectMsgPresenter.cpp
call-ui/presenters/misc/RejectMsgPresenter.h
project_def.prop

diff --git a/call-ui/presenters/items/RejectMsgListItem.cpp b/call-ui/presenters/items/RejectMsgListItem.cpp
new file mode 100644 (file)
index 0000000..c4e547a
--- /dev/null
@@ -0,0 +1,86 @@
+/*
+ * 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 "RejectMsgListItem.h"
+
+#include "call-ui/presenters/common.h"
+
+namespace callui { namespace { namespace impl {
+
+       constexpr ElmStyle ITEM_STYLE {"1text"};
+
+       constexpr EdjePart ITEM_PART_TITLE {"elm.text"};
+
+       CString getDisplayText(std::string rejectMsgTxt)
+       {
+               auto trnsTxt = TString{std::move(rejectMsgTxt), true}.translate();
+               auto markupTxt = elm_entry_utf8_to_markup(trnsTxt);
+               std::string resStr(markupTxt);
+               free(markupTxt);
+
+               replaceSubstringInString(resStr, "<br/>", " ");
+
+               return CString::dup(resStr.c_str());
+       }
+}}}
+
+namespace callui {
+
+       RejectMsgListItem::RejectMsgListItem(IRefCountObj &rc,
+                       IRejectMsgSRef rm,
+                       SelectHandler handler,
+                       Private) :
+               ListItemPresenter::ListItemPresenter(rc),
+               m_rm(std::move(rm)),
+               m_onItemSelected(std::move(handler))
+       {
+               UCL_ASSERT(m_rm, "m_rm is NULL");
+               UCL_ASSERT(m_onItemSelected, "m_onItemSelected is NULL");
+       }
+
+       RejectMsgListItemSRef RejectMsgListItem::newInstance(IRejectMsgSRef rm,
+                       SelectHandler handler)
+       {
+               return makeShared<RejectMsgListItem>(
+                               std::move(rm),
+                               std::move(handler), PRIVATE);
+       }
+
+       ListItemPresenter::ItemInsertionParams
+                       RejectMsgListItem::getItemInsertionParams()
+       {
+               return impl::ITEM_STYLE;
+       }
+
+       CString RejectMsgListItem::getItemPartText(EdjePart part)
+       {
+               if (part == impl::ITEM_PART_TITLE) {
+                       return impl::getDisplayText(m_rm->getText());
+               }
+
+               return nullptr;
+       }
+
+       void RejectMsgListItem::onItemSelected()
+       {
+               if (isActive()) {
+                       if (const auto handler = m_onItemSelected.lock()) {
+                               handler(m_rm);
+                       }
+               }
+       }
+
+}
diff --git a/call-ui/presenters/items/RejectMsgListItem.h b/call-ui/presenters/items/RejectMsgListItem.h
new file mode 100644 (file)
index 0000000..d9c68b2
--- /dev/null
@@ -0,0 +1,84 @@
+/*
+ * 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_REJECT_MSG_LIST_ITEM_H__
+#define __CALL_UI_PRESENTERS_ITEMS_REJECT_MSG_LIST_ITEM_H__
+
+#include "ucl/mvp/ListItemPresenter.h"
+
+#include "call-ui/model/IRejectMsg.h"
+
+#include "call-ui/presenters/types.h"
+
+namespace callui {
+
+       UCL_DECLARE_REF_ALIASES(RejectMsgListItem);
+
+       class RejectMsgListItem final : public ucl::ListItemPresenter {
+       public:
+
+               /**
+                * @brief Item select handler definition
+                */
+               using SelectHandler = ucl::WeakDelegate<void(
+                               const IRejectMsgSRef &rm)>;
+
+               /**
+                * @brief Constructor
+                * @param[in] rc Pointer to IRefCountObj (passed automatically)
+                * @param[in] rm Reject message instance
+                * @param[in] handler Item select handler
+                * @return Shared reference to RejectMsgListItem on success otherwise NULL
+                */
+               static RejectMsgListItemSRef newInstance(IRejectMsgSRef rm,
+                               SelectHandler 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:
+               RejectMsgListItem(ucl::IRefCountObj &rc,
+                               IRejectMsgSRef rm,
+                               RejectMsgListItem::SelectHandler handler,
+                               Private);
+               ~RejectMsgListItem() = default;
+
+       private:
+               const IRejectMsgSRef m_rm;
+
+               SelectHandler m_onItemSelected;
+
+               friend class ucl::ReffedObj<RejectMsgListItem>;
+       };
+}
+
+#endif // __CALL_UI_PRESENTERS_ITEMS_REJECT_MSG_LIST_ITEM_H__
index b799aa3f084f0cbb260775cb50a02b2de2d14927..8c4dd072b6017250fd0b19064a1ec4cdf91ab6a7 100644 (file)
@@ -16,6 +16,9 @@
 
 #include "RejectMsgPresenter.h"
 
+#include "call-ui/presenters/items/RejectMsgListItem.h"
+#include "call-ui/presenters/misc/helpers.h"
+
 #include "call-ui/resources.h"
 
 #include "call-ui/presenters/common.h"
@@ -60,7 +63,7 @@ namespace callui {
                        auto trnsTxt = TString{m_rm->getText(), true}.translate();
 
                        auto markupTxt = elm_entry_utf8_to_markup(trnsTxt);
-                       std::string resStr(markupTxt);
+                       std::string resStr(nz(markupTxt));
                        replaceSubstringInString(resStr, "<br/>", " ");
                        free(markupTxt);
 
@@ -133,14 +136,13 @@ namespace callui {
                m_stateHandler(std::move(stateHandler)),
                m_selectHandler(std::move(selectHandler)),
                m_circleEo(nullptr),
+               m_circleSurface(nullptr),
                m_state(State::HIDDEN)
        {
        }
 
        RejectMsgPresenter::~RejectMsgPresenter()
        {
-               unsetLanguageChangeCallback();
-
                if (m_widget) {
                        sendActivate(*m_widget);
                }
@@ -164,12 +166,13 @@ namespace callui {
                FAIL_RETURN(createPanelLy(),
                                "createPanelLy() failed!");
 
+               FAIL_RETURN(createCircleSurfaceLy(),
+                               "createCircleSurfaceLy() failed!");
+
                FAIL_RETURN(createAtspiHighlightHelper(),
                                "createScreenReaderRoute() failed!");
 
-               setLanguageChangeCallback();
-
-               deactivateBy(m_widget.get());
+               deactivateSelf();
 
                parent.addDeactivatorSource(*m_widget);
 
@@ -211,11 +214,11 @@ namespace callui {
                        elm_object_scroll_freeze_push(m_panel->getEo());
                } else if (ev->rel_y == 0.0) {
                        m_state = State::HIDDEN;
-                       m_genlist.reset();
+                       destroyRejectMsgList();
                } else {
-                       if (!m_genlist) {
-                               FAIL_RETURN_VOID(createGenlist(),
-                                               "createGenlist() failed!");
+                       if (!m_listPresenter) {
+                               FAIL_RETURN_VOID(createRejectMsgList(),
+                                               "createRejectMsgList() failed!");
                        }
 
                        m_state = State::IN_TRANSITION;
@@ -226,9 +229,9 @@ namespace callui {
 
                if (prevState != m_state) {
                        if (m_state == State::SHOWN) {
-                               activateBy(m_widget.get());
+                               activateSelf();
                        } else {
-                               deactivateBy(m_widget.get());
+                               deactivateSelf();
                        }
 
                        if (m_state == State::HIDDEN) {
@@ -268,7 +271,8 @@ namespace callui {
        Result RejectMsgPresenter::createPanelBg()
        {
                m_panelBg = makeShared<ElmWidget>(
-                               evas_object_rectangle_add(evas_object_evas_get(*m_widget)), false);
+                               evas_object_rectangle_add(evas_object_evas_get(*m_widget)),
+                               false);
                if (!m_panelBg) {
                        LOG_RETURN(RES_FAIL, "evas_object_rectangle_add() failed!");
                }
@@ -293,175 +297,98 @@ namespace callui {
                return RES_OK;
        }
 
-       void RejectMsgPresenter::setLanguageChangeCallback()
-       {
-               getWindow().addEventHandler(WIN_LANGUAGE_CHANGED,
-                               WEAK_DELEGATE_THIS(onLanguageChanged));
-       }
-
-       void RejectMsgPresenter::unsetLanguageChangeCallback()
-       {
-               getWindow().delEventHandler(WIN_LANGUAGE_CHANGED,
-                               DELEGATE_THIS(onLanguageChanged));
-       }
-
-       void RejectMsgPresenter::onLanguageChanged(Widget &widget, void *eventInfo)
-       {
-               if (m_genlist) {
-                       elm_genlist_realized_items_update(*m_genlist);
-               }
-       }
-
-       Result RejectMsgPresenter::createGenlist()
+       Result RejectMsgPresenter::createCircleSurfaceLy()
        {
-               // Genlist scroller Layout
-               auto circlLy = Layout::Builder().
+               auto circleLy = Layout::Builder().
                                setIsOwner(false).
                                build(*m_panelLy);
-               if (!circlLy) {
+               if (!circleLy) {
                        LOG_RETURN(RES_FAIL, "Layout::build failed!");
                }
-               // Circular surface
-               Eext_Circle_Surface *const circleSurf =
-                               eext_circle_surface_layout_add(*circlLy);
-               if (!circleSurf) {
-                       LOG_RETURN(RES_FAIL, "eext_circle_surface_layout_add() failed!");
-               }
-               // Genlist
-               Evas_Object *const glEo = elm_genlist_add(*m_panelLy);
-               if (!glEo) {
-                       LOG_RETURN(RES_FAIL, "elm_genlist_add() failed!");
-               }
-               elm_genlist_mode_set(glEo, ELM_LIST_COMPRESS);
-               elm_genlist_homogeneous_set(glEo, EINA_TRUE);
+               m_panelLy->setContent(*circleLy, impl::PART_SWL_SCROLLER);
 
-               m_genlist = makeShared<StyledWidget>(glEo);
-               m_genlist->setWeight(EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-               m_genlist->setAlign(EVAS_HINT_FILL, EVAS_HINT_FILL);
-
-               m_circleEo = eext_circle_object_genlist_add(m_genlist->getEo(),
-                               circleSurf);
-               if (!m_circleEo) {
-                       LOG_RETURN(RES_FAIL, "elm_genlist_add() failed!");
+               m_circleSurface = eext_circle_surface_layout_add(*circleLy);
+               if (!m_circleSurface) {
+                       LOG_RETURN(RES_FAIL, "eext_circle_surface_layout_add() failed!");
                }
-               eext_circle_object_genlist_scroller_policy_set(m_circleEo,
-                               ELM_SCROLLER_POLICY_OFF,
-                               ELM_SCROLLER_POLICY_AUTO);
-               deactivateRotary();
 
-               FAIL_RETURN(fillGenlist(), "fillGenlist() failed!");
+               return RES_OK;
+       }
 
-               m_panelLy->setContent(*circlLy, impl::PART_SWL_SCROLLER);
+       Result RejectMsgPresenter::createRejectMsgList()
+       {
+               FAIL_RETURN(makeList(), "makeList() failed!");
 
-               m_panelLy->setContent(*m_genlist, impl::PART_SWL_CONTENT);
+               FAIL_RETURN(makeListItems(), "makeListItems() failed!");
 
                registerGenlistAtspiGestureCallbacks();
 
                return RES_OK;
        }
 
-       Result RejectMsgPresenter::fillGenlist()
+       void RejectMsgPresenter::destroyRejectMsgList()
        {
-               FAIL_RETURN(addGenlistTitleItem(), "addGenlistTitleItem() failed!");
-
-               auto msgList = m_provider->getMsgList();
-               for (auto &iter : msgList) {
-                       FAIL_RETURN(addGenlistTextItem(iter), "addGenlistTextItem() failed!");
-               }
+               deactivateRotary();
 
-               FAIL_RETURN(addGenlistBottomItem(), "addGenlistBottomItem() failed!");
+               m_circleEo = nullptr;
 
-               return RES_OK;
+               m_listPresenter.reset();
        }
 
-       Result RejectMsgPresenter::addGenlistTitleItem()
+       Result RejectMsgPresenter::makeList()
        {
-               static auto titleItc = utils::createGenlistItemClass("title",
-                               [](void *data, Evas_Object *obj, const char *part) -> char * {
-                                       return strdup(STR_DECLINE_MESSAGES.translate());
-                               });
-
-               auto *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_listPresenter = ListPresenter::Builder().
+                               setParentWidget(m_panelLy).
+                               build(*this);
+               if (!m_listPresenter) {
+                       LOG_RETURN(RES_FAIL, "ListPresenter::build() failed!");
                }
+               m_panelLy->setContent(m_listPresenter->getWidget(),
+                               impl::PART_SWL_CONTENT);
 
-               return RES_OK;
-       }
-
-       Result RejectMsgPresenter::addGenlistTextItem(const IRejectMsgSRef &rm)
-       {
-               static auto textItc = utils::createGenlistItemClass("1text.1icon",
-                               [](void *data, Evas_Object *obj, const char *part) -> char * {
-                                       if (!data) {
-                                               LOG_RETURN_VALUE(RES_FAIL, nullptr, "Data is NULL");
-                                       }
-                                       RejectMsgItem *rm = static_cast<RejectMsgItem *>(data);
-                                       return strdup(rm->getDisplayText().c_str());
-                               },
-                               nullptr,
-                               nullptr,
-                               [](void *data, Evas_Object *obj) -> void {
-                                       RejectMsgItem *rm = static_cast<RejectMsgItem *>(data);
-                                       delete rm;
-                               });
-
-               auto rmItem = ucl::util::makeUnique(new RejectMsgItem(rm));
-               auto *item = elm_genlist_item_append(*m_genlist, &textItc,
-                               rmItem.get(),
-                               nullptr,
-                               ELM_GENLIST_ITEM_NONE,
-                               CALLBACK_A(RejectMsgPresenter::onGenlistItemClickedCb),
-                               this);
-               if (!item) {
-                       LOG_RETURN(RES_FAIL, "elm_genlist_item_append() failed!");
+               m_circleEo = eext_circle_object_genlist_add(
+                               m_listPresenter->getWidget(), m_circleSurface);
+               if (!m_circleEo) {
+                       LOG_RETURN(RES_FAIL, "elm_genlist_add() failed!");
                }
+               eext_circle_object_genlist_scroller_policy_set(m_circleEo,
+                               ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
 
-               rmItem.release();
+               deactivateRotary();
 
                return RES_OK;
        }
 
-       Result RejectMsgPresenter::addGenlistBottomItem()
+       Result RejectMsgPresenter::makeListItems()
        {
-               static auto paddingItc = utils::createGenlistItemClass("1text.1icon");
+               FAIL_RETURN(m_listPresenter->append(
+                               *makeTitleListItem(STR_DECLINE_MESSAGES)),
+                               "m_listPresenter->append failed!");
 
-               auto *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!");
+               auto msgList = m_provider->getMsgList();
+               for (auto &iter : msgList) {
+                       FAIL_RETURN(m_listPresenter->append(
+                                       *RejectMsgListItem::newInstance(iter,
+                                                       WEAK_DELEGATE_THIS(onRejectMsgListItemSelect))),
+                                       "m_listPresenter->append failed!");
                }
 
+               FAIL_RETURN(m_listPresenter->append(*makePaddingListItem()),
+                               "m_listPresenter->append failed!");
+
                return RES_OK;
        }
 
-       void RejectMsgPresenter::handleSelectEvent(const RejectMsgItem &item)
+       void RejectMsgPresenter::onRejectMsgListItemSelect(const IRejectMsgSRef &rm)
        {
-               if (const auto handler = m_selectHandler.lock()) {
-                       handler(item.getRejectMsg());
-               }
+               handleSelectEvent(rm);
        }
 
-       void RejectMsgPresenter::onGenlistItemClickedCb(Evas_Object *obj, void *eventInfo)
+       void RejectMsgPresenter::handleSelectEvent(const IRejectMsgSRef &rm)
        {
-               if (!eventInfo) {
-                       LOG_RETURN_VOID(RES_FAIL, "eventInfo is NULL");
+               if (const auto handler = m_selectHandler.lock()) {
+                       handler(rm);
                }
-
-               auto *item = static_cast<Elm_Object_Item *>(eventInfo);
-               auto *rmItem = static_cast<RejectMsgItem *>(
-                               elm_object_item_data_get(item));
-
-               handleSelectEvent(*rmItem);
        }
 
        Widget &RejectMsgPresenter::getWidget()
@@ -521,23 +448,24 @@ namespace callui {
 
        Elm_Interface_Atspi_Accessible *RejectMsgPresenter::getFirstAo()
        {
-               return (m_genlist) ?
-                               elm_genlist_first_item_get(*m_genlist) :
-                               nullptr;
+               return (m_listPresenter ?
+                               elm_genlist_first_item_get(m_listPresenter->getWidget()) :
+                               nullptr);
        }
 
        Elm_Interface_Atspi_Accessible *RejectMsgPresenter::getLastAo()
        {
-               return (m_genlist) ?
-                               elm_genlist_last_item_get(*m_genlist) :
-                               nullptr;
+               return (m_listPresenter ?
+                               elm_genlist_last_item_get(m_listPresenter->getWidget()) :
+                               nullptr);
        }
 
        Result RejectMsgPresenter::createAtspiHighlightHelper()
        {
                m_atspiHelper = AtspiHighlightHelper::newInstance(*this, getWindow());
                if (!m_atspiHelper) {
-                       LOG_RETURN(RES_FAIL, "AtspiHighlightHelper::newInstance() failed!");
+                       LOG_RETURN(RES_FAIL,
+                                       "AtspiHighlightHelper::newInstance() failed!");
                }
 
                m_atspiHelper->setRelationEventHandler(
@@ -588,7 +516,6 @@ namespace callui {
                        Elm_Atspi_Gesture_Info gestureInfo,
                        Elm_Interface_Atspi_Accessible *ao)
        {
-               return toEina(
-                               m_atspiHelper->handleGesture(ao, gestureInfo));
+               return toEina(m_atspiHelper->handleGesture(ao, gestureInfo));
        }
 }
index 9a47bcde5e79859c1488eee222c80da32259ce59..e52803dd7cf861893d8e986fb64cfdac7464d978 100644 (file)
 #ifndef __CALL_UI_PRESENTERS_MISC_REJECT_MESSAGE_PRESENTER_H__
 #define __CALL_UI_PRESENTERS_MISC_REJECT_MESSAGE_PRESENTER_H__
 
-#include "ucl/mvp/GuiPresenter.h"
+#include "ucl/mvp/ListPresenter.h"
 
 #include "ucl/gui/Layout.h"
 #include "ucl/gui/StyledWidget.h"
 
 #include "call-ui/model/IRejectMsgProvider.h"
+
 #include "AtspiHighlightHelper.h"
 
 #include "call-ui/presenters/types.h"
@@ -154,15 +155,14 @@ namespace callui {
                ucl::Result createPanel();
                ucl::Result createPanelBg();
                ucl::Result createPanelLy();
-               ucl::Result createGenlist();
-
-               ucl::Result fillGenlist();
-               ucl::Result addGenlistTitleItem();
-               ucl::Result addGenlistTextItem(const IRejectMsgSRef &rm);
-               ucl::Result addGenlistBottomItem();
+               ucl::Result createCircleSurfaceLy();
 
-               void onGenlistItemClickedCb(Evas_Object *obj, void *eventInfo);
-               void handleSelectEvent(const RejectMsgItem &item);
+               ucl::Result createRejectMsgList();
+               void destroyRejectMsgList();
+               ucl::Result makeList();
+               ucl::Result makeListItems();
+               void onRejectMsgListItemSelect(const IRejectMsgSRef &rm);
+               void handleSelectEvent(const IRejectMsgSRef &rm);
 
                void panelScrollCb(ucl::Widget &widget, void *eventInfo);
 
@@ -171,10 +171,6 @@ namespace callui {
 
                void onBackKey(Evas_Object *obj, void *eventInfo);
 
-               void setLanguageChangeCallback();
-               void unsetLanguageChangeCallback();
-               void onLanguageChanged(ucl::Widget &widget, void *eventInfo);
-
                ucl::Result createAtspiHighlightHelper();
                void registerGenlistAtspiGestureCallbacks();
                Elm_Interface_Atspi_Accessible *getFirstAo();
@@ -196,12 +192,14 @@ namespace callui {
                const StateHandler m_stateHandler;
                const SelectHandler m_selectHandler;
 
+               ucl::ListPresenterSRef m_listPresenter;
+
                ucl::LayoutSRef m_widget;
                ucl::StyledWidgetSRef m_panel;
                ucl::ElmWidgetSRef m_panelBg;
                ucl::LayoutSRef m_panelLy;
-               ucl::StyledWidgetSRef m_genlist;
                Evas_Object *m_circleEo;
+               Eext_Circle_Surface *m_circleSurface;
 
                State m_state;
 
index b725b1dfde38ac61b9c060047a54e12261d4e1d5..4fdb1113e9519cef42168a5dee7f91a2290badc0 100644 (file)
@@ -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/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 
+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/presenters/items/RejectMsgListItem.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 =