Skip to main content

3.0 WIP 18: Add To Playlist, Sleep Timer, Improved Drag and drop and more

For a large portion of the time since the last post, I worked on redesigning the data access portion of GMMP which doesnt really have much to show off visually but I will briefly talk about it.  In the first WIP post I talked about the complex metadata view customization 3.0 will provide.  Now playing and all the metadata lists let you customize how they will look and what metadata they will display.  This was working pretty well for the layouts i had set up for demo purposes, but there was a problem of being able to get all the necessary data in order to populate the metadata views.  I had a bunch of hard coded database queries that were good enough to get some screenshots, but would not completely if i would add a lot of other fields to show.  An example would be in the track list I believe it previously only showed the trackname and time.  What if i wanted to also show the artist?  Well previously i would have had to either make the track query more complex by joining with the artist table or add separate query that did the track/artist join.  The problem with the first option is this would make every track query take longer regardless if the user wanted to show the artist or not.  The problem with the second option is this would require thousand of custom queries to get every possibly combination of metadata for the view.  Neither were acceptable to me so I decided to rework how data was being accessed.

My new solution was to design a database query builder.  It basically contains a few public methods so i can specify what type of query to do (track list query, artist list query, album list, etc).  I then specify what metadata fields are wanted, along with any conditions (like artist = so and so) and it will return the query to use against the database.  In most cases the metadata fields are generated automatically by scanning the metadata lines and the sort order selected.  So what does this all mean?  If your track list metadata line is something like "%ar% - %tn%" and the sort order is by album, the generated query will retrieve only the artist, trackname, and album.  This should lead to the best performance possible and the least amount of memory being used.

Add To Playlist

I readded Add To Playlist and it is mostly the same as it was in 2.x.  Behind the scenes its much better but UI wise it works the same.





More Now Playing Actions

I added volume control, stop after current, sleep timer, and the share option.  The sleep timer also now has an option to wait until the end of the playing song before pausing.






Drag and Drop Improvements

When I initially did the drag and drop, I couldn't find a way to use anything but the default behavior which was to long press to start the drag.  After some more research I did eventually find a way to add "handle" to start the drag and drop.  This is much more usable in certain situations like in the car.  To turn this behavior on, I added 2 new view modes to the view mode menu.  Handle and Card Handle





For whatever reason youtube would not let me upload the drag and drop video i created, so Im using the blogger video capability instead.



The preference UI is the only remaining UI task still need to be done before i can release alpha 1, the rest is basically just restoring the remaining music service capabilities that I had took out when starting with 3.0

















Popular posts from this blog

3.4.5 Release / Preview of 3.5

3.4.5 was just uploaded to google play and should be rolling out over the next few days. Changelog: 3.4.5 (2023-08-29): Added Dutch translation Fixed crash editing rules in rule groups Disable IAP donation options if Full Version Unlock has not been purchased to prevent confusion Other changes since 3.4.0: Added Finnish translation and updated other translations Added donation options to the purchase settings area Fixed crash when trying to bookmark / unbookmark currently playing song Fixed Finnish not showing up in the language select Fixed other various crashes Fixed issue where rating or editing tags could potentially split the album Fixed some of the lists/grids not refreshing after changes 3.5 Preview I've been working on some new UI options planned for 3.5.  So far I've finished a new gradient background option for now playing.  There are 2 different styles (linear / radial) with 2 different color sources for each.  One source will take from the theme colors, the other st

3.4.9

More fixes.  Check out discord for info on the 3.5 alpha. 3.4.9 (2024-02-14): Fixed tab navigation returning to the wrong view on screen orientation change Fixed queue not being focused on the playing track sometimes while using tab navigation 3.4.8 (2023-12-21): Fixed backup/restore intent receiver not working with IAP unlock Fixed crash sorting playlist contents

3.4.0

Plans for 3.4 changed a bit when google announced they will be hiding apps on newer versions of android if they dont target the newer sdks.  GMMP always tries to target one of the more recent versions of android, but the unlocker has no need for that since its essentially just a license key.  As of May 1st the unlocker will be hidden on newer versions of android to those who have not already purchased.  Because of this, the focus of 3.4 was to get in app purchases working to allow users to buy the full version after May 1st.  There is a new 'Purchase' section in the settings where the unlocker can now be purchased. One other change in 3.4 is the support for the Android 13+ media controls.  They changed around how to customize them, so that is reflected in a new 'Media Controls' section of the settings. The language can also be changed for just GMMP via the system settings The changelog itself is fairly small but I did a large update of all the libraries / dependencies t