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