mirror of
https://github.com/TwidereProject/Twidere-Android
synced 2025-02-16 19:50:53 +01:00
Fix direct message send failed
This commit is contained in:
parent
e07fbca1a7
commit
3d0d574985
@ -44,4 +44,6 @@ public interface DirectMessagesEventResources {
|
||||
@GET("/direct_messages/events/list.json")
|
||||
PageableResponseList<DirectMessageEventObject.Event> getDirectMessageList(@Query int count, @Query Paging paging) throws MicroBlogException;
|
||||
|
||||
@GET("/direct_messages/events/show.json")
|
||||
DirectMessageEventObject showDirectMessageEvent(@Query("id") String id) throws MicroBlogException;
|
||||
}
|
||||
|
@ -60,6 +60,4 @@ public interface DirectMessagesResources {
|
||||
DirectMessage sendDirectMessageToScreenName(@Param("screen_name") String screenName, @Param("text") String text,
|
||||
@Param("media_id") String mediaId) throws MicroBlogException;
|
||||
|
||||
@GET("/direct_messages/show.json")
|
||||
DirectMessage showDirectMessage(@Query("id") String id) throws MicroBlogException;
|
||||
}
|
||||
|
@ -33,6 +33,7 @@ import org.mariotaku.twidere.annotation.AccountType
|
||||
import org.mariotaku.twidere.extension.model.api.*
|
||||
import org.mariotaku.twidere.extension.model.isOfficial
|
||||
import org.mariotaku.twidere.extension.model.newMicroBlogInstance
|
||||
import org.mariotaku.twidere.extension.set
|
||||
import org.mariotaku.twidere.model.AccountDetails
|
||||
import org.mariotaku.twidere.model.ParcelableMedia
|
||||
import org.mariotaku.twidere.model.ParcelableMessageConversation
|
||||
@ -42,9 +43,9 @@ import org.mariotaku.twidere.model.util.ParcelableMessageUtils
|
||||
import org.mariotaku.twidere.provider.TwidereDataStore.Messages.Conversations
|
||||
import org.mariotaku.twidere.task.ExceptionHandlingAbstractTask
|
||||
import org.mariotaku.twidere.task.twitter.UpdateStatusTask
|
||||
import org.mariotaku.twidere.task.twitter.message.GetMessagesTask
|
||||
import org.mariotaku.twidere.task.twitter.message.GetMessagesTask.Companion.addConversation
|
||||
import org.mariotaku.twidere.task.twitter.message.GetMessagesTask.Companion.addLocalConversations
|
||||
import java.util.*
|
||||
|
||||
/**
|
||||
* Created by mariotaku on 2017/2/8.
|
||||
@ -169,7 +170,18 @@ class SendMessageTask(
|
||||
}
|
||||
return@uploadMediaThen microBlog.newDirectMessageEvent(obj)
|
||||
}
|
||||
return createDatabaseUpdateData(account, microBlog.showDirectMessage(response.event.id))
|
||||
val responseEvent = microBlog.showDirectMessageEvent(response.event.id)
|
||||
val possibleUserId = arrayOf(responseEvent.event.messageCreate.senderId, responseEvent.event.messageCreate .target.recipientId)
|
||||
val users = microBlog.lookupUsers(possibleUserId)
|
||||
val dm = DirectMessage().also { directMessage ->
|
||||
directMessage[DirectMessage::class.java.getDeclaredField("text")] = responseEvent.event.messageCreate.messageData.text
|
||||
directMessage[DirectMessage::class.java.getDeclaredField("id")] = responseEvent.event.id
|
||||
directMessage[DirectMessage::class.java.getDeclaredField("sender")] = users.firstOrNull { user -> responseEvent.event.messageCreate.senderId == user.id }
|
||||
directMessage[DirectMessage::class.java.getDeclaredField("recipient")] = users.firstOrNull { user -> responseEvent.event.messageCreate.target.recipientId == user.id }
|
||||
directMessage[DirectMessage::class.java.getDeclaredField("createdAt")] = Date(responseEvent.event.createdTimestamp.toLong())
|
||||
}
|
||||
|
||||
return createDatabaseUpdateData(account, dm)
|
||||
}
|
||||
|
||||
private fun sendFanfouDM(microBlog: MicroBlog, account: AccountDetails, message: ParcelableNewMessage): GetMessagesTask.DatabaseUpdateData {
|
||||
|
Loading…
x
Reference in New Issue
Block a user