summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2014-10-31 13:00:54 +0300
committerAndrew Dolgov <[email protected]>2014-10-31 13:00:54 +0300
commit436f3359038b1f7cabfe92996c4c53d8dc74b076 (patch)
tree7a8acafc7d219efe22df55a9522dfa3fe5baa17a
parentec156b69b0cae6d60d6e4091bba60eeb2c5f356f (diff)
allow overscroll for headlines list if auto mark as read is enabled
-rw-r--r--org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java47
-rw-r--r--org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineHeadlinesFragment.java20
-rw-r--r--org.fox.ttrss/src/main/res/layout/headlines_footer.xml15
3 files changed, 53 insertions, 29 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 927f7b2b..5d635838 100644
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java
@@ -20,11 +20,13 @@ import android.util.Log;
import android.util.TypedValue;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
+import android.view.Display;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
+import android.view.WindowManager;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.AdapterView;
@@ -316,28 +318,22 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener,
}
- ListView list = (ListView)view.findViewById(R.id.headlines);
+ ListView list = (ListView)view.findViewById(R.id.headlines);
+
+ if (m_prefs.getBoolean("headlines_mark_read_scroll", false)) {
+ WindowManager wm = (WindowManager) m_activity.getSystemService(Context.WINDOW_SERVICE);
+ Display display = wm.getDefaultDisplay();
+ int screenHeight = display.getHeight();
+
+ View layout = inflater.inflate(R.layout.headlines_footer, container, false);
+
+ layout.setLayoutParams(new ListView.LayoutParams(ListView.LayoutParams.MATCH_PARENT, screenHeight));
+
+ list.addFooterView(layout);
+ }
+
m_adapter = new ArticleListAdapter(getActivity(), R.layout.headlines_row, (ArrayList<Article>)m_articles);
-
- /* if (!m_activity.isCompatMode()) {
- AnimationSet set = new AnimationSet(true);
-
- Animation animation = new AlphaAnimation(0.0f, 1.0f);
- animation.setDuration(500);
- set.addAnimation(animation);
-
- animation = new TranslateAnimation(
- Animation.RELATIVE_TO_SELF, 50.0f,Animation.RELATIVE_TO_SELF, 0.0f,
- Animation.RELATIVE_TO_SELF, 0.0f,Animation.RELATIVE_TO_SELF, 0.0f
- );
- animation.setDuration(1000);
- set.addAnimation(animation);
-
- LayoutAnimationController controller = new LayoutAnimationController(set, 0.5f);
-
- list.setLayoutAnimation(controller);
- } */
-
+
list.setAdapter(m_adapter);
list.setOnItemClickListener(this);
list.setOnScrollListener(this);
@@ -348,11 +344,6 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener,
m_activity.setTitle(m_feed.title);
}
- //m_activity.m_pullToRefreshAttacher.addRefreshableView(list, this);
-
- //if (m_activity.isSmallScreen())
- //view.findViewById(R.id.headlines_fragment).setPadding(0, 0, 0, 0);
-
Log.d(TAG, "onCreateView, feed=" + m_feed);
return view;
@@ -399,7 +390,9 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener,
if (list != null) {
Article article = (Article)list.getItemAtPosition(position);
- if (article.id >= 0) {
+
+ // could be footer or w/e
+ if (article != null && article.id >= 0) {
m_listener.onArticleSelected(article);
// only set active article when it makes sense (in HeadlinesActivity)
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineHeadlinesFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineHeadlinesFragment.java
index 44ba3684..c06f7917 100644
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineHeadlinesFragment.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineHeadlinesFragment.java
@@ -19,11 +19,13 @@ import android.util.Log;
import android.util.TypedValue;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
+import android.view.Display;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
+import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.AdapterView.OnItemClickListener;
@@ -295,8 +297,22 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis
m_cursor = createCursor();
- ListView list = (ListView)view.findViewById(R.id.headlines);
- m_adapter = new ArticleListAdapter(getActivity(), R.layout.headlines_row, m_cursor,
+ ListView list = (ListView)view.findViewById(R.id.headlines);
+
+ if (m_prefs.getBoolean("headlines_mark_read_scroll", false)) {
+ WindowManager wm = (WindowManager) m_activity.getSystemService(Context.WINDOW_SERVICE);
+ Display display = wm.getDefaultDisplay();
+ int screenHeight = display.getHeight();
+
+ View layout = inflater.inflate(R.layout.headlines_footer, container, false);
+
+ layout.setLayoutParams(new ListView.LayoutParams(ListView.LayoutParams.MATCH_PARENT, screenHeight));
+
+ list.addFooterView(layout);
+ }
+
+
+ m_adapter = new ArticleListAdapter(getActivity(), R.layout.headlines_row, m_cursor,
new String[] { "title" }, new int[] { R.id.title }, 0);
/* if (!m_activity.isCompatMode()) {
diff --git a/org.fox.ttrss/src/main/res/layout/headlines_footer.xml b/org.fox.ttrss/src/main/res/layout/headlines_footer.xml
new file mode 100644
index 00000000..5877aae9
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/layout/headlines_footer.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/headlines_footer"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent">
+
+ <View
+ android:layout_gravity="top|center_horizontal"
+ android:layout_marginTop="10dp"
+ android:layout_width="128dp"
+ android:layout_height="1dp"
+ android:background="?unreadCounterBackground"/>
+
+</FrameLayout> \ No newline at end of file