Rework add account scenes to look and work like standard iOS forms

This commit is contained in:
Maurice Parker 2019-10-21 20:28:50 -05:00
parent 19400a5a50
commit 7a644afc58
4 changed files with 196 additions and 196 deletions

View File

@ -9,18 +9,15 @@
import UIKit
import Account
class AddLocalAccountViewController: UIViewController {
class AddLocalAccountViewController: UITableViewController {
@IBOutlet weak var cancelBarButtonItem: UIBarButtonItem!
@IBOutlet private weak var localAccountNameLabel: UILabel!
@IBOutlet weak var nameTextField: UITextField!
weak var delegate: AddAccountDismissDelegate?
override func viewDidLoad() {
super.viewDidLoad()
localAccountNameLabel.text = Account.defaultLocalAccountName
navigationItem.title = Account.defaultLocalAccountName
nameTextField.delegate = self
}
@ -29,7 +26,7 @@ class AddLocalAccountViewController: UIViewController {
delegate?.dismiss()
}
@IBAction func addAccountTapped(_ sender: Any) {
@IBAction func add(_ sender: Any) {
let account = AccountManager.shared.createAccount(type: .onMyMac)
account.name = nameTextField.text
dismiss(animated: true, completion: nil)

View File

@ -97,6 +97,7 @@ private extension DetailAccountViewController {
let navController = UIStoryboard.settings.instantiateViewController(withIdentifier: "FeedbinAccountNavigationViewController") as! UINavigationController
let addViewController = navController.topViewController as! FeedbinAccountViewController
addViewController.account = account
navController.modalPresentationStyle = .currentContext
present(navController, animated: true)
default:
break

View File

@ -10,7 +10,7 @@ import UIKit
import Account
import RSWeb
class FeedbinAccountViewController: UIViewController {
class FeedbinAccountViewController: UITableViewController {
@IBOutlet weak var activityIndicator: UIActivityIndicatorView!
@IBOutlet weak var cancelBarButtonItem: UIBarButtonItem!
@ -19,8 +19,6 @@ class FeedbinAccountViewController: UIViewController {
@IBOutlet weak var showHideButton: UIButton!
@IBOutlet weak var actionButton: UIButton!
@IBOutlet weak var errorMessageLabel: UILabel!
weak var account: Account?
weak var delegate: AddAccountDismissDelegate?
@ -56,10 +54,9 @@ class FeedbinAccountViewController: UIViewController {
}
@IBAction func action(_ sender: Any) {
self.errorMessageLabel.text = nil
guard let email = emailTextField.text, let password = passwordTextField.text else {
self.errorMessageLabel.text = NSLocalizedString("Username & password required.", comment: "Credentials Error")
showError(NSLocalizedString("Username & password required.", comment: "Credentials Error"))
return
}
@ -104,18 +101,22 @@ class FeedbinAccountViewController: UIViewController {
self.dismiss(animated: true, completion: nil)
self.delegate?.dismiss()
} catch {
self.errorMessageLabel.text = NSLocalizedString("Keychain error while storing credentials.", comment: "Credentials Error")
self.showError(NSLocalizedString("Keychain error while storing credentials.", comment: "Credentials Error"))
}
} else {
self.errorMessageLabel.text = NSLocalizedString("Invalid email/password combination.", comment: "Credentials Error")
self.showError(NSLocalizedString("Invalid email/password combination.", comment: "Credentials Error"))
}
case .failure:
self.errorMessageLabel.text = NSLocalizedString("Network error. Try again later.", comment: "Credentials Error")
self.showError(NSLocalizedString("Network error. Try again later.", comment: "Credentials Error"))
}
}
}
private func showError(_ message: String) {
presentError(title: "Error", message: message)
}
private func enableNavigation() {
self.cancelBarButtonItem.isEnabled = true
self.actionButton.isEnabled = true

View File

@ -1,9 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="15504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="9cW-lu-HoC">
<device id="retina6_1" orientation="portrait" appearance="dark"/>
<device id="retina6_1" orientation="portrait" appearance="light"/>
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15508"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
@ -422,7 +421,6 @@
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Credentials" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontForContentSizeCategory="YES" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="OKd-Ps-a1K">
<rect key="frame" x="163.5" y="11.5" width="87" height="21"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
@ -495,8 +493,8 @@
<rect key="frame" x="20" y="11.5" width="217" height="32"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="accountLocal" translatesAutoresizingMaskIntoConstraints="NO" id="tb2-dO-AhR">
<rect key="frame" x="0.0" y="0.0" width="32" height="32.000000000000028"/>
<color key="tintColor" cocoaTouchSystemColor="darkTextColor"/>
<rect key="frame" x="0.0" y="0.0" width="32" height="32"/>
<color key="tintColor" systemColor="labelColor" cocoaTouchSystemColor="darkTextColor"/>
<constraints>
<constraint firstAttribute="height" constant="32" id="0GF-vU-aEc"/>
<constraint firstAttribute="width" constant="32" id="xDy-t7-26A"/>
@ -529,7 +527,7 @@
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="accountFeedbin" translatesAutoresizingMaskIntoConstraints="NO" id="wyu-mZ-3zz">
<rect key="frame" x="0.0" y="0.0" width="32" height="32"/>
<color key="tintColor" cocoaTouchSystemColor="darkTextColor"/>
<color key="tintColor" systemColor="labelColor" cocoaTouchSystemColor="darkTextColor"/>
<constraints>
<constraint firstAttribute="height" constant="32" id="LEr-1Z-N99"/>
<constraint firstAttribute="width" constant="32" id="fZN-HH-heN"/>
@ -575,7 +573,7 @@
<autoresizingMask key="autoresizingMask"/>
</navigationBar>
<connections>
<segue destination="lkT-rF-XV3" kind="relationship" relationship="rootViewController" id="LrS-Q9-xHZ"/>
<segue destination="Tgu-u6-glx" kind="relationship" relationship="rootViewController" id="9Er-RJ-482"/>
</connections>
</navigationController>
<placeholder placeholderIdentifier="IBFirstResponder" id="QPl-ba-rnZ" userLabel="First Responder" sceneMemberID="firstResponder"/>
@ -591,197 +589,201 @@
<autoresizingMask key="autoresizingMask"/>
</navigationBar>
<connections>
<segue destination="byh-sg-6p5" kind="relationship" relationship="rootViewController" id="UOK-JY-Ded"/>
<segue destination="PrL-bD-PFa" kind="relationship" relationship="rootViewController" id="ogw-KC-Hhv"/>
</connections>
</navigationController>
<placeholder placeholderIdentifier="IBFirstResponder" id="huK-n1-D82" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="3177" y="-528"/>
</scene>
<!--Add Local Account View Controller-->
<scene sceneID="3at-5H-MrI">
<!--On My Device-->
<scene sceneID="dGi-aD-nj5">
<objects>
<viewController storyboardIdentifier="AddLocalAccountViewController" id="lkT-rF-XV3" customClass="AddLocalAccountViewController" customModule="NetNewsWire" customModuleProvider="target" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="9rb-pV-gvI">
<tableViewController id="Tgu-u6-glx" customClass="AddLocalAccountViewController" customModule="NetNewsWire" customModuleProvider="target" sceneMemberID="viewController">
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="grouped" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="18" sectionFooterHeight="18" id="cJd-4g-Rpu">
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" alignment="center" spacing="20" translatesAutoresizingMaskIntoConstraints="NO" id="7zF-66-uRq">
<rect key="frame" x="79" y="128" width="256.5" height="41"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="accountLocal" translatesAutoresizingMaskIntoConstraints="NO" id="74E-kl-vU9">
<rect key="frame" x="0.0" y="4.5" width="32" height="32.000000000000028"/>
<color key="tintColor" white="0.33333333329999998" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="width" constant="32" id="E7T-ps-KgX"/>
<constraint firstAttribute="height" constant="32" id="hew-64-pi8"/>
</constraints>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="On My iPhone" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontForContentSizeCategory="YES" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Tdm-Ge-uc6">
<rect key="frame" x="52" y="0.0" width="204.5" height="41"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleTitle0"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</stackView>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Name (Optional)" adjustsFontForContentSizeCategory="YES" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="2dx-hK-hxL">
<rect key="frame" x="0.0" y="189" width="414" height="48"/>
<constraints>
<constraint firstAttribute="height" constant="48" id="Z7w-B0-LuW"/>
</constraints>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<textInputTraits key="textInputTraits"/>
</textField>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="5AS-Zb-zHP">
<rect key="frame" x="0.0" y="257" width="414" height="48"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="height" constant="48" id="IFC-SI-vcP"/>
</constraints>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<state key="normal" title="Add Account"/>
<connections>
<action selector="addAccountTapped:" destination="lkT-rF-XV3" eventType="touchUpInside" id="bmf-nA-fJU"/>
</connections>
</button>
</subviews>
<color key="backgroundColor" red="0.93735349178314209" green="0.93682962656021118" blue="0.95681577920913696" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
<constraints>
<constraint firstItem="5AS-Zb-zHP" firstAttribute="leading" secondItem="Z5L-XF-ZSa" secondAttribute="leading" id="3Ov-dx-JBu"/>
<constraint firstItem="5AS-Zb-zHP" firstAttribute="top" secondItem="2dx-hK-hxL" secondAttribute="bottom" constant="20" id="CZD-h0-H7B"/>
<constraint firstItem="5AS-Zb-zHP" firstAttribute="centerX" secondItem="2dx-hK-hxL" secondAttribute="centerX" id="Duk-ML-7hE"/>
<constraint firstItem="7zF-66-uRq" firstAttribute="top" secondItem="Z5L-XF-ZSa" secondAttribute="top" constant="40" id="Meu-uI-vga"/>
<constraint firstItem="2dx-hK-hxL" firstAttribute="leading" secondItem="Z5L-XF-ZSa" secondAttribute="leading" id="N9Z-mx-C4J"/>
<constraint firstItem="2dx-hK-hxL" firstAttribute="centerX" secondItem="9rb-pV-gvI" secondAttribute="centerX" id="SCu-FD-r1u"/>
<constraint firstItem="Z5L-XF-ZSa" firstAttribute="trailing" secondItem="2dx-hK-hxL" secondAttribute="trailing" id="SS2-gJ-f5W"/>
<constraint firstItem="Z5L-XF-ZSa" firstAttribute="trailing" secondItem="5AS-Zb-zHP" secondAttribute="trailing" id="gVj-9g-QQL"/>
<constraint firstItem="7zF-66-uRq" firstAttribute="centerX" secondItem="9rb-pV-gvI" secondAttribute="centerX" id="u9U-ks-gUh"/>
<constraint firstItem="2dx-hK-hxL" firstAttribute="top" secondItem="Tdm-Ge-uc6" secondAttribute="bottom" constant="20" id="wLk-OA-sWO"/>
</constraints>
<viewLayoutGuide key="safeArea" id="Z5L-XF-ZSa"/>
</view>
<navigationItem key="navigationItem" id="Otv-KQ-fsd">
<barButtonItem key="leftBarButtonItem" systemItem="cancel" id="IRo-a7-Blk">
<color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
<sections>
<tableViewSection id="PBf-ky-CY1">
<cells>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" id="kzW-o5-enA">
<rect key="frame" x="0.0" y="18" width="414" height="43.5"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="kzW-o5-enA" id="FWO-c1-4Th">
<rect key="frame" x="0.0" y="0.0" width="414" height="43.5"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Name" textAlignment="natural" adjustsFontForContentSizeCategory="YES" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="QNQ-By-OsE">
<rect key="frame" x="20" y="11.5" width="374" height="21"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<textInputTraits key="textInputTraits"/>
</textField>
</subviews>
<constraints>
<constraint firstItem="QNQ-By-OsE" firstAttribute="leading" secondItem="FWO-c1-4Th" secondAttribute="leading" constant="20" id="9xk-2h-dGZ"/>
<constraint firstAttribute="trailing" secondItem="QNQ-By-OsE" secondAttribute="trailing" constant="20" id="UmT-fG-gr0"/>
<constraint firstItem="QNQ-By-OsE" firstAttribute="centerY" secondItem="FWO-c1-4Th" secondAttribute="centerY" id="q37-vt-Joj"/>
</constraints>
</tableViewCellContentView>
</tableViewCell>
</cells>
</tableViewSection>
<tableViewSection id="gBC-Kb-bFs">
<cells>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" id="B5Z-y9-YV6">
<rect key="frame" x="0.0" y="97.5" width="414" height="43.5"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="B5Z-y9-YV6" id="UQF-7L-Vm4">
<rect key="frame" x="0.0" y="0.0" width="414" height="43.5"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="vhl-Lu-KFz">
<rect key="frame" x="157.5" y="5.5" width="99" height="33"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<state key="normal" title="Add Account"/>
<connections>
<action selector="add:" destination="Tgu-u6-glx" eventType="touchUpInside" id="zO2-qG-v34"/>
</connections>
</button>
</subviews>
<constraints>
<constraint firstItem="vhl-Lu-KFz" firstAttribute="centerY" secondItem="UQF-7L-Vm4" secondAttribute="centerY" id="3M2-Os-MDM"/>
<constraint firstItem="vhl-Lu-KFz" firstAttribute="centerX" secondItem="UQF-7L-Vm4" secondAttribute="centerX" id="8wm-qm-KgD"/>
</constraints>
</tableViewCellContentView>
</tableViewCell>
</cells>
</tableViewSection>
</sections>
<connections>
<outlet property="dataSource" destination="Tgu-u6-glx" id="So7-EE-UYt"/>
<outlet property="delegate" destination="Tgu-u6-glx" id="NNs-dU-Utx"/>
</connections>
</tableView>
<navigationItem key="navigationItem" title="On My Device" id="gtG-qL-oLT">
<barButtonItem key="leftBarButtonItem" style="plain" systemItem="cancel" id="VjX-zk-Hs5">
<connections>
<action selector="cancel:" destination="lkT-rF-XV3" id="eiE-bJ-sJF"/>
<action selector="cancel:" destination="Tgu-u6-glx" id="VnU-4c-3Pv"/>
</connections>
</barButtonItem>
</navigationItem>
<connections>
<outlet property="cancelBarButtonItem" destination="IRo-a7-Blk" id="1oI-Uk-nfz"/>
<outlet property="localAccountNameLabel" destination="Tdm-Ge-uc6" id="48O-IT-xXw"/>
<outlet property="nameTextField" destination="2dx-hK-hxL" id="t5V-3x-3vu"/>
<outlet property="nameTextField" destination="QNQ-By-OsE" id="nof-rM-u3L"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="oPp-xq-kz9" userLabel="First Responder" sceneMemberID="firstResponder"/>
</tableViewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="nxT-ou-o5B" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="2507" y="139"/>
<point key="canvasLocation" x="2506" y="139"/>
</scene>
<!--Feedbin Account View Controller-->
<scene sceneID="sCm-Gd-byr">
<!--Feedbin-->
<scene sceneID="sRU-qa-Yle">
<objects>
<viewController storyboardIdentifier="FeedbinAccountViewController" id="byh-sg-6p5" customClass="FeedbinAccountViewController" customModule="NetNewsWire" customModuleProvider="target" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="E6e-jd-9b6">
<tableViewController id="PrL-bD-PFa" customClass="FeedbinAccountViewController" customModule="NetNewsWire" customModuleProvider="target" sceneMemberID="viewController">
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="grouped" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="18" sectionFooterHeight="18" id="cEY-3a-NK0">
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" alignment="center" spacing="20" translatesAutoresizingMaskIntoConstraints="NO" id="vFL-2i-eRz">
<rect key="frame" x="122.5" y="128" width="169.5" height="41"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="accountFeedbin" translatesAutoresizingMaskIntoConstraints="NO" id="9ht-ce-lQp">
<rect key="frame" x="0.0" y="4.5" width="32" height="32"/>
<color key="tintColor" white="0.33333333329999998" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="width" constant="32" id="2Qp-v5-g0U"/>
<constraint firstAttribute="height" constant="32" id="aCm-eQ-zWU"/>
</constraints>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Feedbin" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontForContentSizeCategory="YES" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hw9-yb-i0u">
<rect key="frame" x="52" y="0.0" width="117.5" height="41"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleTitle0"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</stackView>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Email" adjustsFontForContentSizeCategory="YES" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="UiV-th-dQb">
<rect key="frame" x="0.0" y="189" width="414" height="48"/>
<constraints>
<constraint firstAttribute="height" constant="48" id="UjW-Pq-uNU"/>
</constraints>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<textInputTraits key="textInputTraits" keyboardType="emailAddress" textContentType="username"/>
</textField>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontForContentSizeCategory="YES" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9QD-Wz-fqW">
<rect key="frame" x="207" y="381" width="0.0" height="0.0"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<color key="textColor" name="systemRedColor" catalog="System" colorSpace="catalog"/>
<nil key="highlightedColor"/>
</label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="pv5-O6-P6Z">
<rect key="frame" x="0.0" y="313" width="414" height="48"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="height" constant="48" id="8Vt-l1-eL1"/>
</constraints>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<state key="normal" title="Action"/>
<connections>
<action selector="action:" destination="byh-sg-6p5" eventType="touchUpInside" id="ZQy-9g-TeU"/>
</connections>
</button>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Password" textAlignment="natural" adjustsFontForContentSizeCategory="YES" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="2CB-cQ-4G2">
<rect key="frame" x="0.0" y="245" width="414" height="48"/>
<constraints>
<constraint firstAttribute="height" constant="48" id="zSB-P4-U6w"/>
</constraints>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<textInputTraits key="textInputTraits" secureTextEntry="YES"/>
</textField>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="8D1-Lz-Wsj">
<rect key="frame" x="363" y="252.5" width="43" height="33"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<state key="normal" title="Show"/>
<connections>
<action selector="showHidePassword:" destination="byh-sg-6p5" eventType="touchUpInside" id="INE-vg-mxP"/>
</connections>
</button>
</subviews>
<color key="backgroundColor" red="0.93735349178314209" green="0.93682962656021118" blue="0.95681577920913696" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
<constraints>
<constraint firstItem="2CB-cQ-4G2" firstAttribute="top" secondItem="UiV-th-dQb" secondAttribute="bottom" constant="8" id="0hZ-Nw-bIs"/>
<constraint firstItem="UiV-th-dQb" firstAttribute="leading" secondItem="4Rm-PZ-VHc" secondAttribute="leading" id="1ok-W1-dkI"/>
<constraint firstItem="2CB-cQ-4G2" firstAttribute="leading" secondItem="4Rm-PZ-VHc" secondAttribute="leading" id="3yY-IH-A6W"/>
<constraint firstItem="UiV-th-dQb" firstAttribute="top" secondItem="vFL-2i-eRz" secondAttribute="bottom" constant="20" id="BUG-5p-BDh"/>
<constraint firstItem="9QD-Wz-fqW" firstAttribute="top" secondItem="pv5-O6-P6Z" secondAttribute="bottom" constant="20" id="BxD-TQ-zRm"/>
<constraint firstItem="pv5-O6-P6Z" firstAttribute="trailing" secondItem="4Rm-PZ-VHc" secondAttribute="trailing" id="DkX-t4-GH3"/>
<constraint firstItem="pv5-O6-P6Z" firstAttribute="leading" secondItem="4Rm-PZ-VHc" secondAttribute="leading" id="Jhs-JE-qWd"/>
<constraint firstItem="9QD-Wz-fqW" firstAttribute="centerX" secondItem="E6e-jd-9b6" secondAttribute="centerX" id="Sgr-tG-nT2"/>
<constraint firstItem="pv5-O6-P6Z" firstAttribute="top" secondItem="2CB-cQ-4G2" secondAttribute="bottom" constant="20" id="eRp-Xa-TiJ"/>
<constraint firstItem="4Rm-PZ-VHc" firstAttribute="trailing" secondItem="UiV-th-dQb" secondAttribute="trailing" id="hfB-Ql-twm"/>
<constraint firstItem="vFL-2i-eRz" firstAttribute="top" secondItem="4Rm-PZ-VHc" secondAttribute="top" constant="40" id="khS-vK-fL0"/>
<constraint firstItem="8D1-Lz-Wsj" firstAttribute="centerY" secondItem="2CB-cQ-4G2" secondAttribute="centerY" id="n8e-vR-WRB"/>
<constraint firstItem="vFL-2i-eRz" firstAttribute="centerX" secondItem="E6e-jd-9b6" secondAttribute="centerX" id="qew-4G-xhG"/>
<constraint firstItem="UiV-th-dQb" firstAttribute="centerX" secondItem="E6e-jd-9b6" secondAttribute="centerX" id="vLa-hN-GpR"/>
<constraint firstItem="4Rm-PZ-VHc" firstAttribute="trailing" secondItem="2CB-cQ-4G2" secondAttribute="trailing" id="x8Z-aP-Acy"/>
<constraint firstItem="8D1-Lz-Wsj" firstAttribute="trailing" secondItem="2CB-cQ-4G2" secondAttribute="trailing" constant="-8" id="ys5-Ec-EHy"/>
</constraints>
<viewLayoutGuide key="safeArea" id="4Rm-PZ-VHc"/>
</view>
<navigationItem key="navigationItem" id="BFN-hJ-pWd">
<barButtonItem key="leftBarButtonItem" systemItem="cancel" id="xVt-VC-XFV">
<color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
<sections>
<tableViewSection id="847-xm-Bb9">
<cells>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" id="Glm-YE-HQo">
<rect key="frame" x="0.0" y="18" width="414" height="43.5"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="Glm-YE-HQo" id="v9A-EJ-Ygc">
<rect key="frame" x="0.0" y="0.0" width="414" height="43.5"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Email" textAlignment="natural" adjustsFontForContentSizeCategory="YES" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="YX8-Za-AM8">
<rect key="frame" x="20" y="11.5" width="374" height="21"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<textInputTraits key="textInputTraits" spellCheckingType="no" keyboardType="emailAddress" textContentType="username"/>
</textField>
</subviews>
<constraints>
<constraint firstAttribute="trailing" secondItem="YX8-Za-AM8" secondAttribute="trailing" constant="20" id="8Vn-o7-kBo"/>
<constraint firstItem="YX8-Za-AM8" firstAttribute="centerY" secondItem="v9A-EJ-Ygc" secondAttribute="centerY" id="C6U-7U-bsw"/>
<constraint firstItem="YX8-Za-AM8" firstAttribute="leading" secondItem="v9A-EJ-Ygc" secondAttribute="leading" constant="20" id="rVM-ag-HfX"/>
</constraints>
</tableViewCellContentView>
</tableViewCell>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" id="d2Q-VL-5PU">
<rect key="frame" x="0.0" y="61.5" width="414" height="43.5"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="d2Q-VL-5PU" id="Tww-fm-N0d">
<rect key="frame" x="0.0" y="0.0" width="414" height="43.5"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Password" textAlignment="natural" adjustsFontForContentSizeCategory="YES" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="nEK-aP-FkT">
<rect key="frame" x="20" y="11.5" width="323" height="21"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<textInputTraits key="textInputTraits" secureTextEntry="YES" textContentType="password"/>
</textField>
<button opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="u2O-g9-7Fx">
<rect key="frame" x="351" y="5.5" width="43" height="33"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<state key="normal" title="Show"/>
<connections>
<action selector="showHidePassword:" destination="PrL-bD-PFa" eventType="touchUpInside" id="e9e-r8-KkY"/>
</connections>
</button>
</subviews>
<constraints>
<constraint firstAttribute="trailing" secondItem="u2O-g9-7Fx" secondAttribute="trailing" constant="20" id="5qO-md-J0E"/>
<constraint firstItem="nEK-aP-FkT" firstAttribute="centerY" secondItem="Tww-fm-N0d" secondAttribute="centerY" id="HY7-eK-kMl"/>
<constraint firstItem="u2O-g9-7Fx" firstAttribute="centerY" secondItem="Tww-fm-N0d" secondAttribute="centerY" id="Sc3-xy-MPt"/>
<constraint firstItem="nEK-aP-FkT" firstAttribute="leading" secondItem="Tww-fm-N0d" secondAttribute="leading" constant="20" id="rYW-Wq-pqZ"/>
<constraint firstItem="u2O-g9-7Fx" firstAttribute="leading" secondItem="nEK-aP-FkT" secondAttribute="trailing" constant="8" symbolic="YES" id="tDr-WZ-SB1"/>
</constraints>
</tableViewCellContentView>
</tableViewCell>
</cells>
</tableViewSection>
<tableViewSection id="oez-j7-Bnb">
<cells>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" id="TdT-na-AmS">
<rect key="frame" x="0.0" y="141" width="414" height="43.5"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="TdT-na-AmS" id="LVF-fO-2pw">
<rect key="frame" x="0.0" y="0.0" width="414" height="43.5"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Ohs-Iz-tfT">
<rect key="frame" x="182.5" y="5.5" width="49" height="33"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<state key="normal" title="Action"/>
<connections>
<action selector="action:" destination="PrL-bD-PFa" eventType="touchUpInside" id="AmE-ou-ltA"/>
</connections>
</button>
</subviews>
<constraints>
<constraint firstItem="Ohs-Iz-tfT" firstAttribute="centerX" secondItem="LVF-fO-2pw" secondAttribute="centerX" id="VJV-B8-xqa"/>
<constraint firstItem="Ohs-Iz-tfT" firstAttribute="centerY" secondItem="LVF-fO-2pw" secondAttribute="centerY" id="gex-aC-xc8"/>
</constraints>
</tableViewCellContentView>
</tableViewCell>
</cells>
</tableViewSection>
</sections>
<connections>
<outlet property="dataSource" destination="PrL-bD-PFa" id="F0B-Mw-9r8"/>
<outlet property="delegate" destination="PrL-bD-PFa" id="ruw-7t-eup"/>
</connections>
</tableView>
<navigationItem key="navigationItem" title="Feedbin" id="Q6r-Nq-JFp">
<barButtonItem key="leftBarButtonItem" style="plain" systemItem="cancel" id="lUP-Wl-qhg">
<connections>
<action selector="cancel:" destination="byh-sg-6p5" id="WrS-lL-eth"/>
<action selector="cancel:" destination="PrL-bD-PFa" id="suc-Rb-hTh"/>
</connections>
</barButtonItem>
<barButtonItem key="rightBarButtonItem" style="plain" id="L90-ti-E7I">
<view key="customView" contentMode="scaleToFill" id="xpt-lr-f2h">
<barButtonItem key="rightBarButtonItem" style="plain" id="JZR-7Q-UPu">
<view key="customView" contentMode="scaleToFill" id="3bt-bK-KgU">
<rect key="frame" x="374" y="12" width="20" height="20"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
<activityIndicatorView hidden="YES" opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" fixedFrame="YES" style="gray" translatesAutoresizingMaskIntoConstraints="NO" id="Pl1-lc-sIl">
<rect key="frame" x="0.0" y="0.0" width="20" height="20"/>
<activityIndicatorView opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" fixedFrame="YES" style="medium" translatesAutoresizingMaskIntoConstraints="NO" id="sGW-T1-8tp">
<rect key="frame" x="36" y="6" width="20" height="20"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
</activityIndicatorView>
</subviews>
@ -790,18 +792,17 @@
</barButtonItem>
</navigationItem>
<connections>
<outlet property="actionButton" destination="pv5-O6-P6Z" id="6Fm-3l-zj1"/>
<outlet property="activityIndicator" destination="Pl1-lc-sIl" id="hqg-mX-Yns"/>
<outlet property="cancelBarButtonItem" destination="xVt-VC-XFV" id="yBm-px-sgt"/>
<outlet property="emailTextField" destination="UiV-th-dQb" id="fCb-hg-AXa"/>
<outlet property="errorMessageLabel" destination="9QD-Wz-fqW" id="Kjo-73-Pgh"/>
<outlet property="passwordTextField" destination="2CB-cQ-4G2" id="7LV-jP-KMw"/>
<outlet property="showHideButton" destination="8D1-Lz-Wsj" id="Uc5-xE-usi"/>
<outlet property="actionButton" destination="Ohs-Iz-tfT" id="Arx-dx-vNk"/>
<outlet property="activityIndicator" destination="sGW-T1-8tp" id="BG9-GN-ojc"/>
<outlet property="cancelBarButtonItem" destination="lUP-Wl-qhg" id="Bk7-OJ-aII"/>
<outlet property="emailTextField" destination="YX8-Za-AM8" id="hWc-LX-k9c"/>
<outlet property="passwordTextField" destination="nEK-aP-FkT" id="hxE-fQ-xea"/>
<outlet property="showHideButton" destination="u2O-g9-7Fx" id="U5t-wB-sjT"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="l5n-Op-NE2" userLabel="First Responder" sceneMemberID="firstResponder"/>
</tableViewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="FZU-tv-zhx" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="3176.811594202899" y="138.61607142857142"/>
<point key="canvasLocation" x="3187" y="139"/>
</scene>
<!--Refresh Interval-->
<scene sceneID="5WY-bu-OPU">