package org.mtransit.android.provider;
import org.mtransit.android.commons.PreferenceUtils;
import org.mtransit.android.commons.SqlUtils;
import org.mtransit.android.commons.provider.MTSQLiteOpenHelper;
import org.mtransit.android.commons.provider.POIProvider;
import org.mtransit.android.commons.provider.StatusProvider;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
public class ModuleDbHelper extends MTSQLiteOpenHelper {
private static final String TAG = ModuleDbHelper.class.getSimpleName();
@Override
public String getLogTag() {
return TAG;
}
/**
* Override if multiple {@link ModuleDbHelper} implementations in same app.
*/
protected static final String DB_NAME = "module.db";
/**
* Override if multiple {@link ModuleDbHelper} in same app.
*/
public static final int DB_VERSION = 51;
/**
* Override if multiple {@link ModuleDbHelper} implementations in same app.
*/
protected static final String PREF_KEY_LAST_UPDATE_MS = "pModuleLastUpdate";
public static final String T_MODULE = POIProvider.POIDbHelper.T_POI;
public static final String T_MODULE_K_PKG = POIProvider.POIDbHelper.getFkColumnName("pkg");
public static final String T_MODULE_K_TARGET_TYPE_ID = POIProvider.POIDbHelper.getFkColumnName("targetTypeId");
public static final String T_MODULE_K_COLOR = POIProvider.POIDbHelper.getFkColumnName("color");
public static final String T_MODULE_K_LOCATION = POIProvider.POIDbHelper.getFkColumnName("location");
public static final String T_MODULE_K_NAME_FR = POIProvider.POIDbHelper.getFkColumnName("name_fr");
private static final String T_MODULE_SQL_CREATE = POIProvider.POIDbHelper.getSqlCreateBuilder(T_MODULE) //
.appendColumn(T_MODULE_K_PKG, SqlUtils.TXT) //
.appendColumn(T_MODULE_K_TARGET_TYPE_ID, SqlUtils.INT) //
.appendColumn(T_MODULE_K_COLOR, SqlUtils.TXT) //
.appendColumn(T_MODULE_K_LOCATION, SqlUtils.TXT) //
.appendColumn(T_MODULE_K_NAME_FR, SqlUtils.TXT) //
.build();
private static final String T_MODULE_SQL_DROP = SqlUtils.getSQLDropIfExistsQuery(T_MODULE);
public static final String T_MODULE_STATUS = StatusProvider.StatusDbHelper.T_STATUS;
private static final String T_MODULE_STATUS_SQL_CREATE = StatusProvider.StatusDbHelper.getSqlCreateBuilder(T_MODULE_STATUS).build();
private static final String T_MODULE_STATUS_SQL_DROP = SqlUtils.getSQLDropIfExistsQuery(T_MODULE_STATUS);
/**
* Override if multiple {@link ModuleDbHelper} in same app.
*/
public static int getDbVersion() {
return DB_VERSION;
}
private Context context;
public ModuleDbHelper(Context context) {
super(context, DB_NAME, null, getDbVersion());
this.context = context;
}
@Override
public void onCreateMT(SQLiteDatabase db) {
initAllDbTables(db);
}
@Override
public void onUpgradeMT(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL(T_MODULE_SQL_DROP);
db.execSQL(T_MODULE_STATUS_SQL_DROP);
initAllDbTables(db);
}
public boolean isDbExist(Context context) {
return SqlUtils.isDbExist(context, DB_NAME);
}
private void initAllDbTables(SQLiteDatabase db) {
db.execSQL(T_MODULE_SQL_CREATE);
db.execSQL(T_MODULE_STATUS_SQL_CREATE);
PreferenceUtils.savePrefLcl(this.context, PREF_KEY_LAST_UPDATE_MS, 0l, true);
}
}