One app menu style for every picker; links go Through me by default

- AppSelect / AppMenuButton (widgets/app_menu.dart): glass menu anchored
  to its button, check on the current item, keyboard and Esc; replaces
  the Material dropdowns in Settings, player settings, Jellyfin and the
  member menu. Material menus elsewhere get the same surface by theme.
- Link page: Through me is the main choice (you can't know which sites
  need cookies); Everyone / Server fetches it sit under "Other ways".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
foxyzandClaude Opus 5.5 committed 2026-10-11 05:58:18 +03:00
1 parent 2a7b553597
commit 95cd668cfb
17 files changed
+630 -125

No files matched your search

+7 -4
View File
@@ -17,7 +17,8 @@ A five-minute tour. Details: [ARCHITECTURE.md](ARCHITECTURE.md), wire format:
+----------------------------------------+
video bytes come from somewhere else:
- a link (any http/https URL): each app fetches it directly
- a link (any http/https URL): the member who put it up passes it on
through the relay (or each app, or the server, fetches it)
- a Jellyfin item: each app plays it with its own Jellyfin account,
friends without one through the server
- a file on the host's disk: the server streams it (/m/... endpoint)
@@ -87,9 +88,11 @@ for them until they join back.
## Where video comes from
- **Link**: you paste an http(s) URL. Every app plays it directly with mpv;
a web page (YouTube, X, ...) goes through yt-dlp, which the app and the
server download and update by themselves.
- **Link**: you paste an http(s) URL. By default your computer opens it and
passes it on (it plays for everyone whenever it plays for you, cookies
included); under "Other ways" every app plays it directly, or the server
fetches it once. A web page (YouTube, X, ...) goes through yt-dlp, which
the app and the server download and update by themselves.
A pasted Jellyfin link becomes the Jellyfin item below when possible.
- **Jellyfin item**: picked in the app's library browser. Shared as "this
item on this Jellyfin server", never as a link with someone's sign-in.