summaryrefslogtreecommitdiff
path: root/src/org/fox/ttrss/offline/OfflineHeadlinesFragment.java
diff options
context:
space:
mode:
authorAndrew Dolgov <fox+ttrss@fakecake.org>2013-04-26 01:37:55 -0700
committerAndrew Dolgov <fox+ttrss@fakecake.org>2013-04-26 01:37:55 -0700
commit2bb0a6c44f778b19c70244f7c47457f7ecfa297c (patch)
tree1f5b5dbc69839cc36b49a4b6d292becf2cb2fd8f /src/org/fox/ttrss/offline/OfflineHeadlinesFragment.java
parentf9889788fced67fe3c849eda7d40f460090e2020 (diff)
parenta771ad16cfade4e1f7a7c693e316188a138d7d65 (diff)
Merge pull request #28 from janxbar/master
Support for score and other minor enhancements
Diffstat (limited to 'src/org/fox/ttrss/offline/OfflineHeadlinesFragment.java')
-rw-r--r--src/org/fox/ttrss/offline/OfflineHeadlinesFragment.java50
1 files changed, 44 insertions, 6 deletions
diff --git a/src/org/fox/ttrss/offline/OfflineHeadlinesFragment.java b/src/org/fox/ttrss/offline/OfflineHeadlinesFragment.java
index be724eb1..cdb0adf3 100644
--- a/src/org/fox/ttrss/offline/OfflineHeadlinesFragment.java
+++ b/src/org/fox/ttrss/offline/OfflineHeadlinesFragment.java
@@ -12,8 +12,10 @@ import org.jsoup.Jsoup;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
+import android.content.res.Resources.Theme;
import android.database.Cursor;
import android.database.sqlite.SQLiteStatement;
+import android.graphics.Paint;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
@@ -24,6 +26,7 @@ import android.support.v4.widget.SimpleCursorAdapter;
import android.text.Html;
import android.text.Html.ImageGetter;
import android.util.Log;
+import android.util.TypedValue;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.LayoutInflater;
@@ -371,12 +374,6 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis
} */
private class ArticleListAdapter extends SimpleCursorAdapter {
- public ArticleListAdapter(Context context, int layout, Cursor c,
- String[] from, int[] to, int flags) {
- super(context, layout, c, from, to, flags);
- // TODO Auto-generated constructor stub
- }
-
public static final int VIEW_NORMAL = 0;
public static final int VIEW_UNREAD = 1;
public static final int VIEW_SELECTED = 2;
@@ -385,7 +382,19 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis
public static final int VIEW_COUNT = VIEW_LOADMORE+1;
+ private final Integer[] origTitleColors = new Integer[VIEW_COUNT];
+ private final int titleHighScoreUnreadColor;
+ public ArticleListAdapter(Context context, int layout, Cursor c,
+ String[] from, int[] to, int flags) {
+ super(context, layout, c, from, to, flags);
+
+ Theme theme = context.getTheme();
+ TypedValue tv = new TypedValue();
+ theme.resolveAttribute(R.attr.headlineTitleHighScoreUnreadTextColor, tv, true);
+ titleHighScoreUnreadColor = tv.data;
+ }
+
public int getViewTypeCount() {
return VIEW_COUNT;
}
@@ -444,6 +453,10 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis
if (tt != null) {
tt.setText(Html.fromHtml(article.getString(article.getColumnIndex("title"))));
+
+ int scoreIndex = article.getColumnIndex("score");
+ if (scoreIndex >= 0)
+ adjustTitleTextView(article.getInt(scoreIndex), tt, position);
}
TextView ft = (TextView)v.findViewById(R.id.feed_title);
@@ -518,6 +531,14 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis
te.setText(excerpt);
}
+ TextView ta = (TextView)v.findViewById(R.id.author);
+
+ if (ta != null) {
+ int authorIndex = article.getColumnIndex("author");
+ if (authorIndex >= 0)
+ ta.setText(article.getString(authorIndex));
+ }
+
/* ImageView separator = (ImageView)v.findViewById(R.id.headlines_separator);
if (separator != null && m_offlineServices.isSmallScreen()) {
@@ -573,6 +594,23 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis
return v;
}
+
+ private void adjustTitleTextView(int score, TextView tv, int position) {
+ int viewType = getItemViewType(position);
+ if (origTitleColors[viewType] == null)
+ // store original color
+ origTitleColors[viewType] = Integer.valueOf(tv.getCurrentTextColor());
+
+ if (score < -500) {
+ tv.setPaintFlags(tv.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
+ } else if (score > 500) {
+ tv.setTextColor(titleHighScoreUnreadColor);
+ tv.setPaintFlags(tv.getPaintFlags() & ~Paint.STRIKE_THRU_TEXT_FLAG);
+ } else {
+ tv.setTextColor(origTitleColors[viewType].intValue());
+ tv.setPaintFlags(tv.getPaintFlags() & ~Paint.STRIKE_THRU_TEXT_FLAG);
+ }
+ }
}
public void notifyUpdated() {