Removed action selection from DetailsView (will be implemented in Chooser). 27/60027/2
authorEugene Kurzberg <i.kurtsberg@samsung.com>
Mon, 22 Feb 2016 11:39:14 +0000 (13:39 +0200)
committerEugene Kurzberg <i.kurtsberg@samsung.com>
Mon, 22 Feb 2016 15:47:18 +0000 (17:47 +0200)
Refactored selection ResultType to suit App Control purposes.

Change-Id: Id4295292566b057da58cfb9910892618edae19bc
Signed-off-by: Eugene Kurzberg <i.kurtsberg@samsung.com>
lib-contact/inc/Contacts/Common/SelectMode.h
lib-contact/inc/Contacts/Details/ActionFieldItem.h
lib-contact/inc/Contacts/Details/DetailsView.h
lib-contact/inc/Contacts/Details/FieldItem.h
lib-contact/src/Contacts/Details/ActionFieldItem.cpp
lib-contact/src/Contacts/Details/DetailsView.cpp
lib-contact/src/Contacts/Details/FieldItem.cpp
lib-contact/src/Contacts/List/ListView.cpp

index c7b4e18544dff6dd889ee452c7837ebf7914524a..bfb9ec7ffa2fc4d9c70344042eb403ec100a2eb4 100644 (file)
@@ -41,9 +41,9 @@ namespace Contacts
         */
        enum FilterType
        {
-               FilterNone = -1,                        /**< All items are displayed */
+               FilterNone   = -1,                      /**< All items are displayed */
                FilterNumber = 1 << Model::FieldNumber, /**< Only items with number */
-               FilterEmail = 1 << Model::FieldEmail    /**< Only items with email */
+               FilterEmail  = 1 << Model::FieldEmail   /**< Only items with email */
        };
 
        /**
@@ -51,29 +51,10 @@ namespace Contacts
         */
        enum ResultType
        {
-               ResultNone,     /**< Selection is disabled */
-               ResultItem,     /**< Item itself is the result */
-               ResultAction    /**< Action associated with the item is the result */
-       };
-
-       /**
-        * @brief Type of the selected item for #ResultItem result type.
-        */
-       enum ItemType
-       {
-               ItemPerson = Model::ObjectTypeContact,  /**< Person ID is the result */
-               ItemNumber = Model::ObjectTypeNumber,   /**< Number ID is the result */
-               ItemEmail = Model::ObjectTypeEmail      /**< Email ID is the result */
-       };
-
-       /**
-        * @brief Action associated with selected item for #ResultAction result type.
-        */
-       enum ActionType
-       {
-               ActionCall,     /**< Number ID for telephony call is the result */
-               ActionMessage,  /**< Number ID for message is the result */
-               ActionEmail     /**< Email ID for recipient is the result */
+               ResultMyProfile = Model::ObjectTypeMyProfile, /**< My Profile ID is the result */
+               ResultPerson    = Model::ObjectTypeContact,   /**< Person ID is the result */
+               ResultNumber    = Model::ObjectTypeNumber,    /**< Number ID is the result */
+               ResultEmail     = Model::ObjectTypeEmail      /**< Email ID is the result */
        };
 
        /**
@@ -81,7 +62,7 @@ namespace Contacts
         */
        struct SelectResult
        {
-               unsigned type;  /**< @ref ItemType or @ref ActionType depending on @ref ResultType. */
+               unsigned type;  /**< @ref ResultType. */
                int itemId;     /**< Item database ID (for _contacts_person, _contacts_number or _contacts_email). */
        };
 
index 0d268337c6d912768f687690dc357fefec0c99d8..f210804e67d10d1de7337bf769ca2d2ed2cca11c 100644 (file)
@@ -34,10 +34,10 @@ namespace Contacts
                public:
                        enum ActionId
                        {
-                               ActionCall    = Contacts::ActionCall,    /**< Make a telephony call using value as a number */
-                               ActionMessage = Contacts::ActionMessage, /**< Compose an SMS using value as recipient */
-                               ActionEmail   = Contacts::ActionEmail,   /**< Compose an E-mail using value as an address */
-                               ActionUrl                                /**< Open webpage in browser using value as URL */
+                               ActionCall    /**< Make a telephony call using value as a number */
+                               ActionMessage /**< Compose an SMS using value as recipient */
+                               ActionEmail   /**< Compose an E-mail using value as an address */
+                               ActionUrl       /**< Open webpage in browser using value as URL */
                        };
 
                        /**
@@ -48,8 +48,6 @@ namespace Contacts
                        ActionFieldItem(Model::ContactObject &object, ActionId actionId);
 
                protected:
-                       using FieldItem::onSelected;
-
                        /**
                         * @see GenlistItem::getContent()
                         */
@@ -69,7 +67,6 @@ namespace Contacts
                        Evas_Object *createActionButton(Evas_Object *parent, ActionId actionId);
 
                private:
-                       void showActionPopup();
                        void executeAction(ActionId actionId);
                        void onButtonPressed(Evas_Object *button, void *eventInfo);
 
index 4fbbb0c10c298b29df40d2a3db0104d9b335beac..1d7e8de1771d34b3074cc95e26eea70ee61e4331 100644 (file)
@@ -67,9 +67,8 @@ namespace Contacts
                        /**
                         * @brief Set selection mode and result type.
                         * @param[in]   mode    Selection mode
-                        * @param[in]   type    Selection result type
                         */
-                       void setSelectMode(SelectMode mode, ResultType type = ResultItem);
+                       void setSelectMode(SelectMode mode);
 
                private:
                        virtual Evas_Object *onCreate(Evas_Object *parent) override;
@@ -104,7 +103,6 @@ namespace Contacts
 
                        int m_FilterType;
                        SelectMode m_SelectMode;
-                       ResultType m_ResultType;
                        SelectCallback m_OnSelected;
 
                        Evas_Object *m_DoneButton;
index de2235516143d5e0a764b41050cf323602516f82..07dabf8771f30c2e10816103cfa5badc3d3bb657 100644 (file)
@@ -53,9 +53,8 @@ namespace Contacts
                        /**
                         * @brief Set item selection mode and result type.
                         * @param[in]   mode    Selection mode
-                        * @param[in]   type    Selection result type
                         */
-                       void setSelectMode(SelectMode mode, ResultType type);
+                       void setSelectMode(SelectMode mode);
 
                        /**
                         * @brief Set selection callback.
@@ -78,11 +77,6 @@ namespace Contacts
                         */
                        SelectMode getSelectMode() const;
 
-                       /**
-                        * @return Item selection result type.
-                        */
-                       ResultType getResultType() const;
-
                protected:
                        friend class DetailsView;
 
@@ -106,12 +100,6 @@ namespace Contacts
                         */
                        virtual void onSelected() override;
 
-                       /**
-                        * @brief Should be called to report selection result.
-                        * @param[in]   resultType  Selection result type
-                        */
-                       void onSelected(unsigned resultType);
-
                        /**
                         * @see ContactField::UpdatedCallback
                         */
@@ -122,8 +110,6 @@ namespace Contacts
                        Model::ContactField &m_Field;
 
                        SelectMode m_SelectMode;
-                       ResultType m_ResultType;
-
                        SelectCallback m_OnSelected;
                };
        }
index 464c10109e6f741c32b7dd621c6b31da47fa335a..2f919b2beb331a508045b2fb570fa33a3107b549 100644 (file)
@@ -68,29 +68,11 @@ void ActionFieldItem::onSelected()
 {
        if (getSelectMode() == SelectNone) {
                executeAction(m_ActionId);
-       } else if (getSelectMode() == SelectSingle && getResultType() == ResultAction) {
-               if (m_ActionId == ActionCall) {
-                       showActionPopup();
-               } else {
-                       onSelected(m_ActionId);
-               }
        } else {
                TypedFieldItem::onSelected();
        }
 }
 
-void ActionFieldItem::showActionPopup()
-{
-       Ui::ListPopup *popup = new Ui::ListPopup();
-       popup->create(getParent()->getEvasObject());
-       popup->setTitle(getField().cast<ContactTextField>().getValue());
-       popup->addItem("IDS_PB_OPT_VOICE_CALL", (void *) ActionCall);
-       popup->addItem("IDS_PB_OPT_MESSAGE", (void *) ActionMessage);
-       popup->setSelectedCallback([this](void *data) {
-               onSelected((unsigned long) data);
-       });
-}
-
 Evas_Object *ActionFieldItem::createActionButton(Evas_Object *parent, ActionId actionId)
 {
        static const int imageSize = Ui::getScaledValue(BTN_WH);
index 1eb24eb082140263083542f50b29c6e2247ac5b4..e7b39012cf746705d958b83d06a1b0fa387f3a32 100644 (file)
@@ -64,7 +64,7 @@ namespace
 
 DetailsView::DetailsView(int recordId, Type type, int filterType)
        : m_RecordId(recordId), m_Contact(ContactObjectType(type)),
-         m_FilterType(filterType), m_SelectMode(SelectNone), m_ResultType(ResultNone),
+         m_FilterType(filterType), m_SelectMode(SelectNone),
          m_DoneButton(nullptr), m_CancelButton(nullptr),
          m_Genlist(nullptr), m_BasicInfoItem(nullptr), m_Items{nullptr}, m_SelectCount(0)
 {
@@ -75,10 +75,9 @@ void DetailsView::setSelectCallback(SelectCallback callback)
        m_OnSelected = std::move(callback);
 }
 
-void DetailsView::setSelectMode(SelectMode mode, ResultType type)
+void DetailsView::setSelectMode(SelectMode mode)
 {
        m_SelectMode = mode;
-       m_ResultType = type;
 
        if (m_BasicInfoItem) {
                m_BasicInfoItem->setSelectMode(mode);
@@ -86,7 +85,7 @@ void DetailsView::setSelectMode(SelectMode mode, ResultType type)
                auto item = m_BasicInfoItem->getNextItem();
                for (; item; item = item->getNextItem()) {
                        FieldItem *fieldItem = static_cast<FieldItem *>(item);
-                       fieldItem->setSelectMode(mode, type);
+                       fieldItem->setSelectMode(mode);
                }
        }
 
@@ -272,7 +271,7 @@ FieldItem *DetailsView::createFieldItem(ContactObject &field)
                item = new FieldItem(field);
        }
 
-       item->setSelectMode(m_SelectMode, m_ResultType);
+       item->setSelectMode(m_SelectMode);
        item->setSelectCallback(std::bind(&DetailsView::onSingleSelected, this, _1));
        item->setCheckCallback(std::bind(&DetailsView::onItemChecked, this, _1));
 
index bfcaf07d47b33377c3567e5b8412cf7ead3ca440..dfc05b1cc8d93ba754821b9617388adb615722fa 100644 (file)
@@ -32,14 +32,13 @@ using namespace std::placeholders;
 
 FieldItem::FieldItem(ContactObject &object)
        : m_Object(object), m_Field(*object.getField(0)),
-         m_SelectMode(SelectNone), m_ResultType(ResultNone)
+         m_SelectMode(SelectNone)
 {
 }
 
-void FieldItem::setSelectMode(SelectMode mode, ResultType type)
+void FieldItem::setSelectMode(SelectMode mode)
 {
        m_SelectMode = mode;
-       m_ResultType = type;
        elm_genlist_item_fields_update(getObjectItem(), "*", ELM_GENLIST_ITEM_FIELD_CONTENT);
 }
 
@@ -63,11 +62,6 @@ SelectMode FieldItem::getSelectMode() const
        return m_SelectMode;
 }
 
-ResultType FieldItem::getResultType() const
-{
-       return m_ResultType;
-}
-
 Elm_Genlist_Item_Class *FieldItem::getItemClass() const
 {
        static Elm_Genlist_Item_Class itc = createItemClass("type2");
@@ -115,19 +109,14 @@ Evas_Object *FieldItem::getContent(Evas_Object *parent, const char *part)
 void FieldItem::onSelected()
 {
        if (m_SelectMode == SelectSingle) {
-               onSelected(getObject().getSubType());
+               if (m_OnSelected) {
+                       m_OnSelected({ m_Object.getSubType(), m_Object.getRecordId()});
+               }
        } else {
                GenlistCheckItem::onSelected();
        }
 }
 
-void FieldItem::onSelected(unsigned resultType)
-{
-       if (m_OnSelected) {
-               m_OnSelected({ resultType, getObject().getRecordId()});
-       }
-}
-
 void FieldItem::onFieldUpdated(ContactField &field, contacts_changed_e change)
 {
        if (&field == &m_Field) {
index 8522c5a7a999303b09cbe84b0f56a834bf77a6e1..b90441823e42ff9f189e7294ff44c6cf0eb9343c 100644 (file)
@@ -615,7 +615,7 @@ void ListView::onDonePressed(Evas_Object *button, void *eventInfo)
                for (auto &&item : *group.second) {
                        PersonItem *personItem = static_cast<PersonItem *>(item);
                        if (personItem->isChecked()) {
-                               results.push_back({ ItemPerson, personItem->getPerson().getId() });
+                               results.push_back({ ResultPerson, personItem->getPerson().getId() });
                        }
                }
        }
@@ -668,7 +668,7 @@ void ListView::onPersonChanged(PersonPtr person, contacts_changed_e changeType,
 
 void ListView::onPersonSelected(const Model::Person &person)
 {
-       SelectResult result = { ItemPerson, person.getId() };
+       SelectResult result = { ResultPerson, person.getId() };
        if (m_OnSelected && m_OnSelected({ &result, 1 })) {
                delete this;
        }