private async void UpdateLogo(ItemViewModel item) { if (item.Item.HasLogo || item.Item.ParentLogoImageTag.HasValue) { try { var bitmap = await item.GetBitmapImageAsync(new ImageOptions { ImageType = ImageType.Logo }, CancellationToken.None); ImgLogo.Source = bitmap; ImgLogo.Visibility = Visibility.Visible; return; } catch { // Logged at lower levels } } ImgLogo.Visibility = Visibility.Collapsed; }
private async void UpdateImage(ItemViewModel item) { var options = GetImageOptions(); if (string.Equals(ImageType, "EpisodeThumb")) { if (item.Item.HasPrimaryImage) { try { options.ImageType = Model.Entities.ImageType.Primary; var bitmap = await item.GetBitmapImageAsync(options, CancellationToken.None); SetImage(bitmap); return; } catch { // Logged at lower levels } } if (item.Item.ParentThumbImageTag.HasValue) { try { options.ImageType = Model.Entities.ImageType.Thumb; var bitmap = await item.GetBitmapImageAsync(options, CancellationToken.None); SetImage(bitmap); return; } catch { // Logged at lower levels } } } else if (string.Equals(ImageType, "Art")) { if (item.Item.HasArtImage || item.Item.ParentArtImageTag.HasValue) { try { options.ImageType = Model.Entities.ImageType.Art; var bitmap = await item.GetBitmapImageAsync(options, CancellationToken.None); SetImage(bitmap); return; } catch { // Logged at lower levels } } } else if (item.Item.HasPrimaryImage) { try { options.ImageType = Model.Entities.ImageType.Primary; var bitmap = await item.GetBitmapImageAsync(options, CancellationToken.None); SetImage(bitmap); return; } catch { // Logged at lower levels } } Img.Visibility = Visibility.Collapsed; }
private async void UpdateLogoForListView(ItemViewModel viewModel, BaseItemDto item) { if (item != null && item.BackdropCount > 0) { var tokenSource = new CancellationTokenSource(); _logoCancellationTokenSource = tokenSource; try { var img = await viewModel.GetBitmapImageAsync(new ImageOptions { ImageType = ImageType.Backdrop, Height = 320 }, tokenSource.Token); tokenSource.Token.ThrowIfCancellationRequested(); LogoImage.Source = img; LogoImage.Visibility = Visibility.Visible; LogoImage.HorizontalAlignment = HorizontalAlignment.Left; } catch (OperationCanceledException) { LogoImage.Visibility = Visibility.Collapsed; } catch { LogoImage.Visibility = Visibility.Collapsed; } finally { DisposeLogoCancellationToken(tokenSource, false); } } else if (item != null && item.HasThumb) { var tokenSource = new CancellationTokenSource(); _logoCancellationTokenSource = tokenSource; try { var img = await viewModel.GetBitmapImageAsync(new ImageOptions { ImageType = ImageType.Thumb, Height = 320 }, tokenSource.Token); tokenSource.Token.ThrowIfCancellationRequested(); LogoImage.Source = img; LogoImage.Visibility = Visibility.Visible; LogoImage.HorizontalAlignment = HorizontalAlignment.Left; } catch (OperationCanceledException) { LogoImage.Visibility = Visibility.Collapsed; } catch { LogoImage.Visibility = Visibility.Collapsed; } finally { DisposeLogoCancellationToken(tokenSource, false); } } else if (item != null && item.HasPrimaryImage) { var tokenSource = new CancellationTokenSource(); _logoCancellationTokenSource = tokenSource; try { var img = await viewModel.GetBitmapImageAsync(new ImageOptions { ImageType = ImageType.Primary, Height = 320 }, tokenSource.Token); tokenSource.Token.ThrowIfCancellationRequested(); LogoImage.Source = img; LogoImage.Visibility = Visibility.Visible; LogoImage.HorizontalAlignment = HorizontalAlignment.Left; } catch (OperationCanceledException) { LogoImage.Visibility = Visibility.Collapsed; } catch { LogoImage.Visibility = Visibility.Collapsed; } finally { DisposeLogoCancellationToken(tokenSource, false); } } else { LogoImage.Visibility = Visibility.Collapsed; } }
private async void UpdateLogo(ItemViewModel viewModel, BaseItemDto item) { DisposeLogoCancellationToken(_logoCancellationTokenSource, true); if (string.Equals(viewModel.ViewType, ListViewTypes.List)) { PnlTitle.Visibility = Visibility.Visible; UpdateLogoForListView(viewModel, item); return; } if (item != null && (item.HasLogo || item.ParentLogoImageTag.HasValue)) { var tokenSource = new CancellationTokenSource(); _logoCancellationTokenSource = tokenSource; try { var img = await viewModel.GetBitmapImageAsync(new ImageOptions { ImageType = ImageType.Logo }, tokenSource.Token); LogoImage.Source = img; LogoImage.Visibility = Visibility.Visible; LogoImage.HorizontalAlignment = HorizontalAlignment.Center; // If the logo is owned by the current item, don't show the title if (item.HasLogo) { PnlTitle.Visibility = Visibility.Collapsed; } } catch (OperationCanceledException) { } catch { LogoImage.Visibility = Visibility.Collapsed; PnlTitle.Visibility = Visibility.Visible; } finally { DisposeLogoCancellationToken(tokenSource, false); } } else { LogoImage.Visibility = Visibility.Collapsed; PnlTitle.Visibility = Visibility.Visible; } }