Skip to content

Native sliding sync: add membership field to rooms #17838

Open
@jmartinesp

Description

@jmartinesp

Description:

At the moment, to check if a room is a joined, invited or knocked one we need to do something like:

Does it have invite_state?

  1. Yes: it can be either an invited or knocked room. We need to check the membership state event for our user, if any.
    1.1. There is a knocked membership event: it's a knocked room.
    1.2. There is either an invite membership event: it's an invite.
    1.3. No membership event, or an invalid one: assume it's an invite and there was some server error.
  2. No: assume it's a joined room.

That's kind of complex, it assumes several cases when we're not sure how to proceed and doesn't detail how we should differentiate between a joined room and a room with a left, kicked or banned membership (apparently, this would be another membership event check on branch 2 above).

We've discussed in chats a couple of times adding some membership field to the rooms so it's the server that tells us which membership we have in the room instead of the client having to make the decisions: it would simplify the work for clients a lot and also make sure we have consistent results between clients.

I'm adding this issue so we keep track of this suggestion.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions