wolfskin/app/src/main/java/com/github/damontecres/wholphin/util
Ray fcba1c7444
Customize home page (#803)
## 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
2026-02-12 19:54:51 -05:00
..
mpv Fixes MPV crash when playing next up (#772) 2026-01-25 21:38:41 -05:00
profile Add optional AV1 software decoding via dav1d for ExoPlayer (#721) 2026-01-18 18:35:41 -05:00
ApiRequestPager.kt Rework internals of ApiRequestPager (#518) 2025-12-20 14:39:48 -05:00
BlockingList.kt Rebrand 2025-10-15 15:27:30 -04:00
CodecUtils.kt Rebrand 2025-10-15 15:27:30 -04:00
Constants.kt Customize home page (#803) 2026-02-12 19:54:51 -05:00
CrashReportSenderFactory.kt Dev: Move services into their own package (#214) 2025-11-13 19:39:37 -05:00
DebugLogTree.kt Add setting to increase logging verbosity (#354) 2025-11-30 17:27:41 -05:00
EqualityMutableLiveData.kt Rebrand 2025-10-15 15:27:30 -04:00
ExceptionHandler.kt Rebrand 2025-10-15 15:27:30 -04:00
FocusPair.kt Rebrand 2025-10-15 15:27:30 -04:00
LoadingExceptionHandler.kt Rebrand 2025-10-15 15:27:30 -04:00
LoadingState.kt Customize home page (#803) 2026-02-12 19:54:51 -05:00
LocalDateSerializer.kt Add integration with Jellyseerr/Seerr (#558) 2026-01-12 16:35:27 -05:00
Media3SubtitleOverride.kt Add setting for subtitle outline size (#375) 2025-12-05 16:55:46 -05:00
RememberTabManager.kt Fix several UI focus issues (#81) 2025-10-27 20:44:04 -04:00
TrackActivityPlaybackListener.kt Keep activity tracking alive even after errors (#209) 2025-11-13 11:36:57 -05:00
TrackSupport.kt Update style for ktlint 1.8 (#390) 2025-12-06 18:11:07 -05:00
TransformList.kt Support basic adding to playlists (#157) 2025-11-04 15:27:26 -05:00
Version.kt Rebrand 2025-10-15 15:27:30 -04:00