mirror of
https://github.com/nextcloud/talk-android
synced 2025-03-08 23:19:55 +00:00
1) Use session id returned from join room = introduce sessionIdAfterRoomJoined to make clear this is the session to use instead of currentConversation?.sessionId See https://nextcloud-talk.readthedocs.io/en/latest/conversation/#get-user-s-conversations : "'0' if not connected, otherwise an up to 512 character long string that is the identifier of the user's session making the request. Should only be used to pre-check if the user joined already with this session, but this might be outdated by the time of usage, so better check via Get list of participants in a conversation" 2) Also, trigger getRoomInfo() or handleFromNotification() in onAttach() instead of in onViewBound. onViewBound is not called when returning back from an other view (e.g. conversation infos) so after this, new messages were not handled. Furthermore, getRoomInfo()/joinRoomWithPassword() in onViewBound and onAttach were sometimes both called, because the handling of validSessionId was buggy. This resulted in duplicated messages. 3) Use ApplicationWideCurrentRoomHolder to set sessionId from call and check in ChatController if there is already a session for the room. If yes, use this instead to joinRoom again. This is necessary for PictureInPicture mode. Otherwise, call would be left whenever ChatController joins room again. Signed-off-by: Marcel Hibbe <dev@mhibbe.de> |
||
---|---|---|
.. | ||
schemas/com.nextcloud.talk.data.source.local.TalkDatabase | ||
src | ||
build.gradle | ||
lint.xml | ||
proguard-rules.pro |