35 lines
1.9 KiB
Swift

import Foundation
extension ReadingList {
@objc public static let conflictingReadingListNameUpdatedNotification = NSNotification.Name(rawValue: "WMFConflictingReadingListNameUpdatedNotification")
@objc public static let conflictingReadingListNameUpdatedOldNameKey = NSNotification.Name(rawValue: "oldName")
@objc public static let conflictingReadingListNameUpdatedNewNameKey = NSNotification.Name(rawValue: "newName")
func update(with remoteList: APIReadingList) {
self.readingListID = NSNumber(value: remoteList.id)
if remoteList.name == CommonStrings.readingListsDefaultListTitle {
let userCreatedAnnotation = WMFLocalizedString("reading-list-name-user-created-annotation", value: "_[user created]", comment: "Annotation added to a conflicting reading list name")
let newName = String.localizedStringWithFormat("%1$@%2$@", remoteList.name, userCreatedAnnotation)
if newName != self.name {
let userInfo = [ReadingList.conflictingReadingListNameUpdatedOldNameKey: remoteList.name, ReadingList.conflictingReadingListNameUpdatedNewNameKey: newName]
NotificationCenter.default.post(name: ReadingList.conflictingReadingListNameUpdatedNotification, object: nil, userInfo: userInfo)
}
self.name = newName
} else {
self.name = remoteList.name
}
self.readingListDescription = remoteList.description
if let createdDate = DateFormatter.wmf_iso8601().date(from: remoteList.created) {
self.createdDate = createdDate as NSDate
}
if let updatedDate = DateFormatter.wmf_iso8601().date(from: remoteList.updated) {
self.updatedDate = updatedDate as NSDate
}
if remoteList.isDefault && !isDefault {
isDefault = true
}
errorCode = nil
isUpdatedLocally = false
}
}