summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2013-09-01 14:08:11 +0400
committerAndrew Dolgov <[email protected]>2013-09-01 14:08:11 +0400
commitd5cd47e6eec7be01dca3c4d388e21ff21dd2b1f3 (patch)
tree16205cfefadf311c24ed715b44ae553d500e0b24 /src
parent0e751f5db266f83fcd514ea02a32485936f6cd55 (diff)
properly calculate offsets for non-default view modes (closes #770)
Diffstat (limited to 'src')
-rw-r--r--src/org/fox/ttrss/ArticlePager.java21
-rw-r--r--src/org/fox/ttrss/HeadlinesFragment.java22
2 files changed, 39 insertions, 4 deletions
diff --git a/src/org/fox/ttrss/ArticlePager.java b/src/org/fox/ttrss/ArticlePager.java
index 9b968cea..f7e5a13f 100644
--- a/src/org/fox/ttrss/ArticlePager.java
+++ b/src/org/fox/ttrss/ArticlePager.java
@@ -201,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;
diff --git a/src/org/fox/ttrss/HeadlinesFragment.java b/src/org/fox/ttrss/HeadlinesFragment.java
index 1014e836..aacd2833 100644
--- a/src/org/fox/ttrss/HeadlinesFragment.java
+++ b/src/org/fox/ttrss/HeadlinesFragment.java
@@ -430,11 +430,29 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener,
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 ("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;
}
- if (skip == 0) skip = m_articles.size();
} else {
m_activity.setLoadingStatus(R.string.blank, true);
}