## Description This PR adds the ability to customize the home page in-app ### Features - Add, remove, & reorder rows - Persist the configuration locally - Save the configuration to the server, allowing to pull down on other devices - Adjust view options for rows such as card height, image type, preferring series images, or aspect ratio (similar to libraries) - Pull down the web client's home rows (no plugins are supported yet!) - Preview of the home page which is usable & updated as changes are made ### Row options These are row types that can be added in-app via the UI: - Continue watching - Next up - Combined continue waiting & next up - Recently added in a library - Recently released in a library - Genres in a library - Suggestions for a library (movie & TV show libraries only) - Favorite movies, tv shows, episodes, etc Additionally, there are more row types that don't have a UI to add them (yet): - Simple query to get items from a parent ID such as a collection or playlist - Complex query to get arbitrary items via the `/Items` API endpoint ### Dev notes Settings are loaded in order: 1. Locally saved 2. Remote saved 3. Fallback to default similar to Wholphin's original home rows The remote saved settings are stored via the display preferences API. I know some server admins would prefer to push a default setup to their clients. This PR does not have that ability, but it does define a straightforward API for defining the settings. Something like the potential server plugin work started in #625 could be slimmed down to expose a URL to be added in the load order. I'm also investigating integration with popular home page plugins to allow for further customization, but will take more time. ### Related issues Closes #399 Closes #361 Closes #282 Related to #340 |
||
|---|---|---|
| .. | ||
| mpv | ||
| profile | ||
| ApiRequestPager.kt | ||
| BlockingList.kt | ||
| CodecUtils.kt | ||
| Constants.kt | ||
| CrashReportSenderFactory.kt | ||
| DebugLogTree.kt | ||
| EqualityMutableLiveData.kt | ||
| ExceptionHandler.kt | ||
| FocusPair.kt | ||
| LoadingExceptionHandler.kt | ||
| LoadingState.kt | ||
| LocalDateSerializer.kt | ||
| Media3SubtitleOverride.kt | ||
| RememberTabManager.kt | ||
| TrackActivityPlaybackListener.kt | ||
| TrackSupport.kt | ||
| TransformList.kt | ||
| Version.kt | ||