From 765f6b840fd88d4ed4c0e94eab7b37e28378ad9e Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Fri, 10 Jan 2020 17:06:58 +0100 Subject: [PATCH] rename App.upstreamVersionCode to suggestedVersionCode #1063 --- .../main/java/org/fdroid/fdroid/data/App.java | 19 ++++++++----------- .../org/fdroid/fdroid/data/AppProvider.java | 8 ++++---- .../java/org/fdroid/fdroid/data/DBHelper.java | 2 +- .../fdroid/data/InstalledAppProvider.java | 2 +- .../fdroid/fdroid/data/RepoXMLHandler.java | 2 +- .../java/org/fdroid/fdroid/data/Schema.java | 6 +++--- .../fdroid/fdroid/data/TempAppProvider.java | 2 +- .../java/org/fdroid/fdroid/TestUtils.java | 8 ++++---- .../fdroid/data/InstalledAppProviderTest.java | 6 +++--- .../fdroid/data/SuggestedVersionTest.java | 16 ++++++++-------- 10 files changed, 34 insertions(+), 37 deletions(-) diff --git a/app/src/main/java/org/fdroid/fdroid/data/App.java b/app/src/main/java/org/fdroid/fdroid/data/App.java index 8dd8e6765..ed6288c23 100644 --- a/app/src/main/java/org/fdroid/fdroid/data/App.java +++ b/app/src/main/java/org/fdroid/fdroid/data/App.java @@ -170,14 +170,11 @@ public class App extends ValueObject implements Comparable, Parcelable { public String suggestedVersionName; /** - * The index-v1 metadata uses the term `suggestedVersionCode` but we need that - * value to end up in the `upstreamVersionCode` property here. These variables - * need to be renamed across the whole F-Droid ecosystem to make sense. + * This matches {@code CurrentVersionCode} in build metadata files. * - * @see issue #1063 + * @see CurrentVersionCode */ - @JsonProperty("suggestedVersionCode") - public int upstreamVersionCode; + public int suggestedVersionCode; /** * Unlike other public fields, this is only accessible via a getter, to @@ -317,8 +314,8 @@ public class App extends ValueObject implements Comparable, Parcelable { case Cols.AUTO_INSTALL_VERSION_CODE: autoInstallVersionCode = cursor.getInt(i); break; - case Cols.UPSTREAM_VERSION_CODE: - upstreamVersionCode = cursor.getInt(i); + case Cols.SUGGESTED_VERSION_CODE: + suggestedVersionCode = cursor.getInt(i); break; case Cols.SUGGESTED_VERSION_NAME: suggestedVersionName = cursor.getString(i); @@ -966,7 +963,7 @@ public class App extends ValueObject implements Comparable, Parcelable { values.put(Cols.PREFERRED_SIGNER, preferredSigner); values.put(Cols.AUTO_INSTALL_VERSION_CODE, autoInstallVersionCode); values.put(Cols.SUGGESTED_VERSION_NAME, suggestedVersionName); - values.put(Cols.UPSTREAM_VERSION_CODE, upstreamVersionCode); + values.put(Cols.SUGGESTED_VERSION_CODE, suggestedVersionCode); values.put(Cols.ForWriting.Categories.CATEGORIES, Utils.serializeCommaSeparatedString(categories)); values.put(Cols.ANTI_FEATURES, Utils.serializeCommaSeparatedString(antiFeatures)); values.put(Cols.REQUIREMENTS, Utils.serializeCommaSeparatedString(requirements)); @@ -1192,7 +1189,7 @@ public class App extends ValueObject implements Comparable, Parcelable { dest.writeString(this.liberapayID); dest.writeString(this.preferredSigner); dest.writeString(this.suggestedVersionName); - dest.writeInt(this.upstreamVersionCode); + dest.writeInt(this.suggestedVersionCode); dest.writeString(this.autoInstallVersionName); dest.writeInt(this.autoInstallVersionCode); dest.writeLong(this.added != null ? this.added.getTime() : -1); @@ -1243,7 +1240,7 @@ public class App extends ValueObject implements Comparable, Parcelable { this.liberapayID = in.readString(); this.preferredSigner = in.readString(); this.suggestedVersionName = in.readString(); - this.upstreamVersionCode = in.readInt(); + this.suggestedVersionCode = in.readInt(); this.autoInstallVersionName = in.readString(); this.autoInstallVersionCode = in.readInt(); long tmpAdded = in.readLong(); diff --git a/app/src/main/java/org/fdroid/fdroid/data/AppProvider.java b/app/src/main/java/org/fdroid/fdroid/data/AppProvider.java index 40765ec7f..7cd30f4f9 100644 --- a/app/src/main/java/org/fdroid/fdroid/data/AppProvider.java +++ b/app/src/main/java/org/fdroid/fdroid/data/AppProvider.java @@ -1098,7 +1098,7 @@ public class AppProvider extends FDroidProvider { final String installed = InstalledAppTable.NAME; final boolean unstableUpdates = Preferences.get().getUnstableUpdates(); - String restrictToStable = unstableUpdates ? "" : (apk + "." + ApkTable.Cols.VERSION_CODE + " <= " + app + "." + Cols.UPSTREAM_VERSION_CODE + " AND "); + String restrictToStable = unstableUpdates ? "" : (apk + "." + ApkTable.Cols.VERSION_CODE + " <= " + app + "." + Cols.SUGGESTED_VERSION_CODE + " AND "); String restrictToApp = ""; String[] args = null; @@ -1133,7 +1133,7 @@ public class AppProvider extends FDroidProvider { apk + "." + ApkTable.Cols.SIGNATURE + " IS COALESCE(" + installed + "." + InstalledAppTable.Cols.SIGNATURE + ", " + apk + "." + ApkTable.Cols.SIGNATURE + ") AND " + restrictToStable + " ( " + app + "." + Cols.IS_COMPATIBLE + " = 0 OR " + apk + "." + Cols.IS_COMPATIBLE + " = 1 ) ) " + - " WHERE " + Cols.UPSTREAM_VERSION_CODE + " > 0 " + restrictToApp; + " WHERE " + Cols.SUGGESTED_VERSION_CODE + " > 0 " + restrictToApp; LoggingQuery.execSQL(db(), updateSql, args); } @@ -1159,12 +1159,12 @@ public class AppProvider extends FDroidProvider { final String[] args; if (packageName == null) { - restrictToApps = " COALESCE(" + Cols.UPSTREAM_VERSION_CODE + ", 0) = 0 OR " + Cols.AUTO_INSTALL_VERSION_CODE + " IS NULL "; + restrictToApps = " COALESCE(" + Cols.SUGGESTED_VERSION_CODE + ", 0) = 0 OR " + Cols.AUTO_INSTALL_VERSION_CODE + " IS NULL "; args = null; } else { // Don't update an app with an upstream version code, because that would have been updated // by updateSuggestedFromUpdate(packageName). - restrictToApps = " COALESCE(" + Cols.UPSTREAM_VERSION_CODE + ", 0) = 0 AND " + app + "." + Cols.PACKAGE_ID + " = (" + getPackageIdFromPackageNameQuery() + ") "; + restrictToApps = " COALESCE(" + Cols.SUGGESTED_VERSION_CODE + ", 0) = 0 AND " + app + "." + Cols.PACKAGE_ID + " = (" + getPackageIdFromPackageNameQuery() + ") "; args = new String[]{packageName}; } 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 783787e5e..1da49a6e5 100644 --- a/app/src/main/java/org/fdroid/fdroid/data/DBHelper.java +++ b/app/src/main/java/org/fdroid/fdroid/data/DBHelper.java @@ -149,7 +149,7 @@ public class DBHelper extends SQLiteOpenHelper { + AppMetadataTable.Cols.PREFERRED_SIGNER + " text," + AppMetadataTable.Cols.AUTO_INSTALL_VERSION_CODE + " text," + AppMetadataTable.Cols.SUGGESTED_VERSION_NAME + " text," - + AppMetadataTable.Cols.UPSTREAM_VERSION_CODE + " integer," + + AppMetadataTable.Cols.SUGGESTED_VERSION_CODE + " integer," + AppMetadataTable.Cols.ANTI_FEATURES + " string," + AppMetadataTable.Cols.DONATE + " string," + AppMetadataTable.Cols.BITCOIN + " string," diff --git a/app/src/main/java/org/fdroid/fdroid/data/InstalledAppProvider.java b/app/src/main/java/org/fdroid/fdroid/data/InstalledAppProvider.java index 4af811869..b60491eb0 100644 --- a/app/src/main/java/org/fdroid/fdroid/data/InstalledAppProvider.java +++ b/app/src/main/java/org/fdroid/fdroid/data/InstalledAppProvider.java @@ -274,7 +274,7 @@ public class InstalledAppProvider extends FDroidProvider { query = new QueryBuilder(); query.addField(Cols._ID); query.appendField(Cols.APPLICATION_LABEL, null, Schema.AppMetadataTable.Cols.NAME); - query.appendField(Cols.VERSION_CODE, null, AppMetadataTable.Cols.UPSTREAM_VERSION_CODE); + query.appendField(Cols.VERSION_CODE, null, AppMetadataTable.Cols.SUGGESTED_VERSION_CODE); query.appendField(Cols.VERSION_NAME, null, AppMetadataTable.Cols.SUGGESTED_VERSION_NAME); query.appendField(PackageTable.Cols.PACKAGE_NAME, PackageTable.NAME, AppMetadataTable.Cols.Package.PACKAGE_NAME); diff --git a/app/src/main/java/org/fdroid/fdroid/data/RepoXMLHandler.java b/app/src/main/java/org/fdroid/fdroid/data/RepoXMLHandler.java index a41d69285..a70a00cbc 100644 --- a/app/src/main/java/org/fdroid/fdroid/data/RepoXMLHandler.java +++ b/app/src/main/java/org/fdroid/fdroid/data/RepoXMLHandler.java @@ -272,7 +272,7 @@ public class RepoXMLHandler extends DefaultHandler { curapp.suggestedVersionName = str; break; case "marketvercode": - curapp.upstreamVersionCode = Utils.parseInt(str, -1); + curapp.suggestedVersionCode = Utils.parseInt(str, -1); break; case "categories": curapp.categories = Utils.parseCommaSeparatedString(str); diff --git a/app/src/main/java/org/fdroid/fdroid/data/Schema.java b/app/src/main/java/org/fdroid/fdroid/data/Schema.java index fbad52881..b11a4ff13 100644 --- a/app/src/main/java/org/fdroid/fdroid/data/Schema.java +++ b/app/src/main/java/org/fdroid/fdroid/data/Schema.java @@ -193,7 +193,7 @@ public interface Schema { String PREFERRED_SIGNER = "preferredSigner"; String AUTO_INSTALL_VERSION_CODE = "suggestedVercode"; // name mismatch from issue #1063 String SUGGESTED_VERSION_NAME = "upstreamVersion"; // name mismatch from issue #1063 - String UPSTREAM_VERSION_CODE = "upstreamVercode"; + String SUGGESTED_VERSION_CODE = "upstreamVercode"; // name mismatch from issue #1063 String ADDED = "added"; String LAST_UPDATED = "lastUpdated"; String ANTI_FEATURES = "antiFeatures"; @@ -244,7 +244,7 @@ public interface Schema { ROW_ID, PACKAGE_ID, REPO_ID, IS_COMPATIBLE, NAME, SUMMARY, ICON, DESCRIPTION, WHATSNEW, LICENSE, AUTHOR_NAME, AUTHOR_EMAIL, WEBSITE, ISSUE_TRACKER, SOURCE_CODE, TRANSLATION, VIDEO, CHANGELOG, DONATE, BITCOIN, LITECOIN, FLATTR_ID, LIBERAPAY_ID, - SUGGESTED_VERSION_NAME, UPSTREAM_VERSION_CODE, ADDED, LAST_UPDATED, + SUGGESTED_VERSION_NAME, SUGGESTED_VERSION_CODE, ADDED, LAST_UPDATED, ANTI_FEATURES, REQUIREMENTS, ICON_URL, FEATURE_GRAPHIC, PROMO_GRAPHIC, TV_BANNER, PHONE_SCREENSHOTS, SEVEN_INCH_SCREENSHOTS, TEN_INCH_SCREENSHOTS, TV_SCREENSHOTS, WEAR_SCREENSHOTS, @@ -261,7 +261,7 @@ public interface Schema { _ID, ROW_ID, REPO_ID, IS_COMPATIBLE, NAME, SUMMARY, ICON, DESCRIPTION, WHATSNEW, LICENSE, AUTHOR_NAME, AUTHOR_EMAIL, WEBSITE, ISSUE_TRACKER, SOURCE_CODE, TRANSLATION, VIDEO, CHANGELOG, DONATE, BITCOIN, LITECOIN, FLATTR_ID, LIBERAPAY_ID, - SUGGESTED_VERSION_NAME, UPSTREAM_VERSION_CODE, ADDED, LAST_UPDATED, + SUGGESTED_VERSION_NAME, SUGGESTED_VERSION_CODE, ADDED, LAST_UPDATED, ANTI_FEATURES, REQUIREMENTS, ICON_URL, FEATURE_GRAPHIC, PROMO_GRAPHIC, TV_BANNER, PHONE_SCREENSHOTS, SEVEN_INCH_SCREENSHOTS, TEN_INCH_SCREENSHOTS, TV_SCREENSHOTS, WEAR_SCREENSHOTS, 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 12bb497e0..aa7a91719 100644 --- a/app/src/main/java/org/fdroid/fdroid/data/TempAppProvider.java +++ b/app/src/main/java/org/fdroid/fdroid/data/TempAppProvider.java @@ -199,7 +199,7 @@ public class TempAppProvider extends AppProvider { db.execSQL(copyData(CatJoinTable.Cols.ALL_COLS, mainCat, tempCat, null)); db.execSQL("CREATE INDEX IF NOT EXISTS " + DB + ".app_id ON " + getTableName() + " (" + Cols.PACKAGE_ID + ");"); - db.execSQL("CREATE INDEX IF NOT EXISTS " + DB + ".app_upstreamVercode ON " + getTableName() + " (" + Cols.UPSTREAM_VERSION_CODE + ");"); + db.execSQL("CREATE INDEX IF NOT EXISTS " + DB + ".app_upstreamVercode ON " + getTableName() + " (" + Cols.SUGGESTED_VERSION_CODE + ");"); db.execSQL("CREATE INDEX IF NOT EXISTS " + DB + ".app_compatible ON " + getTableName() + " (" + Cols.IS_COMPATIBLE + ");"); } diff --git a/app/src/test/java/org/fdroid/fdroid/TestUtils.java b/app/src/test/java/org/fdroid/fdroid/TestUtils.java index dee0ec9c5..64d90a626 100644 --- a/app/src/test/java/org/fdroid/fdroid/TestUtils.java +++ b/app/src/test/java/org/fdroid/fdroid/TestUtils.java @@ -94,17 +94,17 @@ public class TestUtils { return ApkProvider.Helper.findByUri(context, uri, Schema.ApkTable.Cols.ALL); } - public static App insertApp(Context context, String packageName, String appName, int upstreamVersionCode, + public static App insertApp(Context context, String packageName, String appName, int suggestedVersionCode, String repoUrl, String preferredSigner) { Repo repo = ensureRepo(context, repoUrl); - return insertApp(context, packageName, appName, upstreamVersionCode, repo, preferredSigner); + return insertApp(context, packageName, appName, suggestedVersionCode, repo, preferredSigner); } - public static App insertApp(Context context, String packageName, String appName, int upstreamVersionCode, + public static App insertApp(Context context, String packageName, String appName, int suggestedVersionCode, Repo repo, String preferredSigner) { ContentValues values = new ContentValues(); values.put(Schema.AppMetadataTable.Cols.REPO_ID, repo.getId()); - values.put(Schema.AppMetadataTable.Cols.UPSTREAM_VERSION_CODE, upstreamVersionCode); + values.put(Schema.AppMetadataTable.Cols.SUGGESTED_VERSION_CODE, suggestedVersionCode); values.put(Schema.AppMetadataTable.Cols.PREFERRED_SIGNER, preferredSigner); return Assert.insertApp(context, packageName, appName, values); } diff --git a/app/src/test/java/org/fdroid/fdroid/data/InstalledAppProviderTest.java b/app/src/test/java/org/fdroid/fdroid/data/InstalledAppProviderTest.java index d607833b5..920629872 100644 --- a/app/src/test/java/org/fdroid/fdroid/data/InstalledAppProviderTest.java +++ b/app/src/test/java/org/fdroid/fdroid/data/InstalledAppProviderTest.java @@ -95,13 +95,13 @@ public class InstalledAppProviderTest extends FDroidProviderTest { assertEquals(3, apps.length); assertEquals(packageName0, apps[0].packageName); assertEquals("v0", apps[0].suggestedVersionName); - assertEquals(0, apps[0].upstreamVersionCode); + assertEquals(0, apps[0].suggestedVersionCode); assertEquals(packageName1, apps[1].packageName); assertEquals("v1", apps[1].suggestedVersionName); - assertEquals(1, apps[1].upstreamVersionCode); + assertEquals(1, apps[1].suggestedVersionCode); assertEquals(packageName2, apps[2].packageName); assertEquals("v2", apps[2].suggestedVersionName); - assertEquals(2, apps[2].upstreamVersionCode); + assertEquals(2, apps[2].suggestedVersionCode); assertNotEquals(packageName0, apps[2].packageName); } diff --git a/app/src/test/java/org/fdroid/fdroid/data/SuggestedVersionTest.java b/app/src/test/java/org/fdroid/fdroid/data/SuggestedVersionTest.java index 027cbd16d..ab8a8c71e 100644 --- a/app/src/test/java/org/fdroid/fdroid/data/SuggestedVersionTest.java +++ b/app/src/test/java/org/fdroid/fdroid/data/SuggestedVersionTest.java @@ -44,7 +44,7 @@ public class SuggestedVersionTest extends FDroidProviderTest { TestUtils.updateDbAfterInserting(context); assertSuggested("single.app", 2); - // By enabling unstable updates, the "upstreamVersionCode" should get ignored, and we should + // By enabling unstable updates, the "suggestedVersionCode" should get ignored, and we should // suggest the latest version (3). Preferences.get().setUnstableUpdates(true); assertSuggested("single.app", 3); @@ -66,7 +66,7 @@ public class SuggestedVersionTest extends FDroidProviderTest { TestUtils.updateDbAfterInserting(context); // Given we aren't installed yet, we don't care which signature. - // Just get as close to upstreamVersionCode as possible. + // Just get as close to suggestedVersionCode as possible. assertSuggested("single.app", 4); // Now install v1 with the f-droid signature. In response, we should only suggest @@ -74,13 +74,13 @@ public class SuggestedVersionTest extends FDroidProviderTest { InstalledAppTestUtils.install(context, "single.app", 1, "v1", TestUtils.FDROID_CERT); assertSuggested("single.app", 3, TestUtils.FDROID_SIG, 1); - // This adds the "upstreamVersionCode" version of the app, but signed by f-droid. + // This adds the "suggestedVersionCode" version of the app, but signed by f-droid. TestUtils.insertApk(context, singleApp, 4, TestUtils.FDROID_SIG); TestUtils.insertApk(context, singleApp, 5, TestUtils.FDROID_SIG); TestUtils.updateDbAfterInserting(context); assertSuggested("single.app", 4, TestUtils.FDROID_SIG, 1); - // Version 5 from F-Droid is not the "upstreamVersionCode", but with beta updates it should + // Version 5 from F-Droid is not the "suggestedVersionCode", but with beta updates it should // still become the suggested version now. Preferences.get().setUnstableUpdates(true); assertSuggested("single.app", 5, TestUtils.FDROID_SIG, 1); @@ -111,7 +111,7 @@ public class SuggestedVersionTest extends FDroidProviderTest { TestUtils.updateDbAfterInserting(context); // Given we aren't installed yet, we don't care which signature or even which repo. - // Just get as close to upstreamVersionCode as possible. + // Just get as close to suggestedVersionCode as possible. assertSuggested("single.app", 4); // Now install v1 with the f-droid signature. In response, we should only suggest @@ -119,7 +119,7 @@ public class SuggestedVersionTest extends FDroidProviderTest { InstalledAppTestUtils.install(context, "single.app", 1, "v1", TestUtils.FDROID_CERT); assertSuggested("single.app", 3, TestUtils.FDROID_SIG, 1); - // This adds the "upstreamVersionCode" version of the app, but signed by f-droid. + // This adds the "suggestedVersionCode" version of the app, but signed by f-droid. TestUtils.insertApk(context, mainApp, 4, TestUtils.FDROID_SIG); TestUtils.insertApk(context, mainApp, 5, TestUtils.FDROID_SIG); TestUtils.updateDbAfterInserting(context); @@ -131,7 +131,7 @@ public class SuggestedVersionTest extends FDroidProviderTest { InstalledAppTestUtils.install(context, "single.app", 3, "v3", TestUtils.THIRD_PARTY_CERT); assertSuggested("single.app", 4, TestUtils.THIRD_PARTY_SIG, 3); - // Version 6 from the 3rd party repo is not the "upstreamVersionCode", but with beta updates + // Version 6 from the 3rd party repo is not the "suggestedVersionCode", but with beta updates // it should still become the suggested version now. Preferences.get().setUnstableUpdates(true); assertSuggested("single.app", 6, TestUtils.THIRD_PARTY_SIG, 3); @@ -144,7 +144,7 @@ public class SuggestedVersionTest extends FDroidProviderTest { */ @Test public void dontSuggestUpstreamVersions() { - // By setting the "upstreamVersionCode" to 0, we are letting F-Droid choose the highest compatible version. + // By setting the "suggestedVersionCode" to 0, we are letting F-Droid choose the highest compatible version. App mainApp = TestUtils.insertApp(context, "single.app", "Single App (Main repo)", 0, "https://main.repo", TestUtils.UPSTREAM_SIG);