A release about how the app feels under a thumb, and one about the queue being somewhere you can go.
Built on MangoTile 1.0.2.
Every gesture follows your finger, and lets go at the speed your hand had. A report after 1.1 that
"doing any gestures is a bit rough" turned out to be four separate faults being felt as one. The largest:
a settle handed the finger's velocity accepted it and ignored it, because only a spring reads that
argument and every settle was an easing curve — so each gesture ended with the speed jumping to whatever
the curve started at, at exactly the moment your hand was judging the result. Everything that follows a
drag now ends on a critically damped spring given the gesture's own velocity: still an ease-out, with no
bounce and no seam where the finger lifts.
The player is dragged rather than nudged. Pulling the strip up used to move it 26dp, decide, and then
play a canned animation from wherever the page had got to — your hand doing one thing while your eye
watched another. The page's position is the drag now, and letting go only finishes a movement already
underway. One detector owns both of the player's axes, so a thumb thirty degrees off the horizontal no
longer starts the sideways swipe and the downward push at once.
And the player pages between tracks. The neighbouring tracks are laid out either side and your finger
moves all three, so the track that lands is the one that was visibly coming — instead of the screen
springing back to the middle and the change arriving afterwards as its own choreography, one movement of
which went the opposite way to the hand. Only the face pages: the slider, the times and the transport
belong to the player rather than to the track, and a swipe that carried the play button off the screen
would be moving the furniture to change a record. At the end of the queue the page resists instead of
flying a quarter of the screen and coming back to the same song.
The strip carries the top of the playing cover, because a player dropping back into a flat black bar
ends the movement by turning the artwork into a black rectangle. It is the same square the full player
draws — the cover at the screen's width, hung from the top of the page — so the strip shows its top,
pulling up draws the rest out from underneath, and the size never changes on the way.
The queue is a screen, one pull further up. The player comes out of the strip; pull it up again and
the queue comes out over it. Pushing it back down anywhere on the page, tapping its title, or Back puts
it away — the list hands the push over as soon as it has nothing left to scroll to, so a drag from the top
of the list or from the empty space under a short queue travels with your finger like any other page. The
way in has a mark of its own, a caret in the space under the transport, which opens it on a tap; it opens
on the track you are listening to rather than the top of a queue whose first forty songs have played.
Hold a row to pick it up, swipe it aside to remove it. Holding lifts the row under your finger and
dragging carries it a place at a time, with the list creeping while you hold it against either end.
Swiping sideways — either way — takes it out, with the word "remove" uncovered behind it at full strength
exactly where letting go would commit, so you are told where the threshold is instead of finding it out by
losing a song. There is no menu on this screen at all: both of the things you come here for are the row
itself moving under your hand. Three new switches on settings → gestures cover the lot, because the
upward pull shares an axis with the push that puts the player away and the sideways one shares a list with
scrolling.
Fixed: editing an album's tags did nothing on a release build — which is every build anyone has
installed. It worked in development throughout and listed an error per track on a phone. jaudiotagger
finds the class for each tag field by name and copies frames through a reflectively located constructor,
and minification is invisible to both, so the library could no longer build the field it was asked to
write. It did not say that: the message named the value, which is why the first report read as a problem
with Cyrillic text and was not one.
Fixed: the panorama went on taking a sideways swipe for a moment after it had visibly stopped moving,
so a scroll became a section change; and a band of tinted artwork appeared over the library while the
player was on its way up.
Scrobbling, the lyrics, the online cover lookup, sorting and the rest of playback are unchanged. The APK
carries the same signing certificate as 1.0, 1.0.1 and 1.1 (SHA-256 494018a9…2acf7c09), so it installs
over any of them as an update and keeps your settings, favourites, play counts and queue.
minSdk 26 · compileSdk 36 · GPLv3 · third-party notices are in the app, on settings → about.