diff --git a/iOS/Account/Account.storyboard b/iOS/Account/Account.storyboard index 9c4011f8f..52982af01 100644 --- a/iOS/Account/Account.storyboard +++ b/iOS/Account/Account.storyboard @@ -1,8 +1,8 @@ - + - + diff --git a/iOS/Account/FeedWranglerAccountViewController.swift b/iOS/Account/FeedWranglerAccountViewController.swift index a5356d09a..b6c297df8 100644 --- a/iOS/Account/FeedWranglerAccountViewController.swift +++ b/iOS/Account/FeedWranglerAccountViewController.swift @@ -78,17 +78,17 @@ class FeedWranglerAccountViewController: UITableViewController { showError(NSLocalizedString("Username & password required.", comment: "Credentials Error")) return } - - startAnimatingActivityIndicator() - disableNavigation() + resignFirstResponder() + toggleActivityIndicatorAnimation(visible: true) + setNavigationEnabled(to: false) // When you fill in the email address via auto-complete it adds extra whitespace let trimmedEmail = email.trimmingCharacters(in: .whitespaces) let credentials = Credentials(type: .feedWranglerBasic, username: trimmedEmail, secret: password) Account.validateCredentials(type: .feedWrangler, credentials: credentials) { result in - self.stopAnimtatingActivityIndicator() - self.enableNavigation() + self.toggleActivityIndicatorAnimation(visible: false) + self.setNavigationEnabled(to: true) switch result { case .success(let validatedCredentials): @@ -138,27 +138,21 @@ class FeedWranglerAccountViewController: UITableViewController { } private func showError(_ message: String) { - presentError(title: "Error", message: message) + presentError(title: NSLocalizedString("Error", comment: "Credentials Error"), message: message) } - private func enableNavigation() { - self.cancelBarButtonItem.isEnabled = true - self.actionButton.isEnabled = true + private func setNavigationEnabled(to value:Bool){ + cancelBarButtonItem.isEnabled = value + actionButton.isEnabled = value } - private func disableNavigation() { - cancelBarButtonItem.isEnabled = false - actionButton.isEnabled = false - } - - private func startAnimatingActivityIndicator() { - activityIndicator.isHidden = false - activityIndicator.startAnimating() - } - - private func stopAnimtatingActivityIndicator() { - self.activityIndicator.isHidden = true - self.activityIndicator.stopAnimating() + private func toggleActivityIndicatorAnimation(visible value: Bool){ + activityIndicator.isHidden = !value + if value { + activityIndicator.startAnimating() + } else { + activityIndicator.stopAnimating() + } } } @@ -166,7 +160,12 @@ class FeedWranglerAccountViewController: UITableViewController { extension FeedWranglerAccountViewController: UITextFieldDelegate { func textFieldShouldReturn(_ textField: UITextField) -> Bool { - textField.resignFirstResponder() + if textField == emailTextField { + passwordTextField.becomeFirstResponder() + } else { + textField.resignFirstResponder() + action(self) + } return true } diff --git a/iOS/Account/FeedbinAccountViewController.swift b/iOS/Account/FeedbinAccountViewController.swift index 695ee2a1c..df6110b64 100644 --- a/iOS/Account/FeedbinAccountViewController.swift +++ b/iOS/Account/FeedbinAccountViewController.swift @@ -79,17 +79,16 @@ class FeedbinAccountViewController: UITableViewController { showError(NSLocalizedString("Username & password required.", comment: "Credentials Error")) return } - - startAnimatingActivityIndicator() - disableNavigation() + resignFirstResponder() + toggleActivityIndicatorAnimation(visible: true) + setNavigationEnabled(to: false) // When you fill in the email address via auto-complete it adds extra whitespace let trimmedEmail = email.trimmingCharacters(in: .whitespaces) let credentials = Credentials(type: .basic, username: trimmedEmail, secret: password) Account.validateCredentials(type: .feedbin, credentials: credentials) { result in - - self.stopAnimtatingActivityIndicator() - self.enableNavigation() + self.toggleActivityIndicatorAnimation(visible: false) + self.setNavigationEnabled(to: true) switch result { case .success(let credentials): @@ -138,27 +137,21 @@ class FeedbinAccountViewController: UITableViewController { } private func showError(_ message: String) { - presentError(title: "Error", message: message) + presentError(title: NSLocalizedString("Error", comment: "Credentials Error"), message: message) } - private func enableNavigation() { - self.cancelBarButtonItem.isEnabled = true - self.actionButton.isEnabled = true + private func setNavigationEnabled(to value:Bool){ + cancelBarButtonItem.isEnabled = value + actionButton.isEnabled = value } - private func disableNavigation() { - cancelBarButtonItem.isEnabled = false - actionButton.isEnabled = false - } - - private func startAnimatingActivityIndicator() { - activityIndicator.isHidden = false - activityIndicator.startAnimating() - } - - private func stopAnimtatingActivityIndicator() { - self.activityIndicator.isHidden = true - self.activityIndicator.stopAnimating() + private func toggleActivityIndicatorAnimation(visible value: Bool){ + activityIndicator.isHidden = !value + if value { + activityIndicator.startAnimating() + } else { + activityIndicator.stopAnimating() + } } } @@ -166,7 +159,12 @@ class FeedbinAccountViewController: UITableViewController { extension FeedbinAccountViewController: UITextFieldDelegate { func textFieldShouldReturn(_ textField: UITextField) -> Bool { - textField.resignFirstResponder() + if textField == emailTextField { + passwordTextField.becomeFirstResponder() + } else { + textField.resignFirstResponder() + action(self) + } return true } diff --git a/iOS/Settings/Settings.storyboard b/iOS/Settings/Settings.storyboard index 97235c536..b3f38b2a5 100644 --- a/iOS/Settings/Settings.storyboard +++ b/iOS/Settings/Settings.storyboard @@ -1,8 +1,8 @@ - + - +