diff --git a/app/src/main/java/meme5/c4q/nyc/meme_project/Contact.java b/app/src/main/java/meme5/c4q/nyc/meme_project/Contact.java new file mode 100644 index 0000000..679d016 --- /dev/null +++ b/app/src/main/java/meme5/c4q/nyc/meme_project/Contact.java @@ -0,0 +1,62 @@ +package meme5.c4q.nyc.meme_project; + +/** + * Created by c4q-tashasmith on 7/16/15. + */ + +public class Contact { + + // private variables + int _id; + String _name; + byte[] _image; + + // Empty constructor + public Contact() { + + } + + // constructor + public Contact(int keyId, String name, byte[] image) { + this._id = keyId; + this._name = name; + this._image = image; + + } + + // constructor + public Contact(String name, byte[] image) { + this._name = name; + this._image = image; + } + + // getting ID + public int getID() { + return this._id; + } + + // setting id + public void setID(int keyId) { + this._id = keyId; + } + + // getting name + public String getName() { + return this._name; + } + + // setting name + public void setName(String name) { + this._name = name; + } + + // getting phone number + public byte[] getImage() { + return this._image; + } + + // setting phone number + public void setImage(byte[] image) { + this._image = image; + } +} \ No newline at end of file diff --git a/app/src/main/java/meme5/c4q/nyc/meme_project/ContactImageAdapter.java b/app/src/main/java/meme5/c4q/nyc/meme_project/ContactImageAdapter.java new file mode 100644 index 0000000..02c417d --- /dev/null +++ b/app/src/main/java/meme5/c4q/nyc/meme_project/ContactImageAdapter.java @@ -0,0 +1,62 @@ +package meme5.c4q.nyc.meme_project; + +/** + * Created by c4q-tashasmith on 7/16/15. + */ +import java.io.ByteArrayInputStream; +import java.util.ArrayList; + +import android.app.Activity; +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; + +public class ContactImageAdapter extends ArrayAdapter{ + Context context; + int layoutResourceId; + ArrayList data=new ArrayList(); + public ContactImageAdapter(Context context, int layoutResourceId, ArrayList data) { + super(context, layoutResourceId, data); + this.layoutResourceId = layoutResourceId; + this.context = context; + this.data = data; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + View row = convertView; + ImageHolder holder = null; + if(row == null) + { + LayoutInflater inflater = ((Activity)context).getLayoutInflater(); + row = inflater.inflate(layoutResourceId, parent, false); + holder = new ImageHolder(); + holder.txtTitle = (TextView)row.findViewById(R.id.txtTitle); + holder.imgIcon = (ImageView)row.findViewById(R.id.imgIcon); + row.setTag(holder); + } + else + { + holder = (ImageHolder)row.getTag(); + } + Contact picture = data.get(position); + holder.txtTitle.setText(picture ._name); +//convert byte to bitmap take from contact class + byte[] outImage=picture._image; + ByteArrayInputStream imageStream = new ByteArrayInputStream(outImage); + Bitmap theImage = BitmapFactory.decodeStream(imageStream); + holder.imgIcon.setImageBitmap(theImage); + return row; + } + static class ImageHolder + { + ImageView imgIcon; + TextView txtTitle; + } +} \ No newline at end of file diff --git a/app/src/main/java/meme5/c4q/nyc/meme_project/DataBaseHandler.java b/app/src/main/java/meme5/c4q/nyc/meme_project/DataBaseHandler.java new file mode 100644 index 0000000..32e9710 --- /dev/null +++ b/app/src/main/java/meme5/c4q/nyc/meme_project/DataBaseHandler.java @@ -0,0 +1,148 @@ +package meme5.c4q.nyc.meme_project; + +/** + * Created by c4q-tashasmith on 7/16/15. + */ +import java.util.ArrayList; +import java.util.List; + +import android.content.ContentValues; +import android.content.Context; +import android.database.Cursor; +import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteOpenHelper; + +public class DataBaseHandler extends SQLiteOpenHelper { + + // All Static variables +// Database Version + private static final int DATABASE_VERSION = 1; + + // Database Name + private static final String DATABASE_NAME = "imagedb"; + + // Contacts table name + private static final String TABLE_CONTACTS = "contacts"; + + // Contacts Table Columns names + private static final String KEY_ID = "id"; + private static final String KEY_NAME = "name"; + private static final String KEY_IMAGE = "image"; + + public DataBaseHandler(Context context) { + super(context, DATABASE_NAME, null, DATABASE_VERSION); + } + + // Creating Tables + @Override + public void onCreate(SQLiteDatabase db) { + String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "(" + + KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT," + + KEY_IMAGE + " BLOB" + ")"; + db.execSQL(CREATE_CONTACTS_TABLE); + } + + // Upgrading database + @Override + public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { +// Drop older table if existed + db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTS); + +// Create tables again + onCreate(db); + } + + /** + * All CRUD(Create, Read, Update, Delete) Operations + */ + + public// Adding new contact + void addContact(Contact contact) { + SQLiteDatabase db = this.getWritableDatabase(); + + ContentValues values = new ContentValues(); + values.put(KEY_NAME, contact._name); // Contact Name + values.put(KEY_IMAGE, contact._image); // Contact Phone + +// Inserting Row + db.insert(TABLE_CONTACTS, null, values); + db.close(); // Closing database connection + } + + // Getting single contact + Contact getContact(int id) { + SQLiteDatabase db = this.getReadableDatabase(); + + Cursor cursor = db.query(TABLE_CONTACTS, new String[] { KEY_ID, + KEY_NAME, KEY_IMAGE }, KEY_ID + "=?", + new String[] { String.valueOf(id) }, null, null, null, null); + if (cursor != null) + cursor.moveToFirst(); + + Contact contact = new Contact(Integer.parseInt(cursor.getString(0)), + cursor.getString(1), cursor.getBlob(1)); + +// return contact + return contact; + + } + + // Getting All Contacts + public List getAllContacts() { + List contactList = new ArrayList(); +// Select All Query + String selectQuery = "SELECT * FROM contacts ORDER BY name"; + + SQLiteDatabase db = this.getWritableDatabase(); + Cursor cursor = db.rawQuery(selectQuery, null); +// looping through all rows and adding to list + if (cursor.moveToFirst()) { + do { + Contact contact = new Contact(); + contact.setID(Integer.parseInt(cursor.getString(0))); + contact.setName(cursor.getString(1)); + contact.setImage(cursor.getBlob(2)); +// Adding contact to list + contactList.add(contact); + } while (cursor.moveToNext()); + } +// close inserting data from database + db.close(); +// return contact list + return contactList; + + } + + // Updating single contact + public int updateContact(Contact contact) { + SQLiteDatabase db = this.getWritableDatabase(); + + ContentValues values = new ContentValues(); + values.put(KEY_NAME, contact.getName()); + values.put(KEY_IMAGE, contact.getImage()); + +// updating row + return db.update(TABLE_CONTACTS, values, KEY_ID + " = ?", + new String[] { String.valueOf(contact.getID()) }); + + } + + // Deleting single contact + public void deleteContact(Contact contact) { + SQLiteDatabase db = this.getWritableDatabase(); + db.delete(TABLE_CONTACTS, KEY_ID + " = ?", + new String[] { String.valueOf(contact.getID()) }); + db.close(); + } + + // Getting contacts Count + public int getContactsCount() { + String countQuery = "SELECT * FROM " + TABLE_CONTACTS; + SQLiteDatabase db = this.getReadableDatabase(); + Cursor cursor = db.rawQuery(countQuery, null); + cursor.close(); + +// return count + return cursor.getCount(); + } +} diff --git a/app/src/main/java/meme5/c4q/nyc/meme_project/ImageItem.java b/app/src/main/java/meme5/c4q/nyc/meme_project/ImageItem.java new file mode 100644 index 0000000..ea14e37 --- /dev/null +++ b/app/src/main/java/meme5/c4q/nyc/meme_project/ImageItem.java @@ -0,0 +1,33 @@ +package meme5.c4q.nyc.meme_project; + +import android.graphics.Bitmap; + +/** + * Created by c4q-tashasmith on 7/16/15. + */ +public class ImageItem { + private Bitmap image; + private String title; + + public ImageItem(Bitmap image, String title) { + super(); + this.image = image; + this.title = title; + } + + public Bitmap getImage() { + return image; + } + + public void setImage(Bitmap image) { + this.image = image; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } +} diff --git a/app/src/main/java/meme5/c4q/nyc/meme_project/MainActivity.java b/app/src/main/java/meme5/c4q/nyc/meme_project/MainActivity.java index 75eafdf..d8f5df4 100644 --- a/app/src/main/java/meme5/c4q/nyc/meme_project/MainActivity.java +++ b/app/src/main/java/meme5/c4q/nyc/meme_project/MainActivity.java @@ -1,28 +1,83 @@ package meme5.c4q.nyc.meme_project; import android.app.Activity; -import android.graphics.Typeface; +import android.content.res.TypedArray; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; import android.os.Bundle; -import android.widget.TextView; +import android.util.Log; +import android.widget.AdapterView; +import android.widget.GridView; import android.content.Intent; import android.database.Cursor; import android.net.Uri; import android.provider.MediaStore; -import android.os.Bundle; +import android.widget.ListView; import android.widget.Toast; import android.view.View; +import java.io.ByteArrayOutputStream; +import java.util.ArrayList; +import java.util.List; + public class MainActivity extends Activity { private static final int RESULT_LOAD_IMG = 1; private static final int REQUEST_IMAGE_CAPTURE = 1; private String imgFilePath; + ArrayList imageArry = new ArrayList(); + ContactImageAdapter adapter; + int [] image_array; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); - + DisplayImages(); } + + public void DisplayImages () { + +// image_array = getResources().getStringArray(R.array.meme_images); +// +// for (int i = 0; i < image_array.length; i++) { + + DataBaseHandler db = new DataBaseHandler(this); +// get image from drawable + Bitmap image = BitmapFactory.decodeResource(getResources(), + R.drawable.meme_db_2); + +// convert bitmap to byte + ByteArrayOutputStream stream = new ByteArrayOutputStream(); + image.compress(Bitmap.CompressFormat.JPEG, 100, stream); + byte imageInByte[] = stream.toByteArray(); +/** + * CRUD Operations + * */ +// Inserting Contacts + Log.d("Insert: ", "Inserting .."); + db.addContact(new Contact("FaceBook", imageInByte)); +// display main List view bcard and contact name + +// Reading all contacts from database + List contacts = db.getAllContacts(); + for (Contact cn : contacts) { + String log = "ID:" + cn.getID() + " Name: " + cn.getName() + + " ,Image: " + cn.getImage(); + +// Writing Contacts to log + Log.d("Result: ", log); +//add contacts data in arrayList + imageArry.add(cn); + + } + adapter = new ContactImageAdapter(this, R.layout.screen_list, + imageArry); + ListView dataList = (ListView) findViewById(R.id.list); + dataList.setAdapter(adapter); + + } + + private void launchChooseMeme(){ Intent chooseMeme = new Intent(this,ChooseMemeStyle.class); chooseMeme.putExtra("imgFilePath",imgFilePath); diff --git a/app/src/main/res/drawable/backrepeat.xml b/app/src/main/res/drawable/backrepeat.xml deleted file mode 100644 index efd5f25..0000000 --- a/app/src/main/res/drawable/backrepeat.xml +++ /dev/null @@ -1,5 +0,0 @@ - \ No newline at end of file diff --git a/app/src/main/res/drawable/binding_dark.png b/app/src/main/res/drawable/binding_dark.png deleted file mode 100644 index 2c69fa6..0000000 Binary files a/app/src/main/res/drawable/binding_dark.png and /dev/null differ diff --git a/app/src/main/res/drawable/black_seams.jpg b/app/src/main/res/drawable/black_seams.jpg deleted file mode 100644 index 1c5e9fe..0000000 Binary files a/app/src/main/res/drawable/black_seams.jpg and /dev/null differ diff --git a/app/src/main/res/drawable/carbon_fibre.png b/app/src/main/res/drawable/carbon_fibre.png deleted file mode 100644 index b450f20..0000000 Binary files a/app/src/main/res/drawable/carbon_fibre.png and /dev/null differ diff --git a/app/src/main/res/drawable/dark_exa.png b/app/src/main/res/drawable/dark_exa.png deleted file mode 100644 index d4cbf94..0000000 Binary files a/app/src/main/res/drawable/dark_exa.png and /dev/null differ diff --git a/app/src/main/res/drawable/grunge_paint.jpg b/app/src/main/res/drawable/grunge_paint.jpg deleted file mode 100644 index c222939..0000000 Binary files a/app/src/main/res/drawable/grunge_paint.jpg and /dev/null differ diff --git a/app/src/main/res/drawable/meme_db_1.jpg b/app/src/main/res/drawable/meme_db_1.jpg new file mode 100644 index 0000000..e0c0da9 Binary files /dev/null and b/app/src/main/res/drawable/meme_db_1.jpg differ diff --git a/app/src/main/res/drawable/meme_db_2.jpg b/app/src/main/res/drawable/meme_db_2.jpg new file mode 100644 index 0000000..d13a455 Binary files /dev/null and b/app/src/main/res/drawable/meme_db_2.jpg differ diff --git a/app/src/main/res/drawable/meme_db_3.jpg b/app/src/main/res/drawable/meme_db_3.jpg new file mode 100644 index 0000000..86e7bc4 Binary files /dev/null and b/app/src/main/res/drawable/meme_db_3.jpg differ diff --git a/app/src/main/res/drawable/meme_db_4.jpg b/app/src/main/res/drawable/meme_db_4.jpg new file mode 100644 index 0000000..f56187e Binary files /dev/null and b/app/src/main/res/drawable/meme_db_4.jpg differ diff --git a/app/src/main/res/drawable/meme_db_5.jpg b/app/src/main/res/drawable/meme_db_5.jpg new file mode 100644 index 0000000..407ccc8 Binary files /dev/null and b/app/src/main/res/drawable/meme_db_5.jpg differ diff --git a/app/src/main/res/drawable/meme_db_6.jpg b/app/src/main/res/drawable/meme_db_6.jpg new file mode 100644 index 0000000..e448ae3 Binary files /dev/null and b/app/src/main/res/drawable/meme_db_6.jpg differ diff --git a/app/src/main/res/drawable/meme_db_7.jpg b/app/src/main/res/drawable/meme_db_7.jpg new file mode 100644 index 0000000..f711060 Binary files /dev/null and b/app/src/main/res/drawable/meme_db_7.jpg differ diff --git a/app/src/main/res/drawable/shiny_squares.png b/app/src/main/res/drawable/shiny_squares.png deleted file mode 100644 index aad9ba5..0000000 Binary files a/app/src/main/res/drawable/shiny_squares.png and /dev/null differ diff --git a/app/src/main/res/drawable/splash.jpg b/app/src/main/res/drawable/splash.jpg deleted file mode 100644 index 982d382..0000000 Binary files a/app/src/main/res/drawable/splash.jpg and /dev/null differ diff --git a/app/src/main/res/drawable/splash_background.jpg b/app/src/main/res/drawable/splash_background.jpg deleted file mode 100644 index f17cca9..0000000 Binary files a/app/src/main/res/drawable/splash_background.jpg and /dev/null differ diff --git a/app/src/main/res/drawable/vanilla_test.png b/app/src/main/res/drawable/vanilla_test.png deleted file mode 100644 index d87b823..0000000 Binary files a/app/src/main/res/drawable/vanilla_test.png and /dev/null differ diff --git a/app/src/main/res/drawable/vanilla_test2.png b/app/src/main/res/drawable/vanilla_test2.png deleted file mode 100644 index a1820ba..0000000 Binary files a/app/src/main/res/drawable/vanilla_test2.png and /dev/null differ diff --git a/app/src/main/res/layout-land/activity_choose_meme_style.xml b/app/src/main/res/layout-land/activity_choose_meme_style.xml index 5cd25d3..c5888ce 100644 --- a/app/src/main/res/layout-land/activity_choose_meme_style.xml +++ b/app/src/main/res/layout-land/activity_choose_meme_style.xml @@ -3,7 +3,6 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" - android:background="@drawable/backrepeat" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index e0bf225..121318b 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -12,100 +12,150 @@ android:tileMode="repeat" tools:context=".MainActivity"> - + - - - - - - - - - - - - - - - - - - - - - - + android:orientation="vertical"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +