[ErrorProcessing]: Make toast show underlying errors (if there are any)

This commit is contained in:
Magesh K
2025-01-20 23:02:06 +05:30
parent 172481fee5
commit eb539cd7f6
3 changed files with 95 additions and 22 deletions

View File

@@ -67,30 +67,10 @@ class ToastView: RSTToastView
convenience init(error: Error)
{
var error = error as NSError
var underlyingError = error.underlyingError
let error = error as NSError
if
let unwrappedUnderlyingError = underlyingError,
error.domain == AltServerErrorDomain && error.code == ALTServerError.Code.underlyingError.rawValue
{
// Treat underlyingError as the primary error, but keep localized title + failure.
let nsError = error as NSError
error = unwrappedUnderlyingError as NSError
if let localizedTitle = nsError.localizedTitle {
error = error.withLocalizedTitle(localizedTitle)
}
if let localizedFailure = nsError.localizedFailure {
error = error.withLocalizedFailure(localizedFailure)
}
underlyingError = nil
}
let text = error.localizedTitle ?? NSLocalizedString("Operation Failed", comment: "")
let detailText = error.localizedDescription
let detailText = ErrorProcessing(.fullError).getDescription(error: error)
self.init(text: text, detailText: detailText)
}