internal static void SyncPlayback()
{
// no plugins to sync, abort
if (TraktHandlers.Count == 0 || !TraktSettings.SyncPlayback) return;
var syncPlaybackThread = new Thread((obj) =>
{
if (TraktSettings.AccountStatus != ConnectionState.Connected)
return;
TraktLogger.Info("Playback Sync started for all enabled plugins");
// clear cached sync data
TraktCache.ClearLastActivityCache();
// User could change handlers during sync from Settings so assign new list
var traktHandlers = new List<ITraktHandler>(TraktHandlers);
foreach (var traktHandler in traktHandlers)
{
if (AbortSync)
return;
try
{
traktHandler.SyncProgress();
}
catch (Exception ex)
{
TraktLogger.Error("Error synchronising playback data. Plugin = '{0}', Error = '{1}'", traktHandler.Name, ex.Message);
}
}
TraktLogger.Info("Playback Sync finished for all enabled plugins");
})
{
Name = "PlaySync",
IsBackground = true
};
syncPlaybackThread.Start();
}