From f0158063fb7ddc49c46c000ad244f687826478da Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Wed, 15 May 2019 22:18:53 +0200 Subject: [PATCH] show full error messages from UpdateService The "cause" is the Exception that was caught and embedded into the UpdateException, so it has more info on what happened. --- .../fdroid/views/swap/SwapWorkflowActivity.java | 17 +++++++++++++++-- .../java/org/fdroid/fdroid/UpdateService.java | 7 ++++++- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/app/src/full/java/org/fdroid/fdroid/views/swap/SwapWorkflowActivity.java b/app/src/full/java/org/fdroid/fdroid/views/swap/SwapWorkflowActivity.java index 18d7ddb2e..1f484478a 100644 --- a/app/src/full/java/org/fdroid/fdroid/views/swap/SwapWorkflowActivity.java +++ b/app/src/full/java/org/fdroid/fdroid/views/swap/SwapWorkflowActivity.java @@ -1129,8 +1129,21 @@ public class SwapWorkflowActivity extends AppCompatActivity { private final BroadcastReceiver repoUpdateReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { - - setUpConnectingProgressText(intent.getStringExtra(UpdateService.EXTRA_MESSAGE)); + String message = intent.getStringExtra(UpdateService.EXTRA_MESSAGE); + if (message == null) { + CharSequence[] repoErrors = intent.getCharSequenceArrayExtra(UpdateService.EXTRA_REPO_ERRORS); + if (repoErrors != null) { + StringBuilder msgBuilder = new StringBuilder(); + for (CharSequence error : repoErrors) { + if (msgBuilder.length() > 0) { + msgBuilder.append(" + "); + } + msgBuilder.append(error); + } + message = msgBuilder.toString(); + } + } + setUpConnectingProgressText(message); ProgressBar progressBar = container.findViewById(R.id.progress_bar); Button tryAgainButton = container.findViewById(R.id.try_again); diff --git a/app/src/main/java/org/fdroid/fdroid/UpdateService.java b/app/src/main/java/org/fdroid/fdroid/UpdateService.java index dfbfcac9a..9c45db4f9 100644 --- a/app/src/main/java/org/fdroid/fdroid/UpdateService.java +++ b/app/src/main/java/org/fdroid/fdroid/UpdateService.java @@ -487,7 +487,12 @@ public class UpdateService extends JobIntentService { } } catch (IndexUpdater.UpdateException e) { errorRepos++; - repoErrors.add(e.getLocalizedMessage()); + Throwable cause = e.getCause(); + if (cause == null) { + repoErrors.add(e.getLocalizedMessage()); + } else { + repoErrors.add(e.getLocalizedMessage() + " ⇨ " + cause.getLocalizedMessage()); + } Log.e(TAG, "Error updating repository " + repo.address); e.printStackTrace(); }