summaryrefslogtreecommitdiff
path: root/src/org/fox/ttrss/OfflineArticlePager.java
diff options
context:
space:
mode:
authorAndrew Dolgov <fox@fakecake.org>2011-12-10 10:22:27 +0300
committerAndrew Dolgov <fox@fakecake.org>2011-12-10 10:22:27 +0300
commit3467aa5dc0f15a3d0a89839b52b6230943a31cd4 (patch)
tree1e2a01435ca5825503562a7ff3a87ff843a3948f /src/org/fox/ttrss/OfflineArticlePager.java
parent71e5c1f77036cfef033f3932a09937abd4be5cd7 (diff)
use viewpager-based article swiping for offline mode
Diffstat (limited to 'src/org/fox/ttrss/OfflineArticlePager.java')
-rw-r--r--src/org/fox/ttrss/OfflineArticlePager.java108
1 files changed, 108 insertions, 0 deletions
diff --git a/src/org/fox/ttrss/OfflineArticlePager.java b/src/org/fox/ttrss/OfflineArticlePager.java
new file mode 100644
index 00000000..6ba11c32
--- /dev/null
+++ b/src/org/fox/ttrss/OfflineArticlePager.java
@@ -0,0 +1,108 @@
+package org.fox.ttrss;
+
+import android.app.Activity;
+import android.database.Cursor;
+import android.database.sqlite.SQLiteStatement;
+import android.os.Bundle;
+import android.provider.BaseColumns;
+import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentManager;
+import android.support.v4.app.FragmentStatePagerAdapter;
+import android.support.v4.view.ViewPager;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+public class OfflineArticlePager extends Fragment {
+
+ private PagerAdapter m_adapter;
+ private OfflineServices m_offlineServices;
+ private OfflineHeadlinesFragment m_hf;
+ private int m_articleId;
+
+ private class PagerAdapter extends FragmentStatePagerAdapter {
+
+ public PagerAdapter(FragmentManager fm) {
+ super(fm);
+ }
+
+ @Override
+ public Fragment getItem(int position) {
+ int articleId = m_hf.getArticleIdAtPosition(position);
+
+ if (articleId != 0) {
+ return new OfflineArticleFragment(articleId);
+ }
+
+ return null;
+ }
+
+ @Override
+ public int getCount() {
+ return m_hf.getArticleCount();
+ }
+
+ }
+
+ public OfflineArticlePager() {
+ super();
+ }
+
+ public OfflineArticlePager(int articleId) {
+ super();
+
+ m_articleId = articleId;
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ View view = inflater.inflate(R.layout.article_pager, container, false);
+
+ m_adapter = new PagerAdapter(getActivity().getSupportFragmentManager());
+
+ ViewPager pager = (ViewPager) view.findViewById(R.id.article_pager);
+
+ int position = m_hf.getArticleIdPosition(m_articleId);
+
+ pager.setAdapter(m_adapter);
+ pager.setCurrentItem(position);
+ pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+
+ @Override
+ public void onPageScrollStateChanged(int arg0) {
+ }
+
+ @Override
+ public void onPageScrolled(int arg0, float arg1, int arg2) {
+ }
+
+ @Override
+ public void onPageSelected(int position) {
+ int articleId = m_hf.getArticleIdAtPosition(position);
+
+ if (articleId != 0) {
+ m_offlineServices.setSelectedArticleId(articleId);
+
+ SQLiteStatement stmt = m_offlineServices.getWritableDb().compileStatement(
+ "UPDATE articles SET unread = 0 " + "WHERE " + BaseColumns._ID
+ + " = ?");
+
+ stmt.bindLong(1, articleId);
+ stmt.execute();
+ stmt.close();
+ }
+ }
+ });
+
+ return view;
+ }
+
+ @Override
+ public void onAttach(Activity activity) {
+ super.onAttach(activity);
+
+ m_hf = (OfflineHeadlinesFragment) getActivity().getSupportFragmentManager().findFragmentById(R.id.headlines_fragment);
+ m_offlineServices = (OfflineServices)activity;
+ }
+
+}