mirror of
https://github.com/Ranchero-Software/NetNewsWire.git
synced 2025-02-02 20:16:54 +01:00
Merge pull request #2565 from stuartbreckenridge/ios-add-account-refresh
iOS | Add Account Sheet Footers & Sign Ups
This commit is contained in:
commit
505134c971
@ -1,10 +1,11 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="17505" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
|
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="17156" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
|
||||||
<device id="retina6_1" orientation="portrait" appearance="light"/>
|
<device id="retina6_1" orientation="portrait" appearance="light"/>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<deployment identifier="iOS"/>
|
<deployment identifier="iOS"/>
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17502"/>
|
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17126"/>
|
||||||
<capability name="Named colors" minToolsVersion="9.0"/>
|
<capability name="Named colors" minToolsVersion="9.0"/>
|
||||||
|
<capability name="System colors in document resources" minToolsVersion="11.0"/>
|
||||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<scenes>
|
<scenes>
|
||||||
@ -47,6 +48,37 @@
|
|||||||
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="insetGrouped" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="18" sectionFooterHeight="18" id="pvq-Hi-fuC">
|
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="insetGrouped" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="18" sectionFooterHeight="18" id="pvq-Hi-fuC">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
|
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<view key="tableFooterView" contentMode="scaleToFill" id="lTu-NN-o2n">
|
||||||
|
<rect key="frame" x="0.0" y="202.5" width="414" height="150"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="center" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontForContentSizeCategory="YES" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="6Ik-WC-e74">
|
||||||
|
<rect key="frame" x="20" y="8" width="373" height="78.5"/>
|
||||||
|
<string key="text">Sign in to your Feed Wranger account to sync your subscriptions across your devices. Your username and password will be encrypted and stored in Keychain.
|
||||||
|
|
||||||
|
Don't have a Feed Wrangler account?</string>
|
||||||
|
<fontDescription key="fontDescription" style="UICTFontTextStyleCaption1"/>
|
||||||
|
<color key="textColor" systemColor="secondaryLabelColor"/>
|
||||||
|
<nil key="highlightedColor"/>
|
||||||
|
</label>
|
||||||
|
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="8ez-iV-55B">
|
||||||
|
<rect key="frame" x="169.5" y="85" width="75" height="27"/>
|
||||||
|
<fontDescription key="fontDescription" style="UICTFontTextStyleCaption1"/>
|
||||||
|
<state key="normal" title="Sign Up Here"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="signUpWithProvider:" destination="fPs-Pp-Qk4" eventType="touchUpInside" id="Was-na-sg5"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
</subviews>
|
||||||
|
<color key="backgroundColor" systemColor="systemGroupedBackgroundColor"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="6Ik-WC-e74" secondAttribute="trailing" constant="21" id="1CB-EI-IPX"/>
|
||||||
|
<constraint firstItem="6Ik-WC-e74" firstAttribute="top" secondItem="lTu-NN-o2n" secondAttribute="top" constant="8" id="BJc-vU-mFv"/>
|
||||||
|
<constraint firstItem="8ez-iV-55B" firstAttribute="top" secondItem="6Ik-WC-e74" secondAttribute="bottom" constant="-1.5" id="CUU-H2-Exb"/>
|
||||||
|
<constraint firstItem="6Ik-WC-e74" firstAttribute="leading" secondItem="lTu-NN-o2n" secondAttribute="leading" constant="20" symbolic="YES" id="fhG-hY-7xP"/>
|
||||||
|
<constraint firstItem="8ez-iV-55B" firstAttribute="centerX" secondItem="lTu-NN-o2n" secondAttribute="centerX" id="kbC-MK-8IL"/>
|
||||||
|
</constraints>
|
||||||
|
</view>
|
||||||
<sections>
|
<sections>
|
||||||
<tableViewSection id="aBu-yB-8do">
|
<tableViewSection id="aBu-yB-8do">
|
||||||
<cells>
|
<cells>
|
||||||
@ -165,6 +197,7 @@
|
|||||||
<outlet property="activityIndicator" destination="mVm-hL-hqw" id="8Og-kO-70M"/>
|
<outlet property="activityIndicator" destination="mVm-hL-hqw" id="8Og-kO-70M"/>
|
||||||
<outlet property="cancelBarButtonItem" destination="zbP-iL-kfC" id="TT3-iu-IvG"/>
|
<outlet property="cancelBarButtonItem" destination="zbP-iL-kfC" id="TT3-iu-IvG"/>
|
||||||
<outlet property="emailTextField" destination="o06-fe-i3S" id="WHW-3E-trH"/>
|
<outlet property="emailTextField" destination="o06-fe-i3S" id="WHW-3E-trH"/>
|
||||||
|
<outlet property="footerLabel" destination="6Ik-WC-e74" id="KwB-tD-kTN"/>
|
||||||
<outlet property="passwordTextField" destination="Z6i-nX-CwJ" id="p36-53-RsD"/>
|
<outlet property="passwordTextField" destination="Z6i-nX-CwJ" id="p36-53-RsD"/>
|
||||||
<outlet property="showHideButton" destination="lBg-Pn-8ao" id="GgE-Nx-gFL"/>
|
<outlet property="showHideButton" destination="lBg-Pn-8ao" id="GgE-Nx-gFL"/>
|
||||||
</connections>
|
</connections>
|
||||||
@ -196,6 +229,24 @@
|
|||||||
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="insetGrouped" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="18" sectionFooterHeight="18" id="YLa-nM-G7t">
|
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="insetGrouped" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="18" sectionFooterHeight="18" id="YLa-nM-G7t">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
|
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<view key="tableFooterView" contentMode="scaleToFill" id="Vxr-5V-V6R">
|
||||||
|
<rect key="frame" x="0.0" y="159" width="414" height="150"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Local accounts do not sync your subscriptions across devices." textAlignment="center" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontForContentSizeCategory="YES" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5ce-ZL-glQ">
|
||||||
|
<rect key="frame" x="20" y="8" width="373" height="14.5"/>
|
||||||
|
<fontDescription key="fontDescription" style="UICTFontTextStyleCaption1"/>
|
||||||
|
<color key="textColor" systemColor="secondaryLabelColor"/>
|
||||||
|
<nil key="highlightedColor"/>
|
||||||
|
</label>
|
||||||
|
</subviews>
|
||||||
|
<color key="backgroundColor" systemColor="systemGroupedBackgroundColor"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="5ce-ZL-glQ" secondAttribute="trailing" constant="21" id="YLV-d0-1us"/>
|
||||||
|
<constraint firstItem="5ce-ZL-glQ" firstAttribute="leading" secondItem="Vxr-5V-V6R" secondAttribute="leading" constant="20" symbolic="YES" id="dmE-Zi-5FR"/>
|
||||||
|
<constraint firstItem="5ce-ZL-glQ" firstAttribute="top" secondItem="Vxr-5V-V6R" secondAttribute="top" constant="8" id="z4G-hO-VUE"/>
|
||||||
|
</constraints>
|
||||||
|
</view>
|
||||||
<sections>
|
<sections>
|
||||||
<tableViewSection id="TfM-Jc-Fr0">
|
<tableViewSection id="TfM-Jc-Fr0">
|
||||||
<cells>
|
<cells>
|
||||||
@ -267,12 +318,13 @@
|
|||||||
</barButtonItem>
|
</barButtonItem>
|
||||||
</navigationItem>
|
</navigationItem>
|
||||||
<connections>
|
<connections>
|
||||||
|
<outlet property="footerLabel" destination="5ce-ZL-glQ" id="V50-Yc-hD6"/>
|
||||||
<outlet property="nameTextField" destination="Yl1-R6-xZi" id="jcl-vI-Rde"/>
|
<outlet property="nameTextField" destination="Yl1-R6-xZi" id="jcl-vI-Rde"/>
|
||||||
</connections>
|
</connections>
|
||||||
</tableViewController>
|
</tableViewController>
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="XJD-sO-MSq" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
|
<placeholder placeholderIdentifier="IBFirstResponder" id="XJD-sO-MSq" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
|
||||||
</objects>
|
</objects>
|
||||||
<point key="canvasLocation" x="1880" y="145"/>
|
<point key="canvasLocation" x="1879.7101449275365" y="144.64285714285714"/>
|
||||||
</scene>
|
</scene>
|
||||||
<!--Feedbin-->
|
<!--Feedbin-->
|
||||||
<scene sceneID="IDj-HA-olN">
|
<scene sceneID="IDj-HA-olN">
|
||||||
@ -281,6 +333,37 @@
|
|||||||
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="insetGrouped" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="18" sectionFooterHeight="18" id="Y0x-RC-7ln">
|
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="insetGrouped" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="18" sectionFooterHeight="18" id="Y0x-RC-7ln">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
|
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<view key="tableFooterView" contentMode="scaleToFill" id="3KO-DU-JXG">
|
||||||
|
<rect key="frame" x="0.0" y="202.5" width="414" height="150"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="center" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontForContentSizeCategory="YES" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="sgL-0C-JZa">
|
||||||
|
<rect key="frame" x="20" y="8" width="373" height="78.5"/>
|
||||||
|
<string key="text">Sign in to your Feedbin account to sync your subscriptions across your devices. Your username and password will be encrypted and stored in Keychain.
|
||||||
|
|
||||||
|
Don't have a Feedbin account?</string>
|
||||||
|
<fontDescription key="fontDescription" style="UICTFontTextStyleCaption1"/>
|
||||||
|
<color key="textColor" systemColor="secondaryLabelColor"/>
|
||||||
|
<nil key="highlightedColor"/>
|
||||||
|
</label>
|
||||||
|
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Xhf-bK-vzm">
|
||||||
|
<rect key="frame" x="169.5" y="85" width="75" height="27"/>
|
||||||
|
<fontDescription key="fontDescription" style="UICTFontTextStyleCaption1"/>
|
||||||
|
<state key="normal" title="Sign Up Here"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="signUpWithProvider:" destination="ECy-jg-Kyc" eventType="touchUpInside" id="fIY-hq-q3H"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
</subviews>
|
||||||
|
<color key="backgroundColor" systemColor="systemGroupedBackgroundColor"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="sgL-0C-JZa" firstAttribute="top" secondItem="3KO-DU-JXG" secondAttribute="top" constant="8" id="BgR-gH-qHf"/>
|
||||||
|
<constraint firstItem="sgL-0C-JZa" firstAttribute="leading" secondItem="3KO-DU-JXG" secondAttribute="leading" constant="20" symbolic="YES" id="PLI-kz-MMq"/>
|
||||||
|
<constraint firstItem="Xhf-bK-vzm" firstAttribute="top" secondItem="sgL-0C-JZa" secondAttribute="bottom" constant="-1.5" id="R9l-5y-aMr"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="sgL-0C-JZa" secondAttribute="trailing" constant="21" id="ddS-HE-f1J"/>
|
||||||
|
<constraint firstItem="Xhf-bK-vzm" firstAttribute="centerX" secondItem="3KO-DU-JXG" secondAttribute="centerX" id="xs6-P4-4Vj"/>
|
||||||
|
</constraints>
|
||||||
|
</view>
|
||||||
<sections>
|
<sections>
|
||||||
<tableViewSection id="xBN-Pb-KAy">
|
<tableViewSection id="xBN-Pb-KAy">
|
||||||
<cells>
|
<cells>
|
||||||
@ -399,6 +482,7 @@
|
|||||||
<outlet property="activityIndicator" destination="YvV-hB-lzT" id="n1F-tV-5ZV"/>
|
<outlet property="activityIndicator" destination="YvV-hB-lzT" id="n1F-tV-5ZV"/>
|
||||||
<outlet property="cancelBarButtonItem" destination="pfF-Of-5NT" id="Zr3-qD-1Yi"/>
|
<outlet property="cancelBarButtonItem" destination="pfF-Of-5NT" id="Zr3-qD-1Yi"/>
|
||||||
<outlet property="emailTextField" destination="vJa-NN-yjR" id="nCF-9W-YsF"/>
|
<outlet property="emailTextField" destination="vJa-NN-yjR" id="nCF-9W-YsF"/>
|
||||||
|
<outlet property="footerLabel" destination="sgL-0C-JZa" id="b6I-Mk-2K3"/>
|
||||||
<outlet property="passwordTextField" destination="YC2-RH-QoV" id="qaX-0i-7jq"/>
|
<outlet property="passwordTextField" destination="YC2-RH-QoV" id="qaX-0i-7jq"/>
|
||||||
<outlet property="showHideButton" destination="TfW-wf-V06" id="PbL-67-Nrg"/>
|
<outlet property="showHideButton" destination="TfW-wf-V06" id="PbL-67-Nrg"/>
|
||||||
</connections>
|
</connections>
|
||||||
@ -430,6 +514,37 @@
|
|||||||
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="insetGrouped" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="18" sectionFooterHeight="18" id="fLL-7i-HdK">
|
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="insetGrouped" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="18" sectionFooterHeight="18" id="fLL-7i-HdK">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
|
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<view key="tableFooterView" contentMode="scaleToFill" id="mgO-Iq-dEg">
|
||||||
|
<rect key="frame" x="0.0" y="202.5" width="414" height="150"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="center" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontForContentSizeCategory="YES" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="fal-e8-3BB">
|
||||||
|
<rect key="frame" x="20" y="8" width="373" height="78.5"/>
|
||||||
|
<string key="text">Sign in to your NewsBlur account to sync your subscriptions across your devices. Your username and password will be encrypted and stored in Keychain.
|
||||||
|
|
||||||
|
Don't have a NewsBlur account?</string>
|
||||||
|
<fontDescription key="fontDescription" style="UICTFontTextStyleCaption1"/>
|
||||||
|
<color key="textColor" systemColor="secondaryLabelColor"/>
|
||||||
|
<nil key="highlightedColor"/>
|
||||||
|
</label>
|
||||||
|
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="YhB-G0-eeJ">
|
||||||
|
<rect key="frame" x="169.5" y="85" width="75" height="27"/>
|
||||||
|
<fontDescription key="fontDescription" style="UICTFontTextStyleCaption1"/>
|
||||||
|
<state key="normal" title="Sign Up Here"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="signUpWithProvider:" destination="Cge-ND-NpD" eventType="touchUpInside" id="Vfz-DD-Kwm"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
</subviews>
|
||||||
|
<color key="backgroundColor" systemColor="systemGroupedBackgroundColor"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="YhB-G0-eeJ" firstAttribute="centerX" secondItem="mgO-Iq-dEg" secondAttribute="centerX" id="7r5-l6-NNv"/>
|
||||||
|
<constraint firstItem="fal-e8-3BB" firstAttribute="leading" secondItem="mgO-Iq-dEg" secondAttribute="leading" constant="20" symbolic="YES" id="O4q-GI-2AO"/>
|
||||||
|
<constraint firstItem="YhB-G0-eeJ" firstAttribute="top" secondItem="fal-e8-3BB" secondAttribute="bottom" constant="-1.5" id="UHc-sh-Xq4"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="fal-e8-3BB" secondAttribute="trailing" constant="21" id="V0d-ny-GRE"/>
|
||||||
|
<constraint firstItem="fal-e8-3BB" firstAttribute="top" secondItem="mgO-Iq-dEg" secondAttribute="top" constant="8" id="h5B-kg-rZj"/>
|
||||||
|
</constraints>
|
||||||
|
</view>
|
||||||
<sections>
|
<sections>
|
||||||
<tableViewSection id="I5T-12-2jC">
|
<tableViewSection id="I5T-12-2jC">
|
||||||
<cells>
|
<cells>
|
||||||
@ -547,6 +662,7 @@
|
|||||||
<outlet property="actionButton" destination="E1I-C4-JdL" id="q2T-4o-c8i"/>
|
<outlet property="actionButton" destination="E1I-C4-JdL" id="q2T-4o-c8i"/>
|
||||||
<outlet property="activityIndicator" destination="HfW-jV-MjK" id="AIV-uG-9uC"/>
|
<outlet property="activityIndicator" destination="HfW-jV-MjK" id="AIV-uG-9uC"/>
|
||||||
<outlet property="cancelBarButtonItem" destination="bl6-Y1-wQ8" id="ohR-gW-5J2"/>
|
<outlet property="cancelBarButtonItem" destination="bl6-Y1-wQ8" id="ohR-gW-5J2"/>
|
||||||
|
<outlet property="footerLabel" destination="fal-e8-3BB" id="7Fq-Oz-aEx"/>
|
||||||
<outlet property="passwordTextField" destination="fct-XR-fEa" id="fGL-4k-gZ6"/>
|
<outlet property="passwordTextField" destination="fct-XR-fEa" id="fGL-4k-gZ6"/>
|
||||||
<outlet property="showHideButton" destination="GY9-nr-jFb" id="1p9-9F-GMY"/>
|
<outlet property="showHideButton" destination="GY9-nr-jFb" id="1p9-9F-GMY"/>
|
||||||
<outlet property="usernameTextField" destination="S4v-fs-DIO" id="B7I-yz-M0T"/>
|
<outlet property="usernameTextField" destination="S4v-fs-DIO" id="B7I-yz-M0T"/>
|
||||||
@ -563,6 +679,37 @@
|
|||||||
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="insetGrouped" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="18" sectionFooterHeight="18" id="bQC-XA-xWP">
|
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="insetGrouped" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="18" sectionFooterHeight="18" id="bQC-XA-xWP">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
|
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<view key="tableFooterView" contentMode="scaleToFill" id="6sa-hD-iAT">
|
||||||
|
<rect key="frame" x="0.0" y="246" width="414" height="150"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="center" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontForContentSizeCategory="YES" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7Jj-p8-lYw">
|
||||||
|
<rect key="frame" x="20" y="8" width="373" height="62.5"/>
|
||||||
|
<string key="text">Use your Reader account to sync your subscriptions across your devices.
|
||||||
|
|
||||||
|
Don't have a Reader account?</string>
|
||||||
|
<fontDescription key="fontDescription" style="UICTFontTextStyleCaption1"/>
|
||||||
|
<color key="textColor" systemColor="secondaryLabelColor"/>
|
||||||
|
<nil key="highlightedColor"/>
|
||||||
|
</label>
|
||||||
|
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="3Fq-U4-PS5">
|
||||||
|
<rect key="frame" x="169.5" y="69" width="75" height="27"/>
|
||||||
|
<fontDescription key="fontDescription" style="UICTFontTextStyleCaption1"/>
|
||||||
|
<state key="normal" title="Sign Up Here"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="signUpWithProvider:" destination="MzG-hS-TpF" eventType="touchUpInside" id="pMC-f8-E4G"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
</subviews>
|
||||||
|
<color key="backgroundColor" systemColor="systemGroupedBackgroundColor"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="3Fq-U4-PS5" firstAttribute="top" secondItem="7Jj-p8-lYw" secondAttribute="bottom" constant="-1.5" id="6ma-pw-DSZ"/>
|
||||||
|
<constraint firstItem="7Jj-p8-lYw" firstAttribute="leading" secondItem="6sa-hD-iAT" secondAttribute="leading" constant="20" symbolic="YES" id="CnY-UA-F3a"/>
|
||||||
|
<constraint firstItem="3Fq-U4-PS5" firstAttribute="centerX" secondItem="6sa-hD-iAT" secondAttribute="centerX" id="Rgg-oG-KOZ"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="7Jj-p8-lYw" secondAttribute="trailing" constant="21" id="mgT-t6-6c8"/>
|
||||||
|
<constraint firstItem="7Jj-p8-lYw" firstAttribute="top" secondItem="6sa-hD-iAT" secondAttribute="top" constant="8" id="syN-5x-dbM"/>
|
||||||
|
</constraints>
|
||||||
|
</view>
|
||||||
<sections>
|
<sections>
|
||||||
<tableViewSection id="Rju-xt-yUY">
|
<tableViewSection id="Rju-xt-yUY">
|
||||||
<cells>
|
<cells>
|
||||||
@ -697,8 +844,10 @@
|
|||||||
<outlet property="activityIndicator" destination="pdn-6v-d9a" id="vgt-C6-fy6"/>
|
<outlet property="activityIndicator" destination="pdn-6v-d9a" id="vgt-C6-fy6"/>
|
||||||
<outlet property="apiURLTextField" destination="iPv-M2-U8Q" id="8kn-Xk-a8w"/>
|
<outlet property="apiURLTextField" destination="iPv-M2-U8Q" id="8kn-Xk-a8w"/>
|
||||||
<outlet property="cancelBarButtonItem" destination="n8H-ai-4Df" id="u86-HH-HYC"/>
|
<outlet property="cancelBarButtonItem" destination="n8H-ai-4Df" id="u86-HH-HYC"/>
|
||||||
|
<outlet property="footerLabel" destination="7Jj-p8-lYw" id="Tqv-qR-WBR"/>
|
||||||
<outlet property="passwordTextField" destination="KgN-kQ-Cyc" id="A0K-JL-CEW"/>
|
<outlet property="passwordTextField" destination="KgN-kQ-Cyc" id="A0K-JL-CEW"/>
|
||||||
<outlet property="showHideButton" destination="cFF-qt-WLs" id="AxI-Gl-NdM"/>
|
<outlet property="showHideButton" destination="cFF-qt-WLs" id="AxI-Gl-NdM"/>
|
||||||
|
<outlet property="signUpButton" destination="3Fq-U4-PS5" id="Wuj-5g-vDH"/>
|
||||||
<outlet property="usernameTextField" destination="CZg-x8-936" id="nUT-WL-fKD"/>
|
<outlet property="usernameTextField" destination="CZg-x8-936" id="nUT-WL-fKD"/>
|
||||||
</connections>
|
</connections>
|
||||||
</tableViewController>
|
</tableViewController>
|
||||||
@ -729,6 +878,24 @@
|
|||||||
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="insetGrouped" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="18" sectionFooterHeight="18" id="j6U-sh-M9y">
|
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="insetGrouped" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="18" sectionFooterHeight="18" id="j6U-sh-M9y">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
|
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<view key="tableFooterView" contentMode="scaleToFill" id="iYz-ri-yys">
|
||||||
|
<rect key="frame" x="0.0" y="79.5" width="414" height="150"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Use your iCloud account to sync your subscriptions across your iOS and macOS devices." textAlignment="center" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontForContentSizeCategory="YES" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="aFS-Y0-2MH">
|
||||||
|
<rect key="frame" x="20" y="8" width="373" height="30.5"/>
|
||||||
|
<fontDescription key="fontDescription" style="UICTFontTextStyleCaption1"/>
|
||||||
|
<color key="textColor" systemColor="secondaryLabelColor"/>
|
||||||
|
<nil key="highlightedColor"/>
|
||||||
|
</label>
|
||||||
|
</subviews>
|
||||||
|
<color key="backgroundColor" systemColor="systemGroupedBackgroundColor"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="aFS-Y0-2MH" firstAttribute="leading" secondItem="iYz-ri-yys" secondAttribute="leading" constant="20" symbolic="YES" id="E97-lo-arw"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="aFS-Y0-2MH" secondAttribute="trailing" constant="21" id="XUo-oQ-MbK"/>
|
||||||
|
<constraint firstItem="aFS-Y0-2MH" firstAttribute="top" secondItem="iYz-ri-yys" secondAttribute="top" constant="8" id="xpj-LW-4l7"/>
|
||||||
|
</constraints>
|
||||||
|
</view>
|
||||||
<sections>
|
<sections>
|
||||||
<tableViewSection id="bGn-Io-KuQ">
|
<tableViewSection id="bGn-Io-KuQ">
|
||||||
<cells>
|
<cells>
|
||||||
@ -775,6 +942,9 @@
|
|||||||
</connections>
|
</connections>
|
||||||
</barButtonItem>
|
</barButtonItem>
|
||||||
</navigationItem>
|
</navigationItem>
|
||||||
|
<connections>
|
||||||
|
<outlet property="footerLabel" destination="aFS-Y0-2MH" id="gDw-R1-HSK"/>
|
||||||
|
</connections>
|
||||||
</tableViewController>
|
</tableViewController>
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="weY-OS-9NV" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
|
<placeholder placeholderIdentifier="IBFirstResponder" id="weY-OS-9NV" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
|
||||||
</objects>
|
</objects>
|
||||||
@ -801,5 +971,11 @@
|
|||||||
<namedColor name="secondaryAccentColor">
|
<namedColor name="secondaryAccentColor">
|
||||||
<color red="0.031372549019607843" green="0.41568627450980394" blue="0.93333333333333335" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
<color red="0.031372549019607843" green="0.41568627450980394" blue="0.93333333333333335" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||||
</namedColor>
|
</namedColor>
|
||||||
|
<systemColor name="secondaryLabelColor">
|
||||||
|
<color red="0.23529411764705882" green="0.23529411764705882" blue="0.2627450980392157" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/>
|
||||||
|
</systemColor>
|
||||||
|
<systemColor name="systemGroupedBackgroundColor">
|
||||||
|
<color red="0.94901960784313721" green="0.94901960784313721" blue="0.96862745098039216" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||||
|
</systemColor>
|
||||||
</resources>
|
</resources>
|
||||||
</document>
|
</document>
|
||||||
|
@ -12,13 +12,19 @@ import Account
|
|||||||
class CloudKitAccountViewController: UITableViewController {
|
class CloudKitAccountViewController: UITableViewController {
|
||||||
|
|
||||||
weak var delegate: AddAccountDismissDelegate?
|
weak var delegate: AddAccountDismissDelegate?
|
||||||
|
@IBOutlet weak var footerLabel: UILabel!
|
||||||
|
|
||||||
override func viewDidLoad() {
|
override func viewDidLoad() {
|
||||||
super.viewDidLoad()
|
super.viewDidLoad()
|
||||||
|
setupFooter()
|
||||||
|
|
||||||
tableView.register(ImageHeaderView.self, forHeaderFooterViewReuseIdentifier: "SectionHeader")
|
tableView.register(ImageHeaderView.self, forHeaderFooterViewReuseIdentifier: "SectionHeader")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private func setupFooter() {
|
||||||
|
footerLabel.text = NSLocalizedString("Use your iCloud account to sync your subscriptions across your iOS and macOS devices.", comment: "iCloud")
|
||||||
|
}
|
||||||
|
|
||||||
@IBAction func cancel(_ sender: Any) {
|
@IBAction func cancel(_ sender: Any) {
|
||||||
dismiss(animated: true, completion: nil)
|
dismiss(animated: true, completion: nil)
|
||||||
delegate?.dismiss()
|
delegate?.dismiss()
|
||||||
|
@ -10,6 +10,7 @@ import UIKit
|
|||||||
import Account
|
import Account
|
||||||
import RSWeb
|
import RSWeb
|
||||||
import Secrets
|
import Secrets
|
||||||
|
import SafariServices
|
||||||
|
|
||||||
class FeedWranglerAccountViewController: UITableViewController {
|
class FeedWranglerAccountViewController: UITableViewController {
|
||||||
|
|
||||||
@ -19,12 +20,14 @@ class FeedWranglerAccountViewController: UITableViewController {
|
|||||||
@IBOutlet weak var passwordTextField: UITextField!
|
@IBOutlet weak var passwordTextField: UITextField!
|
||||||
@IBOutlet weak var showHideButton: UIButton!
|
@IBOutlet weak var showHideButton: UIButton!
|
||||||
@IBOutlet weak var actionButton: UIButton!
|
@IBOutlet weak var actionButton: UIButton!
|
||||||
|
@IBOutlet weak var footerLabel: UILabel!
|
||||||
|
|
||||||
weak var account: Account?
|
weak var account: Account?
|
||||||
weak var delegate: AddAccountDismissDelegate?
|
weak var delegate: AddAccountDismissDelegate?
|
||||||
|
|
||||||
override func viewDidLoad() {
|
override func viewDidLoad() {
|
||||||
super.viewDidLoad()
|
super.viewDidLoad()
|
||||||
|
setupFooter()
|
||||||
|
|
||||||
activityIndicator.isHidden = true
|
activityIndicator.isHidden = true
|
||||||
emailTextField.delegate = self
|
emailTextField.delegate = self
|
||||||
@ -44,6 +47,10 @@ class FeedWranglerAccountViewController: UITableViewController {
|
|||||||
tableView.register(ImageHeaderView.self, forHeaderFooterViewReuseIdentifier: "SectionHeader")
|
tableView.register(ImageHeaderView.self, forHeaderFooterViewReuseIdentifier: "SectionHeader")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private func setupFooter() {
|
||||||
|
footerLabel.text = NSLocalizedString("Sign in to your Feed Wrangler account and sync your subscriptions across your devices. Your username and password will be encrypted and stored in Keychain.\n\nDon't have a Feed Wrangler account?", comment: "Feed Wrangler")
|
||||||
|
}
|
||||||
|
|
||||||
override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
|
override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
|
||||||
return section == 0 ? ImageHeaderView.rowHeight : super.tableView(tableView, heightForHeaderInSection: section)
|
return section == 0 ? ImageHeaderView.rowHeight : super.tableView(tableView, heightForHeaderInSection: section)
|
||||||
}
|
}
|
||||||
@ -138,6 +145,13 @@ class FeedWranglerAccountViewController: UITableViewController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@IBAction func signUpWithProvider(_ sender: Any) {
|
||||||
|
let url = URL(string: "https://feedwrangler.net/users/new")!
|
||||||
|
let safari = SFSafariViewController(url: url)
|
||||||
|
safari.modalPresentationStyle = .currentContext
|
||||||
|
self.present(safari, animated: true, completion: nil)
|
||||||
|
}
|
||||||
|
|
||||||
@objc func textDidChange(_ note: Notification) {
|
@objc func textDidChange(_ note: Notification) {
|
||||||
actionButton.isEnabled = !(emailTextField.text?.isEmpty ?? false) && !(passwordTextField.text?.isEmpty ?? false)
|
actionButton.isEnabled = !(emailTextField.text?.isEmpty ?? false) && !(passwordTextField.text?.isEmpty ?? false)
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,7 @@ import UIKit
|
|||||||
import Account
|
import Account
|
||||||
import Secrets
|
import Secrets
|
||||||
import RSWeb
|
import RSWeb
|
||||||
|
import SafariServices
|
||||||
|
|
||||||
class FeedbinAccountViewController: UITableViewController {
|
class FeedbinAccountViewController: UITableViewController {
|
||||||
|
|
||||||
@ -19,12 +20,14 @@ class FeedbinAccountViewController: UITableViewController {
|
|||||||
@IBOutlet weak var passwordTextField: UITextField!
|
@IBOutlet weak var passwordTextField: UITextField!
|
||||||
@IBOutlet weak var showHideButton: UIButton!
|
@IBOutlet weak var showHideButton: UIButton!
|
||||||
@IBOutlet weak var actionButton: UIButton!
|
@IBOutlet weak var actionButton: UIButton!
|
||||||
|
@IBOutlet weak var footerLabel: UILabel!
|
||||||
|
|
||||||
weak var account: Account?
|
weak var account: Account?
|
||||||
weak var delegate: AddAccountDismissDelegate?
|
weak var delegate: AddAccountDismissDelegate?
|
||||||
|
|
||||||
override func viewDidLoad() {
|
override func viewDidLoad() {
|
||||||
super.viewDidLoad()
|
super.viewDidLoad()
|
||||||
|
setupFooter()
|
||||||
|
|
||||||
activityIndicator.isHidden = true
|
activityIndicator.isHidden = true
|
||||||
emailTextField.delegate = self
|
emailTextField.delegate = self
|
||||||
@ -45,6 +48,10 @@ class FeedbinAccountViewController: UITableViewController {
|
|||||||
tableView.register(ImageHeaderView.self, forHeaderFooterViewReuseIdentifier: "SectionHeader")
|
tableView.register(ImageHeaderView.self, forHeaderFooterViewReuseIdentifier: "SectionHeader")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private func setupFooter() {
|
||||||
|
footerLabel.text = NSLocalizedString("Sign in to your Feedbin account and sync your subscriptions across your devices. Your username and password will be encrypted and stored in Keychain.\n\nDon't have a Feedbin account?", comment: "Feedbin")
|
||||||
|
}
|
||||||
|
|
||||||
override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
|
override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
|
||||||
return section == 0 ? ImageHeaderView.rowHeight : super.tableView(tableView, heightForHeaderInSection: section)
|
return section == 0 ? ImageHeaderView.rowHeight : super.tableView(tableView, heightForHeaderInSection: section)
|
||||||
}
|
}
|
||||||
@ -138,6 +145,14 @@ class FeedbinAccountViewController: UITableViewController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@IBAction func signUpWithProvider(_ sender: Any) {
|
||||||
|
let url = URL(string: "https://feedbin.com/signup")!
|
||||||
|
let safari = SFSafariViewController(url: url)
|
||||||
|
safari.modalPresentationStyle = .currentContext
|
||||||
|
self.present(safari, animated: true, completion: nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@objc func textDidChange(_ note: Notification) {
|
@objc func textDidChange(_ note: Notification) {
|
||||||
actionButton.isEnabled = !(emailTextField.text?.isEmpty ?? false) && !(passwordTextField.text?.isEmpty ?? false)
|
actionButton.isEnabled = !(emailTextField.text?.isEmpty ?? false) && !(passwordTextField.text?.isEmpty ?? false)
|
||||||
}
|
}
|
||||||
|
@ -12,17 +12,22 @@ import Account
|
|||||||
class LocalAccountViewController: UITableViewController {
|
class LocalAccountViewController: UITableViewController {
|
||||||
|
|
||||||
@IBOutlet weak var nameTextField: UITextField!
|
@IBOutlet weak var nameTextField: UITextField!
|
||||||
|
@IBOutlet weak var footerLabel: UILabel!
|
||||||
|
|
||||||
weak var delegate: AddAccountDismissDelegate?
|
weak var delegate: AddAccountDismissDelegate?
|
||||||
|
|
||||||
override func viewDidLoad() {
|
override func viewDidLoad() {
|
||||||
super.viewDidLoad()
|
super.viewDidLoad()
|
||||||
|
setupFooter()
|
||||||
navigationItem.title = Account.defaultLocalAccountName
|
navigationItem.title = Account.defaultLocalAccountName
|
||||||
nameTextField.delegate = self
|
nameTextField.delegate = self
|
||||||
|
|
||||||
tableView.register(ImageHeaderView.self, forHeaderFooterViewReuseIdentifier: "SectionHeader")
|
tableView.register(ImageHeaderView.self, forHeaderFooterViewReuseIdentifier: "SectionHeader")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private func setupFooter() {
|
||||||
|
footerLabel.text = NSLocalizedString("Local accounts do not sync your subscriptions across devices.", comment: "Local")
|
||||||
|
}
|
||||||
|
|
||||||
@IBAction func cancel(_ sender: Any) {
|
@IBAction func cancel(_ sender: Any) {
|
||||||
dismiss(animated: true, completion: nil)
|
dismiss(animated: true, completion: nil)
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,7 @@ import UIKit
|
|||||||
import Account
|
import Account
|
||||||
import Secrets
|
import Secrets
|
||||||
import RSWeb
|
import RSWeb
|
||||||
|
import SafariServices
|
||||||
|
|
||||||
class NewsBlurAccountViewController: UITableViewController {
|
class NewsBlurAccountViewController: UITableViewController {
|
||||||
|
|
||||||
@ -19,13 +20,14 @@ class NewsBlurAccountViewController: UITableViewController {
|
|||||||
@IBOutlet weak var passwordTextField: UITextField!
|
@IBOutlet weak var passwordTextField: UITextField!
|
||||||
@IBOutlet weak var showHideButton: UIButton!
|
@IBOutlet weak var showHideButton: UIButton!
|
||||||
@IBOutlet weak var actionButton: UIButton!
|
@IBOutlet weak var actionButton: UIButton!
|
||||||
|
@IBOutlet weak var footerLabel: UILabel!
|
||||||
|
|
||||||
weak var account: Account?
|
weak var account: Account?
|
||||||
weak var delegate: AddAccountDismissDelegate?
|
weak var delegate: AddAccountDismissDelegate?
|
||||||
|
|
||||||
override func viewDidLoad() {
|
override func viewDidLoad() {
|
||||||
super.viewDidLoad()
|
super.viewDidLoad()
|
||||||
|
setupFooter()
|
||||||
activityIndicator.isHidden = true
|
activityIndicator.isHidden = true
|
||||||
usernameTextField.delegate = self
|
usernameTextField.delegate = self
|
||||||
passwordTextField.delegate = self
|
passwordTextField.delegate = self
|
||||||
@ -45,6 +47,10 @@ class NewsBlurAccountViewController: UITableViewController {
|
|||||||
tableView.register(ImageHeaderView.self, forHeaderFooterViewReuseIdentifier: "SectionHeader")
|
tableView.register(ImageHeaderView.self, forHeaderFooterViewReuseIdentifier: "SectionHeader")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private func setupFooter() {
|
||||||
|
footerLabel.text = NSLocalizedString("Sign in to your NewsBlur account and sync your subscriptions across your devices. Your username and password will be encrypted and stored in Keychain.\n\nDon't have a Feedbin account?", comment: "NewsBlur")
|
||||||
|
}
|
||||||
|
|
||||||
override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
|
override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
|
||||||
return section == 0 ? ImageHeaderView.rowHeight : super.tableView(tableView, heightForHeaderInSection: section)
|
return section == 0 ? ImageHeaderView.rowHeight : super.tableView(tableView, heightForHeaderInSection: section)
|
||||||
}
|
}
|
||||||
@ -143,6 +149,13 @@ class NewsBlurAccountViewController: UITableViewController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@IBAction func signUpWithProvider(_ sender: Any) {
|
||||||
|
let url = URL(string: "https://newsblur.com")!
|
||||||
|
let safari = SFSafariViewController(url: url)
|
||||||
|
safari.modalPresentationStyle = .currentContext
|
||||||
|
self.present(safari, animated: true, completion: nil)
|
||||||
|
}
|
||||||
|
|
||||||
@objc func textDidChange(_ note: Notification) {
|
@objc func textDidChange(_ note: Notification) {
|
||||||
actionButton.isEnabled = !(usernameTextField.text?.isEmpty ?? false)
|
actionButton.isEnabled = !(usernameTextField.text?.isEmpty ?? false)
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,7 @@ import UIKit
|
|||||||
import Account
|
import Account
|
||||||
import Secrets
|
import Secrets
|
||||||
import RSWeb
|
import RSWeb
|
||||||
|
import SafariServices
|
||||||
|
|
||||||
class ReaderAPIAccountViewController: UITableViewController {
|
class ReaderAPIAccountViewController: UITableViewController {
|
||||||
|
|
||||||
@ -20,6 +21,8 @@ class ReaderAPIAccountViewController: UITableViewController {
|
|||||||
@IBOutlet weak var apiURLTextField: UITextField!
|
@IBOutlet weak var apiURLTextField: UITextField!
|
||||||
@IBOutlet weak var showHideButton: UIButton!
|
@IBOutlet weak var showHideButton: UIButton!
|
||||||
@IBOutlet weak var actionButton: UIButton!
|
@IBOutlet weak var actionButton: UIButton!
|
||||||
|
@IBOutlet weak var footerLabel: UILabel!
|
||||||
|
@IBOutlet weak var signUpButton: UIButton!
|
||||||
|
|
||||||
weak var account: Account?
|
weak var account: Account?
|
||||||
var accountType: AccountType?
|
var accountType: AccountType?
|
||||||
@ -27,6 +30,7 @@ class ReaderAPIAccountViewController: UITableViewController {
|
|||||||
|
|
||||||
override func viewDidLoad() {
|
override func viewDidLoad() {
|
||||||
super.viewDidLoad()
|
super.viewDidLoad()
|
||||||
|
setupFooter()
|
||||||
|
|
||||||
activityIndicator.isHidden = true
|
activityIndicator.isHidden = true
|
||||||
usernameTextField.delegate = self
|
usernameTextField.delegate = self
|
||||||
@ -64,6 +68,25 @@ class ReaderAPIAccountViewController: UITableViewController {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private func setupFooter() {
|
||||||
|
switch accountType {
|
||||||
|
case .bazQux:
|
||||||
|
footerLabel.text = NSLocalizedString("Sign in to your BazQux account and sync your subscriptions across your devices. Your username and password will be encrypted and stored in Keychain.\n\nDon't have a BazQux account?", comment: "BazQux")
|
||||||
|
signUpButton.setTitle(NSLocalizedString("Sign Up Here", comment: "BazQux SignUp"), for: .normal)
|
||||||
|
case .inoreader:
|
||||||
|
footerLabel.text = NSLocalizedString("Sign in to your InoReader account and sync your subscriptions across your devices. Your username and password will be encrypted and stored in Keychain.\n\nDon't have an InoReader account?", comment: "InoReader")
|
||||||
|
signUpButton.setTitle(NSLocalizedString("Sign Up Here", comment: "InoReader SignUp"), for: .normal)
|
||||||
|
case .theOldReader:
|
||||||
|
footerLabel.text = NSLocalizedString("Sign in to your The Old Reader account and sync your subscriptions across your devices. Your username and password will be encrypted and stored in Keychain.\n\nDon't have a The Old Reader account?", comment: "TOR")
|
||||||
|
signUpButton.setTitle(NSLocalizedString("Sign Up Here", comment: "TOR SignUp"), for: .normal)
|
||||||
|
case .freshRSS:
|
||||||
|
footerLabel.text = NSLocalizedString("Sign in to your FreshRSS instance and sync your subscriptions across your devices. Your username and password will be encrypted and stored in Keychain.\n\nDon't have an FreshRSS instance?", comment: "FreshRSS")
|
||||||
|
signUpButton.setTitle(NSLocalizedString("Find Out More", comment: "FreshRSS SignUp"), for: .normal)
|
||||||
|
default:
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
|
override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
|
||||||
return section == 0 ? ImageHeaderView.rowHeight : super.tableView(tableView, heightForHeaderInSection: section)
|
return section == 0 ? ImageHeaderView.rowHeight : super.tableView(tableView, heightForHeaderInSection: section)
|
||||||
}
|
}
|
||||||
@ -224,6 +247,25 @@ class ReaderAPIAccountViewController: UITableViewController {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@IBAction func signUpWithProvider(_ sender: Any) {
|
||||||
|
var url: URL!
|
||||||
|
switch accountType {
|
||||||
|
case .bazQux:
|
||||||
|
url = URL(string: "https://bazqux.com")!
|
||||||
|
case .inoreader:
|
||||||
|
url = URL(string: "https://www.inoreader.com")!
|
||||||
|
case .theOldReader:
|
||||||
|
url = URL(string: "https://theoldreader.com")!
|
||||||
|
case .freshRSS:
|
||||||
|
url = URL(string: "https://freshrss.org")!
|
||||||
|
default:
|
||||||
|
return
|
||||||
|
}
|
||||||
|
let safari = SFSafariViewController(url: url)
|
||||||
|
safari.modalPresentationStyle = .currentContext
|
||||||
|
self.present(safari, animated: true, completion: nil)
|
||||||
|
}
|
||||||
|
|
||||||
private func apiURL() -> URL? {
|
private func apiURL() -> URL? {
|
||||||
switch accountType {
|
switch accountType {
|
||||||
case .freshRSS:
|
case .freshRSS:
|
||||||
@ -239,6 +281,8 @@ class ReaderAPIAccountViewController: UITableViewController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@objc func textDidChange(_ note: Notification) {
|
@objc func textDidChange(_ note: Notification) {
|
||||||
actionButton.isEnabled = !(usernameTextField.text?.isEmpty ?? false)
|
actionButton.isEnabled = !(usernameTextField.text?.isEmpty ?? false)
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"images" : [
|
"images" : [
|
||||||
{
|
{
|
||||||
"filename" : "accountLocalPad-any.pdf",
|
"filename" : "ipad-any-slice.pdf",
|
||||||
"idiom" : "universal"
|
"idiom" : "universal"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -11,7 +11,7 @@
|
|||||||
"value" : "dark"
|
"value" : "dark"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"filename" : "accountLocalPad-dark.pdf",
|
"filename" : "ipad-dark-slice.pdf",
|
||||||
"idiom" : "universal"
|
"idiom" : "universal"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
Binary file not shown.
Binary file not shown.
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"images" : [
|
"images" : [
|
||||||
{
|
{
|
||||||
"filename" : "accountLocalPhone-any.pdf",
|
"filename" : "iphone-any-slice.pdf",
|
||||||
"idiom" : "universal"
|
"idiom" : "universal"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -11,7 +11,7 @@
|
|||||||
"value" : "dark"
|
"value" : "dark"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"filename" : "accountLocalPhone-dark.pdf",
|
"filename" : "iphone-dark-slice.pdf",
|
||||||
"idiom" : "universal"
|
"idiom" : "universal"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user