Fix for removing audio records

This commit is contained in:
Selim Mustafaev 2020-09-30 22:31:46 +03:00
parent c46d113832
commit e99a857083
4 changed files with 17 additions and 19 deletions

View File

@ -24,7 +24,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
let config = Realm.Configuration( let config = Realm.Configuration(
schemaVersion: 17, schemaVersion: 18,
migrationBlock: { migration, oldSchemaVersion in migrationBlock: { migration, oldSchemaVersion in
if oldSchemaVersion <= 3 { if oldSchemaVersion <= 3 {
var numbers: [String] = [] var numbers: [String] = []

View File

@ -44,15 +44,6 @@ class RecordsController: UIViewController, UITableViewDelegate {
return dataSourse.sectionModels[index].header return dataSourse.sectionModels[index].header
} }
self.tableView.rx
.modelDeleted(AudioRecord.self)
.subscribe(onNext: { record in
try? realm.write {
realm.delete(record)
}
})
.disposed(by: self.bag)
DispatchQueue.main.async { DispatchQueue.main.async {
Observable.collection(from: realm.objects(AudioRecord.self) Observable.collection(from: realm.objects(AudioRecord.self)
.sorted(byKeyPath: "addedDate", ascending: false)) .sorted(byKeyPath: "addedDate", ascending: false))
@ -270,7 +261,15 @@ class RecordsController: UIViewController, UITableViewDelegate {
action.image = UIImage(systemName: "ellipsis" /*"square.and.arrow.up"*/) action.image = UIImage(systemName: "ellipsis" /*"square.and.arrow.up"*/)
let delete = UIContextualAction(style: .destructive, title: "Delete") { action, view, completion in let delete = UIContextualAction(style: .destructive, title: "Delete") { action, view, completion in
self.tableView.dataSource?.tableView!(self.tableView, commit: .delete, forRowAt: indexPath) do {
if let realm = record.realm {
try realm.write {
realm.delete(record)
}
}
} catch {
print(error)
}
completion(true) completion(true)
} }
delete.image = UIImage(systemName: "trash") delete.image = UIImage(systemName: "trash")

View File

@ -7,7 +7,7 @@ class AudioRecord: Object, IdentifiableType {
@objc dynamic var path: String = "" @objc dynamic var path: String = ""
@objc dynamic var number: String? @objc dynamic var number: String?
@objc dynamic var rawText: String = "" @objc dynamic var rawText: String = ""
@objc private dynamic var addedDate: TimeInterval = Date().timeIntervalSince1970 @objc private dynamic var addedDate: TimeInterval = 0
@objc dynamic var duration: TimeInterval = 0 @objc dynamic var duration: TimeInterval = 0
@objc dynamic var event: VehicleEvent? @objc dynamic var event: VehicleEvent?
@ -25,11 +25,14 @@ class AudioRecord: Object, IdentifiableType {
self.duration = duration self.duration = duration
self.rawText = raw self.rawText = raw
self.event = event self.event = event
self.addedDate = Date().timeIntervalSince1970
} }
required init() { required init() {
super.init() }
self.identifier = self.addedDate
override static func primaryKey() -> String? {
return "path"
} }
override class func ignoredProperties() -> [String] { override class func ignoredProperties() -> [String] {
@ -39,6 +42,7 @@ class AudioRecord: Object, IdentifiableType {
func getAddedDate() -> TimeInterval { func getAddedDate() -> TimeInterval {
if self.identifier == 0 { if self.identifier == 0 {
self.identifier = self.addedDate self.identifier = self.addedDate
print("getAddedDate: \(self.identifier)")
} }
return self.addedDate return self.addedDate

View File

@ -87,8 +87,6 @@ class Vehicle: Object, Decodable, IdentifiableType {
let ownershipPeriods = List<VehicleOwnershipPeriod>() let ownershipPeriods = List<VehicleOwnershipPeriod>()
let events = List<VehicleEvent>() let events = List<VehicleEvent>()
//var identity: String { number }
var identifier: String = "" var identifier: String = ""
var identity: String { var identity: String {
if self.identifier.isEmpty { if self.identifier.isEmpty {
@ -150,18 +148,15 @@ class Vehicle: Object, Decodable, IdentifiableType {
self.events.append(objectsIn: eventsArray) self.events.append(objectsIn: eventsArray)
} }
print("Init from decoder - \(self.number)")
self.identifier = self.number self.identifier = self.number
} }
required init() { required init() {
super.init() super.init()
print("Init - \(self.number)")
self.identifier = self.number self.identifier = self.number
} }
init(_ number: String) { init(_ number: String) {
print("Init with number - \(number)")
self.identifier = number self.identifier = number
self.number = number self.number = number
self.addedDate = Date().timeIntervalSince1970*1000 self.addedDate = Date().timeIntervalSince1970*1000