From fddd5166ce3b4709d7aa221de7ff565f1808d127 Mon Sep 17 00:00:00 2001 From: Joni Savolainen Date: Fri, 22 Sep 2023 11:24:24 +0300 Subject: [PATCH] chore(project): upgrade to UIComponents v1.0.0-beta.6 (#4) --- Core/Services/Service.cs | 19 ++----------- Editor/Toolbar/BranchToolbarButton.cs | 28 +++++++------------ Editor/Toolbar/BranchToolbarButtonServices.cs | 24 ++++++++-------- 3 files changed, 25 insertions(+), 46 deletions(-) diff --git a/Core/Services/Service.cs b/Core/Services/Service.cs index 6d6d750..d4b7657 100644 --- a/Core/Services/Service.cs +++ b/Core/Services/Service.cs @@ -1,32 +1,17 @@ -using System.Collections.Generic; -using UIComponents; +using UIComponents; using UIComponents.DependencyInjection; using ILogger = UIComponents.ILogger; namespace UnityGit.Core.Services { [Dependency(typeof(ILogger), provide: typeof(DebugLogger))] - public abstract class Service : IDependencyConsumer + public abstract class Service : DependencyConsumer { protected readonly ILogger Logger; - - private readonly DependencyInjector _dependencyInjector; protected Service() { - DiContext.Current.RegisterConsumer(this); - _dependencyInjector = DiContext.Current.GetInjector(GetType()); Logger = Provide(); - UIC_PopulateProvideFields(); } - - protected T Provide() where T : class - { - return _dependencyInjector.Provide(); - } - - public abstract IEnumerable GetDependencies(); - - protected abstract void UIC_PopulateProvideFields(); } } diff --git a/Editor/Toolbar/BranchToolbarButton.cs b/Editor/Toolbar/BranchToolbarButton.cs index 033a61b..e3ae7f3 100644 --- a/Editor/Toolbar/BranchToolbarButton.cs +++ b/Editor/Toolbar/BranchToolbarButton.cs @@ -33,23 +33,15 @@ static Styles() }; } } - - private static readonly IStatusService StatusService; - private static readonly ICheckoutService CheckoutService; - private static readonly IBranchService BranchService; + + private static readonly BranchToolbarButtonServices Services; private static readonly GUIContent BranchButtonContent; static BranchToolbarButton() { ToolbarExtender.LeftToolbarGUI.Add(DoBranchToolbarItem); - var injector = DiContext.Current.GetInjector(typeof(BranchToolbarButton)); - var services = new BranchToolbarButtonServices(); - DiContext.Current.RegisterConsumer(services); - injector.SetConsumer(services); - StatusService = injector.Provide(); - CheckoutService = injector.Provide(); - BranchService = injector.Provide(); + Services = new BranchToolbarButtonServices(); var texture = Icons.GetIcon(Icons.Name.Merge); @@ -62,20 +54,20 @@ private static void DoBranchToolbarItem() GUILayout.Space(6); - using (new EditorGUI.DisabledScope(!StatusService.HasProjectRepository())) + using (new EditorGUI.DisabledScope(!Services.StatusService.HasProjectRepository())) DoBranchToolbarButton(); } private static string GetToolbarButtonText() { - var hasRepo = StatusService.HasProjectRepository(); + var hasRepo = Services.StatusService.HasProjectRepository(); if (!hasRepo) return "No repository"; - var head = StatusService.ProjectRepository.Head; + var head = Services.StatusService.ProjectRepository.Head; - return BranchService.GetBranchName(head); + return Services.BranchService.GetBranchName(head); } private static void AddBranchButtonsToMenu(GenericMenu menu, IEnumerable branches) @@ -92,9 +84,9 @@ private static void AddBranchButtonsToMenu(GenericMenu menu, IEnumerable if (itemAsBranch == null || itemAsBranch.IsCurrentRepositoryHead) return; - var repository = StatusService.ProjectRepository; + var repository = Services.StatusService.ProjectRepository; - CheckoutService.CheckoutBranch(repository, itemAsBranch); + Services.CheckoutService.CheckoutBranch(repository, itemAsBranch); }, branch); } } @@ -106,7 +98,7 @@ private static void DoBranchToolbarButton() var menu = new GenericMenu(); var branchPartitions = - StatusService.ProjectRepository.Branches.GroupBy((branch) => branch.IsRemote); + Services.StatusService.ProjectRepository.Branches.GroupBy((branch) => branch.IsRemote); foreach (var partition in branchPartitions) { diff --git a/Editor/Toolbar/BranchToolbarButtonServices.cs b/Editor/Toolbar/BranchToolbarButtonServices.cs index 02e9b80..68a5672 100644 --- a/Editor/Toolbar/BranchToolbarButtonServices.cs +++ b/Editor/Toolbar/BranchToolbarButtonServices.cs @@ -1,20 +1,22 @@ -using System.Collections.Generic; +using UIComponents; using UIComponents.DependencyInjection; using UnityGit.Core.Services; namespace UnityGit.Editor.Toolbar { - internal class BranchToolbarButtonServices : IDependencyConsumer + [Dependency(typeof(IStatusService), provide: typeof(StatusService))] + [Dependency(typeof(ICheckoutService), provide: typeof(CheckoutService))] + [Dependency(typeof(IBranchService), provide: typeof(BranchService))] + internal partial class BranchToolbarButtonServices : DependencyConsumer { - public IEnumerable GetDependencies() - { - return new IDependency[] - { - Dependency.SingletonFor(), - Dependency.SingletonFor(), - Dependency.SingletonFor() - }; - } + [Provide] + public IStatusService StatusService; + + [Provide] + public ICheckoutService CheckoutService; + + [Provide] + public IBranchService BranchService; } }