public static IDisposable BindPreviewLoading( this PhotoMessageModel model) { return(BindPreviewLoading( model, Locator.Current.GetService <IPreviewLoader>())); }
private static Preview GetPreview(IPreviewLoader previewLoader, PhotoMessageModel model) { if (model.PhotoData != null) { return(previewLoader.GetPreview(model.PhotoData, PreviewQuality.High)); } return(null); }
public static IDisposable BindPreviewLoading( this PhotoMessageModel model, IPreviewLoader previewLoader) { if (model.Preview == null) { model.Preview = GetPreview(previewLoader, model); if (model.Preview == null || model.Preview.Bitmap == null) { return(LoadPreview(previewLoader, model) .SubscribeOn(RxApp.TaskpoolScheduler) .ObserveOn(RxApp.MainThreadScheduler) .Accept(preview => { model.Preview = preview; })); } } return(Disposable.Empty); }
private static IObservable <Preview> LoadPreview(IPreviewLoader previewLoader, PhotoMessageModel model) { if (model.PhotoData != null) { return(previewLoader.LoadPreview(model.PhotoData, PreviewQuality.Low) .Concat(previewLoader.LoadPreview(model.PhotoData, PreviewQuality.High))); } return(Observable.Empty <Preview>()); }