summaryrefslogtreecommitdiff
path: root/src/org
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2012-09-19 23:39:46 +0400
committerAndrew Dolgov <[email protected]>2012-09-19 23:39:46 +0400
commit9d283da0f05eda6a7c3cba22a61c009ce11a8b56 (patch)
tree641cd1e5c74b7248cd84f22e24b84d6ef193e059 /src/org
parentd3e0ce0f83c117573840eaa777c7cae45361fe6e (diff)
various tablet-mode refresh fixes
Diffstat (limited to 'src/org')
-rw-r--r--src/org/fox/ttrss/ArticlePager.java17
-rw-r--r--src/org/fox/ttrss/HeadlinesActivity.java2
-rw-r--r--src/org/fox/ttrss/HeadlinesFragment.java18
3 files changed, 22 insertions, 15 deletions
diff --git a/src/org/fox/ttrss/ArticlePager.java b/src/org/fox/ttrss/ArticlePager.java
index 0608679b..74c7255f 100644
--- a/src/org/fox/ttrss/ArticlePager.java
+++ b/src/org/fox/ttrss/ArticlePager.java
@@ -85,6 +85,8 @@ public class ArticlePager extends Fragment {
int position = m_articles.indexOf(m_article);
+ m_listener.onArticleSelected(m_article, false);
+
pager.setAdapter(m_adapter);
pager.setCurrentItem(position);
pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@@ -149,9 +151,8 @@ public class ArticlePager extends Fragment {
if (result != null) {
m_adapter.notifyDataSetChanged();
- if (m_article.id == 0) {
+ if (m_article.id == 0 || m_articles.indexOf(m_article) == -1) {
if (m_articles.size() > 0) {
- Log.d(TAG, "blank id on refresh");
m_article = m_articles.get(0);
m_listener.onArticleSelected(m_article, false);
}
@@ -235,8 +236,6 @@ public class ArticlePager extends Fragment {
if (m_articles.size() == 0 || !m_feed.equals(GlobalState.getInstance().m_activeFeed)) {
refresh(false);
GlobalState.getInstance().m_activeFeed = m_feed;
- } else {
- m_adapter.notifyDataSetChanged();
}
m_activity.initMenu();
@@ -247,12 +246,14 @@ public class ArticlePager extends Fragment {
}
public void setActiveArticle(Article article) {
- m_article = article;
+ if (m_article != article) {
+ m_article = article;
- int position = m_articles.indexOf(m_article);
+ int position = m_articles.indexOf(m_article);
- ViewPager pager = (ViewPager) getView().findViewById(R.id.article_pager);
+ ViewPager pager = (ViewPager) getView().findViewById(R.id.article_pager);
- pager.setCurrentItem(position);
+ pager.setCurrentItem(position);
+ }
}
}
diff --git a/src/org/fox/ttrss/HeadlinesActivity.java b/src/org/fox/ttrss/HeadlinesActivity.java
index f31d56d9..6fad6c66 100644
--- a/src/org/fox/ttrss/HeadlinesActivity.java
+++ b/src/org/fox/ttrss/HeadlinesActivity.java
@@ -165,7 +165,7 @@ public class HeadlinesActivity extends OnlineActivity implements HeadlinesEventL
public void onHeadlinesLoaded(boolean appended) {
HeadlinesFragment hf = (HeadlinesFragment) getSupportFragmentManager().findFragmentByTag(FRAG_HEADLINES);
- if (hf != null && !appended) {
+ if (hf != null) {
Article article = hf.getActiveArticle();
if (article == null) {
diff --git a/src/org/fox/ttrss/HeadlinesFragment.java b/src/org/fox/ttrss/HeadlinesFragment.java
index d5cd7bf4..f2148003 100644
--- a/src/org/fox/ttrss/HeadlinesFragment.java
+++ b/src/org/fox/ttrss/HeadlinesFragment.java
@@ -374,6 +374,10 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener,
if (result != null) {
m_refreshInProgress = false;
+
+ if (m_articles.indexOf(m_activeArticle) == -1)
+ m_activeArticle = null;
+
m_adapter.notifyDataSetChanged();
m_listener.onHeadlinesLoaded(fappend);
} else {
@@ -817,14 +821,16 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener,
}
public void setActiveArticle(Article article) {
- m_activeArticle = article;
- m_adapter.notifyDataSetChanged();
+ if (article != m_activeArticle) {
+ m_activeArticle = article;
+ m_adapter.notifyDataSetChanged();
- ListView list = (ListView)getView().findViewById(R.id.headlines);
+ ListView list = (ListView)getView().findViewById(R.id.headlines);
- if (list != null && article != null) {
- int position = m_adapter.getPosition(article);
- list.setSelection(position);
+ if (list != null && article != null) {
+ int position = m_adapter.getPosition(article);
+ list.setSelection(position);
+ }
}
}