From 143c7bcb25f79aa41e5efe4179ffaed13266c3f1 Mon Sep 17 00:00:00 2001 From: LazyTarget Date: Sun, 21 Jun 2015 05:44:22 +0200 Subject: [PATCH] Improvements to session continuation --- .../Implementations/XbmcPoller/XbmcPoller.cs | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/PollingEngine/Implementations/XbmcPoller/XbmcPoller.cs b/PollingEngine/Implementations/XbmcPoller/XbmcPoller.cs index 2e615e5..5c39567 100644 --- a/PollingEngine/Implementations/XbmcPoller/XbmcPoller.cs +++ b/PollingEngine/Implementations/XbmcPoller/XbmcPoller.cs @@ -285,13 +285,14 @@ public async Task OnInterval(PollingContext context) //await GetPlaybackInfo(); - - var lastVideo = _sessionInfo.ActiveVideo != null ? _sessionInfo.ActiveVideo.Video : null; + + var activeVideo = _sessionInfo.ActiveVideo; + var lastVideo = activeVideo != null ? activeVideo.Video : null; DiffType diffType; if (videoItemInfo != null) { - if (lastVideo == null) + if (lastVideo == null || (activeVideo != null && !activeVideo.Active)) { // Started watching isDiff = true; @@ -370,7 +371,7 @@ public async Task OnInterval(PollingContext context) } else { - if (lastVideo == null) + if (lastVideo == null || (activeVideo != null && !activeVideo.Active)) { // no diff isDiff = false; @@ -399,9 +400,12 @@ public async Task OnInterval(PollingContext context) } // Set the active video - _sessionInfo.ActiveVideo.Active = false; - _sessionInfo.ActiveVideo.EndTime = time; - await StoreSessionVideo(_sessionInfo.ActiveVideo); + if (_sessionInfo.ActiveVideo.Active) + { + _sessionInfo.ActiveVideo.Active = false; + _sessionInfo.ActiveVideo.EndTime = time; + await StoreSessionVideo(_sessionInfo.ActiveVideo); + } _sessionInfo.ActiveVideo = null; } }