From 4461cf83cbeaf02acc75e20a07ed58e4cfab69b1 Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Thu, 23 Apr 2020 04:44:26 -0500 Subject: [PATCH] Add select URL Builder dialog --- NetNewsWire.xcodeproj/project.pbxproj | 8 ++ iOS/Add/Add.storyboard | 95 ++++++++++++++++++- iOS/Add/AddWebFeedFolderViewController.swift | 2 +- iOS/Add/AddWebFeedViewController.swift | 6 ++ iOS/Add/SelectComboTableViewCell.swift | 26 +++++ .../SelectURLBuilderTableViewController.swift | 44 +++++++++ 6 files changed, 178 insertions(+), 3 deletions(-) create mode 100644 iOS/Add/SelectComboTableViewCell.swift create mode 100644 iOS/Add/SelectURLBuilderTableViewController.swift diff --git a/NetNewsWire.xcodeproj/project.pbxproj b/NetNewsWire.xcodeproj/project.pbxproj index 0f667eca7..7cbe827ca 100644 --- a/NetNewsWire.xcodeproj/project.pbxproj +++ b/NetNewsWire.xcodeproj/project.pbxproj @@ -16,6 +16,8 @@ 3B826DCE2385C89600FC1ADB /* AccountsFeedWranglerWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B826DCA2385C84800FC1ADB /* AccountsFeedWranglerWindowController.swift */; }; 49F40DF82335B71000552BF4 /* newsfoot.js in Resources */ = {isa = PBXBuildFile; fileRef = 49F40DEF2335B71000552BF4 /* newsfoot.js */; }; 49F40DF92335B71000552BF4 /* newsfoot.js in Resources */ = {isa = PBXBuildFile; fileRef = 49F40DEF2335B71000552BF4 /* newsfoot.js */; }; + 510289AA2451967500426DDF /* SelectURLBuilderTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 510289A92451967500426DDF /* SelectURLBuilderTableViewController.swift */; }; + 510289CD24519A1D00426DDF /* SelectComboTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 510289CC24519A1D00426DDF /* SelectComboTableViewCell.swift */; }; 5102FD83244009F000534F17 /* Secrets.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5102FD7B244008A700534F17 /* Secrets.framework */; }; 5102FD84244009F000534F17 /* Secrets.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 5102FD7B244008A700534F17 /* Secrets.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 5102FD9B244009FA00534F17 /* Secrets.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5102FD7B244008A700534F17 /* Secrets.framework */; }; @@ -1382,6 +1384,8 @@ 3B826DB02385C84800FC1ADB /* AccountsFeedWrangler.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AccountsFeedWrangler.xib; sourceTree = ""; }; 3B826DCA2385C84800FC1ADB /* AccountsFeedWranglerWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountsFeedWranglerWindowController.swift; sourceTree = ""; }; 49F40DEF2335B71000552BF4 /* newsfoot.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = newsfoot.js; sourceTree = ""; }; + 510289A92451967500426DDF /* SelectURLBuilderTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectURLBuilderTableViewController.swift; sourceTree = ""; }; + 510289CC24519A1D00426DDF /* SelectComboTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectComboTableViewCell.swift; sourceTree = ""; }; 5102FD72244008A700534F17 /* Secrets.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Secrets.xcodeproj; path = Frameworks/Secrets/Secrets.xcodeproj; sourceTree = SOURCE_ROOT; }; 5103A9972421643300410853 /* blank.html */ = {isa = PBXFileReference; lastKnownFileType = text.html; path = blank.html; sourceTree = ""; }; 5103A9B324216A4200410853 /* blank.html */ = {isa = PBXFileReference; lastKnownFileType = text.html; path = blank.html; sourceTree = ""; }; @@ -2269,6 +2273,8 @@ 51E36E70239D6610006F47A5 /* AddWebFeedSelectFolderTableViewCell.swift */, 51E36E8B239D6765006F47A5 /* AddWebFeedSelectFolderTableViewCell.xib */, 51C452842265093600C03939 /* AddWebFeedViewController.swift */, + 510289A92451967500426DDF /* SelectURLBuilderTableViewController.swift */, + 510289CC24519A1D00426DDF /* SelectComboTableViewCell.swift */, ); path = Add; sourceTree = ""; @@ -4262,6 +4268,7 @@ 51D5948722668EFA00DFC836 /* MarkStatusCommand.swift in Sources */, 51A1699C235E10D700EB091F /* AddAccountViewController.swift in Sources */, 51A16999235E10D700EB091F /* LocalAccountViewController.swift in Sources */, + 510289CD24519A1D00426DDF /* SelectComboTableViewCell.swift in Sources */, 514B7C8323205EFB00BAC947 /* RootSplitViewController.swift in Sources */, 51FA73A52332BE110090D516 /* ArticleExtractor.swift in Sources */, 51314704235C41FC00387FDC /* Intents.intentdefinition in Sources */, @@ -4293,6 +4300,7 @@ 51B5C87B23F2317700032075 /* ExtensionFeedAddRequest.swift in Sources */, 51627A93238A3836007B3B4B /* CroppingPreviewParameters.swift in Sources */, 512AF9DD236F05230066F8BE /* InteractiveLabel.swift in Sources */, + 510289AA2451967500426DDF /* SelectURLBuilderTableViewController.swift in Sources */, 51E3EB3D229AB08300645299 /* ErrorHandler.swift in Sources */, 5183CCE5226F4DFA0010922C /* RefreshInterval.swift in Sources */, 51C4529D22650A1000C03939 /* FaviconURLFinder.swift in Sources */, diff --git a/iOS/Add/Add.storyboard b/iOS/Add/Add.storyboard index a8fd20ddf..3065861c5 100644 --- a/iOS/Add/Add.storyboard +++ b/iOS/Add/Add.storyboard @@ -26,16 +26,25 @@ - + + + + + - @@ -436,8 +445,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/iOS/Add/AddWebFeedFolderViewController.swift b/iOS/Add/AddWebFeedFolderViewController.swift index 50c7631f3..9039bc782 100644 --- a/iOS/Add/AddWebFeedFolderViewController.swift +++ b/iOS/Add/AddWebFeedFolderViewController.swift @@ -1,5 +1,5 @@ // -// AddWebFeedLocationViewController.swift +// AddWebFeedFolderViewController.swift // NetNewsWire-iOS // // Created by Maurice Parker on 11/16/19. diff --git a/iOS/Add/AddWebFeedViewController.swift b/iOS/Add/AddWebFeedViewController.swift index 4fb5484bf..3c0f62e61 100644 --- a/iOS/Add/AddWebFeedViewController.swift +++ b/iOS/Add/AddWebFeedViewController.swift @@ -65,6 +65,12 @@ class AddWebFeedViewController: UITableViewController, AddContainerViewControlle } + @IBAction func showURLBuilder(_ sender: Any) { + let navController = UIStoryboard.add.instantiateViewController(withIdentifier: "SelectURLBuilderNavViewController") as! UINavigationController + navController.modalPresentationStyle = .currentContext + present(navController, animated: true) + } + func cancel() { userCancelled = true delegate?.processingDidCancel() diff --git a/iOS/Add/SelectComboTableViewCell.swift b/iOS/Add/SelectComboTableViewCell.swift new file mode 100644 index 000000000..890869bdd --- /dev/null +++ b/iOS/Add/SelectComboTableViewCell.swift @@ -0,0 +1,26 @@ +// +// SelectComboTableViewCell.swift +// NetNewsWire-iOS +// +// Created by Maurice Parker on 4/23/20. +// Copyright © 2020 Ranchero Software. All rights reserved. +// + +import UIKit + +class SelectComboTableViewCell: VibrantTableViewCell { + + @IBOutlet weak var icon: UIImageView! + @IBOutlet weak var label: UILabel! + + override func updateVibrancy(animated: Bool) { + super.updateVibrancy(animated: animated) + + let iconTintColor = isHighlighted || isSelected ? AppAssets.vibrantTextColor : UIColor.label + UIView.animate(withDuration: duration(animated: animated)) { + self.icon.tintColor = iconTintColor + } + updateLabelVibrancy(label, color: labelColor, animated: animated) + } + +} diff --git a/iOS/Add/SelectURLBuilderTableViewController.swift b/iOS/Add/SelectURLBuilderTableViewController.swift new file mode 100644 index 000000000..dd677f9dd --- /dev/null +++ b/iOS/Add/SelectURLBuilderTableViewController.swift @@ -0,0 +1,44 @@ +// +// SelectURLBuilderTableViewController.swift +// NetNewsWire-iOS +// +// Created by Maurice Parker on 4/23/20. +// Copyright © 2020 Ranchero Software. All rights reserved. +// + +import UIKit + +class SelectURLBuilderTableViewController: UITableViewController { + + override func viewDidLoad() { + super.viewDidLoad() + } + + // MARK: - Table view data source + + override func numberOfSections(in tableView: UITableView) -> Int { + return 1 + } + + override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return 1 + } + + override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + let cell = tableView.dequeueReusableCell(withIdentifier: "URLBuilderCell", for: indexPath) as! SelectComboTableViewCell + cell.icon?.image = AppAssets.extensionPointTwitter + cell.label?.text = NSLocalizedString("Twitter", comment: "Twitter") + return cell + } + + override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + dismiss(animated: true) + } + + // MARK: Actions + + @IBAction func cancel(_ sender: Any) { + dismiss(animated: true) + } + +}