package com.classicharmony.speechzilla.utils;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
import com.classicharmony.speechzilla.models.TheNote;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;
/**
* Created by admin on 3/26/2015.
*/
public class DatabaseHelper extends SQLiteOpenHelper {
// Logcat tag
private static final String LOG = "mSQLITE";
// Database Version
private static final int DATABASE_VERSION = 1;
// Database Name
private static final String DATABASE_NAME = "notes_manager";
// Table Names
private static final String TABLE_Notes = "tablenotes";
// Common column names
private static final String KEY_ID = "id";
private static final String KEY_FULLTEXT = "full_text";
private static final String KEY_Locations_list = "locations";
private static final String KEY_Organizations_list = "organizations";
private static final String KEY_Keywords = "keywords";
private static final String KEY_CREATED_AT = "created_at";
private static final String CREATE_TABLE_Notes = "CREATE TABLE "
+ TABLE_Notes + "(" + KEY_ID + " INTEGER PRIMARY KEY," + KEY_FULLTEXT + " TEXT," + KEY_Locations_list
+ " TEXT," + KEY_Organizations_list + " TEXT," + KEY_Keywords + " TEXT," + KEY_CREATED_AT
+ " DATETIME" + ")";
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_TABLE_Notes);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + CREATE_TABLE_Notes);
// create new tables
onCreate(db);
}
public void createNote(TheNote note) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_FULLTEXT, note.getFull_text());
values.put(KEY_Locations_list, note.getLocation_list());
values.put(KEY_Organizations_list, note.getOrganization_list());
values.put(KEY_Keywords, note.getKeywords());
values.put(KEY_CREATED_AT, getDateTime());
// insert row
db.insert(TABLE_Notes, null, values);
Log.i("--- OK -----","---- note stored ------");
}
public List<TheNote> getAllNotes() {
List<TheNote> notes = new ArrayList<TheNote>();
String selectQuery = "SELECT * FROM " + TABLE_Notes;
Log.i(LOG, selectQuery);
SQLiteDatabase db = this.getReadableDatabase();
Cursor c = db.rawQuery(selectQuery, null);
// looping through all rows and adding to list
if (c.moveToFirst()) {
do {
TheNote mNote = new TheNote();
mNote.setFull_text(c.getString(c.getColumnIndex(KEY_FULLTEXT)));
mNote.setKeywords(c.getString(c.getColumnIndex(KEY_Keywords)));
mNote.setOrganization_list(c.getString(c.getColumnIndex(KEY_Organizations_list)));
mNote.setLocation_list(c.getString(c.getColumnIndex(KEY_Locations_list)));
mNote.setCreated_at(c.getString(c.getColumnIndex(KEY_CREATED_AT)));
notes.add(mNote);
} while (c.moveToNext());
}
return notes;
}
public void deleteNote(long id) {
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_Notes, KEY_ID + " = ?", new String[] { String.valueOf(id) });
}
public void delete_ALL_Notes() {
SQLiteDatabase db = this.getWritableDatabase();
db.execSQL("delete from "+ TABLE_Notes);
}
private String getDateTime() {
SimpleDateFormat dateFormat = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss", Locale.getDefault());
Date date = new Date();
return dateFormat.format(date);
}
// closing database
public void closeDB() {
SQLiteDatabase db = this.getReadableDatabase();
if (db != null && db.isOpen())
db.close();
}
}