diff --git a/Frameworks/Account/Feedly/OAuthAccountAuthorizationOperation.swift b/Frameworks/Account/Feedly/OAuthAccountAuthorizationOperation.swift
index 72e867ef5..bc73c6f3e 100644
--- a/Frameworks/Account/Feedly/OAuthAccountAuthorizationOperation.swift
+++ b/Frameworks/Account/Feedly/OAuthAccountAuthorizationOperation.swift
@@ -10,6 +10,7 @@ import Foundation
import AuthenticationServices
public protocol OAuthAccountAuthorizationOperationDelegate: class {
+ func oauthAccountAuthorizationOperation(_ operation: OAuthAccountAuthorizationOperation, didCreate account: Account)
func oauthAccountAuthorizationOperation(_ operation: OAuthAccountAuthorizationOperation, didFailWith error: Error)
}
@@ -126,6 +127,8 @@ public final class OAuthAccountAuthorizationOperation: Operation, ASWebAuthentic
// Now store the access token because we want the account delegate to use it.
try account.storeCredentials(grant.accessToken)
+
+ delegate?.oauthAccountAuthorizationOperation(self, didCreate: account)
didFinish()
} catch {
diff --git a/Mac/Preferences/Accounts/AccountsAddViewController.swift b/Mac/Preferences/Accounts/AccountsAddViewController.swift
index 5574248ea..db0def90c 100644
--- a/Mac/Preferences/Accounts/AccountsAddViewController.swift
+++ b/Mac/Preferences/Accounts/AccountsAddViewController.swift
@@ -119,6 +119,17 @@ extension AccountsAddViewController: NSTableViewDelegate {
extension AccountsAddViewController: OAuthAccountAuthorizationOperationDelegate {
+ func oauthAccountAuthorizationOperation(_ operation: OAuthAccountAuthorizationOperation, didCreate account: Account) {
+ account.refreshAll { [weak self] result in
+ switch result {
+ case .success:
+ break
+ case .failure(let error):
+ self?.presentError(error)
+ }
+ }
+ }
+
func oauthAccountAuthorizationOperation(_ operation: OAuthAccountAuthorizationOperation, didFailWith error: Error) {
view.window?.presentError(error)
}
diff --git a/iOS/Settings/AddAccountViewController.swift b/iOS/Settings/AddAccountViewController.swift
index f53d46a55..0f803b8a6 100644
--- a/iOS/Settings/AddAccountViewController.swift
+++ b/iOS/Settings/AddAccountViewController.swift
@@ -38,6 +38,11 @@ class AddAccountViewController: UITableViewController, AddAccountDismissDelegate
let addViewController = navController.topViewController as! FeedbinAccountViewController
addViewController.delegate = self
present(navController, animated: true)
+ case 2:
+ let addAccount = OAuthAccountAuthorizationOperation(accountType: .feedly)
+ addAccount.delegate = self
+ addAccount.presentationAnchor = self.view.window!
+ OperationQueue.main.addOperation(addAccount)
default:
break
}
@@ -48,3 +53,28 @@ class AddAccountViewController: UITableViewController, AddAccountDismissDelegate
}
}
+
+extension AddAccountViewController: OAuthAccountAuthorizationOperationDelegate {
+
+ func oauthAccountAuthorizationOperation(_ operation: OAuthAccountAuthorizationOperation, didCreate account: Account) {
+ let rootViewController = view.window?.rootViewController
+
+ account.refreshAll { result in
+ switch result {
+ case .success:
+ break
+ case .failure(let error):
+ guard let viewController = rootViewController else {
+ return
+ }
+ viewController.presentError(error)
+ }
+ }
+
+ dismiss()
+ }
+
+ func oauthAccountAuthorizationOperation(_ operation: OAuthAccountAuthorizationOperation, didFailWith error: Error) {
+ presentError(error)
+ }
+}
diff --git a/iOS/Settings/Settings.storyboard b/iOS/Settings/Settings.storyboard
index ff43a99bd..ed9e460df 100644
--- a/iOS/Settings/Settings.storyboard
+++ b/iOS/Settings/Settings.storyboard
@@ -424,6 +424,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -811,6 +844,7 @@
+