diff options
Diffstat (limited to 'src/Erebos/Conversation.hs')
-rw-r--r-- | src/Erebos/Conversation.hs | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/Erebos/Conversation.hs b/src/Erebos/Conversation.hs index 445b997..f9724c2 100644 --- a/src/Erebos/Conversation.hs +++ b/src/Erebos/Conversation.hs @@ -11,6 +11,7 @@ module Erebos.Conversation ( directMessageConversation, chatroomConversation, chatroomConversationByStateData, + isChatroomStateConversation, reloadConversation, lookupConversations, @@ -36,8 +37,6 @@ import Erebos.DirectMessage import Erebos.Identity import Erebos.State import Erebos.Storable -import Erebos.Storage.Merge -import Erebos.Util data Message = DirectMessageMessage DirectMessage Bool @@ -74,9 +73,7 @@ data Conversation isSameConversation :: Conversation -> Conversation -> Bool isSameConversation (DirectMessageConversation t) (DirectMessageConversation t') = sameIdentity (msgPeer t) (msgPeer t') -isSameConversation (ChatroomConversation c) (ChatroomConversation c') - = let roots = filterAncestors . concatMap storedRoots . roomStateData - in intersectsSorted (roots c) (roots c') +isSameConversation (ChatroomConversation rstate) (ChatroomConversation rstate') = isSameChatroom rstate rstate' isSameConversation _ _ = False directMessageConversation :: MonadHead LocalState m => ComposedIdentity -> m Conversation @@ -91,6 +88,10 @@ chatroomConversation rstate = chatroomConversationByStateData (head $ roomStateD chatroomConversationByStateData :: MonadHead LocalState m => Stored ChatroomStateData -> m (Maybe Conversation) chatroomConversationByStateData sdata = fmap ChatroomConversation <$> findChatroomByStateData sdata +isChatroomStateConversation :: ChatroomState -> Conversation -> Bool +isChatroomStateConversation rstate (ChatroomConversation rstate') = isSameChatroom rstate rstate' +isChatroomStateConversation _ _ = False + reloadConversation :: MonadHead LocalState m => Conversation -> m Conversation reloadConversation (DirectMessageConversation thread) = directMessageConversation (msgPeer thread) reloadConversation cur@(ChatroomConversation rstate) = |