Comments (4)
I'm aware of this issue already in #532. It is a bit of a shortcoming, but there's no strong consensus on what to do.
An undo snackbar or dialog is deeply intrusive, especially if you are just blindly jumping around and playing music. I also can't try to heuristically guess when it would be most relevant to prompt the user, since I can't psychically understand user intent by what kinds of edits they make to the queue. Vinyl had a big thing awhile back when they added a similar prompt, I want to avoid that.
From #532, I proposed these options:
- I could add some kind of "queueing" mode that's either dynamic or settings-controlled. Playing a song becomes equivalent to "Play next".
- If #407 is added, playing a song could spin up a new playback state. This way you could just jump back to your old one. This would probably be a setting normally, since if enabled by default it would lead to a lot of dead playback states lying around.
- I could add a menu, but not have enabled by default. A new setting is added to control whether you want to destroy the queue, add to the queue, or ask every time.
Let me know your thoughts on these, for now I'm closing this as a duplicate.
from auxio.
Oh, thanks! I'll track #532.
OK, here are a couple of thoughts:
- if the problematic case is when you blindly jump around to play music, then perhaps this makes a good case for differentiating automatic queues (user select one song, Auxio rightly assumes all other songs of given album/view plays after) and manual queues (user has at some point moved or added one or more songs using "Add to Queue" or "Play Next").
- A non-intrusive way could be to add an "Undo" menu item to e.g. the context menu (three-dot) of the now playing screen, which restores previous playback state. This is equivalent to your playback state idea (#407), but requires just tracking a single "extra" playback state.
Another way to deal with this problem is by further minimizing the possibility to misclick. I did not mention this, but it seems like Auxio requires a quiet accurate touch to open the context menu on a song? For example, if I press in-between two horizontal dot menus, a new song starts playing. I can also make a new song start playing by accidentically pressing slightly to the right side of the horizontal dot menu.
I tried to visualize it below, left-most image shows how it feels like the boundary of the horizontal dot menu is defined currently, whereas right-side image might be more ideal - it would create a "safe zone" if users intentionally dont want to play the song (and thus destroy their song queue).
VLC used to have this problem, but they recently fixed it, see e.g. how the context menu takes up the "full" height and right-most margin, leaving no space for accidental mispress.
from auxio.
Oh, thanks! I'll track #532.
OK, here are a couple of thoughts:
- if the problematic case is when you blindly jump around to play music, then perhaps this makes a good case for differentiating automatic queues (user select one song, Auxio rightly assumes all other songs of given album/view plays after) and manual queues (user has at some point moved or added one or more songs using "Add to Queue" or "Play Next").
- A non-intrusive way could be to add an "Undo" menu item to e.g. the context menu (three-dot) of the now playing screen, which restores previous playback state. This is equivalent to your playback state idea (#407), but requires just tracking a single "extra" playback state.
Another way to deal with this problem is by further minimizing the possibility to misclick. I did not mention this, but it seems like Auxio requires a quiet accurate touch to open the context menu on a song? For example, if I press in-between two horizontal dot menus, a new song starts playing. I can also make a new song start playing by accidentically pressing slightly to the right side of the horizontal dot menu.
I tried to visualize it below, left-most image shows how it feels like the boundary of the horizontal dot menu is defined currently, whereas right-side image might be more ideal - it would create a "safe zone" if users intentionally dont want to play the song (and thus destroy their song queue).
VLC used to have this problem, but they recently fixed it, see e.g. how the context menu takes up the "full" height and right-most margin, leaving no space for accidental mispress.
The issue is that there is zero differentiation from automatic and manual queues internally. There is no real dividing line between them anyway, a user might casually fiddle with some items, decide to play something else, and then get frustrated when they run into the same dialog again and again.
I also just don't like the undo UI flow. Undo is just not semantically correct in a playback context, it invokes edit/deletion connotations and I imagine it's confusing to most.
The more buttons uses a standard touch target size (48dp), growing it is possible but highly fiddly. Could do it though.
from auxio.
I think all those considerations regarding Undo/queues are completely fair.
The more buttons uses a standard touch target size (48dp), growing it is possible but highly fiddly. Could do it though.
Ah, that's unfortunate - I think keeping code clean is important.
In any case, I have found myself a workaround for these situations. Long-tapping activates selection mode and by consistently long-tapping whenever music is playing/manually queued, I can always ensure that the song queue is not destroyed, even if I mispress the context menu because it just selects/deselects the song.
When filing this issue I wasnt aware of this and never thought to try it, but selection mode clearly makes it much safer to queue music in inaccurate environments.
Just want to say thanks again for your super thoughtful replies and excellent program!
from auxio.
Related Issues (20)
- Missing bottom margin of player in landscape mode HOT 4
- [UX] Scroll bar for playlists, albums, artists, genres HOT 2
- Unable to load music from folder HOT 1
- Wrong "Now playing" state HOT 1
- Artist and albums splitting for no reason. HOT 1
- Chosing a music folder error HOT 2
- Change non-repeat icon in music player notification HOT 3
- Quickly moving queue items breaks queue display HOT 4
- Exclude / Include Music folders does not work HOT 5
- [Feature] Sort by "random" option HOT 1
- Propose playlist filename as playlist name when importing playlist HOT 1
- Extreme lag on 3.5.0 HOT 30
- Add a sleep timer HOT 1
- Show repeat and shuffle in android auto
- Add some e-mail/website/contact/feedback handle from within the app HOT 1
- Bookmark timestamps on the songs' timeline UI, so that user can get back quickly to banger moments :100: HOT 3
- Disable repeat when playing an entire album/artist HOT 1
- Offer "Folders" view tab when "Include folders" option is used HOT 4
- "Hide collaborators" doesn't work for mp3 files HOT 7
- read Embedded lyrics HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from auxio.