mirror of
https://github.com/AntennaPod/AntennaPod.git
synced 2025-10-29 19:59:22 +00:00
More human-readable error when feed is invalid (#7539)
This commit is contained in:
parent
6c931b5780
commit
4693a39c9a
@ -4,6 +4,9 @@ import android.content.ClipData;
|
||||
import android.content.ClipboardManager;
|
||||
import android.content.Context;
|
||||
import android.os.Build;
|
||||
import android.text.Spannable;
|
||||
import android.text.SpannableString;
|
||||
import android.text.style.ForegroundColorSpan;
|
||||
import android.widget.TextView;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
@ -39,15 +42,19 @@ public class DownloadLogDetailsDialog extends MaterialAlertDialogBuilder {
|
||||
message = status.getReasonDetailed();
|
||||
}
|
||||
|
||||
String messageFull = context.getString(R.string.download_log_details_message,
|
||||
context.getString(DownloadErrorLabel.from(status.getReason())), message, url);
|
||||
String humanReadableReason = context.getString(DownloadErrorLabel.from(status.getReason()));
|
||||
SpannableString errorMessage = new SpannableString(context.getString(R.string.download_log_details_message,
|
||||
humanReadableReason, message, url));
|
||||
errorMessage.setSpan(new ForegroundColorSpan(0x88888888),
|
||||
humanReadableReason.length(), errorMessage.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
|
||||
setTitle(R.string.download_error_details);
|
||||
setMessage(messageFull);
|
||||
setMessage(errorMessage);
|
||||
setPositiveButton(android.R.string.ok, null);
|
||||
setNeutralButton(R.string.copy_to_clipboard, (dialog, which) -> {
|
||||
ClipboardManager clipboard = (ClipboardManager) getContext()
|
||||
.getSystemService(Context.CLIPBOARD_SERVICE);
|
||||
ClipData clip = ClipData.newPlainText(context.getString(R.string.download_error_details), messageFull);
|
||||
ClipData clip = ClipData.newPlainText(context.getString(R.string.download_error_details), errorMessage);
|
||||
clipboard.setPrimaryClip(clip);
|
||||
if (Build.VERSION.SDK_INT < 32) {
|
||||
EventBus.getDefault().post(new MessageEvent(context.getString(R.string.copied_to_clipboard)));
|
||||
|
||||
@ -12,6 +12,7 @@ import android.text.style.ForegroundColorSpan;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
@ -294,7 +295,7 @@ public class OnlineFeedViewActivity extends AppCompatActivity {
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(this::showFeedFragment, error -> {
|
||||
error.printStackTrace();
|
||||
showErrorDialog(error.getMessage(), "");
|
||||
showErrorDialog(getString(R.string.download_error_parser_exception), error.getMessage());
|
||||
});
|
||||
}
|
||||
|
||||
@ -363,10 +364,10 @@ public class OnlineFeedViewActivity extends AppCompatActivity {
|
||||
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this);
|
||||
builder.setTitle(R.string.error_label);
|
||||
if (errorMsg != null) {
|
||||
String total = errorMsg + "\n\n" + details;
|
||||
SpannableString errorMessage = new SpannableString(total);
|
||||
SpannableString errorMessage = new SpannableString(getString(
|
||||
R.string.download_log_details_message, errorMsg, details, selectedDownloadUrl));
|
||||
errorMessage.setSpan(new ForegroundColorSpan(0x88888888),
|
||||
errorMsg.length(), total.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
errorMsg.length(), errorMessage.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
builder.setMessage(errorMessage);
|
||||
} else {
|
||||
builder.setMessage(R.string.download_error_error_unknown);
|
||||
@ -382,6 +383,7 @@ public class OnlineFeedViewActivity extends AppCompatActivity {
|
||||
dialog.dismiss();
|
||||
}
|
||||
dialog = builder.show();
|
||||
((TextView) dialog.findViewById(android.R.id.message)).setTextIsSelectable(true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -286,7 +286,7 @@
|
||||
<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">The podcast host\'s server sent a broken podcast feed.</string>
|
||||
<string name="download_error_parser_exception">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.</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>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user