Fix for adding events

This commit is contained in:
Selim Mustafaev 2020-09-21 16:36:15 +03:00
parent e63f3ed13d
commit 65629cbf90
3 changed files with 31 additions and 12 deletions

View File

@ -767,7 +767,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_ENTITLEMENTS = AutoCat/AutoCat.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 37;
CURRENT_PROJECT_VERSION = 38;
DEVELOPMENT_TEAM = 46DTTB8X4S;
INFOPLIST_FILE = AutoCat/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
@ -789,7 +789,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_ENTITLEMENTS = AutoCat/AutoCat.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 37;
CURRENT_PROJECT_VERSION = 38;
DEVELOPMENT_TEAM = 46DTTB8X4S;
INFOPLIST_FILE = AutoCat/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;

View File

@ -37,7 +37,7 @@ enum EventsMode {
case list
}
class EventsController: UIViewController, UITableViewDataSource, UITableViewDelegate {
class EventsController: UIViewController, UITableViewDataSource, UITableViewDelegate, MKMapViewDelegate {
@IBOutlet weak var map: MKMapView!
@IBOutlet weak var tableView: UITableView!
@ -49,10 +49,6 @@ class EventsController: UIViewController, UITableViewDataSource, UITableViewDele
public var vehicle: Vehicle? {
didSet {
if let vehicle = self.vehicle {
self.pins = vehicle.events.map(EventPin.init(event:))
}
if self.isViewLoaded {
self.updateInterface()
}
@ -73,14 +69,24 @@ class EventsController: UIViewController, UITableViewDataSource, UITableViewDele
self.modeButton = UIBarButtonItem(image: UIImage(systemName: "list.bullet"), style: .plain, target: self, action: #selector(switchMode(_:)))
self.addButton = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(addEvent(_:)))
self.navigationItem.rightBarButtonItems = [self.modeButton, self.addButton]
self.map.delegate = self
self.updateInterface()
}
func updateInterface() {
self.map.removeAnnotations(self.map.annotations)
self.map.addAnnotations(self.pins)
self.map.centerOnPins()
if let vehicle = self.vehicle {
self.pins = vehicle.events.map(EventPin.init(event:))
}
if !self.pins.isEmpty {
self.map.removeAnnotations(self.map.annotations)
self.map.addAnnotations(self.pins)
self.map.centerOnPins()
} else {
self.map.showsUserLocation = true
}
self.tableView.reloadData()
}
@ -220,8 +226,11 @@ class EventsController: UIViewController, UITableViewDataSource, UITableViewDele
try realm.write {
realm.add(vehicle, update: .all)
}
} else {
self.vehicle?.events.removeAll()
self.vehicle?.events.append(objectsIn: vehicle.events)
}
self.vehicle = vehicle
self.updateInterface()
IHProgressHUD.dismiss()
return true
} catch {
@ -230,4 +239,12 @@ class EventsController: UIViewController, UITableViewDataSource, UITableViewDele
return false
}
}
// MARK: - MKMapViewDelegate
public func mapView(_ mapView: MKMapView, didUpdate userLocation: MKUserLocation) {
let region = MKCoordinateRegion(center: userLocation.coordinate, latitudinalMeters: 1000, longitudinalMeters: 1000)
self.map.setRegion(region, animated: true)
self.map.showsUserLocation = false
}
}

View File

@ -135,6 +135,8 @@ class ReportController: UIViewController, UICollectionViewDataSource, UICollecti
default:
break
}
self.collection.reloadData()
}
// MARK: - UICollectionViewDataSource
@ -276,7 +278,7 @@ class ReportController: UIViewController, UICollectionViewDataSource, UICollecti
controller.owners = self.vehicle?.ownershipPeriods.toArray() ?? []
self.navigationController?.pushViewController(controller, animated: true)
}
else if let events = self.vehicle?.events, indexPath.row == ReportGeneralSection.events.rawValue && events.count > 0 {
else if indexPath.row == ReportGeneralSection.events.rawValue {
let controller = sb.instantiateViewController(identifier: "EventsController") as EventsController
controller.vehicle = self.vehicle
self.navigationController?.pushViewController(controller, animated: true)