Fix crash in the pick operation. 41/124841/1
authorAleksandr Sapozhnik <a.sapozhnik@samsung.com>
Wed, 12 Apr 2017 13:16:39 +0000 (16:16 +0300)
committerAleksandr Sapozhnik <a.sapozhnik@samsung.com>
Wed, 12 Apr 2017 13:16:39 +0000 (16:16 +0300)
Implemented return of sound files in the pick operation.

Change-Id: I4dcd77905ab1d86eceda42e5bd70d76cb9dbd5fb
Signed-off-by: Aleksandr Sapozhnik <a.sapozhnik@samsung.com>
lib-common/inc/Common/Model/ShareTool.h
lib-common/src/Common/Model/ShareTool.cpp
memo-app/src/Input/DetailsView.cpp
memo-app/src/List/MemoListView.cpp
memo-app/src/OperationPickController.cpp

index e1874ce766298f6b9ae972d1775ad7fce01e3e95..d6291a6ff09361b02bab7b4445ac6311cd5742ff 100644 (file)
@@ -28,17 +28,17 @@ namespace Common
 
                /**
                 * @brief Get text from memo in share format.
-                * @param[in]   memo   Memo.
+                * @param[in]   memo   Memo
                 * @return Memo text.
                 */
                std::string EXPORT_API getTextFromMemo(const Memo &memo);
 
                /**
-                * @brief Get images from memo in share format..
-                * @param[in]   memo   Memo.
-                * @return Memo images.
+                * @brief Get all files from memo in share format.
+                * @param[in]   memo   Memo
+                * @return Memo files.
                 */
-               std::vector<const char *> EXPORT_API getImagesFromMemo(const Memo &memo);
+               std::vector<const char *> EXPORT_API getFilesFromMemo(const Memo &memo);
        }
 }
 
index 99e2a2a557f48e7e454e931d81946aaa86c33564..c026013821217a5ed446bdad94a414e98f04ea17 100644 (file)
@@ -64,13 +64,17 @@ std::string Common::Model::getTextFromMemo(const Memo &memo)
        return text;
 }
 
-std::vector<const char *> Common::Model::getImagesFromMemo(const Memo &memo)
+std::vector<const char *> Common::Model::getFilesFromMemo(const Memo &memo)
 {
-       std::vector<const char *> images;
-       images.reserve(memo.getImages().size());
+       std::vector<const char *> files;
+       files.reserve(memo.getImages().size());
+
        for (auto &&image : memo.getImages()) {
-               images.push_back(image.getPath().c_str());
+               files.push_back(image.getPath().c_str());
+       }
+       if (auto soundRecord = memo.getSoundRecord()) {
+               files.push_back(soundRecord->getPath().c_str());
        }
 
-       return images;
+       return files;
 }
index 0f81915c7316afe0774e075da3912b9d4e1f9d10..748005dde32d4fa203a0dcc970344968a36077ca 100644 (file)
@@ -120,12 +120,8 @@ void DetailsView::onDelete()
 void DetailsView::onShare()
 {
        std::string text = getTextFromMemo(getMemo());
-       std::vector<const char *> media = getImagesFromMemo(getMemo());
-       if (auto soundRecord = getMemo().getSoundRecord()) {
-               media.push_back(soundRecord->getPath().c_str());
-       }
-
-       m_AppControl = App::requestShareMemo(text.c_str(), media.data(), media.size());
+       std::vector<const char *> files = getFilesFromMemo(getMemo());
+       m_AppControl = App::requestShareMemo(text.c_str(), files.data(), files.size());
        m_AppControl.launch();
 }
 
index 08afa1b7c0217e61a2aaa10f4c1713dc22bd3f90..a5a882d348cfa82429e82d2c7c1da52d5b528783 100644 (file)
@@ -311,11 +311,15 @@ void MemoListView::updateEmptyState()
 
 void MemoListView::updateTitle()
 {
+       auto page = getPage();
+       if (!page) {
+               return;
+       }
        if (getSelectMode() == SelectMulti || m_IsSearching || isEmpty()) {
                elm_object_signal_emit(m_Content, SIGNAL_TITLE_HIDE, "*");
-               getPage()->setTitleVisibility(true);
+               page->setTitleVisibility(true);
        } else {
-               getPage()->setTitleVisibility(false);
+               page->setTitleVisibility(false);
                elm_object_signal_emit(m_Content, SIGNAL_TITLE_SHOW, "*");
        }
 }
index 677c2ee0ab20e7e4707181a02075e53123a51ff7..6abb19aafb86e8a33366ae79796ff0cf7845147f 100644 (file)
@@ -40,13 +40,13 @@ bool OperationPickController::onSelected(SelectResults results)
 {
        auto memo = (Memo *)results.begin()->value.data;
        std::string text = getTextFromMemo(*memo);
-       std::vector<const char *> images = getImagesFromMemo(*memo);
+       std::vector<const char *> files = getFilesFromMemo(*memo);
 
        app_control_h reply = nullptr;
        app_control_create(&reply);
        app_control_add_extra_data(reply, APP_CONTROL_DATA_TEXT, text.c_str());
-       if (images.size() > 0) {
-               app_control_add_extra_data_array(reply, APP_CONTROL_DATA_PATH, images.data(), images.size());
+       if (files.size() > 0) {
+               app_control_add_extra_data_array(reply, APP_CONTROL_DATA_PATH, files.data(), files.size());
        }
        app_control_reply_to_launch_request(reply, getRequest(), APP_CONTROL_RESULT_SUCCEEDED);
        app_control_destroy(reply);