From dcea7f0e854ada68343e988145f9264194ea06d8 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 18 Sep 2012 23:50:50 +0400 Subject: [PATCH] misc optimization, do not embed duplicate enclosure images in ArticleFragment --- src/org/fox/ttrss/ArticleFragment.java | 5 +-- src/org/fox/ttrss/FeedsActivity.java | 2 +- src/org/fox/ttrss/HeadlinesActivity.java | 31 +++++++++---------- src/org/fox/ttrss/HeadlinesEventListener.java | 2 +- src/org/fox/ttrss/HeadlinesFragment.java | 18 ++++++----- 5 files changed, 30 insertions(+), 28 deletions(-) diff --git a/src/org/fox/ttrss/ArticleFragment.java b/src/org/fox/ttrss/ArticleFragment.java index 10b87c25..429cc7f6 100644 --- a/src/org/fox/ttrss/ArticleFragment.java +++ b/src/org/fox/ttrss/ArticleFragment.java @@ -211,9 +211,10 @@ public class ArticleFragment extends Fragment { try { URL url = new URL(a.content_url.trim()); + String strUrl = url.toString().trim(); - if (a.content_type.indexOf("image") != -1) { - content += "
"; + if (a.content_type.indexOf("image") != -1 && !articleContent.contains(strUrl)) { + content += "
"; } spinnerArray.add(a); diff --git a/src/org/fox/ttrss/FeedsActivity.java b/src/org/fox/ttrss/FeedsActivity.java index 6645a7ee..fc5cbf1f 100644 --- a/src/org/fox/ttrss/FeedsActivity.java +++ b/src/org/fox/ttrss/FeedsActivity.java @@ -288,7 +288,7 @@ public class FeedsActivity extends OnlineActivity implements HeadlinesEventListe } @Override - public void onHeadlinesLoaded() { + public void onHeadlinesLoaded(boolean appended) { // TODO Auto-generated method stub } diff --git a/src/org/fox/ttrss/HeadlinesActivity.java b/src/org/fox/ttrss/HeadlinesActivity.java index a235c645..14d59f88 100644 --- a/src/org/fox/ttrss/HeadlinesActivity.java +++ b/src/org/fox/ttrss/HeadlinesActivity.java @@ -148,13 +148,8 @@ public class HeadlinesActivity extends OnlineActivity implements HeadlinesEventL FragmentTransaction ft = getSupportFragmentManager() .beginTransaction(); - HeadlinesFragment hf = (HeadlinesFragment) getSupportFragmentManager().findFragmentByTag(FRAG_HEADLINES); - ArticlePager af = (ArticlePager) getSupportFragmentManager().findFragmentByTag(FRAG_ARTICLE); - af.setActiveArticle(article); - - hf.notifyUpdated(); ft.commit(); } else { @@ -169,22 +164,26 @@ public class HeadlinesActivity extends OnlineActivity implements HeadlinesEventL } @Override - public void onHeadlinesLoaded() { + public void onHeadlinesLoaded(boolean appended) { HeadlinesFragment hf = (HeadlinesFragment) getSupportFragmentManager().findFragmentByTag(FRAG_HEADLINES); - if (hf != null) { - Article article = hf.getAllArticles().get(0); + if (hf != null && !appended) { + Article article = hf.getActiveArticle(); + + if (article == null) { + article = hf.getAllArticles().get(0); - hf.setActiveArticle(article); + hf.setActiveArticle(article); - ArticlePager af = new ArticlePager(article); - - FragmentTransaction ft = getSupportFragmentManager() - .beginTransaction(); + ArticlePager af = new ArticlePager(article); + + FragmentTransaction ft = getSupportFragmentManager() + .beginTransaction(); - ft.replace(R.id.article_fragment, af, FRAG_ARTICLE); - - ft.commit(); + ft.replace(R.id.article_fragment, af, FRAG_ARTICLE); + + ft.commit(); + } } } } diff --git a/src/org/fox/ttrss/HeadlinesEventListener.java b/src/org/fox/ttrss/HeadlinesEventListener.java index 71549ea1..08806c8b 100644 --- a/src/org/fox/ttrss/HeadlinesEventListener.java +++ b/src/org/fox/ttrss/HeadlinesEventListener.java @@ -7,5 +7,5 @@ public interface HeadlinesEventListener { void onArticleListSelectionChange(ArticleList m_selectedArticles); void onArticleSelected(Article article); void onArticleSelected(Article article, boolean open); - void onHeadlinesLoaded(); + void onHeadlinesLoaded(boolean appended); } diff --git a/src/org/fox/ttrss/HeadlinesFragment.java b/src/org/fox/ttrss/HeadlinesFragment.java index 3a18dc07..6a677907 100644 --- a/src/org/fox/ttrss/HeadlinesFragment.java +++ b/src/org/fox/ttrss/HeadlinesFragment.java @@ -352,25 +352,27 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, public void refresh(boolean append) { if (m_activity != null) { m_refreshInProgress = true; + + if (!m_feed.equals(GlobalState.getInstance().m_activeFeed)) { + append = false; + } + + final boolean fappend = append; + final String sessionId = m_activity.getSessionId(); + final boolean showUnread = m_activity.getUnreadArticlesOnly(); + final boolean isCat = m_feed.is_cat; HeadlinesRequest req = new HeadlinesRequest(getActivity().getApplicationContext(), m_activity) { protected void onPostExecute(JsonElement result) { super.onPostExecute(result); m_refreshInProgress = false; m_adapter.notifyDataSetChanged(); - m_listener.onHeadlinesLoaded(); + m_listener.onHeadlinesLoaded(fappend); } }; - final String sessionId = m_activity.getSessionId(); - final boolean showUnread = m_activity.getUnreadArticlesOnly(); - final boolean isCat = m_feed.is_cat; int skip = 0; - if (!m_feed.equals(GlobalState.getInstance().m_activeFeed)) { - append = false; - } - if (append) { for (Article a : m_articles) { if (a.unread) ++skip;