From c31648ec8ed506695679ba612b224c56f172c752 Mon Sep 17 00:00:00 2001 From: nixzhu Date: Mon, 30 Mar 2015 14:03:39 +0800 Subject: [PATCH 1/2] show message before really send --- Yep/Services/YepService.swift | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Yep/Services/YepService.swift b/Yep/Services/YepService.swift index a9cbcda4..9a0875b0 100644 --- a/Yep/Services/YepService.swift +++ b/Yep/Services/YepService.swift @@ -601,6 +601,11 @@ func sendText(text: String, toRecipient recipientID: String, #recipientType: Str realm.commitWriteTransaction() + + // 发出之前就显示 Message + afterCreatedMessage(message) + + let messageInfo: JSONDictionary = [ "recipient_id": recipientID, "recipient_type": recipientType, @@ -618,8 +623,6 @@ func sendText(text: String, toRecipient recipientID: String, #recipientType: Str realm.beginWriteTransaction() message.messageID = messageID realm.commitWriteTransaction() - - afterCreatedMessage(message) } completion(success: true) From ae4afee2593d43c73a7f0d662e35ca00ce6db37c Mon Sep 17 00:00:00 2001 From: nixzhu Date: Mon, 30 Mar 2015 14:15:03 +0800 Subject: [PATCH 2/2] add sendState to Message --- Yep/Realm/Models.swift | 7 +++++++ Yep/Services/YepService.swift | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/Yep/Realm/Models.swift b/Yep/Realm/Models.swift index f2485d2e..d01937c4 100644 --- a/Yep/Realm/Models.swift +++ b/Yep/Realm/Models.swift @@ -102,6 +102,12 @@ enum MessageMediaType: Int { case Audio = 3 } +enum MessageSendState: Int { + case NotSend = 0 + case Failed = 1 + case Successed = 2 +} + class Message: RLMObject { dynamic var messageID: String = "" @@ -117,6 +123,7 @@ class Message: RLMObject { dynamic var thumbnailURLString: String = "" dynamic var localThumbnailName: String = "" + dynamic var sendState: Int = MessageSendState.NotSend.rawValue dynamic var readed: Bool = false dynamic var fromFriend: User? diff --git a/Yep/Services/YepService.swift b/Yep/Services/YepService.swift index 9a0875b0..6420616b 100644 --- a/Yep/Services/YepService.swift +++ b/Yep/Services/YepService.swift @@ -618,10 +618,17 @@ func sendText(text: String, toRecipient recipientID: String, #recipientType: Str failureHandler(reason, errorMessage) } + dispatch_async(dispatch_get_main_queue()) { + realm.beginWriteTransaction() + message.sendState = MessageSendState.Failed.rawValue + realm.commitWriteTransaction() + } + }, completion: { messageID in dispatch_async(dispatch_get_main_queue()) { realm.beginWriteTransaction() message.messageID = messageID + message.sendState = MessageSendState.Successed.rawValue realm.commitWriteTransaction() }