From d4141d19a06abf92d78fe28a41a5fb7f885cacac Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Thu, 4 Mar 2021 11:15:44 +0100 Subject: Described download errors in more detail --- .../danoeh/antennapod/core/service/download/HttpDownloader.java | 3 +++ .../antennapod/core/service/download/handler/FeedParserTask.java | 3 +++ .../core/syndication/handler/UnsupportedFeedtypeException.java | 3 --- .../main/java/de/danoeh/antennapod/core/util/DownloadError.java | 8 +++++--- 4 files changed, 11 insertions(+), 6 deletions(-) (limited to 'core/src/main/java/de') diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/download/HttpDownloader.java b/core/src/main/java/de/danoeh/antennapod/core/service/download/HttpDownloader.java index 3a87e0c94..e275d4e1e 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/download/HttpDownloader.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/download/HttpDownloader.java @@ -137,6 +137,9 @@ public class HttpDownloader extends Downloader { } else if (response.code() == HttpURLConnection.HTTP_FORBIDDEN) { error = DownloadError.ERROR_FORBIDDEN; details = String.valueOf(response.code()); + } else if (response.code() == HttpURLConnection.HTTP_NOT_FOUND) { + error = DownloadError.ERROR_NOT_FOUND; + details = String.valueOf(response.code()); } else { error = DownloadError.ERROR_HTTP_DATA_ERROR; details = String.valueOf(response.code()); diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/download/handler/FeedParserTask.java b/core/src/main/java/de/danoeh/antennapod/core/service/download/handler/FeedParserTask.java index 18c5fce27..d07018f13 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/download/handler/FeedParserTask.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/download/handler/FeedParserTask.java @@ -58,6 +58,9 @@ public class FeedParserTask implements Callable { e.printStackTrace(); successful = false; reason = DownloadError.ERROR_UNSUPPORTED_TYPE; + if ("html".equalsIgnoreCase(e.getRootElement())) { + reason = DownloadError.ERROR_UNSUPPORTED_TYPE_HTML; + } reasonDetailed = e.getMessage(); } catch (InvalidFeedException e) { e.printStackTrace(); diff --git a/core/src/main/java/de/danoeh/antennapod/core/syndication/handler/UnsupportedFeedtypeException.java b/core/src/main/java/de/danoeh/antennapod/core/syndication/handler/UnsupportedFeedtypeException.java index 11588967a..c9f9f19c8 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/syndication/handler/UnsupportedFeedtypeException.java +++ b/core/src/main/java/de/danoeh/antennapod/core/syndication/handler/UnsupportedFeedtypeException.java @@ -36,9 +36,6 @@ public class UnsupportedFeedtypeException extends Exception { if (message != null) { return message; } else if (type == TypeGetter.Type.INVALID) { - if ("html".equals(rootElement)) { - return "The server returned a website, not a podcast feed"; - } return "Invalid type"; } else { return "Type " + type + " not supported"; diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/DownloadError.java b/core/src/main/java/de/danoeh/antennapod/core/util/DownloadError.java index 9fb1b248b..d9b6cf467 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/util/DownloadError.java +++ b/core/src/main/java/de/danoeh/antennapod/core/util/DownloadError.java @@ -13,7 +13,7 @@ public enum DownloadError { ERROR_MALFORMED_URL(4, R.string.download_error_error_unknown), ERROR_IO_ERROR(5, R.string.download_error_io_error), ERROR_FILE_EXISTS(6, R.string.download_error_error_unknown), - ERROR_DOWNLOAD_CANCELLED(7, R.string.download_error_error_unknown), + ERROR_DOWNLOAD_CANCELLED(7, R.string.download_canceled_msg), ERROR_DEVICE_NOT_FOUND(8, R.string.download_error_device_not_found), ERROR_HTTP_DATA_ERROR(9, R.string.download_error_http_data_error), ERROR_NOT_ENOUGH_SPACE(10, R.string.download_error_insufficient_space), @@ -23,8 +23,10 @@ public enum DownloadError { ERROR_UNAUTHORIZED(14, R.string.download_error_unauthorized), ERROR_FILE_TYPE(15, R.string.download_error_file_type_type), ERROR_FORBIDDEN(16, R.string.download_error_forbidden), - ERROR_IO_WRONG_SIZE(17, R.string.download_wrong_size), - ERROR_IO_BLOCKED(18, R.string.download_blocked); + ERROR_IO_WRONG_SIZE(17, R.string.download_error_wrong_size), + ERROR_IO_BLOCKED(18, R.string.download_error_blocked), + ERROR_UNSUPPORTED_TYPE_HTML(19, R.string.download_error_unsupported_type_html), + ERROR_NOT_FOUND(20, R.string.download_error_not_found); private final int code; private final int resId; -- cgit v1.2.3