|  | @@ -102,7 +102,7 @@ namespace MediaBrowser.Providers.Manager
 | 
	
		
			
				|  |  |              {
 | 
	
		
			
				|  |  |                  if (provider is IRemoteImageProvider remoteProvider)
 | 
	
		
			
				|  |  |                  {
 | 
	
		
			
				|  |  | -                    await RefreshFromProvider(item, libraryOptions, remoteProvider, refreshOptions, typeOptions, backdropLimit, screenshotLimit, downloadedImages, result, cancellationToken).ConfigureAwait(false);
 | 
	
		
			
				|  |  | +                    await RefreshFromProvider(item, remoteProvider, refreshOptions, typeOptions, backdropLimit, screenshotLimit, downloadedImages, result, cancellationToken).ConfigureAwait(false);
 | 
	
		
			
				|  |  |                      continue;
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -235,7 +235,6 @@ namespace MediaBrowser.Providers.Manager
 | 
	
		
			
				|  |  |          /// Refreshes from provider.
 | 
	
		
			
				|  |  |          /// </summary>
 | 
	
		
			
				|  |  |          /// <param name="item">The item.</param>
 | 
	
		
			
				|  |  | -        /// <param name="libraryOptions">The library options.</param>
 | 
	
		
			
				|  |  |          /// <param name="provider">The provider.</param>
 | 
	
		
			
				|  |  |          /// <param name="refreshOptions">The refresh options.</param>
 | 
	
		
			
				|  |  |          /// <param name="savedOptions">The saved options.</param>
 | 
	
	
		
			
				|  | @@ -247,7 +246,6 @@ namespace MediaBrowser.Providers.Manager
 | 
	
		
			
				|  |  |          /// <returns>Task.</returns>
 | 
	
		
			
				|  |  |          private async Task RefreshFromProvider(
 | 
	
		
			
				|  |  |              BaseItem item,
 | 
	
		
			
				|  |  | -            LibraryOptions libraryOptions,
 | 
	
		
			
				|  |  |              IRemoteImageProvider provider,
 | 
	
		
			
				|  |  |              ImageRefreshOptions refreshOptions,
 | 
	
		
			
				|  |  |              TypeOptions savedOptions,
 | 
	
	
		
			
				|  | @@ -295,7 +293,7 @@ namespace MediaBrowser.Providers.Manager
 | 
	
		
			
				|  |  |                      if (!HasImage(item, imageType) || (refreshOptions.IsReplacingImage(imageType) && !downloadedImages.Contains(imageType)))
 | 
	
		
			
				|  |  |                      {
 | 
	
		
			
				|  |  |                          minWidth = savedOptions.GetMinWidth(imageType);
 | 
	
		
			
				|  |  | -                        var downloaded = await DownloadImage(item, libraryOptions, provider, result, list, minWidth, imageType, cancellationToken).ConfigureAwait(false);
 | 
	
		
			
				|  |  | +                        var downloaded = await DownloadImage(item, provider, result, list, minWidth, imageType, cancellationToken).ConfigureAwait(false);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                          if (downloaded)
 | 
	
		
			
				|  |  |                          {
 | 
	
	
		
			
				|  | @@ -305,12 +303,12 @@ namespace MediaBrowser.Providers.Manager
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  minWidth = savedOptions.GetMinWidth(ImageType.Backdrop);
 | 
	
		
			
				|  |  | -                await DownloadBackdrops(item, libraryOptions, ImageType.Backdrop, backdropLimit, provider, result, list, minWidth, cancellationToken).ConfigureAwait(false);
 | 
	
		
			
				|  |  | +                await DownloadBackdrops(item, ImageType.Backdrop, backdropLimit, provider, result, list, minWidth, cancellationToken).ConfigureAwait(false);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  if (item is IHasScreenshots hasScreenshots)
 | 
	
		
			
				|  |  |                  {
 | 
	
		
			
				|  |  |                      minWidth = savedOptions.GetMinWidth(ImageType.Screenshot);
 | 
	
		
			
				|  |  | -                    await DownloadBackdrops(item, libraryOptions, ImageType.Screenshot, screenshotLimit, provider, result, list, minWidth, cancellationToken).ConfigureAwait(false);
 | 
	
		
			
				|  |  | +                    await DownloadBackdrops(item, ImageType.Screenshot, screenshotLimit, provider, result, list, minWidth, cancellationToken).ConfigureAwait(false);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              catch (OperationCanceledException)
 | 
	
	
		
			
				|  | @@ -360,7 +358,7 @@ namespace MediaBrowser.Providers.Manager
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        public bool MergeImages(BaseItem item, List<LocalImageInfo> images)
 | 
	
		
			
				|  |  | +        public bool MergeImages(BaseItem item, IReadOnlyList<LocalImageInfo> images)
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              var changed = false;
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -444,12 +442,12 @@ namespace MediaBrowser.Providers.Manager
 | 
	
		
			
				|  |  |              return null;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        private bool UpdateMultiImages(BaseItem item, List<LocalImageInfo> images, ImageType type)
 | 
	
		
			
				|  |  | +        private bool UpdateMultiImages(BaseItem item, IReadOnlyList<LocalImageInfo> images, ImageType type)
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              var changed = false;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              var newImageFileInfos = images
 | 
	
		
			
				|  |  | -                .FindAll(i => i.Type == type)
 | 
	
		
			
				|  |  | +                .Where(i => i.Type == type)
 | 
	
		
			
				|  |  |                  .Select(i => i.FileInfo)
 | 
	
		
			
				|  |  |                  .ToList();
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -463,7 +461,6 @@ namespace MediaBrowser.Providers.Manager
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          private async Task<bool> DownloadImage(
 | 
	
		
			
				|  |  |              BaseItem item,
 | 
	
		
			
				|  |  | -            LibraryOptions libraryOptions,
 | 
	
		
			
				|  |  |              IRemoteImageProvider provider,
 | 
	
		
			
				|  |  |              RefreshResult result,
 | 
	
		
			
				|  |  |              IEnumerable<RemoteImageInfo> images,
 | 
	
	
		
			
				|  | @@ -475,7 +472,7 @@ namespace MediaBrowser.Providers.Manager
 | 
	
		
			
				|  |  |                  .Where(i => i.Type == type && !(i.Width.HasValue && i.Width.Value < minWidth))
 | 
	
		
			
				|  |  |                  .ToList();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            if (EnableImageStub(item, libraryOptions) && eligibleImages.Count > 0)
 | 
	
		
			
				|  |  | +            if (EnableImageStub(item) && eligibleImages.Count > 0)
 | 
	
		
			
				|  |  |              {
 | 
	
		
			
				|  |  |                  SaveImageStub(item, type, eligibleImages.Select(i => i.Url));
 | 
	
		
			
				|  |  |                  result.UpdateType |= ItemUpdateType.ImageUpdate;
 | 
	
	
		
			
				|  | @@ -519,7 +516,7 @@ namespace MediaBrowser.Providers.Manager
 | 
	
		
			
				|  |  |              return false;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        private bool EnableImageStub(BaseItem item, LibraryOptions libraryOptions)
 | 
	
		
			
				|  |  | +        private bool EnableImageStub(BaseItem item)
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              if (item is LiveTvProgram)
 | 
	
		
			
				|  |  |              {
 | 
	
	
		
			
				|  | @@ -563,7 +560,7 @@ namespace MediaBrowser.Providers.Manager
 | 
	
		
			
				|  |  |                  newIndex);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        private async Task DownloadBackdrops(BaseItem item, LibraryOptions libraryOptions, ImageType imageType, int limit, IRemoteImageProvider provider, RefreshResult result, IEnumerable<RemoteImageInfo> images, int minWidth, CancellationToken cancellationToken)
 | 
	
		
			
				|  |  | +        private async Task DownloadBackdrops(BaseItem item, ImageType imageType, int limit, IRemoteImageProvider provider, RefreshResult result, IEnumerable<RemoteImageInfo> images, int minWidth, CancellationToken cancellationToken)
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              foreach (var image in images.Where(i => i.Type == imageType))
 | 
	
		
			
				|  |  |              {
 | 
	
	
		
			
				|  | @@ -579,7 +576,7 @@ namespace MediaBrowser.Providers.Manager
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  var url = image.Url;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                if (EnableImageStub(item, libraryOptions))
 | 
	
		
			
				|  |  | +                if (EnableImageStub(item))
 | 
	
		
			
				|  |  |                  {
 | 
	
		
			
				|  |  |                      SaveImageStub(item, imageType, new[] { url });
 | 
	
		
			
				|  |  |                      result.UpdateType |= ItemUpdateType.ImageUpdate;
 |