Commit graph

284 commits

Author SHA1 Message Date
OxygenCobalt
d4d40c97ad
Fix compat issues
Fix some issues on older versions.
2020-12-19 15:43:07 -07:00
OxygenCobalt
f85bd85c92
Add contribution templates
Add contribution templates for this project.
2020-12-19 12:23:10 -07:00
OxygenCobalt
953e1291b6
Document code
Heavily document code that wasnt documented before.
2020-12-19 11:22:15 -07:00
OxygenCobalt
5d35dc8aa2
Fix info links
Fix links from AboutDialog to actually link to their intended locations.
2020-12-18 20:14:53 -07:00
OxygenCobalt
28692829ba
Add contribution guidelines
Add some contribution guidelines for this project.
2020-12-18 20:03:20 -07:00
OxygenCobalt
ed33813112
Add proper README
Add a proper readme and other documents for this project.
2020-12-18 17:15:57 -07:00
OxygenCobalt
4413cb1499
Refactor edge-to-edge
Change edge-to-edge to auto-enable on 27+, along with relying on styles to make the systemui changes instead of code directly.
2020-12-18 10:45:42 -07:00
OxygenCobalt
0d32ab0f7e
Add about dialog
Add an about dialog with information about this app.
2020-12-18 10:05:31 -07:00
OxygenCobalt
4933531ca3 Allow fragments to use member variable bindings
Create a binder delegate so that some fragments can use a binding as a member variable without nullability issues or memory leaks.
2020-12-16 19:36:34 -07:00
OxygenCobalt
71cd15bbf7
Fix bugs
Fix bugs with playback & edge-to-edge.
2020-12-16 16:57:54 -07:00
OxygenCobalt
fcebfda406 Fix edge-to-edge bug in landscape
Fix a bug where the drag handles in QueueFragment would be covered up by the navigation bar in edge-to-edge + landscape mode.
2020-12-14 19:38:46 -07:00
OxygenCobalt
28b6edb5d6 Add landscape support to detail fragments
Add a landscape layout for AlbumDetailFragment, ArtistDetailFragment, and GenreDetailFragment.
2020-12-14 15:55:12 -07:00
OxygenCobalt
8085c25103 Minor fixes
Do some more landscape layout fixes and remove some redundant database code.
2020-12-14 14:48:43 -07:00
OxygenCobalt
07e7e1ae5b Add landscape support to list fragments
Add a landscape mode for LibraryFragment & SongsFragment.
2020-12-14 12:01:24 -07:00
OxygenCobalt
fca42f2cb0 Add landscape support to PlaybackFragment
Add a landscape layout to PlaybackFragment.

Signed-off-by: OxygenCobalt <alexyx@tutanota.com>
2020-12-13 17:29:17 -07:00
OxygenCobalt
9b22fcb8e6 Fix landscape issues with MainFragment
Make MainFragment & CompactPlaybackFragment look better in landscape mode.
2020-12-13 17:07:29 -07:00
OxygenCobalt
7458588913 Move playback save button to SettingsListFragment
Move the ability to save the current playback state into a dedicated preference in SettingsListFragment.
2020-12-13 16:01:40 -07:00
OxygenCobalt
384d0f1a27 Use custom logging wrapper
Create a custom logging wrapper so that debug messages dont show up in release builds, fix bugs with anonymous objects and to just remove the boilerplate for normal log functions.
2020-12-13 13:30:48 -07:00
OxygenCobalt
c7549d6bfa Add queue behavior options
Add options for whether to remember the shuffle toggle & what to do when a playlist ends.
2020-12-13 12:18:43 -07:00
OxygenCobalt
6882722201 Add option to rewind before skipping back
Add an option to rewind before skipping to prevous song, depending on the user-defined threshhold.
2020-12-12 15:45:51 -07:00
OxygenCobalt
aaa1ad1a3d Add song playback mode option
Add an option to customize whether a song should play from its artist, its album, or all songs when selected.
2020-12-12 13:50:46 -07:00
OxygenCobalt
859391e69b Refactor library structure
Refactor LibraryFragment & LibraryViewModel so that LibraryViewModel only holds the data and LibraryFragment displays it.
2020-12-12 12:22:06 -07:00
OxygenCobalt
60750d976b Minor Fixes
Fix some issues with playback, album detail, and other things in the app
2020-12-12 11:30:50 -07:00
OxygenCobalt
dbd2c022a0 Improve accents
Add a new "Neutral" accent and improve the yellow accent so that its more visible.
2020-12-05 10:42:22 -07:00
OxygenCobalt
c44003907a Add audio settings
Add some settings to control how audio is being played.
2020-12-05 09:42:09 -07:00
OxygenCobalt
276c099f84 Make accent summary use string resources
Make accent summaries use string resources instead of the names of the colors in resources themselves, in order to make the names translatable.
2020-12-04 20:17:28 -07:00
OxygenCobalt
a49ad5ddad Add library item customization
Add the ability to customize library items.
2020-12-04 19:48:01 -07:00
OxygenCobalt
df637a27aa Prevent fast scroller from being truncated
Prevent the fast scroll from being truncated if there isnt enough screenspace to contain all the entries, such as in a phone's landscape mode.
2020-12-04 16:28:42 -07:00
OxygenCobalt
0a0828684c Add notification settings
Add some notification settings to change the action & the colorization.
2020-12-03 20:22:15 -07:00
OxygenCobalt
b8b6e8421b Refactor settings management
Heavily refactor the structure of settings to fix some bugs.
2020-12-03 18:35:47 -07:00
OxygenCobalt
21dbad7091 Fix bugs
Fix a ton of misc bugs that I stumbled upon.
2020-12-02 20:04:08 -07:00
OxygenCobalt
51b2749c06 Refactor styles heavily
Move a bunch of UI elements into reusable styles, along with removing literal dimen resources.
2020-12-02 19:03:17 -07:00
OxygenCobalt
63630aa42e Improve edge-to-edge even more
Eliminate a stupid third-party library and fix an elevation issue with QueueFragment as well.
2020-12-02 15:26:48 -07:00
OxygenCobalt
0079f41776 Improve edge-to-edge
Do some weird android styling wizardry to get edge-to-edge working better.
2020-12-01 20:06:51 -07:00
OxygenCobalt
91b8d226c8 Fix general issues
Fix issues where colorPrimary was the main ripple color [ew], and some QueueAdapter errors stemming from a useless function.
2020-11-30 19:45:20 -07:00
OxygenCobalt
12c14eeda6 Add edge-to-edge
Add [somewhat basic] edge-to-edge functionality for android O and up, along with the ability to enable/disable it.
2020-11-29 19:30:09 -07:00
OxygenCobalt
59036a2747 Change setting ripple color
Change the ripple on the settings to a generally neutral color instead of the gaudy colorPrimary.
2020-11-29 14:43:37 -07:00
OxygenCobalt
e15df4ce73 Improve settings
Improve how the current settings look/function, and also how settings work in the background.
2020-11-29 10:52:28 -07:00
OxygenCobalt
a5f59858bd Add accent customization
Add the ability to customize the accent.
2020-11-28 20:25:41 -07:00
OxygenCobalt
2dc7ba3420 Implement theme customization
Implement the ability to change the theme to auto/light/dark.
2020-11-28 16:17:54 -07:00
OxygenCobalt
76c1fe1d75 Add library sort mode preference
Save the library sort mode to a SharedPreferences object, soon to be extended with other prefs.
2020-11-27 20:11:24 -07:00
OxygenCobalt
6a5084beb1 Improve fast-scroll
Fix bugs and improve the UI of the fast-scroller on SongsFragment.
2020-11-27 15:23:19 -07:00
OxygenCobalt
1980dafcff Minor fixes
Fix some bugs/problems here and there.
2020-11-26 14:31:13 -07:00
OxygenCobalt
e7e683c3a9 Add playing indicator to album songs
Add an indicator to album songs that shows if theyre being currently played or not.
2020-11-26 09:53:12 -07:00
OxygenCobalt
7e0ee3d04f Add parent restoration
Add a failsafe to the persistence system that allows the parent of a playback state to be restored from the queue.
2020-11-26 08:52:21 -07:00
OxygenCobalt
1af17a6df1 Remove usages of animator to fix nav bugs
Remove usages of animator as apparently sometimes that actually causes bugs. Why do I do this to myself.
2020-11-25 21:13:23 -07:00
OxygenCobalt
3fca28dd20 Add fast scrolling to SongsFragment
Add a fast-scroll bar to the list of songs in SongsFragment.
2020-11-25 16:27:25 -07:00
OxygenCobalt
38afa8f4d2 Improve documentation slightly
Add some more documentation to the code.
2020-11-25 11:18:36 -07:00
OxygenCobalt
fd4b7b247f Use animator where possible
Use animator nav animations instead of anim nav animations to possibly prevent some leaks involving "mKeyedTags" or whatever.
2020-11-25 10:29:47 -07:00
OxygenCobalt
6ac269b1df Minor playback nav improvements
Change the playing nav system to rely off a single value, instead of multiple booleans.
2020-11-25 10:04:14 -07:00
OxygenCobalt
206d8d1c1f Add playing song nav to PlaybackFragment
Add the ability to nav to the playing song/playing artist/playing album from PlaybackFragment.
2020-11-25 09:37:06 -07:00
OxygenCobalt
6ce8c854a9 Minor changes
Change some minor things across the app.
2020-11-24 15:39:40 -07:00
OxygenCobalt
034f073bac Fix bugs with play-pause animation
Fix some bugs that will cause the animation on the play/pause button not to show.
2020-11-24 10:14:22 -07:00
OxygenCobalt
cc9a952b9a Re-add BottomNavigationView animation
Readd the navigation animation that occurs when an item is selected by the BottomNavigationView.
2020-11-24 09:33:45 -07:00
OxygenCobalt
d46b99400f Re-add playback nav
Re-add the ability to navigate back to the currently playing song. Now with a scroll!
2020-11-23 18:34:54 -07:00
OxygenCobalt
0627677569 Remove dividers
Remove the recyclerview dividers, they made the app too cluttered, so now theyre gone.
2020-11-23 16:21:46 -07:00
OxygenCobalt
2cd45f8350 Stop play/pause button from animating on creation
Re-add the fix that makes the play/pause button not animate when created initially.
2020-11-23 15:16:23 -07:00
OxygenCobalt
c11882bc7b Fix notification bug
Fix a bug where an incomplete notification will show if one changes the loop mode in PlaybackFragment.
2020-11-23 11:53:21 -07:00
OxygenCobalt
844870f4d4 Move user queue clear action into header
Move the button for clearing the user queue into the header for the user queue, so that its more consistent.
2020-11-23 10:57:23 -07:00
OxygenCobalt
1d50d24c4f Add ability to clear user queue
Add an option to clear the user queue in QueueFragment.
2020-11-22 15:46:21 -07:00
OxygenCobalt
49897c53b4 Rewrite Database to stop using room
Refactor/Rewrite the database system to be based on SQLiteOpenHelper instead of Room, as Room will keep empty columns around even after trying to explicitly delete them.
2020-11-22 14:30:45 -07:00
OxygenCobalt
d8a40fe219 Cleanup code
Cleanup a bunch of redundant, unused, and bad code.
2020-11-21 16:50:16 -07:00
OxygenCobalt
13b80585d2 Extend Popup actions
Extend the action menus to every music model.
2020-11-21 16:10:16 -07:00
OxygenCobalt
d2350de12a Optimize queue restore slightly
Reduce the amount of iterations the restoration process has to go through when restoring the queue by making it traverse albums and then album songs.
2020-11-21 11:13:40 -07:00
OxygenCobalt
d09ce20e02 Persist Queue
Implement some very unoptimized queue persistence, Ill have to make it better in the future but for now it works.
2020-11-20 20:59:39 -07:00
OxygenCobalt
da224ffda0 Fix persistence bugs with notification
Fix issues where the notification for Auxio will show up incomplete during the restore process.
2020-11-17 11:23:14 -07:00
OxygenCobalt
27777bf352 Add animation to BottomNavigationView nav
Add an animation to the navigation that occurs when an item from BottomNavigationView is selected.
2020-11-17 08:47:45 -07:00
OxygenCobalt
c19680c1f7 Temporarily remove playback nav
Remove the ability to navigate to the parent album from CompactPlaybackFragment for now, as it was causing issues.
2020-11-16 21:37:45 -07:00
OxygenCobalt
c3a61e6071 Switch from ViewPager to BottomNavigationView
Use BottomNavigationView as the main navigator of Auxio instead of a ViewPager + BottomNavigationView, primarily to fix some memory leaks and give Auxio a better UI design overall.
2020-11-16 21:09:55 -07:00
OxygenCobalt
212ffbf2c7 Fix persistence bugs
Fix some edge cases with the persistent PlaybackState restoration.
2020-11-15 20:07:40 -07:00
OxygenCobalt
6d809f4303 Implement persistence
Implement the ability for [most of] the playback state to persist even after the app's process has been killed.
2020-11-14 16:53:35 -07:00
OxygenCobalt
ee95bc1a9e Fix more queue bugs
Fix bugs with QueueAdapter where removing the last item from the user queue or the next queue would cause weird behavior or a crash.
2020-11-13 20:49:53 -07:00
OxygenCobalt
2ebee41ed0 Make QueueAdapter Adapter instead of ListAdapter
Fix a stupid amount of bugs by changing QueueAdapter to a normal adapter with a differ and addition/movement functions instead of a ListAdapter.
2020-11-13 14:56:06 -07:00
OxygenCobalt
2aa630948b Prevent the addition of duplicate queue items
Band-aid over a bug with DiffCallback that causes weird behavior with duplicate queue items by disallowing the addition of queue items if theyre already allowed.
2020-11-12 19:25:43 -07:00
OxygenCobalt
604145fb69 Improve code slightly
Add some documentation and remove useless code/bugs.
2020-11-11 19:27:38 -07:00
OxygenCobalt
2c783beaba Redesign headers/menus
Redesign the header items so they look nicer, update the PopupMenus with some new things as well.
2020-11-10 20:00:38 -07:00
OxygenCobalt
67d10009d4 Unify Queue
Make QueueFragment contain both the user queue and the next queue, instead of having viewpager between the two.
2020-11-09 15:39:13 -07:00
OxygenCobalt
b5552411b6 Add nav to playing song's album
Add the ability to navigate from CompactPlaybackFragment to the album where the current song is.
2020-11-08 15:39:18 -07:00
OxygenCobalt
a192fb52c3 Make queue a fragment instead of a dialog
Make QueueFragment an actual fragment instead of a BottomSheetDialogFragment. Really dont want to deal with the garbage BottomSheetDialogFragment does.
2020-11-08 14:37:13 -07:00
OxygenCobalt
4fb4120342 Add ability to play from user queue
Add the ability to play from the user queue, also append some extra song actions.
2020-11-08 10:11:27 -07:00
OxygenCobalt
2be7d34601 Add user queue
Add a user-generated queue, currently it isnt played from.
2020-11-07 16:06:47 -07:00
OxygenCobalt
bc7950e7af Make Queue nav destination
Fix a heisenleak by making QueueFragment a navigation destination instead of being directly instantiated.
2020-11-07 09:38:09 -07:00
OxygenCobalt
c664d22a43 Fix bugs with Queue
- Fix a bug where the queue would scroll up when the player moved to another song.
- Fix bug where queue would show even with no songs.
- Fix a crash from removing the last song of a queue.
2020-11-06 20:06:23 -07:00
OxygenCobalt
1cab11ba9c Fix compatibility
Do some minor compatibility fixes for older versions of android.
2020-11-02 19:58:11 -07:00
OxygenCobalt
188d7e047f Make Notification show currently played model
Make the playback notification show the currently played music model [e.g the genre/artist/album thats being played].
2020-11-01 19:58:20 -07:00
OxygenCobalt
344e566aa3 Update resources
Improve resource structure/naming.
2020-11-01 15:56:53 -07:00
OxygenCobalt
660f4c0eb7 Add ability to exit notification
Add an exit button to the notification so that one can exit it.
2020-11-01 15:37:01 -07:00
OxygenCobalt
5da3fa866b Refactor notification management
Remove PlaybackNotificationHolder and replace it with a util file that is easier to work with.
2020-11-01 13:58:47 -07:00
OxygenCobalt
08bd0ece3a Add media controls to notification
Add media controls to the Playback Notification [Loop, Last, Play/Pause, Next, Shuffle]
2020-11-01 11:06:26 -07:00
OxygenCobalt
09971afb42 Make PlaybackService perpetually foreground
Make PlaybackService never leave the foreground unless forced to, will add an option to close the service later.
2020-10-31 20:03:42 -06:00
OxygenCobalt
afa50ad531 Update icon
Make the Auxio icon look nicer.
2020-10-31 17:47:36 -06:00
OxygenCobalt
909cea01fa Make PlaybackStateManager use millis
Make PlaybackStateManager use millis for the current position instead of seconds, in order to be more in line with the rest of the code.
2020-10-31 14:32:44 -06:00
OxygenCobalt
e00930cc5f Add Playback Notification
Add a MediaStyle Notification for music playback.
2020-10-31 11:50:42 -06:00
OxygenCobalt
a4f55873ec Add Audio Focus
Use the built-in ExoPlayer AudioFocus functionality to implement Audio Focus [hopefully].
2020-10-30 16:07:41 -06:00
OxygenCobalt
535fc95f71 Add looping
Add the ability to loop songs either once or infinitely.
2020-10-30 14:51:49 -06:00
OxygenCobalt
ce96dd6e94 Extend Headset Functionality
Add callbacks for when rewind/close buttons are pressed on a headset, and when headsets are connected/disconnected.
2020-10-30 12:24:27 -06:00
OxygenCobalt
6fc034e376 Minor playback improvements
Improve the code design and fix some bugs with PlaybackService and friends.
2020-10-30 11:39:55 -06:00
OxygenCobalt
2ded706445 Add external media controls
Add the ability to listen to external media controls, such as through a bluetooth headset.
2020-10-26 20:08:22 -06:00
OxygenCobalt
3251b84e23 Fix memory leak with PlaybackViewModel
Fix a memory leak involving a stray context that PlaybackViewModel would store.
2020-10-26 18:39:39 -06:00
OxygenCobalt
85475b5c61 Make PlaybackService persistent
Make PlaybackService solely rely on PlaybackStateManager, allowing the service to run beyond the main Auxio activity.
2020-10-26 16:13:20 -06:00