From d0f882d8a7bf8456bbed14f64dfec25125e4613a Mon Sep 17 00:00:00 2001 From: michaelr Date: Mon, 4 Apr 2016 17:03:40 +0300 Subject: [PATCH] accept group chat invitations Former-commit-id: d4561939d3427f9523efcdddff94b3c3d6113730 --- syng-im/src/syng_im/handlers.cljs | 10 +++++++--- syng-im/src/syng_im/models/chats.cljs | 9 ++++----- syng-im/src/syng_im/protocol/protocol_handler.cljs | 6 ++---- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/syng-im/src/syng_im/handlers.cljs b/syng-im/src/syng_im/handlers.cljs index 3f8f081234..6a80cdc831 100644 --- a/syng-im/src/syng_im/handlers.cljs +++ b/syng-im/src/syng_im/handlers.cljs @@ -99,7 +99,7 @@ (log/debug action "msg" msg) (save-message chat-id msg) (-> db - (create-chat chat-id [chat-id]) + (create-chat chat-id [chat-id] false) (signal-chat-updated chat-id)))) (register-handler :acked-msg @@ -225,11 +225,15 @@ (log/debug action) (let [identities (-> (new-group-selection db) (vec)) - group-id (api/start-group-chat identities) - db (create-chat db group-id identities group-name)] + group-id (api/start-group-chat identities group-name) + db (create-chat db group-id identities true group-name)] (dispatch [:show-chat group-id navigator]) db))) +(register-handler :group-chat-invite-received + (fn [db [action from group-id identities group-name]] + (log/debug action from group-id identities) + (create-chat db group-id identities true group-name))) (comment diff --git a/syng-im/src/syng_im/models/chats.cljs b/syng-im/src/syng_im/models/chats.cljs index 914a1c2026..fa63a2d353 100644 --- a/syng-im/src/syng_im/models/chats.cljs +++ b/syng-im/src/syng_im/models/chats.cljs @@ -30,9 +30,9 @@ chat-id)) (defn create-chat - ([db chat-id identities] - (create-chat db chat-id identities nil)) - ([db chat-id identities chat-name] + ([db chat-id identities group-chat?] + (create-chat db chat-id identities group-chat? nil)) + ([db chat-id identities group-chat? chat-name] (if (r/exists? :chats :chat-id chat-id) db (let [chat-name (or chat-name @@ -40,8 +40,7 @@ _ (log/debug "creating chat" chat-name)] (r/write (fn [] - (let [group-chat? (> (count identities) 1) - contacts (mapv (fn [ident] + (let [contacts (mapv (fn [ident] {:identity ident}) identities)] (r/create :chats {:chat-id chat-id :name chat-name diff --git a/syng-im/src/syng_im/protocol/protocol_handler.cljs b/syng-im/src/syng_im/protocol/protocol_handler.cljs index 69e889a717..461f1f369d 100644 --- a/syng-im/src/syng_im/protocol/protocol_handler.cljs +++ b/syng-im/src/syng_im/protocol/protocol_handler.cljs @@ -21,10 +21,8 @@ (dispatch [:acked-msg from msg-id])) :delivery-failed (let [{:keys [msg-id]} event] (dispatch [:msg-delivery-failed msg-id])) - ;:new-group-chat (let [{:keys [from group-id identities]} event] - ; (set-group-id! group-id) - ; (set-group-identities identities) - ; (add-to-chat "group-chat" ":" (str "Received group chat invitation from " from " for group-id: " group-id))) + :new-group-chat (let [{:keys [from group-id identities group-name]} event] + (dispatch [:group-chat-invite-received from group-id identities group-name])) ;:group-chat-invite-acked (let [{:keys [from group-id]} event] ; (add-to-chat "group-chat" ":" (str "Received ACK for group chat invitation from " from " for group-id: " group-id))) ;:new-group-msg (let [{from :from