aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHalzyn2015-05-28 15:32:51 +0200
committerHalzyn2015-05-28 15:32:51 +0200
commit464c0b27203b90b96c7f41d4d87cf13fa6387a03 (patch)
tree5471d4e53951c7a20668c4ef6f80b4d6ecaf3ac9
parentLoader for unified inbox (diff)
CardView
what it says
-rw-r--r--app/build.gradle4
-rw-r--r--app/src/main/java/org/rssin/android/FilterActivity.java95
-rw-r--r--app/src/main/res/layout/activity_filter.xml20
-rw-r--r--app/src/main/res/layout/item_feeditem.xml38
-rw-r--r--build.gradle1
5 files changed, 110 insertions, 48 deletions
diff --git a/app/build.gradle b/app/build.gradle
index 95bbeb0..0938eb1 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -24,4 +24,8 @@ dependencies {
compile 'com.android.support:appcompat-v7:22.0.0'
compile 'com.android.support:support-v4:22.0.0'
compile files('libs/volley.jar')
+ compile 'com.android.support:cardview-v7:21.0.+'
+ compile 'com.android.support:recyclerview-v7:21.0.+'
+
+
}
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);
+ }
}
+
+
}
}
diff --git a/app/src/main/res/layout/activity_filter.xml b/app/src/main/res/layout/activity_filter.xml
index b144d08..19b7fad 100644
--- a/app/src/main/res/layout/activity_filter.xml
+++ b/app/src/main/res/layout/activity_filter.xml
@@ -1,13 +1,15 @@
-<RelativeLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- tools:context="org.rssin.android.FilterActivity">
- <ListView
- android:id="@+id/filter_items_list"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+xmlns:tools="http://schemas.android.com/tools"
+android:layout_width="match_parent"
+android:layout_height="match_parent"
+tools:context="org.rssin.android.FilterActivity">
+ <!-- A RecyclerView with some commonly used attributes -->
+
+ <android.support.v7.widget.RecyclerView
+ android:id="@+id/my_recycler_view"
+ android:scrollbars="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
-</RelativeLayout>
+ </LinearLayout> \ No newline at end of file
diff --git a/app/src/main/res/layout/item_feeditem.xml b/app/src/main/res/layout/item_feeditem.xml
index 9f4c553..0b3c944 100644
--- a/app/src/main/res/layout/item_feeditem.xml
+++ b/app/src/main/res/layout/item_feeditem.xml
@@ -1,19 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
- android:padding="10dp">
+ android:padding="15dp">
- <TextView android:id="@+id/feeditem_title"
- android:layout_width="fill_parent"
+ <android.support.v7.widget.CardView
+ android:id="@+id/filter_items_list"
+ android:layout_gravity="center"
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:textSize="@dimen/font_size_normal"/>
+ card_view:cardElevation="4dp"
+ card_view:cardCornerRadius="4dp">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ android:padding="8dp">
+
+ <TextView android:id="@+id/feeditem_title"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="Lorem Ipsum Dolor Sit Amet"
+ android:textSize="@dimen/font_size_huge"/>
+ <TextView android:id="@+id/feeditem_summary"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed eu pulvinar sapien, vel hendrerit lectus. Donec et sem lorem. Phasellus pharetra ornare ligula, sit amet volutpat nunc. Aenean posuere neque et leo gravida faucibus. Nunc ut neque sagittis, hendrerit tortor sit amet, interdum nisl. Quisque nibh elit, varius sed eros at, euismod commodo orci. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Duis interdum, sem porttitor feugiat fringilla, nunc ex blandit lorem, in ultrices dolor sapien et lorem. Vestibulum sit amet feugiat enim, eu luctus turpis. "
+ android:textSize="@dimen/font_size_small"/>
+
+ </LinearLayout>
+
+
+ </android.support.v7.widget.CardView>
- <TextView android:id="@+id/feeditem_summary"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:textSize="@dimen/font_size_small"/>
</LinearLayout> \ No newline at end of file
diff --git a/build.gradle b/build.gradle
index d3ff69d..75b58fa 100644
--- a/build.gradle
+++ b/build.gradle
@@ -7,6 +7,7 @@ buildscript {
dependencies {
classpath 'com.android.tools.build:gradle:1.1.0'
+
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}