From acd27869614a60610a93f59dbf6869059ee5dc81 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Wed, 23 Nov 2011 15:51:15 +0300 Subject: [PATCH] implement displaying articlefragment --- res/anim/slide_in_left.xml | 4 ++-- res/anim/slide_out_right.xml | 11 +++++++++ res/layout/main.xml | 16 ++++++------- src/org/fox/ttrss/ArticleFragment.java | 12 ++++++++-- src/org/fox/ttrss/HeadlinesFragment.java | 29 +++++++++++++++++++++++- 5 files changed, 59 insertions(+), 13 deletions(-) create mode 100644 res/anim/slide_out_right.xml diff --git a/res/anim/slide_in_left.xml b/res/anim/slide_in_left.xml index 1018058f..10a16677 100644 --- a/res/anim/slide_in_left.xml +++ b/res/anim/slide_in_left.xml @@ -2,9 +2,9 @@ diff --git a/res/anim/slide_out_right.xml b/res/anim/slide_out_right.xml new file mode 100644 index 00000000..cc43178e --- /dev/null +++ b/res/anim/slide_out_right.xml @@ -0,0 +1,11 @@ + + + + + + diff --git a/res/layout/main.xml b/res/layout/main.xml index d8fb875f..fb049eeb 100644 --- a/res/layout/main.xml +++ b/res/layout/main.xml @@ -1,20 +1,20 @@ - - - - + + + + - - + + - + - + diff --git a/src/org/fox/ttrss/ArticleFragment.java b/src/org/fox/ttrss/ArticleFragment.java index cdc81dde..b2323fa5 100644 --- a/src/org/fox/ttrss/ArticleFragment.java +++ b/src/org/fox/ttrss/ArticleFragment.java @@ -21,12 +21,15 @@ public class ArticleFragment extends Fragment { private final String TAG = this.getClass().getSimpleName(); protected SharedPreferences m_prefs; - protected int m_articleId; + + private int m_articleId; + private String m_sessionId; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if (savedInstanceState != null) { + m_sessionId = savedInstanceState.getString("sessionId"); m_articleId = savedInstanceState.getInt("articleId"); } @@ -35,8 +38,12 @@ public class ArticleFragment extends Fragment { return view; } - public void initialize(int articleId) { + public void initialize(String sessionId, int articleId, SharedPreferences prefs) { m_articleId = articleId; + m_prefs = prefs; + m_sessionId = sessionId; + + Log.d(TAG, "Article: " + articleId); } @Override @@ -48,6 +55,7 @@ public class ArticleFragment extends Fragment { public void onSaveInstanceState (Bundle out) { super.onSaveInstanceState(out); + out.putString("sessionId", m_sessionId); out.putInt("articleId", m_articleId); } diff --git a/src/org/fox/ttrss/HeadlinesFragment.java b/src/org/fox/ttrss/HeadlinesFragment.java index 53656517..be7c96eb 100644 --- a/src/org/fox/ttrss/HeadlinesFragment.java +++ b/src/org/fox/ttrss/HeadlinesFragment.java @@ -9,6 +9,7 @@ import org.jsoup.Jsoup; import android.app.Activity; import android.app.Fragment; +import android.app.FragmentTransaction; import android.content.Context; import android.content.SharedPreferences; import android.os.Bundle; @@ -34,6 +35,7 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener { private String m_sessionId; private int m_feedId; + private int m_activeArticleId; private ArticleListAdapter m_adapter; private List
m_articles = new ArrayList
(); @@ -44,6 +46,7 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener { if (savedInstanceState != null) { m_sessionId = savedInstanceState.getString("sessionId"); m_feedId = savedInstanceState.getInt("feedId"); + m_activeArticleId = savedInstanceState.getInt("activeArticleId"); } View view = inflater.inflate(R.layout.headlines_fragment, container, false); @@ -76,9 +79,32 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener { @Override public void onItemClick(AdapterView av, View view, int position, long id) { - + ListView list = (ListView)av; + + if (list != null) { + Article article = (Article)list.getItemAtPosition(position); + + viewArticle(article.id); + } } + public void viewArticle(int articleId) { + ArticleFragment frag = new ArticleFragment(); + frag.initialize(m_sessionId, articleId, m_prefs); + + if (frag != null) { + m_activeArticleId = articleId; + + FragmentTransaction ft = getFragmentManager().beginTransaction(); + ft.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out); + ft.show(getFragmentManager().findFragmentById(R.id.article_fragment)); + //ft.hide(getFragmentManager().findFragmentById(R.id.feeds_fragment)); + ft.replace(R.id.article_fragment, frag); + ft.commit(); + } + + } + public void initialize(String sessionId, int feedId, SharedPreferences prefs) { m_sessionId = sessionId; m_feedId = feedId; @@ -112,6 +138,7 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener { out.putString("sessionId", m_sessionId); out.putInt("feedId", m_feedId); + out.putInt("activeArticleId", m_activeArticleId); } private class HeadlinesRequest extends ApiRequest {