From 486e8e699ff9e5578c68c9afa13c7f46aca55df5 Mon Sep 17 00:00:00 2001 From: Peter Serwylo Date: Wed, 5 Oct 2016 23:51:45 +1100 Subject: [PATCH] Cleanup DBHelper in prep for package table in the future. --- .../java/org/fdroid/fdroid/data/DBHelper.java | 24 ++++++++++++------- .../fdroid/fdroid/data/TempAppProvider.java | 2 +- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/org/fdroid/fdroid/data/DBHelper.java b/app/src/main/java/org/fdroid/fdroid/data/DBHelper.java index bcf757446..7af5b95e7 100644 --- a/app/src/main/java/org/fdroid/fdroid/data/DBHelper.java +++ b/app/src/main/java/org/fdroid/fdroid/data/DBHelper.java @@ -95,7 +95,7 @@ class DBHelper extends SQLiteOpenHelper { + "PRIMARY KEY (" + ApkTable.Cols.APP_ID + ", " + ApkTable.Cols.VERSION_CODE + ", " + ApkTable.Cols.REPO_ID + ")" + ");"; - static final String CREATE_TABLE_APP = "CREATE TABLE " + AppMetadataTable.NAME + static final String CREATE_TABLE_APP_METADATA = "CREATE TABLE " + AppMetadataTable.NAME + " ( " + AppMetadataTable.Cols.PACKAGE_NAME + " text not null, " + AppMetadataTable.Cols.NAME + " text not null, " @@ -248,7 +248,7 @@ class DBHelper extends SQLiteOpenHelper { @Override public void onCreate(SQLiteDatabase db) { - db.execSQL(CREATE_TABLE_APP); + db.execSQL(CREATE_TABLE_APP_METADATA); db.execSQL(CREATE_TABLE_APK); db.execSQL(CREATE_TABLE_INSTALLED_APP); db.execSQL(CREATE_TABLE_REPO); @@ -731,12 +731,18 @@ class DBHelper extends SQLiteOpenHelper { .putBoolean("triedEmptyUpdate", false) .apply(); - db.execSQL("DROP TABLE " + AppMetadataTable.NAME); - db.execSQL("DROP TABLE " + ApkTable.NAME); - db.execSQL(CREATE_TABLE_APP); - db.execSQL(CREATE_TABLE_APK); - clearRepoEtags(db); - ensureIndexes(db); + db.beginTransaction(); + try { + db.execSQL("DROP TABLE " + AppMetadataTable.NAME); + db.execSQL("DROP TABLE " + ApkTable.NAME); + db.execSQL(CREATE_TABLE_APP_METADATA); + db.execSQL(CREATE_TABLE_APK); + clearRepoEtags(db); + ensureIndexes(db); + db.setTransactionSuccessful(); + } finally { + db.endTransaction(); + } } private void resetTransientPre42(SQLiteDatabase db, int oldVersion) { @@ -753,7 +759,7 @@ class DBHelper extends SQLiteOpenHelper { db.execSQL("drop table " + AppMetadataTable.NAME); db.execSQL("drop table " + ApkTable.NAME); clearRepoEtags(db); - db.execSQL(CREATE_TABLE_APP); + db.execSQL(CREATE_TABLE_APP_METADATA); db.execSQL(CREATE_TABLE_APK); ensureIndexes(db); } diff --git a/app/src/main/java/org/fdroid/fdroid/data/TempAppProvider.java b/app/src/main/java/org/fdroid/fdroid/data/TempAppProvider.java index 6a37e0db9..955e82cde 100644 --- a/app/src/main/java/org/fdroid/fdroid/data/TempAppProvider.java +++ b/app/src/main/java/org/fdroid/fdroid/data/TempAppProvider.java @@ -161,7 +161,7 @@ public class TempAppProvider extends AppProvider { final SQLiteDatabase db = db(); ensureTempTableDetached(db); db.execSQL("ATTACH DATABASE ':memory:' AS " + DB); - db.execSQL(DBHelper.CREATE_TABLE_APP.replaceFirst(AppMetadataTable.NAME, DB + "." + getTableName())); + db.execSQL(DBHelper.CREATE_TABLE_APP_METADATA.replaceFirst(AppMetadataTable.NAME, DB + "." + getTableName())); db.execSQL(copyData(AppMetadataTable.Cols.ALL_COLS, AppMetadataTable.NAME, DB + "." + getTableName())); db.execSQL("CREATE INDEX IF NOT EXISTS " + DB + ".app_id ON " + getTableName() + " (" + AppMetadataTable.Cols.PACKAGE_NAME + ");"); db.execSQL("CREATE INDEX IF NOT EXISTS " + DB + ".app_upstreamVercode ON " + getTableName() + " (" + AppMetadataTable.Cols.UPSTREAM_VERSION_CODE + ");");