From 41b5797307b2c46b25108a89665458071bbdfa97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Sun, 16 Feb 2014 02:48:22 +0100 Subject: [PATCH 1/6] Automatic tab fixing --- .../src/mock/MockContextSwappableComponents.java | 2 +- test/src/org/fdroid/fdroid/AppProviderTest.java | 16 ++++++++-------- .../org/fdroid/fdroid/FDroidProviderTest.java | 8 ++++---- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/test/src/mock/MockContextSwappableComponents.java b/test/src/mock/MockContextSwappableComponents.java index 750adbed6..9cb09f466 100644 --- a/test/src/mock/MockContextSwappableComponents.java +++ b/test/src/mock/MockContextSwappableComponents.java @@ -38,6 +38,6 @@ public class MockContextSwappableComponents extends MockContext { @Override public MockContentResolver getContentResolver() { - return contentResolver; + return contentResolver; } } diff --git a/test/src/org/fdroid/fdroid/AppProviderTest.java b/test/src/org/fdroid/fdroid/AppProviderTest.java index 3252fd829..875b84c92 100644 --- a/test/src/org/fdroid/fdroid/AppProviderTest.java +++ b/test/src/org/fdroid/fdroid/AppProviderTest.java @@ -24,7 +24,7 @@ public class AppProviderTest extends FDroidProviderTest { public void setUp() throws Exception { super.setUp(); getSwappableContext().setResources(new MockCategoryResources()); - getSwappableContext().setContentResolver(getMockContentResolver()); + getSwappableContext().setContentResolver(getMockContentResolver()); } protected String[] getMinimalProjection() { @@ -135,13 +135,13 @@ public class AppProviderTest extends FDroidProviderTest { List categories = AppProvider.Helper.categories(getMockContext()); String[] expected = new String[] { - getMockContext().getResources().getString(R.string.category_whatsnew), - getMockContext().getResources().getString(R.string.category_recentlyupdated), - getMockContext().getResources().getString(R.string.category_all), - "Animal", - "Mineral", - "Vegetable" - }; + getMockContext().getResources().getString(R.string.category_whatsnew), + getMockContext().getResources().getString(R.string.category_recentlyupdated), + getMockContext().getResources().getString(R.string.category_all), + "Animal", + "Mineral", + "Vegetable" + }; assertContainsOnly(categories, expected); } diff --git a/test/src/org/fdroid/fdroid/FDroidProviderTest.java b/test/src/org/fdroid/fdroid/FDroidProviderTest.java index 776202ba0..23ba41742 100644 --- a/test/src/org/fdroid/fdroid/FDroidProviderTest.java +++ b/test/src/org/fdroid/fdroid/FDroidProviderTest.java @@ -53,10 +53,10 @@ public abstract class FDroidProviderTest extends Provi protected void assertInvalidUri(Uri uri) { try { - // Use getProvdider instead of getContentResolver, because the mock - // content resolver wont result in the provider we are testing, and - // hence we don't get to see how our provider responds to invalid - // uris. + // Use getProvdider instead of getContentResolver, because the mock + // content resolver wont result in the provider we are testing, and + // hence we don't get to see how our provider responds to invalid + // uris. getProvider().query(uri, getMinimalProjection(), null, null, null); fail(); } catch (UnsupportedOperationException e) {} From 8473627370631ea02377c5641f0de1941e3bae63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Mon, 17 Feb 2014 10:34:28 +0100 Subject: [PATCH 2/6] Update changelog with my recent changes --- CHANGELOG.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index edbbf8abe..790b0b3b9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,10 +9,12 @@ beam the FDroid.apk from FDroid's main screen (Android 4.1+) * Support for repositories using self-signed HTTPS certificates through - Trust-on-first-use popup + a Trust-on-first-use popup * Support for TLS Subject-Public-Key-Identifier pinning +* Various fixes to layout issues introduced in 0.58 + ### 0.58 (2014-01-11) * Download icons with a resolution that matches the device's screen density, From b222887745786999e9d6864e1b46a7fd206314b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Mon, 17 Feb 2014 10:42:19 +0100 Subject: [PATCH 3/6] Start TODO to be emptied before the upcoming stable release --- TODO-before-release.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 TODO-before-release.md diff --git a/TODO-before-release.md b/TODO-before-release.md new file mode 100644 index 000000000..b755ba856 --- /dev/null +++ b/TODO-before-release.md @@ -0,0 +1,14 @@ +These issues are a must-fix before the next stable release: + +* Move Ignore settings into separate table to not overwrite them upon repo + update + +* Right after updating a repo, "Recently Updated" shows the apps correctly but + the new apks don't show up on App Details until the whole app is restarted + (or until the repos are wiped and re-downloaded) + +Other minor issues: + +* Make the bluetooth option prettier. Options: + - Move it into submenu (like "Share F-Droid" -> "Bluetooth/Mail/NFC/...") + - Remove ellipsis from menu option string From 799be522249914048774c734fb6609de492b4981 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Mon, 17 Feb 2014 16:09:57 +0100 Subject: [PATCH 4/6] Fix regression: Don't count apps which we don't want to update --- src/org/fdroid/fdroid/UpdateService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/org/fdroid/fdroid/UpdateService.java b/src/org/fdroid/fdroid/UpdateService.java index 4741aa51a..ac7689b9a 100644 --- a/src/org/fdroid/fdroid/UpdateService.java +++ b/src/org/fdroid/fdroid/UpdateService.java @@ -304,8 +304,8 @@ public class UpdateService extends IntentService implements ProgressListener { if (success && changes && prefs.getBoolean(Preferences.PREF_UPD_NOTIFY, false)) { int updateCount = 0; for (App app : appsToUpdate.values()) { - if (app.hasUpdates(this)) { - updateCount ++; + if (app.canAndWantToUpdate(this)) { + updateCount++; } } From 68a719f48a9b06e8d54891ed7b4e68f5b6090f34 Mon Sep 17 00:00:00 2001 From: Peter Serwylo Date: Tue, 18 Feb 2014 08:11:02 +1100 Subject: [PATCH 5/6] Don't overwrite "ignore updates" settings on update. For now, the UpdateService ignores these fields when updating from the index. There is no time that the index should specify what versions to be ignored. In the future, this will be done with a join table that stores info about what to ignore. Another future improvement should also be to make "App.toContentValues()" smarter. That is, make it only return values which have been set since the object was created. However this will add an overhead which may or may not be noticable. --- TODO-before-release.md | 3 --- src/org/fdroid/fdroid/UpdateService.java | 19 +++++++++++++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/TODO-before-release.md b/TODO-before-release.md index b755ba856..1a0d72a39 100644 --- a/TODO-before-release.md +++ b/TODO-before-release.md @@ -1,8 +1,5 @@ These issues are a must-fix before the next stable release: -* Move Ignore settings into separate table to not overwrite them upon repo - update - * Right after updating a repo, "Recently Updated" shows the apps correctly but the new apks don't show up on App Details until the whole app is restarted (or until the repos are wiped and re-downloaded) diff --git a/src/org/fdroid/fdroid/UpdateService.java b/src/org/fdroid/fdroid/UpdateService.java index ac7689b9a..915da5e82 100644 --- a/src/org/fdroid/fdroid/UpdateService.java +++ b/src/org/fdroid/fdroid/UpdateService.java @@ -55,6 +55,20 @@ public class UpdateService extends IntentService implements ProgressListener { super("UpdateService"); } + /** + * When an app already exists in the db, and we are updating it on the off chance that some + * values changed in the index, some fields should not be updated. Rather, they should be + * ignored, because they were explicitly set by the user, and hence can't be automatically + * overridden by the index. + * + * NOTE: In the future, these attributes will be moved to a join table, so that the app table + * is essentially completely transient, and can be nuked at any time. + */ + private static final String[] APP_FIELDS_TO_IGNORE = { + AppProvider.DataColumns.IGNORE_ALLUPDATES, + AppProvider.DataColumns.IGNORE_THISUPDATE + }; + // For receiving results from the UpdateService when we've told it to // update in response to a user request. public static class UpdateReceiver extends ResultReceiver { @@ -644,6 +658,11 @@ public class UpdateService extends IntentService implements ProgressListener { private ContentProviderOperation updateExistingApp(App app) { Uri uri = AppProvider.getContentUri(app); ContentValues values = app.toContentValues(); + for (String toIgnore : APP_FIELDS_TO_IGNORE) { + if (values.containsKey(toIgnore)) { + values.remove(toIgnore); + } + } return ContentProviderOperation.newUpdate(uri).withValues(values).build(); } From 4b4ee4b6db324116dbc7b36a39173b9f7056874c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Tue, 18 Feb 2014 11:26:15 +0100 Subject: [PATCH 6/6] Update MTM module, now supports gradle --- extern/MemorizingTrustManager | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extern/MemorizingTrustManager b/extern/MemorizingTrustManager index 49452f67a..a705441ac 160000 --- a/extern/MemorizingTrustManager +++ b/extern/MemorizingTrustManager @@ -1 +1 @@ -Subproject commit 49452f67a760dfef77ddaa7e0b7d88c713c4a195 +Subproject commit a705441ac53b9e1aba9f00f3f59aab81da6fbc9e