Merge branch 'master' of gitlab.com:peter-iakovlev/telegram-ios

This commit is contained in:
Ilya Laktyushin 2020-04-03 18:38:25 +04:00
commit 822eaf23b0

View File

@ -1,12 +1,17 @@
import Foundation
final class AccountManagerSharedDataTable: Table {
private var values:[ValueBoxKey : PreferencesEntry] = [:]
static func tableSpec(_ id: Int32) -> ValueBoxTable {
return ValueBoxTable(id: id, keyType: .binary, compactValuesOnCreation: false)
}
func get(key: ValueBoxKey) -> PreferencesEntry? {
if let value = self.valueBox.get(self.table, key: key), let object = PostboxDecoder(buffer: value).decodeRootObject() as? PreferencesEntry {
if let object = self.values[key] {
return object
} else if let value = self.valueBox.get(self.table, key: key), let object = PostboxDecoder(buffer: value).decodeRootObject() as? PreferencesEntry {
return object
} else {
return nil
@ -22,9 +27,13 @@ final class AccountManagerSharedDataTable: Table {
encoder.encodeRootObject(value)
self.valueBox.set(self.table, key: key, value: encoder.makeReadBufferAndReset())
updatedKeys.insert(key)
self.values[key] = value
} else if self.get(key: key) != nil {
self.valueBox.remove(self.table, key: key, secure: false)
updatedKeys.insert(key)
self.values.removeValue(forKey: key)
}
}
}