Allow to add/remove multiple playlists from settings window
This commit is contained in:
@@ -1,10 +1,18 @@
|
||||
using CommunityToolkit.Mvvm.Input;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Windows.Input;
|
||||
|
||||
namespace TV_Player.ViewModels
|
||||
{
|
||||
internal class SettingsViewModel : ObservableViewModelBase
|
||||
{
|
||||
private string _playlistName;
|
||||
public string PlaylistName
|
||||
{
|
||||
get => _playlistName;
|
||||
set => SetProperty(ref _playlistName, value);
|
||||
}
|
||||
|
||||
private string _playlistURL;
|
||||
public string PlaylistURL
|
||||
{
|
||||
@@ -12,6 +20,13 @@ namespace TV_Player.ViewModels
|
||||
set => SetProperty(ref _playlistURL, value);
|
||||
}
|
||||
|
||||
private ObservableCollection<KeyValuePair<string, string>> _playlists;
|
||||
public ObservableCollection<KeyValuePair<string, string>> Playlists
|
||||
{
|
||||
get => _playlists;
|
||||
set => SetProperty(ref _playlists, value);
|
||||
}
|
||||
|
||||
private bool _startFullScreen;
|
||||
public bool StartFullScreen
|
||||
{
|
||||
@@ -27,7 +42,9 @@ namespace TV_Player.ViewModels
|
||||
}
|
||||
|
||||
public ICommand SaveCommand { get; }
|
||||
public ICommand PlaylistDeleteCommand { get; }
|
||||
public ICommand BackCommand { get; }
|
||||
public ICommand AddPlaylistCommand { get; }
|
||||
|
||||
public SettingsViewModel()
|
||||
{
|
||||
@@ -35,12 +52,25 @@ namespace TV_Player.ViewModels
|
||||
|
||||
SaveCommand = new RelayCommand(OnSaveSettings);
|
||||
BackCommand = new RelayCommand(OnBackCommand);
|
||||
AddPlaylistCommand = new RelayCommand(OnAddPlaylistCommand);
|
||||
PlaylistDeleteCommand = new RelayCommand<KeyValuePair<string, string>>(OnPlaylistDeleteCommand);
|
||||
|
||||
StartFullScreen = SettingsModel.StartFullScreen;
|
||||
StartLastScreen = SettingsModel.StartFromLastScreen;
|
||||
// PlaylistURL = SettingsModel.PlaylistURL;
|
||||
Playlists = new ObservableCollection<KeyValuePair<string, string>>(SettingsModel.Playlists);
|
||||
}
|
||||
|
||||
private void OnAddPlaylistCommand()
|
||||
{
|
||||
Playlists.Add(new KeyValuePair<string, string>(PlaylistName, PlaylistURL));
|
||||
}
|
||||
|
||||
private void OnPlaylistDeleteCommand(KeyValuePair<string, string> pair)
|
||||
{
|
||||
Playlists.Remove(pair);
|
||||
}
|
||||
|
||||
|
||||
private void OnBackCommand()
|
||||
{
|
||||
TVPlayerViewModel.Instance.SelectScreen();
|
||||
@@ -50,10 +80,10 @@ namespace TV_Player.ViewModels
|
||||
{
|
||||
SettingsModel.StartFullScreen = StartFullScreen;
|
||||
SettingsModel.StartFromLastScreen = StartLastScreen;
|
||||
//SettingsModel.PlaylistURL = PlaylistURL;
|
||||
|
||||
SettingsModel.Playlists.Clear();
|
||||
SettingsModel.Playlists = Playlists.ToDictionary<string, string>();
|
||||
SettingsModel.SaveSetttings();
|
||||
TVPlayerViewModel.Instance.InitializeTVWithData();
|
||||
TVPlayerViewModel.Instance.InitializeTVWithData();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user