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;
            }
        }
Ejemplo n.º 4
0
        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;
            }
        }