24ca481b64
Added support for loading M3U playlists from both web URLs and local file paths, with logic to resolve relative paths. Improved exception handling in M3UParser. Enabled toggling of window border style in fullscreen mode, with data binding for WindowStyle. Removed IsValidUrl check to allow local file sources in settings. Cleaned up usings and formatting. Removed .NET SDK version from global.json.
46 lines
1.4 KiB
C#
46 lines
1.4 KiB
C#
using CommunityToolkit.Mvvm.Input;
|
|
using System.Windows.Input;
|
|
using TV_Player.ViewModels;
|
|
|
|
namespace TV_Player
|
|
{
|
|
public class ProgramsGroupViewModel : ObservableViewModelBase, IDisposable
|
|
{
|
|
private List<GroupInfo> _programs;
|
|
|
|
public List<GroupInfo> Programs
|
|
{
|
|
get => _programs;
|
|
set => SetProperty(ref _programs, value);
|
|
}
|
|
|
|
public GroupInfo SelectedItem { get; set; }
|
|
public ICommand ItemSelectedCommand { get; }
|
|
public IDisposable _groupInformationSubscriber;
|
|
|
|
public ProgramsGroupViewModel()
|
|
{
|
|
ItemSelectedCommand = new RelayCommand(OnItemSelected);
|
|
_groupInformationSubscriber = TVPlayerViewModel.Instance.CurrentProgrmsData.GroupsInformation.Subscribe(x =>
|
|
Programs = SettingsModel.HiddenGroups == null ? x : x.Where(g => !SettingsModel.HiddenGroups.Contains(g.Name.ToLower())).ToList());
|
|
|
|
TVPlayerViewModel.Instance.TopPanelVisible(true, "Groups");
|
|
|
|
TVPlayerViewModel.Instance.SetBackButtonAction(new Action(() =>
|
|
{
|
|
TVPlayerViewModel.Instance.ShowPlaylistsGroupScreen();
|
|
}));
|
|
}
|
|
|
|
private void OnItemSelected()
|
|
{
|
|
TVPlayerViewModel.Instance.ShowProgramsListScreen(SelectedItem);
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
_groupInformationSubscriber.Dispose();
|
|
}
|
|
}
|
|
}
|