android: your own Soulseek interests, and who the server says is like you
Community's fourth tab is Taste: the likes and hates this client publishes to the Soulseek server (slsk_interests_mine, slsk_interest_set), added and taken back as chips, and the people the server ranks as close to them (slsk_similar_users) — a row each into the peer sheet the app already has. Every declaration asks the server again and the chips stay quiet until it has answered, the way the desktop does, because the ranking only moves when its input does. The lists live in taste.svelte.js, read once per account when the tab is opened; the mock walk declares a like, watches the match grow, declares a hate and takes the like back.
This commit is contained in:
1 parent
7eae0ee945
commit
e693dfb868
6 files changed
+195
-6
No files matched your search
+13
-1
@@ -22,7 +22,7 @@ implements is `research/mobile-mockup/` (gitignored; see its README).
|
||||
| `src/mobile/contacts.svelte.js` | the local view of a person on the network: a petname, a group, a note and the two marks (`contacts_meta_list` / `contact_meta_set`) — this phone only, published nowhere |
|
||||
| `crates/tauri-plugin-media-session/` | a Tauri plugin with a Kotlin foreground service (`MediaService`) that owns the `MediaSession`, the MediaStyle notification, audio focus and the becoming-noisy pause. The audio never passes through it; it is what keeps the process alive in the background and what the lock screen shows |
|
||||
| `src/mobile/Sheet.svelte`, `HalfSheet.svelte`, `Lane.svelte`, `Cover.svelte`, `Release.svelte` | the player (art / lyrics / queue faces, container transform from the mini bar, drags), the bottom sheets (track, record, sort, the page overflow, the sleep timer), the waveform lane, the two card pieces (a long press on a card is its sheet) |
|
||||
| `src/mobile/screens/` | Home, Search (the library half: records and artists here, tracks through `library_track_search`), Library (albums / artists / tracks / playlists), Album, Artist (the library's shell at once, the catalog dissolving in: portrait, Popular, discography with what is here marked), CatalogAlbum (a catalog record, rows the library has play), Playlist, Community (sign in; rooms, chat, buddies — the Soulseek side; the private layer waits), Room, Thread, You (Appearance switches, real) |
|
||||
| `src/mobile/screens/` | Home, Search (the library half: records and artists here, tracks through `library_track_search`), Library (albums / artists / tracks / playlists), Album, Artist (the library's shell at once, the catalog dissolving in: portrait, Popular, discography with what is here marked), CatalogAlbum (a catalog record, rows the library has play), Playlist, Community (sign in; rooms, chat, buddies, taste — the Soulseek side; the private layer waits), Room, Thread, You (Appearance switches, real) |
|
||||
| `src/mobile/prefs.svelte.js` | Appearance, kept in localStorage: ambience, accent from artwork, motion |
|
||||
| `src-tauri/tauri.android.conf.json` | merged over `tauri.conf.json` on Android: one window at `mobile.html`, no desktop resources, `minSdkVersion` 26 |
|
||||
| `src-tauri/gen/android/` | the generated Gradle project (`npx tauri android init`); `minSdk = 26`. Gitignored |
|
||||
@@ -176,6 +176,18 @@ dimmed cards that open the catalog record page, the totals remembered in
|
||||
The server's room list on Community is filtered by name and shows 80 at a
|
||||
time with a way to the rest (Soulseek lists hundreds).
|
||||
|
||||
Community's fourth tab is **Taste**: the interests this phone has
|
||||
declared to the Soulseek server (`slsk_interests_mine`, `slsk_interest_set`)
|
||||
and the people the server ranks as close to them (`slsk_similar_users`), a
|
||||
row each into the peer sheet. A like or a hate is a chip and tapping one
|
||||
takes it back; "Add a like" and "Add a hate" declare a new one. Every
|
||||
declaration asks the server again and the chips stay quiet until it has
|
||||
answered, because the ranking only moves when its input does. The lists
|
||||
are this client's own — the backend keeps them and re-declares every one
|
||||
at login, since the server's copy belongs to the account and another
|
||||
client signed in elsewhere can change it under us. Mock-walked only: a
|
||||
live sign-in and the server's own ranking are Kyle's to see.
|
||||
|
||||
## A peer, and their shares
|
||||
|
||||
A raw result's ⋯ (or a long press on its head) is the peer's sheet: play
|
||||
|
||||
Reference in new issue
Block a user