TraktPlugin.TraktPlugin.DeInit C# (CSharp) Method

DeInit() public method

End Point (Clean up)
public DeInit ( ) : void
return void
        public override void DeInit()
        {
            AbortSync = true;

            if (syncLibraryWorker != null)
            {
                TraktLogger.Debug("Stopping any plugins currently syncing library");
                syncLibraryWorker.CancelAsync();
            }

            TraktLogger.Debug("Removing MediaPortal event handlers");
            g_Player.PlayBackChanged -= g_Player_PlayBackChanged;
            g_Player.PlayBackEnded -= g_Player_PlayBackEnded;
            g_Player.PlayBackStarted -= g_Player_PlayBackStarted;
            g_Player.PlayBackStopped -= g_Player_PlayBackStopped;

            GUIWindowManager.OnDeActivateWindow -= GUIWindowManager_OnDeActivateWindow;
            GUIWindowManager.OnActivateWindow -= GUIWindowManager_OnActivateWindow;
            GUIWindowManager.Receivers -= GUIWindowManager_Receivers;

            TraktLogger.Debug("Stopping any plugins currently scrobbling");
            foreach (ITraktHandler traktHandler in TraktHandlers)
                traktHandler.StopScrobble();

            // Unload Plugin Handlers
            UnLoadPluginHandlers();

            // save dashboard data
            TraktSettings.LastActivityLoad = DashBoard.PreviousActivity;
            TraktSettings.LastTrendingMovies = DashBoard.PreviousTrendingMovies;
            TraktSettings.LastTrendingShows = DashBoard.PreviousTrendingShows;
            TraktSettings.LastStatistics = DashBoard.PreviousStatistics;

            // save settings
            TraktSettings.SaveSettings();

            // save tmdb cache
            TmdbCache.DeInit();

            TraktLogger.Info("Plugin has successfully unloaded");
            base.DeInit();
        }