public LoginPage(MainWindow main) { InitializeComponent(); window = main; // Auto login if login is stored in settings if(AppSettings.Settings.GetValue<string>("Username") != "" && AppSettings.Settings.GetValue<string>("Password") != "") { Task.Factory.StartNew(() => { try { UICore.ToggleSpinner(grid); string user = Crypt.Decrypt(AppSettings.Settings.GetValue<string>("Username"), cryptor), pass = Crypt.Decrypt(AppSettings.Settings.GetValue<string>("Password"), cryptor); // Attempt to login SoundCloudCore.Connect(new Login(user, pass, clientID, clientSecret)); if(SoundCloudCore.IsConnected) Dispatcher.Invoke(() => NavigateWindow(window)); UICore.ToggleSpinner(grid); } catch { } }); } }
void NavigateWindow(MainWindow window) { //Fetch Avatar Image window.meImg.Source = new BitmapImage(new Uri(Me.AvatarUrl, UriKind.Absolute)); window.meName.Text = Me.Fullname; // Load all playlists Task.Factory.StartNew(() => { UICore.ToggleSpinner(window.playlistGrid, Colors.LightGray, 75); for(int i = 0; i < Me.PlaylistsCount; i++) { foreach(var playlist in Me.GetPlaylists(i, 1)) { Dispatcher.Invoke(() => { // Create a menu row for each playlist var txb = new TextBlock { Foreground = (Brush)new BrushConverter().ConvertFromString("#FFB7B7B7"), FontSize = 15, Text = playlist.Title }; txb.MouseDown += (sender, e) => window.contentFrame.Navigate(new PlaylistPage(playlist)); txb.MouseEnter += window.Menu_Enter; txb.MouseLeave += window.Menu_Leave; // Add playlist to menu window.playlists.Children.Add(txb); }); } } UICore.ToggleSpinner(window.playlistGrid); }); // Go to the dashboard/stream window.contentFrame.Navigate(window.streamPage = new StreamPage()); }
// Login and Initialize Application UI public MainWindow() { window = this; // Loads all the settings Player.Init(new System.Windows.Interop.WindowInteropHelper(this).Handle); AppSettings.Load(); // Update check if(AppSettings.Settings.GetValue<bool>("AutoUpdate")) AppSettings.CheckUpdate(false); InitializeComponent(); #region Events // Safely frees all the bass resources and saves all settings Closing += OnClosing; spectrumSize.MouseDown += spectrumSize_MouseDown; spectrumClose.MouseDown += spectrumClose_MouseDown; // Player Events Player.SongEnded += (sender, e) => Player.Play(Player.TrackIndex + 1); Player.SongStarted += Player_SongStarted; // Player Progressbar & Progressbar Popup Events playerBbar.MouseDown += playerPop_MouseDown; playerBbar.MouseLeave += playerBbar_MouseLeave; playerBbar.MouseEnter += (sender, e) => playerPop.IsOpen = true; playerBbar.MouseMove += playerBbar_MouseMove; // Volume Popup Events playerVolPop.MouseLeave += playerVolPop_MouseLeave; playerVolSlider.ValueChanged += playerVolSlider_ValueChanged; playerVol.MouseDown += playerVol_MouseDown; playerVol.MouseEnter += playerVol_MouseEnter; playerVol.MouseLeave += playerVol_MouseLeave; // Player buttons playerPlay.MouseDown += playerPlay_MouseDown; playerPrev.MouseDown += playerPrev_MouseDown; playerNext.MouseDown += playerNext_MouseDown; // Search Box Events tbxSearch.KeyDown += (sender, e) => { if(e.Key == Key.Return) { contentFrame.Navigate(new SearchPage(tbxSearch.Text)); menuSelected = "search"; } }; tbxSearch.GotFocus += (sender, e) => tbxSearch.Text = ""; tbxSearch.LostFocus += (sender, e) => { if(string.IsNullOrWhiteSpace(tbxSearch.Text)) tbxSearch.Text = "Search"; }; #endregion // Player Timer timer.Interval = TimeSpan.FromMilliseconds(100); timer.Tick += OnTick; timer.Start(); // Add event to every menu element foreach(TextBlock item in mainStack.Children) { item.MouseDown += Menu_Click; if(item.Name != "mainTitle") { item.MouseLeave += Menu_Leave; item.MouseEnter += Menu_Enter; } } // Init Shortcut Keys if(AppSettings.Settings.GetValue<bool>("HotkeysEnabled")) Shortcuts.Init(this); // Navigate to login page contentFrame.Navigate(new LoginPage(this)); menuSelected = "stream"; }