From 97a0544a55636ffc4a696d041a8c3c9063f02835 Mon Sep 17 00:00:00 2001 From: Kiryl Kaveryn Date: Sun, 9 Jun 2024 13:50:04 +0400 Subject: [PATCH] [ios] fix screen freezing when the PP relaods on viewWillAppear Signed-off-by: Kiryl Kaveryn --- .../PlacePage/Components/PlacePageInfoViewController.swift | 6 ++++++ iphone/Maps/UI/PlacePage/PlacePageInteractor.swift | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/iphone/Maps/UI/PlacePage/Components/PlacePageInfoViewController.swift b/iphone/Maps/UI/PlacePage/Components/PlacePageInfoViewController.swift index 2022b96b62..da48a9257c 100644 --- a/iphone/Maps/UI/PlacePage/Components/PlacePageInfoViewController.swift +++ b/iphone/Maps/UI/PlacePage/Components/PlacePageInfoViewController.swift @@ -114,7 +114,13 @@ class PlacePageInfoViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + delegate?.viewWillAppear() + } + // MARK: private + private func setupViews() { if let openingHours = placePageInfoData.openingHours { openingHoursView.openingHours = openingHours addToStack(openingHoursView) diff --git a/iphone/Maps/UI/PlacePage/PlacePageInteractor.swift b/iphone/Maps/UI/PlacePage/PlacePageInteractor.swift index e197de4772..2c99abed12 100644 --- a/iphone/Maps/UI/PlacePage/PlacePageInteractor.swift +++ b/iphone/Maps/UI/PlacePage/PlacePageInteractor.swift @@ -8,6 +8,7 @@ class PlacePageInteractor: NSObject { weak var mapViewController: MapViewController? private let bookmarksManager = BookmarksManager.shared() private var placePageData: PlacePageData + private var viewWillAppearIsCalledForTheFirstTime = false init(viewController: UIViewController, data: PlacePageData, mapViewController: MapViewController) { self.placePageData = data @@ -50,6 +51,9 @@ extension PlacePageInteractor: PlacePageInteractorProtocol { extension PlacePageInteractor: PlacePageInfoViewControllerDelegate { func viewWillAppear() { + // Skip data reloading on the first appearance, to avoid unnecessary updates. + guard viewWillAppearIsCalledForTheFirstTime else { return } + viewWillAppearIsCalledForTheFirstTime = true updateBookmarkIfNeeded() }