TizenRefApp-7241 First page of Slideshow is empty if mms has no text 31/89131/1
authorDenis Dolzhenko <d.dolzhenko@samsung.com>
Thu, 22 Sep 2016 10:01:44 +0000 (13:01 +0300)
committerDenis Dolzhenko <d.dolzhenko@samsung.com>
Thu, 22 Sep 2016 10:01:44 +0000 (13:01 +0300)
Change-Id: I93b14ea9d3c18944018cbcf371733ec02ace27cc
Signed-off-by: Denis Dolzhenko <d.dolzhenko@samsung.com>
src/Viewer/Controller/inc/SmilPage.h
src/Viewer/Controller/src/SmilPage.cpp
src/Viewer/Controller/src/SmilPlayer.cpp
src/Viewer/Controller/src/Viewer.cpp

index fbf36fd1d94f8afa251aa9f3883465fdf8a4a90a..44facf43da5f5bf64d2e4c2b2f5fd9bcb1161a80 100644 (file)
@@ -50,6 +50,7 @@ namespace Msg
             Evas_Object *getVideoSink() const;
             std::string getMediaPath() const;
             const std::list<std::string> &getAttachments() const;
+            static bool isEmpty(const MsgPage &page);
 
         private:
             const MsgMedia *getMedia(const MsgPage &page, MsgMedia::Type type) const;
index 09d5222fe87332d5ffedfae8ac04ea3ae6c1fdb1..c4f51d025f1520effe0f03ee2ffa9288c2863d97 100644 (file)
@@ -120,6 +120,19 @@ const MsgMedia *SmilPage::getMedia(const MsgPage &page, MsgMedia::Type type) con
     return nullptr;
 }
 
+bool SmilPage::isEmpty(const MsgPage &page)
+{
+    const MsgMediaList &list = page.getMediaList();
+    for(int i = 0; i < list.getLength(); ++i)
+    {
+        const MsgMedia &media = list[i];
+        std::string filePath = media.getFilePath();
+        if(media.getType() != MsgMedia::UnknownType && FileUtils::getFileSize(filePath) > 0)
+            return false;
+    }
+    return true;
+}
+
 void SmilPage::build(const MsgPage &page)
 {
     m_Duration = page.getPageDuration() / 1000.0 + 0.5;
index 4ee26a57230101ea1338e76747e60f01218342d8..a9ad502bcc1a38a19c0295ad3ac7624933059b19 100644 (file)
@@ -48,9 +48,13 @@ void SmilPlayer::create(const MessageMms &mms)
     const MsgPageList &pages = mms.getPageList();
     for(int i = 0; i < pages.getLength(); ++i)
     {
-        SmilPage *smilPage = new SmilPage(getEo(), pages[i]);
-        m_Duration += smilPage->getDuration();
-        m_PageList.push_back(smilPage);
+        const MsgPage &page = pages[i];
+        if(!SmilPage::isEmpty(page))
+        {
+            SmilPage *smilPage = new SmilPage(getEo(), page);
+            m_Duration += smilPage->getDuration();
+            m_PageList.push_back(smilPage);
+        }
     }
 
     // Attachment:
index 6a62449d27c0165f083f99c3968de1d205b8b92a..f3ee62551a3ab81ae609d0b93237d5c04b89101c 100644 (file)
@@ -101,10 +101,10 @@ void Viewer::create(MsgId id)
     }
 
     createLayout();
+    createSmilPlayer();
     createSubjectLayout();
     createPlayerControl();
     createRecipPanel();
-    createSmilPlayer();
 
     updateButtonState();
     updatePlayPos();
@@ -131,12 +131,8 @@ void Viewer::createSubjectLayout()
 {
     if(!m_pSubjectLayout)
     {
+        int numberOfPages = m_pSmilPlayer ? m_pSmilPlayer->getPages().size() : 0;
         m_pSubjectLayout = new SubjectLayout(*m_pLayout);
-
-        int numberOfPages = m_Msg->getPageList().getLength();
-        if(!m_Msg->getAttachmentList().isEmpty())
-            numberOfPages += 1;
-
         m_pSubjectLayout->setNumberOfPages(numberOfPages);
         m_pSubjectLayout->show();
         m_pLayout->setSubject(*m_pSubjectLayout);