瀏覽代碼

update special folders

Luke Pulverenti 9 年之前
父節點
當前提交
0ac0d6b878

+ 18 - 15
MediaBrowser.Server.Implementations/Devices/CameraUploadsFolder.cs

@@ -21,32 +21,35 @@ 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 System.Threading.Tasks.Task ValidateChildrenInternal(IProgress<double> progress, System.Threading.CancellationToken cancellationToken, bool recursive, bool refreshChildMetadata, Controller.Providers.MetadataRefreshOptions refreshOptions, Controller.Providers.IDirectoryService directoryService)
         {
-            return typeof(CollectionFolder).Name;
+            _hasChildren = null;
+            return base.ValidateChildrenInternal(progress, cancellationToken, recursive, refreshChildMetadata, refreshOptions, directoryService);
         }
     }
 
@@ -65,7 +68,7 @@ namespace MediaBrowser.Server.Implementations.Devices
         {
             var path = Path.Combine(_appPaths.DataPath, "camerauploads");
 
-			_fileSystem.CreateDirectory(path);
+            _fileSystem.CreateDirectory(path);
 
             return new CameraUploadsFolder
             {

+ 0 - 5
MediaBrowser.Server.Implementations/Playlists/ManualPlaylistsFolder.cs

@@ -34,11 +34,6 @@ namespace MediaBrowser.Server.Implementations.Playlists
             }
         }
 
-        public override bool IsHiddenFromUser(User user)
-        {
-            return false;
-        }
-
         public override string CollectionType
         {
             get { return Model.Entities.CollectionType.Playlists; }