public Task <IImageSourceServiceResult> LoadDrawableAsync(IImageSource imageSource, Android.Widget.ImageView imageView, CancellationToken cancellationToken = default) { if (imageSource is not ICustomImageSourceStub imageSourceStub) { return(Task.FromResult <IImageSourceServiceResult>(new ImageSourceServiceLoadResult())); } var color = imageSourceStub.Color; var drawable = _cache.Get(color); imageView.SetImageDrawable(drawable); var result = new ImageSourceServiceLoadResult(() => _cache.Return(color)); return(Task.FromResult <IImageSourceServiceResult>(result)); }
public Task <IImageSourceServiceResult <UIImage> > GetImageAsync(ICustomImageSourceStub imageSource, float scale = 1, CancellationToken cancellationToken = default) { var color = imageSource.Color; var drawable = _cache.Get(color); var result = new ImageSourceServiceResult(drawable, () => _cache.Return(color)); return(Task.FromResult <IImageSourceServiceResult <UIImage> >(result)); }