diff --git a/iOS/MasterFeed/MasterFeedViewController.swift b/iOS/MasterFeed/MasterFeedViewController.swift index d8f99402f..54cc05e97 100644 --- a/iOS/MasterFeed/MasterFeedViewController.swift +++ b/iOS/MasterFeed/MasterFeedViewController.swift @@ -496,7 +496,7 @@ class MasterFeedViewController: UITableViewController, UndoableCommandRunner { } else { setFilterButtonToInactive() } - refreshProgressView?.updateRefreshLabel() + refreshProgressView?.update() addNewItemButton?.isEnabled = !AccountManager.shared.activeAccounts.isEmpty } diff --git a/iOS/MasterFeed/RefreshProgressView.swift b/iOS/MasterFeed/RefreshProgressView.swift index 3e609088b..add535b76 100644 --- a/iOS/MasterFeed/RefreshProgressView.swift +++ b/iOS/MasterFeed/RefreshProgressView.swift @@ -17,42 +17,22 @@ class RefreshProgressView: UIView { override func awakeFromNib() { NotificationCenter.default.addObserver(self, selector: #selector(progressDidChange(_:)), name: .AccountRefreshProgressDidChange, object: nil) NotificationCenter.default.addObserver(self, selector: #selector(contentSizeCategoryDidChange(_:)), name: UIContentSizeCategory.didChangeNotification, object: nil) - + update() + scheduleUpdateRefreshLabel() + } + + func update() { if !AccountManager.shared.combinedRefreshProgress.isComplete { progressChanged(animated: false) } else { updateRefreshLabel() } - - scheduleUpdateRefreshLabel() } override func didMoveToSuperview() { progressChanged(animated: false) } - func updateRefreshLabel() { - if let accountLastArticleFetchEndTime = AccountManager.shared.lastArticleFetchEndTime { - - if Date() > accountLastArticleFetchEndTime.addingTimeInterval(60) { - - let relativeDateTimeFormatter = RelativeDateTimeFormatter() - relativeDateTimeFormatter.dateTimeStyle = .named - let refreshed = relativeDateTimeFormatter.localizedString(for: accountLastArticleFetchEndTime, relativeTo: Date()) - let localizedRefreshText = NSLocalizedString("Updated %@", comment: "Updated") - let refreshText = NSString.localizedStringWithFormat(localizedRefreshText as NSString, refreshed) as String - label.text = refreshText - - } else { - label.text = NSLocalizedString("Updated Just Now", comment: "Updated Just Now") - } - - } else { - label.text = "" - } - - } - @objc func progressDidChange(_ note: Notification) { progressChanged(animated: true) } @@ -109,6 +89,28 @@ private extension RefreshProgressView { } } + func updateRefreshLabel() { + if let accountLastArticleFetchEndTime = AccountManager.shared.lastArticleFetchEndTime { + + if Date() > accountLastArticleFetchEndTime.addingTimeInterval(60) { + + let relativeDateTimeFormatter = RelativeDateTimeFormatter() + relativeDateTimeFormatter.dateTimeStyle = .named + let refreshed = relativeDateTimeFormatter.localizedString(for: accountLastArticleFetchEndTime, relativeTo: Date()) + let localizedRefreshText = NSLocalizedString("Updated %@", comment: "Updated") + let refreshText = NSString.localizedStringWithFormat(localizedRefreshText as NSString, refreshed) as String + label.text = refreshText + + } else { + label.text = NSLocalizedString("Updated Just Now", comment: "Updated Just Now") + } + + } else { + label.text = "" + } + + } + func scheduleUpdateRefreshLabel() { DispatchQueue.main.asyncAfter(deadline: .now() + 60) { [weak self] in self?.updateRefreshLabel() diff --git a/iOS/MasterTimeline/MasterTimelineViewController.swift b/iOS/MasterTimeline/MasterTimelineViewController.swift index 11fd51a17..0d5573110 100644 --- a/iOS/MasterTimeline/MasterTimelineViewController.swift +++ b/iOS/MasterTimeline/MasterTimelineViewController.swift @@ -190,7 +190,7 @@ class MasterTimelineViewController: UITableViewController, UndoableCommandRunner } func updateUI() { - refreshProgressView?.updateRefreshLabel() + refreshProgressView?.update() updateTitleUnreadCount() updateToolbar() }