aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations/Library/UserDataManager.cs
diff options
context:
space:
mode:
authorShadowghost <Ghost_of_Stone@web.de>2026-06-19 21:51:57 +0200
committerShadowghost <Ghost_of_Stone@web.de>2026-06-19 21:51:57 +0200
commit0fb042b7403ebd7578b696aba35ba0c582ccf6ba (patch)
treed7e46069c8500ecf5680283748448fc465b3ec6f /Emby.Server.Implementations/Library/UserDataManager.cs
parenta5706c2fa6b09019828b2a9c5c6822f5bfa3327f (diff)
Surface the played version for resume
Diffstat (limited to 'Emby.Server.Implementations/Library/UserDataManager.cs')
-rw-r--r--Emby.Server.Implementations/Library/UserDataManager.cs7
1 files changed, 3 insertions, 4 deletions
diff --git a/Emby.Server.Implementations/Library/UserDataManager.cs b/Emby.Server.Implementations/Library/UserDataManager.cs
index bedaacee33..61372f8b56 100644
--- a/Emby.Server.Implementations/Library/UserDataManager.cs
+++ b/Emby.Server.Implementations/Library/UserDataManager.cs
@@ -329,22 +329,21 @@ namespace Emby.Server.Implementations.Library
foreach (var (primaryId, versions) in versionGroups)
{
- Video? resumeVersion = null;
UserItemData? resumeData = null;
foreach (var version in versions)
{
+ // Consider both in-progress and completed versions so a finished alternate still marks the primary as played.
if (userDataByVersion.TryGetValue(version.Id, out var data)
- && data.PlaybackPositionTicks > 0
+ && (data.PlaybackPositionTicks > 0 || data.Played)
&& (resumeData is null || (data.LastPlayedDate ?? DateTime.MinValue) > (resumeData.LastPlayedDate ?? DateTime.MinValue)))
{
- resumeVersion = version;
resumeData = data;
}
}
if (resumeData is not null)
{
- result[primaryId] = new VersionResumeData(resumeData, resumeVersion!.RunTimeTicks);
+ result[primaryId] = new VersionResumeData(resumeData);
}
}