From 6b99bcf30beb1d5cae6fa8e407d2660b292f451d Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Fri, 4 Mar 2016 19:48:06 +0100 Subject: [PATCH] Use LastOrDefaultAsync for completion. --- src/Markup/Perspex.Markup/Data/ExpressionObserver.cs | 11 ++--------- src/Perspex.Styling/Styling/ActivatedObservable.cs | 4 ++-- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/src/Markup/Perspex.Markup/Data/ExpressionObserver.cs b/src/Markup/Perspex.Markup/Data/ExpressionObserver.cs index cebf0daebd..097e1cb3cf 100644 --- a/src/Markup/Perspex.Markup/Data/ExpressionObserver.cs +++ b/src/Markup/Perspex.Markup/Data/ExpressionObserver.cs @@ -197,11 +197,11 @@ namespace Perspex.Markup.Data if (_rootObservable != null) { - source = source.TakeUntil(Complete(_rootObservable)); + source = source.TakeUntil(_rootObservable.LastOrDefaultAsync()); } else if (_update != null) { - source = source.TakeUntil(Complete(_update)); + source = source.TakeUntil(_update.LastOrDefaultAsync()); } var subscription = source.Subscribe(observer); @@ -232,13 +232,6 @@ namespace Perspex.Markup.Data } } - private static IObservable Complete(IObservable input) - { - return Observable.Merge( - input.TakeLast(1).Select(_ => Unit.Default), - input.IsEmpty().Where(x => x).Select(_ => Unit.Default)); - } - private void IncrementCount() { if (_count++ == 0 && _node != null) diff --git a/src/Perspex.Styling/Styling/ActivatedObservable.cs b/src/Perspex.Styling/Styling/ActivatedObservable.cs index 4ab2f04495..d5bd9e8047 100644 --- a/src/Perspex.Styling/Styling/ActivatedObservable.cs +++ b/src/Perspex.Styling/Styling/ActivatedObservable.cs @@ -62,8 +62,8 @@ namespace Perspex.Styling { Contract.Requires(observer != null); - var sourceCompleted = Source.TakeLast(1).Select(_ => Unit.Default); - var activatorCompleted = Activator.TakeLast(1).Select(_ => Unit.Default); + var sourceCompleted = Source.LastOrDefaultAsync().Select(_ => Unit.Default); + var activatorCompleted = Activator.LastOrDefaultAsync().Select(_ => Unit.Default); var completed = sourceCompleted.Merge(activatorCompleted); return Activator