TraktPlugin.TraktPlugin.SyncPlayback C# (CSharp) Method

SyncPlayback() static private method

static private SyncPlayback ( ) : void
return void
        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();
        }