summaryrefslogtreecommitdiff
path: root/core/src/main
diff options
context:
space:
mode:
authorByteHamster <info@bytehamster.com>2021-03-04 11:15:44 +0100
committerByteHamster <info@bytehamster.com>2021-03-04 11:15:44 +0100
commitd4141d19a06abf92d78fe28a41a5fb7f885cacac (patch)
tree943279b49c9a32f08634f841eb65112dd655ad7e /core/src/main
parent352df348cb97ef0ceac5db8b22447d673cbb290e (diff)
downloadAntennaPod-d4141d19a06abf92d78fe28a41a5fb7f885cacac.zip
Described download errors in more detail
Diffstat (limited to 'core/src/main')
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/download/HttpDownloader.java3
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/download/handler/FeedParserTask.java3
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/syndication/handler/UnsupportedFeedtypeException.java3
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/util/DownloadError.java8
-rw-r--r--core/src/main/res/values/strings.xml15
5 files changed, 20 insertions, 12 deletions
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<FeedHandlerResult> {
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;
diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml
index e8dcdef73..8f89a7792 100644
--- a/core/src/main/res/values/strings.xml
+++ b/core/src/main/res/values/strings.xml
@@ -179,7 +179,7 @@
<string name="hide_not_queued_episodes_label">Not queued</string>
<string name="hide_has_media_label">Has media</string>
<string name="filtered_label">Filtered</string>
- <string name="refresh_failed_msg">{fa-exclamation-circle} Last Refresh failed</string>
+ <string name="refresh_failed_msg">{fa-exclamation-circle} Last Refresh failed. Tap to view details.</string>
<string name="open_podcast">Open Podcast</string>
<string name="please_wait_for_data">Please wait until the data is loaded</string>
@@ -245,20 +245,23 @@
<string name="download_running">Download running</string>
<string name="download_error_details">Details</string>
<string name="download_error_details_message">%1$s \n\nFile URL:\n%2$s</string>
+ <string name="download_error_tap_for_details">Tap to view details.</string>
<string name="download_error_device_not_found">Storage Device not found</string>
- <string name="download_error_insufficient_space">Insufficient Space</string>
+ <string name="download_error_insufficient_space">There is not enough space left on your device.</string>
<string name="download_error_http_data_error">HTTP Data Error</string>
<string name="download_error_error_unknown">Unknown Error</string>
- <string name="download_error_parser_exception">Parser Exception</string>
+ <string name="download_error_parser_exception">The podcast host\'s server sent a broken podcast feed.</string>
<string name="download_error_unsupported_type">Unsupported Feed Type</string>
+ <string name="download_error_unsupported_type_html">The podcast host\'s server sent a website, not a podcast.</string>
+ <string name="download_error_not_found">The podcast host\'s server does not know where to find the file. It may have been deleted.</string>
<string name="download_error_connection_error">Connection Error</string>
<string name="download_error_unknown_host">Unknown Host</string>
<string name="download_error_unauthorized">Authentication Error</string>
<string name="download_error_file_type_type">File Type Error</string>
- <string name="download_error_forbidden">Forbidden</string>
+ <string name="download_error_forbidden">The podcast host\'s server refuses to respond.</string>
<string name="download_canceled_msg">Download canceled</string>
- <string name="download_wrong_size">The server connection was lost before completing the download</string>
- <string name="download_blocked">The download was blocked by another app on your device</string>
+ <string name="download_error_wrong_size">The server connection was lost before completing the download</string>
+ <string name="download_error_blocked">The download was blocked by another app on your device.</string>
<string name="download_canceled_autodownload_enabled_msg">Download canceled\nDisabled <i>Auto Download</i> for this item</string>
<string name="download_report_title">Downloads completed with error(s)</string>
<string name="auto_download_report_title">Auto-downloads completed</string>