From 0f3a420d83ce7227767b75d047069315abf7c074 Mon Sep 17 00:00:00 2001
From: Matthias Urhahn <matthias.urhahn@sap.com>
Date: Fri, 2 Oct 2020 13:55:34 +0200
Subject: [PATCH] Improve low storage error formatting (EXPOSUREAPP-2745)
 (#1292)

* Try to use formatted error messages if available.

* Try to use formatted error messages if available.

* If there is no fallback appconfig yet, abort early to show a more accurate error (download error vs "no app config" error).

* Revert "If there is no fallback appconfig yet, abort early to show a more accurate error (download error vs "no app config" error)."

This reverts commit 10ff8f4f

Co-authored-by: harambasicluka <64483219+harambasicluka@users.noreply.github.com>
---
 .../coronawarnapp/exception/reporting/ExceptionReporter.kt | 7 +++++--
 .../main/java/de/rki/coronawarnapp/util/FormattedError.kt  | 2 +-
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/exception/reporting/ExceptionReporter.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/exception/reporting/ExceptionReporter.kt
index d18d4e2ce..a29ddabf3 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/exception/reporting/ExceptionReporter.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/exception/reporting/ExceptionReporter.kt
@@ -9,6 +9,7 @@ import de.rki.coronawarnapp.exception.ExceptionCategory
 import de.rki.coronawarnapp.exception.reporting.ReportingConstants.STATUS_CODE_GOOGLE_API_FAIL
 import de.rki.coronawarnapp.exception.reporting.ReportingConstants.STATUS_CODE_GOOGLE_UPDATE_NEEDED
 import de.rki.coronawarnapp.exception.reporting.ReportingConstants.STATUS_CODE_REACHED_REQUEST_LIMIT
+import de.rki.coronawarnapp.util.tryFormattedError
 import java.io.PrintWriter
 import java.io.StringWriter
 
@@ -20,11 +21,13 @@ fun Throwable.report(
     prefix: String?,
     suffix: String?
 ) {
+    val context = CoronaWarnApplication.getAppContext()
+
     val intent = Intent(ReportingConstants.ERROR_REPORT_LOCAL_BROADCAST_CHANNEL)
     intent.putExtra(ReportingConstants.ERROR_REPORT_CATEGORY_EXTRA, exceptionCategory.name)
     intent.putExtra(ReportingConstants.ERROR_REPORT_PREFIX_EXTRA, prefix)
     intent.putExtra(ReportingConstants.ERROR_REPORT_SUFFIX_EXTRA, suffix)
-    intent.putExtra(ReportingConstants.ERROR_REPORT_MESSAGE_EXTRA, this.message)
+    intent.putExtra(ReportingConstants.ERROR_REPORT_MESSAGE_EXTRA, this.tryFormattedError(context))
 
     if (this is ReportedExceptionInterface) {
         intent.putExtra(ReportingConstants.ERROR_REPORT_CODE_EXTRA, this.code)
@@ -62,7 +65,7 @@ fun Throwable.report(
     }
 
     intent.putExtra(ReportingConstants.ERROR_REPORT_STACK_EXTRA, stackExtra)
-    LocalBroadcastManager.getInstance(CoronaWarnApplication.getAppContext()).sendBroadcast(intent)
+    LocalBroadcastManager.getInstance(context).sendBroadcast(intent)
 }
 
 fun reportGeneric(
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/FormattedError.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/FormattedError.kt
index cd100ebbc..0639465ce 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/FormattedError.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/FormattedError.kt
@@ -8,5 +8,5 @@ interface FormattedError {
 
 fun Throwable.tryFormattedError(context: Context): String = when (this) {
     is FormattedError -> this.getFormattedError(context)
-    else -> localizedMessage ?: this.toString()
+    else -> (localizedMessage ?: this.message) ?: this.toString()
 }
-- 
GitLab