abarisain / dmix

A modern MPD Client for Android.
Apache License 2.0
590 stars 198 forks source link

[whishlist] User Interface suggestions #266

Closed opfeifer closed 10 years ago

opfeifer commented 11 years ago

Hi, I like mpdroid very much, yet would like to make a few UI comments and suggestions to make it more intuitive:

  1. I find the function of the Home/now playing button next to the List Header (Artists, Albums etc.) very counter-intuitive. I always tap there to go back/up in hierarchy and end up cursing. I know that the android back button does what I want to, but somehow I can't get used to it, plus mine is positioned poorly, like on most phones. At least the List header itself should have a long-tap context-menu attached to it, so you can choose to add the whole list (Album or Genre) or go back up. To be taken home here is especially annoying because of (2) the scroll position will not be retained once you go back home.
  2. I second that the SCROLL POSITION of any list (Artists, Albums, Genres, ...) should be remembered. It is awful to have to start with 'A' once you made your way down to 'T' while browsing for the whatyoumaycallits and clicking the home button unvoluntarily.
  3. Should be easy: The now-playing-footer on any of those list views is great, but can THIS (the Song Title or Album Artwork) be a home/now playing button?
  4. Let us CYCLE ! (This should be easy as well!) It is GREAT that one can suppress and change the order of the list views!! It would be even better if those would be available not only through the tiny note icon on the now-playing-screen, but also by simply swiping left! This way, you could simply cycle by swiping: ... <-> Artist <-> NOW PLAYING <-> current Playlist <-> [Folder] <-> [...] <-> Album <-> Artist <-> Now Playing <-> ...

This would be especially useful with (2) scroll positions remembered!

  1. The option to use Album Artist Tags instead of Artist Tags is a good idea, but not useful right now because it suppresses ALL Artists that do not show up in Album Artist tags. So, if, like mostly the case, an album isn't tagged with album artist tags on top of artist tags, it won't show up at all. Please fix! (by automatically using the Artist Tag for any Album without Album Artist Tags. This way compilations can be kept together and don't clutter the artist list, yet you don't loose all those single-artist-albums that aren't double-tagged)
  2. Seeing ALBUM ART Thumbnails in Album list view would be great! (It would also nicely set apart full albums from those orphaned single tracks everyone has in between) Being able to use COVER FLOW on landscape rotation of the Album List view would be awesome of course. Am I asking too much?

I'll go ahead and donate something now! :-)

abarisain commented 11 years ago

Okay ! First of all thanks for the donation.

About the UX : 1) I don't really want to change it. I'm using the standard API, and I'm following the Android guidelines regarding what this button must do. The long press is a good idea, but I'm not sure I can implement it easily.

2) Yeah, it should be. Sadly it's pretty hard since the list is destroyed, forgotten, and then redownloaded from MPD. There are a lot of things to consider (what if the first item disappears ? do I scroll back to top ? what if new items have been scanned by MPD, where do I scroll ?) and sometimes the user wants to be scrolled to the top. The solution is obviously a better navigation pattern.

3) It was when I first implemented it, but since I was not able to retain your navigation, I removed it. Too easy to accidentally tap and boom, your position in the artist/album/etc list is forgotten. It really sucked.

4) I found cycling between everything not the ideal solution. It does not fix the position issue (if you are deep into an album, you still won't be able to go back to the queue) and is not ideal (swiping a lot is not great, even if there is the menu). I'm still struggling to find the ideal solution to all of this. Google decided to add the new Slide out menu pattern, but this conflicts with my swipable views, which I like a lot. What I want to implement is more like a sliding window for now playing, just like Google Music.

Showing everything in a single window also keeps me in trouble when it comes to memory. The separation helps a lot.

About the other two :

1) Sadly, this is an issue server side, and I can't do much about it. I hate it as much as you do :/

2) It's being worked on https://plus.google.com/110502740428211582574/posts/FY1eCTBkLQK and available in the betas (it's still crashy). About cover flow ... No sorry, I hate cover flow too much on my iPhone to implement one ;) Plus, I think that Apple holds some copyright on it, and even if I doubt they would care, I don't want to risk anything.

Please also note that I'm really struggling to find enough time to work on mpdroid, and though I do not know when I will. It's already been three months since the last beta :/

ZenithDK commented 11 years ago

I'd really like to see 3 as well, having to press the top-left corner is unintuitive for me, and I would like it to be a back button as well. As for the scroll-stuff, couldn't it be nicer if you nicked the super-fast scroll implementation that I think Google uses for contacts? The one where you start scrolling down, and then a big handle appears you can grab and scroll faster, and it displays a letter indicating where in the alphabet you are. Or take something similar to Samsung, where you have a row of letters from A-Z in the righthand side, that instantly jumps to that letter, and the main area is where you adjust by scrolling up and down?

As for navigation, maybe be inspired by Spotify? I think their app works really well on Android.

abarisain commented 11 years ago

The super fast scroll is implemented ! It's exactly what I use whenever possible (if not, it's a bug).
Samsung's approach is a 1:1 copy of iOS' mechanism, and I want to stick to native Android stuff.

About that back button, I know, really, but I am just following the (stupid) Android guidelines :/

I'm doing some mockups for the navigation.

ZenithDK commented 11 years ago

Oh, okay :) I've been hacking on Mopidy so I've only been experimenting with a very small library, so I could not see how it behaves as I have less than a screenfull worth of artists and tracks.

I'd like to help out on the UI, but I'm new to app development so it will take me some time to get up to speed and understand how things work.

kingosticks commented 11 years ago

Another vote here for 1 and 3.
1) I've been using the app on-and-off for weeks but embarrassingly I still can't get the hang of the action bar behaviour. The small back arrow graphic makes it looks like a back button and I've pressed it so many times in error because of this. At least now I've discovered the double-back to quit setting it's getting less frustrating. I'd rather it didn't do anything and now-playing was another action icon i.e. next to search in the top action bar. 3) What if this was a long press?

And now for some of my own! 5) On 'Now Playing' I'd prefer splitting the library buttons out, I'd ideally like to jump to playlists and artists. Perhaps what is shown here could be customisable? Since I don't ever use outputs one I'd love to get rid of that. It's almost like you've got two action bars, one at the top and bottom, might it be possible to merge them and be consistent over all screens? 6) On 'Play Queue', it would be cool if when selecting multiple songs you could drag them all around as a group or move all of them to first/last. The behaviour when multiple are selected is weird, it looks like it will let you move the one you're dragging but then it goes back to where it was. If dragging multiple isn't possible then disabling the drag feature when multiple are selected would be nicer. 7) More integration with the Android Share facility. I see you can do it to the currently playing song but it'd be nice to have it available when navigating the library too.

abarisain commented 11 years ago

1) I know, but again it's the Android Guidelines http://developer.android.com/design/patterns/navigation.html I could make it "smart" so it always get back to the library tab you want, but this would be even more confusing. I think that making it do nothing is even worse. Now playing used to be another icon, but it is not anymore. Wasted screen space.

I hear your complaints about this, but I really want to stick to Google here. Even if it's obviously a widely misunderstood function.

3) it requires a custom implementation and is not like that in any application, but this is my favourite solution.

5) There are two action bars ! It's called the split actionbar, and until not so long ago Gmail used it. I have too many stuff to show to fit in the top actionbar, and please remember that I have to take all screens into account (even the super narrow ones like the Nexus S). Even if you don't need the output buttons, some need, and making it configurable is not a perfect solution.
I'm still trying to find something better for this navigation. Maybe I'll take some inspiration from play music

6) The drag feature should be disabled when selection mode is enabled, I think I missed this one. I will fix this ! (I don't see how I can implement multiple selection drag and drop, sorry)

7) I don't really know what the share button should do while in the library. Do you mind telling me what you expect from it ?

kingosticks commented 11 years ago

Thanks for the really quick reply. 1) That page describes the "up" button as for hierarchies, perfect for navigating up (back!) and down the library, rather than always going right back up to the 'Now Playing' screen. Presumably google's music app must do a similar thing. 3) Spotcommander uses a swipe gesture for this, the benefit being you can undo an accidental swipe up while scrolling (providing you don't release!). 7) In the spotify android app I can share any song I come across and this allows me to easily use the song details /link in other apps (posting to facebook/twitter/messages) or save it for later in notes etc. Maybe this is more useful with streams and other internet resources rather than local files (I use mopidy rather than mpd).

abarisain commented 11 years ago

1) According to this page, the button must go back to either the library screen (Book 1 -> Book 2) or to the adequate listing. (Library on Artists, click an artist then an album, press up and you should end up on albums :/)
I don't like this because everybody has a different interpretation of it. I also don't really see the usefulness of simply duplicating the back button. I'll study google music more, it's been a while since I used it.

3) I'll check that out, but I'm not sure MPDroid's architecture allows me to do that easily

7) Sure, the only problem is that I don't think I can get the spotify link from mopidy

kingosticks commented 11 years ago

1) If I do as you describe (Library on Artists, click an artist then an album, press up) I am taking straight to "Now Playing". 7) Just the basic info of the element would be useful i.e song/album title and artists name .

abarisain commented 11 years ago

1) So just to be sure, you want the up button to take you straight to now playing ?

kingosticks commented 11 years ago

No, sorry if I'm unclear. I do not want that behaviour as I find that very unintuitive. But that is exactly what I get on my phone right now.

abarisain commented 11 years ago

Oh yeah, this needs to be changed. But I want to get rid of the whole "hey the now playing menu requires you loose wherever you are in the library, have fun"

kingosticks commented 11 years ago

The last time I looked at Android apps was back in 1.6 so I am way out of touch on all this stuff, particularly how you persist state. But I had no idea until today there was a github account for MPDroid (and a very active one at that). It's such a useful app and I'd love to see/help it keep improving.

ZenithDK commented 11 years ago

I finally got my setup running and played a lot with MPDroid this evening, a few suggestions:

Library view

Album view

Now Playing/Play queue

I had a few occasional crashes, but nothing too bad - but worth investigating for sure :-) Will don my gloves at some point and start hacking on some of these suggestions.

abarisain commented 11 years ago

Library view

1/ Yeah, I'm already looking into it. Nothing satisfying came out of it yet. (Don't know how I should break it into items, and how I would handle browsing your library) It has been suggested a lot, but I also dislike heavy usage of the hamburger menu. I also really like the Now playing <-> queue swipe.

"the search action can be moved to the "Menu" button which is currently unused" What do you mean ? The search action is an actionbar button, just like in every other Android app.

2/ Sorry, but I really don't see the point. It kind of clutters the ActionBar title for little gain

3/ The current implementation of the fastscroll (alphabet indexed thumb) is bugged. I can make it better, but I doubt it will be perfect.

4/ You got my attention here, care explaining ?

5/ Why not, but I need to subscribe to song progress change. It can be done but if I implement the hamburger menu, there will be no need for the miniplayer anymore since you will not loose your current navigation.

Album View

6/ I thought that was already the case ! Definitely something to implement.

7/ The triangle is a bad indicator, I should use a three dot button (and make it bigger). Making the album info react to touch is also a great idea.

8/ Yes. The search is not (and I really doubt will ever be) context aware.

Now Playing/Play queue

9/ There's not much space left on that screen, it would end up crowded. Maybe as a list header, disappearing when you scroll. I also have to check if I have the length while on this list.

10/ Sorry, but I will probably not implement that. I think that it's doable but not that easy to work. These lists are meant for reordering items one by one.

11/ Yup. You might have noticed that I already implemented a part of it.

12/ Are you talking about the Queue search ? How would i put this into a menu option ? It's a list filter, so it needs to stay on the screen.

13/ There used to be a triangle, which was horrible to position correctly. I'm not sure a visual cue is really necessary anymore, and this one made the interface feel a little bit more bloated. Maybe I'll bring it back, it's true that you don't guess that you can tap on the names.

abarisain commented 11 years ago

I just pushed an update which makes MPDroid use the Navigation Drawer.

This removes the swipe for now playing <-> queue (allowing me to have less annoying sliders and more sliding possibilities), but I'm not sure it's better since you now need two taps instead of a swipe to show the queue ...

I'm not done with this yet, it's only a preview. I now need to sort out the menus a little.

It will be in the next beta

abarisain commented 11 years ago

Here is the result : http://imgur.com/a/qcV46

kingosticks commented 11 years ago

I'm keen to try this but when I build and install the git version it crashes as soon as I start MPDroid. I've no idea how to debug this. Any ideas?

abarisain commented 11 years ago

Do you have a stack trace from logcat ? Are you on a tablet ? (I didn't test the tablet version yet)

kingosticks commented 11 years ago

I'm on a phone (Desire S), I've not used logcat but I will try and get something out of that.

kingosticks commented 11 years ago

Oh wow now that is cool! http://pastebin.com/Mw7fq2p4

abarisain commented 11 years ago

The error makes no sense and shouldn't happen. Please "clean" the build (in eclipse, Project -> Clean), recompile it and launch it again on your phone :)

kingosticks commented 11 years ago

OK, did ant clean since I'm still not setup in eclipse and working now. Thank you. And I personally really like it.

steinerlein commented 10 years ago

Hey there! Thanks a lot for your awesome work on mpdroid! Two suggestions: I would kill for a now playing menu in the notification drawer like there is with most music playing apps. You mentioned above that you do not know how to keep track of the position in a list because you pull the list every time from the mpd server. You could log the current "top item" of the list as a string and after returning and reloading the list search for that string. you also could only reload the list after five minutes of inactivity or when triggered by the user. This way it is easier to track the position in the lists.

Another feature I would appreciate is the option to control the volume with the volume rocker of my phone.

Even if that was more than two, thanks for listening!

avuton commented 10 years ago

@steinerlein Your first request: #296

abarisain commented 10 years ago

And the second request is already solved by the drawer :)

The third one is also solved in the betas.

abarisain commented 10 years ago

As of ce50f312a034cb31b052831546322172f30515d4 the now playing <> play queue swipe is back