private async Task ProcessMultipleImages(IEnumerable <BaseItemDto> items) { var list = new List <Stream>(); foreach (var item in items) { var url = _apiClient.GetImageUrl(item, MultiplePostersOptions); try { var stream = await _apiClient.GetImageStreamAsync(url); list.Add(stream); } catch (HttpException ex) { _logger.ErrorException("ProcessMultipleImages()", ex); } } if (list.IsNullOrEmpty()) { _logger.Debug("No images found, lockscreen image not changed"); return; } var lockscreen = new LockScreenMultiImage { ItemsSource = list, Height = 800, Width = 480 }; await ToImage(lockscreen); await SetLockScreenImage(LockScreenImageUrl); }
private static object GetDtoImage(BaseItemDto item, string imageType, IExtendedApiClient apiClient) { if (item.ImageTags.IsNullOrEmpty()) { return(""); } var imageOptions = new ImageOptions { Quality = 90, #if WP8 MaxHeight = 336, #else MaxHeight = 173, #endif ImageType = ImageType.Primary }; if (imageType.Equals("logo", StringComparison.OrdinalIgnoreCase)) { imageOptions.ImageType = ImageType.Logo; } else if (imageType.Equals("backdrop")) { imageOptions.MaxHeight = 800; imageOptions.ImageType = ImageType.Backdrop; var images = apiClient.GetBackdropImageUrls(item, imageOptions); if (!images.IsNullOrEmpty()) { return(images.FirstOrDefault()); } } else if (imageType.Equals("primaryorbackdrop")) { if (!item.HasPrimaryImage) { imageOptions.MaxHeight = 800; imageOptions.ImageType = ImageType.Backdrop; var images = apiClient.GetBackdropImageUrls(item, imageOptions); if (!images.IsNullOrEmpty()) { return(images.FirstOrDefault()); } } } else if (imageType.Equals("backdropsmall", StringComparison.OrdinalIgnoreCase)) { #if WP8 imageOptions.MaxHeight = 336; #else imageOptions.MaxHeight = 173; #endif imageOptions.ImageType = ImageType.Backdrop; var images = apiClient.GetBackdropImageUrls(item, imageOptions); if (!images.IsNullOrEmpty()) { return(images.FirstOrDefault()); } } else if (imageType.Equals("banner", StringComparison.OrdinalIgnoreCase)) { imageOptions.MaxHeight = 140; imageOptions.ImageType = ImageType.Banner; } else if (imageType.Equals("art", StringComparison.OrdinalIgnoreCase)) { imageOptions.ImageType = ImageType.Art; } else if (imageType.Equals("thumbnail", StringComparison.OrdinalIgnoreCase)) { imageOptions.ImageType = ImageType.Thumb; } else if (imageType.Equals("icon", StringComparison.OrdinalIgnoreCase)) { #if WP8 imageOptions.MaxHeight = 159; #else imageOptions.MaxHeight = 90; #endif } else if (imageType.Equals("poster", StringComparison.OrdinalIgnoreCase)) { #if WP8 imageOptions.MaxHeight = 675; #else imageOptions.MaxHeight = 450; #endif } else if (imageType.Equals("episode", StringComparison.OrdinalIgnoreCase)) { #if WP8 imageOptions.MaxHeight = 382; #else imageOptions.MaxHeight = 255; #endif } else { #if WP8 imageOptions.MaxHeight = 300; #else imageOptions.MaxHeight = 200; #endif } try { string url = item.Type == "Series" ? apiClient.GetImageUrl(item.Id, imageOptions) : apiClient.GetImageUrl(item, imageOptions); return(url); } catch { return(""); } }
private static object GetDtoImage(BaseItemDto item, string imageType, IExtendedApiClient apiClient) { if (item.ImageTags.IsNullOrEmpty()) { return ""; } var imageOptions = new ImageOptions { Quality = 90, #if WP8 MaxHeight = 336, #else MaxHeight = 173, #endif ImageType = ImageType.Primary }; if (imageType.Equals("logo", StringComparison.OrdinalIgnoreCase)) { imageOptions.ImageType = ImageType.Logo; } else if (imageType.Equals("backdrop")) { imageOptions.MaxHeight = 800; imageOptions.ImageType = ImageType.Backdrop; var images = apiClient.GetBackdropImageUrls(item, imageOptions); if (!images.IsNullOrEmpty()) { return images.FirstOrDefault(); } } else if (imageType.Equals("primaryorbackdrop")) { if (!item.HasPrimaryImage) { imageOptions.MaxHeight = 800; imageOptions.ImageType = ImageType.Backdrop; var images = apiClient.GetBackdropImageUrls(item, imageOptions); if (!images.IsNullOrEmpty()) { return images.FirstOrDefault(); } } } else if (imageType.Equals("backdropsmall", StringComparison.OrdinalIgnoreCase)) { #if WP8 imageOptions.MaxHeight = 336; #else imageOptions.MaxHeight = 173; #endif imageOptions.ImageType = ImageType.Backdrop; var images = apiClient.GetBackdropImageUrls(item, imageOptions); if (!images.IsNullOrEmpty()) { return images.FirstOrDefault(); } } else if (imageType.Equals("banner", StringComparison.OrdinalIgnoreCase)) { imageOptions.MaxHeight = 140; imageOptions.ImageType = ImageType.Banner; } else if (imageType.Equals("art", StringComparison.OrdinalIgnoreCase)) { imageOptions.ImageType = ImageType.Art; } else if (imageType.Equals("thumbnail", StringComparison.OrdinalIgnoreCase)) { imageOptions.ImageType = ImageType.Thumb; } else if (imageType.Equals("icon", StringComparison.OrdinalIgnoreCase)) { #if WP8 imageOptions.MaxHeight = 159; #else imageOptions.MaxHeight = 90; #endif } else if (imageType.Equals("poster", StringComparison.OrdinalIgnoreCase)) { #if WP8 imageOptions.MaxHeight = 675; #else imageOptions.MaxHeight = 450; #endif } else if (imageType.Equals("episode", StringComparison.OrdinalIgnoreCase)) { #if WP8 imageOptions.MaxHeight = 382; #else imageOptions.MaxHeight = 255; #endif } else { #if WP8 imageOptions.MaxHeight = 300; #else imageOptions.MaxHeight = 200; #endif } try { string url = item.Type == "Series" ? apiClient.GetImageUrl(item.Id, imageOptions) : apiClient.GetImageUrl(item, imageOptions); return url; } catch { return ""; } }
private void WireCommands() { MoviePageLoaded = new RelayCommand(async() => { if (SelectedMovie != null && _navService.IsNetworkAvailable) { SetProgressBar(AppResources.SysTrayGettingMovieInfo); await GetMovieDetails(); if (SelectedMovie.ProviderIds != null) { if (SelectedMovie != null && SelectedMovie.ProviderIds != null && SelectedMovie.ProviderIds.ContainsKey("Imdb")) { ImdbId = SelectedMovie.ProviderIds["Imdb"]; } } if (SelectedMovie.RunTimeTicks.HasValue) { var ts = TimeSpan.FromTicks(SelectedMovie.RunTimeTicks.Value); var runtime = ts.Hours == 0 ? string.Format("{0}m", ts.Minutes) : string.Format("{0}h {1}m", ts.Hours, ts.Minutes); RunTime = runtime; } if (SelectedMovie.UserData == null) { SelectedMovie.UserData = new UserItemDataDto(); } SetProgressBar(); } }); AddRemoveFavouriteCommand = new RelayCommand(async() => { try { SetProgressBar(AppResources.SysTrayAddingToFavourites); CanUpdateFavourites = false; SelectedMovie.UserData = await _apiClient.UpdateFavoriteStatusAsync(SelectedMovie.Id, AuthenticationService.Current.LoggedInUser.Id, !SelectedMovie.UserData.IsFavorite); } catch (HttpException ex) { Log.ErrorException("AddRemoveFavouriteCommand (Movies)", ex); App.ShowMessage("Error making your changes"); } SetProgressBar(); CanUpdateFavourites = true; }); ShowOtherFilmsCommand = new RelayCommand <BaseItemPerson>(person => { App.SelectedItem = person; _navService.NavigateTo(Constants.Pages.ActorView); }); NavigateTopage = new RelayCommand <BaseItemDto>(_navService.NavigateTo); #if WP8 SetPosterAsLockScreenCommand = new RelayCommand(async() => { if (!LockScreenService.Current.IsProvidedByCurrentApplication) { var result = await LockScreenService.Current.RequestAccessAsync(); if (result == LockScreenServiceRequestResult.Denied) { return; } } var url = _apiClient.GetImageUrl(SelectedMovie, LockScreenService.Current.SinglePosterOptions); LockScreenService.Current.ManuallySet = true; await LockScreenService.Current.SetLockScreenImage(url); }); #endif }