diff --git a/Emby.Server.Implementations/Dto/DtoService.cs b/Emby.Server.Implementations/Dto/DtoService.cs
index 44b97e8b83..d0d5bb81c1 100644
--- a/Emby.Server.Implementations/Dto/DtoService.cs
+++ b/Emby.Server.Implementations/Dto/DtoService.cs
@@ -418,15 +418,6 @@ namespace Emby.Server.Implementations.Dto
{
dto.PlayAccess = item.GetPlayAccess(user);
}
-
- if (options.ContainsField(ItemFields.BasicSyncInfo))
- {
- var userCanSync = user is not null && user.HasPermission(PermissionKind.EnableContentDownloading);
- if (userCanSync && item.SupportsExternalTransfer)
- {
- dto.SupportsSync = true;
- }
- }
}
private static int GetChildCount(Folder folder, User user)
diff --git a/Emby.Server.Implementations/LiveTv/LiveTvManager.cs b/Emby.Server.Implementations/LiveTv/LiveTvManager.cs
index 0544e2a4b7..ca8e204d7c 100644
--- a/Emby.Server.Implementations/LiveTv/LiveTvManager.cs
+++ b/Emby.Server.Implementations/LiveTv/LiveTvManager.cs
@@ -1095,7 +1095,6 @@ namespace Emby.Server.Implementations.LiveTv
// Load these now which will prefetch metadata
var dtoOptions = new DtoOptions();
var fields = dtoOptions.Fields.ToList();
- fields.Remove(ItemFields.BasicSyncInfo);
dtoOptions.Fields = fields.ToArray();
progress.Report(100);
diff --git a/Emby.Server.Implementations/Session/SessionManager.cs b/Emby.Server.Implementations/Session/SessionManager.cs
index e8e63d286d..6f599e4c7c 100644
--- a/Emby.Server.Implementations/Session/SessionManager.cs
+++ b/Emby.Server.Implementations/Session/SessionManager.cs
@@ -1670,7 +1670,6 @@ namespace Emby.Server.Implementations.Session
var fields = dtoOptions.Fields.ToList();
- fields.Remove(ItemFields.BasicSyncInfo);
fields.Remove(ItemFields.CanDelete);
fields.Remove(ItemFields.CanDownload);
fields.Remove(ItemFields.ChildCount);
diff --git a/Jellyfin.Api/Controllers/DevicesController.cs b/Jellyfin.Api/Controllers/DevicesController.cs
index aa200a7221..6d9ec343e0 100644
--- a/Jellyfin.Api/Controllers/DevicesController.cs
+++ b/Jellyfin.Api/Controllers/DevicesController.cs
@@ -42,16 +42,15 @@ public class DevicesController : BaseJellyfinApiController
///
/// Get Devices.
///
- /// Gets or sets a value indicating whether [supports synchronize].
/// Gets or sets the user identifier.
/// Devices retrieved.
/// An containing the list of devices.
[HttpGet]
[ProducesResponseType(StatusCodes.Status200OK)]
- public async Task>> GetDevices([FromQuery] bool? supportsSync, [FromQuery] Guid? userId)
+ public async Task>> GetDevices([FromQuery] Guid? userId)
{
userId = RequestHelpers.GetUserId(User, userId);
- return await _deviceManager.GetDevicesForUser(userId, supportsSync).ConfigureAwait(false);
+ return await _deviceManager.GetDevicesForUser(userId).ConfigureAwait(false);
}
///
diff --git a/Jellyfin.Api/Controllers/SessionController.cs b/Jellyfin.Api/Controllers/SessionController.cs
index fdebb3d450..083515a949 100644
--- a/Jellyfin.Api/Controllers/SessionController.cs
+++ b/Jellyfin.Api/Controllers/SessionController.cs
@@ -385,7 +385,6 @@ public class SessionController : BaseJellyfinApiController
/// A list of playable media types, comma delimited. Audio, Video, Book, Photo.
/// A list of supported remote control commands, comma delimited.
/// Determines whether media can be played remotely..
- /// Determines whether sync is supported.
/// Determines whether the device supports a unique identifier.
/// Capabilities posted.
/// A .
@@ -397,7 +396,6 @@ public class SessionController : BaseJellyfinApiController
[FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] MediaType[] playableMediaTypes,
[FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] GeneralCommandType[] supportedCommands,
[FromQuery] bool supportsMediaControl = false,
- [FromQuery] bool supportsSync = false,
[FromQuery] bool supportsPersistentIdentifier = true)
{
if (string.IsNullOrWhiteSpace(id))
@@ -410,7 +408,6 @@ public class SessionController : BaseJellyfinApiController
PlayableMediaTypes = playableMediaTypes,
SupportedCommands = supportedCommands,
SupportsMediaControl = supportsMediaControl,
- SupportsSync = supportsSync,
SupportsPersistentIdentifier = supportsPersistentIdentifier
});
return NoContent();
diff --git a/Jellyfin.Api/Controllers/UserViewsController.cs b/Jellyfin.Api/Controllers/UserViewsController.cs
index 0ffa3ab1ad..035d044741 100644
--- a/Jellyfin.Api/Controllers/UserViewsController.cs
+++ b/Jellyfin.Api/Controllers/UserViewsController.cs
@@ -90,7 +90,6 @@ public class UserViewsController : BaseJellyfinApiController
fields.Add(ItemFields.PrimaryImageAspectRatio);
fields.Add(ItemFields.DisplayPreferencesId);
- fields.Remove(ItemFields.BasicSyncInfo);
dtoOptions.Fields = fields.ToArray();
var user = _userManager.GetUserById(userId);
diff --git a/Jellyfin.Api/Models/SessionDtos/ClientCapabilitiesDto.cs b/Jellyfin.Api/Models/SessionDtos/ClientCapabilitiesDto.cs
index b021771a0f..acd3f29e34 100644
--- a/Jellyfin.Api/Models/SessionDtos/ClientCapabilitiesDto.cs
+++ b/Jellyfin.Api/Models/SessionDtos/ClientCapabilitiesDto.cs
@@ -30,26 +30,11 @@ public class ClientCapabilitiesDto
///
public bool SupportsMediaControl { get; set; }
- ///
- /// Gets or sets a value indicating whether session supports content uploading.
- ///
- public bool SupportsContentUploading { get; set; }
-
- ///
- /// Gets or sets the message callback url.
- ///
- public string? MessageCallbackUrl { get; set; }
-
///
/// Gets or sets a value indicating whether session supports a persistent identifier.
///
public bool SupportsPersistentIdentifier { get; set; }
- ///
- /// Gets or sets a value indicating whether session supports sync.
- ///
- public bool SupportsSync { get; set; }
-
///
/// Gets or sets the device profile.
///
@@ -76,10 +61,7 @@ public class ClientCapabilitiesDto
PlayableMediaTypes = PlayableMediaTypes,
SupportedCommands = SupportedCommands,
SupportsMediaControl = SupportsMediaControl,
- SupportsContentUploading = SupportsContentUploading,
- MessageCallbackUrl = MessageCallbackUrl,
SupportsPersistentIdentifier = SupportsPersistentIdentifier,
- SupportsSync = SupportsSync,
DeviceProfile = DeviceProfile,
AppStoreUrl = AppStoreUrl,
IconUrl = IconUrl
diff --git a/Jellyfin.Server.Implementations/Devices/DeviceManager.cs b/Jellyfin.Server.Implementations/Devices/DeviceManager.cs
index d8eee12467..5e5d52b6b3 100644
--- a/Jellyfin.Server.Implementations/Devices/DeviceManager.cs
+++ b/Jellyfin.Server.Implementations/Devices/DeviceManager.cs
@@ -167,7 +167,7 @@ namespace Jellyfin.Server.Implementations.Devices
}
///
- public async Task> GetDevicesForUser(Guid? userId, bool? supportsSync)
+ public async Task> GetDevicesForUser(Guid? userId)
{
var dbContext = await _dbProvider.CreateDbContextAsync().ConfigureAwait(false);
await using (dbContext.ConfigureAwait(false))
@@ -178,10 +178,6 @@ namespace Jellyfin.Server.Implementations.Devices
.ThenBy(d => d.DeviceId)
.SelectMany(d => dbContext.DeviceOptions.Where(o => o.DeviceId == d.DeviceId).DefaultIfEmpty(), (d, o) => new { Device = d, Options = o })
.AsAsyncEnumerable();
- if (supportsSync.HasValue)
- {
- sessions = sessions.Where(i => GetCapabilities(i.Device.DeviceId).SupportsSync == supportsSync.Value);
- }
if (userId.HasValue)
{
diff --git a/MediaBrowser.Controller/Devices/IDeviceManager.cs b/MediaBrowser.Controller/Devices/IDeviceManager.cs
index 8362db1a71..eb181dcc4c 100644
--- a/MediaBrowser.Controller/Devices/IDeviceManager.cs
+++ b/MediaBrowser.Controller/Devices/IDeviceManager.cs
@@ -59,9 +59,8 @@ namespace MediaBrowser.Controller.Devices
/// Gets the devices.
///
/// The user's id, or null.
- /// A value indicating whether the device supports sync, or null.
/// IEnumerable<DeviceInfo>.
- Task> GetDevicesForUser(Guid? userId, bool? supportsSync);
+ Task> GetDevicesForUser(Guid? userId);
Task DeleteDevice(Device device);
diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs
index 7c04fcbfc8..fdbceac961 100644
--- a/MediaBrowser.Controller/Entities/BaseItem.cs
+++ b/MediaBrowser.Controller/Entities/BaseItem.cs
@@ -773,8 +773,6 @@ namespace MediaBrowser.Controller.Entities
/// The remote trailers.
public IReadOnlyList RemoteTrailers { get; set; }
- public virtual bool SupportsExternalTransfer => false;
-
public virtual double GetDefaultPrimaryImageAspectRatio()
{
return 0;
diff --git a/MediaBrowser.Model/Dto/BaseItemDto.cs b/MediaBrowser.Model/Dto/BaseItemDto.cs
index d257eab920..cfff717db2 100644
--- a/MediaBrowser.Model/Dto/BaseItemDto.cs
+++ b/MediaBrowser.Model/Dto/BaseItemDto.cs
@@ -85,11 +85,6 @@ namespace MediaBrowser.Model.Dto
public string PreferredMetadataCountryCode { get; set; }
- ///
- /// Gets or sets a value indicating whether [supports synchronize].
- ///
- public bool? SupportsSync { get; set; }
-
public string Container { get; set; }
///
diff --git a/MediaBrowser.Model/Querying/ItemFields.cs b/MediaBrowser.Model/Querying/ItemFields.cs
index 242a1c6e99..49d7c0bcb0 100644
--- a/MediaBrowser.Model/Querying/ItemFields.cs
+++ b/MediaBrowser.Model/Querying/ItemFields.cs
@@ -175,13 +175,6 @@ namespace MediaBrowser.Model.Querying
///
Studios,
- BasicSyncInfo,
-
- ///
- /// The synchronize information.
- ///
- SyncInfo,
-
///
/// The taglines of the item.
///
diff --git a/MediaBrowser.Model/Session/ClientCapabilities.cs b/MediaBrowser.Model/Session/ClientCapabilities.cs
index 7fefce9cd5..597845fc17 100644
--- a/MediaBrowser.Model/Session/ClientCapabilities.cs
+++ b/MediaBrowser.Model/Session/ClientCapabilities.cs
@@ -23,14 +23,8 @@ namespace MediaBrowser.Model.Session
public bool SupportsMediaControl { get; set; }
- public bool SupportsContentUploading { get; set; }
-
- public string MessageCallbackUrl { get; set; }
-
public bool SupportsPersistentIdentifier { get; set; }
- public bool SupportsSync { get; set; }
-
public DeviceProfile DeviceProfile { get; set; }
public string AppStoreUrl { get; set; }