diff --git a/MemeifyMe/.idea/compiler.xml b/MemeifyMe/.idea/compiler.xml
index 9a8b7e5..217af47 100644
--- a/MemeifyMe/.idea/compiler.xml
+++ b/MemeifyMe/.idea/compiler.xml
@@ -19,4 +19,5 @@
-
\ No newline at end of file
+
+
diff --git a/MemeifyMe/.idea/gradle.xml b/MemeifyMe/.idea/gradle.xml
index 0833b17..19e6f2f 100644
--- a/MemeifyMe/.idea/gradle.xml
+++ b/MemeifyMe/.idea/gradle.xml
@@ -6,7 +6,6 @@
-
-
\ No newline at end of file
+
+
diff --git a/MemeifyMe/.idea/misc.xml b/MemeifyMe/.idea/misc.xml
index dae7a60..58ff01f 100644
--- a/MemeifyMe/.idea/misc.xml
+++ b/MemeifyMe/.idea/misc.xml
@@ -3,46 +3,9 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -59,4 +22,5 @@
-
\ No newline at end of file
+
+
diff --git a/MemeifyMe/.idea/modules.xml b/MemeifyMe/.idea/modules.xml
index 7951a6a..a663284 100644
--- a/MemeifyMe/.idea/modules.xml
+++ b/MemeifyMe/.idea/modules.xml
@@ -6,4 +6,5 @@
-
\ No newline at end of file
+
+
diff --git a/MemeifyMe/.idea/vcs.xml b/MemeifyMe/.idea/vcs.xml
index 6c0b863..21cbaa6 100644
--- a/MemeifyMe/.idea/vcs.xml
+++ b/MemeifyMe/.idea/vcs.xml
@@ -3,4 +3,5 @@
-
\ No newline at end of file
+
+
diff --git a/MemeifyMe/MemeifyMe.iml b/MemeifyMe/MemeifyMe.iml
deleted file mode 100644
index 8d18faa..0000000
--- a/MemeifyMe/MemeifyMe.iml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/MemeifyMe/app/app.iml b/MemeifyMe/app/app.iml
deleted file mode 100644
index 6431d4a..0000000
--- a/MemeifyMe/app/app.iml
+++ /dev/null
@@ -1,97 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- generateDebugAndroidTestSources
- generateDebugSources
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/MemeifyMe/app/build.gradle b/MemeifyMe/app/build.gradle
index 894550d..97755bf 100644
--- a/MemeifyMe/app/build.gradle
+++ b/MemeifyMe/app/build.gradle
@@ -22,4 +22,7 @@ android {
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.1.1'
+ compile 'com.j256.ormlite:ormlite-android:4.48'
+ compile 'com.jakewharton:butterknife:7.0.1'
+
}
diff --git a/MemeifyMe/app/src/main/java/accesscode/c4q/nyc/memeifyme/DatabaseOpenHelper.java b/MemeifyMe/app/src/main/java/accesscode/c4q/nyc/memeifyme/DatabaseOpenHelper.java
new file mode 100644
index 0000000..53669ea
--- /dev/null
+++ b/MemeifyMe/app/src/main/java/accesscode/c4q/nyc/memeifyme/DatabaseOpenHelper.java
@@ -0,0 +1,81 @@
+package accesscode.c4q.nyc.memeifyme;
+
+import android.content.Context;
+import android.database.SQLException;
+import android.database.sqlite.SQLiteDatabase;
+
+import com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper;
+import com.j256.ormlite.support.ConnectionSource;
+import com.j256.ormlite.table.TableUtils;
+
+/**
+ * Created by c4q-joshelynvivas on 7/23/15.
+ */
+public class DatabaseOpenHelper extends OrmLiteSqliteOpenHelper {
+ private static final String MYDB = "mydb.db";
+ private static final int VERSION = 1;
+
+ //This is the constructor that is called by mHelper
+ private static DatabaseOpenHelper mHelper;
+
+ //It will evaluate if there is a database, and the version number
+ private DatabaseOpenHelper(Context context) {
+ super(context, MYDB, null, VERSION);
+ }
+
+ //This ensures there is only one helper in this class. We must prevent it from the MainActivity.
+ //Hence, this will create a helper ONLY if there isn't one already
+ public static DatabaseOpenHelper getInstance(Context context){
+ if (mHelper == null) {
+ mHelper = new DatabaseOpenHelper(context.getApplicationContext());
+ }
+ return mHelper;
+ }
+
+ @Override
+ public void onCreate(SQLiteDatabase database, ConnectionSource connectionSource) {
+
+ //We don't make the column. A class will do that for us based called TemplateMeme class
+
+ try {
+ TableUtils.createTable(connectionSource, TemplateMeme.class);
+ } catch (SQLException e) {
+ e.printStackTrace();
+ } catch (java.sql.SQLException e) {
+ e.printStackTrace();
+ }
+ }
+
+ @Override
+ public void onUpgrade(SQLiteDatabase database, ConnectionSource connectionSource, int oldVersion, int newVersion) {
+
+ //If the table exists, it will delete the entire table and then create it again.
+ //Then it will call onCreate to make the table
+
+ try {
+ TableUtils.dropTable(connectionSource, TemplateMeme.class, true);
+ onCreate(database, connectionSource);
+ } catch (SQLException e) {
+ e.printStackTrace();
+ } catch (java.sql.SQLException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public void insertRow(int picture) {
+
+ //Create instance of TemplateMeme
+ TemplateMeme meme = new TemplateMeme(picture);
+
+ try {
+ getDao(TemplateMeme.class).create(meme);
+ } catch (SQLException e) {
+ e.printStackTrace();
+ } catch (java.sql.SQLException e) {
+ e.printStackTrace();
+ }
+
+
+ }
+
+}
diff --git a/MemeifyMe/app/src/main/java/accesscode/c4q/nyc/memeifyme/MainActivity.java b/MemeifyMe/app/src/main/java/accesscode/c4q/nyc/memeifyme/MainActivity.java
index 72cf14b..43a32fe 100644
--- a/MemeifyMe/app/src/main/java/accesscode/c4q/nyc/memeifyme/MainActivity.java
+++ b/MemeifyMe/app/src/main/java/accesscode/c4q/nyc/memeifyme/MainActivity.java
@@ -34,7 +34,7 @@ public void onClick(View view) {
startActivity(gallery);
break;
case R.id.btn_template:
- Intent template = new Intent(this, Template.class);
+ Intent template = new Intent(this, TemplateActivity.class);
startActivity(template);
break;
case R.id.btn_doge:
diff --git a/MemeifyMe/app/src/main/java/accesscode/c4q/nyc/memeifyme/Template.java b/MemeifyMe/app/src/main/java/accesscode/c4q/nyc/memeifyme/Template.java
deleted file mode 100644
index b28ab89..0000000
--- a/MemeifyMe/app/src/main/java/accesscode/c4q/nyc/memeifyme/Template.java
+++ /dev/null
@@ -1,235 +0,0 @@
-package accesscode.c4q.nyc.memeifyme;
-
-import android.app.AlertDialog;
-import android.app.Dialog;
-import android.content.DialogInterface;
-import android.content.Intent;
-import android.graphics.Bitmap;
-import android.graphics.Typeface;
-import android.graphics.drawable.Drawable;
-import android.net.Uri;
-import android.os.Bundle;
-import android.os.Environment;
-import android.provider.MediaStore;
-import android.support.v7.app.ActionBarActivity;
-import android.view.View;
-import android.widget.AdapterView;
-import android.widget.ArrayAdapter;
-import android.widget.Button;
-import android.widget.CompoundButton;
-import android.widget.EditText;
-import android.widget.FrameLayout;
-import android.widget.ImageView;
-import android.widget.Spinner;
-import android.widget.TextView;
-import android.widget.Toast;
-import android.widget.ToggleButton;
-import android.widget.ViewSwitcher;
-
-
-public class Template extends ActionBarActivity {
- private Spinner drop;
- private ViewSwitcher switcher;
- private ImageView camera_image_vanilla, camera_image_demotivational;
- private TextView caption_top_vanilla, caption_top_demotivational, caption_bottom_vanilla, caption_bottom_demotivational;
- private Button btn_save, btn_share;
- private ToggleButton toggle;
- private Bitmap photo;
- private static final String photoSave = "photo";
-
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_template);
-
- initializeViews();
- setTypeAssets();
-
- // Set up spinner and set drawables on select
- ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.memeArray, android.R.layout.simple_spinner_item);
- adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
- drop.setAdapter(adapter);
- drop.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
- @Override
- public void onItemSelected(AdapterView> adapterView, View view, int i, long l) {
- String str = adapterView.getItemAtPosition(i).toString().toLowerCase();
- Drawable d;
- switch (str) {
- case "cool":
- d = getResources().getDrawable(R.drawable.cool);
- draw(d);
- break;
- case "yao ming":
- d = getResources().getDrawable(R.drawable.yaoming);
- draw(d);
- break;
- case "evil plotting raccoon":
- d = getResources().getDrawable(R.drawable.evilplottingraccoon);
- draw(d);
- break;
- case "philosoraptor":
- d = getResources().getDrawable(R.drawable.philosoraptor);
- draw(d);
- break;
- case "socially awkward penguin":
- d = getResources().getDrawable(R.drawable.sociallyawkwardpenguin);
- draw(d);
- break;
- case "success kid":
- d = getResources().getDrawable(R.drawable.successkid);
- draw(d);
- break;
- case "scumbag steve":
- d = getResources().getDrawable(R.drawable.scumbagsteve);
- draw(d);
- break;
- case "one does not simply":
- d = getResources().getDrawable(R.drawable.onedoesnotsimply);
- draw(d);
- break;
- case "i don't always":
- d = getResources().getDrawable(R.drawable.idontalways);
- draw(d);
- break;
- }
-
- }
-
- @Override
- public void onNothingSelected(AdapterView> adapterView) {
-
- }
- });
-
- // Listeners to pop-up dialog and get input
- caption_top_vanilla.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- myTextDialog(caption_top_vanilla).show();
- }
- });
-
- caption_bottom_vanilla.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- myTextDialog(caption_bottom_vanilla).show();
- }
- });
-
- caption_top_demotivational.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- myTextDialog(caption_top_demotivational).show();
- }
- });
-
- caption_bottom_demotivational.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- myTextDialog(caption_bottom_demotivational).show();
- }
- });
-
- //Used ViewSwitcher to toggle between vanilla and demotivational meme views
- toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
- @Override
- public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
- if (b)
- switcher.showNext();
- else
- switcher.showPrevious();
- }
- });
-
- btn_save.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- FrameLayout meme = (FrameLayout) findViewById(R.id.meme);
- SaveMeme sm = new SaveMeme();
- Bitmap bitmap = sm.loadBitmapFromView(meme);
- sm.saveMeme(bitmap, "meme", getContentResolver());
- sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" + Environment.getExternalStorageDirectory()))); // Dison is fixing this.
- Toast.makeText(getApplicationContext(), "Meme saved!", Toast.LENGTH_LONG).show();
- }
- });
-
- btn_share.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- FrameLayout meme = (FrameLayout) findViewById(R.id.meme);
- SaveMeme sm = new SaveMeme();
- Bitmap bitmap = sm.loadBitmapFromView(meme);
- sm.saveMeme(bitmap, "meme", getContentResolver());
-
- String pathBm = MediaStore.Images.Media.insertImage(getContentResolver(), bitmap, "meme", null);
- Uri bmUri = Uri.parse(pathBm);
-
- Intent attachIntent = new Intent(Intent.ACTION_SEND);
- attachIntent.putExtra(Intent.EXTRA_STREAM, bmUri);
- attachIntent.setType("image/png");
- startActivity(attachIntent);
- }
- });
- }
-
- public void draw(Drawable d) {
- camera_image_vanilla.setImageDrawable(d);
- camera_image_demotivational.setImageDrawable(d);
- }
-
-
- @Override
- public void onSaveInstanceState(Bundle outState) {
- super.onSaveInstanceState(outState);
- outState.putParcelable(photoSave, photo);
- }
-
- private void initializeViews() {
- drop = (Spinner) findViewById(R.id.sp);
- switcher = (ViewSwitcher) findViewById(R.id.switcher);
- camera_image_vanilla = (ImageView) findViewById(R.id.camera_image_vanilla);
- camera_image_demotivational = (ImageView) findViewById(R.id.camera_image_demotivational);
- caption_top_vanilla = (TextView) findViewById(R.id.caption_top_vanilla);
- caption_top_demotivational = (TextView) findViewById(R.id.caption_top_demotivational);
- caption_bottom_vanilla = (TextView) findViewById(R.id.caption_bottom_vanilla);
- caption_bottom_demotivational = (TextView) findViewById(R.id.caption_bottom_demotivational);
- btn_save = (Button) findViewById(R.id.btn_save);
- btn_share = (Button) findViewById(R.id.btn_share);
- toggle = (ToggleButton) findViewById(R.id.toggle);
- }
-
- private void setTypeAssets() {
- Typeface impact = Typeface.createFromAsset(getAssets(), "Impact.ttf");
- caption_top_vanilla.setTypeface(impact);
- caption_bottom_vanilla.setTypeface(impact);
-
- Typeface times = Typeface.createFromAsset(getAssets(), "TimesNewRoman.ttf");
- caption_top_demotivational.setTypeface(times);
- caption_bottom_demotivational.setTypeface(times);
- }
-
- private Dialog myTextDialog(final TextView tv) {
- final View layout = View.inflate(this, R.layout.dialog_edit_caption, null);
- final EditText et_input = (EditText) layout.findViewById(R.id.et_input);
-
- AlertDialog.Builder builder = new AlertDialog.Builder(this);
- builder.setIcon(0);
-
- builder.setPositiveButton(R.string.ok, new Dialog.OnClickListener() {
- public void onClick(DialogInterface dialog, int which) {
- // Set caption to inputted text
- String input = et_input.getText().toString().trim();
- tv.setText(input);
- }
- });
- builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int id) {
- // User cancelled the dialog
- dialog.cancel();
- }
- });
- builder.setView(layout);
- return builder.create();
- }
-}
\ No newline at end of file
diff --git a/MemeifyMe/app/src/main/java/accesscode/c4q/nyc/memeifyme/TemplateActivity.java b/MemeifyMe/app/src/main/java/accesscode/c4q/nyc/memeifyme/TemplateActivity.java
new file mode 100644
index 0000000..f589104
--- /dev/null
+++ b/MemeifyMe/app/src/main/java/accesscode/c4q/nyc/memeifyme/TemplateActivity.java
@@ -0,0 +1,345 @@
+package accesscode.c4q.nyc.memeifyme;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.database.SQLException;
+import android.os.AsyncTask;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.ImageView;
+import android.widget.ListView;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+public class TemplateActivity extends Activity {
+ public static String IMAGE_URI_KEY = "uri";
+ private ListView memeListView;
+ private String imageUri = "";
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_template_memes);
+
+
+ memeListView = (ListView) findViewById(R.id.meme_list_view);
+
+ new DatabaseTask().execute();
+
+ }
+
+ class MemeAdapter extends ArrayAdapter {
+ public MemeAdapter(Context context, List memeList) {
+ super(context, 0, memeList);
+ }
+
+ @Override
+ public View getView(int position, View convertView, ViewGroup parent) {
+ int singleMeme = getItem(position);
+ if (convertView == null) {
+ convertView = LayoutInflater.from(getContext()).inflate(R.layout.row_item, parent, false);
+ }
+ ImageView appIcon = (ImageView) convertView.findViewById(R.id.meme_thumb);
+ appIcon.setImageResource(singleMeme);
+ return convertView;
+ }
+ }
+ //All databases that require updating(add/remove) and fetching should happen in the background
+ private class DatabaseTask extends AsyncTask> {
+
+ @Override
+ protected List doInBackground(Void... params) {
+
+ //Include .getinstance because there is only ONE helper
+ DatabaseOpenHelper helper = DatabaseOpenHelper.getInstance(getApplicationContext());
+
+ try {
+ if (helper.getDao(TemplateMeme.class).queryForAll().size() == 0){
+
+ //Insert data here
+ helper.insertRow(R.drawable.cool);
+ helper.insertRow(R.drawable.evilplottingraccoon);
+ helper.insertRow(R.drawable.idontalways);
+ helper.insertRow(R.drawable.lolcat);
+ helper.insertRow(R.drawable.lolcat);
+ helper.insertRow(R.drawable.onedoesnotsimply);
+ helper.insertRow(R.drawable.philosoraptor);
+ helper.insertRow(R.drawable.scumbagsteve);
+ helper.insertRow(R.drawable.shibe);
+ helper.insertRow(R.drawable.sociallyawkwardpenguin);
+ helper.insertRow(R.drawable.successkid);
+ helper.insertRow(R.drawable.yaoming);
+ helper.insertRow(R.drawable.yuno);
+
+
+ }
+ return helper.getDao(TemplateMeme.class).queryForAll();
+ } catch (SQLException e) {
+ e.printStackTrace();
+ } catch (java.sql.SQLException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ @Override
+ protected void onPostExecute(List popMemes) {
+
+ //This adapter is specific to the TemplateActivity
+
+ List resources = new ArrayList<>();
+ for (TemplateMeme meme : popMemes) {resources.add(meme.getPicture());
+ }
+ MemeAdapter memeAdapter = new MemeAdapter(TemplateActivity.this, resources);
+ memeListView.setAdapter(memeAdapter);
+
+ memeListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+ @Override
+ public void onItemClick(AdapterView> parent, View view, int position, long id) {
+ int meme = (Integer) parent.getItemAtPosition(position);
+ Intent gotoPopMeme = new Intent(TemplateActivity.this, SaveMeme.class);
+ imageUri += meme;
+ gotoPopMeme.putExtra(IMAGE_URI_KEY, imageUri);
+ startActivity(gotoPopMeme);
+ }
+ });
+ }
+ }
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+// private Spinner drop;
+// private ViewSwitcher switcher;
+// private ImageView camera_image_vanilla, camera_image_demotivational;
+// private TextView caption_top_vanilla, caption_top_demotivational, caption_bottom_vanilla, caption_bottom_demotivational;
+// private Button btn_save, btn_share;
+// private ToggleButton toggle;
+// private Bitmap photo;
+// private static final String photoSave = "photo";
+//
+//
+// @Override
+// protected void onCreate(Bundle savedInstanceState) {
+// super.onCreate(savedInstanceState);
+// setContentView(R.layout.activity_template);
+//
+// initializeViews();
+// setTypeAssets();
+//
+// // Set up spinner and set drawables on select
+// ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.memeArray, android.R.layout.simple_spinner_item);
+// adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+// drop.setAdapter(adapter);
+// drop.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
+// @Override
+// public void onItemSelected(AdapterView> adapterView, View view, int i, long l) {
+// String str = adapterView.getItemAtPosition(i).toString().toLowerCase();
+// Drawable d;
+// if (str.equals("cool")) {
+// d = getResources().getDrawable(R.drawable.cool);
+// draw(d);
+//
+// } else if (str.equals("yao ming")) {
+// d = getResources().getDrawable(R.drawable.yaoming);
+// draw(d);
+//
+// } else if (str.equals("evil plotting raccoon")) {
+// d = getResources().getDrawable(R.drawable.evilplottingraccoon);
+// draw(d);
+//
+// } else if (str.equals("philosoraptor")) {
+// d = getResources().getDrawable(R.drawable.philosoraptor);
+// draw(d);
+//
+// } else if (str.equals("socially awkward penguin")) {
+// d = getResources().getDrawable(R.drawable.sociallyawkwardpenguin);
+// draw(d);
+//
+// } else if (str.equals("success kid")) {
+// d = getResources().getDrawable(R.drawable.successkid);
+// draw(d);
+//
+// } else if (str.equals("scumbag steve")) {
+// d = getResources().getDrawable(R.drawable.scumbagsteve);
+// draw(d);
+//
+// } else if (str.equals("one does not simply")) {
+// d = getResources().getDrawable(R.drawable.onedoesnotsimply);
+// draw(d);
+//
+// } else if (str.equals("i don't always")) {
+// d = getResources().getDrawable(R.drawable.idontalways);
+// draw(d);
+//
+// }
+//
+// }
+//
+// @Override
+// public void onNothingSelected(AdapterView> adapterView) {
+//
+// }
+// });
+//
+// // Listeners to pop-up dialog and get input
+// caption_top_vanilla.setOnClickListener(new View.OnClickListener() {
+// @Override
+// public void onClick(View view) {
+// myTextDialog(caption_top_vanilla).show();
+// }
+// });
+//
+// caption_bottom_vanilla.setOnClickListener(new View.OnClickListener() {
+// @Override
+// public void onClick(View view) {
+// myTextDialog(caption_bottom_vanilla).show();
+// }
+// });
+//
+// caption_top_demotivational.setOnClickListener(new View.OnClickListener() {
+// @Override
+// public void onClick(View view) {
+// myTextDialog(caption_top_demotivational).show();
+// }
+// });
+//
+// caption_bottom_demotivational.setOnClickListener(new View.OnClickListener() {
+// @Override
+// public void onClick(View view) {
+// myTextDialog(caption_bottom_demotivational).show();
+// }
+// });
+//
+// //Used ViewSwitcher to toggle between vanilla and demotivational meme views
+// toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+// @Override
+// public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
+// if (b)
+// switcher.showNext();
+// else
+// switcher.showPrevious();
+// }
+// });
+//
+// btn_save.setOnClickListener(new View.OnClickListener() {
+// @Override
+// public void onClick(View view) {
+// FrameLayout meme = (FrameLayout) findViewById(R.id.meme);
+// SaveMeme sm = new SaveMeme();
+// Bitmap bitmap = sm.loadBitmapFromView(meme);
+// sm.saveMeme(bitmap, "meme", getContentResolver());
+// sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" + Environment.getExternalStorageDirectory()))); // Dison is fixing this.
+// Toast.makeText(getApplicationContext(), "Meme saved!", Toast.LENGTH_LONG).show();
+// }
+// });
+//
+// btn_share.setOnClickListener(new View.OnClickListener() {
+// @Override
+// public void onClick(View view) {
+// FrameLayout meme = (FrameLayout) findViewById(R.id.meme);
+// SaveMeme sm = new SaveMeme();
+// Bitmap bitmap = sm.loadBitmapFromView(meme);
+// sm.saveMeme(bitmap, "meme", getContentResolver());
+//
+// String pathBm = MediaStore.Images.Media.insertImage(getContentResolver(), bitmap, "meme", null);
+// Uri bmUri = Uri.parse(pathBm);
+//
+// Intent attachIntent = new Intent(Intent.ACTION_SEND);
+// attachIntent.putExtra(Intent.EXTRA_STREAM, bmUri);
+// attachIntent.setType("image/png");
+// startActivity(attachIntent);
+// }
+// });
+// }
+//
+// public void draw(Drawable d) {
+// camera_image_vanilla.setImageDrawable(d);
+// camera_image_demotivational.setImageDrawable(d);
+// }
+//
+//
+// @Override
+// public void onSaveInstanceState(Bundle outState) {
+// super.onSaveInstanceState(outState);
+// outState.putParcelable(photoSave, photo);
+// }
+//
+// private void initializeViews() {
+// drop = (Spinner) findViewById(R.id.sp);
+// switcher = (ViewSwitcher) findViewById(R.id.switcher);
+// camera_image_vanilla = (ImageView) findViewById(R.id.camera_image_vanilla);
+// camera_image_demotivational = (ImageView) findViewById(R.id.camera_image_demotivational);
+// caption_top_vanilla = (TextView) findViewById(R.id.caption_top_vanilla);
+// caption_top_demotivational = (TextView) findViewById(R.id.caption_top_demotivational);
+// caption_bottom_vanilla = (TextView) findViewById(R.id.caption_bottom_vanilla);
+// caption_bottom_demotivational = (TextView) findViewById(R.id.caption_bottom_demotivational);
+// btn_save = (Button) findViewById(R.id.btn_save);
+// btn_share = (Button) findViewById(R.id.btn_share);
+// toggle = (ToggleButton) findViewById(R.id.toggle);
+// }
+//
+// private void setTypeAssets() {
+// Typeface impact = Typeface.createFromAsset(getAssets(), "Impact.ttf");
+// caption_top_vanilla.setTypeface(impact);
+// caption_bottom_vanilla.setTypeface(impact);
+//
+// Typeface times = Typeface.createFromAsset(getAssets(), "TimesNewRoman.ttf");
+// caption_top_demotivational.setTypeface(times);
+// caption_bottom_demotivational.setTypeface(times);
+// }
+//
+// private Dialog myTextDialog(final TextView tv) {
+// final View layout = View.inflate(this, R.layout.dialog_edit_caption, null);
+// final EditText et_input = (EditText) layout.findViewById(R.id.et_input);
+//
+// AlertDialog.Builder builder = new AlertDialog.Builder(this);
+// builder.setIcon(0);
+//
+// builder.setPositiveButton(R.string.ok, new Dialog.OnClickListener() {
+// public void onClick(DialogInterface dialog, int which) {
+// // Set caption to inputted text
+// String input = et_input.getText().toString().trim();
+// tv.setText(input);
+// }
+// });
+// builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
+// public void onClick(DialogInterface dialog, int id) {
+// // User cancelled the dialog
+// dialog.cancel();
+// }
+// });
+// builder.setView(layout);
+// return builder.create();
+// }
+//}
\ No newline at end of file
diff --git a/MemeifyMe/app/src/main/java/accesscode/c4q/nyc/memeifyme/TemplateMeme.java b/MemeifyMe/app/src/main/java/accesscode/c4q/nyc/memeifyme/TemplateMeme.java
new file mode 100644
index 0000000..3946d64
--- /dev/null
+++ b/MemeifyMe/app/src/main/java/accesscode/c4q/nyc/memeifyme/TemplateMeme.java
@@ -0,0 +1,47 @@
+package accesscode.c4q.nyc.memeifyme;
+
+import com.j256.ormlite.field.DatabaseField;
+import com.j256.ormlite.table.DatabaseTable;
+
+/**
+ *
+ * Created by c4q-joshelynvivas on 7/23/15.
+ *
+ * Create a table for the TemplateMeme using ORMLite
+ *
+ */
+
+@DatabaseTable
+public class TemplateMeme {
+
+ @DatabaseField(generatedId = true) //Id is automatically generated for us
+ private int id;
+
+ @DatabaseField
+ private int picture;
+
+ public TemplateMeme() {
+ }
+
+ public TemplateMeme(int picture) {
+ this.picture = picture;
+ }
+
+ public int getId() {
+
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public int getPicture() {
+ return picture;
+ }
+
+ public void setPicture(int picture) {
+ this.picture = picture;
+ }
+
+}
diff --git a/MemeifyMe/app/src/main/res/layout/activity_template_memes.xml b/MemeifyMe/app/src/main/res/layout/activity_template_memes.xml
new file mode 100644
index 0000000..1e58b06
--- /dev/null
+++ b/MemeifyMe/app/src/main/res/layout/activity_template_memes.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MemeifyMe/app/src/main/res/layout/row_item.xml b/MemeifyMe/app/src/main/res/layout/row_item.xml
new file mode 100644
index 0000000..45c3cad
--- /dev/null
+++ b/MemeifyMe/app/src/main/res/layout/row_item.xml
@@ -0,0 +1,13 @@
+
+
+
+
\ No newline at end of file