From: Shane Neuville Date: Thu, 28 Feb 2019 18:57:20 +0000 (-0700) Subject: [Android] Remove changes to IVisualElementRenderer so it remains backwards compatible... X-Git-Tag: accepted/tizen/5.5/unified/20200421.150457~481^2~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=70a2a628a5223a3850d4e64ab462309f67cd97c8;p=platform%2Fcore%2Fcsapi%2Fxsf.git [Android] Remove changes to IVisualElementRenderer so it remains backwards compatible (#5398) * return IVisualElementRenderer to previous state * set to internal --- diff --git a/Xamarin.Forms.Platform.Android/AppCompat/ImageButtonRenderer.cs b/Xamarin.Forms.Platform.Android/AppCompat/ImageButtonRenderer.cs index 75fe751..f8395b1 100644 --- a/Xamarin.Forms.Platform.Android/AppCompat/ImageButtonRenderer.cs +++ b/Xamarin.Forms.Platform.Android/AppCompat/ImageButtonRenderer.cs @@ -21,7 +21,8 @@ namespace Xamarin.Forms.Platform.Android IImageRendererController, AView.IOnFocusChangeListener, AView.IOnClickListener, - AView.IOnTouchListener + AView.IOnTouchListener, + ILayoutChanges { bool _inputTransparent; bool _disposed; diff --git a/Xamarin.Forms.Platform.Android/FastRenderers/ImageElementManager.cs b/Xamarin.Forms.Platform.Android/FastRenderers/ImageElementManager.cs index 6a4eb64..a2bb807 100644 --- a/Xamarin.Forms.Platform.Android/FastRenderers/ImageElementManager.cs +++ b/Xamarin.Forms.Platform.Android/FastRenderers/ImageElementManager.cs @@ -15,7 +15,9 @@ namespace Xamarin.Forms.Platform.Android.FastRenderers { renderer.ElementPropertyChanged += OnElementPropertyChanged; renderer.ElementChanged += OnElementChanged; - renderer.LayoutChange += OnLayoutChange; + + if(renderer is ILayoutChanges layoutChanges) + layoutChanges.LayoutChange += OnLayoutChange; } static void OnLayoutChange(object sender, global::Android.Views.View.LayoutChangeEventArgs e) @@ -28,7 +30,8 @@ namespace Xamarin.Forms.Platform.Android.FastRenderers { renderer.ElementPropertyChanged -= OnElementPropertyChanged; renderer.ElementChanged -= OnElementChanged; - renderer.LayoutChange -= OnLayoutChange; + if (renderer is ILayoutChanges layoutChanges) + layoutChanges.LayoutChange -= OnLayoutChange; if (renderer.View is ImageView imageView) imageView.SetImageDrawable(null); diff --git a/Xamarin.Forms.Platform.Android/FastRenderers/ImageRenderer.cs b/Xamarin.Forms.Platform.Android/FastRenderers/ImageRenderer.cs index 6bee123..77003e4 100644 --- a/Xamarin.Forms.Platform.Android/FastRenderers/ImageRenderer.cs +++ b/Xamarin.Forms.Platform.Android/FastRenderers/ImageRenderer.cs @@ -11,7 +11,8 @@ using Android.Support.V4.View; namespace Xamarin.Forms.Platform.Android.FastRenderers { - internal sealed class ImageRenderer : AImageView, IVisualElementRenderer, IImageRendererController, IViewRenderer, ITabStop + internal sealed class ImageRenderer : AImageView, IVisualElementRenderer, IImageRendererController, IViewRenderer, ITabStop, + ILayoutChanges { bool _disposed; Image _element; diff --git a/Xamarin.Forms.Platform.Android/ILayoutChanges.cs b/Xamarin.Forms.Platform.Android/ILayoutChanges.cs new file mode 100644 index 0000000..a2455a4 --- /dev/null +++ b/Xamarin.Forms.Platform.Android/ILayoutChanges.cs @@ -0,0 +1,10 @@ +using System; +using ALayoutChangeEventArgs = Android.Views.View.LayoutChangeEventArgs; + +namespace Xamarin.Forms.Platform.Android +{ + internal interface ILayoutChanges + { + event EventHandler LayoutChange; + } +} \ No newline at end of file diff --git a/Xamarin.Forms.Platform.Android/IVisualElementRenderer.cs b/Xamarin.Forms.Platform.Android/IVisualElementRenderer.cs index c0ff80a..ec03726 100644 --- a/Xamarin.Forms.Platform.Android/IVisualElementRenderer.cs +++ b/Xamarin.Forms.Platform.Android/IVisualElementRenderer.cs @@ -29,7 +29,5 @@ namespace Xamarin.Forms.Platform.Android void SetLabelFor(int? id); void UpdateLayout(); - - event EventHandler LayoutChange; } } \ No newline at end of file diff --git a/Xamarin.Forms.Platform.Android/Renderers/ShellRenderer.cs b/Xamarin.Forms.Platform.Android/Renderers/ShellRenderer.cs index 3ee7617..f6d8263 100644 --- a/Xamarin.Forms.Platform.Android/Renderers/ShellRenderer.cs +++ b/Xamarin.Forms.Platform.Android/Renderers/ShellRenderer.cs @@ -31,12 +31,6 @@ namespace Xamarin.Forms.Platform.Android remove { _elementPropertyChanged -= value; } } - event EventHandler IVisualElementRenderer.LayoutChange - { - add =>_flyoutRenderer.AndroidView.LayoutChange += value; - remove => _flyoutRenderer.AndroidView.LayoutChange -= value; - } - VisualElement IVisualElementRenderer.Element => Element; VisualElementTracker IVisualElementRenderer.Tracker => null; diff --git a/Xamarin.Forms.Platform.Android/Xamarin.Forms.Platform.Android.csproj b/Xamarin.Forms.Platform.Android/Xamarin.Forms.Platform.Android.csproj index 5ef0415..41320d3 100644 --- a/Xamarin.Forms.Platform.Android/Xamarin.Forms.Platform.Android.csproj +++ b/Xamarin.Forms.Platform.Android/Xamarin.Forms.Platform.Android.csproj @@ -144,6 +144,7 @@ +