diff options
author | Andrew Dolgov <[email protected]> | 2012-09-19 23:39:46 +0400 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2012-09-19 23:39:46 +0400 |
commit | 9d283da0f05eda6a7c3cba22a61c009ce11a8b56 (patch) | |
tree | 641cd1e5c74b7248cd84f22e24b84d6ef193e059 /src | |
parent | d3e0ce0f83c117573840eaa777c7cae45361fe6e (diff) |
various tablet-mode refresh fixes
Diffstat (limited to 'src')
-rw-r--r-- | src/org/fox/ttrss/ArticlePager.java | 17 | ||||
-rw-r--r-- | src/org/fox/ttrss/HeadlinesActivity.java | 2 | ||||
-rw-r--r-- | src/org/fox/ttrss/HeadlinesFragment.java | 18 |
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);
+ }
}
}
|