package net.unverschaemt.pinfever;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
/**
* Created by kkoile on 11.05.15.
*/
public class MySQLiteHelper extends SQLiteOpenHelper {
public static final String TABLE_FRIENDS = "friends";
public static final String FRIENDS_COLUMN_ID = "_id";
public static final String FRIENDS_COLUMN_USERNAME = "username";
public static final String FRIENDS_COLUMN_SCORE = "score";
public static final String FRIENDS_COLUMN_AVATAR = "avatar";
public static final String TABLE_GAMES = "games";
public static final String GAMES_COLUMN_ID = "_id";
public static final String GAMES_COLUMN_STATE = "state";
public static final String GAMES_COLUMN_ACTIVE_ROUND = "activeRound";
public static final String TABLE_QUESTIONS = "questions";
public static final String QUESTIONS_COLUMN_ID = "_id";
public static final String QUESTIONS_COLUMN_TEXT = "text";
public static final String QUESTIONS_COLUMN_ROUND = "round";
public static final String QUESTIONS_COLUMN_ANSWER_LAT = "answerLat";
public static final String QUESTIONS_COLUMN_ANSWER_LONG = "answerLong";
public static final String QUESTIONS_COLUMN_STATE = "state";
public static final String QUESTIONS_COLUMN_PARTICIPANT_WHO_ONE = "participantWhoWon";
public static final String TABLE_ROUNDS = "rounds";
public static final String ROUNDS_COLUMN_ID = "_id";
public static final String ROUNDS_COLUMN_CATEGORY = "category";
public static final String ROUNDS_COLUMN_GAME = "game";
public static final String TABLE_TURNINFORMATION = "turninformation";
public static final String TURNINFORMATION_COLUMN_ID = "_id";
public static final String TURNINFORMATION_COLUMN_QUESTION = "question";
public static final String TURNINFORMATION_COLUMN_PARTICIPANT = "participant";
public static final String TURNINFORMATION_COLUMN_LAT = "lat";
public static final String TURNINFORMATION_COLUMN_LONG = "long";
public static final String TURNINFORMATION_COLUMN_DISTANCE = "distance";
public static final String TABLE_PARTICIPANTS = "participants";
public static final String PARTICIPANTS_COLUMN_ID = "_id";
public static final String PARTICIPANTS_COLUMN_PLAYER = "player";
public static final String PARTICIPANTS_COLUMN_GAME = "game";
public static final String PARTICIPANTS_COLUMN_STATE = "status";
public static final String PARTICIPANTS_COLUMN_SCORE = "score";
private static final String DATABASE_NAME = "pinfever.db";
//TODO: change to version 1
private static final int DATABASE_VERSION = 8;
// Database creation sql statement
private static final String CREATE_FRIENDS_DATABASE = "create table "
+ TABLE_FRIENDS + "(" + FRIENDS_COLUMN_ID
+ " text primary key, " + FRIENDS_COLUMN_USERNAME
+ " text, " + FRIENDS_COLUMN_SCORE + " integer, " + FRIENDS_COLUMN_AVATAR + " text );";
private static final String CREATE_GAMES_DATABASE = "create table "
+ TABLE_GAMES + "(" + GAMES_COLUMN_ID
+ " text primary key, " + GAMES_COLUMN_STATE
+ " integer, " + GAMES_COLUMN_ACTIVE_ROUND + " text );";
private static final String CREATE_QUESTIONS_DATABASE = "create table " + TABLE_QUESTIONS + "("
+ QUESTIONS_COLUMN_ID + " text primary key, "
+ QUESTIONS_COLUMN_TEXT + " text, "
+ QUESTIONS_COLUMN_ROUND + " text, "
+ QUESTIONS_COLUMN_ANSWER_LAT + " float, "
+ QUESTIONS_COLUMN_ANSWER_LONG + " float, "
+ QUESTIONS_COLUMN_STATE + " integer, "
+ QUESTIONS_COLUMN_PARTICIPANT_WHO_ONE + " text );";
private static final String CREATE_ROUNDS_DATABASE = "create table " + TABLE_ROUNDS + "("
+ ROUNDS_COLUMN_ID + " text primary key, "
+ ROUNDS_COLUMN_CATEGORY + " text, "
+ ROUNDS_COLUMN_GAME + " text );";
private static final String CREATE_TURNINFORMATION_DATABASE = "create table " + TABLE_TURNINFORMATION + "("
+ TURNINFORMATION_COLUMN_ID + " text primary key, "
+ TURNINFORMATION_COLUMN_QUESTION + " text, "
+ TURNINFORMATION_COLUMN_PARTICIPANT + " text, "
+ TURNINFORMATION_COLUMN_LAT + " float, "
+ TURNINFORMATION_COLUMN_LONG + " float, "
+ TURNINFORMATION_COLUMN_DISTANCE + " float );";
private static final String CREATE_PARTICIPANTS_DATABASE = "create table " + TABLE_PARTICIPANTS + "("
+ PARTICIPANTS_COLUMN_ID + " text primary key, "
+ PARTICIPANTS_COLUMN_PLAYER + " text, "
+ PARTICIPANTS_COLUMN_GAME + " text, "
+ PARTICIPANTS_COLUMN_STATE + " int, "
+ PARTICIPANTS_COLUMN_SCORE + " int );";
public MySQLiteHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase database) {
database.execSQL(CREATE_FRIENDS_DATABASE);
database.execSQL(CREATE_GAMES_DATABASE);
database.execSQL(CREATE_QUESTIONS_DATABASE);
database.execSQL(CREATE_ROUNDS_DATABASE);
database.execSQL(CREATE_TURNINFORMATION_DATABASE);
database.execSQL(CREATE_PARTICIPANTS_DATABASE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.w(MySQLiteHelper.class.getName(),
"Upgrading database from version " + oldVersion + " to "
+ newVersion + ", which will destroy all old dataObject");
db.execSQL("DROP TABLE IF EXISTS " + TABLE_FRIENDS);
db.execSQL("DROP TABLE IF EXISTS " + TABLE_GAMES);
db.execSQL("DROP TABLE IF EXISTS " + TABLE_QUESTIONS);
db.execSQL("DROP TABLE IF EXISTS " + TABLE_ROUNDS);
db.execSQL("DROP TABLE IF EXISTS " + TABLE_TURNINFORMATION);
db.execSQL("DROP TABLE IF EXISTS " + TABLE_PARTICIPANTS);
onCreate(db);
}
public void dropTables(SQLiteDatabase db) {
Log.w(MySQLiteHelper.class.getName(),
"Dropped All Tables");
db.execSQL("DROP TABLE IF EXISTS " + TABLE_FRIENDS);
db.execSQL("DROP TABLE IF EXISTS " + TABLE_GAMES);
db.execSQL("DROP TABLE IF EXISTS " + TABLE_QUESTIONS);
db.execSQL("DROP TABLE IF EXISTS " + TABLE_ROUNDS);
db.execSQL("DROP TABLE IF EXISTS " + TABLE_TURNINFORMATION);
db.execSQL("DROP TABLE IF EXISTS " + TABLE_PARTICIPANTS);
onCreate(db);
}
}