Skip to main content

3.0 WIP 20: Light theme, list paging and highlighting the current song in all views

Light Theme

I spent some time making sure the light themes worked correctly and there was surprisingly a lot of work needed to get them looking good.



By default, the theme library GMMP uses lets the text to all of the views that are not the toolbar to be black.  The toolbar is smart enough to check the background color and choose the appropriate text color to display on top of that.  Since a large amount of GMMPs UI uses the primary color as the background, I had to create a lot of custom views to do something similar to the toolbar.



A dark background will give you light text and light button colors and vice versa for a light background.  Note: I still need to work on the button colors behind album artist.  Light colors on top of art is obviously preferred


Paging

In my opinion one of GMMP's strongest points has always been the ability to handle very large library, so I started testing 3.0 with a large library.  I put a 200 gb sdcard filled with music into my Moto e4 and began testing.  I quickly found out that what I had written started to struggle when throwing 20,000 songs at it.  The lists rendered fine and you can navigate through your music at a speed you would expect.. however the memory usage seemed to be very high causing random pauses when selecting items.  Fortunately google has something exactly for this in their Paging Library to handle this.  What this does is load data around where your list is current positioned.   In the case of having a list with 20000 songs, at any given time only a few hundred will be loaded into memory to be displayed in the list.

I am still in the process of working out all the kinks with the paging library, but my initial implementation seems to work pretty well.  The lists will show up almost immediately (vs taking a few seconds to load) and I no longer experience the random pauses when making selections.  Now some things do not play too well with this library like the fast scrolling, but I will either get things working with the fast scrolll library, write my own implementation of fast scroll, or come up with an alternative to navigate large lists fast (perhaps something like android auto does with the letter selection).

Song Highlighting


One of the most frequently requested features I received was the ability to show the current playing track in all the list views instead of just now playing / folder view / queue view.  Every view that shows track lists besides the bookmark view should now highlight the playing song if its in the visible list.  The video below shows that in action.



I also made a few other additions like syncing with the android media library and loading the entire list into the queue when selecting a song (this now includes the full track list view as well)

I am still targeting a late May release for the first alpha.  The player is in pretty good shape now but has not yet gone through any sort of significant testing, so there is the potential for a delay if I run into some bad issues.

Popular posts from this blog

GMMP 1.3 Released! ReplayGain, cuesheet, bookmarking, 6 new skins, and much more.

After about a month and a half of hard work, 1.3 is finally available for download on google play and this blog.  I've gone with the pendulum screenshot for the main image for a long long time and with the new album art as a background feature I decided to pick a new song to use. Changelog: 1.3.0 (06/14/12): New Features: -Added ReplayGain support -Added single file cuesheet support (.cue files) -Added manual bookmark option to the now playing menu -Added auto bookmarking options (Preferences -> Audio -> Bookmarks) -Added option to remove a song from the active playlist after it is played (Prefs -> Playlist -> Remove After Played) -Added dsp limiter with customizable attack and release settings (reduces audio distortion and clipping) -Added EQ and Limiter toggle buttons to the equalizer view -Added 9 new EQ presets: Bass Max, Bass & Treble, Classical, Techno, Club, Reggae, Soft, Rap, and Metal -Notification controls added to 3.0+ -The current play

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

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