aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Photos/DynamicImageProvider.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Implementations/Photos/DynamicImageProvider.cs')
-rw-r--r--MediaBrowser.Server.Implementations/Photos/DynamicImageProvider.cs32
1 files changed, 30 insertions, 2 deletions
diff --git a/MediaBrowser.Server.Implementations/Photos/DynamicImageProvider.cs b/MediaBrowser.Server.Implementations/Photos/DynamicImageProvider.cs
index 58834b342..d4d9a9f14 100644
--- a/MediaBrowser.Server.Implementations/Photos/DynamicImageProvider.cs
+++ b/MediaBrowser.Server.Implementations/Photos/DynamicImageProvider.cs
@@ -1,6 +1,7 @@
using MediaBrowser.Common.Configuration;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Entities;
+using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Providers;
@@ -18,10 +19,12 @@ namespace MediaBrowser.Server.Implementations.Photos
private readonly IUserManager _userManager;
private readonly ILibraryManager _libraryManager;
- public DynamicImageProvider(IFileSystem fileSystem, IProviderManager providerManager, IApplicationPaths applicationPaths, IUserManager userManager, ILibraryManager libraryManager) : base(fileSystem, providerManager, applicationPaths)
+ public DynamicImageProvider(IFileSystem fileSystem, IProviderManager providerManager, IApplicationPaths applicationPaths, IUserManager userManager, ILibraryManager libraryManager, string[] collectionStripViewTypes)
+ : base(fileSystem, providerManager, applicationPaths)
{
_userManager = userManager;
_libraryManager = libraryManager;
+ _collectionStripViewTypes = collectionStripViewTypes;
}
protected override async Task<List<BaseItem>> GetItemsWithImages(IHasImages item)
@@ -108,13 +111,33 @@ namespace MediaBrowser.Server.Implementations.Photos
return season;
}
+ var audio = i as Audio;
+ if (audio != null)
+ {
+ if (!audio.HasImage(ImageType.Primary))
+ {
+ var album = audio.FindParent<MusicAlbum>();
+ if (album != null)
+ {
+ return album;
+ }
+ }
+ }
+
return i;
}).DistinctBy(i => i.Id);
+ if (IsUsingCollectionStrip(view))
+ {
+ return GetFinalItems(items.Where(i => i.HasImage(ImageType.Primary) || i.HasImage(ImageType.Thumb)).ToList(), 8);
+ }
+
return GetFinalItems(items.Where(i => i.HasImage(ImageType.Primary)).ToList());
}
+ private readonly string[] _collectionStripViewTypes = { CollectionType.Movies };
+
public override bool Supports(IHasImages item)
{
var view = item as UserView;
@@ -160,11 +183,16 @@ namespace MediaBrowser.Server.Implementations.Photos
SpecialFolder.MusicFavoriteSongs
};
- return supported.Contains(view.ViewType, StringComparer.OrdinalIgnoreCase) &&
+ return (IsUsingCollectionStrip(view) || supported.Contains(view.ViewType, StringComparer.OrdinalIgnoreCase)) &&
_userManager.GetUserById(view.UserId.Value) != null;
}
return false;
}
+
+ private bool IsUsingCollectionStrip(UserView view)
+ {
+ return _collectionStripViewTypes.Contains(view.ViewType ?? string.Empty);
+ }
}
}