From cbf37d4ee0f0dbd45517bcdd8289636daa51ecd0 Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Mon, 21 Oct 2019 17:19:22 -0500 Subject: [PATCH] Change number of lines setting to use a stepper --- NetNewsWire.xcodeproj/project.pbxproj | 4 - iOS/Settings/Settings.storyboard | 78 +++++++------------ iOS/Settings/SettingsViewController.swift | 24 ++++-- .../TimelineNumberOfLinesViewController.swift | 41 ---------- 4 files changed, 44 insertions(+), 103 deletions(-) delete mode 100644 iOS/Settings/TimelineNumberOfLinesViewController.swift diff --git a/NetNewsWire.xcodeproj/project.pbxproj b/NetNewsWire.xcodeproj/project.pbxproj index a25414c57..ee549188e 100644 --- a/NetNewsWire.xcodeproj/project.pbxproj +++ b/NetNewsWire.xcodeproj/project.pbxproj @@ -111,7 +111,6 @@ 51A1699B235E10D700EB091F /* DetailAccountViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51A16991235E10D600EB091F /* DetailAccountViewController.swift */; }; 51A1699C235E10D700EB091F /* AddAccountViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51A16992235E10D600EB091F /* AddAccountViewController.swift */; }; 51A1699D235E10D700EB091F /* SettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51A16993235E10D600EB091F /* SettingsViewController.swift */; }; - 51A1699E235E10D700EB091F /* TimelineNumberOfLinesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51A16994235E10D600EB091F /* TimelineNumberOfLinesViewController.swift */; }; 51A1699F235E10D700EB091F /* AboutViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51A16995235E10D600EB091F /* AboutViewController.swift */; }; 51A169A0235E10D700EB091F /* FeedbinAccountViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51A16996235E10D700EB091F /* FeedbinAccountViewController.swift */; }; 51AF460E232488C6001742EF /* Account-Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51AF460D232488C6001742EF /* Account-Extensions.swift */; }; @@ -792,7 +791,6 @@ 51A16991235E10D600EB091F /* DetailAccountViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DetailAccountViewController.swift; sourceTree = ""; }; 51A16992235E10D600EB091F /* AddAccountViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddAccountViewController.swift; sourceTree = ""; }; 51A16993235E10D600EB091F /* SettingsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsViewController.swift; sourceTree = ""; }; - 51A16994235E10D600EB091F /* TimelineNumberOfLinesViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TimelineNumberOfLinesViewController.swift; sourceTree = ""; }; 51A16995235E10D600EB091F /* AboutViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AboutViewController.swift; sourceTree = ""; }; 51A16996235E10D700EB091F /* FeedbinAccountViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FeedbinAccountViewController.swift; sourceTree = ""; }; 51AF460D232488C6001742EF /* Account-Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Account-Extensions.swift"; sourceTree = ""; }; @@ -1276,7 +1274,6 @@ 51A1698D235E10D600EB091F /* RefreshIntervalViewController.swift */, 51A1698E235E10D600EB091F /* SettingsTableViewCell.xib */, 51A16993235E10D600EB091F /* SettingsViewController.swift */, - 51A16994235E10D600EB091F /* TimelineNumberOfLinesViewController.swift */, ); path = Settings; sourceTree = ""; @@ -2972,7 +2969,6 @@ 51C45259226508D300C03939 /* AppDefaults.swift in Sources */, 511D4419231FC02D00FB1562 /* KeyboardManager.swift in Sources */, 51A1699D235E10D700EB091F /* SettingsViewController.swift in Sources */, - 51A1699E235E10D700EB091F /* TimelineNumberOfLinesViewController.swift in Sources */, 51C45293226509C800C03939 /* StarredFeedDelegate.swift in Sources */, 51D6A5BC23199C85001C27D8 /* MasterTimelineDataSource.swift in Sources */, 51934CCB230F599B006127BE /* ThemedNavigationController.swift in Sources */, diff --git a/iOS/Settings/Settings.storyboard b/iOS/Settings/Settings.storyboard index 2c71e6cc9..8bc23dfb0 100644 --- a/iOS/Settings/Settings.storyboard +++ b/iOS/Settings/Settings.storyboard @@ -53,7 +53,7 @@ - + @@ -63,7 +63,7 @@ - + @@ -83,44 +83,50 @@ - + - - + - + + - + - - + + - - + + + + + + + + @@ -308,8 +314,9 @@ + + - @@ -779,35 +786,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/iOS/Settings/SettingsViewController.swift b/iOS/Settings/SettingsViewController.swift index 857251d37..6e0f3ae05 100644 --- a/iOS/Settings/SettingsViewController.swift +++ b/iOS/Settings/SettingsViewController.swift @@ -16,7 +16,8 @@ class SettingsViewController: UITableViewController { @IBOutlet weak var refreshIntervalLabel: UILabel! @IBOutlet weak var timelineSortOrderSwitch: UISwitch! @IBOutlet weak var groupByFeedSwitch: UISwitch! - @IBOutlet weak var timelineNumberOfLinesLabel: UILabel! + @IBOutlet weak var numberOfTextLinesLabel: UILabel! + @IBOutlet weak var numberOfTextLinesSteppper: UIStepper! weak var presentingParentController: UIViewController? @@ -46,8 +47,9 @@ class SettingsViewController: UITableViewController { refreshIntervalLabel.text = AppDefaults.refreshInterval.description() - let numberOfLinesText = NSLocalizedString(" lines", comment: "Lines") - timelineNumberOfLinesLabel.text = "\(AppDefaults.timelineNumberOfLines)" + numberOfLinesText + let numberOfTextLines = AppDefaults.timelineNumberOfLines + numberOfTextLinesSteppper.value = Double(numberOfTextLines) + updateNumberOfTextLinesLabel(value: numberOfTextLines) let buildLabel = NonIntrinsicLabel(frame: CGRect(x: 20.0, y: 0.0, width: 0.0, height: 0.0)) buildLabel.font = UIFont.systemFont(ofSize: 11.0) @@ -115,11 +117,6 @@ class SettingsViewController: UITableViewController { controller.account = sortedAccounts[indexPath.row] self.navigationController?.pushViewController(controller, animated: true) } - case 1: - if indexPath.row == 2 { - let timeline = UIStoryboard.settings.instantiateController(ofType: TimelineNumberOfLinesViewController.self) - self.navigationController?.pushViewController(timeline, animated: true) - } case 2: switch indexPath.row { case 0: @@ -207,6 +204,12 @@ class SettingsViewController: UITableViewController { } } + @IBAction func stepNumberOfTextLines(_ sender: UIStepper) { + let numberOfLines = Int(sender.value) + AppDefaults.timelineNumberOfLines = numberOfLines + updateNumberOfTextLinesLabel(value: numberOfLines) + } + @objc func contentSizeCategoryDidChange() { tableView.reloadData() } @@ -231,6 +234,11 @@ extension SettingsViewController: UIDocumentPickerDelegate { private extension SettingsViewController { + func updateNumberOfTextLinesLabel(value: Int) { + let localizedText = NSLocalizedString("Number of Text Lines: %d", comment: "Number of Text Lines") + numberOfTextLinesLabel.text = NSString.localizedStringWithFormat(localizedText as NSString, value) as String + } + func addFeed() { let appNewsURLString = "https://nnw.ranchero.com/feed.json" diff --git a/iOS/Settings/TimelineNumberOfLinesViewController.swift b/iOS/Settings/TimelineNumberOfLinesViewController.swift deleted file mode 100644 index 5c0453b2e..000000000 --- a/iOS/Settings/TimelineNumberOfLinesViewController.swift +++ /dev/null @@ -1,41 +0,0 @@ -// -// TimelineNumberOfLinesViewController.swift -// NetNewsWire-iOS -// -// Created by Maurice Parker on 4/29/19. -// Copyright © 2019 Ranchero Software. All rights reserved. -// - -import UIKit - -class TimelineNumberOfLinesViewController: UITableViewController { - - override func numberOfSections(in tableView: UITableView) -> Int { - return 1 - } - - override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { - return 5 - } - - override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { - let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) - cell.textLabel?.adjustsFontForContentSizeCategory = true - cell.textLabel?.text = "\(2 + indexPath.row)" + NSLocalizedString(" lines", comment: "Lines") - - let numberOfLines = AppDefaults.timelineNumberOfLines - if indexPath.row + 2 == numberOfLines { - cell.accessoryType = .checkmark - } else { - cell.accessoryType = .none - } - - return cell - } - - override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { - AppDefaults.timelineNumberOfLines = indexPath.row + 2 - self.navigationController?.popViewController(animated: true) - } - -}