This commit introduces new functionality to customize the visibility of the
play button on home page shelves.
Key changes:
- Added `HomePageSettings` to `AppSettings` to store your preferences:
- `showPlayButtonOnContinueShelves`: Controls visibility on "Continue Listening" and "Continue Series" shelves (default: true).
- `showPlayButtonOnAllShelves`: Controls visibility on other shelves (default: false).
- Modified `BookHomeShelf` to respect these settings when rendering books.
- Created a new "Home Page Settings" page under "Appearance" in App Settings, allowing you to toggle these two options.
- Added comprehensive unit and widget tests to cover the new settings model, the conditional logic in `BookHomeShelf`, and the functionality of the new settings page.
* refactor: consolidate theme definitions by removing separate dark and light theme files
* feat: integrate dynamic color support and enhance theme settings management
* feat: add theme settings route and update theme management in app settings
* feat: enhance theme management by integrating high contrast support in various components
* feat: implement mode selection dialog for theme settings and enhance button functionality
* refactor: update theme import paths and consolidate theme provider files
* feat: enhance theme management by integrating theme selection based on audiobook playback
* refactor: update default value for useMaterialThemeFromSystem to false in theme settings
* refactor: adjust high contrast condition order in theme settings for consistency
* refactor: rename useMaterialThemeOfPlayingItem to useCurrentPlayerThemeThroughoutApp for clarity
* refactor: correct spelling in system theme provider and replace with updated implementation
* refactor: extract restore backup dialog into a separate widget for improved readability
* refactor: reorganize settings sections for clarity and improve restore dialog functionality
* feat: update shake detection settings to reduce cooldown and feedback options
* fix: shake detector not detecting in background
* enhance shake action handling to avoid unnecessary feedback
* disable shake detector when player not playing anything
* refactor: remove outdated TODO regarding shake detection optimization
* refactor: comment out notifyListeners call in restartTimer method for clarity