[ios] fix bm/ track/track recording updates handling on the PP

Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
This commit is contained in:
Kiryl Kaveryn 2025-01-10 15:15:57 +04:00
parent 5ba9b4dd30
commit 6d5c06272e

View file

@ -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()
}