示例#1
0
 public override void NavigatedTo(NavigationMode mode, object e)
 {
     base.NavigatedTo(mode, e);
     UiBlockerUtility.BlockNavigation();
     ScreenTimeoutHelper.PreventTimeout();
     App.Locator.PBar.IsFirstRun = true;
     isDone = false;
     GetMetadata();
 }
示例#2
0
        async void GetMetadata()
        {
            Bar.IsIndeterminate = true;

            LocalMusicHelper localMusicHelper = new LocalMusicHelper();
            var localMusic = await localMusicHelper.GetFilesInMusicAsync();

            var failedCount = 0;

            Bar.IsIndeterminate = false;

            App.Locator.CollectionService.Songs.SuppressEvents   = true;
            App.Locator.CollectionService.Artists.SuppressEvents = true;
            App.Locator.CollectionService.Albums.SuppressEvents  = true;

            Bar.Maximum = localMusic.Count;
            App.Locator.SqlService.BeginTransaction();

            for (var i = 0; i < localMusic.Count; i++)
            {
                Bar.Value = i + 1;
                try
                {
                    await localMusicHelper.SaveTrackAsync(localMusic[i]);
                }
                catch
                {
                    failedCount++;
                }
            }
            App.Locator.SqlService.Commit();

            App.Locator.CollectionService.Songs.Reset();
            App.Locator.CollectionService.Artists.Reset();
            App.Locator.CollectionService.Albums.Reset();


            UiBlockerUtility.Unblock();
            ScreenTimeoutHelper.AllowTimeout();
            if (App.Locator.Setting.SpotifyArtworkSync)
            {
                await DownloadArtworks.DownloadArtistsArtworkAsyncFromSpotify();
            }
            else
            {
                await DownloadArtworks.DownloadArtistsArtworkAsync();
            }

            await DownloadArtworks.DownloadAlbumsArtworkAsync();

            localSettings.Values[Core.PlayerConstants.UpdateAppString] = true;

            isDone = true;
            ButtonClick(null, null);
        }
示例#3
0
        async void ButtonClick(object sender, RoutedEventArgs e)
        {
            if (!isDone)
            {
                localSettings.Values[Core.PlayerConstants.UpdateAppString] = true;
                ScreenTimeoutHelper.AllowTimeout();
                UiBlockerUtility.Unblock();
                //DeleteTimer();
                await Task.Delay(1000);
            }

            App.Locator.PBar.IsFirstRun = false;
            //if(App.Locator.Setting.SafeStart)
            //Register();
            await DispatcherHelper.RunAsync(() =>
            {
                App.Navigator.GoTo <HomePage, ZoomInTransition>(null, false);
                App.Locator.HomePage.SongColletionChanged();
            });
        }
示例#4
0
        async void ImportVideos()
        {
            ScreenTimeoutHelper.PreventTimeout();

            Message.Text        = "Collecting information about videos.";
            Bar.IsIndeterminate = true;

            var failedCount = 0;

            LocalMusicHelper localMusicHelper = new LocalMusicHelper();
            var localVideos = await localMusicHelper.GetFilesInVideoAsync();

            App.Locator.CollectionService.Videos.SuppressEvents = true;

            Bar.IsIndeterminate = false;

            await Task.Delay(10);

            Message.Text = "Working on video files.";
            Bar.Maximum  = localVideos.Count;

            App.Locator.SqlService.BeginTransaction();
            for (var i = 0; i < localVideos.Count; i++)
            {
                Bar.Value = i + 1;
                try
                {
                    await localMusicHelper.SaveVideoAsync(localVideos[i]);
                }
                catch
                {
                    failedCount++;
                }
            }

            App.Locator.SqlService.Commit();
            App.Locator.CollectionService.Videos.Reset();

            ScreenTimeoutHelper.AllowTimeout();
            SheetUtility.CloseImportRefreshPage();
        }
示例#5
0
        async void Refresh()
        {
            await Task.Factory.StartNew(async() =>
            {
                await DispatcherHelper.RunAsync(async() =>
                {
                    Message.Text = "Preparing...";
                    ScreenTimeoutHelper.PreventTimeout();
                    var importedSongs = App.Locator.CollectionService.Songs.Where(p => p.SongState == SongState.Local ||
                                                                                  p.SongState == SongState.DownloadListed ||
                                                                                  p.SongState == SongState.Downloaded).ToList();

                    var importedVideos = App.Locator.CollectionService.Videos.ToList();

                    App.Locator.SqlService.BeginTransaction();

                    if (importedSongs.Count > 0)
                    {
                        Message.Text = "Deleting tracks.";
                        foreach (var song in importedSongs)
                        {
                            try
                            {
                                await App.Locator.CollectionService.DeleteSongAsync(song);
                            }
                            catch
                            {
                                //ignored;
                            }
                        }
                    }

                    if (importedVideos.Count() > 0)
                    {
                        Message.Text = "Deleting videos.";
                        foreach (var video in importedVideos)
                        {
                            try
                            {
                                await App.Locator.CollectionService.DeleteVideoAsync(video);
                            }
                            catch
                            {
                                //ignored;
                            }
                        }
                    }
                    App.Locator.SqlService.Commit();
                });
            });


            Bar.Visibility = Windows.UI.Xaml.Visibility.Visible;

            await Task.Delay(50);

            await Task.Factory.StartNew(async() =>
            {
                await DispatcherHelper.RunAsync(() =>
                {
                    ImportMusic(true);
                });
            });
        }
示例#6
0
        async void ImportMusic(bool importVideo = false)
        {
            ScreenTimeoutHelper.PreventTimeout();

            Bar.IsIndeterminate = true;

            Message.Text = "Collecting information about music.";

            LocalMusicHelper localMusicHelper = new LocalMusicHelper();
            var localMusic = await localMusicHelper.GetFilesInMusicAsync();

            var failedCount = 0;

            Bar.IsIndeterminate = false;

            App.Locator.CollectionService.Songs.SuppressEvents   = true;
            App.Locator.CollectionService.Artists.SuppressEvents = true;
            App.Locator.CollectionService.Albums.SuppressEvents  = true;

            await Task.Delay(10);

            Message.Text = "Working on music files.";

            Bar.Maximum = localMusic.Count;

            App.Locator.SqlService.BeginTransaction();
            for (var i = 0; i < localMusic.Count; i++)
            {
                Bar.Value = i + 1;
                try
                {
                    await localMusicHelper.SaveTrackAsync(localMusic[i]);
                }
                catch
                {
                    failedCount++;
                }
            }
            App.Locator.SqlService.Commit();

            App.Locator.CollectionService.Songs.Reset();
            App.Locator.CollectionService.Artists.Reset();
            App.Locator.CollectionService.Albums.Reset();

            if (importVideo)
            {
                if (App.Locator.Setting.SpotifyArtworkSync)
                {
                    await DownloadArtworks.DownloadArtistsArtworkAsyncFromSpotify();
                }
                else
                {
                    await DownloadArtworks.DownloadArtistsArtworkAsync();
                }
                await DownloadArtworks.DownloadAlbumsArtworkAsync();

                ImportVideos();
            }
            else
            {
                if (App.Locator.Setting.SpotifyArtworkSync)
                {
                    await DownloadArtworks.DownloadArtistsArtworkAsyncFromSpotify();
                }
                else
                {
                    await DownloadArtworks.DownloadArtistsArtworkAsync();
                } await DownloadArtworks.DownloadAlbumsArtworkAsync();

                ScreenTimeoutHelper.AllowTimeout();
                SheetUtility.CloseImportRefreshPage();
            }

            App.Locator.HomePage.SongColletionChanged();
        }