DraftModel.swift 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import Foundation
  2. import UIKit
  3. import DcCore
  4. public class DraftModel {
  5. var quoteMessage: DcMsg?
  6. var quoteText: String?
  7. var draftText: String?
  8. let chatId: Int
  9. public init(chatId: Int) {
  10. self.chatId = chatId
  11. }
  12. public func parse(draftMsg: DcMsg?) {
  13. draftText = draftMsg?.text
  14. quoteText = draftMsg?.quoteText
  15. quoteMessage = draftMsg?.quoteMessage
  16. }
  17. public func setQuote(quotedMsg: DcMsg?) {
  18. if let quotedMsg = quotedMsg {
  19. // create a temporary draft to get the correct quoteText
  20. let draftMessage = DcMsg(viewType: DC_MSG_TEXT)
  21. draftMessage.quoteMessage = quotedMsg
  22. self.quoteText = draftMessage.quoteText
  23. self.quoteMessage = quotedMsg
  24. } else {
  25. self.quoteText = nil
  26. self.quoteMessage = nil
  27. }
  28. }
  29. public func save(context: DcContext) {
  30. if draftText == nil && quoteMessage == nil {
  31. context.setDraft(chatId: chatId, message: nil)
  32. return
  33. }
  34. let draftMessage = DcMsg(viewType: DC_MSG_TEXT)
  35. draftMessage.text = draftText
  36. if quoteMessage != nil {
  37. draftMessage.quoteMessage = quoteMessage
  38. }
  39. context.setDraft(chatId: chatId, message: draftMessage)
  40. }
  41. }