From b6df5f2a66e7661dcd037f998c18ad2d85554875 Mon Sep 17 00:00:00 2001 From: neslihanturan Date: Mon, 6 Apr 2020 20:17:26 +0300 Subject: [PATCH 1/7] Fixes #3466 No crash information in crash email (Gmail) (#3605) * Send ACRA logs as file instead * no need to set it true, default is true --- app/src/main/java/fr/free/nrw/commons/CommonsApplication.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) 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 9ac476714a..779dc24734 100644 --- a/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java +++ b/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java @@ -72,8 +72,7 @@ ) @AcraMailSender( - mailTo = "commons-app-android-private@googlegroups.com", - reportAsFile = false + mailTo = "commons-app-android-private@googlegroups.com" ) @AcraDialog( From bc8ce94d7675f5f7f0f27e562d526583ed685f03 Mon Sep 17 00:00:00 2001 From: Prince Amankwah Date: Mon, 6 Apr 2020 13:54:51 +0200 Subject: [PATCH 2/7] Fixed issue #3195 ordering contribution list (#3589) * issue-#3195: order contribution list refactored * issue-#3195: ordered contribution list --- .../fr/free/nrw/commons/upload/UploadService.java | 2 +- .../fr/free/nrw/commons/utils/CommonsDateUtil.java | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadService.java b/app/src/main/java/fr/free/nrw/commons/upload/UploadService.java index 64b1add378..2553a1796c 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/UploadService.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadService.java @@ -286,7 +286,7 @@ private void uploadContribution(Contribution contribution) { contribution.setFilename(canonicalFilename); contribution.setImageUrl(uploadResult.getImageinfo().getOriginalUrl()); contribution.setState(Contribution.STATE_COMPLETED); - contribution.setDateUploaded(CommonsDateUtil.getIso8601DateFormatShort() + contribution.setDateUploaded(CommonsDateUtil.getIso8601DateFormatTimestamp() .parse(uploadResult.getImageinfo().getTimestamp())); compositeDisposable.add(contributionDao .save(contribution) diff --git a/app/src/main/java/fr/free/nrw/commons/utils/CommonsDateUtil.java b/app/src/main/java/fr/free/nrw/commons/utils/CommonsDateUtil.java index 38f6a3c9b7..fc3b9ff2c9 100644 --- a/app/src/main/java/fr/free/nrw/commons/utils/CommonsDateUtil.java +++ b/app/src/main/java/fr/free/nrw/commons/utils/CommonsDateUtil.java @@ -13,11 +13,21 @@ public class CommonsDateUtil { /** * Gets SimpleDateFormat for short date pattern - * @return + * @return simpledateformat */ public static SimpleDateFormat getIso8601DateFormatShort() { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.ROOT); simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC")); return simpleDateFormat; } + + /** + * Gets the timestamp pattern for a date + * @return timestamp + */ + public static SimpleDateFormat getIso8601DateFormatTimestamp() { + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ROOT); + simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC")); + return simpleDateFormat; + } } From 93d6c52eb056dd4772fa767f1abba967be196bfd Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Tue, 7 Apr 2020 00:27:31 +0530 Subject: [PATCH 3/7] Update wiki page links (#3608) We've moved the documentation to a separate repo. So, change the old links to point to the corresponding places in the documentation repo. --- app/build.gradle | 4 ++-- app/src/main/java/fr/free/nrw/commons/Urls.kt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 989a7ae620..68a34b67d7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -217,7 +217,7 @@ android { buildConfigField "String", "SIGNUP_LANDING_URL", "\"https://commons.m.wikimedia.org/w/index.php?title=Special:CreateAccount&returnto=Main+Page&returntoquery=welcome%3Dyes\"" buildConfigField "String", "SIGNUP_SUCCESS_REDIRECTION_URL", "\"https://commons.m.wikimedia.org/w/index.php?title=Main_Page&welcome=yes\"" buildConfigField "String", "FORGOT_PASSWORD_URL", "\"https://commons.wikimedia.org/wiki/Special:PasswordReset\"" - buildConfigField "String", "PRIVACY_POLICY_URL", "\"https://github.com/commons-app/apps-android-commons/wiki/Privacy-policy\"" + buildConfigField "String", "PRIVACY_POLICY_URL", "\"https://github.com/commons-app/commons-app-documentation/blob/master/android/Privacy-policy.md\"" buildConfigField "String", "ACCOUNT_TYPE", "\"fr.free.nrw.commons\"" buildConfigField "String", "CONTRIBUTION_AUTHORITY", "\"fr.free.nrw.commons.contributions.contentprovider\"" buildConfigField "String", "MODIFICATION_AUTHORITY", "\"fr.free.nrw.commons.modifications.contentprovider\"" @@ -249,7 +249,7 @@ android { buildConfigField "String", "SIGNUP_LANDING_URL", "\"https://commons.m.wikimedia.beta.wmflabs.org/w/index.php?title=Special:CreateAccount&returnto=Main+Page&returntoquery=welcome%3Dyes\"" buildConfigField "String", "SIGNUP_SUCCESS_REDIRECTION_URL", "\"https://commons.m.wikimedia.beta.wmflabs.org/w/index.php?title=Main_Page&welcome=yes\"" buildConfigField "String", "FORGOT_PASSWORD_URL", "\"https://commons.wikimedia.beta.wmflabs.org/wiki/Special:PasswordReset\"" - buildConfigField "String", "PRIVACY_POLICY_URL", "\"https://github.com/commons-app/apps-android-commons/wiki/Privacy-policy\"" + buildConfigField "String", "PRIVACY_POLICY_URL", "\"https://github.com/commons-app/commons-app-documentation/blob/master/android/Privacy-policy.md\"" buildConfigField "String", "ACCOUNT_TYPE", "\"fr.free.nrw.commons.beta\"" buildConfigField "String", "CONTRIBUTION_AUTHORITY", "\"fr.free.nrw.commons.beta.contributions.contentprovider\"" buildConfigField "String", "MODIFICATION_AUTHORITY", "\"fr.free.nrw.commons.beta.modifications.contentprovider\"" diff --git a/app/src/main/java/fr/free/nrw/commons/Urls.kt b/app/src/main/java/fr/free/nrw/commons/Urls.kt index 52bbf8f48f..88470bc69e 100644 --- a/app/src/main/java/fr/free/nrw/commons/Urls.kt +++ b/app/src/main/java/fr/free/nrw/commons/Urls.kt @@ -5,7 +5,7 @@ internal object Urls { const val GITHUB_REPO_URL = "https://github.com/commons-app/apps-android-commons" const val WEBSITE_URL = "https://commons-app.github.io" const val CREDITS_URL = "https://github.com/commons-app/apps-android-commons/blob/master/CREDITS" - const val FAQ_URL = "https://github.com/commons-app/apps-android-commons/wiki/Frequently-Asked-Questions" + const val FAQ_URL = "https://github.com/commons-app/commons-app-documentation/blob/master/android/Frequently-Asked-Questions.md" const val PLAY_STORE_PREFIX = "market://details?id=" const val PLAY_STORE_URL_PREFIX = "https://play.google.com/store/apps/details?id=" const val TRANSLATE_WIKI_URL = "https://translatewiki.net/w/i.php?title=Special:Translate&group=commons-android-strings&filter=%21translated&action=translate&language=" From c82283a0143d8eb2d36505a802cc5ea1344cb621 Mon Sep 17 00:00:00 2001 From: Kshitij Bhardwaj <44129798+kbhardwaj123@users.noreply.github.com> Date: Tue, 7 Apr 2020 10:30:24 -0400 Subject: [PATCH 4/7] Fixes #3506: Image height remains zero for some time on bad network (#3513) * optimise width loading * amending as per the reviews * aspect ratio updates after layout completion * MediaDetailFragment: update aspect ratio using onGlobalLayoutListener * remove unnecessary imports --- .../nrw/commons/media/MediaDetailFragment.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.java b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.java index 2349b62367..de4bf762b0 100644 --- a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.java @@ -9,11 +9,11 @@ import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; -import android.util.TypedValue; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.ViewTreeObserver; +import android.view.ViewTreeObserver.OnGlobalLayoutListener; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; @@ -33,7 +33,6 @@ import org.apache.commons.lang3.StringUtils; import org.wikipedia.util.DateUtil; -import org.wikipedia.util.StringUtil; import java.util.ArrayList; import java.util.Date; @@ -224,7 +223,15 @@ public void onResume() { .setVisibility(View.GONE); } media = detailProvider.getMediaAtPosition(index); - displayMediaDetails(); + scrollView.getViewTreeObserver().addOnGlobalLayoutListener( + new OnGlobalLayoutListener() { + @Override + public void onGlobalLayout() { + scrollView.getViewTreeObserver().removeOnGlobalLayoutListener(this); + displayMediaDetails(); + } + } + ); } private void displayMediaDetails() { @@ -243,7 +250,8 @@ private void displayMediaDetails() { private void updateAspectRatio(ImageInfo imageInfo) { if (imageInfo != null) { - int finalHeight = (scrollView.getWidth()*imageInfo.getHeight()) / imageInfo.getWidth(); + int screenWidth = scrollView.getWidth(); + int finalHeight = (screenWidth*imageInfo.getHeight()) / imageInfo.getWidth(); ViewGroup.LayoutParams params = image.getLayoutParams(); params.height = finalHeight; image.setLayoutParams(params); From df16f98acdd184ab1ca8c35b9e6af367bd600f0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Se=C3=A1n=20Mac=20Gillicuddy?= Date: Wed, 8 Apr 2020 13:50:41 +0100 Subject: [PATCH 5/7] #3492 Add inspections to git - add inspection profile (#3631) --- .gitignore | 1 + .idea/inspectionProfiles/Project_Default.xml | 46 ++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 .idea/inspectionProfiles/Project_Default.xml diff --git a/.gitignore b/.gitignore index 63a882d020..418e4c3808 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ app/src/main/gen/* # IDEA/Android Studio Ignore exceptions !/.idea/codeStyles/ +!/.idea/inspectionProfiles/ # Gradle .gradle diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000000..d18f5be8cf --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,46 @@ + + + + \ No newline at end of file From 6b075d9124528bdafa9ead5dc0fc26d432dbff51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Se=C3=A1n=20Mac=20Gillicuddy?= Date: Wed, 8 Apr 2020 14:10:19 +0100 Subject: [PATCH 6/7] #3628 Update Gradle Plugin - bump version (#3629) --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index f9213b054f..db99860d3a 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ buildscript { maven { url "https://plugins.gradle.org/m2/" } } dependencies { - classpath 'com.android.tools.build:gradle:3.6.1' + classpath 'com.android.tools.build:gradle:3.6.2' classpath "com.hiya:jacoco-android:0.2" classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.8.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$KOTLIN_VERSION" From d7a42b2f89a35e1d80bf458538d95b93a66840c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Se=C3=A1n=20Mac=20Gillicuddy?= Date: Wed, 8 Apr 2020 17:39:41 +0100 Subject: [PATCH 7/7] #3624 DateTimeFormat wrong - match pattern returned from servers (#3625) --- .../nrw/commons/utils/CommonsDateUtil.java | 9 +++++---- .../nrw/commons/utils/CommonsDateUtilTest.kt | 20 +++++++++++++++++++ 2 files changed, 25 insertions(+), 4 deletions(-) create mode 100644 app/src/test/kotlin/fr/free/nrw/commons/utils/CommonsDateUtilTest.kt diff --git a/app/src/main/java/fr/free/nrw/commons/utils/CommonsDateUtil.java b/app/src/main/java/fr/free/nrw/commons/utils/CommonsDateUtil.java index fc3b9ff2c9..d03dd8fe4d 100644 --- a/app/src/main/java/fr/free/nrw/commons/utils/CommonsDateUtil.java +++ b/app/src/main/java/fr/free/nrw/commons/utils/CommonsDateUtil.java @@ -25,9 +25,10 @@ public static SimpleDateFormat getIso8601DateFormatShort() { * Gets the timestamp pattern for a date * @return timestamp */ - public static SimpleDateFormat getIso8601DateFormatTimestamp() { - SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ROOT); - simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC")); - return simpleDateFormat; + public static SimpleDateFormat getIso8601DateFormatTimestamp() { + final SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssX", + Locale.ROOT); + simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC")); + return simpleDateFormat; } } diff --git a/app/src/test/kotlin/fr/free/nrw/commons/utils/CommonsDateUtilTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/utils/CommonsDateUtilTest.kt new file mode 100644 index 0000000000..9056cb755f --- /dev/null +++ b/app/src/test/kotlin/fr/free/nrw/commons/utils/CommonsDateUtilTest.kt @@ -0,0 +1,20 @@ +package fr.free.nrw.commons.utils + +import org.hamcrest.core.IsEqual.equalTo +import org.junit.Assert.assertThat +import org.junit.Test + +class CommonsDateUtilTest { + + @Test + fun `Iso8601DateFormatTimestamp parses legal date`() { + val iso8601DateFormatTimestamp = CommonsDateUtil + .getIso8601DateFormatTimestamp() + val parsedDate = iso8601DateFormatTimestamp + .parse("2020-04-07T14:21:57Z") + assertThat( + "2020-04-07T14:21:57Z", + equalTo(iso8601DateFormatTimestamp.format(parsedDate)) + ) + } +}