Skip to content

feat(samples): device switcher lobby - #1311

Draft
renefloor wants to merge 4 commits into
v2from
feat/device-switcher-lobby
Draft

feat(samples): device switcher lobby#1311
renefloor wants to merge 4 commits into
v2from
feat/device-switcher-lobby

Conversation

@renefloor

Copy link
Copy Markdown
Contributor

🎯 Goal

Fixes FLU-716
Make the device control selection closer to design: https://www.figma.com/design/W7pOBtNINkAh14XdCJQKuB/Video-SDK-Design?node-id=408-42575&m=dev

🛠 Implementation details

I've updated the call controls in the lobby screen.
On purpose I did not move anything to the SDK yet. The StreamRadioIndicator and the StreamContextMenuAnchor are candidates for core. The LobbyDeviceControls can move to the stream_video_flutter sdk. We should do that when we finalize the complete new lobby component.

Also out of scope is the mic volume as that needs webrtc changes, see FLU-714
image

🎨 UI Changes

Add relevant screenshots

Before After
image image
image image

@renefloor
renefloor requested a review from a team as a code owner August 21, 2026 11:23
@coderabbitai

coderabbitai Bot commented Aug 21, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@codecov

codecov Bot commented Aug 21, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 59.84252% with 51 lines in your changes missing coverage. Please review.
⚠️ Please upload report for BASE (v2@f3fd83d). Learn more about missing BASE report.

Files with missing lines Patch % Lines
..._system_candidates/stream_context_menu_anchor.dart 0.00% 21 Missing ⚠️
...sign_system_candidates/stream_radio_indicator.dart 0.00% 12 Missing ⚠️
...system_candidates/stream_context_menu_heading.dart 0.00% 11 Missing ⚠️
.../design_system_candidates/stream_select_input.dart 91.56% 7 Missing ⚠️
Additional details and impacted files
@@          Coverage Diff          @@
##             v2    #1311   +/-   ##
=====================================
  Coverage      ?   18.99%           
=====================================
  Files         ?      341           
  Lines         ?    26876           
  Branches      ?        0           
=====================================
  Hits          ?     5106           
  Misses        ?    21770           
  Partials      ?        0           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@renefloor
renefloor marked this pull request as draft August 21, 2026 14:04
@renefloor

Copy link
Copy Markdown
Contributor Author

renefloor and others added 2 commits August 21, 2026 16:31
The lobby pickers were outline buttons, which gave them pill corners and
the button's hover treatment. Design has since specified a dedicated
`Web / Select Input`, and the lobby uses it for exactly these two fields.

Adds a dogfooding-local StreamSelectInput: the field only, so one field
can still drive two selections the way the audio field picks a microphone
and a speaker from a single menu. Density follows StreamTextInput rather
than the denser web spec, so a select and a text input line up in a form.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
StreamSelectInput, StreamContextMenuAnchor, StreamContextMenuHeading and
StreamRadioIndicator implement design-system components that
stream_core_flutter does not ship yet. They were dogfooding-local; move
them to src/widgets/design_system_candidates so the SDK and every sample
can use them, and so there is one obvious place to lift them out of when
they graduate to core.

They now depend on stream_core_flutter directly rather than on the video
barrel, and the select input gets a widget test covering its border and
ring states, which cannot be exercised from the running app.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant