public override Task <IImageSourceServiceResult <Drawable>?> GetDrawableAsync(IImageSource imageSource, Context context, CancellationToken cancellationToken = default) { var uriImageSource = (IUriImageSource)imageSource; if (!uriImageSource.IsEmpty) { try { var drawableCallback = new ImageLoaderResultCallback(); PlatformInterop.LoadImageFromUri(context, uriImageSource.Uri.OriginalString, new Java.Lang.Boolean(uriImageSource.CachingEnabled), drawableCallback); return(drawableCallback.Result); } catch (Exception ex) { Logger?.LogWarning(ex, "Unable to load image uri '{Uri}'.", uriImageSource.Uri.OriginalString); throw; } } return(Task.FromResult <IImageSourceServiceResult <Drawable>?>(null)); }