aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations/Library/UserViewManager.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Emby.Server.Implementations/Library/UserViewManager.cs')
-rw-r--r--Emby.Server.Implementations/Library/UserViewManager.cs42
1 files changed, 39 insertions, 3 deletions
diff --git a/Emby.Server.Implementations/Library/UserViewManager.cs b/Emby.Server.Implementations/Library/UserViewManager.cs
index a6ed84f29..0d4303b16 100644
--- a/Emby.Server.Implementations/Library/UserViewManager.cs
+++ b/Emby.Server.Implementations/Library/UserViewManager.cs
@@ -15,6 +15,7 @@ using System.Threading.Tasks;
using MediaBrowser.Controller.Dto;
using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Model.Globalization;
+using MediaBrowser.Model.Extensions;
namespace Emby.Server.Implementations.Library
{
@@ -231,7 +232,7 @@ namespace Emby.Server.Implementations.Library
return list;
}
- private IEnumerable<BaseItem> GetItemsForLatestItems(User user, LatestItemsQuery request, DtoOptions options)
+ private List<BaseItem> GetItemsForLatestItems(User user, LatestItemsQuery request, DtoOptions options)
{
var parentId = request.ParentId;
@@ -269,7 +270,41 @@ namespace Emby.Server.Implementations.Library
return new List<BaseItem>();
}
- var excludeItemTypes = includeItemTypes.Length == 0 ? new[]
+ var mediaTypes = new List<string>();
+
+ if (includeItemTypes.Length == 0)
+ {
+ foreach (var parent in parents.OfType<ICollectionFolder>())
+ {
+ switch (parent.CollectionType)
+ {
+ case CollectionType.Books:
+ mediaTypes.Add(MediaType.Book);
+ break;
+ case CollectionType.Games:
+ mediaTypes.Add(MediaType.Game);
+ break;
+ case CollectionType.Music:
+ mediaTypes.Add(MediaType.Audio);
+ break;
+ case CollectionType.Photos:
+ mediaTypes.Add(MediaType.Photo);
+ mediaTypes.Add(MediaType.Video);
+ break;
+ case CollectionType.HomeVideos:
+ mediaTypes.Add(MediaType.Photo);
+ mediaTypes.Add(MediaType.Video);
+ break;
+ default:
+ mediaTypes.Add(MediaType.Video);
+ break;
+ }
+ }
+
+ mediaTypes = mediaTypes.Distinct().ToList();
+ }
+
+ var excludeItemTypes = includeItemTypes.Length == 0 && mediaTypes.Count == 0 ? new[]
{
typeof(Person).Name,
typeof(Studio).Name,
@@ -290,7 +325,8 @@ namespace Emby.Server.Implementations.Library
IsVirtualItem = false,
Limit = limit * 5,
IsPlayed = isPlayed,
- DtoOptions = options
+ DtoOptions = options,
+ MediaTypes = mediaTypes.ToArray(mediaTypes.Count)
};
if (parents.Count == 0)