Merge branch 'ios-release'

This commit is contained in:
Maurice Parker
2021-06-22 19:14:50 -05:00
32 changed files with 225 additions and 266 deletions

View File

@@ -382,13 +382,14 @@ final class FeedlyAccountDelegate: AccountDelegate {
}
let resource = FeedlyFeedResourceId(id: feed.webFeedID)
let addExistingFeed = try FeedlyAddExistingFeedOperation(account: account,
credentials: credentials,
resource: resource,
service: caller,
container: container,
progress: refreshProgress,
log: log)
let addExistingFeed = try FeedlyAddExistingFeedOperation(account: account,
credentials: credentials,
resource: resource,
service: caller,
container: container,
progress: refreshProgress,
log: log,
customFeedName: feed.editedName)
addExistingFeed.addCompletionHandler = { result in

View File

@@ -17,7 +17,7 @@ class FeedlyAddExistingFeedOperation: FeedlyOperation, FeedlyOperationDelegate,
private let operationQueue = MainThreadOperationQueue()
var addCompletionHandler: ((Result<Void, Error>) -> ())?
init(account: Account, credentials: Credentials, resource: FeedlyFeedResourceId, service: FeedlyAddFeedToCollectionService, container: Container, progress: DownloadProgress, log: OSLog) throws {
init(account: Account, credentials: Credentials, resource: FeedlyFeedResourceId, service: FeedlyAddFeedToCollectionService, container: Container, progress: DownloadProgress, log: OSLog, customFeedName: String? = nil) throws {
let validator = FeedlyFeedContainerValidator(container: container)
let (folder, collectionId) = try validator.getValidContainer()
@@ -28,7 +28,7 @@ class FeedlyAddExistingFeedOperation: FeedlyOperation, FeedlyOperationDelegate,
self.downloadProgress = progress
let addRequest = FeedlyAddFeedToCollectionOperation(account: account, folder: folder, feedResource: resource, feedName: nil, collectionId: collectionId, service: service)
let addRequest = FeedlyAddFeedToCollectionOperation(account: account, folder: folder, feedResource: resource, feedName: customFeedName, collectionId: collectionId, service: service)
addRequest.delegate = self
addRequest.downloadProgress = progress
self.operationQueue.add(addRequest)

View File

@@ -18,16 +18,16 @@
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
<rect key="contentRect" x="196" y="240" width="398" height="135"/>
<rect key="screenRect" x="0.0" y="0.0" width="1536" height="935"/>
<rect key="screenRect" x="0.0" y="0.0" width="2560" height="1417"/>
<view key="contentView" wantsLayer="YES" id="EiT-Mj-1SZ">
<rect key="frame" x="0.0" y="0.0" width="398" height="135"/>
<rect key="frame" x="0.0" y="0.0" width="398" height="136"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<stackView distribution="fill" orientation="horizontal" alignment="bottom" spacing="19" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" ambiguous="YES" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="uDK-ji-zlT">
<rect key="frame" x="199" y="59" width="0.0" height="16"/>
</stackView>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="xqo-gP-MPl">
<rect key="frame" x="285" y="13" width="100" height="32"/>
<rect key="frame" x="278" y="13" width="106" height="32"/>
<buttonCell key="cell" type="push" title="Use iCloud" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="oih-6c-KbS">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="system"/>
@@ -40,7 +40,7 @@ DQ
</connections>
</button>
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="ySx-qg-WbT">
<rect key="frame" x="20" y="71" width="50" height="50"/>
<rect key="frame" x="20" y="72" width="50" height="50"/>
<constraints>
<constraint firstAttribute="width" constant="50" id="LlV-kM-gHE"/>
<constraint firstAttribute="height" constant="50" id="MjL-TR-9ey"/>
@@ -48,26 +48,26 @@ DQ
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyUpOrDown" image="accountCloudKit" id="9RZ-J3-ioX"/>
</imageView>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="80D-3X-rL2">
<rect key="frame" x="76" y="99" width="304" height="16"/>
<rect key="frame" x="76" y="100" width="304" height="16"/>
<textFieldCell key="cell" lineBreakMode="clipping" title="Use your iCloud account." id="1d2-Mx-TKe">
<font key="font" textStyle="headline" name=".SFNS-Bold"/>
<font key="font" usesAppearanceFont="YES"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" textCompletion="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3Kj-Cl-FJQ">
<rect key="frame" x="76" y="59" width="304" height="32"/>
<rect key="frame" x="76" y="60" width="304" height="32"/>
<constraints>
<constraint firstAttribute="height" constant="32" id="ZJN-cn-p1x"/>
</constraints>
<textFieldCell key="cell" selectable="YES" allowsUndo="NO" title="NetNewsWire will use your iCloud account to sync your subscriptions across your Mac and iOS devices." id="wfr-Dv-UIF">
<font key="font" textStyle="callout" name=".SFNS-Regular"/>
<textFieldCell key="cell" selectable="YES" allowsUndo="NO" title="NetNewsWire will use your iCloud account to sync your feeds across your Mac and iOS devices." id="wfr-Dv-UIF">
<font key="font" usesAppearanceFont="YES"/>
<color key="textColor" name="secondaryLabelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="9eG-vV-s8c">
<rect key="frame" x="187" y="13" width="100" height="32"/>
<rect key="frame" x="172" y="13" width="106" height="32"/>
<buttonCell key="cell" type="push" title="Cancel" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="iVd-bO-4LN">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="system"/>

View File

@@ -26,7 +26,7 @@
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
<rect key="contentRect" x="196" y="240" width="433" height="249"/>
<rect key="screenRect" x="0.0" y="0.0" width="1536" height="935"/>
<rect key="screenRect" x="0.0" y="0.0" width="2560" height="1417"/>
<view key="contentView" id="se5-gp-TjO">
<rect key="frame" x="0.0" y="0.0" width="433" height="249"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
@@ -35,7 +35,7 @@
<rect key="frame" x="217" y="229" width="0.0" height="0.0"/>
</stackView>
<gridView xPlacement="trailing" yPlacement="center" rowAlignment="none" rowSpacing="7" columnSpacing="8" translatesAutoresizingMaskIntoConstraints="NO" id="zBB-JH-huI">
<rect key="frame" x="80" y="127" width="270" height="49"/>
<rect key="frame" x="80" y="126" width="270" height="49"/>
<rows>
<gridRow id="DRl-lC-vUc"/>
<gridRow id="eW8-uH-txq"/>
@@ -97,7 +97,7 @@
</gridCells>
</gridView>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="9mz-D9-krh">
<rect key="frame" x="344" y="13" width="76" height="32"/>
<rect key="frame" x="345" y="13" width="74" height="32"/>
<constraints>
<constraint firstAttribute="width" constant="62" id="KMy-Qk-maN"/>
</constraints>
@@ -113,7 +113,7 @@ DQ
</connections>
</button>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="XAM-Hb-0Hw">
<rect key="frame" x="270" y="13" width="76" height="32"/>
<rect key="frame" x="263" y="13" width="82" height="32"/>
<buttonCell key="cell" type="push" title="Cancel" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="ufs-ar-BAY">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="system"/>
@@ -136,27 +136,27 @@ Gw
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="lti-yM-8LV">
<rect key="frame" x="78" y="213" width="337" height="16"/>
<textFieldCell key="cell" lineBreakMode="clipping" title="Sign in to your Feed Wrangler account." id="ras-dj-nP8">
<font key="font" textStyle="headline" name=".SFNS-Bold"/>
<font key="font" usesAppearanceFont="YES"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="xEl-Ae-5r8">
<rect key="frame" x="78" y="193" width="216" height="15"/>
<textFieldCell key="cell" lineBreakMode="clipping" title="Don't have a Feed Wrangler account?" id="DFR-20-sjO">
<font key="font" textStyle="callout" name=".SFNS-Regular"/>
<rect key="frame" x="78" y="192" width="231" height="16"/>
<textFieldCell key="cell" lineBreakMode="clipping" title="Dont have a Feed Wrangler account?" id="DFR-20-sjO">
<font key="font" usesAppearanceFont="YES"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="pPT-Cj-3vI">
<rect key="frame" x="293" y="193" width="105" height="15"/>
<rect key="frame" x="308" y="192" width="105" height="16"/>
<constraints>
<constraint firstAttribute="width" constant="105" id="Ez2-gz-Wqf"/>
</constraints>
<buttonCell key="cell" type="roundRect" title="Create one here." bezelStyle="roundedRect" alignment="center" state="on" imageScaling="proportionallyDown" inset="2" id="tlF-nc-ZOr">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" textStyle="callout" name=".SFNS-Regular"/>
<font key="font" usesAppearanceFont="YES"/>
</buttonCell>
<color key="contentTintColor" name="AccentColor"/>
<connections>
@@ -164,28 +164,28 @@ Gw
</connections>
</button>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Uzn-QS-o4p">
<rect key="frame" x="78" y="73" width="337" height="39"/>
<rect key="frame" x="78" y="72" width="337" height="39"/>
<constraints>
<constraint firstAttribute="height" constant="39" id="99q-po-zLV"/>
<constraint firstAttribute="width" constant="333" id="oSi-jz-DZ8"/>
</constraints>
<textFieldCell key="cell" title="Your username and password will be encrypted and stored in Keychain. " id="83j-VH-GgC">
<font key="font" textStyle="callout" name=".SFNS-Regular"/>
<font key="font" usesAppearanceFont="YES"/>
<color key="textColor" name="secondaryLabelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<progressIndicator hidden="YES" wantsLayer="YES" horizontalHuggingPriority="750" verticalHuggingPriority="750" maxValue="100" displayedWhenStopped="NO" bezeled="NO" indeterminate="YES" controlSize="small" style="spinning" translatesAutoresizingMaskIntoConstraints="NO" id="B0W-bh-Evv">
<rect key="frame" x="253" y="22" width="16" height="16"/>
<rect key="frame" x="245" y="22" width="16" height="16"/>
<constraints>
<constraint firstAttribute="width" constant="16" id="ggl-Gq-PUV"/>
<constraint firstAttribute="height" constant="16" id="m1z-4y-g41"/>
</constraints>
</progressIndicator>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="zwG-Ag-z8o">
<rect key="frame" x="78" y="60" width="337" height="14"/>
<rect key="frame" x="78" y="57" width="337" height="16"/>
<textFieldCell key="cell" id="b2G-2g-1KR">
<font key="font" textStyle="subheadline" name=".SFNS-Regular"/>
<font key="font" usesAppearanceFont="YES"/>
<color key="textColor" name="systemRedColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>

View File

@@ -26,7 +26,7 @@
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
<rect key="contentRect" x="196" y="240" width="433" height="249"/>
<rect key="screenRect" x="0.0" y="0.0" width="1536" height="935"/>
<rect key="screenRect" x="0.0" y="0.0" width="2560" height="1417"/>
<view key="contentView" id="se5-gp-TjO">
<rect key="frame" x="0.0" y="0.0" width="433" height="249"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
@@ -35,7 +35,7 @@
<rect key="frame" x="233" y="229" width="0.0" height="0.0"/>
</stackView>
<gridView xPlacement="trailing" yPlacement="center" rowAlignment="none" rowSpacing="7" columnSpacing="8" translatesAutoresizingMaskIntoConstraints="NO" id="zBB-JH-huI">
<rect key="frame" x="80" y="127" width="270" height="49"/>
<rect key="frame" x="80" y="126" width="270" height="49"/>
<rows>
<gridRow id="DRl-lC-vUc"/>
<gridRow id="eW8-uH-txq"/>
@@ -97,7 +97,7 @@
</gridCells>
</gridView>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="9mz-D9-krh">
<rect key="frame" x="344" y="13" width="76" height="32"/>
<rect key="frame" x="345" y="13" width="74" height="32"/>
<constraints>
<constraint firstAttribute="width" constant="62" id="hU1-wc-ebZ"/>
</constraints>
@@ -113,7 +113,7 @@ DQ
</connections>
</button>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="XAM-Hb-0Hw">
<rect key="frame" x="270" y="13" width="76" height="32"/>
<rect key="frame" x="271" y="13" width="74" height="32"/>
<buttonCell key="cell" type="push" title="Cancel" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="ufs-ar-BAY">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="system"/>
@@ -136,39 +136,39 @@ Gw
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="lti-yM-8LV">
<rect key="frame" x="78" y="213" width="337" height="16"/>
<textFieldCell key="cell" lineBreakMode="clipping" title="Sign in to your Feedbin account." id="ras-dj-nP8">
<font key="font" textStyle="headline" name=".SFNS-Bold"/>
<font key="font" usesAppearanceFont="YES"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="gEK-TH-URn">
<rect key="frame" x="78" y="193" width="179" height="15"/>
<textFieldCell key="cell" lineBreakMode="clipping" title="Don't have a Feedbin account?" id="QF5-gl-fjb">
<font key="font" textStyle="callout" name=".SFNS-Regular"/>
<rect key="frame" x="78" y="192" width="191" height="16"/>
<textFieldCell key="cell" lineBreakMode="clipping" title="Dont have a Feedbin account?" id="QF5-gl-fjb">
<font key="font" usesAppearanceFont="YES"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="X1Z-v1-T5L">
<rect key="frame" x="78" y="82" width="337" height="30"/>
<rect key="frame" x="78" y="81" width="337" height="30"/>
<constraints>
<constraint firstAttribute="height" constant="30" id="NRl-GS-cHS"/>
<constraint firstAttribute="width" constant="333" id="cNd-Nt-bdB"/>
</constraints>
<textFieldCell key="cell" title="Your username and password will be encrypted and stored in Keychain. " id="HuQ-TS-tS3">
<font key="font" textStyle="callout" name=".SFNS-Regular"/>
<font key="font" usesAppearanceFont="YES"/>
<color key="textColor" name="secondaryLabelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="MlB-jN-Ybe">
<rect key="frame" x="254" y="193" width="105" height="15"/>
<rect key="frame" x="266" y="192" width="105" height="16"/>
<constraints>
<constraint firstAttribute="width" constant="105" id="fHd-fN-n8G"/>
</constraints>
<buttonCell key="cell" type="roundRect" title="Create one here." bezelStyle="roundedRect" alignment="center" state="on" imageScaling="proportionallyDown" inset="2" id="fx3-Uk-NVw">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" textStyle="callout" name=".SFNS-Regular"/>
<font key="font" usesAppearanceFont="YES"/>
</buttonCell>
<color key="contentTintColor" name="AccentColor"/>
<connections>
@@ -176,16 +176,16 @@ Gw
</connections>
</button>
<progressIndicator hidden="YES" wantsLayer="YES" horizontalHuggingPriority="750" verticalHuggingPriority="750" maxValue="100" displayedWhenStopped="NO" bezeled="NO" indeterminate="YES" controlSize="small" style="spinning" translatesAutoresizingMaskIntoConstraints="NO" id="B0W-bh-Evv">
<rect key="frame" x="253" y="22" width="16" height="16"/>
<rect key="frame" x="253" y="23" width="16" height="16"/>
<constraints>
<constraint firstAttribute="width" constant="16" id="Tcz-vj-cLr"/>
<constraint firstAttribute="height" constant="16" id="slt-7y-Jw0"/>
</constraints>
</progressIndicator>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="sPC-hi-ewD">
<rect key="frame" x="78" y="60" width="337" height="14"/>
<rect key="frame" x="78" y="57" width="337" height="16"/>
<textFieldCell key="cell" lineBreakMode="clipping" id="sl9-fG-jwg">
<font key="font" textStyle="subheadline" name=".SFNS-Regular"/>
<font key="font" usesAppearanceFont="YES"/>
<color key="textColor" name="systemRedColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>

View File

@@ -26,7 +26,7 @@
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
<rect key="contentRect" x="196" y="240" width="433" height="249"/>
<rect key="screenRect" x="0.0" y="0.0" width="1536" height="935"/>
<rect key="screenRect" x="0.0" y="0.0" width="2560" height="1417"/>
<view key="contentView" id="se5-gp-TjO">
<rect key="frame" x="0.0" y="0.0" width="433" height="249"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
@@ -35,7 +35,7 @@
<rect key="frame" x="217" y="229" width="0.0" height="0.0"/>
</stackView>
<gridView xPlacement="trailing" yPlacement="center" rowAlignment="none" rowSpacing="7" columnSpacing="8" translatesAutoresizingMaskIntoConstraints="NO" id="zBB-JH-huI">
<rect key="frame" x="80" y="127" width="326" height="49"/>
<rect key="frame" x="80" y="126" width="326" height="49"/>
<rows>
<gridRow id="DRl-lC-vUc"/>
<gridRow id="eW8-uH-txq"/>
@@ -97,7 +97,7 @@
</gridCells>
</gridView>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="9mz-D9-krh">
<rect key="frame" x="347" y="13" width="76" height="32"/>
<rect key="frame" x="348" y="13" width="74" height="32"/>
<constraints>
<constraint firstAttribute="width" constant="62" id="stL-0v-emB"/>
</constraints>
@@ -113,7 +113,7 @@ DQ
</connections>
</button>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="XAM-Hb-0Hw">
<rect key="frame" x="273" y="13" width="76" height="32"/>
<rect key="frame" x="274" y="13" width="74" height="32"/>
<buttonCell key="cell" type="push" title="Cancel" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="ufs-ar-BAY">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="system"/>
@@ -126,7 +126,7 @@ Gw
</connections>
</button>
<progressIndicator hidden="YES" wantsLayer="YES" horizontalHuggingPriority="750" verticalHuggingPriority="750" ambiguous="YES" maxValue="100" displayedWhenStopped="NO" bezeled="NO" indeterminate="YES" controlSize="small" style="spinning" translatesAutoresizingMaskIntoConstraints="NO" id="B0W-bh-Evv">
<rect key="frame" x="256" y="22" width="16" height="16"/>
<rect key="frame" x="256" y="23" width="16" height="16"/>
<constraints>
<constraint firstAttribute="height" constant="16" id="Cew-Vp-UKw"/>
<constraint firstAttribute="width" constant="16" id="P6W-hb-FGm"/>
@@ -143,21 +143,21 @@ Gw
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="lti-yM-8LV">
<rect key="frame" x="78" y="213" width="330" height="16"/>
<textFieldCell key="cell" lineBreakMode="clipping" title="Sign in to your NewsBlur account." id="ras-dj-nP8">
<font key="font" textStyle="headline" name=".SFNS-Bold"/>
<font key="font" usesAppearanceFont="YES"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="yqn-od-aLJ">
<rect key="frame" x="78" y="193" width="187" height="15"/>
<textFieldCell key="cell" lineBreakMode="clipping" title="Don't have a NewsBlur account?" id="fPs-Sh-GEf">
<font key="font" textStyle="callout" name=".SFNS-Regular"/>
<rect key="frame" x="78" y="192" width="200" height="16"/>
<textFieldCell key="cell" lineBreakMode="clipping" title="Dont have a NewsBlur account?" id="fPs-Sh-GEf">
<font key="font" usesAppearanceFont="YES"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="9oE-Gq-qp7">
<rect key="frame" x="264" y="193" width="105" height="15"/>
<rect key="frame" x="277" y="193" width="105" height="15"/>
<constraints>
<constraint firstAttribute="width" constant="105" id="Z91-fh-Mw5"/>
</constraints>
@@ -171,21 +171,21 @@ Gw
</connections>
</button>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="OMB-u7-kzz">
<rect key="frame" x="78" y="73" width="337" height="39"/>
<rect key="frame" x="78" y="72" width="337" height="39"/>
<constraints>
<constraint firstAttribute="width" constant="333" id="9Bx-xl-Lf4"/>
<constraint firstAttribute="height" constant="39" id="dYs-8A-ml0"/>
</constraints>
<textFieldCell key="cell" title="Your username and password will be encrypted and stored in Keychain. " id="VWI-0W-Duk">
<font key="font" textStyle="callout" name=".SFNS-Regular"/>
<font key="font" usesAppearanceFont="YES"/>
<color key="textColor" name="secondaryLabelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="tFv-QN-zMA">
<rect key="frame" x="78" y="60" width="337" height="14"/>
<rect key="frame" x="78" y="57" width="337" height="16"/>
<textFieldCell key="cell" lineBreakMode="clipping" id="yQ5-2h-Y9i">
<font key="font" textStyle="subheadline" name=".SFNS-Regular"/>
<font key="font" usesAppearanceFont="YES"/>
<color key="textColor" name="systemRedColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
@@ -225,7 +225,7 @@ Gw
</window>
</objects>
<resources>
<image name="accountNewsBlur" width="50" height="50"/>
<image name="accountNewsBlur" width="25" height="25"/>
<namedColor name="AccentColor">
<color red="0.030999999493360519" green="0.41600000858306885" blue="0.93300002813339233" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor>

View File

@@ -30,7 +30,7 @@
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
<rect key="contentRect" x="196" y="240" width="433" height="275"/>
<rect key="screenRect" x="0.0" y="0.0" width="1536" height="935"/>
<rect key="screenRect" x="0.0" y="0.0" width="2560" height="1417"/>
<view key="contentView" id="se5-gp-TjO">
<rect key="frame" x="0.0" y="0.0" width="433" height="275"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
@@ -39,7 +39,7 @@
<rect key="frame" x="217" y="255" width="0.0" height="0.0"/>
</stackView>
<gridView xPlacement="trailing" yPlacement="center" rowAlignment="none" rowSpacing="7" columnSpacing="8" translatesAutoresizingMaskIntoConstraints="NO" id="zBB-JH-huI">
<rect key="frame" x="80" y="125" width="270" height="77"/>
<rect key="frame" x="80" y="124" width="270" height="77"/>
<rows>
<gridRow id="DRl-lC-vUc"/>
<gridRow id="eW8-uH-txq"/>
@@ -125,7 +125,7 @@
</gridCells>
</gridView>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="9mz-D9-krh">
<rect key="frame" x="347" y="13" width="76" height="32"/>
<rect key="frame" x="348" y="13" width="74" height="32"/>
<constraints>
<constraint firstAttribute="width" constant="62" id="afy-Zh-DIy"/>
</constraints>
@@ -141,7 +141,7 @@ DQ
</connections>
</button>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="XAM-Hb-0Hw">
<rect key="frame" x="273" y="13" width="76" height="32"/>
<rect key="frame" x="274" y="13" width="74" height="32"/>
<buttonCell key="cell" type="push" title="Cancel" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="ufs-ar-BAY">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="system"/>
@@ -171,21 +171,21 @@ Gw
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="lti-yM-8LV">
<rect key="frame" x="78" y="239" width="337" height="16"/>
<textFieldCell key="cell" lineBreakMode="clipping" title="Sign in to a Reader API account." id="ras-dj-nP8">
<font key="font" textStyle="headline" name=".SFNS-Bold"/>
<font key="font" usesAppearanceFont="YES"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="R8e-67-Bwh">
<rect key="frame" x="78" y="219" width="174" height="15"/>
<textFieldCell key="cell" lineBreakMode="clipping" title="Don't have a Reader account?" id="ker-hu-FEc">
<font key="font" textStyle="callout" name=".SFNS-Regular"/>
<rect key="frame" x="78" y="218" width="186" height="16"/>
<textFieldCell key="cell" lineBreakMode="clipping" title="Dont have a Reader account?" id="ker-hu-FEc">
<font key="font" usesAppearanceFont="YES"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="kUQ-aj-Iu6">
<rect key="frame" x="251" y="220" width="99" height="13"/>
<rect key="frame" x="263" y="220" width="99" height="13"/>
<constraints>
<constraint firstAttribute="height" constant="13" id="NOr-5b-kRd"/>
</constraints>
@@ -199,21 +199,21 @@ Gw
</connections>
</button>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="q5z-LG-0Fm">
<rect key="frame" x="78" y="71" width="337" height="39"/>
<rect key="frame" x="78" y="70" width="337" height="39"/>
<constraints>
<constraint firstAttribute="height" constant="39" id="Zv4-mj-po0"/>
<constraint firstAttribute="width" constant="333" id="xsi-I6-XNM"/>
</constraints>
<textFieldCell key="cell" title="Your username and password will be encrypted and stored in Keychain. " id="Ec9-bB-tQz">
<font key="font" textStyle="callout" name=".SFNS-Regular"/>
<font key="font" usesAppearanceFont="YES"/>
<color key="textColor" name="secondaryLabelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Gyz-Mz-v08">
<rect key="frame" x="78" y="55" width="337" height="14"/>
<rect key="frame" x="78" y="52" width="337" height="16"/>
<textFieldCell key="cell" id="AGV-EV-VmY">
<font key="font" textStyle="subheadline" name=".SFNS-Regular"/>
<font key="font" usesAppearanceFont="YES"/>
<color key="textColor" name="systemRedColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>

View File

@@ -41,24 +41,24 @@ class AccountsReaderAPIWindowController: NSWindowController {
case .freshRSS:
titleImageView.image = AppAssets.accountFreshRSS
titleLabel.stringValue = NSLocalizedString("Sign in to your FreshRSS account.", comment: "FreshRSS")
noAccountTextField.stringValue = NSLocalizedString("Don't have a FreshRSS instance?", comment: "No FreshRSS")
noAccountTextField.stringValue = NSLocalizedString("Dont have a FreshRSS instance?", comment: "No FreshRSS")
createAccountButton.title = NSLocalizedString("Find out more", comment: "No FreshRSS Button")
apiURLTextField.placeholderString = NSLocalizedString("fresh.rss.net/api/greader.php", comment: "FreshRSS API Helper")
case .inoreader:
titleImageView.image = AppAssets.accountInoreader
titleLabel.stringValue = NSLocalizedString("Sign in to your InoReader account.", comment: "InoReader")
gridView.row(at: 2).isHidden = true
noAccountTextField.stringValue = NSLocalizedString("Don't have an InoReader account?", comment: "No InoReader")
noAccountTextField.stringValue = NSLocalizedString("Dont have an InoReader account?", comment: "No InoReader")
case .bazQux:
titleImageView.image = AppAssets.accountBazQux
titleLabel.stringValue = NSLocalizedString("Sign in to your BazQux account.", comment: "BazQux")
gridView.row(at: 2).isHidden = true
noAccountTextField.stringValue = NSLocalizedString("Don't have a BazQux account?", comment: "No BazQux")
noAccountTextField.stringValue = NSLocalizedString("Dont have a BazQux account?", comment: "No BazQux")
case .theOldReader:
titleImageView.image = AppAssets.accountTheOldReader
titleLabel.stringValue = NSLocalizedString("Sign in to your The Old Reader account.", comment: "The Old Reader")
gridView.row(at: 2).isHidden = true
noAccountTextField.stringValue = NSLocalizedString("Don't have a The Old Reader account?", comment: "No OldReader")
noAccountTextField.stringValue = NSLocalizedString("Dont have a The Old Reader account?", comment: "No OldReader")
default:
break
}

View File

@@ -35,13 +35,13 @@ enum AddAccountSections: Int, CaseIterable {
var sectionFooter: String {
switch self {
case .local:
return NSLocalizedString("Local accounts do not sync subscriptions across devices.", comment: "Local Account")
return NSLocalizedString("Local accounts do not sync feeds across devices", comment: "Local Account")
case .icloud:
return NSLocalizedString("Use your iCloud account to sync your subscriptions across your iOS and macOS devices.", comment: "iCloud Account")
return NSLocalizedString("Your iCloud account syncs your feeds across your Mac and iOS devices", comment: "iCloud Account")
case .web:
return NSLocalizedString("Web accounts sync your subscriptions across all your devices.", comment: "Web Account")
return NSLocalizedString("Web accounts sync your feeds across all your devices", comment: "Web Account")
case .selfhosted:
return NSLocalizedString("Self-hosted accounts sync your subscriptions across all your devices.", comment: "Self hosted Account")
return NSLocalizedString("Self-hosted accounts sync your feeds across all your devices", comment: "Self hosted Account")
case .allOrdered:
return ""
}

View File

@@ -110,7 +110,7 @@ struct AddFeedWranglerAccountView: View {
Text("Sign in to your Feed Wrangler account.")
.font(.headline)
HStack {
Text("Don't have a Feed Wrangler account?")
Text("Dont have a Feed Wrangler account?")
.font(.callout)
Button(action: {
model.presentSignUpOption(.feedWrangler)
@@ -191,8 +191,8 @@ struct AddFeedWranglerAccountView: View {
HStack {
Spacer()
VStack(spacing: 8) {
Text("Sign in to your Feed Wrangler account and sync your subscriptions across your devices. Your username and password and password will be encrypted and stored in Keychain.").foregroundColor(.secondary)
Text("Don't have a Feed Wrangler account?").foregroundColor(.secondary)
Text("Sign in to your Feed Wrangler account and sync your feeds across your devices. Your username and password and password will be encrypted and stored in Keychain.").foregroundColor(.secondary)
Text("Dont have a Feed Wrangler account?").foregroundColor(.secondary)
Button(action: {
model.presentSignUpOption(.feedWrangler)
}, label: {

View File

@@ -107,7 +107,7 @@ struct AddFeedbinAccountView: View {
Text("Sign in to your Feedbin account.")
.font(.headline)
HStack {
Text("Don't have a Feedbin account?")
Text("Dont have a Feedbin account?")
.font(.callout)
Button(action: {
model.presentSignUpOption(.feedbin)
@@ -188,8 +188,8 @@ struct AddFeedbinAccountView: View {
HStack {
Spacer()
VStack(spacing: 8) {
Text("Sign in to your Feedbin account and sync your subscriptions across your devices. Your username and password and password will be encrypted and stored in Keychain.").foregroundColor(.secondary)
Text("Don't have a Feedbin account?").foregroundColor(.secondary)
Text("Sign in to your Feedbin account and sync your feeds across your devices. Your username and password and password will be encrypted and stored in Keychain.").foregroundColor(.secondary)
Text("Dont have a Feedbin account?").foregroundColor(.secondary)
Button(action: {
model.presentSignUpOption(.feedbin)
}, label: {

View File

@@ -70,7 +70,7 @@ struct AddFeedlyAccountView: View {
Text("Sign in to your Feedly account.")
.font(.headline)
HStack {
Text("Don't have a Feedly account?")
Text("Dont have a Feedly account?")
.font(.callout)
Button(action: {
model.presentSignUpOption(.feedly)
@@ -126,7 +126,7 @@ struct AddFeedlyAccountView: View {
HStack {
Spacer()
VStack(spacing: 8) {
Text("Sign in to your Feedly account and sync your subscriptions across your devices. Your username and password will be encrypted and stored in Keychain.\n\nDon't have an Feedly account?").foregroundColor(.secondary)
Text("Sign in to your Feedly account and sync your feeds across your devices. Your username and password will be encrypted and stored in Keychain.\n\nDont have an Feedly account?").foregroundColor(.secondary)
Button(action: {
model.presentSignUpOption(.feedly)
}, label: {

View File

@@ -122,7 +122,7 @@ struct AddLocalAccountView: View {
HStack {
Spacer()
VStack(spacing: 8) {
Text("Local accounts do not sync your subscriptions across devices.").foregroundColor(.secondary)
Text("Local accounts do not sync your feeds across devices.").foregroundColor(.secondary)
}
.multilineTextAlignment(.center)
.font(.caption)

View File

@@ -107,7 +107,7 @@ struct AddNewsBlurAccountView: View {
Text("Sign in to your NewsBlur account.")
.font(.headline)
HStack {
Text("Don't have a NewsBlur account?")
Text("Dont have a NewsBlur account?")
.font(.callout)
Button(action: {
model.presentSignUpOption(.newsBlur)
@@ -188,8 +188,8 @@ struct AddNewsBlurAccountView: View {
HStack {
Spacer()
VStack(spacing: 8) {
Text("Sign in to your NewsBlur account and sync your subscriptions across your devices. Your username and password and password will be encrypted and stored in Keychain.").foregroundColor(.secondary)
Text("Don't have a NewsBlur account?").foregroundColor(.secondary)
Text("Sign in to your NewsBlur account and sync your feeds across your devices. Your username and password and password will be encrypted and stored in Keychain.").foregroundColor(.secondary)
Text("Dont have a NewsBlur account?").foregroundColor(.secondary)
Button(action: {
model.presentSignUpOption(.newsBlur)
}, label: {

View File

@@ -113,10 +113,10 @@ struct AddReaderAPIAccountView: View {
.font(.headline)
HStack {
if accountType == .freshRSS {
Text("Don't have a \(accountType.localizedAccountName()) instance?")
Text("Dont have a \(accountType.localizedAccountName()) instance?")
.font(.callout)
} else {
Text("Don't have an \(accountType.localizedAccountName()) account?")
Text("Dont have an \(accountType.localizedAccountName()) account?")
.font(.callout)
}
Button(action: {
@@ -221,8 +221,8 @@ struct AddReaderAPIAccountView: View {
HStack {
Spacer()
VStack(spacing: 8) {
Text("Sign in to your \(accountType.localizedAccountName()) account and sync your subscriptions across your devices. Your username and password and password will be encrypted and stored in Keychain.").foregroundColor(.secondary)
Text("Don't have a \(accountType.localizedAccountName()) instance?").foregroundColor(.secondary)
Text("Sign in to your \(accountType.localizedAccountName()) account and sync your feeds across your devices. Your username and password and password will be encrypted and stored in Keychain.").foregroundColor(.secondary)
Text("Dont have a \(accountType.localizedAccountName()) instance?").foregroundColor(.secondary)
Button(action: {
model.presentSignUpOption(accountType)
}, label: {

View File

@@ -30,6 +30,7 @@ class TitleActivityItemSource: NSObject, UIActivityItemSource {
case "com.omnigroup.OmniFocus3.iOS.QuickEntry",
"com.culturedcode.ThingsiPhone.ShareExtension",
"com.tapbots.Tweetbot4.shareextension",
"com.tapbots.Tweetbot6.shareextension",
"com.buffer.buffer.Buffer":
return title
default:

View File

@@ -34,13 +34,13 @@ enum AddAccountSections: Int, CaseIterable {
var sectionFooter: String {
switch self {
case .local:
return NSLocalizedString("Local accounts do not sync subscriptions across devices.", comment: "Local Account")
return NSLocalizedString("Local accounts do not sync feeds across devices.", comment: "Local Account")
case .icloud:
return NSLocalizedString("Use your iCloud account to sync your subscriptions across your iOS and macOS devices.", comment: "iCloud Account")
return NSLocalizedString("Your iCloud account syncs your feeds across your Mac and iOS devices.", comment: "iCloud Account")
case .web:
return NSLocalizedString("Web accounts sync your subscriptions across all your devices.", comment: "Web Account")
return NSLocalizedString("Web accounts sync your feeds across all your devices.", comment: "Web Account")
case .selfhosted:
return NSLocalizedString("Self-hosted accounts sync your subscriptions across all your devices.", comment: "Self hosted Account")
return NSLocalizedString("Self-hosted accounts sync your feeds across all your devices.", comment: "Self hosted Account")
case .allOrdered:
return ""
}

View File

@@ -16,7 +16,7 @@ struct AdvancedPreferencesView: View {
Form {
Toggle("Check for app updates automatically", isOn: $preferences.checkForUpdatesAutomatically)
Toggle("Download Test Builds", isOn: $preferences.downloadTestBuilds)
Text("If youre not sure, don't enable test builds. Test builds may have bugs, which may include crashing bugs and data loss.")
Text("If youre not sure, dont enable test builds. Test builds may have bugs, which may include crashing bugs and data loss.")
.foregroundColor(.secondary)
HStack {
Spacer()

View File

@@ -1,10 +1,19 @@
# iOS Release Notes
### 6.0 TestFlight build 604 - 31 May 2021
This is a final candidate
Updated about NetNewsWire section
Fixed bug where Tweetbot share sheet could be empty
Feedly: fixed bug where your custom name could get lost after moving a feed to a different folder
Twitter: fixed bug handling tweets containing characters made up of multiple scalars
iCloud: added explanation about when sync may be slow
### 6.0 TestFlight build 603 - 16 May 2021
Feedly: handle Feedly API change with return value on deleting a folder
NewsBlur: sync no longer includes items marked as hidden on NewsBlur
FreshRSS: form for adding account now suggests endpoing URL
FreshRSS: form for adding account now suggests endpoint URL
FreshRSS: improved the error message for when the API URL cant be found
iCloud: retain existing feeds moved to a folder that doesnt exist yet (sync ordering issue)
Renamed a Delete Account button to Remove Account

View File

@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="18122" 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="17701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<device id="retina6_1" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="18093"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17703"/>
<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"/>
@@ -53,16 +53,16 @@
<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="65.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.
<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 feeds across your devices. Your username and password will be encrypted and stored in Keychain.
Don't have a Feed Wrangler account?</string>
Dont 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="172" y="72" width="70" height="26"/>
<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>
@@ -90,7 +90,7 @@ Don't have a Feed Wrangler account?</string>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Email" textAlignment="natural" adjustsFontForContentSizeCategory="YES" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="o06-fe-i3S">
<rect key="frame" x="20" y="13" width="334" height="18.5"/>
<rect key="frame" x="20" y="11" width="334" height="22"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<textInputTraits key="textInputTraits" spellCheckingType="no" keyboardType="emailAddress" textContentType="username"/>
</textField>
@@ -110,12 +110,12 @@ Don't have a Feed Wrangler account?</string>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Password" textAlignment="natural" adjustsFontForContentSizeCategory="YES" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Z6i-nX-CwJ">
<rect key="frame" x="20" y="13.5" width="290" height="17"/>
<rect key="frame" x="20" y="11.5" width="284" 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="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="lBg-Pn-8ao">
<rect key="frame" x="318" y="7.5" width="36" height="29"/>
<rect key="frame" x="312" y="5.5" width="42" height="33"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<state key="normal" title="Show"/>
<connections>
@@ -178,31 +178,19 @@ Don't have a Feed Wrangler account?</string>
<action selector="cancel:" destination="fPs-Pp-Qk4" id="C0j-OR-yQ2"/>
</connections>
</barButtonItem>
<rightBarButtonItems>
<barButtonItem title="Item" image="1password" id="pyb-oi-0r2" userLabel="1Password">
<connections>
<action selector="retrievePasswordDetailsFrom1Password:" destination="fPs-Pp-Qk4" id="DpE-Cr-s5P"/>
</connections>
</barButtonItem>
<barButtonItem id="ojY-jN-yDr">
<view key="customView" contentMode="scaleToFill" id="6k3-VP-uPP">
<rect key="frame" x="332" y="12" width="20" height="20"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
<activityIndicatorView opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" style="medium" translatesAutoresizingMaskIntoConstraints="NO" id="mVm-hL-hqw">
<rect key="frame" x="0.0" y="0.0" width="20" height="20"/>
</activityIndicatorView>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="mVm-hL-hqw" firstAttribute="centerX" secondItem="6k3-VP-uPP" secondAttribute="centerX" id="Qcn-ZS-MPs"/>
<constraint firstItem="mVm-hL-hqw" firstAttribute="height" secondItem="6k3-VP-uPP" secondAttribute="height" id="WXs-IU-eDJ"/>
<constraint firstItem="mVm-hL-hqw" firstAttribute="centerY" secondItem="6k3-VP-uPP" secondAttribute="centerY" id="b44-z7-NiN"/>
<constraint firstItem="mVm-hL-hqw" firstAttribute="width" secondItem="6k3-VP-uPP" secondAttribute="width" id="kho-qu-9Yf"/>
</constraints>
</view>
</barButtonItem>
</rightBarButtonItems>
<barButtonItem key="rightBarButtonItem" id="ojY-jN-yDr">
<view key="customView" contentMode="scaleToFill" id="6k3-VP-uPP">
<rect key="frame" x="374" y="12" width="20" height="20"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
<activityIndicatorView opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" fixedFrame="YES" style="medium" translatesAutoresizingMaskIntoConstraints="NO" id="mVm-hL-hqw">
<rect key="frame" x="36" y="6" width="20" height="20"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
</activityIndicatorView>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</view>
</barButtonItem>
</navigationItem>
<connections>
<outlet property="actionButton" destination="kKc-mk-vsU" id="TXr-cm-Oyp"/>
@@ -210,7 +198,6 @@ Don't have a Feed Wrangler account?</string>
<outlet property="cancelBarButtonItem" destination="zbP-iL-kfC" id="TT3-iu-IvG"/>
<outlet property="emailTextField" destination="o06-fe-i3S" id="WHW-3E-trH"/>
<outlet property="footerLabel" destination="6Ik-WC-e74" id="KwB-tD-kTN"/>
<outlet property="onepasswordButton" destination="pyb-oi-0r2" id="keC-RI-1l5"/>
<outlet property="passwordTextField" destination="Z6i-nX-CwJ" id="p36-53-RsD"/>
<outlet property="showHideButton" destination="lBg-Pn-8ao" id="GgE-Nx-gFL"/>
</connections>
@@ -246,8 +233,8 @@ Don't have a Feed Wrangler account?</string>
<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="13.5"/>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Local accounts do not sync your feeds 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"/>
@@ -271,7 +258,7 @@ Don't have a Feed Wrangler account?</string>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Name" textAlignment="natural" adjustsFontForContentSizeCategory="YES" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Yl1-R6-xZi">
<rect key="frame" x="20" y="13" width="334" height="18.5"/>
<rect key="frame" x="20" y="11" width="334" height="22"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<textInputTraits key="textInputTraits" autocapitalizationType="words"/>
</textField>
@@ -351,16 +338,16 @@ Don't have a Feed Wrangler account?</string>
<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="65.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.
<rect key="frame" x="20" y="8" width="373" height="78.5"/>
<string key="text">Sign in to your Feedbin account to sync your feeds across your devices. Your username and password will be encrypted and stored in Keychain.
Don't have a Feedbin account?</string>
Dont 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="172" y="72" width="70" height="26"/>
<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>
@@ -388,7 +375,7 @@ Don't have a Feedbin account?</string>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Email" textAlignment="natural" adjustsFontForContentSizeCategory="YES" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="vJa-NN-yjR">
<rect key="frame" x="20" y="13" width="334" height="18.5"/>
<rect key="frame" x="20" y="11" width="334" height="22"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<textInputTraits key="textInputTraits" spellCheckingType="no" keyboardType="emailAddress" textContentType="username"/>
</textField>
@@ -408,12 +395,12 @@ Don't have a Feedbin account?</string>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Password" textAlignment="natural" adjustsFontForContentSizeCategory="YES" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="YC2-RH-QoV">
<rect key="frame" x="20" y="13.5" width="290" height="17"/>
<rect key="frame" x="20" y="11.5" width="284" 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="system" lineBreakMode="middleTruncation" pointerInteraction="YES" translatesAutoresizingMaskIntoConstraints="NO" id="TfW-wf-V06">
<rect key="frame" x="318" y="7.5" width="36" height="29"/>
<rect key="frame" x="312" y="5.5" width="42" height="33"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<state key="normal" title="Show"/>
<connections>
@@ -476,31 +463,19 @@ Don't have a Feedbin account?</string>
<action selector="cancel:" destination="ECy-jg-Kyc" id="ZKI-gV-ylg"/>
</connections>
</barButtonItem>
<rightBarButtonItems>
<barButtonItem title="Item" image="1password" id="VG1-ck-a7f" userLabel="1password">
<connections>
<action selector="retrievePasswordDetailsFrom1Password:" destination="ECy-jg-Kyc" id="nIB-Y6-hqa"/>
</connections>
</barButtonItem>
<barButtonItem id="Xwp-LO-qff">
<view key="customView" contentMode="scaleToFill" id="cn4-b1-uZa">
<rect key="frame" x="332" y="12" width="20" height="20"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
<activityIndicatorView opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" style="medium" translatesAutoresizingMaskIntoConstraints="NO" id="YvV-hB-lzT">
<rect key="frame" x="0.0" y="0.0" width="20" height="20"/>
</activityIndicatorView>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="YvV-hB-lzT" firstAttribute="centerY" secondItem="cn4-b1-uZa" secondAttribute="centerY" id="8Lw-iQ-aCu"/>
<constraint firstItem="YvV-hB-lzT" firstAttribute="centerX" secondItem="cn4-b1-uZa" secondAttribute="centerX" id="KjS-KK-WVn"/>
<constraint firstItem="YvV-hB-lzT" firstAttribute="width" secondItem="cn4-b1-uZa" secondAttribute="width" id="Ybl-fy-acr"/>
<constraint firstItem="YvV-hB-lzT" firstAttribute="height" secondItem="cn4-b1-uZa" secondAttribute="height" id="aUy-B8-FqB"/>
</constraints>
</view>
</barButtonItem>
</rightBarButtonItems>
<barButtonItem key="rightBarButtonItem" id="Xwp-LO-qff">
<view key="customView" contentMode="scaleToFill" id="cn4-b1-uZa">
<rect key="frame" x="374" y="12" width="20" height="20"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
<activityIndicatorView opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" fixedFrame="YES" style="medium" translatesAutoresizingMaskIntoConstraints="NO" id="YvV-hB-lzT">
<rect key="frame" x="36" y="6" width="20" height="20"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
</activityIndicatorView>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</view>
</barButtonItem>
</navigationItem>
<connections>
<outlet property="actionButton" destination="gv7-yG-aE3" id="ENc-5A-hQc"/>
@@ -508,7 +483,6 @@ Don't have a Feedbin account?</string>
<outlet property="cancelBarButtonItem" destination="pfF-Of-5NT" id="Zr3-qD-1Yi"/>
<outlet property="emailTextField" destination="vJa-NN-yjR" id="nCF-9W-YsF"/>
<outlet property="footerLabel" destination="sgL-0C-JZa" id="b6I-Mk-2K3"/>
<outlet property="onepasswordButton" destination="VG1-ck-a7f" id="qJi-3O-8Ru"/>
<outlet property="passwordTextField" destination="YC2-RH-QoV" id="qaX-0i-7jq"/>
<outlet property="showHideButton" destination="TfW-wf-V06" id="PbL-67-Nrg"/>
</connections>
@@ -545,16 +519,16 @@ Don't have a Feedbin account?</string>
<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="65.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.
<rect key="frame" x="20" y="8" width="373" height="78.5"/>
<string key="text">Sign in to your NewsBlur account to sync your feeds across your devices. Your username and password will be encrypted and stored in Keychain.
Don't have a NewsBlur account?</string>
Dont 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="172" y="72" width="70" height="26"/>
<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>
@@ -582,7 +556,7 @@ Don't have a NewsBlur account?</string>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Username or Email" textAlignment="natural" adjustsFontForContentSizeCategory="YES" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="S4v-fs-DIO">
<rect key="frame" x="20" y="13" width="334" height="18.5"/>
<rect key="frame" x="20" y="11" width="334" height="22"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<textInputTraits key="textInputTraits" spellCheckingType="no" keyboardType="emailAddress" textContentType="username"/>
</textField>
@@ -602,12 +576,12 @@ Don't have a NewsBlur account?</string>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Password" textAlignment="natural" adjustsFontForContentSizeCategory="YES" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="fct-XR-fEa">
<rect key="frame" x="20" y="13.5" width="290" height="17"/>
<rect key="frame" x="20" y="11.5" width="284" 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="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="GY9-nr-jFb">
<rect key="frame" x="318" y="7.5" width="36" height="29"/>
<rect key="frame" x="312" y="5.5" width="42" height="33"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<state key="normal" title="Show"/>
<connections>
@@ -670,38 +644,25 @@ Don't have a NewsBlur account?</string>
<action selector="cancel:" destination="Cge-ND-NpD" id="9zR-LJ-IWk"/>
</connections>
</barButtonItem>
<rightBarButtonItems>
<barButtonItem title="Item" image="1password" id="dVp-Gh-NdH">
<connections>
<action selector="retrievePasswordDetailsFrom1Password:" destination="Cge-ND-NpD" id="1Gz-2G-7js"/>
</connections>
</barButtonItem>
<barButtonItem id="4yi-H0-B9J">
<view key="customView" contentMode="scaleToFill" id="8DU-L0-P6c">
<rect key="frame" x="332" y="12" width="20" height="20"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
<activityIndicatorView opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" style="medium" translatesAutoresizingMaskIntoConstraints="NO" id="HfW-jV-MjK">
<rect key="frame" x="0.0" y="0.0" width="20" height="20"/>
</activityIndicatorView>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="HfW-jV-MjK" firstAttribute="centerX" secondItem="8DU-L0-P6c" secondAttribute="centerX" id="6ly-W7-21T"/>
<constraint firstItem="HfW-jV-MjK" firstAttribute="height" secondItem="8DU-L0-P6c" secondAttribute="height" id="Yag-ad-Ypu"/>
<constraint firstItem="HfW-jV-MjK" firstAttribute="width" secondItem="8DU-L0-P6c" secondAttribute="width" id="mcl-kw-rNk"/>
<constraint firstItem="HfW-jV-MjK" firstAttribute="centerY" secondItem="8DU-L0-P6c" secondAttribute="centerY" id="w1q-rr-rol"/>
</constraints>
</view>
</barButtonItem>
</rightBarButtonItems>
<barButtonItem key="rightBarButtonItem" id="4yi-H0-B9J">
<view key="customView" contentMode="scaleToFill" id="8DU-L0-P6c">
<rect key="frame" x="374" y="12" width="20" height="20"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
<activityIndicatorView opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" fixedFrame="YES" style="medium" translatesAutoresizingMaskIntoConstraints="NO" id="HfW-jV-MjK">
<rect key="frame" x="36" y="6" width="20" height="20"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
</activityIndicatorView>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</view>
</barButtonItem>
</navigationItem>
<connections>
<outlet property="actionButton" destination="E1I-C4-JdL" id="q2T-4o-c8i"/>
<outlet property="activityIndicator" destination="HfW-jV-MjK" id="AIV-uG-9uC"/>
<outlet property="cancelBarButtonItem" destination="bl6-Y1-wQ8" id="ohR-gW-5J2"/>
<outlet property="footerLabel" destination="fal-e8-3BB" id="7Fq-Oz-aEx"/>
<outlet property="onepasswordButton" destination="dVp-Gh-NdH" id="lYf-yV-GgW"/>
<outlet property="passwordTextField" destination="fct-XR-fEa" id="fGL-4k-gZ6"/>
<outlet property="showHideButton" destination="GY9-nr-jFb" id="1p9-9F-GMY"/>
<outlet property="usernameTextField" destination="S4v-fs-DIO" id="B7I-yz-M0T"/>
@@ -723,16 +684,16 @@ Don't have a NewsBlur account?</string>
<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="52.5"/>
<string key="text">Use your Reader account to sync your subscriptions across your devices.
<rect key="frame" x="20" y="8" width="373" height="46.5"/>
<string key="text">Use your Reader account to sync your feeds across your devices.
Don't have a Reader account?</string>
Dont 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="172" y="59" width="70" height="26"/>
<rect key="frame" x="169.5" y="53" width="75" height="27"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleCaption1"/>
<state key="normal" title="Sign Up Here"/>
<connections>
@@ -760,7 +721,7 @@ Don't have a Reader account?</string>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Username or Email" textAlignment="natural" adjustsFontForContentSizeCategory="YES" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="CZg-x8-936">
<rect key="frame" x="14" y="13" width="347" height="18.5"/>
<rect key="frame" x="14" y="11" width="347" height="22"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<textInputTraits key="textInputTraits" spellCheckingType="no" keyboardType="emailAddress" textContentType="username"/>
</textField>
@@ -780,12 +741,12 @@ Don't have a Reader account?</string>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Password" textAlignment="natural" adjustsFontForContentSizeCategory="YES" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="KgN-kQ-Cyc">
<rect key="frame" x="14" y="13.5" width="300" height="17"/>
<rect key="frame" x="14" y="11.5" width="294" 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="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="cFF-qt-WLs">
<rect key="frame" x="322" y="7.5" width="36" height="29"/>
<rect key="frame" x="316" y="5.5" width="42" height="33"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<state key="normal" title="Show"/>
<connections>
@@ -811,7 +772,7 @@ Don't have a Reader account?</string>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="API URL" textAlignment="natural" adjustsFontForContentSizeCategory="YES" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="iPv-M2-U8Q">
<rect key="frame" x="14" y="11" width="340" height="18.5"/>
<rect key="frame" x="14" y="11" width="340" height="22"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<textInputTraits key="textInputTraits" autocorrectionType="no" spellCheckingType="no" keyboardType="URL" smartDashesType="no" smartInsertDeleteType="no" smartQuotesType="no" textContentType="url"/>
</textField>
@@ -864,31 +825,19 @@ Don't have a Reader account?</string>
<action selector="cancel:" destination="MzG-hS-TpF" id="a49-Fh-i1S"/>
</connections>
</barButtonItem>
<rightBarButtonItems>
<barButtonItem title="Item" image="1password" id="MLD-vW-VQN">
<connections>
<action selector="retrievePasswordDetailsFrom1Password:" destination="MzG-hS-TpF" id="Dy3-1A-JV4"/>
</connections>
</barButtonItem>
<barButtonItem id="Ih6-jI-jFg">
<view key="customView" contentMode="scaleToFill" id="gSl-PT-7DH">
<rect key="frame" x="332" y="12" width="20" height="20"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
<activityIndicatorView opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" style="medium" translatesAutoresizingMaskIntoConstraints="NO" id="pdn-6v-d9a">
<rect key="frame" x="0.0" y="0.0" width="20" height="20"/>
</activityIndicatorView>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="pdn-6v-d9a" firstAttribute="width" secondItem="gSl-PT-7DH" secondAttribute="width" id="Bpz-h0-KzN"/>
<constraint firstItem="pdn-6v-d9a" firstAttribute="centerY" secondItem="gSl-PT-7DH" secondAttribute="centerY" id="L9F-HX-b30"/>
<constraint firstItem="pdn-6v-d9a" firstAttribute="height" secondItem="gSl-PT-7DH" secondAttribute="height" id="O6T-RS-feo"/>
<constraint firstItem="pdn-6v-d9a" firstAttribute="centerX" secondItem="gSl-PT-7DH" secondAttribute="centerX" id="ysw-er-kKl"/>
</constraints>
</view>
</barButtonItem>
</rightBarButtonItems>
<barButtonItem key="rightBarButtonItem" id="Ih6-jI-jFg">
<view key="customView" contentMode="scaleToFill" id="gSl-PT-7DH">
<rect key="frame" x="374" y="12" width="20" height="20"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
<activityIndicatorView opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" fixedFrame="YES" style="medium" translatesAutoresizingMaskIntoConstraints="NO" id="pdn-6v-d9a">
<rect key="frame" x="36" y="6" width="20" height="20"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
</activityIndicatorView>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</view>
</barButtonItem>
</navigationItem>
<connections>
<outlet property="actionButton" destination="7L9-X7-1Oc" id="VnP-sl-Cmd"/>
@@ -896,7 +845,6 @@ Don't have a Reader account?</string>
<outlet property="apiURLTextField" destination="iPv-M2-U8Q" id="8kn-Xk-a8w"/>
<outlet property="cancelBarButtonItem" destination="n8H-ai-4Df" id="u86-HH-HYC"/>
<outlet property="footerLabel" destination="7Jj-p8-lYw" id="Tqv-qR-WBR"/>
<outlet property="onepasswordButton" destination="MLD-vW-VQN" id="y3T-hD-XRD"/>
<outlet property="passwordTextField" destination="KgN-kQ-Cyc" id="A0K-JL-CEW"/>
<outlet property="showHideButton" destination="cFF-qt-WLs" id="AxI-Gl-NdM"/>
<outlet property="signUpButton" destination="3Fq-U4-PS5" id="Wuj-5g-vDH"/>
@@ -934,9 +882,9 @@ Don't have a Reader account?</string>
<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="26.5"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleCaption1"/>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Your iCloud account syncs your feeds across your Mac and iOS devices" 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="42.5"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<color key="textColor" systemColor="secondaryLabelColor"/>
<nil key="highlightedColor"/>
</label>
@@ -1020,7 +968,6 @@ Don't have a Reader account?</string>
</scene>
</scenes>
<resources>
<image name="1password" width="23" height="23"/>
<namedColor name="secondaryAccentColor">
<color red="0.031372549019607843" green="0.41568627450980394" blue="0.93333333333333335" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor>

View File

@@ -30,7 +30,7 @@ class CloudKitAccountViewController: UITableViewController {
}
private func setupFooter() {
footerLabel.text = NSLocalizedString("NetNewsWire will use your iCloud account to sync your subscriptions across your Mac and iOS devices.", comment: "iCloud")
footerLabel.text = NSLocalizedString("Feeds in your iCloud account will be synced across your Mac and iOS devices.\n\nImportant note: while NetNewsWire itself is very fast, iCloud syncing is sometimes very slow. This can happen after adding a number of feeds and when setting it up on a new device.\n\nIf that happens to you, it may appear stuck. But dont worry — its not. Just let it run.", comment: "iCloud")
}
@IBAction func cancel(_ sender: Any) {

View File

@@ -53,7 +53,7 @@ class FeedWranglerAccountViewController: UITableViewController {
}
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")
footerLabel.text = NSLocalizedString("Sign in to your Feed Wrangler account and sync your feeds across your devices. Your username and password will be encrypted and stored in Keychain.\n\nDont have a Feed Wrangler account?", comment: "Feed Wrangler")
}
override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {

View File

@@ -59,7 +59,7 @@ class FeedbinAccountViewController: UITableViewController {
}
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")
footerLabel.text = NSLocalizedString("Sign in to your Feedbin account and sync your feeds across your devices. Your username and password will be encrypted and stored in Keychain.\n\nDont have a Feedbin account?", comment: "Feedbin")
}
override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {

View File

@@ -25,7 +25,7 @@ class LocalAccountViewController: UITableViewController {
}
private func setupFooter() {
footerLabel.text = NSLocalizedString("Local accounts do not sync your subscriptions across devices.", comment: "Local")
footerLabel.text = NSLocalizedString("Local accounts do not sync your feeds across devices.", comment: "Local")
}
@IBAction func cancel(_ sender: Any) {

View File

@@ -53,7 +53,7 @@ class NewsBlurAccountViewController: UITableViewController {
}
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 NewsBlur account?", comment: "NewsBlur")
footerLabel.text = NSLocalizedString("Sign in to your NewsBlur account and sync your feeds across your devices. Your username and password will be encrypted and stored in Keychain.\n\nDont have a NewsBlur account?", comment: "NewsBlur")
}
override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {

View File

@@ -77,16 +77,16 @@ 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")
footerLabel.text = NSLocalizedString("Sign in to your BazQux account and sync your feeds across your devices. Your username and password will be encrypted and stored in Keychain.\n\nDont 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")
footerLabel.text = NSLocalizedString("Sign in to your InoReader account and sync your feeds across your devices. Your username and password will be encrypted and stored in Keychain.\n\nDont 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")
footerLabel.text = NSLocalizedString("Sign in to your The Old Reader account and sync your feeds across your devices. Your username and password will be encrypted and stored in Keychain.\n\nDont 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")
footerLabel.text = NSLocalizedString("Sign in to your FreshRSS instance and sync your feeds across your devices. Your username and password will be encrypted and stored in Keychain.\n\nDont have an FreshRSS instance?", comment: "FreshRSS")
signUpButton.setTitle(NSLocalizedString("Find Out More", comment: "FreshRSS SignUp"), for: .normal)
default:
return

View File

@@ -1321,7 +1321,7 @@ private extension MasterFeedViewController {
alertController.addAction(UIAlertAction(title: cancelTitle, style: .cancel))
let deleteTitle = NSLocalizedString("Delete", comment: "Delete")
let deleteAction = UIAlertAction(title: deleteTitle, style: .default) { [weak self] action in
let deleteAction = UIAlertAction(title: deleteTitle, style: .destructive) { [weak self] action in
self?.delete(indexPath: indexPath, feedID: feedID)
}
alertController.addAction(deleteAction)

View File

@@ -436,7 +436,7 @@ class SceneCoordinator: NSObject, UndoableCommandRunner, UnreadCountProvider {
guard notification.object is AccountManager else {
return
}
rebuildBackingStores()
rebuildBackingStores(initialLoad: true)
treeControllerDelegate.resetFilterExceptions()
}

View File

@@ -38,13 +38,13 @@ class AddAccountViewController: UITableViewController, AddAccountDismissDelegate
var sectionFooter: String {
switch self {
case .local:
return NSLocalizedString("Local accounts do not sync your subscriptions across devices.", comment: "Local Account")
return NSLocalizedString("Local accounts do not sync your feeds across devices", comment: "Local Account")
case .icloud:
return NSLocalizedString("Use your iCloud account to sync your subscriptions across your iOS and macOS devices.", comment: "iCloud Account")
return NSLocalizedString("Your iCloud account syncs your feeds across your Mac and iOS devices", comment: "iCloud Account")
case .web:
return NSLocalizedString("Web accounts sync your subscriptions across all your devices.", comment: "Web Account")
return NSLocalizedString("Web accounts sync your feeds across all your devices", comment: "Web Account")
case .selfhosted:
return NSLocalizedString("Self-hosted accounts sync your subscriptions across all your devices.", comment: "Self hosted Account")
return NSLocalizedString("Self-hosted accounts sync your feeds across all your devices", comment: "Self hosted Account")
}
}

View File

@@ -226,7 +226,7 @@ class SettingsViewController: UITableViewController {
case 7:
switch indexPath.row {
case 0:
openURL("https://netnewswire.com/help/ios/5.0/en/")
openURL("https://netnewswire.com/help/ios/6.0/en/")
tableView.selectRow(at: nil, animated: true, scrollPosition: .none)
case 1:
openURL("https://netnewswire.com/")

View File

@@ -30,6 +30,7 @@ class TitleActivityItemSource: NSObject, UIActivityItemSource {
case "com.omnigroup.OmniFocus3.iOS.QuickEntry",
"com.culturedcode.ThingsiPhone.ShareExtension",
"com.tapbots.Tweetbot4.shareextension",
"com.tapbots.Tweetbot6.shareextension",
"com.buffer.buffer.Buffer":
return title
default:

View File

@@ -1,7 +1,7 @@
// High Level Settings common to both the iOS application and any extensions we bundle with it
MARKETING_VERSION = 6.0
CURRENT_PROJECT_VERSION = 603
CURRENT_PROJECT_VERSION = 606
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon