Refactored result callback logick in ListView 78/58778/2
authorSergei Kobec <s.kobec@samsung.com>
Wed, 3 Feb 2016 12:29:19 +0000 (14:29 +0200)
committerSergei Kobec <s.kobec@samsung.com>
Wed, 3 Feb 2016 12:29:19 +0000 (14:29 +0200)
Change-Id: I0590ee76c60206cf7f512a56bb3fe1cdd113a1fa
Signed-off-by: Sergei Kobec <s.kobec@samsung.com>
lib-contact/inc/Contacts/List/ListView.h
lib-contact/inc/Contacts/List/PersonItem.h
lib-contact/src/Contacts/List/ListView.cpp

index e0364b4..f29f703 100644 (file)
@@ -64,8 +64,9 @@ namespace Contacts
                        /**
                         * @brief Callback, that invoked when all results are prepared
                         * @details Invoked on view close
+                        * @return True if view should be closed, otherwise false
                         */
-                       typedef std::function<void(PersonIds)> ResultCallback;
+                       typedef std::function<bool(PersonIds)> ResultCallback;
 
                        /**
                         * @brief Create new person list view
index 410fae1..6d0e900 100644 (file)
@@ -37,11 +37,6 @@ namespace Contacts
                {
                public:
                        /**
-                        * @brief Item select callback
-                        */
-                       typedef std::function<void()> SelectedCallback;
-
-                       /**
                         * @brief Represents item mode
                         */
                        enum Mode
index 80fc916..ff2644f 100644 (file)
@@ -116,6 +116,8 @@ void ListView::onMenuPressed()
                deleteView->setMode(ModeMultiPick);
                deleteView->setResultCallback([](PersonIds ids) {
                        contacts_db_delete_records(_contacts_person._uri, ids.data(), ids.size());
+
+                       return true;
                });
        });
 
@@ -612,11 +614,9 @@ void ListView::onCreatePressed()
 
 void ListView::onDonePressed(Evas_Object *button, void *eventInfo)
 {
-       if (m_OnResult) {
-               m_OnResult(getCheckedPersonIds());
+       if (m_OnResult && m_OnResult(getCheckedPersonIds())) {
+               delete this;
        }
-
-       delete this;
 }
 
 void ListView::onPersonItemInserted(PersonItem *item)
@@ -657,8 +657,8 @@ void ListView::onPersonChanged(PersonPtr person, contacts_changed_e changeType,
 
 void ListView::onPersonSelected(const Model::Person &person)
 {
-       if (m_OnResult) {
-               m_OnResult({ person.getId() });
+       if (m_OnResult && m_OnResult({ person.getId() })) {
+               delete this;
        }
 }