Implement theme management and settings dialog in PLib video library manager. Add theme service for light/dark/system themes, integrate settings dialog for user preferences, and update app configuration to include appearance options. Enhance thumbnail caching with new methods for cache size and clearing. Update README.md to reflect new features and settings.
This commit is contained in:
@@ -1,18 +1,27 @@
|
||||
using PLib.Domain.Videos;
|
||||
|
||||
namespace PLib.Application.Library;
|
||||
|
||||
/// <summary>Use cases the UI needs in order to show and refresh the video library.</summary>
|
||||
public interface ILibraryService
|
||||
{
|
||||
/// <summary>Everything currently stored in the library, newest first.</summary>
|
||||
Task<IReadOnlyList<VideoItem>> GetLibraryAsync(CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// Reconciles the library with the configured folders and then fills in metadata and
|
||||
/// poster frames for anything that is missing them, streaming progress as it goes.
|
||||
/// </summary>
|
||||
IAsyncEnumerable<LibraryScanEvent> ScanAsync(
|
||||
IReadOnlyList<string> folders,
|
||||
CancellationToken cancellationToken = default);
|
||||
}
|
||||
using PLib.Domain.Videos;
|
||||
|
||||
namespace PLib.Application.Library;
|
||||
|
||||
/// <summary>Use cases the UI needs in order to show and refresh the video library.</summary>
|
||||
public interface ILibraryService
|
||||
{
|
||||
/// <summary>Everything currently stored in the library, newest first.</summary>
|
||||
Task<IReadOnlyList<VideoItem>> GetLibraryAsync(CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// Reconciles the library with the configured folders and then fills in metadata and
|
||||
/// poster frames for anything that is missing them, streaming progress as it goes.
|
||||
/// </summary>
|
||||
IAsyncEnumerable<LibraryScanEvent> ScanAsync(
|
||||
IReadOnlyList<string> folders,
|
||||
CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>Disk space currently taken by cached poster frames, in bytes.</summary>
|
||||
Task<long> GetThumbnailCacheSizeAsync(CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// Throws every poster frame away and forgets the paths, so the next scan renders them
|
||||
/// from scratch. Useful after changing the thumbnail width or capture position.
|
||||
/// </summary>
|
||||
Task ResetThumbnailsAsync(CancellationToken cancellationToken = default);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user