public void Dispose() { ServiceManager.Get <DBusCommandService> ().ArgumentPushed -= OnCommandLineArgument; Connection.StateChanged -= HandleConnectionStateChanged; Connection.Dispose(); UninstallPreferences(); actions.Dispose(); actions = null; connection = null; account = null; }
public LastfmSource() : base(lastfm, lastfm, 210, lastfm) { account = LastfmCore.Account; // We don't automatically connect to Last.fm, but load the last Last.fm // username we used so we can load the user's stations. if (account.UserName != null) { account.UserName = LastUserSchema.Get(); account.SessionKey = LastSessionKeySchema.Get(); account.Subscriber = LastIsSubscriberSchema.Get(); } if (LastfmCore.UserAgent == null) { LastfmCore.UserAgent = Banshee.Web.Browser.UserAgent; } Browser.Open = Banshee.Web.Browser.Open; connection = LastfmCore.Radio; Network network = ServiceManager.Get <Network> (); connection.UpdateNetworkState(network.Connected); network.StateChanged += delegate(object o, NetworkStateChangedArgs args) { connection.UpdateNetworkState(args.Connected); }; Connection.StateChanged += HandleConnectionStateChanged; UpdateUI(); Properties.SetString("ActiveSourceUIResource", "ActiveSourceUI.xml"); Properties.Set <bool> ("ActiveSourceUIResourcePropagate", true); Properties.SetString("GtkActionPath", "/LastfmSourcePopup"); Properties.SetString("Icon.Name", "lastfm-audioscrobbler"); Properties.SetString("SortChildrenActionLabel", Catalog.GetString("Sort Stations by")); Properties.Set <LastfmColumnController> ("TrackView.ColumnController", new LastfmColumnController()); // FIXME this is temporary until we split the GUI part from the non-GUI part Properties.Set <ISourceContents> ("Nereid.SourceContents", new LastfmSourceContents()); Properties.Set <bool> ("Nereid.SourceContents.HeaderVisible", false); actions = new LastfmActions(this); InstallPreferences(); ServiceManager.SourceManager.AddSource(this); ServiceManager.Get <DBusCommandService> ().ArgumentPushed += OnCommandLineArgument; }