aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Devices
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Implementations/Devices')
-rw-r--r--MediaBrowser.Server.Implementations/Devices/CameraUploadsFolder.cs46
-rw-r--r--MediaBrowser.Server.Implementations/Devices/DeviceManager.cs18
2 files changed, 38 insertions, 26 deletions
diff --git a/MediaBrowser.Server.Implementations/Devices/CameraUploadsFolder.cs b/MediaBrowser.Server.Implementations/Devices/CameraUploadsFolder.cs
index 6d7265972..947933561 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
{
diff --git a/MediaBrowser.Server.Implementations/Devices/DeviceManager.cs b/MediaBrowser.Server.Implementations/Devices/DeviceManager.cs
index 0b2c082a8..6b1af8d2d 100644
--- a/MediaBrowser.Server.Implementations/Devices/DeviceManager.cs
+++ b/MediaBrowser.Server.Implementations/Devices/DeviceManager.cs
@@ -1,6 +1,5 @@
using MediaBrowser.Common.Configuration;
using MediaBrowser.Common.Events;
-using MediaBrowser.Common.IO;
using MediaBrowser.Common.Net;
using MediaBrowser.Controller.Devices;
using MediaBrowser.Controller.Library;
@@ -18,6 +17,7 @@ using System.IO;
using System.Linq;
using System.Threading.Tasks;
using CommonIO;
+using MediaBrowser.Controller.Configuration;
namespace MediaBrowser.Server.Implementations.Devices
{
@@ -27,7 +27,7 @@ namespace MediaBrowser.Server.Implementations.Devices
private readonly IUserManager _userManager;
private readonly IFileSystem _fileSystem;
private readonly ILibraryMonitor _libraryMonitor;
- private readonly IConfigurationManager _config;
+ private readonly IServerConfigurationManager _config;
private readonly ILogger _logger;
private readonly INetworkManager _network;
@@ -38,7 +38,7 @@ namespace MediaBrowser.Server.Implementations.Devices
/// </summary>
public event EventHandler<GenericEventArgs<DeviceInfo>> DeviceOptionsUpdated;
- public DeviceManager(IDeviceRepository repo, IUserManager userManager, IFileSystem fileSystem, ILibraryMonitor libraryMonitor, IConfigurationManager config, ILogger logger, INetworkManager network)
+ public DeviceManager(IDeviceRepository repo, IUserManager userManager, IFileSystem fileSystem, ILibraryMonitor libraryMonitor, IServerConfigurationManager config, ILogger logger, INetworkManager network)
{
_repo = repo;
_userManager = userManager;
@@ -187,11 +187,6 @@ namespace MediaBrowser.Server.Implementations.Devices
}
}
- private string GetUploadPath(string deviceId)
- {
- return GetUploadPath(GetDevice(deviceId));
- }
-
private string GetUploadPath(DeviceInfo device)
{
if (!string.IsNullOrWhiteSpace(device.CameraUploadPath))
@@ -205,7 +200,7 @@ namespace MediaBrowser.Server.Implementations.Devices
return config.CameraUploadPath;
}
- var path = Path.Combine(_config.CommonApplicationPaths.DataPath, "camerauploads");
+ var path = DefaultCameraUploadsPath;
if (config.EnableCameraUploadSubfolders)
{
@@ -215,6 +210,11 @@ namespace MediaBrowser.Server.Implementations.Devices
return path;
}
+ private string DefaultCameraUploadsPath
+ {
+ get { return Path.Combine(_config.CommonApplicationPaths.DataPath, "camerauploads"); }
+ }
+
public async Task UpdateDeviceInfo(string id, DeviceOptions options)
{
var device = GetDevice(id);