mirror of
https://github.com/status-im/status-mobile.git
synced 2025-02-04 21:05:18 +00:00
fix #1397 - two sent messages instead of one in group chat, only recipient's wallet updated
This commit is contained in:
parent
0df8dcad32
commit
e6e65a41d8
@ -28,13 +28,14 @@
|
|||||||
message-id timestamp clock-value]
|
message-id timestamp clock-value]
|
||||||
:as message
|
:as message
|
||||||
:or {clock-value 0}}]
|
:or {clock-value 0}}]
|
||||||
(let [same-message (messages/get-by-id message-id)
|
(let [same-message (messages/get-by-id message-id)
|
||||||
current-identity (get-current-identity db)
|
current-identity (get-current-identity db)
|
||||||
chat-id' (or group-id chat-id from)
|
chat-id' (or group-id chat-id from)
|
||||||
exists? (chats/exists? chat-id')
|
exists? (chats/exists? chat-id')
|
||||||
active? (chats/is-active? chat-id')
|
active? (chats/is-active? chat-id')
|
||||||
local-clock (messages/get-last-clock-value chat-id')
|
local-clock (messages/get-last-clock-value chat-id')
|
||||||
clock-new (clocks/receive clock-value local-clock)]
|
clock-new (clocks/receive clock-value local-clock)
|
||||||
|
recipient-pub-key (get-in message [:content :params :bot-db :public :recipient :whisper-identity])]
|
||||||
(when (and (not same-message)
|
(when (and (not same-message)
|
||||||
(not= from current-identity)
|
(not= from current-identity)
|
||||||
(or (not exists?) active?))
|
(or (not exists?) active?))
|
||||||
@ -55,6 +56,7 @@
|
|||||||
(dispatch [:add-request chat-id' message']))
|
(dispatch [:add-request chat-id' message']))
|
||||||
(dispatch [:add-unviewed-message chat-id' message-id]))
|
(dispatch [:add-unviewed-message chat-id' message-id]))
|
||||||
(if (and
|
(if (and
|
||||||
|
(= recipient-pub-key current-identity)
|
||||||
(= (:content-type message) content-type-command)
|
(= (:content-type message) content-type-command)
|
||||||
(not= chat-id' wallet-chat-id)
|
(not= chat-id' wallet-chat-id)
|
||||||
(= "send" (get-in message [:content :command])))
|
(= "send" (get-in message [:content :command])))
|
||||||
@ -64,10 +66,11 @@
|
|||||||
(let [ct (if (= content-type c/content-type-command)
|
(let [ct (if (= content-type c/content-type-command)
|
||||||
c/content-type-wallet-command
|
c/content-type-wallet-command
|
||||||
c/content-type-wallet-request)
|
c/content-type-wallet-request)
|
||||||
message' (assoc message :clock-value 0
|
message' (-> (assoc message :clock-value 0
|
||||||
:message-id (random/id)
|
:message-id (random/id)
|
||||||
:chat-id wallet-chat-id
|
:chat-id wallet-chat-id
|
||||||
:content-type ct)]
|
:content-type ct)
|
||||||
|
(dissoc :group-id))]
|
||||||
(add-message db message')))
|
(add-message db message')))
|
||||||
|
|
||||||
(register-handler :received-protocol-message!
|
(register-handler :received-protocol-message!
|
||||||
|
Loading…
x
Reference in New Issue
Block a user