diff --git a/app/src/main/java/de/danoeh/antennapod/actionbutton/DownloadActionButton.java b/app/src/main/java/de/danoeh/antennapod/actionbutton/DownloadActionButton.java
index 5413d6369..21e751016 100644
--- a/app/src/main/java/de/danoeh/antennapod/actionbutton/DownloadActionButton.java
+++ b/app/src/main/java/de/danoeh/antennapod/actionbutton/DownloadActionButton.java
@@ -79,7 +79,8 @@ public class DownloadActionButton extends ItemActionButton {
})
.setNegativeButton(R.string.cancel_label, null);
if (NetworkUtils.isNetworkRestricted() && NetworkUtils.isVpnOverWifi()) {
- builder.setMessage(R.string.confirm_mobile_download_dialog_message_vpn);
+ builder.setMessage(context.getString(R.string.confirm_mobile_download_dialog_message)
+ + "\n\n" + context.getString(R.string.confirm_mobile_download_dialog_message_vpn));
} else {
builder.setMessage(R.string.confirm_mobile_download_dialog_message);
}
diff --git a/app/src/main/java/de/danoeh/antennapod/ui/StreamingConfirmationDialog.java b/app/src/main/java/de/danoeh/antennapod/ui/StreamingConfirmationDialog.java
index 6199aa0fd..cf27a15b3 100644
--- a/app/src/main/java/de/danoeh/antennapod/ui/StreamingConfirmationDialog.java
+++ b/app/src/main/java/de/danoeh/antennapod/ui/StreamingConfirmationDialog.java
@@ -3,6 +3,7 @@ package de.danoeh.antennapod.ui;
import android.content.Context;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import de.danoeh.antennapod.R;
+import de.danoeh.antennapod.net.common.NetworkUtils;
import de.danoeh.antennapod.playback.service.PlaybackServiceStarter;
import de.danoeh.antennapod.storage.preferences.UserPreferences;
import de.danoeh.antennapod.model.playback.Playable;
@@ -17,16 +18,21 @@ public class StreamingConfirmationDialog {
}
public void show() {
- new MaterialAlertDialogBuilder(context)
+ MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(context)
.setTitle(R.string.stream_label)
- .setMessage(R.string.confirm_mobile_streaming_notification_message)
.setPositiveButton(R.string.confirm_mobile_streaming_button_once, (dialog, which) -> stream())
.setNegativeButton(R.string.confirm_mobile_streaming_button_always, (dialog, which) -> {
UserPreferences.setAllowMobileStreaming(true);
stream();
})
- .setNeutralButton(R.string.cancel_label, null)
- .show();
+ .setNeutralButton(R.string.cancel_label, null);
+ if (NetworkUtils.isNetworkRestricted() && NetworkUtils.isVpnOverWifi()) {
+ builder.setMessage(context.getString(R.string.confirm_mobile_streaming_notification_message)
+ + "\n\n" + context.getString(R.string.confirm_mobile_download_dialog_message_vpn));
+ } else {
+ builder.setMessage(R.string.confirm_mobile_streaming_notification_message);
+ }
+ builder.show();
}
private void stream() {
diff --git a/app/src/main/java/de/danoeh/antennapod/ui/screen/onlinefeedview/OnlineFeedViewActivity.java b/app/src/main/java/de/danoeh/antennapod/ui/screen/onlinefeedview/OnlineFeedViewActivity.java
index 72b9ba683..ad2fffcd5 100644
--- a/app/src/main/java/de/danoeh/antennapod/ui/screen/onlinefeedview/OnlineFeedViewActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/ui/screen/onlinefeedview/OnlineFeedViewActivity.java
@@ -295,6 +295,16 @@ public class OnlineFeedViewActivity extends AppCompatActivity {
.observeOn(AndroidSchedulers.mainThread())
.subscribe(this::showFeedFragment, error -> {
error.printStackTrace();
+ if (error instanceof UnsupportedFeedtypeException
+ && "html".equalsIgnoreCase(((UnsupportedFeedtypeException) error).getRootElement())) {
+ if (getIntent().getBooleanExtra(ARG_WAS_MANUAL_URL, false)) {
+ showErrorDialog(getString(R.string.download_error_unsupported_type_html_manual),
+ error.getMessage());
+ } else {
+ showErrorDialog(getString(R.string.download_error_unsupported_type_html), error.getMessage());
+ }
+ return;
+ }
showErrorDialog(getString(R.string.download_error_parser_exception), error.getMessage());
});
}
@@ -319,9 +329,6 @@ public class OnlineFeedViewActivity extends AppCompatActivity {
boolean dialogShown = showFeedDiscoveryDialog(destinationFile, selectedDownloadUrl);
if (dialogShown) {
return null; // We handled the problem
- } else {
- throw new UnsupportedFeedtypeException(
- getString(R.string.download_error_unsupported_type_html) + "\n" + e.getMessage());
}
}
throw e;
diff --git a/ui/i18n/src/main/res/values/strings.xml b/ui/i18n/src/main/res/values/strings.xml
index e79d6f4fc..6c59ef1fe 100644
--- a/ui/i18n/src/main/res/values/strings.xml
+++ b/ui/i18n/src/main/res/values/strings.xml
@@ -301,6 +301,7 @@
The podcast host\'s server sent a broken podcast feed. We recommend checking with a podcast validator such as castfeedvalidator.com and contacting the podcast creator to let them know.
Unsupported feed type
The podcast host\'s server sent a website, not a podcast.
+ The address you entered is a website address, not a podcast RSS address.
The podcast host\'s server does not know where to find the file. It may have been deleted.
Connection error
No network connection
@@ -330,7 +331,7 @@
Authentication required
Confirm mobile download
Downloading over mobile data connection is disabled in the settings. AntennaPod can download the episode later automatically when Wi-Fi is available.
- Your VPN app pretends to be a mobile network (metered connection). Downloading over mobile data connection is disabled in the settings. If you want this problem to be fixed, contact the creators of your VPN app.
+ - Using a VPN? Your VPN app pretends to be a mobile network (metered connection). If you want this problem fixed, contact the creators of your VPN app.\n- Not using a VPN? Open the Android Wi-Fi settings and change the type of your Wi-Fi to not be metered.
Download later
Download anyway