Package-level declarations
Types
Custom RecyclerView that has an empty view to show when empty and hide when not, automatically, just like ListView's setEmptyView() method. This is used to only show the player when an actual song is selected, else the player shouldn't be visible Code taken from: https://stackoverflow.com/a/27801394/14200676
A custom ViewPager2 class that can scroll without triggering ViewPager2.OnPageChangeCallBack with the method scrollByCode(). This is to distinguish between when the user changes page a page change happens programmatically. Does not extend ViewPager2 because it's final. Thanks, Google :(
The app supports two types of navigation, one of them is a sidebar. The sidebar can be toggled in the settings. It is basically a collection of radioButtons with their respective actions. In standard Android there is no option for sidebar navigation, so we had to create our own