From a45598c4e80da3252df18c21025bc9c98a293436 Mon Sep 17 00:00:00 2001 From: Nikolai Selivanov Date: Sun, 1 Dec 2024 17:34:00 +0200 Subject: [PATCH 1/3] Fix decorating error with dependencies bound with FastBind() --- .../CCG/Assets/Code/Core/CoreInstaller.cs | 5 + .../Assets/Code/Core/CustomViewManager.meta | 3 + .../LogViewManagerDecorator.cs | 86 ++++++++++++++++++ .../LogViewManagerDecorator.cs.meta | 3 + .../Packages/com.kekchpek.umvvm/UnityMVVM.dll | Bin 40960 -> 40960 bytes .../Assets/Libs/UnityMVVM.dll | Bin 40960 -> 40960 bytes src/UnityMVVM/DI/DiContainerExtensions.cs | 2 +- 7 files changed, 98 insertions(+), 1 deletion(-) create mode 100644 MvvmUnityProj/CCG/Assets/Code/Core/CustomViewManager.meta create mode 100644 MvvmUnityProj/CCG/Assets/Code/Core/CustomViewManager/LogViewManagerDecorator.cs create mode 100644 MvvmUnityProj/CCG/Assets/Code/Core/CustomViewManager/LogViewManagerDecorator.cs.meta diff --git a/MvvmUnityProj/CCG/Assets/Code/Core/CoreInstaller.cs b/MvvmUnityProj/CCG/Assets/Code/Core/CoreInstaller.cs index 34cadf0..d16a51d 100644 --- a/MvvmUnityProj/CCG/Assets/Code/Core/CoreInstaller.cs +++ b/MvvmUnityProj/CCG/Assets/Code/Core/CoreInstaller.cs @@ -1,4 +1,5 @@ using CCG.Core.Camera; +using CCG.Core.CustomViewManager; using CCG.Core.Installers; using CCG.Core.Screen; using CCG.Models.Hand.Model; @@ -21,6 +22,7 @@ using SurvivedWarrior.MVVM.Models.Time; using UnityEngine; using UnityMVVM.DI; +using UnityMVVM.ViewManager; using UnityMVVM.ViewModelCore; using Zenject; @@ -30,6 +32,9 @@ public class CoreInstaller : Installer { public override void InstallBindings() { + + Container.Decorate().With(); + Container.InstallPoolableView(ViewNames.MainScreen, () => Resources.Load("Prefabs/Views/MainScreenView")); Container.InstallView(ViewNames.MainScreen3d, diff --git a/MvvmUnityProj/CCG/Assets/Code/Core/CustomViewManager.meta b/MvvmUnityProj/CCG/Assets/Code/Core/CustomViewManager.meta new file mode 100644 index 0000000..04fce50 --- /dev/null +++ b/MvvmUnityProj/CCG/Assets/Code/Core/CustomViewManager.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: d457b224787c4302b2c2726e00a9deba +timeCreated: 1733066531 \ No newline at end of file diff --git a/MvvmUnityProj/CCG/Assets/Code/Core/CustomViewManager/LogViewManagerDecorator.cs b/MvvmUnityProj/CCG/Assets/Code/Core/CustomViewManager/LogViewManagerDecorator.cs new file mode 100644 index 0000000..f2bdea2 --- /dev/null +++ b/MvvmUnityProj/CCG/Assets/Code/Core/CustomViewManager/LogViewManagerDecorator.cs @@ -0,0 +1,86 @@ +using System; +using System.Collections.Generic; +using AsyncReactAwait.Bindable; +using AsyncReactAwait.Promises; +using UnityEngine; +using UnityMVVM.ViewManager; +using UnityMVVM.ViewManager.ViewLayer; +using UnityMVVM.ViewModelCore; + +namespace CCG.Core.CustomViewManager +{ + public class LogViewManagerDecorator : IViewManager + { + + public event Action<(string layerId, string viewName, IPayload viewPayload)> ViewOpened + { + add => _viewManager.ViewOpened += value; + remove => _viewManager.ViewOpened -= value; + } + + public event Action<(string layerId, string viewName)> ViewClosedImplicitly + { + add => _viewManager.ViewClosedImplicitly += value; + remove => _viewManager.ViewClosedImplicitly -= value; + } + + private readonly IViewManager _viewManager; + + public IBindable HighestBusyLayer => _viewManager.HighestBusyLayer; + + public LogViewManagerDecorator(IViewManager viewManager) + { + _viewManager = viewManager; + } + + public IReadOnlyList GetLayerIds() => _viewManager.GetLayerIds(); + + public IViewModel Create(IViewModel parent, string viewName, Transform container, IPayload payload = null) + { + Debug.Log("View was created!"); + return _viewManager.Create(parent, viewName, container, payload); + } + + public IPromise Open(string viewLayerId, string viewName, IPayload payload = null) + { + Debug.Log("View was opened!"); + return _viewManager.Open(viewLayerId, viewName, payload); + } + + public IPromise OpenExact(string viewLayerId, string viewName, IPayload payload = null) + { + Debug.Log("View was opened on exact layer!"); + return _viewManager.OpenExact(viewLayerId, viewName, payload); + } + + public IPromise CloseExact(string viewLayerId) + { + Debug.Log("View was closed on exact layer!"); + return _viewManager.CloseExact(viewLayerId); + } + + public IPromise Close(string viewLayerId) + { + Debug.Log("View was closed!"); + return _viewManager.Close(viewLayerId); + } + + public string GetViewName(string viewLayerId) + { + Debug.Log("View name was got!"); + return _viewManager.GetViewName(viewLayerId); + } + + public IViewLayer GetLayer(string viewLayerId) + { + Debug.Log("Layer was got!"); + return _viewManager.GetLayer(viewLayerId); + } + + public IViewModel GetView(string viewLayerId) + { + Debug.Log("View was got!"); + return _viewManager.GetView(viewLayerId); + } + } +} \ No newline at end of file diff --git a/MvvmUnityProj/CCG/Assets/Code/Core/CustomViewManager/LogViewManagerDecorator.cs.meta b/MvvmUnityProj/CCG/Assets/Code/Core/CustomViewManager/LogViewManagerDecorator.cs.meta new file mode 100644 index 0000000..20bc12f --- /dev/null +++ b/MvvmUnityProj/CCG/Assets/Code/Core/CustomViewManager/LogViewManagerDecorator.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 530959aed4694e4ead761eaee4211e23 +timeCreated: 1733066545 \ No newline at end of file diff --git a/MvvmUnityProj/CCG/Assets/Packages/com.kekchpek.umvvm/UnityMVVM.dll b/MvvmUnityProj/CCG/Assets/Packages/com.kekchpek.umvvm/UnityMVVM.dll index 4d509ef123b3ae10c6ed786d0ea60afe267fa145..00df3b55be6d468caed597c03b9ba3ba5cb61466 100644 GIT binary patch delta 13204 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 Chn}|p delta 12982 zcmaJ{3w#viwLjnN>|=I!HnW?3Wb=T;yh(Ty6bKkh5U}x)3yKO#0zrwW0fN`^2$M)e zu%v=R5fp7A!D^+oG-4~@H7SuRNUdD(UTBdL5~8KxqdqE1={@JnWE0SK{rR8sKj(bs zobPkaFY#g8|47jL!0LROPeoNo

MijXQByMy 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 Chn}|p delta 12982 zcmaJ{3w#viwLjnN>|=I!HnW?3Wb=T;yh(Ty6bKkh5U}x)3yKO#0zrwW0fN`^2$M)e zu%v=R5fp7A!D^+oG-4~@H7SuRNUdD(UTBdL5~8KxqdqE1={@JnWE0SK{rR8sKj(bs zobPkaFY#g8|47jL!0LROPeoNo

MijXQByMy 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 DiContainer container, IReadOnlyCollecti commonAccessInterfaces = modelAccessInterfaces; } env.ViewsModelsContainerAdapter.Container.Bind(commonAccessInterfaces) - .FromMethod(_ => (TImpl)container.Resolve(modelAccessInterfaces.First())).AsSingle(); + .FromMethodUntyped(_ => container.Resolve(modelAccessInterfaces.First())).AsSingle(); } ///

From cbef068afdc481e70fc61b57c0ae2effd6665ae8 Mon Sep 17 00:00:00 2001 From: Nikolai Selivanov Date: Sun, 1 Dec 2024 17:50:59 +0200 Subject: [PATCH 2/3] Enable autobuild for feature and fix branches --- .github/workflows/publish.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index a34da3e..9e9c8a2 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -6,6 +6,8 @@ on: - 'master' - 'develop' - 'release/*' + - 'feature/*' + - 'fix/*' jobs: build: From d78f672088c89bd8c8cc1a2c6a7210bd5062e90b Mon Sep 17 00:00:00 2001 From: Nikolai Selivanov Date: Sun, 1 Dec 2024 18:06:31 +0200 Subject: [PATCH 3/3] Add raw version postfix --- .github/workflows/publish.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 9e9c8a2..b1957b3 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -38,6 +38,11 @@ jobs: then git remote set-url origin https://$RUNNER_USERNAME:$PAT_TOKEN@${REPO_URL:6} CURRENT_TAG_VERSION=$(python3 getVersion.py ./VERSION $UMVVM_BUILD_DATA_PATH/buildVersionV1.txt) + CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD) + if [[ $CURRENT_BRANCH == feature* || $CURRENT_BRANCH == fix* ]]; + then + CURRENT_TAG_VERSION=$CURRENT_TAG_VERSION-raw + fi git tag $CURRENT_TAG_VERSION git push origin --tags fi