123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- import Foundation
- import RealmSwift
- import NextcloudKit
- class tableAvatar: Object {
- @objc dynamic var date = NSDate()
- @objc dynamic var etag = ""
- @objc dynamic var fileName = ""
- @objc dynamic var loaded: Bool = false
- override static func primaryKey() -> String {
- return "fileName"
- }
- }
- extension NCManageDatabase {
- func addAvatar(fileName: String, etag: String) {
- let realm = try! Realm()
- do {
- try realm.write {
-
- let addObject = tableAvatar()
- addObject.date = NSDate()
- addObject.etag = etag
- addObject.fileName = fileName
- addObject.loaded = true
- realm.add(addObject, update: .all)
- }
- } catch let error {
- NextcloudKit.shared.nkCommonInstance.writeLog("Could not write to database: \(error)")
- }
- }
- func getTableAvatar(fileName: String) -> tableAvatar? {
- let realm = try! Realm()
- guard let result = realm.objects(tableAvatar.self).filter("fileName == %@", fileName).first else {
- return nil
- }
- return tableAvatar.init(value: result)
- }
- func clearAllAvatarLoaded() {
- let realm = try! Realm()
- do {
- try realm.write {
- let results = realm.objects(tableAvatar.self)
- for result in results {
- result.loaded = false
- realm.add(result, update: .all)
- }
- }
- } catch let error {
- NextcloudKit.shared.nkCommonInstance.writeLog("Could not write to database: \(error)")
- }
- }
- @discardableResult
- func setAvatarLoaded(fileName: String) -> UIImage? {
- let realm = try! Realm()
- let fileNameLocalPath = String(CCUtility.getDirectoryUserData()) + "/" + fileName
- var image: UIImage?
- do {
- try realm.write {
- if let result = realm.objects(tableAvatar.self).filter("fileName == %@", fileName).first {
- if let imageAvatar = UIImage(contentsOfFile: fileNameLocalPath) {
- result.loaded = true
- image = imageAvatar
- } else {
- realm.delete(result)
- }
- }
- }
- } catch let error {
- NextcloudKit.shared.nkCommonInstance.writeLog("Could not write to database: \(error)")
- }
- return image
- }
- func getImageAvatarLoaded(fileName: String) -> UIImage? {
- let realm = try! Realm()
- let fileNameLocalPath = String(CCUtility.getDirectoryUserData()) + "/" + fileName
- let result = realm.objects(tableAvatar.self).filter("fileName == %@", fileName).first
- if result == nil {
- NCUtilityFileSystem.shared.deleteFile(filePath: fileNameLocalPath)
- return nil
- } else if result?.loaded == false {
- return nil
- }
- return UIImage(contentsOfFile: fileNameLocalPath)
- }
- }
|