forked from melod1n/fast-messenger
refactor: reduce long poll dispatch noise
This commit is contained in:
@@ -47,6 +47,17 @@ class LongPollUpdatesParser(
|
|||||||
private val listenersMap: MutableMap<LongPollEvent, MutableList<VkEventCallback<LongPollParsedEvent>>> =
|
private val listenersMap: MutableMap<LongPollEvent, MutableList<VkEventCallback<LongPollParsedEvent>>> =
|
||||||
mutableMapOf()
|
mutableMapOf()
|
||||||
|
|
||||||
|
@Suppress("UNCHECKED_CAST")
|
||||||
|
private fun <T : LongPollParsedEvent> dispatch(eventType: LongPollEvent, event: T) {
|
||||||
|
listenersMap[eventType]?.forEach { callback ->
|
||||||
|
(callback as? VkEventCallback<T>)?.onEvent(event)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun dispatchAll(eventType: LongPollEvent, events: List<LongPollParsedEvent>) {
|
||||||
|
events.forEach { event -> dispatch(eventType, event) }
|
||||||
|
}
|
||||||
|
|
||||||
fun parseNextUpdate(event: List<Any>) {
|
fun parseNextUpdate(event: List<Any>) {
|
||||||
val eventId = event.first().asInt()
|
val eventId = event.first().asInt()
|
||||||
|
|
||||||
@@ -96,13 +107,7 @@ class LongPollUpdatesParser(
|
|||||||
marked = true
|
marked = true
|
||||||
)
|
)
|
||||||
eventsToSend += eventToSend
|
eventsToSend += eventToSend
|
||||||
|
dispatch(LongPollEvent.MARKED_AS_IMPORTANT, eventToSend)
|
||||||
listenersMap[LongPollEvent.MARKED_AS_IMPORTANT]?.let { listeners ->
|
|
||||||
listeners.map { vkEventCallback ->
|
|
||||||
(vkEventCallback as? VkEventCallback<LongPollParsedEvent.MessageMarkedAsImportant>)
|
|
||||||
?.onEvent(eventToSend)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MessageFlags.SPAM -> {
|
MessageFlags.SPAM -> {
|
||||||
@@ -111,13 +116,7 @@ class LongPollUpdatesParser(
|
|||||||
cmId = cmId
|
cmId = cmId
|
||||||
)
|
)
|
||||||
eventsToSend += eventToSend
|
eventsToSend += eventToSend
|
||||||
|
dispatch(LongPollEvent.MARKED_AS_SPAM, eventToSend)
|
||||||
listenersMap[LongPollEvent.MARKED_AS_SPAM]?.let { listeners ->
|
|
||||||
listeners.map { vkEventCallback ->
|
|
||||||
(vkEventCallback as? VkEventCallback<LongPollParsedEvent.MessageMarkedAsSpam>)
|
|
||||||
?.onEvent(eventToSend)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MessageFlags.DELETED -> {
|
MessageFlags.DELETED -> {
|
||||||
@@ -134,15 +133,9 @@ class LongPollUpdatesParser(
|
|||||||
cmId = cmId,
|
cmId = cmId,
|
||||||
forAll = false
|
forAll = false
|
||||||
)
|
)
|
||||||
}
|
|
||||||
eventsToSend += eventToSend
|
|
||||||
|
|
||||||
listenersMap[LongPollEvent.MESSAGE_DELETED]?.let { listeners ->
|
|
||||||
listeners.map { vkEventCallback ->
|
|
||||||
(vkEventCallback as? VkEventCallback<LongPollParsedEvent.MessageDeleted>)
|
|
||||||
?.onEvent(eventToSend)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
eventsToSend += eventToSend
|
||||||
|
dispatch(LongPollEvent.MESSAGE_DELETED, eventToSend)
|
||||||
}
|
}
|
||||||
|
|
||||||
MessageFlags.AUDIO_LISTENED -> {
|
MessageFlags.AUDIO_LISTENED -> {
|
||||||
@@ -151,26 +144,14 @@ class LongPollUpdatesParser(
|
|||||||
cmId = cmId
|
cmId = cmId
|
||||||
)
|
)
|
||||||
eventsToSend += eventToSend
|
eventsToSend += eventToSend
|
||||||
|
dispatch(LongPollEvent.AUDIO_MESSAGE_LISTENED, eventToSend)
|
||||||
listenersMap[LongPollEvent.AUDIO_MESSAGE_LISTENED]?.let { listeners ->
|
|
||||||
listeners.map { vkEventCallback ->
|
|
||||||
(vkEventCallback as? VkEventCallback<LongPollParsedEvent.AudioMessageListened>)
|
|
||||||
?.onEvent(eventToSend)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
else -> Unit
|
else -> Unit
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
eventsToSend.forEach { eventToSend ->
|
dispatchAll(LongPollEvent.MESSAGE_SET_FLAGS, eventsToSend)
|
||||||
listenersMap[LongPollEvent.MESSAGE_SET_FLAGS]?.let { listeners ->
|
|
||||||
listeners.map { vkEventCallback ->
|
|
||||||
(vkEventCallback as? VkEventCallback<LongPollParsedEvent>)?.onEvent(eventToSend)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun parseMessageClearFlags(eventType: ApiEvent, event: List<Any>) {
|
private fun parseMessageClearFlags(eventType: ApiEvent, event: List<Any>) {
|
||||||
@@ -194,13 +175,7 @@ class LongPollUpdatesParser(
|
|||||||
marked = false
|
marked = false
|
||||||
)
|
)
|
||||||
eventsToSend += eventToSend
|
eventsToSend += eventToSend
|
||||||
|
dispatch(LongPollEvent.MARKED_AS_IMPORTANT, eventToSend)
|
||||||
listenersMap[LongPollEvent.MARKED_AS_IMPORTANT]?.let { listeners ->
|
|
||||||
listeners.map { vkEventCallback ->
|
|
||||||
(vkEventCallback as? VkEventCallback<LongPollParsedEvent.MessageMarkedAsImportant>)
|
|
||||||
?.onEvent(eventToSend)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MessageFlags.SPAM -> {
|
MessageFlags.SPAM -> {
|
||||||
@@ -214,13 +189,7 @@ class LongPollUpdatesParser(
|
|||||||
val eventToSend =
|
val eventToSend =
|
||||||
LongPollParsedEvent.MessageMarkedAsNotSpam(message = message)
|
LongPollParsedEvent.MessageMarkedAsNotSpam(message = message)
|
||||||
eventsToSend += eventToSend
|
eventsToSend += eventToSend
|
||||||
|
dispatch(LongPollEvent.MARKED_AS_NOT_SPAM, eventToSend)
|
||||||
listenersMap[LongPollEvent.MARKED_AS_NOT_SPAM]?.let { listeners ->
|
|
||||||
listeners.map { vkEventCallback ->
|
|
||||||
(vkEventCallback as? VkEventCallback<LongPollParsedEvent.MessageMarkedAsNotSpam>)
|
|
||||||
?.onEvent(eventToSend)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -236,13 +205,7 @@ class LongPollUpdatesParser(
|
|||||||
val eventToSend =
|
val eventToSend =
|
||||||
LongPollParsedEvent.MessageRestored(message = message)
|
LongPollParsedEvent.MessageRestored(message = message)
|
||||||
eventsToSend += eventToSend
|
eventsToSend += eventToSend
|
||||||
|
dispatch(LongPollEvent.MESSAGE_RESTORED, eventToSend)
|
||||||
listenersMap[LongPollEvent.MESSAGE_RESTORED]?.let { listeners ->
|
|
||||||
listeners.map { vkEventCallback ->
|
|
||||||
(vkEventCallback as? VkEventCallback<LongPollParsedEvent.MessageRestored>)
|
|
||||||
?.onEvent(eventToSend)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -251,13 +214,7 @@ class LongPollUpdatesParser(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
eventsToSend.forEach { eventToSend ->
|
dispatchAll(LongPollEvent.MESSAGE_CLEAR_FLAGS, eventsToSend)
|
||||||
listenersMap[LongPollEvent.MESSAGE_CLEAR_FLAGS]?.let { listeners ->
|
|
||||||
listeners.map { vkEventCallback ->
|
|
||||||
vkEventCallback.onEvent(eventToSend)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -281,20 +238,16 @@ class LongPollUpdatesParser(
|
|||||||
}.await()
|
}.await()
|
||||||
|
|
||||||
message?.let {
|
message?.let {
|
||||||
listenersMap[LongPollEvent.MESSAGE_NEW]?.let {
|
dispatch(
|
||||||
it.map { vkEventCallback ->
|
LongPollEvent.MESSAGE_NEW,
|
||||||
(vkEventCallback as VkEventCallback<LongPollParsedEvent.NewMessage>)
|
LongPollParsedEvent.NewMessage(
|
||||||
.onEvent(
|
message = message,
|
||||||
LongPollParsedEvent.NewMessage(
|
inArchive = convo?.isArchived == true
|
||||||
message = message,
|
// TODO: 03-Apr-25, Danil Nikolaev:
|
||||||
inArchive = convo?.isArchived == true
|
// load user settings about restoring chats with
|
||||||
// TODO: 03-Apr-25, Danil Nikolaev:
|
// enabled notifications from archive
|
||||||
// load user settings about restoring chats with
|
)
|
||||||
// enabled notifications from archive
|
)
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -310,12 +263,7 @@ class LongPollUpdatesParser(
|
|||||||
peerId = peerId,
|
peerId = peerId,
|
||||||
cmId = cmId
|
cmId = cmId
|
||||||
)?.let { message ->
|
)?.let { message ->
|
||||||
listenersMap[LongPollEvent.MESSAGE_EDITED]?.let {
|
dispatch(LongPollEvent.MESSAGE_EDITED, LongPollParsedEvent.MessageEdited(message))
|
||||||
it.map { vkEventCallback ->
|
|
||||||
(vkEventCallback as VkEventCallback<LongPollParsedEvent.MessageEdited>)
|
|
||||||
.onEvent(LongPollParsedEvent.MessageEdited(message))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -326,18 +274,14 @@ class LongPollUpdatesParser(
|
|||||||
val cmId = event[2].asLong()
|
val cmId = event[2].asLong()
|
||||||
val unreadCount = event[3].asInt()
|
val unreadCount = event[3].asInt()
|
||||||
|
|
||||||
listenersMap[LongPollEvent.INCOMING_MESSAGE_READ]?.let { listeners ->
|
dispatch(
|
||||||
listeners.map { vkEventCallback ->
|
LongPollEvent.INCOMING_MESSAGE_READ,
|
||||||
(vkEventCallback as VkEventCallback<LongPollParsedEvent.IncomingMessageRead>)
|
LongPollParsedEvent.IncomingMessageRead(
|
||||||
.onEvent(
|
peerId = peerId,
|
||||||
LongPollParsedEvent.IncomingMessageRead(
|
cmId = cmId,
|
||||||
peerId = peerId,
|
unreadCount = unreadCount
|
||||||
cmId = cmId,
|
)
|
||||||
unreadCount = unreadCount
|
)
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun parseMessageReadOutgoing(eventType: ApiEvent, event: List<Any>) {
|
private fun parseMessageReadOutgoing(eventType: ApiEvent, event: List<Any>) {
|
||||||
@@ -346,18 +290,14 @@ class LongPollUpdatesParser(
|
|||||||
val cmId = event[2].asLong()
|
val cmId = event[2].asLong()
|
||||||
val unreadCount = event[3].asInt()
|
val unreadCount = event[3].asInt()
|
||||||
|
|
||||||
listenersMap[LongPollEvent.OUTGOING_MESSAGE_READ]?.let { listeners ->
|
dispatch(
|
||||||
listeners.map { vkEventCallback ->
|
LongPollEvent.OUTGOING_MESSAGE_READ,
|
||||||
(vkEventCallback as VkEventCallback<LongPollParsedEvent.OutgoingMessageRead>)
|
LongPollParsedEvent.OutgoingMessageRead(
|
||||||
.onEvent(
|
peerId = peerId,
|
||||||
LongPollParsedEvent.OutgoingMessageRead(
|
cmId = cmId,
|
||||||
peerId = peerId,
|
unreadCount = unreadCount
|
||||||
cmId = cmId,
|
)
|
||||||
unreadCount = unreadCount
|
)
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun parseChatClearFlags(eventType: ApiEvent, event: List<Any>) {
|
private fun parseChatClearFlags(eventType: ApiEvent, event: List<Any>) {
|
||||||
@@ -390,28 +330,14 @@ class LongPollUpdatesParser(
|
|||||||
archived = false
|
archived = false
|
||||||
)
|
)
|
||||||
eventsToSend += eventToSend
|
eventsToSend += eventToSend
|
||||||
|
dispatch(LongPollEvent.CHAT_ARCHIVED, eventToSend)
|
||||||
listenersMap[LongPollEvent.CHAT_ARCHIVED]?.let { listeners ->
|
|
||||||
listeners.map { vkEventCallback ->
|
|
||||||
(vkEventCallback as? VkEventCallback<LongPollParsedEvent.ChatArchived>)
|
|
||||||
?.onEvent(eventToSend)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
else -> Unit
|
else -> Unit
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
eventsToSend.forEach { eventToSend ->
|
dispatchAll(LongPollEvent.CHAT_CLEAR_FLAGS, eventsToSend)
|
||||||
listenersMap[LongPollEvent.CHAT_CLEAR_FLAGS]?.let { listeners ->
|
|
||||||
listeners.map { vkEventCallback ->
|
|
||||||
(vkEventCallback as? VkEventCallback<LongPollParsedEvent>)?.onEvent(
|
|
||||||
eventToSend
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -445,28 +371,14 @@ class LongPollUpdatesParser(
|
|||||||
archived = true
|
archived = true
|
||||||
)
|
)
|
||||||
eventsToSend += eventToSend
|
eventsToSend += eventToSend
|
||||||
|
dispatch(LongPollEvent.CHAT_ARCHIVED, eventToSend)
|
||||||
listenersMap[LongPollEvent.CHAT_ARCHIVED]?.let { listeners ->
|
|
||||||
listeners.map { vkEventCallback ->
|
|
||||||
(vkEventCallback as? VkEventCallback<LongPollParsedEvent.ChatArchived>)
|
|
||||||
?.onEvent(eventToSend)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
else -> Unit
|
else -> Unit
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
eventsToSend.forEach { eventToSend ->
|
dispatchAll(LongPollEvent.CHAT_SET_FLAGS, eventsToSend)
|
||||||
listenersMap[LongPollEvent.CHAT_SET_FLAGS]?.let { listeners ->
|
|
||||||
listeners.map { vkEventCallback ->
|
|
||||||
(vkEventCallback as? VkEventCallback<LongPollParsedEvent>)?.onEvent(
|
|
||||||
eventToSend
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -476,17 +388,13 @@ class LongPollUpdatesParser(
|
|||||||
val peerId = event[1].asLong()
|
val peerId = event[1].asLong()
|
||||||
val cmId = event[2].asLong()
|
val cmId = event[2].asLong()
|
||||||
|
|
||||||
listenersMap[LongPollEvent.CHAT_CLEARED]?.let { listeners ->
|
dispatch(
|
||||||
listeners.forEach { vkEventCallback ->
|
LongPollEvent.CHAT_CLEARED,
|
||||||
(vkEventCallback as VkEventCallback<LongPollParsedEvent.ChatCleared>)
|
LongPollParsedEvent.ChatCleared(
|
||||||
.onEvent(
|
peerId = peerId,
|
||||||
LongPollParsedEvent.ChatCleared(
|
toCmId = cmId
|
||||||
peerId = peerId,
|
)
|
||||||
toCmId = cmId
|
)
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun parseChatMajorChanged(eventType: ApiEvent, event: List<Any>) {
|
private fun parseChatMajorChanged(eventType: ApiEvent, event: List<Any>) {
|
||||||
@@ -495,17 +403,13 @@ class LongPollUpdatesParser(
|
|||||||
val peerId = event[1].asLong()
|
val peerId = event[1].asLong()
|
||||||
val majorId = event[2].asInt()
|
val majorId = event[2].asInt()
|
||||||
|
|
||||||
listenersMap[LongPollEvent.CHAT_MAJOR_CHANGED]?.let { listeners ->
|
dispatch(
|
||||||
listeners.forEach { vkEventCallback ->
|
LongPollEvent.CHAT_MAJOR_CHANGED,
|
||||||
(vkEventCallback as VkEventCallback<LongPollParsedEvent.ChatMajorChanged>)
|
LongPollParsedEvent.ChatMajorChanged(
|
||||||
.onEvent(
|
peerId = peerId,
|
||||||
LongPollParsedEvent.ChatMajorChanged(
|
majorId = majorId,
|
||||||
peerId = peerId,
|
)
|
||||||
majorId = majorId,
|
)
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun parseChatMinorChanged(eventType: ApiEvent, event: List<Any>) {
|
private fun parseChatMinorChanged(eventType: ApiEvent, event: List<Any>) {
|
||||||
@@ -514,17 +418,13 @@ class LongPollUpdatesParser(
|
|||||||
val peerId = event[1].asLong()
|
val peerId = event[1].asLong()
|
||||||
val minorId = event[2].asInt()
|
val minorId = event[2].asInt()
|
||||||
|
|
||||||
listenersMap[LongPollEvent.CHAT_MINOR_CHANGED]?.let { listeners ->
|
dispatch(
|
||||||
listeners.forEach { vkEventCallback ->
|
LongPollEvent.CHAT_MINOR_CHANGED,
|
||||||
(vkEventCallback as VkEventCallback<LongPollParsedEvent.ChatMinorChanged>)
|
LongPollParsedEvent.ChatMinorChanged(
|
||||||
.onEvent(
|
peerId = peerId,
|
||||||
LongPollParsedEvent.ChatMinorChanged(
|
minorId = minorId,
|
||||||
peerId = peerId,
|
)
|
||||||
minorId = minorId,
|
)
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun parseInteraction(eventType: ApiEvent, event: List<Any>) {
|
private fun parseInteraction(eventType: ApiEvent, event: List<Any>) {
|
||||||
@@ -556,20 +456,16 @@ class LongPollUpdatesParser(
|
|||||||
// if userIds contains only account's id, then we don't need to show our status
|
// if userIds contains only account's id, then we don't need to show our status
|
||||||
if (userIds.isEmpty()) return
|
if (userIds.isEmpty()) return
|
||||||
|
|
||||||
listenersMap[longPollEvent]?.let { listeners ->
|
dispatch(
|
||||||
listeners.forEach { vkEventCallback ->
|
longPollEvent,
|
||||||
(vkEventCallback as VkEventCallback<LongPollParsedEvent.Interaction>)
|
LongPollParsedEvent.Interaction(
|
||||||
.onEvent(
|
interactionType = interactionType,
|
||||||
LongPollParsedEvent.Interaction(
|
peerId = peerId,
|
||||||
interactionType = interactionType,
|
userIds = userIds,
|
||||||
peerId = peerId,
|
totalCount = totalCount,
|
||||||
userIds = userIds,
|
timestamp = timestamp
|
||||||
totalCount = totalCount,
|
)
|
||||||
timestamp = timestamp
|
)
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun parseUnreadCounterUpdate(eventType: ApiEvent, event: List<Any>) {
|
private fun parseUnreadCounterUpdate(eventType: ApiEvent, event: List<Any>) {
|
||||||
@@ -583,22 +479,18 @@ class LongPollUpdatesParser(
|
|||||||
val archiveUnreadUnmutedCount = event[8].asInt()
|
val archiveUnreadUnmutedCount = event[8].asInt()
|
||||||
val archiveMentionsCount = event[9].asInt()
|
val archiveMentionsCount = event[9].asInt()
|
||||||
|
|
||||||
listenersMap[LongPollEvent.UNREAD_COUNTER_UPDATE]?.let { listeners ->
|
dispatch(
|
||||||
listeners.forEach { vkEventCallback ->
|
LongPollEvent.UNREAD_COUNTER_UPDATE,
|
||||||
(vkEventCallback as VkEventCallback<LongPollParsedEvent.UnreadCounter>)
|
LongPollParsedEvent.UnreadCounter(
|
||||||
.onEvent(
|
unread = unreadCount,
|
||||||
LongPollParsedEvent.UnreadCounter(
|
unreadUnmuted = unreadUnmutedCount,
|
||||||
unread = unreadCount,
|
showOnlyMuted = showOnlyMuted,
|
||||||
unreadUnmuted = unreadUnmutedCount,
|
business = businessNotifyUnreadCount,
|
||||||
showOnlyMuted = showOnlyMuted,
|
archive = archiveUnreadCount,
|
||||||
business = businessNotifyUnreadCount,
|
archiveUnmuted = archiveUnreadUnmutedCount,
|
||||||
archive = archiveUnreadCount,
|
archiveMentions = archiveMentionsCount
|
||||||
archiveUnmuted = archiveUnreadUnmutedCount,
|
)
|
||||||
archiveMentions = archiveMentionsCount
|
)
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun parseMessageUpdated(eventType: ApiEvent, event: List<Any>) {
|
private fun parseMessageUpdated(eventType: ApiEvent, event: List<Any>) {
|
||||||
@@ -612,12 +504,7 @@ class LongPollUpdatesParser(
|
|||||||
peerId = peerId,
|
peerId = peerId,
|
||||||
cmId = cmId
|
cmId = cmId
|
||||||
)?.let { message ->
|
)?.let { message ->
|
||||||
listenersMap[LongPollEvent.MESSAGE_UPDATED]?.let {
|
dispatch(LongPollEvent.MESSAGE_UPDATED, LongPollParsedEvent.MessageUpdated(message))
|
||||||
it.map { vkEventCallback ->
|
|
||||||
(vkEventCallback as VkEventCallback<LongPollParsedEvent.MessageUpdated>)
|
|
||||||
.onEvent(LongPollParsedEvent.MessageUpdated(message))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -629,12 +516,10 @@ class LongPollUpdatesParser(
|
|||||||
|
|
||||||
coroutineScope.launch(Dispatchers.IO) {
|
coroutineScope.launch(Dispatchers.IO) {
|
||||||
loadMessage(messageId = messageId)?.let { message ->
|
loadMessage(messageId = messageId)?.let { message ->
|
||||||
listenersMap[LongPollEvent.MESSAGE_CACHE_CLEAR]?.let {
|
dispatch(
|
||||||
it.map { vkEventCallback ->
|
LongPollEvent.MESSAGE_CACHE_CLEAR,
|
||||||
(vkEventCallback as VkEventCallback<LongPollParsedEvent.MessageCacheClear>)
|
LongPollParsedEvent.MessageCacheClear(message)
|
||||||
.onEvent(LongPollParsedEvent.MessageCacheClear(message))
|
)
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user