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();
}