Skip to content

Latest commit

 

History

History
280 lines (230 loc) · 10.1 KB

todo.md

File metadata and controls

280 lines (230 loc) · 10.1 KB

TODO Chronicle

Internal

  • Update billing version by November
  • Constructor inject Dispatchers, remove GlobalScope usages (okay in Singletons?)
  • Refactor repositories to expose StateFlows instead of LiveData?
    • Need to learn good merging techniques/extensions first
    • ViewModels too?
  • Rename callbacks in MediaPlayerService to be more idiomatic
  • Refactor Chapters to be managed in their own db
  • Look into ExoPlayer.experimentalSetOffloadSchedulingEnabled

Bug fixes:

STOPSHIP:

  • [ ]

Cannot reproduce:

  • Possible memory leaks (reported on op 6t)

Need to confirm:

  • [ ]

High priority:

  • [ ]

Medium priority:

  • Notification doesn't get "proc"ed on chapter change
    • Temporary solution: only display track size
  • [/] issues loading huge libraries - [X] stopgap fix: timeout for media queries has been increased from 15s to 30s - [ ] real fix: - [ ] incremental library loading - [ ] optimize repository gets to scale better (sub n^2)
  • Playback progress in library view not updated in real-time, only on library refreshes

Low priority

  • Sleep timer "end of chapter" doesn't account for changes in playback speed

High priority:

  • Android Auto (feature flagged, but should be functional)
  • Casting

Medium priority:

  • [/] Filter/Sort/View type UI for library - [/] Sort by all known fields (genre, release date, author, etc.) - [X] Sortable by basic fields - [ ] When sorting, change the grid/list item subtitle to reflect the sorted field - [ ] Filterable by all known Plex fields (genre, release date, author, etc.) - [ ] UI for this will be tricky... - [ ] Folder view + author view + collections view
  • Add more narrator to audiobook page: narrator
  • Better tablet/landscape support
  • Next/previous chapter buttons in "currently playing" screen?
    • At least look into improving UI for this
  • Show most recently listened book on login in bottom bar like Spotify does
  • More metadata in chapter list (start/end times or duration or something)
  • Favorites
  • Add a "last synced" at XXX warning, coupled loading data
  • Improve downloading experience
    • Show download status for tracks (progress, downloaded?)
    • Sync by disk option
    • "Download all" button?

Low priority:

  • Support for manual server connection (no account login)
  • Handle 403s with token refresh or logout (tokens only revokable manually it seems, so not a big deal)
  • Show warning to users if they have "store track progress" disabled for library
  • Translations
  • Bookmarks + notes
  • AMOLED theme
  • Quick scroll bar
  • Widget?

DONE:

Release 0.52.2 (Feb 25):

  • Fix broken login for single-user accounts

Release 0.51.1 (Feb 15):

  • Update billing library

Release 0.51:

(November 9th)

  • Larger artwork on currently playing screen
  • Fix disappearing downloads
  • Make "mark as watched" visible even if media not started
  • Updates for open source release
  • Fix completed books not appearing as completed

Release 0.50:

March 15th:

  • Highlight current chapter in chapter lists
  • Fix issue of thumbnails from home tab not loading
  • Manually set watched/unwatched
  • Highlighting of current chapter
  • Newly rewritten downloader
    • Fix issues downloading books to SD card
    • Significantly better download UX

(September 10th):

  • fix: scroll position no longer lost after returning from a book
  • switching servers and then starting playback will not longer cause a 401 error
  • removed MINOR memory leak during the plex user chooser process
  • library UI not always restoring properly (scroll state for library list lost)
  • Sometimes skipping forwards will loop back to start of current track
  • Seeking will no longer requires a rebuffer if content is loaded

(August 30th):

  • potential track playback ordering related to disk number metadata?
  • multiple M4Bs play back in incorrect order
  • wired headphone media buttons possibly not working
  • make more button white text
  • jumping to track/chapter might accidentally rewind sometimes

(August 11th):

  • added new view styles for library
  • prevent network changes for force-resuming
  • fix forced scroll-to-top in library following db changes
  • fixed unclearable notification issues
    • added a manual "cancel notification" button just in case

(August 10th):

  • fixed pause/play for wired headphones
  • fixed syncing + 90% issue
  • allowed multiline titles in book details screen

(July 30th):

  • Fix playback issues for multi-track audiobooks (seeking, jump to chapter)
  • Fixed possible memory leak in playback
  • Fixed problem where notification icon won't load on slow connections
  • Possibly resolved problem where library fails to load after user pin entered
  • Increased audio buffer range
  • Remote progress updates called more consistently
  • Fixed 1.7x speed
  • Audiobook screen now shows connection state, and allows retries on fails
  • App now automatically reconnects to server on changes to network
  • Better messages shown for download errors

Release 0.43:

(July 21st):

  • Allow audiobooks to be retained between library changes (but not server!)

(July 10thish):

  • Shake to reset snooze

Release 0.42.1:

  • Bug where leading zeroes in pins are trimmed

Release 0.42:

(7/2-7/8)

  • Managed users support
  • Show disk groups for tracks
  • Added ability to sort books on the library screen
  • App now temporarily pauses playback instead of lowering volume during temporary interruptions
  • Notification now disappears upon finishing a book
  • Added option in settings to change user/server without logging out
  • Warning "this will clear your downloaded books" now only appears if a user has downloaded books

(7/1)

  • Remove notification after finishing playback

(6/30)

  • Casting support (everything EXCEPT FOR keeping local metadata up to date)

Before 6/30 (forgot to keep up with this, but here's what I remember:)

  • Group by disk
  • Managed users
  • Screen reader support

Release 0.40

(6/10)

  • [X]

(6/5)

  • Headphone skip forwards/back fix
  • Service no longer starts from nothing when headphone buttons clicked

(6/4)

  • Added auto-rewind when resuming a book after a long period of no playback
  • Improved scroll performance for books with 100+ chapters/tracks
  • Fixed media button issues (6/3)
  • Library default sorting uses album name, not album sort name
  • Cleaning library no longer deletes synced files without warning
  • Jump to track in AudiobookViewModel and CurrViewModel fixed (6/2) (5/28)
  • Settings screen now shows user's settings
  • Refactor strings to xml
  • Refactor the BottomSheet stuff to be a single model
  • Show pause button on book details page if it's playing

(5/27)

  • Show book progress over book covers
  • Allow user to disable auto-refresh
  • Remove non-existing items from library on refresh

RELEASE 0.32

(5/25)

  • Finished books still show up in recently listened
  • changed the color of the toolbar in home and library
  • removed the non-oauth login option
  • changing libraries stops playback now (5/24)
  • show a warning before user clears their progress via changing chapter
  • show error messages at all choose lib/server
  • fix startforeground() not being called anr (5/23)
  • load custom chapter names
  • Settings screen flashes when current track starts to maximize
  • pressing home button adds search buttons + settings
  • fix shared libraries access (5/22)
  • flac support

RELEASE 0.31

(5/20)

  • Login via the popup thing (it's called OAuth apparently) (5/19)
  • Allow library changes w/o logging out (5/18)
  • Book duration not showing for Cosmic Computer (m4b I think)
  • Limit library updates to swipe-to-refresh + a set refresh duration to save data
  • Show chapters in m4b
  • Handle scrubbing via TrackListStateManager
  • Fix ANR/crash from "Context.startForegroundService() did not then call Service.startForeground()"
    • This will require removing the MediaServiceConnection from being a Dagger Singleton so the service is only running when there is music playing, paused, or buffering. I think it should still be scoped globally, but only start it when it needs to be started and only kill it when it isn't needed
  • Fixed a large number of crashes- still have yet to test with managed users Before recorded history:
  • Build UI for details screen
    • Add a "book info" view
  • Media playback
    • Review how to pass messages: service <---> activity/fragment
    • Become familiar with MediaController and MediaSession APIs
    • Implement Exoplayer in MediaPlayerService
    • Create media notification
      • Bind to service
  • Implement offline media caching
  • Figure out Glide integration w/ data binding if possible (idea: binding w/ two required params)
  • Settings
    • Create config to back app behavior
    • Create settings UI
  • Build "Home" view
  • Refresh button on server/library chooser screens
  • Prefer local servers
  • Change library title text from "server" to "library"
  • Add sleep timer
  • Implement setting playback speed
  • Make downloads to work beyond view lifecycle
  • Implement sending scrobbling data to server
  • Fix bottom chooser buggy in settings
  • Fix bug where only single server may be used
  • Weird playback speed issue for m4a/m4b (whatever frankenstein is)
  • Build UI for currently playing
    • Integrate currently playing micro thing into HomeFragment and LibraryFragment
  • Refactor bottom sheet into its own component
  • Fix layouts to work with low-dpi/small screens
  • Test servers when making queries
  • SD card support
  • MediaServiceConnection leak on UI destroyed