aboutsummaryrefslogtreecommitdiff
path: root/src/org/happysanta/gd/Storage/LevelsSQLiteOpenHelper.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/happysanta/gd/Storage/LevelsSQLiteOpenHelper.java')
-rw-r--r--src/org/happysanta/gd/Storage/LevelsSQLiteOpenHelper.java141
1 files changed, 141 insertions, 0 deletions
diff --git a/src/org/happysanta/gd/Storage/LevelsSQLiteOpenHelper.java b/src/org/happysanta/gd/Storage/LevelsSQLiteOpenHelper.java
new file mode 100644
index 0000000..024a17f
--- /dev/null
+++ b/src/org/happysanta/gd/Storage/LevelsSQLiteOpenHelper.java
@@ -0,0 +1,141 @@
+package org.happysanta.gd.Storage;
+
+import android.content.Context;
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteOpenHelper;
+
+public class LevelsSQLiteOpenHelper extends SQLiteOpenHelper {
+
+ private static final int DATABASE_VERSION = 1;
+ private static final String DATABASE_NAME = "levels.db";
+
+ public static final String TABLE_LEVELS = "levels";
+ public static final String TABLE_HIGHSCORES = "highscores";
+
+ public static final String LEVELS_COLUMN_ID = "_id";
+ public static final String LEVELS_COLUMN_NAME = "name";
+ public static final String LEVELS_COLUMN_AUTHOR = "author";
+ public static final String LEVELS_COLUMN_COUNT_EASY = "count_easy";
+ public static final String LEVELS_COLUMN_COUNT_MEDIUM = "count_medium";
+ public static final String LEVELS_COLUMN_COUNT_HARD = "count_hard";
+ public static final String LEVELS_COLUMN_ADDED = "added_ts";
+ public static final String LEVELS_COLUMN_INSTALLED = "installed_ts";
+ public static final String LEVELS_COLUMN_IS_DEFAULT = "is_default";
+ public static final String LEVELS_COLUMN_API_ID = "api_id";
+ public static final String LEVELS_COLUMN_UNLOCKED_EASY = "unlocked_easy";
+ public static final String LEVELS_COLUMN_UNLOCKED_MEDIUM = "unlocked_medium";
+ public static final String LEVELS_COLUMN_UNLOCKED_HARD = "unlocked_hard";
+ public static final String LEVELS_COLUMN_SELECTED_LEVEL = "selected_level";
+ public static final String LEVELS_COLUMN_SELECTED_TRACK = "selected_track";
+ public static final String LEVELS_COLUMN_SELECTED_LEAGUE = "selected_league";
+ public static final String LEVELS_COLUMN_UNLOCKED_LEVELS = "unlocked_levels";
+ public static final String LEVELS_COLUMN_UNLOCKED_LEAGUES = "unlocked_leagues";
+
+ public static final String HIGHSCORES_COLUMN_ID = "_id";
+ public static final String HIGHSCORES_COLUMN_LEVEL_ID = "level_id";
+ public static final String HIGHSCORES_COLUMN_LEVEL = "level";
+ public static final String HIGHSCORES_COLUMN_TRACK = "track";
+
+ private static final String TABLE_LEVELS_CREATE = "CREATE TABLE "
+ + TABLE_LEVELS + "("
+ + LEVELS_COLUMN_ID + " INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "
+ + LEVELS_COLUMN_NAME + " TEXT NOT NULL, "
+ + LEVELS_COLUMN_AUTHOR + " TEXT NOT NULL, "
+ + LEVELS_COLUMN_COUNT_EASY + " INTEGER NOT NULL, "
+ + LEVELS_COLUMN_COUNT_MEDIUM + " INTEGER NOT NULL, "
+ + LEVELS_COLUMN_COUNT_HARD + " INTEGER NOT NULL, "
+ + LEVELS_COLUMN_ADDED + " INTEGER NOT NULL, "
+ + LEVELS_COLUMN_INSTALLED + " INTEGER NOT NULL, "
+ + LEVELS_COLUMN_IS_DEFAULT + " INTEGER NOT NULL, "
+ + LEVELS_COLUMN_API_ID + " INTEGER NOT NULL, "
+ + LEVELS_COLUMN_UNLOCKED_EASY + " INTEGER NOT NULL, "
+ + LEVELS_COLUMN_UNLOCKED_MEDIUM + " INTEGER NOT NULL, "
+ + LEVELS_COLUMN_UNLOCKED_HARD + " INTEGER NOT NULL, "
+ + LEVELS_COLUMN_SELECTED_LEVEL + " INTEGER NOT NULL, "
+ + LEVELS_COLUMN_SELECTED_TRACK + " INTEGER NOT NULL, "
+ + LEVELS_COLUMN_SELECTED_LEAGUE + " INTEGER NOT NULL, "
+ + LEVELS_COLUMN_UNLOCKED_LEVELS + " INTEGER NOT NULL, "
+ + LEVELS_COLUMN_UNLOCKED_LEAGUES + " INTEGER NOT NULL"
+ + ");";
+
+ private static final String TABLE_HIGHSCORES_CREATE = " CREATE TABLE "
+ + TABLE_HIGHSCORES + "("
+ + HIGHSCORES_COLUMN_ID + " INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "
+ + HIGHSCORES_COLUMN_LEVEL_ID + " INTEGER NOT NULL, "
+ + HIGHSCORES_COLUMN_LEVEL + " INTEGER NOT NULL, "
+ + HIGHSCORES_COLUMN_TRACK + " INTEGER NOT NULL, "
+
+ // 100cc
+ + getHighscoresTimeColumn(0, 0) + " INTEGER NOT NULL, "
+ + getHighscoresNameColumn(0, 0) + " TEXT, "
+ + getHighscoresTimeColumn(0, 1) + " INTEGER NOT NULL, "
+ + getHighscoresNameColumn(0, 1) + " TEXT, "
+ + getHighscoresTimeColumn(0, 2) + " INTEGER NOT NULL, "
+ + getHighscoresNameColumn(0, 2) + " TEXT, "
+
+ // 175cc
+ + getHighscoresTimeColumn(1, 0) + " INTEGER NOT NULL, "
+ + getHighscoresNameColumn(1, 0) + " TEXT, "
+ + getHighscoresTimeColumn(1, 1) + " INTEGER NOT NULL, "
+ + getHighscoresNameColumn(1, 1) + " TEXT, "
+ + getHighscoresTimeColumn(1, 2) + " INTEGER NOT NULL, "
+ + getHighscoresNameColumn(1, 2) + " TEXT, "
+
+ // 220cc
+ + getHighscoresTimeColumn(2, 0) + " INTEGER NOT NULL, "
+ + getHighscoresNameColumn(2, 0) + " TEXT, "
+ + getHighscoresTimeColumn(2, 1) + " INTEGER NOT NULL, "
+ + getHighscoresNameColumn(2, 1) + " TEXT, "
+ + getHighscoresTimeColumn(2, 2) + " INTEGER NOT NULL, "
+ + getHighscoresNameColumn(2, 2) + " TEXT, "
+
+ // 325cc
+ + getHighscoresTimeColumn(3, 0) + " INTEGER NOT NULL, "
+ + getHighscoresNameColumn(3, 0) + " TEXT, "
+ + getHighscoresTimeColumn(3, 1) + " INTEGER NOT NULL, "
+ + getHighscoresNameColumn(3, 1) + " TEXT, "
+ + getHighscoresTimeColumn(3, 2) + " INTEGER NOT NULL, "
+ + getHighscoresNameColumn(3, 2) + " TEXT"
+
+ + ")";
+
+ LevelsSQLiteOpenHelper(Context context) {
+ super(context, DATABASE_NAME, null, DATABASE_VERSION);
+ }
+
+ @Override
+ public void onCreate(SQLiteDatabase db) {
+ db.execSQL(TABLE_LEVELS_CREATE);
+ createLevelsIndexes(db);
+
+ db.execSQL(TABLE_HIGHSCORES_CREATE);
+ createHighscoresIndexes(db);
+ }
+
+ @Override
+ public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
+
+ }
+
+ private void createLevelsIndexes(SQLiteDatabase db) {
+ db.execSQL("CREATE INDEX " + LEVELS_COLUMN_API_ID + "_index ON " + TABLE_LEVELS + "(" + LEVELS_COLUMN_API_ID + ")");
+ db.execSQL("CREATE INDEX " + LEVELS_COLUMN_IS_DEFAULT + "_index ON " + TABLE_LEVELS + "(" + LEVELS_COLUMN_IS_DEFAULT + ")");
+ }
+
+ private void createHighscoresIndexes(SQLiteDatabase db) {
+ db.execSQL("CREATE INDEX level_id_level_track_index ON " + TABLE_HIGHSCORES + "("
+ + HIGHSCORES_COLUMN_LEVEL_ID + ", "
+ + HIGHSCORES_COLUMN_LEVEL + ", "
+ + HIGHSCORES_COLUMN_TRACK
+ + ")");
+ }
+
+ public static String getHighscoresTimeColumn(int league, int place) {
+ return "l" + league + "_p" + place + "_time";
+ }
+
+ public static String getHighscoresNameColumn(int league, int place) {
+ return "l" + league + "_p" + place + "_name";
+ }
+
+}