Removed usaged of UIApplication.present
This commit is contained in:
parent
95d4395416
commit
5f045706e4
@ -16,6 +16,7 @@ import Articles
|
||||
import RSParser
|
||||
import ArticlesDatabase
|
||||
import RSWeb
|
||||
import os.log
|
||||
|
||||
public extension Notification.Name {
|
||||
static let AccountRefreshDidBegin = Notification.Name(rawValue: "AccountRefreshDidBegin")
|
||||
@ -62,6 +63,8 @@ public final class Account: DisplayNameProvider, UnreadCountProvider, Container,
|
||||
return defaultName
|
||||
}()
|
||||
|
||||
var log = OSLog(subsystem: Bundle.main.bundleIdentifier!, category: "account")
|
||||
|
||||
public var isDeleted = false
|
||||
|
||||
public var account: Account? {
|
||||
@ -917,11 +920,7 @@ private extension Account {
|
||||
do {
|
||||
opmlDocument = try RSOPMLParser.parseOPML(with: parserData)
|
||||
} catch {
|
||||
#if os(macOS)
|
||||
NSApplication.shared.presentError(error)
|
||||
#else
|
||||
UIApplication.shared.presentError(error)
|
||||
#endif
|
||||
os_log(.error, log: log, "OPML Import failed: %@.", error.localizedDescription)
|
||||
return
|
||||
}
|
||||
guard let parsedOPML = opmlDocument, let children = parsedOPML.children else {
|
||||
@ -944,11 +943,7 @@ private extension Account {
|
||||
try opmlDocumentString.write(to: url, atomically: true, encoding: .utf8)
|
||||
}
|
||||
catch let error as NSError {
|
||||
#if os(macOS)
|
||||
NSApplication.shared.presentError(error)
|
||||
#else
|
||||
UIApplication.shared.presentError(error)
|
||||
#endif
|
||||
os_log(.error, log: log, "Save to disk failed: %@.", error.localizedDescription)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -330,7 +330,7 @@ protocol SidebarDelegate: class {
|
||||
|
||||
let nodesToDelete = treeController.normalizedSelectedNodes(nodes)
|
||||
|
||||
guard let undoManager = undoManager, let deleteCommand = DeleteCommand(nodesToDelete: nodesToDelete, treeController: treeController, undoManager: undoManager) else {
|
||||
guard let undoManager = undoManager, let deleteCommand = DeleteCommand(nodesToDelete: nodesToDelete, treeController: treeController, undoManager: undoManager, errorHandler: ErrorHandler.present) else {
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -20,10 +20,11 @@ final class DeleteCommand: UndoableCommand {
|
||||
var redoActionName: String {
|
||||
return undoActionName
|
||||
}
|
||||
let errorHandler: (Error) -> ()
|
||||
|
||||
private let itemSpecifiers: [SidebarItemSpecifier]
|
||||
|
||||
init?(nodesToDelete: [Node], treeController: TreeController, undoManager: UndoManager) {
|
||||
init?(nodesToDelete: [Node], treeController: TreeController, undoManager: UndoManager, errorHandler: @escaping (Error) -> ()) {
|
||||
|
||||
guard DeleteCommand.canDelete(nodesToDelete) else {
|
||||
return nil
|
||||
@ -35,8 +36,9 @@ final class DeleteCommand: UndoableCommand {
|
||||
self.treeController = treeController
|
||||
self.undoActionName = actionName
|
||||
self.undoManager = undoManager
|
||||
self.errorHandler = errorHandler
|
||||
|
||||
let itemSpecifiers = nodesToDelete.compactMap{ SidebarItemSpecifier(node: $0) }
|
||||
let itemSpecifiers = nodesToDelete.compactMap{ SidebarItemSpecifier(node: $0, errorHandler: errorHandler) }
|
||||
guard !itemSpecifiers.isEmpty else {
|
||||
return nil
|
||||
}
|
||||
@ -112,6 +114,7 @@ private struct SidebarItemSpecifier {
|
||||
private let folder: Folder?
|
||||
private let feed: Feed?
|
||||
private let path: ContainerPath
|
||||
private let errorHandler: (Error) -> ()
|
||||
|
||||
private var container: Container? {
|
||||
if let parentFolder = parentFolder {
|
||||
@ -123,7 +126,7 @@ private struct SidebarItemSpecifier {
|
||||
return nil
|
||||
}
|
||||
|
||||
init?(node: Node) {
|
||||
init?(node: Node, errorHandler: @escaping (Error) -> ()) {
|
||||
|
||||
var account: Account?
|
||||
|
||||
@ -148,6 +151,9 @@ private struct SidebarItemSpecifier {
|
||||
|
||||
self.account = account!
|
||||
self.path = ContainerPath(account: account!, folders: node.containingFolders())
|
||||
|
||||
self.errorHandler = errorHandler
|
||||
|
||||
}
|
||||
|
||||
func delete(completion: @escaping () -> Void) {
|
||||
@ -213,11 +219,7 @@ private struct SidebarItemSpecifier {
|
||||
case .success:
|
||||
break
|
||||
case .failure(let error):
|
||||
#if os(macOS)
|
||||
NSApplication.shared.presentError(error)
|
||||
#else
|
||||
UIApplication.shared.presentError(error)
|
||||
#endif
|
||||
errorHandler(error)
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -187,10 +187,10 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UISplitViewControllerDele
|
||||
// If we haven't refreshed the database for 15 minutes, run a refresh automatically
|
||||
if let lastRefresh = AppDefaults.lastRefresh {
|
||||
if Date() > lastRefresh.addingTimeInterval(15 * 60) {
|
||||
AccountManager.shared.refreshAll(errorHandler: ErrorHandler.present)
|
||||
AccountManager.shared.refreshAll(errorHandler: ErrorHandler.log)
|
||||
}
|
||||
} else {
|
||||
AccountManager.shared.refreshAll(errorHandler: ErrorHandler.present)
|
||||
AccountManager.shared.refreshAll(errorHandler: ErrorHandler.log)
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -14,10 +14,12 @@ struct ErrorHandler {
|
||||
|
||||
private static var log = OSLog(subsystem: Bundle.main.bundleIdentifier!, category: "Account")
|
||||
|
||||
public static func present(_ error: Error) {
|
||||
UIApplication.shared.presentError(error)
|
||||
public static func present(_ viewController: UIViewController) -> (Error) -> () {
|
||||
return { [weak viewController] error in
|
||||
viewController?.presentError(error)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static func log(_ error: Error) {
|
||||
os_log(.error, log: self.log, "%@", error.localizedDescription)
|
||||
}
|
||||
|
@ -526,7 +526,7 @@ class MasterFeedViewController: ProgressTableViewController, UndoableCommandRunn
|
||||
|
||||
guard let undoManager = undoManager,
|
||||
let deleteNode = navState.nodeFor(indexPath),
|
||||
let deleteCommand = DeleteCommand(nodesToDelete: [deleteNode], treeController: navState.treeController, undoManager: undoManager)
|
||||
let deleteCommand = DeleteCommand(nodesToDelete: [deleteNode], treeController: navState.treeController, undoManager: undoManager, errorHandler: ErrorHandler.present(self))
|
||||
else {
|
||||
return
|
||||
}
|
||||
@ -625,7 +625,7 @@ extension MasterFeedViewController: MasterFeedTableViewCellDelegate {
|
||||
private extension MasterFeedViewController {
|
||||
|
||||
@objc private func refreshAccounts(_ sender: Any) {
|
||||
AccountManager.shared.refreshAll(errorHandler: ErrorHandler.present)
|
||||
AccountManager.shared.refreshAll(errorHandler: ErrorHandler.present(self))
|
||||
refreshControl?.endRefreshing()
|
||||
}
|
||||
|
||||
|
@ -367,7 +367,7 @@ class MasterTimelineViewController: ProgressTableViewController, UndoableCommand
|
||||
private extension MasterTimelineViewController {
|
||||
|
||||
@objc private func refreshAccounts(_ sender: Any) {
|
||||
AccountManager.shared.refreshAll(errorHandler: ErrorHandler.present)
|
||||
AccountManager.shared.refreshAll(errorHandler: ErrorHandler.present(self))
|
||||
refreshControl?.endRefreshing()
|
||||
}
|
||||
|
||||
|
@ -87,7 +87,7 @@ class FeedbinAccountViewController: UIViewController {
|
||||
case .success:
|
||||
break
|
||||
case .failure(let error):
|
||||
UIApplication.shared.presentError(error)
|
||||
self.presentError(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1 +1 @@
|
||||
Subproject commit 111690033354afc1cf57e37a326c344a0fe93b77
|
||||
Subproject commit 23e307542e5c65b3fbe4c3a022a97570c176a900
|
Loading…
x
Reference in New Issue
Block a user