package com.jparkie.aizoban.controllers.databases;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import com.jparkie.aizoban.AizobanApplication;
import com.jparkie.aizoban.models.Chapter;
import com.jparkie.aizoban.models.databases.FavouriteManga;
import com.jparkie.aizoban.models.databases.RecentChapter;
import com.jparkie.aizoban.models.downloads.DownloadChapter;
import com.jparkie.aizoban.models.downloads.DownloadManga;
import com.jparkie.aizoban.models.downloads.DownloadPage;
import nl.qbusict.cupboard.Cupboard;
import nl.qbusict.cupboard.CupboardBuilder;
public class ApplicationSQLiteOpenHelper extends SQLiteOpenHelper {
private static ApplicationSQLiteOpenHelper sInstance;
public ApplicationSQLiteOpenHelper(Context context) {
super(context, ApplicationContract.DATABASE_NAME, null, ApplicationContract.DATABASE_VERSION);
}
public static synchronized ApplicationSQLiteOpenHelper getInstance() {
if (sInstance == null) {
sInstance = new ApplicationSQLiteOpenHelper(AizobanApplication.getInstance());
}
return sInstance;
}
@Override
public void onCreate(SQLiteDatabase db) {
Cupboard applicationCupboard = constructCustomCupboard();
applicationCupboard.withDatabase(db).createTables();
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Cupboard applicationCupboard = constructCustomCupboard();
applicationCupboard.withDatabase(db).upgradeTables();
}
private Cupboard constructCustomCupboard() {
Cupboard customCupboard = new CupboardBuilder().build();
customCupboard.register(Chapter.class);
customCupboard.register(FavouriteManga.class);
customCupboard.register(RecentChapter.class);
customCupboard.register(DownloadManga.class);
customCupboard.register(DownloadChapter.class);
customCupboard.register(DownloadPage.class);
return customCupboard;
}
}