aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Devices/CameraUploadsFolder.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2016-02-01 22:22:18 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2016-02-01 22:22:18 -0500
commit16de4de0035fcd1f394324aacb040e67de52529a (patch)
tree523416a4d410cb84a97555593c3c187168dd54e3 /MediaBrowser.Server.Implementations/Devices/CameraUploadsFolder.cs
parent11e5d194b41cabf5a9320198d2b61484aba00115 (diff)
parent1cdb420d2e815baa16e52ddef056b947716e37bb (diff)
Merge branch 'dev' into beta
Diffstat (limited to 'MediaBrowser.Server.Implementations/Devices/CameraUploadsFolder.cs')
-rw-r--r--MediaBrowser.Server.Implementations/Devices/CameraUploadsFolder.cs46
1 files changed, 29 insertions, 17 deletions
diff --git a/MediaBrowser.Server.Implementations/Devices/CameraUploadsFolder.cs b/MediaBrowser.Server.Implementations/Devices/CameraUploadsFolder.cs
index 6d7265972f..9479335614 100644
--- a/MediaBrowser.Server.Implementations/Devices/CameraUploadsFolder.cs
+++ b/MediaBrowser.Server.Implementations/Devices/CameraUploadsFolder.cs
@@ -3,12 +3,15 @@ using MediaBrowser.Controller.Entities;
using System;
using System.IO;
using System.Linq;
+using System.Runtime.Serialization;
+using System.Threading;
+using System.Threading.Tasks;
using CommonIO;
-using MediaBrowser.Common.IO;
+using MediaBrowser.Controller.Providers;
namespace MediaBrowser.Server.Implementations.Devices
{
- public class CameraUploadsFolder : BasePluginFolder
+ public class CameraUploadsFolder : BasePluginFolder, ISupportsUserSpecificView
{
public CameraUploadsFolder()
{
@@ -21,32 +24,41 @@ namespace MediaBrowser.Server.Implementations.Devices
{
return false;
}
-
- return GetChildren(user, true).Any() &&
- base.IsVisible(user);
+
+ return base.IsVisible(user) && HasChildren();
}
- public override bool IsHidden
+ public override string CollectionType
{
- get
- {
- return base.IsHidden || !Children.Any();
- }
+ get { return Model.Entities.CollectionType.Photos; }
}
- public override bool IsHiddenFromUser(User user)
+ public override string GetClientTypeName()
{
- return false;
+ return typeof(CollectionFolder).Name;
}
- public override string CollectionType
+ private bool? _hasChildren;
+ private bool HasChildren()
{
- get { return Model.Entities.CollectionType.Photos; }
+ if (!_hasChildren.HasValue)
+ {
+ _hasChildren = LibraryManager.GetItemIds(new InternalItemsQuery { ParentId = Id }).Count > 0;
+ }
+
+ return _hasChildren.Value;
}
- public override string GetClientTypeName()
+ protected override Task ValidateChildrenInternal(IProgress<double> progress, CancellationToken cancellationToken, bool recursive, bool refreshChildMetadata, MetadataRefreshOptions refreshOptions, IDirectoryService directoryService)
{
- return typeof(CollectionFolder).Name;
+ _hasChildren = null;
+ return base.ValidateChildrenInternal(progress, cancellationToken, recursive, refreshChildMetadata, refreshOptions, directoryService);
+ }
+
+ [IgnoreDataMember]
+ public bool EnableUserSpecificView
+ {
+ get { return true; }
}
}
@@ -65,7 +77,7 @@ namespace MediaBrowser.Server.Implementations.Devices
{
var path = Path.Combine(_appPaths.DataPath, "camerauploads");
- _fileSystem.CreateDirectory(path);
+ _fileSystem.CreateDirectory(path);
return new CameraUploadsFolder
{