Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Keep tiles in a stable order #2670

Open
wants to merge 6 commits into
base: livekit
Choose a base branch
from

Commits on Oct 28, 2024

  1. Keep tiles in a stable order

    This introduces a new layer of abstraction on top of MediaViewModel: TileViewModel, which gives us a place to store data relating to tiles rather than their media, and also generally makes it easier to reason about tiles as they move about the call layout. I have created a class called TileStore to keep track of these tiles.
    
    This allows us to swap out the media shown on a tile as the spotlight speaker changes, and avoid moving tiles around unless they really need to jump between the visible/invisible regions of the layout.
    robintown committed Oct 28, 2024
    Configuration menu
    Copy the full SHA
    3b5419e View commit details
    Browse the repository at this point in the history
  2. Don't throttle spotlight updates

    Since we now assume that the spotlight and grid will be in sync (i.e. an active speaker in one will behave as an active speaker in the other), we don't want the spotlight to ever lag behind due to throttling. If this causes usability issues we should maybe look into making LiveKit's 'speaking' indicators less erratic first.
    robintown committed Oct 28, 2024
    Configuration menu
    Copy the full SHA
    70ddefc View commit details
    Browse the repository at this point in the history
  3. Make layout shifts due to a change in speaker less surprising

    Although we try now to avoid layout shifts due to the spotlight speaker changing wherever possible, a spotlight speaker coming from off screen can still trigger one. Let's shift the layout a bit more gracefully in this case.
    robintown committed Oct 28, 2024
    Configuration menu
    Copy the full SHA
    5c5ddd4 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    255989b View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    d658171 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    8a3766e View commit details
    Browse the repository at this point in the history