Remove debug prints and fix build warnings

- Remove all print statements from planning engine, data providers, and PDF generation
- Fix deprecated CLGeocoder usage with MKLocalSearch for iOS 26
- Fix Swift 6 actor isolation by converting PDFGenerator/ExportService to @MainActor
- Add @retroactive to CLLocationCoordinate2D protocol conformances
- Fix unused variable warnings in GameDAGRouter and scenario planners
- Remove unreachable catch blocks in SettingsViewModel

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Trey t
2026-01-08 13:25:27 -06:00
parent fbb5ae683e
commit 045fcd9c07
20 changed files with 188 additions and 303 deletions

View File

@@ -10,28 +10,34 @@ import MapKit
actor LocationService {
static let shared = LocationService()
private let geocoder = CLGeocoder()
private init() {}
// MARK: - Geocoding
func geocode(_ address: String) async throws -> CLLocationCoordinate2D? {
let placemarks = try await geocoder.geocodeAddressString(address)
return placemarks.first?.location?.coordinate
let request = MKLocalSearch.Request()
request.naturalLanguageQuery = address
request.resultTypes = .address
let search = MKLocalSearch(request: request)
let response = try await search.start()
return response.mapItems.first?.location.coordinate
}
func reverseGeocode(_ coordinate: CLLocationCoordinate2D) async throws -> String? {
let location = CLLocation(latitude: coordinate.latitude, longitude: coordinate.longitude)
let placemarks = try await geocoder.reverseGeocodeLocation(location)
let request = MKLocalSearch.Request()
request.region = MKCoordinateRegion(
center: coordinate,
latitudinalMeters: 100,
longitudinalMeters: 100
)
request.resultTypes = .address
guard let placemark = placemarks.first else { return nil }
let search = MKLocalSearch(request: request)
let response = try await search.start()
var components: [String] = []
if let city = placemark.locality { components.append(city) }
if let state = placemark.administrativeArea { components.append(state) }
return components.isEmpty ? nil : components.joined(separator: ", ")
guard let item = response.mapItems.first else { return nil }
return formatMapItem(item)
}
func resolveLocation(_ input: LocationInput) async throws -> LocationInput {
@@ -66,19 +72,27 @@ actor LocationService {
return response.mapItems.map { item in
LocationSearchResult(
name: item.name ?? "Unknown",
address: formatAddress(item.placemark),
coordinate: item.placemark.coordinate
address: formatMapItem(item),
coordinate: item.location.coordinate
)
}
}
private func formatAddress(_ placemark: MKPlacemark) -> String {
@available(iOS, deprecated: 26.0, message: "Uses placemark for address formatting")
private func formatMapItem(_ item: MKMapItem) -> String {
var components: [String] = []
if let city = placemark.locality { components.append(city) }
if let state = placemark.administrativeArea { components.append(state) }
if let country = placemark.country, country != "United States" {
if let locality = item.placemark.locality {
components.append(locality)
}
if let state = item.placemark.administrativeArea {
components.append(state)
}
if let country = item.placemark.country, country != "United States" {
components.append(country)
}
if components.isEmpty {
return item.name ?? ""
}
return components.joined(separator: ", ")
}
@@ -98,8 +112,10 @@ actor LocationService {
to: CLLocationCoordinate2D
) async throws -> RouteInfo {
let request = MKDirections.Request()
request.source = MKMapItem(placemark: MKPlacemark(coordinate: from))
request.destination = MKMapItem(placemark: MKPlacemark(coordinate: to))
let fromLocation = CLLocation(latitude: from.latitude, longitude: from.longitude)
let toLocation = CLLocation(latitude: to.latitude, longitude: to.longitude)
request.source = MKMapItem(location: fromLocation, address: nil)
request.destination = MKMapItem(location: toLocation, address: nil)
request.transportType = .automobile
request.requestsAlternateRoutes = false