package com.maxiee.heartbeat.database;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import com.maxiee.heartbeat.database.api.ImageUriUpgradeApi;
import com.maxiee.heartbeat.database.tables.CrashTable;
import com.maxiee.heartbeat.database.tables.EventImageRelationTable;
import com.maxiee.heartbeat.database.tables.EventLabelRelationTable;
import com.maxiee.heartbeat.database.tables.EventThoughtRelationTable;
import com.maxiee.heartbeat.database.tables.EventsTable;
import com.maxiee.heartbeat.database.tables.ImageTable;
import com.maxiee.heartbeat.database.tables.LabelsTable;
import com.maxiee.heartbeat.database.tables.ThoughtResTable;
import com.maxiee.heartbeat.database.tables.ThoughtsTable;
/**
* Created by maxiee on 15-6-11.
*/
public class DatabaseHelper extends SQLiteOpenHelper {
private final static String DB_NAME = "heartbeat";
private final static int DB_VER = 4;
private static DatabaseHelper instance;
private Context mContext;
private DatabaseHelper(Context context) {
super(context, DB_NAME, null, DB_VER);
mContext = context;
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(EventsTable.CREATE);
db.execSQL(LabelsTable.CREATE);
db.execSQL(EventLabelRelationTable.CREATE);
db.execSQL(ThoughtsTable.CREATE);
db.execSQL(EventThoughtRelationTable.CREATE);
db.execSQL(ImageTable.CREATE);
db.execSQL(EventImageRelationTable.CREATE);
db.execSQL(CrashTable.CREATE);
db.execSQL(ThoughtResTable.CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if (oldVersion == 1) {
db.execSQL(ImageTable.CREATE);
db.execSQL(EventImageRelationTable.CREATE);
}
if (oldVersion <= 2) {
db.execSQL(CrashTable.CREATE);
}
if (oldVersion <= 3) {
db.execSQL(ThoughtResTable.CREATE);
// upgrade items in ImageTable
ImageUriUpgradeApi.exec(mContext, db);
}
}
public static synchronized DatabaseHelper instance(Context context) {
if (instance == null) {
instance = new DatabaseHelper(context);
}
return instance;
}
}