mirror of
https://codeberg.org/comaps/comaps
synced 2026-01-04 11:53:47 +00:00
Organic Maps sources as of 02.04.2025 (fad26bbf22ac3da75e01e62aa01e5c8e11861005)
To expand with full Organic Maps and Maps.ME commits history run: git remote add om-historic [om-historic.git repo url] git fetch --tags om-historic git replace squashed-history historic-commits
This commit is contained in:
55
iphone/Maps/UI/PlacePage/PlacePageBuilder.swift
Normal file
55
iphone/Maps/UI/PlacePage/PlacePageBuilder.swift
Normal file
@@ -0,0 +1,55 @@
|
||||
@objc class PlacePageBuilder: NSObject {
|
||||
@objc static func build(for data: PlacePageData) -> PlacePageViewController {
|
||||
let storyboard = UIStoryboard.instance(.placePage)
|
||||
guard let viewController = storyboard.instantiateInitialViewController() as? PlacePageViewController else {
|
||||
fatalError()
|
||||
}
|
||||
viewController.isPreviewPlus = data.isPreviewPlus
|
||||
let interactor = PlacePageInteractor(viewController: viewController,
|
||||
data: data,
|
||||
mapViewController: MapViewController.shared()!)
|
||||
let layout: IPlacePageLayout
|
||||
switch data.objectType {
|
||||
case .POI, .bookmark:
|
||||
layout = PlacePageCommonLayout(interactor: interactor, storyboard: storyboard, data: data)
|
||||
case .track:
|
||||
layout = PlacePageTrackLayout(interactor: interactor, storyboard: storyboard, data: data)
|
||||
case .trackRecording:
|
||||
// TODO: Implement PlacePageTrackRecordingLayout
|
||||
fatalError("PlacePageTrackRecordingLayout is not implemented")
|
||||
@unknown default:
|
||||
fatalError()
|
||||
}
|
||||
let presenter = PlacePagePresenter(view: viewController, headerView: layout.headerViewController)
|
||||
viewController.setLayout(layout)
|
||||
viewController.interactor = interactor
|
||||
interactor.presenter = presenter
|
||||
layout.presenter = presenter
|
||||
return viewController
|
||||
}
|
||||
|
||||
@objc static func update(_ viewController: PlacePageViewController, with data: PlacePageData) {
|
||||
viewController.isPreviewPlus = data.isPreviewPlus
|
||||
let interactor = PlacePageInteractor(viewController: viewController,
|
||||
data: data,
|
||||
mapViewController: MapViewController.shared()!)
|
||||
let layout: IPlacePageLayout
|
||||
switch data.objectType {
|
||||
case .POI, .bookmark:
|
||||
layout = PlacePageCommonLayout(interactor: interactor, storyboard: viewController.storyboard!, data: data)
|
||||
case .track:
|
||||
layout = PlacePageTrackLayout(interactor: interactor, storyboard: viewController.storyboard!, data: data)
|
||||
case .trackRecording:
|
||||
// TODO: Implement PlacePageTrackRecordingLayout
|
||||
fatalError("PlacePageTrackRecordingLayout is not implemented")
|
||||
@unknown default:
|
||||
fatalError()
|
||||
}
|
||||
let presenter = PlacePagePresenter(view: viewController, headerView: layout.headerViewController)
|
||||
viewController.interactor = interactor
|
||||
interactor.presenter = presenter
|
||||
layout.presenter = presenter
|
||||
viewController.updateWithLayout(layout)
|
||||
viewController.updatePreviewOffset()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user