diff options
author | ByteHamster <ByteHamster@users.noreply.github.com> | 2021-03-04 19:01:50 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-04 19:01:50 +0100 |
commit | f9baf6812b413b1a0f7b4fa869a4bc0176a819b7 (patch) | |
tree | 7987f9c6609d45f4d02770b9c6115c9e28153fc9 /app/src/main/java/de/danoeh/antennapod/activity | |
parent | d0b1939ac6e4da0937f59503bb89d85a19652ef1 (diff) | |
parent | 84269711612f50e83efb04e7e57bc7a74da05a06 (diff) | |
download | AntennaPod-f9baf6812b413b1a0f7b4fa869a4bc0176a819b7.zip |
Merge pull request #4987 from ByteHamster/extended-download-error-messages
Make it easier to understand why downloads failed
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/activity')
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java | 43 |
1 files changed, 22 insertions, 21 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java index bd2c7f9a6..c6f2cc84b 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java @@ -8,7 +8,10 @@ import android.content.SharedPreferences; import android.graphics.LightingColorFilter; import android.os.Build; import android.os.Bundle; +import android.text.Spannable; +import android.text.SpannableString; import android.text.TextUtils; +import android.text.style.ForegroundColorSpan; import android.util.Log; import android.view.MenuItem; import android.view.View; @@ -288,11 +291,7 @@ public class OnlineFeedViewActivity extends AppCompatActivity { dialog.show(); } } else { - String errorMsg = status.getReason().getErrorString(OnlineFeedViewActivity.this); - if (status.getReasonDetailed() != null) { - errorMsg += " (" + status.getReasonDetailed() + ")"; - } - showErrorDialog(errorMsg); + showErrorDialog(status.getReason().getErrorString(OnlineFeedViewActivity.this), status.getReasonDetailed()); } } @@ -324,18 +323,17 @@ public class OnlineFeedViewActivity extends AppCompatActivity { parser = Observable.fromCallable(this::doParseFeed) .subscribeOn(Schedulers.computation()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(optionalResult -> { - if(optionalResult.isPresent()) { - FeedHandlerResult result = optionalResult.get(); - beforeShowFeedInformation(result.feed); - showFeedInformation(result.feed, result.alternateFeedUrls); - } - }, error -> { - String errorMsg = DownloadError.ERROR_PARSER_EXCEPTION.getErrorString( - OnlineFeedViewActivity.this) + " (" + error.getMessage() + ")"; - showErrorDialog(errorMsg); - Log.d(TAG, "Feed parser exception: " + Log.getStackTraceString(error)); - }); + .subscribe( + optionalResult -> { + if (optionalResult.isPresent()) { + FeedHandlerResult result = optionalResult.get(); + beforeShowFeedInformation(result.feed); + showFeedInformation(result.feed, result.alternateFeedUrls); + } + }, error -> { + showErrorDialog(error.getMessage(), ""); + Log.d(TAG, "Feed parser exception: " + Log.getStackTraceString(error)); + }); } @NonNull @@ -350,8 +348,7 @@ public class OnlineFeedViewActivity extends AppCompatActivity { if (dialogShown) { return Optional.empty(); } else { - Log.d(TAG, "Supplied feed is an HTML web page that has no references to any feed"); - throw e; + throw new UnsupportedFeedtypeException(getString(R.string.download_error_unsupported_type_html)); } } else { throw e; @@ -570,12 +567,16 @@ public class OnlineFeedViewActivity extends AppCompatActivity { } @UiThread - private void showErrorDialog(String errorMsg) { + private void showErrorDialog(String errorMsg, String details) { if (!isFinishing() && !isPaused) { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle(R.string.error_label); if (errorMsg != null) { - builder.setMessage(errorMsg); + String total = errorMsg + "\n\n" + details; + SpannableString errorMessage = new SpannableString(total); + errorMessage.setSpan(new ForegroundColorSpan(0x88888888), + errorMsg.length(), total.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + builder.setMessage(errorMessage); } else { builder.setMessage(R.string.download_error_error_unknown); } |