package com.realtrackandroid.backend;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import com.realtrackandroid.models.activities.Activities;
import com.realtrackandroid.models.activities.Participant;
import com.realtrackandroid.models.activities.Participation;
import com.realtrackandroid.models.projects.Project;
import com.realtrackandroid.models.reminders.Reminders;
/*
* This is a database helper that is shared by the different model classes
*/
public class GlobalDatabaseHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "database.db";
public static final int DATABASE_VERSION = 4;
private static GlobalDatabaseHelper gHelper;
private GlobalDatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
public static GlobalDatabaseHelper getInstance(Context context) {
gHelper = new GlobalDatabaseHelper(context);
return gHelper;
}
// Method is called during creation of the database
@Override
public void onCreate(SQLiteDatabase database) {
Project.onCreate(database);
Activities.onCreate(database);
Reminders.onCreate(database);
Participation.onCreate(database);
Participant.onCreate(database);
}
// Method is called during an upgrade of the database,
@Override
public void onUpgrade(SQLiteDatabase database, int oldVersion, int newVersion) {
Participant.onUpgrade(database, oldVersion, newVersion);
}
@Override
public void onOpen(SQLiteDatabase database) {
super.onOpen(database);
if (!database.isReadOnly()) {
// Enable foreign key constraints
database.execSQL("PRAGMA foreign_keys=ON;");
}
}
}