From 7f1f725bfe787b822eb324c11459b0f8d2a2cd6e Mon Sep 17 00:00:00 2001 From: Wagubi Brian Date: Tue, 25 Jun 2019 10:41:08 +0300 Subject: validate username for characters not accepted. --- core/src/main/res/values/strings.xml | 1 + 1 file changed, 1 insertion(+) (limited to 'core/src') diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml index 4378abe50..2fbb65744 100644 --- a/core/src/main/res/values/strings.xml +++ b/core/src/main/res/values/strings.xml @@ -642,6 +642,7 @@ An error occurred during syncing:\u0020 Successful Failed + Usernames may only contain letters, digits, hyphens and underscores. Selected folder: -- cgit v1.2.3 From f047c23c0950a0d748fca6a2d040d2b2b767508b Mon Sep 17 00:00:00 2001 From: Joe Stein Date: Mon, 1 Jul 2019 13:40:46 +0200 Subject: Gracefully handle bad ID3 chapter URLs --- .../core/util/id3reader/ChapterReader.java | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'core/src') diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/id3reader/ChapterReader.java b/core/src/main/java/de/danoeh/antennapod/core/util/id3reader/ChapterReader.java index f681b8062..d22d08e09 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/util/id3reader/ChapterReader.java +++ b/core/src/main/java/de/danoeh/antennapod/core/util/id3reader/ChapterReader.java @@ -1,6 +1,10 @@ package de.danoeh.antennapod.core.util.id3reader; import android.util.Log; +import de.danoeh.antennapod.core.feed.Chapter; +import de.danoeh.antennapod.core.feed.ID3Chapter; +import de.danoeh.antennapod.core.util.id3reader.model.FrameHeader; +import de.danoeh.antennapod.core.util.id3reader.model.TagHeader; import java.io.IOException; import java.io.InputStream; @@ -8,11 +12,6 @@ import java.net.URLDecoder; import java.util.ArrayList; import java.util.List; -import de.danoeh.antennapod.core.feed.Chapter; -import de.danoeh.antennapod.core.feed.ID3Chapter; -import de.danoeh.antennapod.core.util.id3reader.model.FrameHeader; -import de.danoeh.antennapod.core.util.id3reader.model.TagHeader; - public class ChapterReader extends ID3Reader { private static final String TAG = "ID3ChapterReader"; @@ -69,11 +68,14 @@ public class ChapterReader extends ID3Reader { int descriptionLength = readString(null, input, header.getSize()); StringBuilder link = new StringBuilder(); readISOString(link, input, header.getSize() - descriptionLength); - String decodedLink = URLDecoder.decode(link.toString(), "UTF-8"); - - currentChapter.setLink(decodedLink); + try { + String decodedLink = URLDecoder.decode(link.toString(), "UTF-8"); + currentChapter.setLink(decodedLink); + Log.d(TAG, "Found link: " + currentChapter.getLink()); + } catch (IllegalArgumentException _iae) { + Log.w(TAG, "Bad URL found in ID3 data"); + } - Log.d(TAG, "Found link: " + currentChapter.getLink()); return ID3Reader.ACTION_DONT_SKIP; } break; -- cgit v1.2.3 From 24e4211da17f28ff29b1a78828d369ef0c9ece0f Mon Sep 17 00:00:00 2001 From: Andrew Gaul Date: Wed, 3 Jul 2019 11:46:44 -0700 Subject: Fix within last year check in formatAbbrev Previously this method considered a date within the last 365 days to be in the same year as today. Instead compare the actual years to avoid confusion. Fixes #3255. --- core/src/main/java/de/danoeh/antennapod/core/util/DateUtils.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'core/src') diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/DateUtils.java b/core/src/main/java/de/danoeh/antennapod/core/util/DateUtils.java index 5141e3a78..668f938a0 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/util/DateUtils.java +++ b/core/src/main/java/de/danoeh/antennapod/core/util/DateUtils.java @@ -7,6 +7,7 @@ import org.apache.commons.lang3.StringUtils; import java.text.ParsePosition; import java.text.SimpleDateFormat; +import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.Locale; @@ -162,11 +163,10 @@ public class DateUtils { if (date == null) { return ""; } + GregorianCalendar now = new GregorianCalendar(); GregorianCalendar cal = new GregorianCalendar(); - cal.add(GregorianCalendar.YEAR, -1); - // some padding, because no one really remembers what day of the month it is - cal.add(GregorianCalendar.DAY_OF_MONTH, 10); - boolean withinLastYear = date.after(cal.getTime()); + cal.setTime(date); + boolean withinLastYear = now.get(Calendar.YEAR) == cal.get(Calendar.YEAR); int format = android.text.format.DateUtils.FORMAT_ABBREV_ALL; if (withinLastYear) { format |= android.text.format.DateUtils.FORMAT_NO_YEAR; -- cgit v1.2.3