From 6d5c06272e2c20b232f45398ce523619a2ab9894 Mon Sep 17 00:00:00 2001 From: Kiryl Kaveryn Date: Fri, 10 Jan 2025 15:15:57 +0400 Subject: [PATCH] [ios] fix bm/ track/track recording updates handling on the PP Signed-off-by: Kiryl Kaveryn --- .../UI/PlacePage/PlacePageInteractor.swift | 33 +++++++++++++++---- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/iphone/Maps/UI/PlacePage/PlacePageInteractor.swift b/iphone/Maps/UI/PlacePage/PlacePageInteractor.swift index a685ff2d91..28a1ebb2a1 100644 --- a/iphone/Maps/UI/PlacePage/PlacePageInteractor.swift +++ b/iphone/Maps/UI/PlacePage/PlacePageInteractor.swift @@ -24,14 +24,29 @@ class PlacePageInteractor: NSObject { } private func updatePlacePageIfNeeded() { - let isBookmark = placePageData.bookmarkData != nil && bookmarksManager.hasBookmark(placePageData.bookmarkData!.bookmarkId) - let isTrack = placePageData.trackData != nil/* && bookmarksManager.hasTrack(placePageData.trackData!.trackId)*/ - guard isBookmark || isTrack else { - presenter?.closeAnimated() - return + func updatePlacePage() { + FrameworkHelper.updatePlacePageData() + placePageData.updateBookmarkStatus() + } + + switch placePageData.objectType { + case .POI, .trackRecording: + break + case .bookmark: + guard bookmarksManager.hasBookmark(placePageData.bookmarkData!.bookmarkId) else { + presenter?.closeAnimated() + return + } + updatePlacePage() + case .track: + guard bookmarksManager.hasTrack(placePageData.trackData!.trackId) else { + presenter?.closeAnimated() + return + } + updatePlacePage() + @unknown default: + fatalError("Unknown object type") } - FrameworkHelper.updatePlacePageData() - placePageData.updateBookmarkStatus() } private func addToBookmarksManagerObserverList() { @@ -311,6 +326,10 @@ extension PlacePageInteractor: PlacePageHeaderViewControllerDelegate { shareViewController.present(inParentViewController: mapViewController, anchorView: sourceView) case .track: presenter?.showShareTrackMenu() + case .trackRecording: + let currentLocation = LocationManager.lastLocation()?.coordinate ?? placePageData.locationCoordinate + let shareMyPositionViewController = ActivityViewController.share(forMyPosition: currentLocation) + shareMyPositionViewController.present(inParentViewController: mapViewController, anchorView: sourceView) default: fatalError() }