# HG changeset patch # User Goffi # Date 1692277141 -7200 # Node ID 4afafce0c4c9bfc5682cd5088a372562b004096a # Parent 7dbb131bbb9e1b920b9f48c151d18aacef312d38 browser (calls): correctly display avatar and entity in status on incoming call diff -r 7dbb131bbb9e -r 4afafce0c4c9 libervia/web/pages/calls/_browser/__init__.py --- a/libervia/web/pages/calls/_browser/__init__.py Thu Aug 17 14:58:21 2023 +0200 +++ b/libervia/web/pages/calls/_browser/__init__.py Thu Aug 17 14:59:01 2023 +0200 @@ -151,6 +151,20 @@ else: raise ValueError("Invalid call mode") + def set_avatar(self, entity_jid: JID|str) -> None: + """Set the avatar element from entity_jid + + @param entity_jid: bare jid of the entity + """ + call_avatar_elt = self.call_avatar_tpl.get_elt( + { + "entity": str(entity_jid), + "identities": cache.identities, + } + ) + self.call_avatar_wrapper_elt.clear() + self.call_avatar_wrapper_elt <= call_avatar_elt + def _on_action_new( self, action_data_s: str, action_id: str, security_limit: int, profile: str ) -> None: @@ -167,7 +181,7 @@ aio.run(self.on_action_new(action_data, action_id)) async def on_action_new(self, action_data: dict, action_id: str) -> None: - peer_jid = action_data["from_jid"] + peer_jid = JID(action_data["from_jid"]).bare log.info(f"{peer_jid} wants to start a call ({action_data['sub_type']})") if self.sid is not None: log.warning( @@ -178,6 +192,7 @@ sid = self.sid = action_data["session_id"] await cache.fill_identities([peer_jid]) identity = cache.identities[peer_jid] + self._callee = peer_jid peer_name = identity["nicknames"][0] # we start the ring @@ -206,6 +221,7 @@ log.debug(f"Call SID: {sid}") # Answer the call + self.set_avatar(peer_jid) self.status = "connecting" self.switch_mode("call") else: @@ -308,14 +324,7 @@ self._callee = callee_jid await cache.fill_identities([callee_jid]) self.status = "dialing" - call_avatar_elt = self.call_avatar_tpl.get_elt( - { - "entity": str(callee_jid), - "identities": cache.identities, - } - ) - self.call_avatar_wrapper_elt.clear() - self.call_avatar_wrapper_elt <= call_avatar_elt + self.set_avatar(callee_jid) self.switch_mode("call") await self.webrtc.make_call(callee_jid, audio, video)