From 1eb0fbb3859f294dbb76eb4b8357542216323b9c Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Tue, 22 Dec 2015 23:07:39 +0000 Subject: [PATCH] Further simplify StyleActivator. The clever stuff was causing styles to fail and probably isn't needed anyhow. Fixes #371. --- src/Perspex.Styling/Styling/StyleActivator.cs | 14 +++---------- .../StyleActivatorTests.cs | 20 ------------------- 2 files changed, 3 insertions(+), 31 deletions(-) diff --git a/src/Perspex.Styling/Styling/StyleActivator.cs b/src/Perspex.Styling/Styling/StyleActivator.cs index 463fc5bb78..dd2601e0bb 100644 --- a/src/Perspex.Styling/Styling/StyleActivator.cs +++ b/src/Perspex.Styling/Styling/StyleActivator.cs @@ -19,17 +19,9 @@ namespace Perspex.Styling { public static IObservable And(IEnumerable> inputs) { - var sourceArray = inputs.Select(s => s.Publish().RefCount()).ToArray(); - - var terminate = sourceArray - .ToObservable() - .SelectMany(x => x.LastAsync() - .Where(y => y == false)); - - return sourceArray - .CombineLatest(values => values.All(x => x)) - .DistinctUntilChanged() - .TakeUntil(terminate); + return inputs.CombineLatest() + .Select(values => values.All(x => x)) + .DistinctUntilChanged(); } public static IObservable Or(IEnumerable> inputs) diff --git a/tests/Perspex.Styling.UnitTests/StyleActivatorTests.cs b/tests/Perspex.Styling.UnitTests/StyleActivatorTests.cs index 9669904af6..afd573dd9d 100644 --- a/tests/Perspex.Styling.UnitTests/StyleActivatorTests.cs +++ b/tests/Perspex.Styling.UnitTests/StyleActivatorTests.cs @@ -84,26 +84,6 @@ namespace Perspex.Styling.UnitTests Assert.Equal(1, inputs[2].SubscriberCount); } - [Fact] - public void Activator_And_Should_Complete_When_Input_Completes_On_False() - { - var inputs = new[] - { - new TestSubject(false), - new TestSubject(false), - new TestSubject(true), - }; - var target = StyleActivator.And(inputs); - var result = new TestObserver(); - var completed = false; - - target.Subscribe(_ => { }, () => completed = true); - inputs[0].OnNext(false); - inputs[0].OnCompleted(); - - Assert.True(completed); - } - [Fact] public void Activator_Or_Should_Follow_Single_Input() {