diff options
Diffstat (limited to 'src/org/fox/ttrss/ArticlePager.java')
| -rw-r--r-- | src/org/fox/ttrss/ArticlePager.java | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/src/org/fox/ttrss/ArticlePager.java b/src/org/fox/ttrss/ArticlePager.java index 9caa72d1..f7e5a13f 100644 --- a/src/org/fox/ttrss/ArticlePager.java +++ b/src/org/fox/ttrss/ArticlePager.java @@ -175,10 +175,12 @@ public class ArticlePager extends Fragment { } } - if (m_article.id == 0 || m_articles.indexOf(m_article) == -1) { - if (m_articles.size() > 0) { - m_article = m_articles.get(0); - m_listener.onArticleSelected(m_article, false); + if (m_article != null) { + if (m_article.id == 0 || m_articles.indexOf(m_article) == -1) { + if (m_articles.size() > 0) { + m_article = m_articles.get(0); + m_listener.onArticleSelected(m_article, false); + } } } @@ -199,11 +201,28 @@ public class ArticlePager extends Fragment { int skip = 0; if (append) { + // adaptive, all_articles, marked, published, unread + String viewMode = m_activity.getViewMode(); + int numUnread = 0; + int numAll = m_articles.size(); + for (Article a : m_articles) { - if (a.unread) ++skip; + if (a.unread) ++numUnread; } - if (skip == 0) skip = m_articles.size(); + if ("marked".equals(viewMode)) { + skip = numAll; + } else if ("published".equals(viewMode)) { + skip = numAll; + } else if ("unread".equals(viewMode)) { + skip = numUnread; + } else if (m_searchQuery != null && m_searchQuery.length() > 0) { + skip = numAll; + } else if ("adaptive".equals(viewMode)) { + skip = numUnread > 0 ? numUnread : numAll; + } else { + skip = numAll; + } } final int fskip = skip; |