diff --git a/.idea/misc.xml b/.idea/misc.xml
index fbb6828..5d19981 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -37,7 +37,7 @@
-
+
diff --git a/app/build.gradle b/app/build.gradle
index d3ae3a4..9661a3a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -28,13 +28,14 @@ android {
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
- testCompile 'junit:junit:4.12'
testCompile "org.mockito:mockito-core:1.9.5"
compile 'com.android.support:appcompat-v7:23.3.0'
+ compile 'com.android.support:recyclerview-v7:23.3.0'
+ compile 'com.android.support:cardview-v7:23.3.0'
compile 'com.android.support:design:23.3.0'
+ compile 'com.android.support:support-v4:23.3.0'
compile 'com.jakewharton:butterknife:7.0.1'
compile 'com.jakewharton.timber:timber:4.1.2'
compile 'io.realm:realm-android:0.84.1'
- compile 'com.android.support:support-v4:23.3.0'
}
diff --git a/app/src/main/java/edu/grinnell/grinnell_publications_android/Controllers/Cards/LargeArticleCard.java b/app/src/main/java/edu/grinnell/grinnell_publications_android/Controllers/Cards/LargeArticleCard.java
new file mode 100644
index 0000000..18253cd
--- /dev/null
+++ b/app/src/main/java/edu/grinnell/grinnell_publications_android/Controllers/Cards/LargeArticleCard.java
@@ -0,0 +1,21 @@
+package edu.grinnell.grinnell_publications_android.Controllers.Cards;
+
+import edu.grinnell.grinnell_publications_android.Controllers.RecyclerItem;
+import edu.grinnell.grinnell_publications_android.R;
+
+/**
+ *
+ */
+public class LargeArticleCard extends RecyclerItem {
+
+ public static final int LARGE_ARTICLE = R.layout.card_article_large;
+
+ String title;
+
+ public LargeArticleCard() {
+ super(LARGE_ARTICLE);
+ title = "This is a Large Article";
+ }
+
+
+}
diff --git a/app/src/main/java/edu/grinnell/grinnell_publications_android/Controllers/Cards/LargeArticleHolder.java b/app/src/main/java/edu/grinnell/grinnell_publications_android/Controllers/Cards/LargeArticleHolder.java
new file mode 100644
index 0000000..a35e659
--- /dev/null
+++ b/app/src/main/java/edu/grinnell/grinnell_publications_android/Controllers/Cards/LargeArticleHolder.java
@@ -0,0 +1,30 @@
+package edu.grinnell.grinnell_publications_android.Controllers.Cards;
+
+import android.app.Activity;
+import android.view.View;
+import android.widget.TextView;
+
+import butterknife.Bind;
+import butterknife.ButterKnife;
+import edu.grinnell.grinnell_publications_android.Controllers.RecyclerViewHolder;
+import edu.grinnell.grinnell_publications_android.R;
+
+/**
+ */
+public class LargeArticleHolder extends RecyclerViewHolder {
+
+ @Bind(R.id.tv_article_title)
+ TextView title;
+
+ public LargeArticleHolder(View itemView) {
+ super(itemView);
+ }
+
+
+ @Override
+ public void bindView(LargeArticleCard largeArticleCard, Activity activity) {
+ ButterKnife.bind(activity);
+
+ title.setText(largeArticleCard.title);
+ }
+}
diff --git a/app/src/main/java/edu/grinnell/grinnell_publications_android/Controllers/Cards/SmallArticleCard.java b/app/src/main/java/edu/grinnell/grinnell_publications_android/Controllers/Cards/SmallArticleCard.java
new file mode 100644
index 0000000..cc4c7a6
--- /dev/null
+++ b/app/src/main/java/edu/grinnell/grinnell_publications_android/Controllers/Cards/SmallArticleCard.java
@@ -0,0 +1,19 @@
+package edu.grinnell.grinnell_publications_android.Controllers.Cards;
+
+import edu.grinnell.grinnell_publications_android.Controllers.RecyclerItem;
+import edu.grinnell.grinnell_publications_android.R;
+
+/**
+ *
+ */
+public class SmallArticleCard extends RecyclerItem {
+
+ public static final int SMALL_ARTICLE = R.layout.card_article_small;
+ String title;
+
+ public SmallArticleCard() {
+ super(SMALL_ARTICLE);
+ title = "This is a Small Article";
+ }
+
+}
diff --git a/app/src/main/java/edu/grinnell/grinnell_publications_android/Controllers/Cards/SmallArticleHolder.java b/app/src/main/java/edu/grinnell/grinnell_publications_android/Controllers/Cards/SmallArticleHolder.java
new file mode 100644
index 0000000..42c8de5
--- /dev/null
+++ b/app/src/main/java/edu/grinnell/grinnell_publications_android/Controllers/Cards/SmallArticleHolder.java
@@ -0,0 +1,29 @@
+package edu.grinnell.grinnell_publications_android.Controllers.Cards;
+
+import android.app.Activity;
+import android.view.View;
+import android.widget.TextView;
+
+import butterknife.Bind;
+import butterknife.ButterKnife;
+import edu.grinnell.grinnell_publications_android.Controllers.RecyclerViewHolder;
+import edu.grinnell.grinnell_publications_android.R;
+
+/**
+ *
+ */
+public class SmallArticleHolder extends RecyclerViewHolder {
+ @Bind(R.id.tv_article_title)
+ TextView title;
+
+ public SmallArticleHolder(View itemView) {
+ super(itemView);
+ }
+
+ @Override
+ public void bindView(SmallArticleCard smallArticleCard, Activity activity) {
+ ButterKnife.bind(activity);
+
+ title.setText(smallArticleCard.title);
+ }
+}
diff --git a/app/src/main/java/edu/grinnell/grinnell_publications_android/Controllers/MainRecyclerViewAdapter.java b/app/src/main/java/edu/grinnell/grinnell_publications_android/Controllers/MainRecyclerViewAdapter.java
new file mode 100644
index 0000000..0ef15a4
--- /dev/null
+++ b/app/src/main/java/edu/grinnell/grinnell_publications_android/Controllers/MainRecyclerViewAdapter.java
@@ -0,0 +1,71 @@
+package edu.grinnell.grinnell_publications_android.Controllers;
+
+import android.app.Activity;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.ViewGroup;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import edu.grinnell.grinnell_publications_android.Controllers.Cards.LargeArticleCard;
+import edu.grinnell.grinnell_publications_android.Controllers.Cards.LargeArticleHolder;
+import edu.grinnell.grinnell_publications_android.Controllers.Cards.SmallArticleCard;
+import edu.grinnell.grinnell_publications_android.Controllers.Cards.SmallArticleHolder;
+
+/**
+ *
+ */
+public class MainRecyclerViewAdapter extends RecyclerView.Adapter {
+
+ private List data;
+ private Activity activity;
+
+ public MainRecyclerViewAdapter(Activity activity) {
+ this.data = new ArrayList<>();
+ this.activity = activity;
+ }
+
+ /**
+ * Update the data for the recycler view
+ *
+ * @param data a list of recycler items that will populate the recycler view
+ */
+ public void setData(List data) {
+ this.data = data;
+ notifyDataSetChanged();
+ }
+
+
+ @Override
+ public RecyclerViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+ LayoutInflater li = activity.getLayoutInflater();
+ RecyclerViewHolder holder;
+ switch (viewType) {
+ case SmallArticleCard.SMALL_ARTICLE:
+ holder = new SmallArticleHolder(li.inflate(SmallArticleCard.SMALL_ARTICLE, parent));
+ break;
+ case LargeArticleCard.LARGE_ARTICLE:
+ holder = new LargeArticleHolder(li.inflate(LargeArticleCard.LARGE_ARTICLE, parent));
+ break;
+ default:
+ holder = null;
+ }
+ return holder;
+ }
+
+ @Override
+ public void onBindViewHolder(RecyclerViewHolder holder, int position) {
+ holder.bindView(data.get(position), activity);
+ }
+
+ @Override
+ public int getItemCount() {
+ return 0;
+ }
+
+ @Override
+ public int getItemViewType(int position) {
+ return data.get(position).getViewType();
+ }
+}
diff --git a/app/src/main/java/edu/grinnell/grinnell_publications_android/Controllers/RecyclerItem.java b/app/src/main/java/edu/grinnell/grinnell_publications_android/Controllers/RecyclerItem.java
new file mode 100644
index 0000000..5c05dc0
--- /dev/null
+++ b/app/src/main/java/edu/grinnell/grinnell_publications_android/Controllers/RecyclerItem.java
@@ -0,0 +1,25 @@
+package edu.grinnell.grinnell_publications_android.Controllers;
+
+/**
+ *
+ */
+public abstract class RecyclerItem {
+
+ private int viewType;
+
+ /**
+ * Constructor
+ *
+ * @param layoutId the integer identifier for the view type.
+ * Use the resource id of the layout as the view type.
+ */
+ public RecyclerItem(int layoutId) {
+ this.viewType = layoutId;
+
+ }
+
+ public int getViewType() {
+ return viewType;
+ }
+
+}
diff --git a/app/src/main/java/edu/grinnell/grinnell_publications_android/Controllers/RecyclerViewHolder.java b/app/src/main/java/edu/grinnell/grinnell_publications_android/Controllers/RecyclerViewHolder.java
new file mode 100644
index 0000000..ad32814
--- /dev/null
+++ b/app/src/main/java/edu/grinnell/grinnell_publications_android/Controllers/RecyclerViewHolder.java
@@ -0,0 +1,33 @@
+package edu.grinnell.grinnell_publications_android.Controllers;
+
+import android.app.Activity;
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+
+
+/**
+ *
+ */
+public abstract class RecyclerViewHolder extends RecyclerView.ViewHolder{
+
+
+ public RecyclerViewHolder(View itemView) {
+ super(itemView);
+ }
+
+ /**
+ * Getter for the itemView from the super class
+ * @return the itemView for the recycler item
+ */
+ public View getItemView() {
+ return super.itemView;
+ }
+
+ /**
+ *
+ * @param recyclerItem
+ * @param activity
+ */
+ public abstract void bindView(T recyclerItem, Activity activity);
+
+}
diff --git a/app/src/main/res/layout/card_article_large.xml b/app/src/main/res/layout/card_article_large.xml
new file mode 100644
index 0000000..0611c7d
--- /dev/null
+++ b/app/src/main/res/layout/card_article_large.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/card_article_small.xml b/app/src/main/res/layout/card_article_small.xml
new file mode 100644
index 0000000..d8014b3
--- /dev/null
+++ b/app/src/main/res/layout/card_article_small.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values-w820dp/dimens.xml b/app/src/main/res/values-w820dp/dimens.xml
deleted file mode 100644
index 63fc816..0000000
--- a/app/src/main/res/values-w820dp/dimens.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
- 64dp
-
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
index eb10e23..fd659ee 100644
--- a/app/src/main/res/values/dimens.xml
+++ b/app/src/main/res/values/dimens.xml
@@ -5,4 +5,7 @@
76dp
76dp
+ 12dp
+ 16sp
+
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 379ac96..f90ecdc 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -12,5 +12,12 @@
+
+
+