summaryrefslogtreecommitdiff
path: root/Source/Android
diff options
context:
space:
mode:
authorAnthony <Helios747@users.noreply.github.com>2017-11-10 11:10:30 -0800
committerGitHub <noreply@github.com>2017-11-10 11:10:30 -0800
commit126b7ea01caa6fd4eb884cda053ebb938f156c7f (patch)
treeee75233484f6503db1d95985ccd57951f295ac4c /Source/Android
parent4dc425b9c9d1360109ab86ac4268888d498cb04d (diff)
parent74ae2522fe70a5fc9604b57f20203da2bd718fa2 (diff)
Merge pull request #6181 from hackbar/database-downgrade
Android: Handle a database downgrade.
Diffstat (limited to 'Source/Android')
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/GameDatabase.java31
1 files changed, 22 insertions, 9 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/GameDatabase.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/GameDatabase.java
index 1a4f872330..231665094f 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/GameDatabase.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/GameDatabase.java
@@ -78,6 +78,7 @@ public final class GameDatabase extends SQLiteOpenHelper
+ KEY_DB_ID + TYPE_PRIMARY + SEPARATOR
+ KEY_FOLDER_PATH + TYPE_STRING + CONSTRAINT_UNIQUE + ")";
+ private static final String SQL_DELETE_FOLDERS = "DROP TABLE IF EXISTS " + TABLE_NAME_FOLDERS;
private static final String SQL_DELETE_GAMES = "DROP TABLE IF EXISTS " + TABLE_NAME_GAMES;
public GameDatabase(Context context)
@@ -91,11 +92,19 @@ public final class GameDatabase extends SQLiteOpenHelper
{
Log.debug("[GameDatabase] GameDatabase - Creating database...");
- Log.verbose("[GameDatabase] Executing SQL: " + SQL_CREATE_GAMES);
- database.execSQL(SQL_CREATE_GAMES);
+ execSqlAndLog(database, SQL_CREATE_GAMES);
+ execSqlAndLog(database, SQL_CREATE_FOLDERS);
+ }
+
+ @Override
+ public void onDowngrade(SQLiteDatabase database, int oldVersion, int newVersion)
+ {
+ Log.verbose("[GameDatabase] Downgrades not supporting, clearing databases..");
+ execSqlAndLog(database, SQL_DELETE_FOLDERS);
+ execSqlAndLog(database, SQL_CREATE_FOLDERS);
- Log.verbose("[GameDatabase] Executing SQL: " + SQL_CREATE_FOLDERS);
- database.execSQL(SQL_CREATE_FOLDERS);
+ execSqlAndLog(database, SQL_DELETE_GAMES);
+ execSqlAndLog(database, SQL_CREATE_GAMES);
}
@Override
@@ -103,11 +112,9 @@ public final class GameDatabase extends SQLiteOpenHelper
{
Log.info("[GameDatabase] Upgrading database from schema version " + oldVersion + " to " + newVersion);
- Log.verbose("[GameDatabase] Executing SQL: " + SQL_DELETE_GAMES);
- database.execSQL(SQL_DELETE_GAMES);
-
- Log.verbose("[GameDatabase] Executing SQL: " + SQL_CREATE_GAMES);
- database.execSQL(SQL_CREATE_GAMES);
+ // Delete all the games
+ execSqlAndLog(database, SQL_DELETE_GAMES);
+ execSqlAndLog(database, SQL_CREATE_GAMES);
Log.verbose("[GameDatabase] Re-scanning library with new schema.");
scanLibrary(database);
@@ -283,4 +290,10 @@ public final class GameDatabase extends SQLiteOpenHelper
}
});
}
+
+ private void execSqlAndLog(SQLiteDatabase database, String sql)
+ {
+ Log.verbose("[GameDatabase] Executing SQL: " + sql);
+ database.execSQL(sql);
+ }
}