update client sync

This commit is contained in:
Luke Pulverenti
2015-09-15 14:09:44 -04:00
parent 6d3fda8693
commit a0fa1b5f8f
9 changed files with 182 additions and 60 deletions

View File

@@ -82,7 +82,27 @@ namespace MediaBrowser.Controller.Entities
{
CollectionType.Books,
CollectionType.HomeVideos,
CollectionType.Photos
CollectionType.Photos,
CollectionType.Playlists,
CollectionType.BoxSets
};
var collectionFolder = folder as ICollectionFolder;
if (collectionFolder == null)
{
return false;
}
return standaloneTypes.Contains(collectionFolder.CollectionType ?? string.Empty);
}
public static bool IsUserSpecific(Folder folder)
{
var standaloneTypes = new List<string>
{
CollectionType.Playlists,
CollectionType.BoxSets
};
var collectionFolder = folder as ICollectionFolder;

View File

@@ -1808,6 +1808,13 @@ namespace MediaBrowser.Controller.Entities
private IEnumerable<Folder> GetMediaFolders(User user)
{
if (user == null)
{
return _libraryManager.RootFolder
.Children
.OfType<Folder>()
.Where(i => !UserView.IsExcludedFromGrouping(i));
}
return user.RootFolder
.GetChildren(user, true, true)
.OfType<Folder>()
@@ -1816,6 +1823,16 @@ namespace MediaBrowser.Controller.Entities
private IEnumerable<Folder> GetMediaFolders(User user, IEnumerable<string> viewTypes)
{
if (user == null)
{
return GetMediaFolders(null)
.Where(i =>
{
var folder = i as ICollectionFolder;
return folder != null && viewTypes.Contains(folder.CollectionType ?? string.Empty, StringComparer.OrdinalIgnoreCase);
});
}
return GetMediaFolders(user)
.Where(i =>
{
@@ -1839,9 +1856,19 @@ namespace MediaBrowser.Controller.Entities
{
if (parent == null || parent is UserView)
{
if (user == null)
{
return GetMediaFolders(null, viewTypes).SelectMany(i => i.GetRecursiveChildren());
}
return GetMediaFolders(user, viewTypes).SelectMany(i => i.GetRecursiveChildren(user));
}
if (user == null)
{
return parent.GetRecursiveChildren();
}
return parent.GetRecursiveChildren(user);
}
@@ -1849,9 +1876,19 @@ namespace MediaBrowser.Controller.Entities
{
if (parent == null || parent is UserView)
{
if (user == null)
{
return GetMediaFolders(null, viewTypes).SelectMany(i => i.GetRecursiveChildren(filter));
}
return GetMediaFolders(user, viewTypes).SelectMany(i => i.GetRecursiveChildren(user, filter));
}
if (user == null)
{
return parent.GetRecursiveChildren(filter);
}
return parent.GetRecursiveChildren(user, filter);
}