Try catch Update Bitmap and equate null to empty for FontFamily Check (#7611) fixes...
authorShane Neuville <shneuvil@microsoft.com>
Wed, 25 Sep 2019 00:35:33 +0000 (18:35 -0600)
committerRui Marinho <me@ruimarinho.net>
Wed, 25 Sep 2019 00:35:33 +0000 (01:35 +0100)
Xamarin.Forms.Platform.Android/FastRenderers/ImageElementManager.cs
Xamarin.Forms.Platform.Android/Renderers/FontExtensions.cs

index 642f6b0..23c659e 100644 (file)
@@ -16,13 +16,13 @@ namespace Xamarin.Forms.Platform.Android.FastRenderers
                        renderer.ElementPropertyChanged += OnElementPropertyChanged;
                        renderer.ElementChanged += OnElementChanged;
 
-                       if(renderer is ILayoutChanges layoutChanges)
+                       if (renderer is ILayoutChanges layoutChanges)
                                layoutChanges.LayoutChange += OnLayoutChange;
                }
 
                static void OnLayoutChange(object sender, global::Android.Views.View.LayoutChangeEventArgs e)
                {
-                       if(sender is IVisualElementRenderer renderer && renderer.View is ImageView imageView)
+                       if (sender is IVisualElementRenderer renderer && renderer.View is ImageView imageView)
                                AViewCompat.SetClipBounds(imageView, imageView.GetScaleType() == AScaleType.CenterCrop ? new ARect(0, 0, e.Right - e.Left, e.Bottom - e.Top) : null);
                }
 
@@ -57,25 +57,12 @@ namespace Xamarin.Forms.Platform.Android.FastRenderers
                async static void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
                {
                        var renderer = (sender as IVisualElementRenderer);
-                       var ImageElementManager = (IImageElement)renderer.Element;
-                       var imageController = (IImageController)renderer.Element;
 
                        if (e.PropertyName == Image.SourceProperty.PropertyName ||
                                e.PropertyName == Button.ImageSourceProperty.PropertyName)
                        {
-                               try
-                               {
-                                       await TryUpdateBitmap(renderer as IImageRendererController, (ImageView)renderer.View, (IImageElement)renderer.Element).ConfigureAwait(false);
-                               }
-                               catch (Exception ex)
-                               {
-                                       Log.Warning(renderer.GetType().Name, "Error loading image: {0}", ex);
-                               }
-                               finally
-                               {
-                                       if(imageController != null)
-                                               imageController?.SetIsLoading(false);
-                               }
+                               await TryUpdateBitmap(renderer as IImageRendererController, (ImageView)renderer.View, (IImageElement)renderer.Element).ConfigureAwait(false);
+
                        }
                        else if (e.PropertyName == Image.AspectProperty.PropertyName)
                        {
@@ -91,7 +78,19 @@ namespace Xamarin.Forms.Platform.Android.FastRenderers
                                return;
                        }
 
-                       await Control.UpdateBitmap(newImage, previous).ConfigureAwait(false);
+                       try
+                       {
+                               await Control.UpdateBitmap(newImage, previous).ConfigureAwait(false);
+                       }
+                       catch (Exception ex)
+                       {
+                               Log.Warning(nameof(ImageElementManager), "Error loading image: {0}", ex);
+                       }
+                       finally
+                       {
+                               if (newImage is IImageController imageController)
+                                       imageController.SetIsLoading(false);
+                       }
                }
 
                static void UpdateAspect(IImageRendererController rendererController, ImageView Control, IImageElement newImage, IImageElement previous = null)
index 75fadba..f2f3120 100644 (file)
@@ -84,7 +84,7 @@ namespace Xamarin.Forms.Platform.Android
                        var fontFamily = key.Item1;
                        var fontAttribute = key.Item2;
 
-                       if (fontFamily == null)
+                       if (String.IsNullOrWhiteSpace(fontFamily))
                        {
                                var style = ToTypefaceStyle(fontAttribute);
                                result = Typeface.Create(Typeface.Default, style);