summaryrefslogtreecommitdiff
path: root/org.fox.ttrss/src
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2015-06-05 23:32:28 +0300
committerAndrew Dolgov <[email protected]>2015-06-05 23:32:28 +0300
commitf24a9b08d083c10064d01a405ad533ed6eefdc73 (patch)
tree2a237b4bc5b1bf12b2208c95ff7d4fb260d775d7 /org.fox.ttrss/src
parent99216872d0e0edf2085eef5bd95a038b9edb76aa (diff)
headlines: add a special invisible listview item because listviewanimations seem to glitch if there's only 1 headline loaded reloading animations on every notifydatasetchanged, not sure why
we do not pass this special headline to headlinesactivity
Diffstat (limited to 'org.fox.ttrss/src')
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java38
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/util/HeadlinesRequest.java5
2 files changed, 31 insertions, 12 deletions
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java
index d2c95c2d..db76403c 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java
@@ -80,6 +80,9 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener,
public static final int HEADLINES_REQUEST_SIZE = 30;
public static final int HEADLINES_BUFFER_MAX = 500;
+ public static final int ARTICLE_SPECIAL_LOADMORE = -1;
+ public static final int ARTICLE_SPECIAL_SPACER = -2;
+
private final String TAG = this.getClass().getSimpleName();
private Feed m_feed;
@@ -514,10 +517,11 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener,
if (result != null) {
m_refreshInProgress = false;
-
+ m_articles.add(0, new Article(-2));
+
if (m_articles.indexOf(m_activeArticle) == -1)
m_activeArticle = null;
-
+
m_adapter.notifyDataSetChanged();
m_listener.onHeadlinesLoaded(fappend);
@@ -650,8 +654,9 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener,
public static final int VIEW_SELECTED = 2;
public static final int VIEW_SELECTED_UNREAD = 3;
public static final int VIEW_LOADMORE = 4;
+ public static final int VIEW_SPACER = 5;
- public static final int VIEW_COUNT = VIEW_LOADMORE+1;
+ public static final int VIEW_COUNT = VIEW_SPACER+1;
private final Integer[] origTitleColors = new Integer[VIEW_COUNT];
private final int titleHighScoreUnreadColor;
@@ -684,9 +689,14 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener,
@Override
public int getItemViewType(int position) {
Article a = items.get(position);
-
- if (a.id == -1) {
+
+ // the special invisible SPACER is here because listview animations apparently glitch if there's only one headline loaded
+ // so we add an invisible second one i guess
+
+ if (a.id == ARTICLE_SPECIAL_LOADMORE) {
return VIEW_LOADMORE;
+ } else if (a.id == ARTICLE_SPECIAL_SPACER) {
+ return VIEW_SPACER;
} else if (m_activeArticle != null && a.id == m_activeArticle.id && a.unread) {
return VIEW_SELECTED_UNREAD;
} else if (m_activeArticle != null && a.id == m_activeArticle.id) {
@@ -730,6 +740,9 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener,
case VIEW_LOADMORE:
layoutId = R.layout.headlines_row_loadmore;
break;
+ case VIEW_SPACER:
+ layoutId = R.layout.dummy_fragment;
+ break;
case VIEW_UNREAD:
layoutId = m_compactLayoutMode ? R.layout.headlines_row_unread_compact : R.layout.headlines_row_unread;
break;
@@ -1131,7 +1144,11 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener,
}
public ArticleList getAllArticles() {
- return m_articles;
+ ArticleList tmp = (ArticleList) m_articles.clone();
+
+ tmp.remove(0);
+
+ return tmp;
}
// if setting active doesn't make sense, scroll to whatever is passed to us
@@ -1204,7 +1221,7 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener,
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
- if (!m_refreshInProgress && m_articles.findById(-1) != null && firstVisibleItem + visibleItemCount == m_articles.size()) {
+ if (!m_refreshInProgress && m_articles.findById(ARTICLE_SPECIAL_LOADMORE) != null && firstVisibleItem + visibleItemCount == m_articles.size()) {
refresh(true);
}
@@ -1228,7 +1245,7 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener,
m_activity.getSupportActionBar().show();
}
} else {
- m_activity.getSupportActionBar().show();
+ m_activity.getSupportActionBar().show();
}
m_listPreviousVisibleItem = firstVisibleItem;
@@ -1289,12 +1306,13 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener,
return m_feed;
}
- public ArticleList getArticles() {
+ /*public ArticleList getArticles() {
return m_articles;
- }
+ }*/
public void setArticles(ArticleList articles) {
m_articles.clear();
+ m_articles.add(0, new Article(-2));
m_articles.addAll(articles);
m_adapter.notifyDataSetChanged();
}
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/util/HeadlinesRequest.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/util/HeadlinesRequest.java
index 21b9c2b7..2d956284 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/util/HeadlinesRequest.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/util/HeadlinesRequest.java
@@ -8,6 +8,7 @@ import com.google.gson.JsonElement;
import com.google.gson.reflect.TypeToken;
import org.fox.ttrss.ApiRequest;
+import org.fox.ttrss.HeadlinesFragment;
import org.fox.ttrss.OnlineActivity;
import org.fox.ttrss.types.Article;
import org.fox.ttrss.types.ArticleList;
@@ -57,7 +58,7 @@ public class HeadlinesRequest extends ApiRequest {
m_articles.remove(0);
}
- if (m_articles.get(m_articles.size()-1).id == -1) {
+ if (m_articles.get(m_articles.size()-1).id == HeadlinesFragment.ARTICLE_SPECIAL_LOADMORE) {
m_articles.remove(m_articles.size()-1); // remove previous placeholder
}
@@ -68,7 +69,7 @@ public class HeadlinesRequest extends ApiRequest {
m_articles.add(f);
if (articles.size() == HEADLINES_REQUEST_SIZE) {
- Article placeholder = new Article(-1);
+ Article placeholder = new Article(HeadlinesFragment.ARTICLE_SPECIAL_LOADMORE);
m_articles.add(placeholder);
}