Example #1
0
        private void TellFriendsRequest()
        {
            var flyout = new FlyoutControl();

            flyout.FlyoutContent = new TellFriendsRequestView();
            flyout.Show();
        }
Example #2
0
        private void OnDescriptionFlyoutButtonClick(object sender, RoutedEventArgs e)
        {
            var flyout = new FlyoutControl();

            flyout.Show(new DescriptionFlyoutView {
                DataContext = this.DataContext
            }, null);
        }
        private void OpenFlyoutDataForm()
        {
            var flyout = new FlyoutControl();

            flyout.Show(new DataFormUserControl {
                DataContext = this.ReservationsView
            }, null);
        }
Example #4
0
        private static void MediaPlayerOnMediaFailed(object sender, Exception e)
        {
            if (CurrentAudio != null)
            {
                LoggingService.Log("Media failed " + CurrentAudio.Id + " " + CurrentAudio.Artist + " - " + CurrentAudio.Title + ". " + e);
            }

            if (e is InvalidWmpVersionException)
            {
                var flyout = new FlyoutControl();
                flyout.FlyoutContent = new CommonMessageView()
                {
                    Header = ErrorResources.AudioFailedErrorHeaderCommon, Message = ErrorResources.WmpMissingError
                };
                flyout.Show();
                return;
            }

            if (e is COMException)
            {
                var com = (COMException)e;
                if ((uint)com.ErrorCode == 0xC00D0035) //not found or connection problem
                {
                    var flyout = new FlyoutControl();
                    flyout.FlyoutContent = new CommonMessageView()
                    {
                        Header = ErrorResources.AudioFailedErrorHeaderCommon, Message = ErrorResources.WmpMissingError
                    };
                    flyout.Show();

                    return;
                }
            }

            _playFailsCount++;
            if (_playFailsCount < 5)
            {
                if (e is FileNotFoundException && CurrentAudio is VkAudio)
                {
                    CurrentAudio.Source = null;
                    PlayInternal(CurrentAudio, _cancellationToken.Token);
                }
                else
                {
                    if (RadioService.CurrentRadio == null)
                    {
                        Next();
                    }
                    else
                    {
                        RadioService.InvalidateCurrentSong();
                    }
                }
            }
        }
        private async void Tell()
        {
            try
            {
                var posId = await ViewModelLocator.Vkontakte.Wall.Post(message : MainResources.AboutTellMessage, attachments :
                                                                       new[] { new VkLinkAttachment()
                                                                               {
                                                                                   Url = "http://meridianvk.com"
                                                                               } });

                if (posId != 0)
                {
                    var flyout = new FlyoutControl();
                    flyout.FlyoutContent = new TellResultView(posId);
                    flyout.Show();
                }
            }
            catch (Exception ex)
            {
                LoggingService.Log(ex);
            }
        }
Example #6
0
        private void InitializeCommands()
        {
            PlayAudioCommand = new RelayCommand <Audio>(audio =>
            {
                AudioService.Play(audio);
                AudioService.SetCurrentPlaylist(Tracks);
            });

            SaveCommand = new RelayCommand(Save);

            ShareCommand = new RelayCommand(() =>
            {
                var shareViewModel = new ShareViewModel();
                if (Tracks != null && Tracks.Count > 0)
                {
                    foreach (var track in Tracks.Take(15))
                    {
                        shareViewModel.Tracks.Add(track);
                    }
                }

                if (File.Exists(App.Root + "/Cache/artists/" + Album.Artist + ".jpg"))
                {
                    shareViewModel.ImagePath = App.Root + "/Cache/artists/" + Album.Artist + ".jpg";
                    shareViewModel.Image     = new BitmapImage(new Uri(shareViewModel.ImagePath));
                }

                var flyout           = new FlyoutControl();
                flyout.FlyoutContent = new ShareView()
                {
                    DataContext = shareViewModel
                };
                flyout.Show();

                shareViewModel.Activate();
            });
        }
        private void InitializeCommands()
        {
            CloseSettingsCommand = new RelayCommand(() =>
            {
                ViewModelLocator.Main.ShowSidebar = true;
                ViewModelLocator.Main.GoBackCommand.Execute(null);
            });

            SaveCommand = new RelayCommand(SaveSettings);

            SaveRestartCommand = new RelayCommand(() =>
            {
                SaveSettings();

                Process.Start(Application.ResourceAssembly.Location);
                Application.Current.Shutdown();
            });

            SignOutVkCommand = new RelayCommand(AccountManager.LogOutVk);

            LoginLastFmCommand = new RelayCommand(() =>
            {
                var flyout           = new FlyoutControl();
                flyout.FlyoutContent = new LoginLastFmView();
                flyout.Show();
            });

            SignOutLastFmCommand = new RelayCommand(AccountManager.LogoutLastFm);

            CheckUpdatesCommand = new RelayCommand(() => ViewModelLocator.UpdateService.CheckUpdates());

            ClearCacheCommand = new RelayCommand(async() =>
            {
                if (!Directory.Exists("Cache"))
                {
                    return;
                }

                foreach (var file in Directory.EnumerateFiles("Cache"))
                {
                    try
                    {
                        File.Delete(file);
                    }
                    catch (Exception ex)
                    {
                        Debug.WriteLine(ex);
                    }
                }

                foreach (var dir in Directory.EnumerateDirectories("Cache"))
                {
                    try
                    {
                        Directory.Delete(dir, true);
                    }
                    catch (Exception ex)
                    {
                        Debug.WriteLine(ex);
                    }
                }

                var cacheSize = await CalculateFolderSizeAsync("Cache");
                CacheSize     = StringHelper.FormatSize(Math.Round(cacheSize, 1));
            });

            TellCommand = new RelayCommand(Tell);
        }
        public void InitializeCommands()
        {
            CancelCommand = new RelayCommand(() =>
            {
                Tracks.Clear();
                ViewModelLocator.Main.ShowShareBar = false;
            });

            CloseCommand = new RelayCommand(() =>
            {
                Close();
            });

            GoNextCommand = new RelayCommand(() =>
            {
                ViewModelLocator.Main.ShowShareBar = false;

                var flyout           = new FlyoutControl();
                flyout.FlyoutContent = new ShareView()
                {
                    DataContext = this
                };
                flyout.Show();

                Activate();
            });

            RemoveTrackCommand = new RelayCommand <VkAudio>(track => Tracks.Remove(track));

            PublishCommand = new RelayCommand(() =>
            {
                if (ShareToSociety && SelectedSociety == null)
                {
                    return;
                }

                if (ShareToUser && SelectedFriend == null)
                {
                    return;
                }

                var progress = new Progress <int>(p =>
                {
                    Progress += p;
                });

                Share(progress, _cancellationToken.Token);
            });

            ClearImageCommand = new RelayCommand(() =>
            {
                Image     = null;
                ImagePath = null;
            });

            AddImageCommand = new RelayCommand(() =>
            {
                var fileOpenDialog    = new OpenFileDialog();
                fileOpenDialog.Filter = "Images|*.png;*.jpg";
                if (fileOpenDialog.ShowDialog() == DialogResult.OK)
                {
                    ImagePath = fileOpenDialog.FileName;
                    Image     = new BitmapImage(new Uri(ImagePath));
                }
            });
        }
        private void InitializeCommands()
        {
            CloseWindowCommand = new RelayCommand(() => Application.Current.MainWindow.Close());

            MinimizeWindowCommand = new RelayCommand(() => WindowState = WindowState.Minimized);

            MaximizeWindowCommand = new RelayCommand(() => WindowState = IsWindowMaximized ? WindowState.Normal : WindowState.Maximized);

            GoToPageCommand = new RelayCommand <string>(page => OnNavigateToPage(new NavigateToPageMessage()
            {
                Page = page
            }));

            GoToSettingsCommand = new RelayCommand(() =>
            {
                ShowSidebar = false;
                OnNavigateToPage(new NavigateToPageMessage()
                {
                    Page = "/Settings.SettingsView"
                });
            });

            PrevAudioCommand = new RelayCommand(AudioService.Prev);

            NextAudioCommand = new RelayCommand(AudioService.SkipNext);

            PlayPauseCommand = new RelayCommand(() =>
            {
                if (IsPlaying)
                {
                    AudioService.Pause();
                }
                else
                {
                    AudioService.Play();
                }
            });

            GoBackCommand = new RelayCommand(() =>
            {
                var frame = Application.Current.MainWindow.GetVisualDescendents().OfType <Frame>().FirstOrDefault(f => f.Name == "RootFrame");
                if (frame == null)
                {
                    return;
                }

                if (frame.CanGoBack)
                {
                    frame.GoBack();
                }

                UpdateCanGoBack();
            });

            SearchCommand = new RelayCommand <string>(query =>
            {
                if (!string.IsNullOrWhiteSpace(query))
                {
                    MessengerInstance.Send(new NavigateToPageMessage()
                    {
                        Page       = "/Search.SearchResultsView",
                        Parameters = new Dictionary <string, object>()
                        {
                            { "query", query }
                        }
                    });
                }
            });

            SearchKeyUpCommand = new RelayCommand <KeyEventArgs>(args =>
            {
                if (args.Key == Key.Enter)
                {
                    var textBox = args.Source as TextBox;
                    if (textBox != null && !string.IsNullOrWhiteSpace(textBox.Text))
                    {
                        SearchCommand.Execute(textBox.Text);
                    }
                }
            });

            RestartCommand = new RelayCommand(() =>
            {
                Process.Start(Application.ResourceAssembly.Location);
                Application.Current.Shutdown();
            });

            AddRemoveAudioCommand = new RelayCommand <VkAudio>(audio =>
            {
                audio.IsAddedByCurrentUser = !audio.IsAddedByCurrentUser;
                LikeDislikeAudio(audio);
            });

            DownloadCommand = new RelayCommand <VkAudio>(audio =>
            {
                var flyout           = new FlyoutControl();
                flyout.FlyoutContent = new DownloadAudioView(audio);
                flyout.Show();
            });

            EditAudioCommand = new RelayCommand <VkAudio>(audio =>
            {
                var flyout           = new FlyoutControl();
                flyout.FlyoutContent = new EditAudioView(audio);
                flyout.Show();
            });

            ShowLyricsCommand = new RelayCommand <VkAudio>(audio =>
            {
                var flyout           = new FlyoutControl();
                flyout.FlyoutContent = new LyricsView(audio);
                flyout.Show();
            });

            CopyInfoCommand = new RelayCommand <Audio>(audio =>
            {
                if (audio == null)
                {
                    return;
                }

                try
                {
                    Clipboard.SetData(DataFormats.UnicodeText, audio.Artist + " - " + audio.Title);
                }
                catch (Exception ex)
                {
                    LoggingService.Log(ex);
                }
            });

            PlayAudioNextCommand = new RelayCommand <Audio>(track =>
            {
                AudioService.PlayNext(track);
            });

            AddToNowPlayingCommand = new RelayCommand <Audio>(track =>
            {
                NotificationService.Notify(MainResources.NotificationAddedToNowPlaying);
                AudioService.Playlist.Add(track);
            });

            RemoveFromNowPlayingCommand = new RelayCommand <Audio>(track =>
            {
                AudioService.Playlist.Remove(track);
            });

            ShareAudioCommand = new RelayCommand <VkAudio>(audio =>
            {
                ShowShareBar = true;

                //костыль #2
                var shareControl = Application.Current.MainWindow.GetVisualDescendent <ShareBarControl>();
                if (shareControl == null)
                {
                    return;
                }

                var shareViewModel = ((ShareViewModel)((FrameworkElement)shareControl.Content).DataContext);
                shareViewModel.Tracks.Add(audio);
            });

            SwitchUIModeCommand = new RelayCommand(() =>
            {
                if (CurrentUIMode == UIMode.Normal)
                {
                    SwitchUIMode(Settings.Instance.LastCompactMode == UIMode.CompactLandscape ? UIMode.CompactLandscape : UIMode.Compact);
                }
                else
                {
                    SwitchUIMode(UIMode.Normal);
                }
            });

            SwitchToUIModeCommand = new RelayCommand <string>(s =>
            {
                UIMode mode;
                if (Enum.TryParse(s, true, out mode))
                {
                    SwitchUIMode(mode);
                }
            });

            StartTrackRadioCommand = new RelayCommand <Audio>(track =>
            {
                RadioService.StartRadioFromSong(track.Title, track.Artist);
                MessengerInstance.Send(new NavigateToPageMessage()
                {
                    Page = "/Main.NowPlayingView"
                });
            });

            ShowArtistInfoCommand = new RelayCommand <string>(async artist =>
            {
                NotificationService.Notify(MainResources.NotificationLookingArtist);

                try
                {
                    var response = await DataService.GetArtistInfo(null, artist);
                    if (response != null)
                    {
                        MessengerInstance.Send(new NavigateToPageMessage()
                        {
                            Page       = "/Search.ArtistView",
                            Parameters = new Dictionary <string, object>()
                            {
                                { "artist", response }
                            }
                        });
                    }
                }
                catch (Exception ex)
                {
                    LoggingService.Log(ex);
                    NotificationService.Notify(MainResources.NotificationArtistNotFound);
                }
            });

            ShowLocalSearchCommand = new RelayCommand(() =>
            {
                var frame = Application.Current.MainWindow.GetVisualDescendents().OfType <Frame>().FirstOrDefault();
                if (frame == null)
                {
                    return;
                }

                var page = (Page)frame.Content;
                if (page != null)
                {
                    var localSearchBox = page.GetVisualDescendents().OfType <LocalSearchControl>().FirstOrDefault();
                    if (localSearchBox != null)
                    {
                        localSearchBox.IsActive = true;
                    }
                }
            });

            AddToAlbumCommand = new RelayCommand <VkAudio>(track =>
            {
                var flyout           = new FlyoutControl();
                flyout.FlyoutContent = new AddToAlbumView(track);
                flyout.Show();
            });
        }
Example #10
0
        public void FlyoutTo(Type type, object parameter = null)
        {
            if (type == null)
            {
                throw new ArgumentNullException(nameof(type));
            }

            if (!this.IsFlyoutAllowed())
            {
                this.Navigate(type, parameter);
            }
            else
            {
                var currentFlyoutControl = this.PeekFlyout();
                if (currentFlyoutControl != null && currentFlyoutControl.Content.GetType() == type)
                {
                    // if this flyout is currently opened, signal new parameter
                    if (currentFlyoutControl.Content is ISettingsPage)
                    {
                        ((ISettingsPage)currentFlyoutControl.Content).OnNavigatedTo(parameter);
                    }
                    return;
                }

                SettingsSizeMode size = SettingsSizeMode.Small;

                object content = null;
                if (type == typeof(TaskPage))
                {
                    // only cache TaskPage because of side effects with other pages +
                    // for memory usage (TaskPage is the only one used many times during the lifetime
                    // of the app)
                    if (!this.flyoutsCache.ContainsKey(type))
                    {
                        this.flyoutsCache.Add(type, Activator.CreateInstance(type));
                    }
                    content = this.flyoutsCache[type];
                }
                else
                {
                    content = Activator.CreateInstance(type);
                }
                if (content is Page)
                {
                    Page page = (Page)content;

                    if (page is ISettingsPage)
                    {
                        ISettingsPage settingsPage = (ISettingsPage)content;

                        size = settingsPage.Size;
                        settingsPage.OnNavigatedTo(parameter);
                    }
                    else
                    {
                        size = SettingsSizeMode.Small;
                    }
                }

                var flyoutControl = new FlyoutControl {
                    Content = content, Size = size, StaysOpen = true
                };

                flyoutControl.Show(this.OnFlyoutClosed);

                this.flyouts.Push(flyoutControl);
            }
        }
        private void InitializeCommands()
        {
            PlayAudioCommand = new RelayCommand <Audio>(audio =>
            {
                AudioService.Play(audio);
                AudioService.SetCurrentPlaylist(AllTracks);
            });

            ShowAllTracksCommand = new RelayCommand(() =>
            {
                MessengerInstance.Send(new NavigateToPageMessage()
                {
                    Page       = "/Search.ArtistAudioView",
                    Parameters = new Dictionary <string, object>()
                    {
                        { "viewModel", this }
                    }
                });
            });

            ShowAllAlbumsCommand = new RelayCommand(() =>
            {
                MessengerInstance.Send(new NavigateToPageMessage()
                {
                    Page       = "/Search.ArtistAlbumsView",
                    Parameters = new Dictionary <string, object>()
                    {
                        { "viewModel", this }
                    }
                });
            });


            GoToAlbumCommand = new RelayCommand <LastFmAlbum>(album =>
            {
                MessengerInstance.Send(new NavigateToPageMessage()
                {
                    Page       = "/Search.AlbumView",
                    Parameters = new Dictionary <string, object>()
                    {
                        { "album", album }
                    }
                });
            });

            GoToArtistCommand = new RelayCommand <LastFmArtist>(artist =>
            {
                MessengerInstance.Send(new NavigateToPageMessage()
                {
                    Page       = "/Search.ArtistView",
                    Parameters = new Dictionary <string, object>()
                    {
                        { "artist", artist }
                    }
                });
            });

            ShareCommand = new RelayCommand(() =>
            {
                var shareViewModel = new ShareViewModel();
                if (Tracks != null && Tracks.Count > 0)
                {
                    foreach (var track in AllTracks.Take(15))
                    {
                        shareViewModel.Tracks.Add(track);
                    }
                }

                if (File.Exists(App.Root + "/Cache/artists/" + Artist.Name + ".jpg"))
                {
                    shareViewModel.ImagePath = App.Root + "/Cache/artists/" + Artist.Name + ".jpg";
                    shareViewModel.Image     = new BitmapImage(new Uri(shareViewModel.ImagePath));
                }

                var flyout           = new FlyoutControl();
                flyout.FlyoutContent = new ShareView()
                {
                    DataContext = shareViewModel
                };
                flyout.Show();

                shareViewModel.Activate();
            });
        }