diff --git a/AltStore/Authentication/AuthenticationViewController.swift b/AltStore/Authentication/AuthenticationViewController.swift index 3450e6b6..c910021b 100644 --- a/AltStore/Authentication/AuthenticationViewController.swift +++ b/AltStore/Authentication/AuthenticationViewController.swift @@ -106,12 +106,14 @@ private extension AuthenticationViewController self.signInButton.isIndicatingActivity = false } - case .failure(let error): + case .failure(let error as NSError): DispatchQueue.main.async { - let toastView = ToastView(text: NSLocalizedString("Failed to Log In", comment: ""), detailText: error.localizedDescription) + let error = error.withLocalizedFailure(NSLocalizedString("Failed to Log In", comment: "")) + + let toastView = ToastView(error: error) toastView.textLabel.textColor = .altPink toastView.detailTextLabel.textColor = .altPink - toastView.show(in: self.navigationController?.view ?? self.view) + toastView.show(in: self) self.toastView = toastView self.signInButton.isIndicatingActivity = false diff --git a/AltStore/Browse/BrowseViewController.swift b/AltStore/Browse/BrowseViewController.swift index fedb0bfb..a0585903 100644 --- a/AltStore/Browse/BrowseViewController.swift +++ b/AltStore/Browse/BrowseViewController.swift @@ -180,12 +180,14 @@ private extension BrowseViewController self.loadingState = .finished(.success(())) } } - catch + catch let error as NSError { DispatchQueue.main.async { if self.dataSource.itemCount > 0 { - let toastView = ToastView(text: NSLocalizedString("Failed to Fetch Sources", comment: ""), detailText: error.localizedDescription) + let error = error.withLocalizedFailure(NSLocalizedString("Failed to Fetch Sources", comment: "")) + + let toastView = ToastView(error: error) toastView.show(in: self) } diff --git a/AltStore/News/NewsViewController.swift b/AltStore/News/NewsViewController.swift index 673ef377..ba659c61 100644 --- a/AltStore/News/NewsViewController.swift +++ b/AltStore/News/NewsViewController.swift @@ -184,13 +184,15 @@ private extension NewsViewController self.loadingState = .finished(.success(())) } } - catch + catch let error as NSError { DispatchQueue.main.async { if self.dataSource.itemCount > 0 { - let toastView = ToastView(text: NSLocalizedString("Failed to Fetch Sources", comment: ""), detailText: error.localizedDescription) - toastView.show(in: self.navigationController?.view ?? self.view, duration: 2.0) + let error = error.withLocalizedFailure(NSLocalizedString("Failed to Fetch Sources", comment: "")) + + let toastView = ToastView(error: error) + toastView.show(in: self) } self.loadingState = .finished(.failure(error)) @@ -286,8 +288,8 @@ private extension NewsViewController { case .failure(OperationError.cancelled): break // Ignore case .failure(let error): - let toastView = ToastView(text: error.localizedDescription, detailText: nil) - toastView.show(in: self.navigationController?.view ?? self.view, duration: 2) + let toastView = ToastView(error: error) + toastView.show(in: self) case .success: print("Installed app:", storeApp.bundleIdentifier) } diff --git a/AltStore/Settings/PatreonViewController.swift b/AltStore/Settings/PatreonViewController.swift index ffb105f4..ef950f1c 100644 --- a/AltStore/Settings/PatreonViewController.swift +++ b/AltStore/Settings/PatreonViewController.swift @@ -227,8 +227,8 @@ private extension PatreonViewController catch { DispatchQueue.main.async { - let toastView = ToastView(text: error.localizedDescription, detailText: nil) - toastView.show(in: self.navigationController?.view ?? self.view, duration: 2.0) + let toastView = ToastView(error: error) + toastView.show(in: self) } } } @@ -250,8 +250,8 @@ private extension PatreonViewController catch { DispatchQueue.main.async { - let toastView = ToastView(text: error.localizedDescription, detailText: nil) - toastView.show(in: self.navigationController?.view ?? self.view, duration: 2.0) + let toastView = ToastView(error: error) + toastView.show(in: self) } } } diff --git a/AltStore/Settings/SettingsViewController.swift b/AltStore/Settings/SettingsViewController.swift index 0cde2fa8..845c9779 100644 --- a/AltStore/Settings/SettingsViewController.swift +++ b/AltStore/Settings/SettingsViewController.swift @@ -204,8 +204,8 @@ private extension SettingsViewController break case .failure(let error): - let toastView = ToastView(text: error.localizedDescription, detailText: nil) - toastView.show(in: self.navigationController?.view ?? self.view, duration: 2.0) + let toastView = ToastView(error: error) + toastView.show(in: self) case .success: break } @@ -223,8 +223,8 @@ private extension SettingsViewController DispatchQueue.main.async { if let error = error { - let toastView = ToastView(text: error.localizedDescription, detailText: nil) - toastView.show(in: self.navigationController?.view ?? self.view, duration: 2.0) + let toastView = ToastView(error: error) + toastView.show(in: self) } self.update() @@ -433,7 +433,7 @@ extension SettingsViewController else { let toastView = ToastView(text: NSLocalizedString("Cannot Send Mail", comment: ""), detailText: nil) - toastView.show(in: self.navigationController?.view ?? self.view, duration: 2.0) + toastView.show(in: self) } case .refreshAttempts: break @@ -450,8 +450,8 @@ extension SettingsViewController: MFMailComposeViewControllerDelegate { if let error = error { - let toastView = ToastView(text: error.localizedDescription, detailText: "") - toastView.show(in: self.navigationController?.view ?? self.view, duration: 2.0) + let toastView = ToastView(error: error) + toastView.show(in: self) } controller.dismiss(animated: true, completion: nil)