Exemplo n.º 1
0
 public async void AddMusic(Music music)
 {
     if (JustRemoved.Any(m => m.Name == music.Name && m.Artist == music.Artist && m.Album == music.Album && m.Duration == music.Duration))
     {
         return;
     }
     RecentPage.RecentAdded.Add(music);
     if (AutoLyrics)
     {
         await Task.Run(async() =>
         {
             string lyrics = await music.GetLyricsAsync();
             if (string.IsNullOrEmpty(lyrics))
             {
                 await music.SaveLyricsAsync(await LyricsHelper.SearchLyrics(music));
             }
         });
     }
 }
Exemplo n.º 2
0
        private async void AddLyrics_Click(object sender, RoutedEventArgs e)
        {
            ++addLyricsClickCounter;
            if (addLyricsClickCounter == 2)
            {
                MainPage.Instance.ShowLocalizedNotification("ClickAgainToStopAddingLyrics");
                return;
            }
            else if (addLyricsClickCounter == 3)
            {
                addLyricsClickCounter = 0;
                MainPage.Instance.Loader.ShowIndeterminant("StopAddingLyrics");
                return;
            }
            string          paren = Helper.LocalizeMessage("PostParenthesis");
            HyperlinkButton button = (HyperlinkButton)sender;
            List <Music>    skipped = new List <Music>();
            int             count = MusicLibraryPage.SongCount, counter = 0;

            foreach (Music music in MusicLibraryPage.AllSongs)
            {
                if (addLyricsClickCounter == 0)
                {
                    Helper.ShowNotification("AddingLyricsStopped");
                    MainPage.Instance.Loader.Hide();
                    goto Done;
                }
                string lyrics = await music.GetLyricsAsync();

                if (string.IsNullOrEmpty(lyrics))
                {
                    if (music == MediaHelper.CurrentMusic)
                    {
                        skipped.Add(music);
                        continue;
                    }
                    await Task.Run(async() =>
                    {
                        lyrics = await LyricsHelper.SearchLyrics(music);
                        await music.SaveLyricsAsync(lyrics);
                    });
                }
                button.Content = string.Format(paren, addLyricsContent, ++counter + "/" + count);
            }
            while (skipped.Count > 0)
            {
                foreach (Music music in skipped.ToList())
                {
                    if (addLyricsClickCounter == 0)
                    {
                        Helper.ShowNotification("AddingLyricsStopped");
                        MainPage.Instance.Loader.Hide();
                        goto Done;
                    }
                    if (music == MediaHelper.CurrentMusic && skipped.Count > 1)
                    {
                        continue;
                    }
                    await Task.Run(async() =>
                    {
                        string lyrics = await LyricsHelper.SearchLyrics(music);
                        await music.SaveLyricsAsync(lyrics);
                    });

                    skipped.Remove(music);
                    button.Content = string.Format(paren, addLyricsContent, ++counter + "/" + count);
                }
            }
            Helper.ShowNotification("SearchLyricsDone");
Done:
            button.Content        = addLyricsContent;
            addLyricsClickCounter = 0;
        }