Should be self-explanatory (feedback loop between `reloadMetadata()`
changing text box current, and text box current changing calling
`applyMetadata()`).
I was testing with mp3s ripped via Apple Music and for whatever reason
the artist was in `JoinedPerformers` rather than `JoinedAlbumArtist`.
I'm not about to go down and do research on id3 so I'm just going to try
this and see if anyone complains.
We have other safeties which mean that this is not an issue during
gameplay, but in the new `TestSceneHUDOverlayRulesetLayouts` it became
apparent that allowing this to fallback (via `null` return) could lead
to weirdness.
For easier understanding, substitute "non-user-playable" with
"autoplay".
The reason that I'm bothering to do this is that if you put autoplay on
and turn on the "Selected Mods" filter, the request will actually go
through and hit web, and web will obviously return no scores. On song
select that's *maybe* fine, even though probably unintended still, but
now with the leaderboard state being global this also means gameplay
gets impacted. Which also means that if you Ctrl-Enter to start a map in
autoplay you're not going to get any gameplay leaderboard scores at all.
As time goes on, default skin layouts are getting more and more
complicated because of per-ruleset overrides. This was already sort of
apparent in https://github.com/ppy/osu/pull/31527, and I'm about to make
it worse, so before I do, this is a test scene that is supposed to make
it easier to check all possible combinations at a glance.
I'm not sure why this condition was written this obtusely, but
importantly it was also wrong. It fires when the selection contains
multiple items and only some are removed from it, like when
ctrl-click-unselecting an item from a multiple selection.