wip
This commit is contained in:
parent
b309574c78
commit
f679c7d357
10
ConversationsClassic/Helpers/UIApplication+Extensions.swift
Normal file
10
ConversationsClassic/Helpers/UIApplication+Extensions.swift
Normal file
|
@ -0,0 +1,10 @@
|
|||
import UIKit
|
||||
|
||||
func openAppSettings() {
|
||||
if
|
||||
let appSettingsUrl = URL(string: UIApplication.openSettingsURLString),
|
||||
UIApplication.shared.canOpenURL(appSettingsUrl)
|
||||
{
|
||||
UIApplication.shared.open(appSettingsUrl, completionHandler: nil)
|
||||
}
|
||||
}
|
|
@ -9,6 +9,7 @@ struct AttachmentLocationPickerView: View {
|
|||
center: CLLocationCoordinate2D(latitude: 34.011_286, longitude: -116.166_868),
|
||||
span: MKCoordinateSpan(latitudeDelta: 0.2, longitudeDelta: 0.2)
|
||||
)
|
||||
@State private var showingAlert = false
|
||||
|
||||
var body: some View {
|
||||
MapView(coordinateRegion: $region)
|
||||
|
@ -20,14 +21,30 @@ struct AttachmentLocationPickerView: View {
|
|||
region.center = newLocation.coordinate
|
||||
}
|
||||
}
|
||||
.onChange(of: locationManager.authorizationStatus) { newStatus in
|
||||
if newStatus == .denied {
|
||||
showingAlert = true
|
||||
}
|
||||
}
|
||||
.alert(isPresented: $showingAlert) {
|
||||
Alert(
|
||||
title: Text("Location Permission Denied"),
|
||||
message: Text("Please enable location permissions in settings."),
|
||||
dismissButton: .default(Text("OK")) {
|
||||
openAppSettings()
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class LocationManager: NSObject, ObservableObject, CLLocationManagerDelegate {
|
||||
private let locationManager = CLLocationManager()
|
||||
@Published var lastLocation: CLLocation?
|
||||
@Published var authorizationStatus: CLAuthorizationStatus
|
||||
|
||||
override init() {
|
||||
authorizationStatus = locationManager.authorizationStatus
|
||||
super.init()
|
||||
locationManager.delegate = self
|
||||
}
|
||||
|
@ -40,6 +57,10 @@ class LocationManager: NSObject, ObservableObject, CLLocationManagerDelegate {
|
|||
func locationManager(_: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
|
||||
lastLocation = locations.first
|
||||
}
|
||||
|
||||
func locationManager(_: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) {
|
||||
authorizationStatus = status
|
||||
}
|
||||
}
|
||||
|
||||
struct MapView: UIViewRepresentable {
|
||||
|
|
|
@ -229,15 +229,6 @@ struct AttachmentMediaPickerView: View {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
func openAppSettings() {
|
||||
if
|
||||
let appSettingsUrl = URL(string: UIApplication.openSettingsURLString),
|
||||
UIApplication.shared.canOpenURL(appSettingsUrl)
|
||||
{
|
||||
UIApplication.shared.open(appSettingsUrl, completionHandler: nil)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private struct ThumbnailView: Identifiable, View {
|
||||
|
|
Loading…
Reference in a new issue