From 83e640f2a036deb8c193f6c212743660ea74fe2f Mon Sep 17 00:00:00 2001 From: Andrei Misiukevich Date: Wed, 5 Jun 2019 01:36:47 +0300 Subject: [PATCH] [Android] Fixed effects applying to Frame fixes https://github.com/xamarin/Xamarin.Forms/issues/3548 --- .../FastRenderers/FrameRenderer.cs | 25 +++++++------------ 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/Xamarin.Forms.Platform.Android/FastRenderers/FrameRenderer.cs b/Xamarin.Forms.Platform.Android/FastRenderers/FrameRenderer.cs index aa1b24fa7cc..d6ed833b784 100644 --- a/Xamarin.Forms.Platform.Android/FastRenderers/FrameRenderer.cs +++ b/Xamarin.Forms.Platform.Android/FastRenderers/FrameRenderer.cs @@ -11,7 +11,7 @@ namespace Xamarin.Forms.Platform.Android.FastRenderers { - public class FrameRenderer : CardView, IVisualElementRenderer, IEffectControlProvider, IViewRenderer, ITabStop + public class FrameRenderer : CardView, IVisualElementRenderer, IViewRenderer, ITabStop { float _defaultElevation = -1f; float _defaultCornerRadius = -1f; @@ -23,9 +23,8 @@ public class FrameRenderer : CardView, IVisualElementRenderer, IEffectControlPro VisualElementPackager _visualElementPackager; VisualElementTracker _visualElementTracker; + VisualElementRenderer _visualElementRenderer; - readonly GestureManager _gestureManager; - readonly EffectControlProvider _effectControlProvider; readonly MotionEventHelper _motionEventHelper = new MotionEventHelper(); public event EventHandler ElementChanged; @@ -33,16 +32,14 @@ public class FrameRenderer : CardView, IVisualElementRenderer, IEffectControlPro public FrameRenderer(Context context) : base(context) { - _gestureManager = new GestureManager(this); - _effectControlProvider = new EffectControlProvider(this); + _visualElementRenderer = new VisualElementRenderer(this); } [Obsolete("This constructor is obsolete as of version 2.5. Please use FrameRenderer(Context) instead.")] [EditorBrowsable(EditorBrowsableState.Never)] public FrameRenderer() : base(Forms.Context) { - _gestureManager = new GestureManager(this); - _effectControlProvider = new EffectControlProvider(this); + _visualElementRenderer = new VisualElementRenderer(this); } protected CardView Control => this; @@ -104,11 +101,6 @@ void IVisualElementRenderer.UpdateLayout() tracker?.UpdateLayout(); } - void IEffectControlProvider.RegisterEffect(Effect effect) - { - _effectControlProvider.RegisterEffect(effect); - } - void IViewRenderer.MeasureExactly() { ViewRenderer.MeasureExactly(this, Element, Context); @@ -123,8 +115,6 @@ protected override void Dispose(bool disposing) if (disposing) { - _gestureManager?.Dispose(); - if (_visualElementTracker != null) { _visualElementTracker.Dispose(); @@ -142,7 +132,10 @@ protected override void Dispose(bool disposing) _backgroundDrawable.Dispose(); _backgroundDrawable = null; } - + + _visualElementRenderer?.Dispose(); + _visualElementRenderer = null; + int count = ChildCount; for (var i = 0; i < count; i++) { @@ -214,7 +207,7 @@ protected override void OnLayout(bool changed, int left, int top, int right, int public override bool OnTouchEvent(MotionEvent e) { - if (_gestureManager.OnTouchEvent(e) || base.OnTouchEvent(e)) + if (_visualElementRenderer.OnTouchEvent(e) || base.OnTouchEvent(e)) { return true; }