Compare commits

...

3 commits

Author SHA1 Message Date
Justin Mazzocchi ce6d55042d Debounce refresh when resuming from background 2022-11-27 22:59:52 -08:00
Justin Mazzocchi bdd63e2cfb Fix autolayout conflict 2022-11-27 22:49:32 -08:00
Justin Mazzocchi 0e46a0eb28 Check for initial appearance 2022-11-27 22:42:27 -08:00
2 changed files with 9 additions and 2 deletions

View file

@ -55,6 +55,7 @@ final class MainNavigationViewController: UITabBarController {
.store(in: &cancellables)
NotificationCenter.default.publisher(for: UIScene.willEnterForegroundNotification)
.debounce(for: .seconds(Self.refreshFromBackgroundDebounceInterval), scheduler: DispatchQueue.main)
.sink { [weak self] _ in self?.viewModel.refreshIdentity() }
.store(in: &cancellables)
}
@ -106,6 +107,7 @@ extension MainNavigationViewController: NavigationHandling {
private extension MainNavigationViewController {
static let secondaryNavigationViewTag = UUID().hashValue
static let newStatusViewTag = UUID().hashValue
static let refreshFromBackgroundDebounceInterval: TimeInterval = 30
func setupViewControllers(pending: Bool) {
var controllers: [UIViewController] = [

View file

@ -23,6 +23,7 @@ class TableViewController: UITableViewController {
private var shouldKeepPlayingVideoAfterDismissal = false
private var newItemsViewHiddenConstraint: NSLayoutConstraint?
private var newItemsViewVisibleConstraint: NSLayoutConstraint?
private var isPastInitialAppearance = false
private let insetBottom: Bool
private weak var parentNavigationController: UINavigationController?
@ -103,7 +104,11 @@ class TableViewController: UITableViewController {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
refreshIfAble()
if isPastInitialAppearance {
refreshIfAble()
}
isPastInitialAppearance = true
}
override func scrollViewDidScroll(_ scrollView: UIScrollView) {
@ -872,8 +877,8 @@ private extension TableViewController {
func hideNewItemsView() {
UIView.animate(withDuration: .zeroIfReduceMotion(.defaultAnimationDuration)) {
self.newItemsView.alpha = 0
self.newItemsViewHiddenConstraint?.isActive = true
self.newItemsViewVisibleConstraint?.isActive = false
self.newItemsViewHiddenConstraint?.isActive = true
self.view.layoutIfNeeded()
} completion: { _ in
self.reloadVisibleItems()