package de.nisble.droidsweeper.game.database;
import de.nisble.droidsweeper.utilities.LogDog;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import static de.nisble.droidsweeper.game.database.DSDBContract.*;
final class DSDBHelper extends SQLiteOpenHelper {
private static final String CLASSNAME = DSDBHelper.class.getSimpleName();
DSDBHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
LogDog.i(CLASSNAME, "Creating new database: " + DB_NAME + " Version " + DB_VERSION);
// Create tables
db.execSQL(LevelTable.CREATE_TABLE);
db.execSQL(PlayerTable.CREATE_TABLE);
db.execSQL(GameTable.CREATE_TABLE);
// Create views
db.execSQL(Level4GameView.CREATE_VIEW);
db.execSQL(Player4GameView.CREATE_VIEW);
db.execSQL(GamesView.CREATE_VIEW);
// Insert standard levels
db.execSQL(LevelTable.INSERT_EASY);
db.execSQL(LevelTable.INSERT_NORMAL);
db.execSQL(LevelTable.INSERT_HARD);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
LogDog.i(CLASSNAME, "Updating database from " + oldVersion + " to " + newVersion);
// Drop tables
db.execSQL(GameTable.DROP_TABLE);
db.execSQL(PlayerTable.DROP_TABLE);
db.execSQL(LevelTable.DROP_TABLE);
// Drop views
db.execSQL(Level4GameView.DROP_VIEW);
db.execSQL(Player4GameView.DROP_VIEW);
db.execSQL(GamesView.DROP_VIEW);
// Create new one
onCreate(db);
}
@Override
public void onOpen(SQLiteDatabase db) {
super.onOpen(db);
db.execSQL("PRAGMA foreign_keys=ON;");
}
}