more refoctoring work

This commit is contained in:
TheXamlGuy
2024-01-20 21:58:57 +00:00
parent 3a268db79d
commit 45070dc560
42 changed files with 477 additions and 361 deletions
@@ -0,0 +1,29 @@
using Microsoft.Extensions.DependencyInjection;
using Windows.Media.Control;
namespace Hyperbar.Windows.MediaController;
public class MediaControllerWidget :
IWidget
{
public IWidgetBuilder Create() =>
WidgetBuilder.Configure<MediaControllerWidgetConfiguration>(args =>
{
args.Id = Guid.Parse("1667a800-ec5a-4d39-aa75-4f5ee95bb9f1");
args.Name = "Media controller";
}).ConfigureServices(args =>
{
args.AddWidgetTemplate<MediaControllerWidgetViewModel, MediaControllerWidgetView>()
.AddSingleton<IInitializer, MediaControllerManager>()
.AddTransient<IServiceScopeFactory<MediaController>, ServiceScopeFactory<MediaController>>()
.AddTransient<IServiceScopeProvider<MediaController>, ServiceScopeProvider<MediaController>>()
.AddCache<MediaController, IServiceScope>()
.AddTransient<IFactory<GlobalSystemMediaTransportControlsSession, MediaController?>, MediaControllerFactory>()
.AddHandler<MediaControllerHandler>()
.AddTransient<IFactory<MediaController, MediaControllerViewModel?>, MediaControllerViewModelFactory>()
.AddCache<MediaController, MediaControllerViewModel>()
.AddContentTemplate<MediaControllerViewModel, MediaControllerView>()
.AddContentTemplate<MediaInformationViewModel, MediaInformationView>()
.AddContentTemplate<MediaButtonViewModel, MediaButtonView>();
});
}
@@ -1,28 +0,0 @@
using Microsoft.Extensions.DependencyInjection;
using Windows.Media.Control;
namespace Hyperbar.Windows.MediaController;
public class MediaControllerWidgetBuilder :
IWidgetBuilder
{
public void Create(IServiceCollection services) =>
WidgetBuilder.Config(services, config =>
{
config.Id = Guid.Parse("1667a800-ec5a-4d39-aa75-4f5ee95bb9f1");
config.Name = "Media controller";
services.AddWidgetTemplate<MediaControllerWidgetViewModel, MediaControllerWidgetView>()
.AddSingleton<IInitializer, MediaControllerManager>()
.AddTransient<IServiceScopeFactory<MediaController>, ServiceScopeFactory<MediaController>>()
.AddTransient<IServiceScopeProvider<MediaController>, ServiceScopeProvider<MediaController>>()
.AddCache<MediaController, IServiceScope>()
.AddTransient<IFactory<GlobalSystemMediaTransportControlsSession, MediaController?>, MediaControllerFactory>()
.AddHandler<MediaControllerHandler>()
.AddTransient<IFactory<MediaController, MediaControllerViewModel?>, MediaControllerViewModelFactory>()
.AddCache<MediaController, MediaControllerViewModel>()
.AddContentTemplate<MediaControllerViewModel, MediaControllerView>()
.AddContentTemplate<MediaInformationViewModel, MediaInformationView>()
.AddContentTemplate<MediaButtonViewModel, MediaButtonView>();
});
}
@@ -0,0 +1,7 @@
namespace Hyperbar.Windows.MediaController;
public class MediaControllerWidgetConfiguration :
WidgetConfiguration
{
}
@@ -12,7 +12,7 @@ public class MediaButtonViewModel(IServiceFactory serviceFactory,
string? icon = null,
RelayCommand? command = null) :
WidgetButtonViewModel(serviceFactory, mediator, disposer, templateFactory, guid, text, icon, command),
IViewModelInitialization
IInitialization
{
public ICommand Initialize => new AsyncRelayCommand(InitializeAsync);
@@ -8,8 +8,8 @@ public partial class MediaInformationViewModel(IServiceFactory serviceFactory,
IMediator mediator,
IDisposer disposer,
ITemplateFactory templateFactory) :
WidgetComponentViewModel(serviceFactory, mediator, disposer, templateFactory),
IViewModelInitialization,
WidgetComponentViewModel(serviceFactory, mediator, disposer, templateFactory),
IInitialization,
INotificationHandler<Changed<MediaInformation>>
{
[ObservableProperty]