package com.fastebro.androidrgbtool.helpers;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.support.annotation.NonNull;
import com.fastebro.androidrgbtool.colors.ColorDataContract;
public class SQLiteRGBToolHelper extends SQLiteOpenHelper {
private static final String TEXT_TYPE = " TEXT";
private static final String INTEGER_TYPE = " INTEGER";
private static final String COMMA_SEP = ",";
/**
* SQLite does not have a separate Boolean storage class.
* Instead, Boolean values are stored as integers 0 (false) and 1 (true).
*/
private static final String SQL_CREATE_ENTRIES =
"CREATE TABLE " + ColorDataContract.ColorEntry.TABLE_NAME + " (" +
ColorDataContract.ColorEntry._ID + " INTEGER PRIMARY KEY AUTOINCREMENT," +
ColorDataContract.ColorEntry.COLUMN_COLOR_NAME + TEXT_TYPE + COMMA_SEP +
ColorDataContract.ColorEntry.COLUMN_COLOR_HEX + TEXT_TYPE + COMMA_SEP +
ColorDataContract.ColorEntry.COLUMN_COLOR_RGB_R + INTEGER_TYPE + COMMA_SEP +
ColorDataContract.ColorEntry.COLUMN_COLOR_RGB_G + INTEGER_TYPE + COMMA_SEP +
ColorDataContract.ColorEntry.COLUMN_COLOR_RGB_B + INTEGER_TYPE + COMMA_SEP +
ColorDataContract.ColorEntry.COLUMN_COLOR_RGB_A + INTEGER_TYPE + COMMA_SEP +
ColorDataContract.ColorEntry.COLUMN_COLOR_HSB_H + INTEGER_TYPE + COMMA_SEP +
ColorDataContract.ColorEntry.COLUMN_COLOR_HSB_S + INTEGER_TYPE + COMMA_SEP +
ColorDataContract.ColorEntry.COLUMN_COLOR_HSB_B + INTEGER_TYPE + COMMA_SEP +
ColorDataContract.ColorEntry.COLUMN_COLOR_FAVORITE + INTEGER_TYPE +
" )";
private static final String SQL_DELETE_ENTRIES =
"DROP TABLE IF EXISTS " + ColorDataContract.ColorEntry.TABLE_NAME;
private static final String DATABASE_NAME = "rgbtool.db";
private static final int DATABASE_VERSION = 1;
public SQLiteRGBToolHelper(@NonNull Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase database) {
database.execSQL(SQL_CREATE_ENTRIES);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO: save the current data
db.execSQL(SQL_DELETE_ENTRIES);
onCreate(db);
// TODO: insert the current data
}
}