Fix displaying toasts from non-main queue

This commit is contained in:
Shadowfacts 2022-05-09 15:55:35 -04:00
parent 3e5c441b24
commit c71bf3ba23
2 changed files with 16 additions and 5 deletions

View File

@ -146,7 +146,9 @@ extension MenuActionProvider {
case .failure(let error):
if let toastable = self.toastableViewController {
let config = ToastConfiguration(from: error, with: "Error \(bookmarked ? "Unb" : "B")ookmarking", in: toastable, retryAction: nil)
toastable.showToast(configuration: config, animated: true)
DispatchQueue.main.async {
toastable.showToast(configuration: config, animated: true)
}
}
}
}
@ -174,7 +176,9 @@ extension MenuActionProvider {
case .failure(let error):
if let toastable = self.toastableViewController {
let config = ToastConfiguration(from: error, with: "Error \(muted ? "Unm" : "M")uting", in: toastable, retryAction: nil)
toastable.showToast(configuration: config, animated: true)
DispatchQueue.main.async {
toastable.showToast(configuration: config, animated: true)
}
}
}
}
@ -196,7 +200,9 @@ extension MenuActionProvider {
case .failure(let error):
if let toastable = self.toastableViewController {
let config = ToastConfiguration(from: error, with: "Error \(pinned ? "Unp" :"P")inning", in: toastable, retryAction: nil)
toastable.showToast(configuration: config, animated: true)
DispatchQueue.main.async {
toastable.showToast(configuration: config, animated: true)
}
}
}
})
@ -219,7 +225,9 @@ extension MenuActionProvider {
case .failure(let error):
if let toastable = self?.toastableViewController {
let config = ToastConfiguration(from: error, with: "Error Refreshing Poll", in: toastable, retryAction: nil)
toastable.showToast(configuration: config, animated: true)
DispatchQueue.main.async {
toastable.showToast(configuration: config, animated: true)
}
}
}
})
@ -313,7 +321,9 @@ extension MenuActionProvider {
case .failure(let error):
if let toastable = self.toastableViewController {
let config = ToastConfiguration(from: error, with: "Error \(following ? "Unf" : "F")ollowing", in: toastable, retryAction: nil)
toastable.showToast(configuration: config, animated: true)
DispatchQueue.main.async {
toastable.showToast(configuration: config, animated: true)
}
}
case .success(let relationship, _):
mastodonController.persistentContainer.addOrUpdate(relationship: relationship)

View File

@ -8,6 +8,7 @@
import UIKit
@MainActor
protocol ToastableViewController: UIViewController {
var toastParentView: UIView { get }