Replaced DBHelper.TABLE_REPO with Schema.RepoTable.NAME

This commit is contained in:
Peter Serwylo 2016-06-30 13:42:38 +10:00
parent 8a155aef89
commit d1c04de71a
5 changed files with 49 additions and 49 deletions

View File

@ -359,7 +359,7 @@ public class ApkProvider extends FDroidProvider {
private void addRepoField(String field, String alias) { private void addRepoField(String field, String alias) {
if (!repoTableRequired) { if (!repoTableRequired) {
repoTableRequired = true; repoTableRequired = true;
leftJoin(DBHelper.TABLE_REPO, "repo", "apk.repo = repo._id"); leftJoin(RepoTable.NAME, "repo", "apk.repo = repo._id");
} }
appendField(field, "repo", alias); appendField(field, "repo", alias);
} }

View File

@ -15,6 +15,7 @@ import org.fdroid.fdroid.R;
import org.fdroid.fdroid.Utils; import org.fdroid.fdroid.Utils;
import org.fdroid.fdroid.data.Schema.ApkTable; import org.fdroid.fdroid.data.Schema.ApkTable;
import org.fdroid.fdroid.data.Schema.AppTable.Cols; import org.fdroid.fdroid.data.Schema.AppTable.Cols;
import org.fdroid.fdroid.data.Schema.RepoTable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
@ -241,7 +242,7 @@ public class AppProvider extends FDroidProvider {
protected String getRequiredTables() { protected String getRequiredTables() {
final String app = getTableName(); final String app = getTableName();
final String apk = getApkTableName(); final String apk = getApkTableName();
final String repo = DBHelper.TABLE_REPO; final String repo = RepoTable.NAME;
return app + return app +
" LEFT JOIN " + apk + " ON ( " + apk + ".id = " + app + ".id ) " + " LEFT JOIN " + apk + " ON ( " + apk + ".id = " + app + ".id ) " +
@ -974,7 +975,7 @@ public class AppProvider extends FDroidProvider {
*/ */
private static String getIconUpdateQuery(String app, String apk) { private static String getIconUpdateQuery(String app, String apk) {
final String repo = DBHelper.TABLE_REPO; final String repo = RepoTable.NAME;
final String iconUrlQuery = final String iconUrlQuery =
" SELECT " + " SELECT " +

View File

@ -21,15 +21,13 @@ class DBHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "fdroid"; private static final String DATABASE_NAME = "fdroid";
public static final String TABLE_REPO = "fdroid_repo";
// The TABLE_APK table stores details of all the application versions we // The TABLE_APK table stores details of all the application versions we
// know about. Each relates directly back to an entry in TABLE_APP. // know about. Each relates directly back to an entry in TABLE_APP.
// This information is retrieved from the repositories. // This information is retrieved from the repositories.
public static final String TABLE_APK = "fdroid_apk"; public static final String TABLE_APK = "fdroid_apk";
private static final String CREATE_TABLE_REPO = "create table " private static final String CREATE_TABLE_REPO = "create table "
+ TABLE_REPO + " (_id integer primary key, " + RepoTable.NAME + " (_id integer primary key, "
+ "address text not null, " + "address text not null, "
+ "name text, description text, inuse integer not null, " + "name text, description text, inuse integer not null, "
+ "priority integer not null, pubkey text, fingerprint text, " + "priority integer not null, pubkey text, fingerprint text, "
@ -128,7 +126,7 @@ class DBHelper extends SQLiteOpenHelper {
} }
Utils.debugLog(TAG, "Populating repo names from the url"); Utils.debugLog(TAG, "Populating repo names from the url");
final String[] columns = {"address", "_id"}; final String[] columns = {"address", "_id"};
Cursor cursor = db.query(TABLE_REPO, columns, Cursor cursor = db.query(RepoTable.NAME, columns,
"name IS NULL OR name = ''", null, null, null, null); "name IS NULL OR name = ''", null, null, null, null);
if (cursor != null) { if (cursor != null) {
if (cursor.getCount() > 0) { if (cursor.getCount() > 0) {
@ -141,7 +139,7 @@ class DBHelper extends SQLiteOpenHelper {
values.put("name", name); values.put("name", name);
final String[] args = {Long.toString(id)}; final String[] args = {Long.toString(id)};
Utils.debugLog(TAG, "Setting repo name to '" + name + "' for repo " + address); Utils.debugLog(TAG, "Setting repo name to '" + name + "' for repo " + address);
db.update(TABLE_REPO, values, "_id = ?", args); db.update(RepoTable.NAME, values, "_id = ?", args);
cursor.moveToNext(); cursor.moveToNext();
} }
} }
@ -150,17 +148,17 @@ class DBHelper extends SQLiteOpenHelper {
} }
private void renameRepoId(SQLiteDatabase db, int oldVersion) { private void renameRepoId(SQLiteDatabase db, int oldVersion) {
if (oldVersion >= 36 || columnExists(db, TABLE_REPO, "_id")) { if (oldVersion >= 36 || columnExists(db, RepoTable.NAME, "_id")) {
return; return;
} }
Utils.debugLog(TAG, "Renaming " + TABLE_REPO + ".id to _id"); Utils.debugLog(TAG, "Renaming " + RepoTable.NAME + ".id to _id");
db.beginTransaction(); db.beginTransaction();
try { try {
// http://stackoverflow.com/questions/805363/how-do-i-rename-a-column-in-a-sqlite-database-table#805508 // http://stackoverflow.com/questions/805363/how-do-i-rename-a-column-in-a-sqlite-database-table#805508
String tempTableName = TABLE_REPO + "__temp__"; String tempTableName = RepoTable.NAME + "__temp__";
db.execSQL("ALTER TABLE " + TABLE_REPO + " RENAME TO " + tempTableName + ";"); db.execSQL("ALTER TABLE " + RepoTable.NAME + " RENAME TO " + tempTableName + ";");
// I realise this is available in the CREATE_TABLE_REPO above, // I realise this is available in the CREATE_TABLE_REPO above,
// however I have a feeling that it will need to be the same as the // however I have a feeling that it will need to be the same as the
@ -169,7 +167,7 @@ class DBHelper extends SQLiteOpenHelper {
// got removed, then it will break the "insert select" // got removed, then it will break the "insert select"
// statement. Therefore, I've put a copy of CREATE_TABLE_REPO // statement. Therefore, I've put a copy of CREATE_TABLE_REPO
// here that is the same as it was at DBVersion 36. // here that is the same as it was at DBVersion 36.
String createTableDdl = "create table " + TABLE_REPO + " (" String createTableDdl = "create table " + RepoTable.NAME + " ("
+ "_id integer not null primary key, " + "_id integer not null primary key, "
+ "address text not null, " + "address text not null, "
+ "name text, " + "name text, "
@ -188,7 +186,7 @@ class DBHelper extends SQLiteOpenHelper {
String nonIdFields = "address, name, description, inuse, priority, " + String nonIdFields = "address, name, description, inuse, priority, " +
"pubkey, fingerprint, maxage, version, lastetag, lastUpdated"; "pubkey, fingerprint, maxage, version, lastetag, lastUpdated";
String insertSql = "INSERT INTO " + TABLE_REPO + String insertSql = "INSERT INTO " + RepoTable.NAME +
"(_id, " + nonIdFields + " ) " + "(_id, " + nonIdFields + " ) " +
"SELECT id, " + nonIdFields + " FROM " + tempTableName + ";"; "SELECT id, " + nonIdFields + " FROM " + tempTableName + ";";
@ -271,7 +269,7 @@ class DBHelper extends SQLiteOpenHelper {
values.put(RepoTable.Cols.TIMESTAMP, 0); values.put(RepoTable.Cols.TIMESTAMP, 0);
Utils.debugLog(TAG, "Adding repository " + name); Utils.debugLog(TAG, "Adding repository " + name);
db.insert(TABLE_REPO, null, values); db.insert(RepoTable.NAME, null, values);
} }
@Override @Override
@ -314,7 +312,7 @@ class DBHelper extends SQLiteOpenHelper {
return; return;
} }
List<Repo> oldrepos = new ArrayList<>(); List<Repo> oldrepos = new ArrayList<>();
Cursor cursor = db.query(TABLE_REPO, Cursor cursor = db.query(RepoTable.NAME,
new String[] {"address", "inuse", "pubkey"}, new String[] {"address", "inuse", "pubkey"},
null, null, null, null, null); null, null, null, null, null);
if (cursor != null) { if (cursor != null) {
@ -331,7 +329,7 @@ class DBHelper extends SQLiteOpenHelper {
} }
cursor.close(); cursor.close();
} }
db.execSQL("drop table " + TABLE_REPO); db.execSQL("drop table " + RepoTable.NAME);
db.execSQL(CREATE_TABLE_REPO); db.execSQL(CREATE_TABLE_REPO);
for (final Repo repo : oldrepos) { for (final Repo repo : oldrepos) {
ContentValues values = new ContentValues(); ContentValues values = new ContentValues();
@ -340,7 +338,7 @@ class DBHelper extends SQLiteOpenHelper {
values.put("priority", 10); values.put("priority", 10);
values.put("pubkey", repo.signingCertificate); values.put("pubkey", repo.signingCertificate);
values.put("lastetag", (String) null); values.put("lastetag", (String) null);
db.insert(TABLE_REPO, null, values); db.insert(RepoTable.NAME, null, values);
} }
} }
@ -350,7 +348,7 @@ class DBHelper extends SQLiteOpenHelper {
values.clear(); values.clear();
values.put("name", context.getString(nameResId)); values.put("name", context.getString(nameResId));
values.put("description", context.getString(descriptionResId)); values.put("description", context.getString(descriptionResId));
db.update(TABLE_REPO, values, "address = ?", new String[] { db.update(RepoTable.NAME, values, "address = ?", new String[] {
context.getString(addressResId), context.getString(addressResId),
}); });
} }
@ -360,16 +358,16 @@ class DBHelper extends SQLiteOpenHelper {
* default repos with values from strings.xml. * default repos with values from strings.xml.
*/ */
private void addNameAndDescriptionToRepo(SQLiteDatabase db, int oldVersion) { private void addNameAndDescriptionToRepo(SQLiteDatabase db, int oldVersion) {
boolean nameExists = columnExists(db, TABLE_REPO, "name"); boolean nameExists = columnExists(db, RepoTable.NAME, "name");
boolean descriptionExists = columnExists(db, TABLE_REPO, "description"); boolean descriptionExists = columnExists(db, RepoTable.NAME, "description");
if (oldVersion >= 21 || (nameExists && descriptionExists)) { if (oldVersion >= 21 || (nameExists && descriptionExists)) {
return; return;
} }
if (!nameExists) { if (!nameExists) {
db.execSQL("alter table " + TABLE_REPO + " add column name text"); db.execSQL("alter table " + RepoTable.NAME + " add column name text");
} }
if (!descriptionExists) { if (!descriptionExists) {
db.execSQL("alter table " + TABLE_REPO + " add column description text"); db.execSQL("alter table " + RepoTable.NAME + " add column description text");
} }
insertNameAndDescription(db, R.string.fdroid_repo_address, insertNameAndDescription(db, R.string.fdroid_repo_address,
R.string.fdroid_repo_name, R.string.fdroid_repo_description); R.string.fdroid_repo_name, R.string.fdroid_repo_description);
@ -390,11 +388,11 @@ class DBHelper extends SQLiteOpenHelper {
if (oldVersion >= 44) { if (oldVersion >= 44) {
return; return;
} }
if (!columnExists(db, TABLE_REPO, "fingerprint")) { if (!columnExists(db, RepoTable.NAME, "fingerprint")) {
db.execSQL("alter table " + TABLE_REPO + " add column fingerprint text"); db.execSQL("alter table " + RepoTable.NAME + " add column fingerprint text");
} }
List<Repo> oldrepos = new ArrayList<>(); List<Repo> oldrepos = new ArrayList<>();
Cursor cursor = db.query(TABLE_REPO, Cursor cursor = db.query(RepoTable.NAME,
new String[] {"address", "pubkey"}, new String[] {"address", "pubkey"},
null, null, null, null, null); null, null, null, null, null);
if (cursor != null) { if (cursor != null) {
@ -413,52 +411,52 @@ class DBHelper extends SQLiteOpenHelper {
for (final Repo repo : oldrepos) { for (final Repo repo : oldrepos) {
ContentValues values = new ContentValues(); ContentValues values = new ContentValues();
values.put("fingerprint", Utils.calcFingerprint(repo.signingCertificate)); values.put("fingerprint", Utils.calcFingerprint(repo.signingCertificate));
db.update(TABLE_REPO, values, "address = ?", new String[] {repo.address}); db.update(RepoTable.NAME, values, "address = ?", new String[] {repo.address});
} }
} }
private void addMaxAgeToRepo(SQLiteDatabase db, int oldVersion) { private void addMaxAgeToRepo(SQLiteDatabase db, int oldVersion) {
if (oldVersion >= 30 || columnExists(db, TABLE_REPO, "maxage")) { if (oldVersion >= 30 || columnExists(db, RepoTable.NAME, "maxage")) {
return; return;
} }
db.execSQL("alter table " + TABLE_REPO + " add column maxage integer not null default 0"); db.execSQL("alter table " + RepoTable.NAME + " add column maxage integer not null default 0");
} }
private void addVersionToRepo(SQLiteDatabase db, int oldVersion) { private void addVersionToRepo(SQLiteDatabase db, int oldVersion) {
if (oldVersion >= 33 || columnExists(db, TABLE_REPO, "version")) { if (oldVersion >= 33 || columnExists(db, RepoTable.NAME, "version")) {
return; return;
} }
db.execSQL("alter table " + TABLE_REPO + " add column version integer not null default 0"); db.execSQL("alter table " + RepoTable.NAME + " add column version integer not null default 0");
} }
private void addLastUpdatedToRepo(SQLiteDatabase db, int oldVersion) { private void addLastUpdatedToRepo(SQLiteDatabase db, int oldVersion) {
if (oldVersion >= 35 || columnExists(db, TABLE_REPO, "lastUpdated")) { if (oldVersion >= 35 || columnExists(db, RepoTable.NAME, "lastUpdated")) {
return; return;
} }
Utils.debugLog(TAG, "Adding lastUpdated column to " + TABLE_REPO); Utils.debugLog(TAG, "Adding lastUpdated column to " + RepoTable.NAME);
db.execSQL("Alter table " + TABLE_REPO + " add column lastUpdated string"); db.execSQL("Alter table " + RepoTable.NAME + " add column lastUpdated string");
} }
private void addIsSwapToRepo(SQLiteDatabase db, int oldVersion) { private void addIsSwapToRepo(SQLiteDatabase db, int oldVersion) {
if (oldVersion >= 47 || columnExists(db, TABLE_REPO, "isSwap")) { if (oldVersion >= 47 || columnExists(db, RepoTable.NAME, "isSwap")) {
return; return;
} }
Utils.debugLog(TAG, "Adding isSwap field to " + TABLE_REPO + " table in db."); Utils.debugLog(TAG, "Adding isSwap field to " + RepoTable.NAME + " table in db.");
db.execSQL("alter table " + TABLE_REPO + " add column isSwap boolean default 0;"); db.execSQL("alter table " + RepoTable.NAME + " add column isSwap boolean default 0;");
} }
private void addCredentialsToRepo(SQLiteDatabase db, int oldVersion) { private void addCredentialsToRepo(SQLiteDatabase db, int oldVersion) {
if (oldVersion >= 52) { if (oldVersion >= 52) {
return; return;
} }
if (!columnExists(db, TABLE_REPO, "username")) { if (!columnExists(db, Schema.RepoTable.NAME, "username")) {
Utils.debugLog(TAG, "Adding username field to " + TABLE_REPO + " table in db."); Utils.debugLog(TAG, "Adding username field to " + RepoTable.NAME + " table in db.");
db.execSQL("alter table " + TABLE_REPO + " add column username string;"); db.execSQL("alter table " + RepoTable.NAME + " add column username string;");
} }
if (!columnExists(db, TABLE_REPO, "password")) { if (!columnExists(db, RepoTable.NAME, "password")) {
Utils.debugLog(TAG, "Adding password field to " + TABLE_REPO + " table in db."); Utils.debugLog(TAG, "Adding password field to " + RepoTable.NAME + " table in db.");
db.execSQL("alter table " + TABLE_REPO + " add column password string;"); db.execSQL("alter table " + RepoTable.NAME + " add column password string;");
} }
} }
@ -519,9 +517,9 @@ class DBHelper extends SQLiteOpenHelper {
if (oldVersion >= 55) { if (oldVersion >= 55) {
return; return;
} }
if (!columnExists(db, TABLE_REPO, RepoTable.Cols.TIMESTAMP)) { if (!columnExists(db, RepoTable.NAME, RepoTable.Cols.TIMESTAMP)) {
Utils.debugLog(TAG, "Adding " + RepoTable.Cols.TIMESTAMP + " column to " + TABLE_REPO); Utils.debugLog(TAG, "Adding " + RepoTable.Cols.TIMESTAMP + " column to " + RepoTable.NAME);
db.execSQL("alter table " + TABLE_REPO + " add column " db.execSQL("alter table " + RepoTable.NAME + " add column "
+ RepoTable.Cols.TIMESTAMP + " integer not null default 0"); + RepoTable.Cols.TIMESTAMP + " integer not null default 0");
} }
} }
@ -533,7 +531,7 @@ class DBHelper extends SQLiteOpenHelper {
*/ */
private void clearRepoEtags(SQLiteDatabase db) { private void clearRepoEtags(SQLiteDatabase db) {
Utils.debugLog(TAG, "Clearing repo etags, so next update will not be skipped with \"Repos up to date\"."); Utils.debugLog(TAG, "Clearing repo etags, so next update will not be skipped with \"Repos up to date\".");
db.execSQL("update " + TABLE_REPO + " set lastetag = NULL"); db.execSQL("update " + RepoTable.NAME + " set lastetag = NULL");
} }
private void resetTransient(SQLiteDatabase db, int oldVersion) { private void resetTransient(SQLiteDatabase db, int oldVersion) {

View File

@ -11,6 +11,7 @@ import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import org.fdroid.fdroid.Utils; import org.fdroid.fdroid.Utils;
import org.fdroid.fdroid.data.Schema.RepoTable;
import org.fdroid.fdroid.data.Schema.RepoTable.Cols; import org.fdroid.fdroid.data.Schema.RepoTable.Cols;
import java.util.ArrayList; import java.util.ArrayList;
@ -242,7 +243,7 @@ public class RepoProvider extends FDroidProvider {
@Override @Override
protected String getTableName() { protected String getTableName() {
return DBHelper.TABLE_REPO; return RepoTable.NAME;
} }
@Override @Override

View File

@ -107,7 +107,7 @@ public interface Schema {
} }
interface RepoTable { interface RepoTable {
String NAME = DBHelper.TABLE_REPO; String NAME = "fdroid_repo";
interface Cols extends BaseColumns { interface Cols extends BaseColumns {
String ADDRESS = "address"; String ADDRESS = "address";