Version 2.14.0
TestFlight build 135 · Play version code 156
Search
- Searching and browsing are two states now, and they hold still. Putting the keyboard away used to swap the screen out from under you — your recent searches would vanish and the browse grid would take their place. Tap the field to search, Cancel to go back, and nothing moves in between
- Scrolling your results used to do the same thing, for the same reason. It doesn't now
- Your search filters are remembered. They reset to "Library, everything" every time you left the tab, without saying so
Genres and moods
- Opening a genre gives you the same screen wherever you opened it from. There were two, and the one behind Library was the older of them
- It is shaped like the rest of your library now, with full-width Play and Shuffle, and shows nine albums where it used to show three. The artwork at the top was never the genre's — it was whichever album happened to sort first, blurred
- Moods work the same way as genres, rather than being a list with nothing to do
Everywhere else
- A background image shows behind every screen, not just the three tabs. Setting one and then opening an album used to drop you back onto a plain colour
- Downloading an album closes the sheet, instead of leaving it open behind the one that replaced it
- A library with no genre tags says so, rather than showing an empty screen
Under the hood
- The search tab's state was the text field's focus, which is why the screen changed whenever the keyboard did. It is an explicit state now, and a blur no longer touches it
- The app had exactly one layout animation in it. The Reanimated test mock carried no layout animations at all, so
FadeInwasundefinedunder Jest and any animated component was untestable — which is how it stayed that way. Fixed, and the search tab now fades between its states and staggers its browse tiles, all of it collapsing under reduced motion - The genre header is gone: 365 lines for a blurred copy of one arbitrary album's cover, a hardcoded inset and a title
- First tests for the search body — nothing pinned that branch before, which is how it stayed keyed on focus