package new1.new1;

import java.sql.Date;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.text.format.DateFormat;
import android.util.Log;
import android.widget.DatePicker;
import android.widget.DatePicker;
public class DBAdapter {
	
	private static final String TAG = "DBAdapter";
	public static final String KEY_DATA_ID = "DATA_ID";
	public static final String KEY_PHOTO = "PHOTO";
	public static final String KEY_NOTE = "NOTE";
	public static final String KEY_TIME = "TIME";
	public static final String KEY_DATE = "DATE";
	public static final String KEY_X_CORD = "Y_CORD";
	public static final String KEY_Y_CORD = "X_CORD";
	public static final String KEY_DATA_TYPE = "DATA_ITEM_TYPE";

	private static final String DATABASE_NAME = "simpledatabase";
	private static final String DATABASE_TABLE = "photo_note_master";
	private static final int DATABASE_VERSION = 1;
DatePicker d;
	private static final String DATABASE_CREATE = "create table photo_note_master(DATA_ID integer primary key autoincrement, "
			+ "PHOTO text ,NOTE text, "
			+ "TIME text,DATE text,X_CORD text,Y_CORD text,DATA_ITEM_TYPE text);";

	private final Context context;

	private DatabaseHelper DBHelper;
	private SQLiteDatabase db;

	public DBAdapter(Context ctx) {
		this.context = ctx;
		DBHelper = new DatabaseHelper(context);
	}

	private static class DatabaseHelper extends SQLiteOpenHelper {
		DatabaseHelper(Context context) {
			super(context, DATABASE_NAME, null, DATABASE_VERSION);
		}

		@Override
		public void onCreate(SQLiteDatabase db) {
			db.execSQL(DATABASE_CREATE);
		}

		@Override
		public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
			Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
					+ newVersion + ", which will destroy all old data");
			db.execSQL("DROP TABLE IF EXISTS titles");
			onCreate(db);
		}
	}

	// ---opens the database---
	public DBAdapter open() throws SQLException {
		db = DBHelper.getWritableDatabase();
		return this;
	}

	// ---closes the database---
	public void close() {
		DBHelper.close();
	
	}

	// ---insert a title into the database---
	public long insertdata(String photo, String note, String time,
			String date, String x_cord, String y_cord, String type) {
		ContentValues initialValues = new ContentValues();

		initialValues.put("PHOTO", photo);
		initialValues.put("NOTE", note);
		initialValues.put("TIME", time);
		initialValues.put("DATE", date);
		initialValues.put("X_CORD", x_cord);
		initialValues.put("Y_CORD", y_cord);
		initialValues.put("DATA_ITEM_TYPE", type);
		return db.insert(DATABASE_TABLE, null, initialValues);
	}
	//insert new note only
	public long insertnewnote(String note, String time,
			String date, String x_cord, String y_cord, String type) {
		ContentValues initialValues = new ContentValues();
		initialValues.put("NOTE", note);
		initialValues.put("TIME", time);
		initialValues.put("DATE", date);
		initialValues.put("X_CORD", x_cord);
		initialValues.put("Y_CORD", y_cord);
		initialValues.put("DATA_ITEM_TYPE", type);
		return db.insert(DATABASE_TABLE, null, initialValues);
	}
	//insert new note only
	public long insertnewphoto(String photo, String time,
			String date, String x_cord, String y_cord, String type) {
		ContentValues initialValues = new ContentValues();

		initialValues.put("PHOTO", photo);
		initialValues.put("TIME", time);
		initialValues.put("DATE", date);
		initialValues.put("X_CORD", x_cord);
		initialValues.put("Y_CORD", y_cord);
		initialValues.put("DATA_ITEM_TYPE", "photo");
		return db.insert(DATABASE_TABLE, null, initialValues);
	}
	
	//insert update note
	public Boolean updatenote(String note,int id1) 
	{
		ContentValues initialValues = new ContentValues();

		initialValues.put("NOTE", note);
		initialValues.put("DATA_ITEM_TYPE", "photo_text");
		return db.update(DATABASE_TABLE, initialValues, KEY_DATA_ID + "=" + id1 , null) > 0;
	}
	//updata photo
	public Boolean updatephoto(String photo,int id1,String time,
			String date, String x_cord, String y_cord, String type) 
	{
		ContentValues initialValues = new ContentValues();

		initialValues.put("PHOTO", photo);
		initialValues.put("TIME", time);
		initialValues.put("DATE", date);
		initialValues.put("X_CORD", x_cord);
		initialValues.put("Y_CORD", y_cord);
		initialValues.put("DATA_ITEM_TYPE", type);
		return db.update(DATABASE_TABLE, initialValues, KEY_DATA_ID + "=" + id1 , null) > 0;
	}
	
	
	
	// ---deletes a particular data---
	public boolean deletedata(long rowId) {
		return db.delete(DATABASE_TABLE, KEY_DATA_ID + "=" + rowId, null) > 0;
	}

	// ---retrieves all the data---
	public Cursor getAlldata() {
		return db.query(DATABASE_TABLE, new String[] { KEY_DATA_ID, KEY_PHOTO,
				KEY_NOTE, KEY_TIME, KEY_DATE, KEY_X_CORD, KEY_Y_CORD,
				KEY_DATA_TYPE }, null, null, null, null, null);
	}

	// ---retrieves a particular data--
	public Cursor getdata(long rowId) throws SQLException {
		Cursor mCursor = db.query(true, DATABASE_TABLE, new String[] {
				KEY_DATA_ID, KEY_PHOTO,
				KEY_NOTE, KEY_TIME, KEY_DATE, KEY_X_CORD, KEY_Y_CORD,
				KEY_DATA_TYPE }, KEY_DATA_ID
				+ "=" + rowId, null, null, null, null, null);
		if (mCursor != null) {
			mCursor.moveToFirst();
		}
		return mCursor;
	}

	// ---updates a title---
	public boolean updatenote(long rowId, String n) {
		ContentValues args = new ContentValues();
		args.put(KEY_NOTE, n);
		return db.update(DATABASE_TABLE, args, KEY_DATA_ID + "=" + rowId, null) > 0;
	}
	
	//update photo
	public boolean updatephoto(long rowId, String n) {
		ContentValues args = new ContentValues();
		args.put(KEY_PHOTO, n);
		args.put(KEY_TIME,n);
		args.put(KEY_DATE, n);
		return db.update(DATABASE_TABLE, args, KEY_DATA_ID + "=" + rowId, null) > 0;
	}
	

	// get data from id
	public Cursor getdata(int id1) {
		return db.rawQuery("select * from photo_note_master where DATA_ID="
				+ id1, null);
	}
//get last max id
	public Cursor getmaxid() {
		Cursor c = db.rawQuery("select MAX(DATA_ID) from photo_note_master", null);
	return c;
	}

}

