This is an application for my own purposes to learn both java and android native development.
Currently it is being recreated in Kotlin with modern practices such as MVVM, Jetpack Compose, Dagger-Hilt DI, Media3, States, Coroutines and etc.:
https://github.com/tiesiogdvd/FlowMusicPlayerKotlin
|
|
|
-Locating of audio files. Audio scraping can be done with either MediaStore database or own recursive implementation through settings;
-Fragments with recyclerviews and adapters for various music data (playlists, folders, favorites, all songs and etc.)
-Retrieving and setting metadata (audio image, title, artist and etc.);
-AsyncTask implementation in display of lists with MetaData;
-Creating, saving playlists and music data on an SQLite database;
-ViewModel and LiveData implementation for optimizing changes (playlist changes, music source changes);
-Activity lifecycle implementations to keep positions between changes, new instances and rotations;
-Foreground service with MediaPlayer binded to activity;
-MediaPlayer service notifications with full media controls (seekbar, previous, play|pause, next);
-Actions on focus change (such as sound from other app);
-MediaSession with controls from current and other devices;
-Caching of metadata images
-Comparators for sorting lists of music data;
-Support for config changes such as screen rotation
-MotionLayout for smooth layout changes
-App themes for light and dark mode
-Swipe listener for hiding and showing NavBar controls and MusicBar
-Settings menu for various settings implementations;
-Dynamic background dependent on music bitmap and icons dependent on bitmap average brightness