package com.yassirh.digitalocean.data;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import com.yassirh.digitalocean.utils.MyApplication;
public class DatabaseHelper extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 17;
private static final String DATABASE_NAME = "digital_ocean";
private TableHelper imageTable = new ImageTable();
private TableHelper regionTable = new RegionTable();
private TableHelper sizeTable = new SizeTable();
private TableHelper domainTable = new DomainTable();
private TableHelper dropletTable = new DropletTable();
private TableHelper recordTable = new RecordTable();
private TableHelper sshKeyTable = new SSHKeyTable();
private TableHelper accountTable = new AccountTable();
private TableHelper networkTable = new NetworkTable();
private TableHelper floatingIPTable = new FloatingIPTable();
static DatabaseHelper sDatabaseHelper;
private Context context;
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
this.context = context;
}
public static DatabaseHelper getInstance(Context context) {
if (sDatabaseHelper == null) {
sDatabaseHelper = new DatabaseHelper(context);
}
return sDatabaseHelper;
}
public static SQLiteDatabase getWritableDatabaseInstance() {
if (sDatabaseHelper == null) {
sDatabaseHelper = new DatabaseHelper(MyApplication.getAppContext());
}
return sDatabaseHelper.getWritableDatabase();
}
/*public static SQLiteDatabase getReadableDatabaseInstance() {
if (sDatabaseHelper == null) {
sDatabaseHelper = new DatabaseHelper(MyApplication.getAppContext());
}
return sDatabaseHelper.getReadableDatabase();
}*/
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(imageTable.getCreateSql());
db.execSQL(regionTable.getCreateSql());
db.execSQL(sizeTable.getCreateSql());
db.execSQL(domainTable.getCreateSql());
db.execSQL(dropletTable.getCreateSql());
db.execSQL(recordTable.getCreateSql());
db.execSQL(sshKeyTable.getCreateSql());
db.execSQL(accountTable.getCreateSql());
db.execSQL(networkTable.getCreateSql());
db.execSQL(floatingIPTable.getCreateSql());
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if(oldVersion < 15) {
db.execSQL(accountTable.getDropSql());
db.execSQL(accountTable.getCreateSql());
}
db.execSQL(imageTable.getDropSql());
db.execSQL(regionTable.getDropSql());
db.execSQL(sizeTable.getDropSql());
db.execSQL(domainTable.getDropSql());
db.execSQL(dropletTable.getDropSql());
db.execSQL(recordTable.getDropSql());
db.execSQL(sshKeyTable.getDropSql());
db.execSQL(networkTable.getDropSql());
db.execSQL(floatingIPTable.getDropSql());
db.execSQL(imageTable.getCreateSql());
db.execSQL(regionTable.getCreateSql());
db.execSQL(sizeTable.getCreateSql());
db.execSQL(domainTable.getCreateSql());
db.execSQL(dropletTable.getCreateSql());
db.execSQL(recordTable.getCreateSql());
db.execSQL(sshKeyTable.getCreateSql());
db.execSQL(networkTable.getCreateSql());
db.execSQL(floatingIPTable.getCreateSql());
}
public Context getContext() {
return context;
}
}