Repository navigation
Relaxify v1.2.39
This release makes Search find what you mean while you are still typing. The list now follows JioSaavn's own popularity ranking, puts the artist first when you type an artist's name, and shows your own songs at the top. Type a line of a song's lyrics and the song itself comes up. Underneath, a playlist or album you play now lights up in Your Library wherever you opened it from, and a download that fails says why.
Search
Top results while you type. The suggestion list used to re-sort JioSaavn's results: titles that started with what you typed went first, shortest title first. That threw away JioSaavn's own popularity order, so a half-typed search could put an unknown song above the hit you meant. /api/search/suggestions now keeps JioSaavn's order as it comes back. Measured on 35 real half-typed searches (Hindi, Punjabi and English songs and artists, misspellings included), the wanted result was the first row 24 times before and 32 times now, and in the top three 25 times before and 34 now. (59852ca)
The artist first. Alongside the song search, JioSaavn's autocomplete.get is asked what you are typing. When its own top match is an artist ("arij", "ap dhil", "ritviz"), that artist leads the list with a round photo, and a tap opens their page. Only that one row is taken from autocomplete. Its songs and albums were worse than the regular search: lofi and slowed copies, and compilation pressings. In the same 35 searches it named the artist for all 7 artist searches and never added an artist row to a song search. A slow lookup is dropped after 1.5 seconds, so the songs never wait for it. (59852ca)
Your own songs first. Songs from your recents, likes and playlists whose title matches what you type, at the start of the title or of any word in it, appear at the top straight away, offline too. A tap plays the song. Only titles are matched: matching artists as well put two of your Arijit Singh songs above Arijit Singh himself for "arij". (59852ca)
Find a song from its lyrics. Type four words or more, a line you remember, and the app also asks YouTube Music's song search (through NewPipe, as imports already do) which song the line is from. The answer joins the list when it arrives, usually a second or two after the rest, unless one of the first three songs already is that song. Measured on 22 typed lyric lines that do not contain the title: YouTube Music had the right song first 20 times; JioSaavn, which the list relied on until now, 10. The lookup only names the song, and a tap searches for it as usual, so it works with the YouTube setting off. Shorter searches are unchanged. (df65a09)
A suggestion's title is coral while its song plays, as a song row is anywhere else in the app. Titles no longer show &. The rows carry no extra labels: the title and artist are enough. (98d9842, 8a58a2b)
Playing from
The playlist lights up wherever you opened it. Your Library keeps a saved album or playlist under its link in lower case. Opened from Home or Search, the same album or playlist carried its link as written, or album:Name for an album opened by name. Playing it from there recorded that as where playback started, which never matched the Library row, so the name stayed white. Both sides now compare one key, collectionKey(). Your own playlists, Liked Songs and Downloads already matched and are unchanged. A song played from somewhere else, like Search, still lights no playlist. (98d9842)
Downloads
A failed download says why. The retry check did not count the attempt that had just failed. After the third failure the download waited another 16 seconds, was queued again, and was then failed with "Max retries (3) exceeded", which replaced the real error, such as "File name too long" or a refused stream. Now the third failure is final straight away and keeps its own error, which also reaches the download_failed event. The waits between retries also ran inside one of the two download workers, so a failing song held up every download queued behind it for about 28 seconds. They now run on a timer and leave the worker free. Found by the daily code audit. (6f3e359)
Docs
The guide places the language dial above Charts, where it moved in v1.2.38, and explains the label that shows where a playlist came from. (2001b92)
What's Changed
- A failed download shows the real reason, and arrives 16 s sooner without stalling the others by @subh-775 in #28
Full Changelog: v1.2.38...v1.2.39