aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java')
-rw-r--r--app/src/main/java/org/rssin/android/FilterActivity.java95
1 files changed, 64 insertions, 31 deletions
diff --git a/app/src/main/java/org/rssin/android/FilterActivity.java b/app/src/main/java/org/rssin/android/FilterActivity.java
index b1be925..6c827d1 100644
--- a/app/src/main/java/org/rssin/android/FilterActivity.java
+++ b/app/src/main/java/org/rssin/android/FilterActivity.java
@@ -5,6 +5,8 @@ import android.content.Context;
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
import android.text.Html;
import android.view.LayoutInflater;
import android.view.Menu;
@@ -31,10 +33,17 @@ public class FilterActivity extends ActionBarActivity {
private FiltersList filtersList;
private Filter filter;
+ private RecyclerView mRecyclerView;
+ private RecyclerView.Adapter mAdapter;
+ private RecyclerView.LayoutManager mLayoutManager;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_filter);
+ mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view);
+ mLayoutManager = new LinearLayoutManager(this);
+ mRecyclerView.setLayoutManager(mLayoutManager);
try {
filtersList = FiltersList.getInstance(this);
@@ -52,13 +61,14 @@ public class FilterActivity extends ActionBarActivity {
setTitle(filter.getTitle());
final Activity activity = this;
- final ListView itemsListView = (ListView) findViewById(R.id.filter_items_list);
FeedLoaderAndSorter loaderAndSorter = new FeedLoaderAndSorter(filter);
loaderAndSorter.getFilteredFeedItems(new VolleyFetcher(this), new FallibleListener<List<FeedItem>, VolleyError>() {
@Override
public void onReceive(List<FeedItem> data) {
- FeedItemAdapter feedItemAdapter = new FeedItemAdapter(activity, R.layout.item_feeditem, data);
- itemsListView.setAdapter(feedItemAdapter);
+
+ FeedItemAdapter feedItemAdapter = new FeedItemAdapter(data);
+ mRecyclerView.setAdapter(feedItemAdapter);
+ mRecyclerView.setHasFixedSize(true);
}
@Override
@@ -101,49 +111,72 @@ public class FilterActivity extends ActionBarActivity {
/**
* Custom ArrayAdapter to display Keywords
*/
- private static class FeedItemAdapter extends ArrayAdapter<FeedItem> {
- Context context;
- int layoutResourceId;
+ private static class FeedItemAdapter extends RecyclerView.Adapter<FeedItemAdapter.KeywordHolder> {
List<FeedItem> feedItems;
- public FeedItemAdapter(Context context, int resource, List<FeedItem> objects) {
- super(context, resource, objects);
- this.context = context;
- layoutResourceId = resource;
+ public FeedItemAdapter(List<FeedItem> objects) {
feedItems = objects;
}
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- View row = convertView;
- KeywordHolder holder = null;
-
- if (row == null) {
- LayoutInflater inflater = ((Activity) context).getLayoutInflater();
- row = inflater.inflate(layoutResourceId, parent, false);
+// @Override
+// public View getView(int position, View convertView, ViewGroup parent) {
+// View row = convertView;
+// KeywordHolder holder = null;
+//
+// if (row == null) {
+// LayoutInflater inflater = ((Activity) context).getLayoutInflater();
+// row = inflater.inflate(layoutResourceId, parent, false);
+//
+// holder = new KeywordHolder();
+// holder.title = (TextView) row.findViewById(R.id.feeditem_title);
+// holder.summary = (TextView) row.findViewById(R.id.feeditem_summary);
+//
+// row.setTag(holder);
+// } else {
+// holder = (KeywordHolder) row.getTag();
+// }
+//
+// FeedItem feedItem = feedItems.get(position);
+// holder.title.setText(feedItem.getTitle());
+// holder.summary.setText(Html.fromHtml(feedItem.getDescription()));
+//
+// return row;
+// }
- holder = new KeywordHolder();
- holder.title = (TextView) row.findViewById(R.id.feeditem_title);
- holder.summary = (TextView) row.findViewById(R.id.feeditem_summary);
-
- row.setTag(holder);
- } else {
- holder = (KeywordHolder) row.getTag();
- }
+ @Override
+ public KeywordHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+ View itemView = LayoutInflater.
+ from(parent.getContext()).
+ inflate(R.layout.item_feeditem, parent, false);
+ return new KeywordHolder(itemView);
+ }
- FeedItem feedItem = feedItems.get(position);
- holder.title.setText(feedItem.getTitle());
- holder.summary.setText(Html.fromHtml(feedItem.getDescription()));
+ @Override
+ public void onBindViewHolder(KeywordHolder holder, int position) {
+ FeedItem item = feedItems.get(position);
+ holder.title.setText(item.getTitle());
+ holder.summary.setText(item.getDescription());
+ }
- return row;
+ @Override
+ public int getItemCount() {
+ return feedItems.size();
}
/**
* TextViews holder
*/
- private static class KeywordHolder {
+ static class KeywordHolder extends RecyclerView.ViewHolder {
TextView title;
TextView summary;
+
+ public KeywordHolder(View itemView) {
+ super(itemView);
+ title = (TextView) itemView.findViewById(R.id.feeditem_title);
+ summary = (TextView) itemView.findViewById(R.id.feeditem_summary);
+ }
}
+
+
}
}