private void Apply(AcrylicState state) { if (AlwaysUseFallback || !SupportsBlur()) { state.BlurDisposable.Disposable = null; // Fall back to solid color var fillPaint = GetFillPaint(Rect.Empty); ExecuteWithNoRelayout(state.Owner, v => v.SetBackgroundDrawable(Brush.GetBackgroundDrawable(this, state.DrawArea, fillPaint, state.MaskingPath, antiAlias: false))); if (state.FallbackDisposable.Disposable == null) { state.FallbackDisposable.Disposable = Disposable.Create( () => ExecuteWithNoRelayout(state.Owner, v => v.SetBackgroundDrawable(null))); } } else { state.FallbackDisposable.Disposable = null; ApplyAcrylicBlur(state); if (state.BlurDisposable.Disposable == null) { state.BlurDisposable.Disposable = Disposable.Create( () => RemoveAcrylicBlur(state)); } } }