From b10db49ea6ab1972ca7c6512da3bd9d1cf2d6d2b Mon Sep 17 00:00:00 2001 From: nixzhu Date: Wed, 26 Aug 2015 12:19:41 +0800 Subject: [PATCH] use & save roundMini / roundNano --- Yep/Caches/AvatarCache.swift | 45 ++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/Yep/Caches/AvatarCache.swift b/Yep/Caches/AvatarCache.swift index 7941fd7b..8fa11764 100644 --- a/Yep/Caches/AvatarCache.swift +++ b/Yep/Caches/AvatarCache.swift @@ -167,6 +167,27 @@ class AvatarCache { dispatch_async(dispatch_get_main_queue()) { avatarCompletion.completion(avatar) } + + let realm = Realm() + + if let avatarObject = avatarWithAvatarURLString(avatarURLString, inRealm: realm) { + switch avatarCompletion.radius { + case YepConfig.ConversationCell.avatarSize * 0.5: + if avatarObject.roundMini.length == 0 { + realm.write { + avatarObject.roundMini = UIImageJPEGRepresentation(avatar, 0.9) + } + } + case YepConfig.chatCellAvatarSize() * 0.5: + if avatarObject.roundNano.length == 0 { + realm.write { + avatarObject.roundNano = UIImageJPEGRepresentation(avatar, 0.9) + } + } + default: + break + } + } } } @@ -314,6 +335,30 @@ class AvatarCache { } else { + // 再看看是否已有裁剪后的圆图 + + if let avatar = avatarWithAvatarURLString(avatarURLString, inRealm: Realm()) { + + switch radius { + case YepConfig.ConversationCell.avatarSize * 0.5: + if avatar.roundMini.length > 0 { + if let image = UIImage(data: avatar.roundMini) { + completeWithImage(image, avatarURLString: avatarURLString) + return + } + } + case YepConfig.chatCellAvatarSize() * 0.5: + if avatar.roundNano.length > 0 { + if let image = UIImage(data: avatar.roundNano) { + completeWithImage(image, avatarURLString: avatarURLString) + return + } + } + default: + break + } + } + let oldAvatarURLString = user.avatar?.avatarURLString dispatch_async(self.cacheQueue) {