From 2401c96c999d5a2883eb5ac3f04a7a8b3c0c29a4 Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Thu, 9 May 2019 17:30:36 -0500 Subject: [PATCH] Update iOS to work with latest from the Accounts framework --- iOS/Add/AddFeedViewController.swift | 32 ++++++++++++++----- iOS/MasterFeed/MasterFeedViewController.swift | 18 +++++++---- 2 files changed, 35 insertions(+), 15 deletions(-) diff --git a/iOS/Add/AddFeedViewController.swift b/iOS/Add/AddFeedViewController.swift index dbcab8fcd..ade219a2b 100644 --- a/iOS/Add/AddFeedViewController.swift +++ b/iOS/Add/AddFeedViewController.swift @@ -90,7 +90,7 @@ class AddFeedViewController: UITableViewController, AddContainerViewControllerCh delegate?.processingDidBegin() - account!.createFeed(with: nil, url: url.absoluteString) { [weak self] result in + account!.createFeed(url: url.absoluteString) { [weak self] result in switch result { case .success(let createFeedResult): @@ -176,13 +176,29 @@ private extension AddFeedViewController { } } - // TODO: make this async and add to above code - account.addFeed(feed, to: folder) - - // Move this into the mess above - NotificationCenter.default.post(name: .UserDidAddFeed, object: self, userInfo: [UserInfoKey.feed: feed]) - - delegate?.processingDidEnd() + if let folder = folder { + folder.addFeed(feed) { [weak self] result in + switch result { + case .success: + self?.delegate?.processingDidEnd() + NotificationCenter.default.post(name: .UserDidAddFeed, object: self, userInfo: [UserInfoKey.feed: feed]) + case .failure(let error): + self?.delegate?.processingDidEnd() + self?.presentError(error) + } + } + } else { + account.addFeed(feed) { [weak self] result in + switch result { + case .success: + self?.delegate?.processingDidEnd() + NotificationCenter.default.post(name: .UserDidAddFeed, object: self, userInfo: [UserInfoKey.feed: feed]) + case .failure(let error): + self?.delegate?.processingDidEnd() + self?.presentError(error) + } + } + } } diff --git a/iOS/MasterFeed/MasterFeedViewController.swift b/iOS/MasterFeed/MasterFeedViewController.swift index df48db1f2..f57862d5e 100644 --- a/iOS/MasterFeed/MasterFeedViewController.swift +++ b/iOS/MasterFeed/MasterFeedViewController.swift @@ -362,19 +362,23 @@ class MasterFeedViewController: ProgressTableViewController, UndoableCommandRunn }() // Move the Feed - let account = accountForNode(destNode) - let sourceContainer = sourceNode.parent?.representedObject as? Container - let destinationFolder = destParentNode?.representedObject as? Folder - sourceContainer?.deleteFeed(feed) { [weak self] result in + let source = sourceNode.parent?.representedObject as? Container + let destination = destParentNode?.representedObject as? Container + source?.removeFeed(feed) { [weak self] result in switch result { case .success: - break + destination?.addFeed(feed) { result in + switch result { + case .success: + break + case .failure(let error): + self?.presentError(error) + } + } case .failure(let error): self?.presentError(error) } } - account?.addFeed(feed, to: destinationFolder) - account?.structureDidChange() }