Commit graph

163 commits

Author SHA1 Message Date
OxygenCobalt
cd930554bf
deps: update androidx/kotlin
Upgrade deps chore:
core -> 1.5.0
fragment -> 1.3.4
kotlin -> 1.5.10
2021-05-30 16:42:13 -06:00
OxygenCobalt
373c54e28c
Add elevation to play/pause button
Add some elevation to the play/pause button for visual flair.
2021-05-17 18:34:29 -06:00
OxygenCobalt
a849d00248
Cleanup code
Clean up the formatting/structure of the codebase.
2021-05-02 18:49:16 -06:00
OxygenCobalt
dcd5b3235c
Update header text style
Update the style of the header text further to be cleaner and to fix issues where the name would not be properly centered on smaller fonts.
2021-04-27 19:12:07 -06:00
OxygenCobalt
e63122ce3e
Cleanup artist songs implementation
Clean up the artist song code to not rely so heavily on a hacky ActionHeader implementation and instead just use it's own viewholder.
2021-04-26 17:22:01 -06:00
OxygenCobalt
b9506bcbc3
Add artist songs list
Add a list of artist songs to ArtistDetailFragment. This moves the artist sort functionality to the song list instead of the album list.
2021-04-26 16:54:49 -06:00
OxygenCobalt
cc72ebc251
Update action header structure
Create a seperate ActionHeader object for headers with actions attached alongside a new viewholder to accompany it.
This allows action headers to be created easier without creating your own viewholder.
2021-04-25 17:15:20 -06:00
OxygenCobalt
17e5aed131
Move playback state system to hashes
Use unique-ish hashes in the playback state system instead of the less efficent and less reliable string system.
This cuts save times in ~half and improves restore times by ~1/3.

Yeah, this is like the 4th time I've changed this system but unless I have some major loader refactor I
think this wont change again.
2021-04-14 11:14:17 -06:00
OxygenCobalt
969f25176a
Update browser opening code
Make the browser opening code actually use the app picker and target browsers specifically.
2021-04-04 12:00:27 -06:00
OxygenCobalt
2b047f0d2c
Cleanup settings code
Do some post-setting refactor cleanup:
- Make some extension functions for SettingsManager for convienence
- Remove dead code from before the int migration
- Update semantics here and there
2021-04-03 11:43:23 -06:00
OxygenCobalt
0305eb0beb
Standardize settings entirely
Update the structure of the settings system to do several things:
- Finally use int preferences everywhere instead of the mix of strings & ints from before
- Create a new preference named `IntListPreference` that enables the use of integers in list preferences
- Actually centralize array values and default values into a single integers xml
- Isolate all the new migration code into a single file
- Refreshed the int tables used by data objects [DB version has been updated, will not update when other changes]

The only preference not migrated is doAtEnd since that is being planned to be retired in a future LoopMode update.
2021-04-03 10:53:16 -06:00
OxygenCobalt
4d92df7896
Heavily improve dialogs
Both improve and use dialogs
- The AlertDialog style now properly colors dialogs with the primary coler
- The accent & blacklist dialogs are now based on AlertDialog for their buttons, reducing layout complexity
2021-03-28 18:47:53 -06:00
OxygenCobalt
0a18108419
Unify fast-scroller
Completely unify the fast scroll indicators and the fast scroll thumb into a single view.
2021-03-23 14:35:32 -06:00
OxygenCobalt
ba79ac0001
Cleanup code
Do some code cleanup.
2021-03-21 09:56:20 -06:00
OxygenCobalt
824ac56bfa
Update libraries
Update libs to new versions, including the nav framework from 1.0.0 -> 2.3.4.
2021-03-20 19:54:41 -06:00
OxygenCobalt
72a7aa6744
Fix song restore issue
Fix an issue where the playback restore process would only search the list of songs for the currently playing song, running the risk of picking the wrong song with the same name.
2021-03-20 16:14:36 -06:00
OxygenCobalt
68887ffb64
Add blacklist restart functionality
When the user selects the "Save" button in the blacklist dialog, the app will now restart to reload the music library with the new directories.
2021-03-15 15:55:52 -06:00
OxygenCobalt
72877f77ee
Fix parent restore bug
Fix a bug where PlaybackStateManager would try to restore the parent from a full list of items, which raises the possibility for the incorrect parent to be chosen.
2021-03-09 09:04:48 -07:00
OxygenCobalt
f5f67a0b76
Add blacklist functionality
Add the ability to block directories from indexing. Will add a UI interface for this later.
2021-03-07 11:56:20 -07:00
OxygenCobalt
a750100aff
Fix queue edge-to-edge issue
Fix a problem where the last queue item would display behind the navigation bar when edge to edge is on.
2021-03-07 08:26:15 -07:00
OxygenCobalt
391ca70822
Update playback system
Tweak some things in PlaybackService and PlaybackStateManager to make them more elegant.
2021-03-05 14:58:30 -07:00
OxygenCobalt
466629e43d
Update music loading init process
Change the loading process so that LoadingViewModel no longer requires an application instance to start. Also move the main music loading code to an internal function.
2021-03-05 13:45:43 -07:00
OxygenCobalt
2c93e3f362
Update code style
Heavily tweak the code style across the app, doing things such as fixing returns and giving names to lambda values.
2021-03-05 12:56:04 -07:00
OxygenCobalt
fab377eba4
Improve genre compatibility
Add a new range of Winamp 5.6+ genres to further improve compatibility with old genres.
2021-03-05 11:20:22 -07:00
OxygenCobalt
a4dc35c50d
Update music loading system
Do some simplification and optimizations to the music loading system in preperation for the blacklisting system.
2021-03-03 19:46:34 -07:00
OxygenCobalt
af9fac7de2
Fix play/pause bug
Possibly fix a bug where the play/pause button would get stuck in the play position when playing from a file intent.
2021-02-25 17:55:20 -07:00
OxygenCobalt
e9abee9f64
Update documentation
Completely update the documentation throughout the app.
2021-02-25 11:36:47 -07:00
OxygenCobalt
f04ffdb59b
Update codebase
Do a variety of small things across the codebase.
2021-02-23 13:22:09 -07:00
OxygenCobalt
044f74b45b
Fix file intent crash
Keep tweaking this buggy system to fix another bug I caused where the app would crash if selecting a song while the app was inactive.
2021-02-20 21:29:20 -07:00
OxygenCobalt
89174b8011
Clean code
Do some codebase cleaning.
2021-02-20 16:35:36 -07:00
OxygenCobalt
4efbab8b05
Change file intent navigation structure
When a file intent is given, navigate to PlaybackFragment directly.
2021-02-20 13:47:06 -07:00
OxygenCobalt
cca80c65eb
Improve music loading system
Heavily improve the music loading system, hopefully fixing some edge-cases that people have been reporting.
2021-02-20 11:56:31 -07:00
OxygenCobalt
2dfd916736
Add file intent
Add the ability to view a music file in auxio when selecting the file from another app. The ability to play it will be added later.
2021-02-19 14:22:58 -07:00
OxygenCobalt
e631ddd730
Make save playback state setting public
Make the ability to force-save the playback state public in the settings menu instead of in the debug menu.
2021-02-19 11:19:45 -07:00
OxygenCobalt
0a7fbeca6d
Fix music load failure [Resolves #4]
Remove the `check` statements from `applyAlbum` and `applyGenre` that could cause the music loading to fail on some devices. Now only the first album/genre applied will stick. This resolves issue #4.
2021-02-19 10:12:58 -07:00
OxygenCobalt
e3e0015237
Rewrite loading UI
Completely rewrite the loading UI to be far more understandable.
2021-02-19 09:33:49 -07:00
OxygenCobalt
2203018947
Fix issue where seams should show up on play icon
Fix a bug where a seam would display on the play icon on certain displays.
2021-02-16 20:31:37 -07:00
OxygenCobalt
67c177ccf3
Create parent abstraction
Create a BaseModel variant for albums, artists, and genres to simplify on alot of code that should only run on those.
2021-01-30 11:18:29 -07:00
OxygenCobalt
d98d41102d
Add ru [Russian] translations
Add partial translations for Russian, along with some new translations for other languages.
2021-01-27 18:58:35 -07:00
OxygenCobalt
f779904c0c
Update markdown
Update the markdown documents for Version 1.2.0.
2021-01-19 16:00:16 -07:00
OxygenCobalt
ab2da7a5a4
Make artist IDs unique
Fix an issue where the artist IDs would not be unique in the context of the other items.
2021-01-19 14:54:12 -07:00
OxygenCobalt
406ba212f8
Update library searching
Reorder how library items are displayed when searching, no longer hiding genres/artists depending on the DisplayMode.
2021-01-07 09:25:58 -07:00
OxygenCobalt
d7087fe0b1
Add option to ignore MediaStore covers
Add an option to ignore MediaStore covers and to get higher quality covers, at the cost of slower loading times.
2020-12-31 12:17:50 -07:00
OxygenCobalt
5b2e0dc0f4
Rewrite Audio Focus
Switch from the built-in exoplayer AudioFocus to a custom AudioFocus setup that supports ducking and auto-resumes after a short interuption.
2020-12-31 11:30:32 -07:00
OxygenCobalt
33abb1419a
Refactor playing indicator holder usage
Collapse the two lastHolder values into one value inside the detail adapters in order to cut down on needless redundancy.
2020-12-31 08:05:34 -07:00
OxygenCobalt
85a8241976
Re-add playing indicator to AlbumDetailFragment
Re-add the playing indicators to AlbumDetailFragment, while removing them from SongsFragment as I personally dont think they work there.
2020-12-30 13:43:52 -07:00
OxygenCobalt
46fa300252
Refactor album detail layout
Change the album detail layout to rely on a RecyclerView entirely instead of a NestedScrollView, at the cost of some functionality I'll need to re-add.
2020-12-29 09:03:14 -07:00
OxygenCobalt
804db8b0d3
Update genre detail layout
Make GenreDetailFragment a full RecyclerView in order to fix issues with how NestedScrollView has to generate all ViewHolders in order on creation.
2020-12-28 10:48:50 -07:00
OxygenCobalt
600aa2d6f1
Move genre name code to genre objects
Instead of converting int-genres to normal genres during the music loader process, instead do it in the Genre object as a lazy initializer, so that the names remain [Probably] unique.
2020-12-25 21:19:35 -07:00
OxygenCobalt
940746f248
Make state restore use names instead of ids
Make it so that PlaybackStateDatabase stores the item data for PlaybackState/QueueItems as strings instead of ids, as ids are too volitaile if the music library changes.
2020-12-24 11:30:23 -07:00