From 11c3772dd003287cd93ba0d35201e7b6cd759ff5 Mon Sep 17 00:00:00 2001 From: Vivek Maskara Date: Fri, 17 Aug 2018 22:01:10 +0530 Subject: [PATCH 1/4] Add Traceur for getting meaningful RxJava stack traces (#1832) --- app/build.gradle | 1 + app/src/main/java/fr/free/nrw/commons/CommonsApplication.java | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/app/build.gradle b/app/build.gradle index d6bdede1b0..1802eba338 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -62,6 +62,7 @@ dependencies { testImplementation 'com.squareup.okhttp3:mockwebserver:3.8.1' implementation 'com.dinuscxj:circleprogressbar:1.1.1' + implementation 'com.tspoon.traceur:traceur:1.0.1' implementation 'com.caverock:androidsvg:1.2.1' implementation 'com.github.bumptech.glide:glide:4.7.1' kapt 'com.github.bumptech.glide:compiler:4.7.1' diff --git a/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java b/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java index cb47f75e9a..2ceb22d06a 100644 --- a/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java +++ b/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java @@ -10,6 +10,8 @@ import com.facebook.stetho.Stetho; import com.squareup.leakcanary.LeakCanary; import com.squareup.leakcanary.RefWatcher; +import com.tspoon.traceur.Traceur; +import com.tspoon.traceur.TraceurConfig; import org.acra.ACRA; import org.acra.ReportingInteractionMode; @@ -69,6 +71,8 @@ public class CommonsApplication extends MultiDexApplication { @Override public void onCreate() { super.onCreate(); + Traceur.enableLogging(); + ApplicationlessInjection .getInstance(this) .getCommonsApplicationComponent() From 4c476e7a064102599daad0b59ce538de752ec77a Mon Sep 17 00:00:00 2001 From: neslihanturan Date: Mon, 20 Aug 2018 11:32:45 +0300 Subject: [PATCH 2/4] Hotfix for overwrite issue in 2.8.0 (#1838) * This solution is an hotfix for overrite issue came back on 2.8.0 version. What I did is checking the extension, and if it is null, adding .jpg suffix. Because commons files always have suffixes, and we should compare file names after adding suffixes. Othervise overrides are possible. * Check if file title includes an extension already, by checking if is there any dot in it. * Fix logic error * Add uncovered tests * Remove unecessary line breaks * Make Javadocs more explicit --- app/src/main/java/fr/free/nrw/commons/Utils.java | 11 ++++++++++- .../fr/free/nrw/commons/UtilsFixExtensionTest.kt | 10 ++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/Utils.java b/app/src/main/java/fr/free/nrw/commons/Utils.java index 4e4b46b01f..5f829abfce 100644 --- a/app/src/main/java/fr/free/nrw/commons/Utils.java +++ b/app/src/main/java/fr/free/nrw/commons/Utils.java @@ -111,7 +111,7 @@ public static int licenseNameFor(String license) { } /** - * Fixing incorrect extension + * Adds extension to filename. Converts to .jpg if system provides .jpeg, adds .jpg if no extension detected * @param title File name * @param extension Correct extension * @return File with correct extension @@ -128,6 +128,15 @@ public static String fixExtension(String title, String extension) { .endsWith("." + extension.toLowerCase(Locale.ENGLISH))) { title += "." + extension; } + + // If extension is still null, make it jpg. (Hotfix for https://github.com/commons-app/apps-android-commons/issues/228) + // If title has an extension in it, if won't be true + // FIXME: .png uploads fail when uploaded via Share + if (extension == null && title.lastIndexOf(".")<=0) { + extension = "jpg"; + title += "." + extension; + } + return title; } diff --git a/app/src/test/kotlin/fr/free/nrw/commons/UtilsFixExtensionTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/UtilsFixExtensionTest.kt index 0082b9d284..1f3b127fdc 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/UtilsFixExtensionTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/UtilsFixExtensionTest.kt @@ -65,4 +65,14 @@ class UtilsFixExtensionTest { fun inWordJpegToJpgResultsInJpg() { assertEquals("X.jpeg.SAMPLE.jpg", fixExtension("X.jpeg.SAMPLE", "jpg")) } + + @Test + fun noExtensionShouldResultInJpg() { + assertEquals("Sample.jpg", fixExtension("Sample", null)) + } + + @Test + fun extensionAlreadyInTitleShouldRemain() { + assertEquals("Sample.jpg", fixExtension("Sample.jpg", null)) + } } From b743d021f079b02581b24f698d898317b034f43c Mon Sep 17 00:00:00 2001 From: Josephine Lim Date: Mon, 20 Aug 2018 20:07:29 +1000 Subject: [PATCH 3/4] Versioning and changelog for v2.8.2 (#1842) * Versioning for v2.8.2 * Changelog for v2.8.2 --- CHANGELOG.md | 3 +++ app/build.gradle | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 60562d7519..b3ecfa8af5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Wikimedia Commons for Android +## v2.8.2 +- Fixed bug with uploads sent via Share being given .jpeg extensions and overwriting files of the same name + ## v2.8.1 - Fixed bug with category edits not being sent to server diff --git a/app/build.gradle b/app/build.gradle index 1802eba338..16dad0e6bd 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -90,8 +90,8 @@ android { defaultConfig { applicationId 'fr.free.nrw.commons' - versionCode 88 - versionName '2.8.1' + versionCode 89 + versionName '2.8.2' setProperty("archivesBaseName", "app-commons-v$versionName-" + getBranchName()) minSdkVersion project.minSdkVersion From 7c4573645d476be65c509cf610c78317c6f6e67a Mon Sep 17 00:00:00 2001 From: Josephine Lim Date: Wed, 27 Nov 2019 18:02:06 +1000 Subject: [PATCH 4/4] Fix data template for other source --- .../java/fr/free/nrw/commons/contributions/Contribution.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/Contribution.java b/app/src/main/java/fr/free/nrw/commons/contributions/Contribution.java index 3687238475..6b82a772df 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/Contribution.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/Contribution.java @@ -28,8 +28,8 @@ public class Contribution extends Media { //{{According to EXIF data|2009-01-09}} private static final String TEMPLATE_DATE_ACC_TO_EXIF = "{{According to EXIF data|%s}}"; - //{{date|2009|1|9}} → 9 January 2009 - private static final String TEMPLATE_DATA_OTHER_SOURCE = "{{date|%s}}"; + //2009-01-09 → 9 January 2009 + private static final String TEMPLATE_DATA_OTHER_SOURCE = "%s"; public static Creator CREATOR = new Creator() { @Override