From c5a84bb759c82603fa1ca84115e77ee7484eb896 Mon Sep 17 00:00:00 2001 From: Selim Mustafaev Date: Tue, 13 Apr 2021 19:06:09 +0300 Subject: [PATCH 1/2] Fixed crash on updating search --- .../xcshareddata/swiftpm/Package.resolved | 20 +++++++++---------- AutoCat/Controllers/SearchController.swift | 14 +++++++++---- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/AutoCat.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/AutoCat.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 4a8dc44..099e37a 100644 --- a/AutoCat.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/AutoCat.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -33,8 +33,8 @@ "repositoryURL": "https://github.com/onevcat/Kingfisher", "state": { "branch": null, - "revision": "2a6d1135af3915547c4b08c3b154a05e6f1075a3", - "version": "5.15.5" + "revision": "2a10bf41da75599a9f8e872dbd44fe0155a2e00c", + "version": "5.15.8" } }, { @@ -51,8 +51,8 @@ "repositoryURL": "https://github.com/realm/realm-cocoa", "state": { "branch": null, - "revision": "2dc2d259095051b997b76a07e859822661105303", - "version": "5.4.7" + "revision": "7ec5df0a700ef76ad930dcedb9c63c1b354979e1", + "version": "5.5.1" } }, { @@ -60,8 +60,8 @@ "repositoryURL": "https://github.com/realm/realm-core", "state": { "branch": null, - "revision": "2df510904ad04287926b287b4e89b786de2808c8", - "version": "6.1.3" + "revision": "66d79b3c5213fb14d491c1b22193077b488d49a6", + "version": "6.2.4" } }, { @@ -78,8 +78,8 @@ "repositoryURL": "https://github.com/ReactiveX/RxSwift.git", "state": { "branch": null, - "revision": "002d325b0bdee94e7882e1114af5ff4fe1e96afa", - "version": "5.1.1" + "revision": "254617dd7fae0c45319ba5fbea435bf4d0e15b5d", + "version": "5.1.2" } }, { @@ -87,8 +87,8 @@ "repositoryURL": "https://github.com/malcommac/SwiftDate.git", "state": { "branch": null, - "revision": "a25913b19833860b61fac161a706e44834f03c47", - "version": "6.2.0" + "revision": "6190d0cefff3013e77ed567e6b074f324e5c5bf5", + "version": "6.3.1" } } ] diff --git a/AutoCat/Controllers/SearchController.swift b/AutoCat/Controllers/SearchController.swift index d42cc56..295c1fa 100644 --- a/AutoCat/Controllers/SearchController.swift +++ b/AutoCat/Controllers/SearchController.swift @@ -158,15 +158,21 @@ class SearchController: UIViewController, UISearchResultsUpdating, UITableViewDe HUD.show(.progress) Api.checkVehicle(by: vehicle.getNumber(), force: true).observeOn(MainScheduler.instance).subscribe { newVehicle in HUD.hide() - if let realm = try? Realm() { + do { + let realm = try Realm() if realm.object(ofType: Vehicle.self, forPrimaryKey: vehicle.getNumber()) != nil { - try? realm.write { + try realm.write { realm.add(newVehicle, update: .all) } } + } catch { + print(error) + self.show(error: error) } - self.datasource.set(item: newVehicle, at: indexPath) - self.updateDetailController(with: newVehicle) + + let frozenVehicle = newVehicle.freeze() + self.datasource.set(item: frozenVehicle, at: indexPath) + self.updateDetailController(with: frozenVehicle) } onError: { err in HUD.show(error: err) }.disposed(by: self.bag) From 2b8e1cdcaa0c1d06977e364a3cc0b224abc6ee22 Mon Sep 17 00:00:00 2001 From: Selim Mustafaev Date: Tue, 13 Apr 2021 19:19:37 +0300 Subject: [PATCH 2/2] Hide spinner after deleting an event --- AutoCat/Controllers/Location/EventsController.swift | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/AutoCat/Controllers/Location/EventsController.swift b/AutoCat/Controllers/Location/EventsController.swift index b203a09..e11f170 100644 --- a/AutoCat/Controllers/Location/EventsController.swift +++ b/AutoCat/Controllers/Location/EventsController.swift @@ -199,7 +199,8 @@ class EventsController: UIViewController, UITableViewDataSource, UITableViewDele if let eventId = event.id { HUD.show(.progress) Api.remove(event: eventId).observeOn(MainScheduler.instance).subscribe(onSuccess: { vehicle in - completion?(self.update(vehicle: vehicle)) + let result = self.update(vehicle: vehicle) + completion?(result) }, onError: { error in completion?(false) HUD.show(error: error)