From 1f7ab3024ba4ba182d2428629c1f94e5d29b0a09 Mon Sep 17 00:00:00 2001 From: artyom Date: Sat, 28 Sep 2019 18:08:32 +0300 Subject: [PATCH 01/19] Use ReactiveUI 10.2.2 --- build/ReactiveUI.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/ReactiveUI.props b/build/ReactiveUI.props index 72bc3781f7..ba356c2e9a 100644 --- a/build/ReactiveUI.props +++ b/build/ReactiveUI.props @@ -1,5 +1,5 @@ - + From fd7ffbd84cbbf74a54a56ac56c18b1916739a5c3 Mon Sep 17 00:00:00 2001 From: artyom Date: Sat, 28 Sep 2019 18:33:14 +0300 Subject: [PATCH 02/19] Bring back the changes --- build/Rx.props | 2 +- build/System.Memory.props | 2 +- .../ViewModels/MainWindowViewModel.cs | 7 ++++--- .../ViewModels/MainWindowViewModel.cs | 5 +++-- .../ViewModels/MainWindowViewModel.cs | 20 +++++++++---------- .../AvaloniaActivationForViewFetcher.cs | 2 +- src/Avalonia.ReactiveUI/RoutedViewHost.cs | 2 +- .../AvaloniaActivationForViewFetcherTest.cs | 8 ++++---- 8 files changed, 25 insertions(+), 23 deletions(-) diff --git a/build/Rx.props b/build/Rx.props index 359ce53a92..edff0af160 100644 --- a/build/Rx.props +++ b/build/Rx.props @@ -1,5 +1,5 @@  - + diff --git a/build/System.Memory.props b/build/System.Memory.props index b328f7fd97..b36998a780 100644 --- a/build/System.Memory.props +++ b/build/System.Memory.props @@ -1,5 +1,5 @@ - + diff --git a/samples/BindingDemo/ViewModels/MainWindowViewModel.cs b/samples/BindingDemo/ViewModels/MainWindowViewModel.cs index 858fb5159a..22d01e0765 100644 --- a/samples/BindingDemo/ViewModels/MainWindowViewModel.cs +++ b/samples/BindingDemo/ViewModels/MainWindowViewModel.cs @@ -1,10 +1,11 @@ using System; using System.Collections.ObjectModel; using System.Linq; -using ReactiveUI; +using System.Reactive; using System.Reactive.Linq; using System.Threading.Tasks; using System.Threading; +using ReactiveUI; namespace BindingDemo.ViewModels { @@ -56,7 +57,7 @@ namespace BindingDemo.ViewModels public ObservableCollection Items { get; } public ObservableCollection SelectedItems { get; } - public ReactiveCommand ShuffleItems { get; } + public ReactiveCommand ShuffleItems { get; } public string BooleanString { @@ -89,7 +90,7 @@ namespace BindingDemo.ViewModels } public IObservable CurrentTimeObservable { get; } - public ReactiveCommand StringValueCommand { get; } + public ReactiveCommand StringValueCommand { get; } public DataAnnotationsErrorViewModel DataAnnotationsValidation { get; } = new DataAnnotationsErrorViewModel(); public ExceptionErrorViewModel ExceptionDataValidation { get; } = new ExceptionErrorViewModel(); diff --git a/samples/RenderDemo/ViewModels/MainWindowViewModel.cs b/samples/RenderDemo/ViewModels/MainWindowViewModel.cs index 0cb5e1b87b..d2d789a687 100644 --- a/samples/RenderDemo/ViewModels/MainWindowViewModel.cs +++ b/samples/RenderDemo/ViewModels/MainWindowViewModel.cs @@ -1,4 +1,5 @@ using System; +using System.Reactive; using ReactiveUI; namespace RenderDemo.ViewModels @@ -26,7 +27,7 @@ namespace RenderDemo.ViewModels set { this.RaiseAndSetIfChanged(ref drawFps, value); } } - public ReactiveCommand ToggleDrawDirtyRects { get; } - public ReactiveCommand ToggleDrawFps { get; } + public ReactiveCommand ToggleDrawDirtyRects { get; } + public ReactiveCommand ToggleDrawFps { get; } } } diff --git a/samples/VirtualizationDemo/ViewModels/MainWindowViewModel.cs b/samples/VirtualizationDemo/ViewModels/MainWindowViewModel.cs index 93fe09a156..649c64ab1d 100644 --- a/samples/VirtualizationDemo/ViewModels/MainWindowViewModel.cs +++ b/samples/VirtualizationDemo/ViewModels/MainWindowViewModel.cs @@ -4,10 +4,10 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Reactive; using Avalonia.Collections; using Avalonia.Controls; using Avalonia.Controls.Primitives; -using ReactiveUI.Legacy; using ReactiveUI; using Avalonia.Layout; @@ -18,7 +18,7 @@ namespace VirtualizationDemo.ViewModels private int _itemCount = 200; private string _newItemString = "New Item"; private int _newItemIndex; - private IReactiveList _items; + private AvaloniaList _items; private string _prefix = "Item"; private ScrollBarVisibility _horizontalScrollBarVisibility = ScrollBarVisibility.Auto; private ScrollBarVisibility _verticalScrollBarVisibility = ScrollBarVisibility.Auto; @@ -54,7 +54,7 @@ namespace VirtualizationDemo.ViewModels public AvaloniaList SelectedItems { get; } = new AvaloniaList(); - public IReactiveList Items + public AvaloniaList Items { get { return _items; } private set { this.RaiseAndSetIfChanged(ref _items, value); } @@ -93,11 +93,11 @@ namespace VirtualizationDemo.ViewModels public IEnumerable VirtualizationModes => Enum.GetValues(typeof(ItemVirtualizationMode)).Cast(); - public ReactiveCommand AddItemCommand { get; private set; } - public ReactiveCommand RecreateCommand { get; private set; } - public ReactiveCommand RemoveItemCommand { get; private set; } - public ReactiveCommand SelectFirstCommand { get; private set; } - public ReactiveCommand SelectLastCommand { get; private set; } + public ReactiveCommand AddItemCommand { get; private set; } + public ReactiveCommand RecreateCommand { get; private set; } + public ReactiveCommand RemoveItemCommand { get; private set; } + public ReactiveCommand SelectFirstCommand { get; private set; } + public ReactiveCommand SelectLastCommand { get; private set; } public void RandomizeSize() { @@ -123,7 +123,7 @@ namespace VirtualizationDemo.ViewModels { var items = Enumerable.Range(0, count) .Select(x => new ItemViewModel(x)); - Items = new ReactiveList(items); + Items = new AvaloniaList(items); } else if (count > Items.Count) { @@ -162,7 +162,7 @@ namespace VirtualizationDemo.ViewModels _prefix = _prefix == "Item" ? "Recreated" : "Item"; var items = Enumerable.Range(0, _itemCount) .Select(x => new ItemViewModel(x, _prefix)); - Items = new ReactiveList(items); + Items = new AvaloniaList(items); } private void SelectItem(int index) diff --git a/src/Avalonia.ReactiveUI/AvaloniaActivationForViewFetcher.cs b/src/Avalonia.ReactiveUI/AvaloniaActivationForViewFetcher.cs index cfa7a270be..5a4d625c41 100644 --- a/src/Avalonia.ReactiveUI/AvaloniaActivationForViewFetcher.cs +++ b/src/Avalonia.ReactiveUI/AvaloniaActivationForViewFetcher.cs @@ -27,7 +27,7 @@ namespace Avalonia.ReactiveUI /// /// Returns activation observable for activatable Avalonia view. /// - public IObservable GetActivationForView(IActivatable view) + public IObservable GetActivationForView(IActivatableView view) { if (!(view is IVisual visual)) return Observable.Return(false); if (view is WindowBase window) return GetActivationForWindowBase(window); diff --git a/src/Avalonia.ReactiveUI/RoutedViewHost.cs b/src/Avalonia.ReactiveUI/RoutedViewHost.cs index 05edeea683..ac5db32c14 100644 --- a/src/Avalonia.ReactiveUI/RoutedViewHost.cs +++ b/src/Avalonia.ReactiveUI/RoutedViewHost.cs @@ -53,7 +53,7 @@ namespace Avalonia.ReactiveUI /// ReactiveUI routing documentation website for more info. /// /// - public class RoutedViewHost : TransitioningContentControl, IActivatable, IEnableLogger + public class RoutedViewHost : TransitioningContentControl, IActivatableView, IEnableLogger { /// /// for the property. diff --git a/tests/Avalonia.ReactiveUI.UnitTests/AvaloniaActivationForViewFetcherTest.cs b/tests/Avalonia.ReactiveUI.UnitTests/AvaloniaActivationForViewFetcherTest.cs index 1d85312b1a..643dd3efac 100644 --- a/tests/Avalonia.ReactiveUI.UnitTests/AvaloniaActivationForViewFetcherTest.cs +++ b/tests/Avalonia.ReactiveUI.UnitTests/AvaloniaActivationForViewFetcherTest.cs @@ -20,9 +20,9 @@ namespace Avalonia.ReactiveUI.UnitTests { public class AvaloniaActivationForViewFetcherTest { - public class TestUserControl : UserControl, IActivatable { } + public class TestUserControl : UserControl, IActivatableView { } - public class TestUserControlWithWhenActivated : UserControl, IActivatable + public class TestUserControlWithWhenActivated : UserControl, IActivatableView { public bool Active { get; private set; } @@ -38,7 +38,7 @@ namespace Avalonia.ReactiveUI.UnitTests } } - public class TestWindowWithWhenActivated : Window, IActivatable + public class TestWindowWithWhenActivated : Window, IActivatableView { public bool Active { get; private set; } @@ -54,7 +54,7 @@ namespace Avalonia.ReactiveUI.UnitTests } } - public class ActivatableViewModel : ISupportsActivation + public class ActivatableViewModel : IActivatableViewModel { public ViewModelActivator Activator { get; } From ef4c7dd86cb9fd3c4dfe383e6f560062b3472290 Mon Sep 17 00:00:00 2001 From: artyom Date: Sat, 28 Sep 2019 18:52:24 +0300 Subject: [PATCH 03/19] Try lower System.Memory --- build/System.Memory.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/System.Memory.props b/build/System.Memory.props index b36998a780..67b1309d6d 100644 --- a/build/System.Memory.props +++ b/build/System.Memory.props @@ -1,5 +1,5 @@ - + From 7c2207508716effbc1eca4f02326bb05cafa8b0c Mon Sep 17 00:00:00 2001 From: artyom Date: Sat, 28 Sep 2019 19:12:46 +0300 Subject: [PATCH 04/19] Downgrade System.Memory --- build/System.Memory.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/System.Memory.props b/build/System.Memory.props index 67b1309d6d..b328f7fd97 100644 --- a/build/System.Memory.props +++ b/build/System.Memory.props @@ -1,5 +1,5 @@ - + From 77c98a94a9ae3031f12ac95897b3389bcb3486b0 Mon Sep 17 00:00:00 2001 From: artyom Date: Sat, 28 Sep 2019 19:23:17 +0300 Subject: [PATCH 05/19] Use latest System.Memory --- build/System.Memory.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/System.Memory.props b/build/System.Memory.props index b328f7fd97..b36998a780 100644 --- a/build/System.Memory.props +++ b/build/System.Memory.props @@ -1,5 +1,5 @@ - + From f11df8023d172e4ca5e5af559f85859fed930c1c Mon Sep 17 00:00:00 2001 From: artyom Date: Sat, 28 Sep 2019 19:26:45 +0300 Subject: [PATCH 06/19] Bump Microsoft.Reactive.Testing --- build/Microsoft.Reactive.Testing.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/Microsoft.Reactive.Testing.props b/build/Microsoft.Reactive.Testing.props index 777bc4bb53..a0ba2163bb 100644 --- a/build/Microsoft.Reactive.Testing.props +++ b/build/Microsoft.Reactive.Testing.props @@ -1,5 +1,5 @@  - + From a031b4d4707f82e870580cbc7645280fb89b49e7 Mon Sep 17 00:00:00 2001 From: artyom Date: Sat, 28 Sep 2019 20:06:37 +0300 Subject: [PATCH 07/19] Rollback ReactiveUI to see if System.Reactive is the cause --- build/ReactiveUI.props | 2 +- .../AvaloniaActivationForViewFetcher.cs | 2 +- src/Avalonia.ReactiveUI/RoutedViewHost.cs | 2 +- .../AvaloniaActivationForViewFetcherTest.cs | 8 ++++---- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/build/ReactiveUI.props b/build/ReactiveUI.props index ba356c2e9a..b92d3ddcd6 100644 --- a/build/ReactiveUI.props +++ b/build/ReactiveUI.props @@ -1,5 +1,5 @@ - + diff --git a/src/Avalonia.ReactiveUI/AvaloniaActivationForViewFetcher.cs b/src/Avalonia.ReactiveUI/AvaloniaActivationForViewFetcher.cs index 5a4d625c41..cfa7a270be 100644 --- a/src/Avalonia.ReactiveUI/AvaloniaActivationForViewFetcher.cs +++ b/src/Avalonia.ReactiveUI/AvaloniaActivationForViewFetcher.cs @@ -27,7 +27,7 @@ namespace Avalonia.ReactiveUI /// /// Returns activation observable for activatable Avalonia view. /// - public IObservable GetActivationForView(IActivatableView view) + public IObservable GetActivationForView(IActivatable view) { if (!(view is IVisual visual)) return Observable.Return(false); if (view is WindowBase window) return GetActivationForWindowBase(window); diff --git a/src/Avalonia.ReactiveUI/RoutedViewHost.cs b/src/Avalonia.ReactiveUI/RoutedViewHost.cs index ac5db32c14..05edeea683 100644 --- a/src/Avalonia.ReactiveUI/RoutedViewHost.cs +++ b/src/Avalonia.ReactiveUI/RoutedViewHost.cs @@ -53,7 +53,7 @@ namespace Avalonia.ReactiveUI /// ReactiveUI routing documentation website for more info. /// /// - public class RoutedViewHost : TransitioningContentControl, IActivatableView, IEnableLogger + public class RoutedViewHost : TransitioningContentControl, IActivatable, IEnableLogger { /// /// for the property. diff --git a/tests/Avalonia.ReactiveUI.UnitTests/AvaloniaActivationForViewFetcherTest.cs b/tests/Avalonia.ReactiveUI.UnitTests/AvaloniaActivationForViewFetcherTest.cs index 643dd3efac..1d85312b1a 100644 --- a/tests/Avalonia.ReactiveUI.UnitTests/AvaloniaActivationForViewFetcherTest.cs +++ b/tests/Avalonia.ReactiveUI.UnitTests/AvaloniaActivationForViewFetcherTest.cs @@ -20,9 +20,9 @@ namespace Avalonia.ReactiveUI.UnitTests { public class AvaloniaActivationForViewFetcherTest { - public class TestUserControl : UserControl, IActivatableView { } + public class TestUserControl : UserControl, IActivatable { } - public class TestUserControlWithWhenActivated : UserControl, IActivatableView + public class TestUserControlWithWhenActivated : UserControl, IActivatable { public bool Active { get; private set; } @@ -38,7 +38,7 @@ namespace Avalonia.ReactiveUI.UnitTests } } - public class TestWindowWithWhenActivated : Window, IActivatableView + public class TestWindowWithWhenActivated : Window, IActivatable { public bool Active { get; private set; } @@ -54,7 +54,7 @@ namespace Avalonia.ReactiveUI.UnitTests } } - public class ActivatableViewModel : IActivatableViewModel + public class ActivatableViewModel : ISupportsActivation { public ViewModelActivator Activator { get; } From 4bfa23243265090c9a8f6be3d8dec1882f81d12a Mon Sep 17 00:00:00 2001 From: artyom Date: Sat, 28 Sep 2019 20:53:14 +0300 Subject: [PATCH 08/19] Use newest dependencies required by System.Reactive --- build/Rx.props | 2 ++ 1 file changed, 2 insertions(+) diff --git a/build/Rx.props b/build/Rx.props index edff0af160..970f60e3bc 100644 --- a/build/Rx.props +++ b/build/Rx.props @@ -1,5 +1,7 @@  + + From f1a42488bd623687e9ff7e3a6cca046d9fc5dae9 Mon Sep 17 00:00:00 2001 From: artyom Date: Sat, 28 Sep 2019 21:09:11 +0300 Subject: [PATCH 09/19] Typo fix --- build/Rx.props | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/Rx.props b/build/Rx.props index 970f60e3bc..f1526dbf8c 100644 --- a/build/Rx.props +++ b/build/Rx.props @@ -1,7 +1,7 @@  - - + + From 5fc951bc88abc65b91f859cb2f9384427505e8db Mon Sep 17 00:00:00 2001 From: artyom Date: Sat, 28 Sep 2019 21:29:50 +0300 Subject: [PATCH 10/19] Bump ReactiveUI to 10.2.2 --- build/ReactiveUI.props | 2 +- .../AvaloniaActivationForViewFetcher.cs | 2 +- src/Avalonia.ReactiveUI/RoutedViewHost.cs | 2 +- .../AvaloniaActivationForViewFetcherTest.cs | 8 ++++---- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/build/ReactiveUI.props b/build/ReactiveUI.props index b92d3ddcd6..ba356c2e9a 100644 --- a/build/ReactiveUI.props +++ b/build/ReactiveUI.props @@ -1,5 +1,5 @@ - + diff --git a/src/Avalonia.ReactiveUI/AvaloniaActivationForViewFetcher.cs b/src/Avalonia.ReactiveUI/AvaloniaActivationForViewFetcher.cs index cfa7a270be..5a4d625c41 100644 --- a/src/Avalonia.ReactiveUI/AvaloniaActivationForViewFetcher.cs +++ b/src/Avalonia.ReactiveUI/AvaloniaActivationForViewFetcher.cs @@ -27,7 +27,7 @@ namespace Avalonia.ReactiveUI /// /// Returns activation observable for activatable Avalonia view. /// - public IObservable GetActivationForView(IActivatable view) + public IObservable GetActivationForView(IActivatableView view) { if (!(view is IVisual visual)) return Observable.Return(false); if (view is WindowBase window) return GetActivationForWindowBase(window); diff --git a/src/Avalonia.ReactiveUI/RoutedViewHost.cs b/src/Avalonia.ReactiveUI/RoutedViewHost.cs index 05edeea683..ac5db32c14 100644 --- a/src/Avalonia.ReactiveUI/RoutedViewHost.cs +++ b/src/Avalonia.ReactiveUI/RoutedViewHost.cs @@ -53,7 +53,7 @@ namespace Avalonia.ReactiveUI /// ReactiveUI routing documentation website for more info. /// /// - public class RoutedViewHost : TransitioningContentControl, IActivatable, IEnableLogger + public class RoutedViewHost : TransitioningContentControl, IActivatableView, IEnableLogger { /// /// for the property. diff --git a/tests/Avalonia.ReactiveUI.UnitTests/AvaloniaActivationForViewFetcherTest.cs b/tests/Avalonia.ReactiveUI.UnitTests/AvaloniaActivationForViewFetcherTest.cs index 1d85312b1a..643dd3efac 100644 --- a/tests/Avalonia.ReactiveUI.UnitTests/AvaloniaActivationForViewFetcherTest.cs +++ b/tests/Avalonia.ReactiveUI.UnitTests/AvaloniaActivationForViewFetcherTest.cs @@ -20,9 +20,9 @@ namespace Avalonia.ReactiveUI.UnitTests { public class AvaloniaActivationForViewFetcherTest { - public class TestUserControl : UserControl, IActivatable { } + public class TestUserControl : UserControl, IActivatableView { } - public class TestUserControlWithWhenActivated : UserControl, IActivatable + public class TestUserControlWithWhenActivated : UserControl, IActivatableView { public bool Active { get; private set; } @@ -38,7 +38,7 @@ namespace Avalonia.ReactiveUI.UnitTests } } - public class TestWindowWithWhenActivated : Window, IActivatable + public class TestWindowWithWhenActivated : Window, IActivatableView { public bool Active { get; private set; } @@ -54,7 +54,7 @@ namespace Avalonia.ReactiveUI.UnitTests } } - public class ActivatableViewModel : ISupportsActivation + public class ActivatableViewModel : IActivatableViewModel { public ViewModelActivator Activator { get; } From d4f9493df17270ce3ec6937faf14b667ddcaf482 Mon Sep 17 00:00:00 2001 From: artyom Date: Sat, 28 Sep 2019 21:46:18 +0300 Subject: [PATCH 11/19] Revert ReactiveUI upgrade to ensure this was false positive This reverts commit 5fc951bc88abc65b91f859cb2f9384427505e8db. --- build/ReactiveUI.props | 2 +- .../AvaloniaActivationForViewFetcher.cs | 2 +- src/Avalonia.ReactiveUI/RoutedViewHost.cs | 2 +- .../AvaloniaActivationForViewFetcherTest.cs | 8 ++++---- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/build/ReactiveUI.props b/build/ReactiveUI.props index ba356c2e9a..b92d3ddcd6 100644 --- a/build/ReactiveUI.props +++ b/build/ReactiveUI.props @@ -1,5 +1,5 @@ - + diff --git a/src/Avalonia.ReactiveUI/AvaloniaActivationForViewFetcher.cs b/src/Avalonia.ReactiveUI/AvaloniaActivationForViewFetcher.cs index 5a4d625c41..cfa7a270be 100644 --- a/src/Avalonia.ReactiveUI/AvaloniaActivationForViewFetcher.cs +++ b/src/Avalonia.ReactiveUI/AvaloniaActivationForViewFetcher.cs @@ -27,7 +27,7 @@ namespace Avalonia.ReactiveUI /// /// Returns activation observable for activatable Avalonia view. /// - public IObservable GetActivationForView(IActivatableView view) + public IObservable GetActivationForView(IActivatable view) { if (!(view is IVisual visual)) return Observable.Return(false); if (view is WindowBase window) return GetActivationForWindowBase(window); diff --git a/src/Avalonia.ReactiveUI/RoutedViewHost.cs b/src/Avalonia.ReactiveUI/RoutedViewHost.cs index ac5db32c14..05edeea683 100644 --- a/src/Avalonia.ReactiveUI/RoutedViewHost.cs +++ b/src/Avalonia.ReactiveUI/RoutedViewHost.cs @@ -53,7 +53,7 @@ namespace Avalonia.ReactiveUI /// ReactiveUI routing documentation website for more info. /// /// - public class RoutedViewHost : TransitioningContentControl, IActivatableView, IEnableLogger + public class RoutedViewHost : TransitioningContentControl, IActivatable, IEnableLogger { /// /// for the property. diff --git a/tests/Avalonia.ReactiveUI.UnitTests/AvaloniaActivationForViewFetcherTest.cs b/tests/Avalonia.ReactiveUI.UnitTests/AvaloniaActivationForViewFetcherTest.cs index 643dd3efac..1d85312b1a 100644 --- a/tests/Avalonia.ReactiveUI.UnitTests/AvaloniaActivationForViewFetcherTest.cs +++ b/tests/Avalonia.ReactiveUI.UnitTests/AvaloniaActivationForViewFetcherTest.cs @@ -20,9 +20,9 @@ namespace Avalonia.ReactiveUI.UnitTests { public class AvaloniaActivationForViewFetcherTest { - public class TestUserControl : UserControl, IActivatableView { } + public class TestUserControl : UserControl, IActivatable { } - public class TestUserControlWithWhenActivated : UserControl, IActivatableView + public class TestUserControlWithWhenActivated : UserControl, IActivatable { public bool Active { get; private set; } @@ -38,7 +38,7 @@ namespace Avalonia.ReactiveUI.UnitTests } } - public class TestWindowWithWhenActivated : Window, IActivatableView + public class TestWindowWithWhenActivated : Window, IActivatable { public bool Active { get; private set; } @@ -54,7 +54,7 @@ namespace Avalonia.ReactiveUI.UnitTests } } - public class ActivatableViewModel : IActivatableViewModel + public class ActivatableViewModel : ISupportsActivation { public ViewModelActivator Activator { get; } From 6a34494d6757673294673ea187eaf900d07ce2b4 Mon Sep 17 00:00:00 2001 From: artyom Date: Sat, 28 Sep 2019 22:54:07 +0300 Subject: [PATCH 12/19] Use latest 9.* version --- build/ReactiveUI.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/ReactiveUI.props b/build/ReactiveUI.props index b92d3ddcd6..249eb99715 100644 --- a/build/ReactiveUI.props +++ b/build/ReactiveUI.props @@ -1,5 +1,5 @@ - + From 1c417e8bfe903055d423c2df9d994b79e54db248 Mon Sep 17 00:00:00 2001 From: artyom Date: Sat, 28 Sep 2019 23:10:11 +0300 Subject: [PATCH 13/19] ReactiveUI 9.0.1 depends on compatibility package --- build/ReactiveUI.props | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build/ReactiveUI.props b/build/ReactiveUI.props index 249eb99715..cf41e0c57e 100644 --- a/build/ReactiveUI.props +++ b/build/ReactiveUI.props @@ -1,5 +1,6 @@ - + + From 8947d302957eb1c479335d74b651f67a3ff581d8 Mon Sep 17 00:00:00 2001 From: artyom Date: Sat, 28 Sep 2019 23:15:10 +0300 Subject: [PATCH 14/19] Required code changes --- .../AvaloniaActivationForViewFetcher.cs | 2 +- src/Avalonia.ReactiveUI/RoutedViewHost.cs | 2 +- .../AvaloniaActivationForViewFetcherTest.cs | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Avalonia.ReactiveUI/AvaloniaActivationForViewFetcher.cs b/src/Avalonia.ReactiveUI/AvaloniaActivationForViewFetcher.cs index cfa7a270be..5a4d625c41 100644 --- a/src/Avalonia.ReactiveUI/AvaloniaActivationForViewFetcher.cs +++ b/src/Avalonia.ReactiveUI/AvaloniaActivationForViewFetcher.cs @@ -27,7 +27,7 @@ namespace Avalonia.ReactiveUI /// /// Returns activation observable for activatable Avalonia view. /// - public IObservable GetActivationForView(IActivatable view) + public IObservable GetActivationForView(IActivatableView view) { if (!(view is IVisual visual)) return Observable.Return(false); if (view is WindowBase window) return GetActivationForWindowBase(window); diff --git a/src/Avalonia.ReactiveUI/RoutedViewHost.cs b/src/Avalonia.ReactiveUI/RoutedViewHost.cs index 05edeea683..ac5db32c14 100644 --- a/src/Avalonia.ReactiveUI/RoutedViewHost.cs +++ b/src/Avalonia.ReactiveUI/RoutedViewHost.cs @@ -53,7 +53,7 @@ namespace Avalonia.ReactiveUI /// ReactiveUI routing documentation website for more info. /// /// - public class RoutedViewHost : TransitioningContentControl, IActivatable, IEnableLogger + public class RoutedViewHost : TransitioningContentControl, IActivatableView, IEnableLogger { /// /// for the property. diff --git a/tests/Avalonia.ReactiveUI.UnitTests/AvaloniaActivationForViewFetcherTest.cs b/tests/Avalonia.ReactiveUI.UnitTests/AvaloniaActivationForViewFetcherTest.cs index 1d85312b1a..643dd3efac 100644 --- a/tests/Avalonia.ReactiveUI.UnitTests/AvaloniaActivationForViewFetcherTest.cs +++ b/tests/Avalonia.ReactiveUI.UnitTests/AvaloniaActivationForViewFetcherTest.cs @@ -20,9 +20,9 @@ namespace Avalonia.ReactiveUI.UnitTests { public class AvaloniaActivationForViewFetcherTest { - public class TestUserControl : UserControl, IActivatable { } + public class TestUserControl : UserControl, IActivatableView { } - public class TestUserControlWithWhenActivated : UserControl, IActivatable + public class TestUserControlWithWhenActivated : UserControl, IActivatableView { public bool Active { get; private set; } @@ -38,7 +38,7 @@ namespace Avalonia.ReactiveUI.UnitTests } } - public class TestWindowWithWhenActivated : Window, IActivatable + public class TestWindowWithWhenActivated : Window, IActivatableView { public bool Active { get; private set; } @@ -54,7 +54,7 @@ namespace Avalonia.ReactiveUI.UnitTests } } - public class ActivatableViewModel : ISupportsActivation + public class ActivatableViewModel : IActivatableViewModel { public ViewModelActivator Activator { get; } From fd9cdce20277e7f0b2fd0aa783caee030df88746 Mon Sep 17 00:00:00 2001 From: artyom Date: Sat, 28 Sep 2019 23:44:52 +0300 Subject: [PATCH 15/19] Try 9.1.1 version --- build/ReactiveUI.props | 3 +-- .../AvaloniaActivationForViewFetcher.cs | 2 +- src/Avalonia.ReactiveUI/RoutedViewHost.cs | 2 +- .../AvaloniaActivationForViewFetcherTest.cs | 8 ++++---- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/build/ReactiveUI.props b/build/ReactiveUI.props index cf41e0c57e..7932d453d9 100644 --- a/build/ReactiveUI.props +++ b/build/ReactiveUI.props @@ -1,6 +1,5 @@ - - + diff --git a/src/Avalonia.ReactiveUI/AvaloniaActivationForViewFetcher.cs b/src/Avalonia.ReactiveUI/AvaloniaActivationForViewFetcher.cs index 5a4d625c41..cfa7a270be 100644 --- a/src/Avalonia.ReactiveUI/AvaloniaActivationForViewFetcher.cs +++ b/src/Avalonia.ReactiveUI/AvaloniaActivationForViewFetcher.cs @@ -27,7 +27,7 @@ namespace Avalonia.ReactiveUI /// /// Returns activation observable for activatable Avalonia view. /// - public IObservable GetActivationForView(IActivatableView view) + public IObservable GetActivationForView(IActivatable view) { if (!(view is IVisual visual)) return Observable.Return(false); if (view is WindowBase window) return GetActivationForWindowBase(window); diff --git a/src/Avalonia.ReactiveUI/RoutedViewHost.cs b/src/Avalonia.ReactiveUI/RoutedViewHost.cs index ac5db32c14..05edeea683 100644 --- a/src/Avalonia.ReactiveUI/RoutedViewHost.cs +++ b/src/Avalonia.ReactiveUI/RoutedViewHost.cs @@ -53,7 +53,7 @@ namespace Avalonia.ReactiveUI /// ReactiveUI routing documentation website for more info. /// /// - public class RoutedViewHost : TransitioningContentControl, IActivatableView, IEnableLogger + public class RoutedViewHost : TransitioningContentControl, IActivatable, IEnableLogger { /// /// for the property. diff --git a/tests/Avalonia.ReactiveUI.UnitTests/AvaloniaActivationForViewFetcherTest.cs b/tests/Avalonia.ReactiveUI.UnitTests/AvaloniaActivationForViewFetcherTest.cs index 643dd3efac..1d85312b1a 100644 --- a/tests/Avalonia.ReactiveUI.UnitTests/AvaloniaActivationForViewFetcherTest.cs +++ b/tests/Avalonia.ReactiveUI.UnitTests/AvaloniaActivationForViewFetcherTest.cs @@ -20,9 +20,9 @@ namespace Avalonia.ReactiveUI.UnitTests { public class AvaloniaActivationForViewFetcherTest { - public class TestUserControl : UserControl, IActivatableView { } + public class TestUserControl : UserControl, IActivatable { } - public class TestUserControlWithWhenActivated : UserControl, IActivatableView + public class TestUserControlWithWhenActivated : UserControl, IActivatable { public bool Active { get; private set; } @@ -38,7 +38,7 @@ namespace Avalonia.ReactiveUI.UnitTests } } - public class TestWindowWithWhenActivated : Window, IActivatableView + public class TestWindowWithWhenActivated : Window, IActivatable { public bool Active { get; private set; } @@ -54,7 +54,7 @@ namespace Avalonia.ReactiveUI.UnitTests } } - public class ActivatableViewModel : IActivatableViewModel + public class ActivatableViewModel : ISupportsActivation { public ViewModelActivator Activator { get; } From 7d292d1908732f7376768ea0727e5281d9f6d503 Mon Sep 17 00:00:00 2001 From: artyom Date: Sat, 28 Sep 2019 23:55:58 +0300 Subject: [PATCH 16/19] Double check this wasn't false positive --- build/ReactiveUI.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/ReactiveUI.props b/build/ReactiveUI.props index 7932d453d9..b92d3ddcd6 100644 --- a/build/ReactiveUI.props +++ b/build/ReactiveUI.props @@ -1,5 +1,5 @@ - + From 00a148d0a3732e17a4d6bbc75d9b7449ecb65e99 Mon Sep 17 00:00:00 2001 From: artyom Date: Sun, 29 Sep 2019 00:39:18 +0300 Subject: [PATCH 17/19] Try with WaitForPendingFinalizers --- build/ReactiveUI.props | 2 +- .../AvaloniaActivationForViewFetcher.cs | 2 +- src/Avalonia.ReactiveUI/RoutedViewHost.cs | 2 +- .../ExpressionObserverBuilderTests_AttachedProperty.cs | 2 ++ .../AvaloniaActivationForViewFetcherTest.cs | 8 ++++---- 5 files changed, 9 insertions(+), 7 deletions(-) diff --git a/build/ReactiveUI.props b/build/ReactiveUI.props index b92d3ddcd6..ba356c2e9a 100644 --- a/build/ReactiveUI.props +++ b/build/ReactiveUI.props @@ -1,5 +1,5 @@ - + diff --git a/src/Avalonia.ReactiveUI/AvaloniaActivationForViewFetcher.cs b/src/Avalonia.ReactiveUI/AvaloniaActivationForViewFetcher.cs index cfa7a270be..5a4d625c41 100644 --- a/src/Avalonia.ReactiveUI/AvaloniaActivationForViewFetcher.cs +++ b/src/Avalonia.ReactiveUI/AvaloniaActivationForViewFetcher.cs @@ -27,7 +27,7 @@ namespace Avalonia.ReactiveUI /// /// Returns activation observable for activatable Avalonia view. /// - public IObservable GetActivationForView(IActivatable view) + public IObservable GetActivationForView(IActivatableView view) { if (!(view is IVisual visual)) return Observable.Return(false); if (view is WindowBase window) return GetActivationForWindowBase(window); diff --git a/src/Avalonia.ReactiveUI/RoutedViewHost.cs b/src/Avalonia.ReactiveUI/RoutedViewHost.cs index 05edeea683..ac5db32c14 100644 --- a/src/Avalonia.ReactiveUI/RoutedViewHost.cs +++ b/src/Avalonia.ReactiveUI/RoutedViewHost.cs @@ -53,7 +53,7 @@ namespace Avalonia.ReactiveUI /// ReactiveUI routing documentation website for more info. /// /// - public class RoutedViewHost : TransitioningContentControl, IActivatable, IEnableLogger + public class RoutedViewHost : TransitioningContentControl, IActivatableView, IEnableLogger { /// /// for the property. diff --git a/tests/Avalonia.Markup.UnitTests/Parsers/ExpressionObserverBuilderTests_AttachedProperty.cs b/tests/Avalonia.Markup.UnitTests/Parsers/ExpressionObserverBuilderTests_AttachedProperty.cs index 5b97ab7ae6..ff9e259eab 100644 --- a/tests/Avalonia.Markup.UnitTests/Parsers/ExpressionObserverBuilderTests_AttachedProperty.cs +++ b/tests/Avalonia.Markup.UnitTests/Parsers/ExpressionObserverBuilderTests_AttachedProperty.cs @@ -120,6 +120,8 @@ namespace Avalonia.Markup.UnitTests.Parsers var result = run(); result.Item1.Subscribe(x => { }); + GC.Collect(); + GC.WaitForPendingFinalizers(); GC.Collect(); Assert.Null(result.Item2.Target); diff --git a/tests/Avalonia.ReactiveUI.UnitTests/AvaloniaActivationForViewFetcherTest.cs b/tests/Avalonia.ReactiveUI.UnitTests/AvaloniaActivationForViewFetcherTest.cs index 1d85312b1a..643dd3efac 100644 --- a/tests/Avalonia.ReactiveUI.UnitTests/AvaloniaActivationForViewFetcherTest.cs +++ b/tests/Avalonia.ReactiveUI.UnitTests/AvaloniaActivationForViewFetcherTest.cs @@ -20,9 +20,9 @@ namespace Avalonia.ReactiveUI.UnitTests { public class AvaloniaActivationForViewFetcherTest { - public class TestUserControl : UserControl, IActivatable { } + public class TestUserControl : UserControl, IActivatableView { } - public class TestUserControlWithWhenActivated : UserControl, IActivatable + public class TestUserControlWithWhenActivated : UserControl, IActivatableView { public bool Active { get; private set; } @@ -38,7 +38,7 @@ namespace Avalonia.ReactiveUI.UnitTests } } - public class TestWindowWithWhenActivated : Window, IActivatable + public class TestWindowWithWhenActivated : Window, IActivatableView { public bool Active { get; private set; } @@ -54,7 +54,7 @@ namespace Avalonia.ReactiveUI.UnitTests } } - public class ActivatableViewModel : ISupportsActivation + public class ActivatableViewModel : IActivatableViewModel { public ViewModelActivator Activator { get; } From 06d52c7e5b1d0b84675a7c0817fd34fc0ab104a5 Mon Sep 17 00:00:00 2001 From: artyom Date: Sun, 29 Sep 2019 00:58:50 +0300 Subject: [PATCH 18/19] Try to avoid including extra packages --- build/Rx.props | 2 -- 1 file changed, 2 deletions(-) diff --git a/build/Rx.props b/build/Rx.props index f1526dbf8c..edff0af160 100644 --- a/build/Rx.props +++ b/build/Rx.props @@ -1,7 +1,5 @@  - - From a3e40b9c32f24bdd3e2d9e7b462c9ca12e1f61de Mon Sep 17 00:00:00 2001 From: artyom Date: Mon, 30 Sep 2019 15:31:27 +0300 Subject: [PATCH 19/19] Update ReactiveUI to 10.3.6 --- build/ReactiveUI.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/ReactiveUI.props b/build/ReactiveUI.props index ba356c2e9a..f827cb9a32 100644 --- a/build/ReactiveUI.props +++ b/build/ReactiveUI.props @@ -1,5 +1,5 @@ - +