diff --git a/Yep/Realm/Models.swift b/Yep/Realm/Models.swift index e3135d5f..ce29af73 100644 --- a/Yep/Realm/Models.swift +++ b/Yep/Realm/Models.swift @@ -646,3 +646,65 @@ func videoMetaOfMessage(message: Message) -> (width: CGFloat, height: CGFloat)? return nil } +// MARK: Update with info + +func updateUserWithUserID(userID: String, useUserInfo userInfo: JSONDictionary) { + + let realm = Realm() + + if let user = userWithUserID(userID, inRealm: realm) { + + realm.write { + + // 更新用户信息 + + if let lastSignInUnixTime = userInfo["last_sign_in_at"] as? NSTimeInterval { + user.lastSignInUnixTime = lastSignInUnixTime + } + + if let nickname = userInfo["nickname"] as? String { + user.nickname = nickname + } + + if let introduction = userInfo["introduction"] as? String { + user.introduction = introduction + } + + if let avatarURLString = userInfo["avatar_url"] as? String { + user.avatarURLString = avatarURLString + } + + if let badge = userInfo["badge"] as? String { + user.badge = badge + } + + // 更新技能 + + if let learningSkillsData = userInfo["learning_skills"] as? [JSONDictionary] { + user.learningSkills.removeAll() + let userSkills = userSkillsFromSkillsData(learningSkillsData, inRealm: realm) + user.learningSkills.extend(userSkills) + } + + if let masterSkillsData = userInfo["master_skills"] as? [JSONDictionary] { + user.masterSkills.removeAll() + let userSkills = userSkillsFromSkillsData(masterSkillsData, inRealm: realm) + user.masterSkills.extend(userSkills) + } + + // 更新 Social Account Provider + + user.socialAccountProviders.removeAll() + + if let providersInfo = userInfo["providers"] as? [String: Bool] { + for (name, enabled) in providersInfo { + let provider = UserSocialAccountProvider() + provider.name = name + provider.enabled = enabled + + user.socialAccountProviders.append(provider) + } + } + } + } +} diff --git a/Yep/ViewControllers/Conversation/ConversationViewController.swift b/Yep/ViewControllers/Conversation/ConversationViewController.swift index d5994d3d..7961eaa9 100644 --- a/Yep/ViewControllers/Conversation/ConversationViewController.swift +++ b/Yep/ViewControllers/Conversation/ConversationViewController.swift @@ -1007,7 +1007,7 @@ class ConversationViewController: BaseViewController { let userID = user.userID userInfoOfUserWithUserID(userID, failureHandler: nil, completion: { userInfo in - println("userInfoOfUserWithUserID \(userInfo)") + //println("userInfoOfUserWithUserID \(userInfo)") if let doNotDisturb = userInfo["do_not_disturb"] as? Bool { self.updateNotificationEnabled(!doNotDisturb, forUserWithUserID: userID) @@ -1019,63 +1019,7 @@ class ConversationViewController: BaseViewController { // 对非好友来说,必要 - let realm = Realm() - - if let user = userWithUserID(userID, inRealm: realm) { - - realm.write { - - // 更新用户信息 - - if let lastSignInUnixTime = userInfo["last_sign_in_at"] as? NSTimeInterval { - user.lastSignInUnixTime = lastSignInUnixTime - } - - if let nickname = userInfo["nickname"] as? String { - user.nickname = nickname - } - - if let introduction = userInfo["introduction"] as? String { - user.introduction = introduction - } - - if let avatarURLString = userInfo["avatar_url"] as? String { - user.avatarURLString = avatarURLString - } - - if let badge = userInfo["badge"] as? String { - user.badge = badge - } - - // 更新技能 - - if let learningSkillsData = userInfo["learning_skills"] as? [JSONDictionary] { - user.learningSkills.removeAll() - let userSkills = userSkillsFromSkillsData(learningSkillsData, inRealm: realm) - user.learningSkills.extend(userSkills) - } - - if let masterSkillsData = userInfo["master_skills"] as? [JSONDictionary] { - user.masterSkills.removeAll() - let userSkills = userSkillsFromSkillsData(masterSkillsData, inRealm: realm) - user.masterSkills.extend(userSkills) - } - - // 更新 Social Account Provider - - user.socialAccountProviders.removeAll() - - if let providersInfo = userInfo["providers"] as? [String: Bool] { - for (name, enabled) in providersInfo { - let provider = UserSocialAccountProvider() - provider.name = name - provider.enabled = enabled - - user.socialAccountProviders.append(provider) - } - } - } - } + updateUserWithUserID(userID, useUserInfo: userInfo) }) } diff --git a/Yep/ViewControllers/Profile/ProfileViewController.swift b/Yep/ViewControllers/Profile/ProfileViewController.swift index 91bdff8f..cfe6e216 100644 --- a/Yep/ViewControllers/Profile/ProfileViewController.swift +++ b/Yep/ViewControllers/Profile/ProfileViewController.swift @@ -410,65 +410,9 @@ class ProfileViewController: UIViewController { // 对非好友来说,必要 - let realm = Realm() + updateUserWithUserID(userID, useUserInfo: userInfo) - if let user = userWithUserID(userID, inRealm: realm) { - - realm.write { - - // 更新用户信息 - - if let lastSignInUnixTime = userInfo["last_sign_in_at"] as? NSTimeInterval { - user.lastSignInUnixTime = lastSignInUnixTime - } - - if let nickname = userInfo["nickname"] as? String { - user.nickname = nickname - } - - if let introduction = userInfo["introduction"] as? String { - user.introduction = introduction - } - - if let avatarURLString = userInfo["avatar_url"] as? String { - user.avatarURLString = avatarURLString - } - - if let badge = userInfo["badge"] as? String { - user.badge = badge - } - - // 更新技能 - - if let learningSkillsData = userInfo["learning_skills"] as? [JSONDictionary] { - user.learningSkills.removeAll() - let userSkills = userSkillsFromSkillsData(learningSkillsData, inRealm: realm) - user.learningSkills.extend(userSkills) - } - - if let masterSkillsData = userInfo["master_skills"] as? [JSONDictionary] { - user.masterSkills.removeAll() - let userSkills = userSkillsFromSkillsData(masterSkillsData, inRealm: realm) - user.masterSkills.extend(userSkills) - } - - // 更新 Social Account Provider - - user.socialAccountProviders.removeAll() - - if let providersInfo = userInfo["providers"] as? [String: Bool] { - for (name, enabled) in providersInfo { - let provider = UserSocialAccountProvider() - provider.name = name - provider.enabled = enabled - - user.socialAccountProviders.append(provider) - } - } - - self?.updateProfileCollectionView() - } - } + self?.updateProfileCollectionView() }) } }