tapsnap db 2012-06-03 22:04:18 package org.hcilab.tapsnap.helper; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class DatabaseHelper extends SQLiteOpenHelper { public static final int DATABASE_VERSION = 1; public static final String DATABASE_NAME = "tapsnap_db"; public static final String TABLE_GAME = "game"; public static final String TABLE_TASK = "task"; public static final String TABLE_ROUND = "round"; public static final String TABLE_OBJECT = "object"; public static final String TABLE_TOUCH = "touch"; public static final String TABLE_HIGHSCORE = "highscore"; public static final String GAME_ID = "_id"; public static final String GAME_SCREEN_RES_X = "screen_res_x"; public static final String GAME_SCREEN_RES_Y = "screen_res_y"; public static final String GAME_PIXEL_DENSITY = "density"; public static final String GAME_SHAPE_SIZE = "object_size"; public static final String GAME_VERSION = "version"; public static final String GAME_PLAYER_NAME = "player_name"; public static final String GAME_SCORE = "score"; public static final String GAME_TIME_START = "time_start"; public static final String GAME_TIME_END = "time_end"; public static final String GAME_INIT_DURATION = "duration"; public static final String GAME_LOCALE = "locale"; public static final String GAME_BG_COLOR = "bg_color"; public static final String GAME_SUBMITTED = "submitted"; public static final String TASK_ID = "_id"; public static final String TASK_GAME_ID = "game_id"; public static final String TASK_SHAPE = "shape"; public static final String TASK_COLOR = "color"; public static final String TASK_DUATION = "duration"; public static final String ROUND_ID = "_id"; public static final String ROUND_TASK_ID = "task_id"; public static final String ROUND_TIME_START = "time_start"; public static final String ROUND_SCORE_DELTA = "score_DELTA"; public static final String ROUND_TIME_DELTA = "time_delta"; public static final String OBJECT_ID = "_id"; public static final String OBJECT_ROUND_ID = "round_id"; public static final String OBJECT_SHAPE = "shape"; public static final String OBJECT_COLOR = "color"; public static final String OBJECT_POS_X = "pos_x"; public static final String OBJECT_POS_Y = "pos_y"; public static final String OBJECT_IS_TARGET = "is_target"; public static final String TOUCH_ID = "_id"; public static final String TOUCH_ROUND_ID = "round_id"; public static final String TOUCH_OBJECT_ID = "object_id"; public static final String TOUCH_TIME = "time"; public static final String TOUCH_POS_X = "pos_x"; public static final String TOUCH_POS_Y = "pos_y"; public static final String HIGHSCORE_ID = "_id"; public static final String HIGHSCORE_SCORE = "score"; public static final String HIGHSCORE_PLAYER_NAME = "player_name"; public static final String HIGHSCORE_TIME = "time"; private static final String CREATE_GAME = "CREATE TABLE IF NOT EXISTS " + TABLE_GAME + "(" + GAME_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + GAME_SCREEN_RES_X + " INTEGER, " + GAME_SCREEN_RES_Y + " INTEGER, " + GAME_PIXEL_DENSITY + " REAL, " + GAME_SHAPE_SIZE + " REAL, " + GAME_VERSION + " INTEGER, " + GAME_PLAYER_NAME + " TEXT, " + GAME_SCORE + " INTEGER, " + GAME_TIME_START + " INTEGER, " + GAME_TIME_END + " INTEGER, " + GAME_INIT_DURATION + " INTEGER, " + GAME_LOCALE + " TEXT, " + GAME_BG_COLOR + " INTEGER, " + GAME_SUBMITTED + " INTEGER);"; private static final String CREATE_TASK = "CREATE TABLE IF NOT EXISTS " + TABLE_TASK + "(" + TASK_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + TASK_GAME_ID + " INTEGER, " + TASK_SHAPE + " TEXT, " + TASK_COLOR + " INTEGER, " + TASK_DUATION + " INTEGER);"; private static final String CREATE_ROUND = "CREATE TABLE IF NOT EXISTS " + TABLE_ROUND + "(" + ROUND_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + ROUND_TASK_ID + " INTEGER, " + ROUND_TIME_START + " INTEGER, " + ROUND_TIME_DELTA + " INTEGER, " + ROUND_SCORE_DELTA + " INTEGER);"; private static final String CREATE_OBJECTS = "CREATE TABLE IF NOT EXISTS " + TABLE_OBJECT + "(" + OBJECT_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + OBJECT_ROUND_ID + " INTEGER, " + OBJECT_SHAPE + " TEXT, " + OBJECT_COLOR + " INTEGER, " + OBJECT_POS_X + " REAL, " + OBJECT_POS_Y + " REAL, " + OBJECT_IS_TARGET + " INTEGER);"; private static final String CREATE_TOUCH = "CREATE TABLE IF NOT EXISTS " + TABLE_TOUCH + "(" + TOUCH_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + TOUCH_ROUND_ID + " INTEGER, " + TOUCH_OBJECT_ID + " INTEGER, " + TOUCH_TIME + " INTEGER, " + TOUCH_POS_X + " REAL, " + TOUCH_POS_Y + " REAL);"; private static final String CREATE_HIGHSCORE = "CREATE TABLE IF NOT EXISTS " + TABLE_HIGHSCORE + "(" + HIGHSCORE_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + HIGHSCORE_SCORE + " INTEGER, " + HIGHSCORE_PLAYER_NAME + " TEXT, " + HIGHSCORE_TIME + " INTEGER);"; private SQLiteDatabase db; public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); db = getWritableDatabase(); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(CREATE_GAME); db.execSQL(CREATE_TASK); db.execSQL(CREATE_ROUND); db.execSQL(CREATE_OBJECTS); db.execSQL(CREATE_TOUCH); db.execSQL(CREATE_HIGHSCORE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS " + TABLE_GAME); db.execSQL("DROP TABLE IF EXISTS " + TABLE_TASK); db.execSQL("DROP TABLE IF EXISTS " + TABLE_ROUND); db.execSQL("DROP TABLE IF EXISTS " + TABLE_OBJECT); db.execSQL("DROP TABLE IF EXISTS " + TABLE_TOUCH); db.execSQL("DROP TABLE IF EXISTS " + TABLE_HIGHSCORE); onCreate(db); } public void close() { db.close(); } }