JCDraft.swift 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. //
  2. // JCDraft.swift
  3. // JChat
  4. //
  5. // Created by deng on 2017/6/2.
  6. // Copyright © 2017年 HXHG. All rights reserved.
  7. //
  8. import UIKit
  9. class JCDraft: NSObject {
  10. static var draftCache: Dictionary<String, String> = Dictionary()
  11. static func update(text: String?, conversation: JMSGConversation) {
  12. let id = JCDraft.getDraftId(conversation)
  13. if text == nil || (text?.isEmpty)! {
  14. UserDefaults.standard.removeObject(forKey: id)
  15. draftCache.removeValue(forKey: id)
  16. return
  17. }
  18. UserDefaults.standard.set(text!, forKey: id)
  19. draftCache[id] = text!
  20. }
  21. static func getDraft(_ conversation: JMSGConversation) -> String? {
  22. let id = JCDraft.getDraftId(conversation)
  23. if let cache = draftCache[id] {
  24. return cache
  25. }
  26. let draft = UserDefaults.standard.object(forKey: id) as? String
  27. if draft != nil {
  28. draftCache[id] = draft
  29. } else {
  30. draftCache[id] = ""
  31. }
  32. return draft
  33. }
  34. static func getDraftId(_ conversation: JMSGConversation) -> String {
  35. var id = ""
  36. let me = JMSGUser.myInfo()
  37. if me.username.isEmpty {
  38. return ""
  39. }
  40. if conversation.ex.isGroup {
  41. guard let group = conversation.target as? JMSGGroup else {
  42. return ""
  43. }
  44. id = "\(me.username)\(me.appKey!)\(group.gid)"
  45. } else {
  46. guard let user = conversation.target as? JMSGUser else {
  47. return ""
  48. }
  49. guard let appkey = user.appKey else {
  50. return ""
  51. }
  52. id = "\(me.username)\(me.appKey!)\(user.username)\(appkey)"
  53. }
  54. return id
  55. }
  56. }