Добавлен encryptWithPasswordDesktopCompat (SHA1+zlibDeflate) для кросс-платформенных данных (aesChachaKey, аватар) 3 вызова в SessionManager переведены на desktop-compatible путь Добавлен Notification.Name.profileDidUpdate для мгновенного обновления имени в Settings Удалены debug-логи из CryptoManager и SessionManager
30 lines
1.0 KiB
Swift
30 lines
1.0 KiB
Swift
import Foundation
|
|
|
|
struct RecentSearch: Codable, Equatable, Sendable {
|
|
let publicKey: String
|
|
var title: String
|
|
var username: String
|
|
/// Verification level from server (0 = not verified).
|
|
var verified: Int = 0
|
|
|
|
// MARK: - Migration: ignore unknown keys from old persisted data
|
|
enum CodingKeys: String, CodingKey {
|
|
case publicKey, title, username, verified
|
|
}
|
|
|
|
init(publicKey: String, title: String, username: String, verified: Int = 0) {
|
|
self.publicKey = publicKey
|
|
self.title = title
|
|
self.username = username
|
|
self.verified = verified
|
|
}
|
|
|
|
init(from decoder: Decoder) throws {
|
|
let container = try decoder.container(keyedBy: CodingKeys.self)
|
|
publicKey = try container.decode(String.self, forKey: .publicKey)
|
|
title = try container.decode(String.self, forKey: .title)
|
|
username = try container.decode(String.self, forKey: .username)
|
|
verified = (try? container.decode(Int.self, forKey: .verified)) ?? 0
|
|
}
|
|
}
|