diff --git a/TV Player WPF/ViewModels/ProgramsGroupViewModel.cs b/TV Player WPF/ViewModels/ProgramsGroupViewModel.cs index 30af10a..d3222db 100644 --- a/TV Player WPF/ViewModels/ProgramsGroupViewModel.cs +++ b/TV Player WPF/ViewModels/ProgramsGroupViewModel.cs @@ -4,7 +4,7 @@ using TV_Player.ViewModels; namespace TV_Player { - public class ProgramsGroupViewModel : ObservableViewModelBase + public class ProgramsGroupViewModel : ObservableViewModelBase, IDisposable { private List _programs; public List Programs @@ -15,12 +15,13 @@ namespace TV_Player public GroupInfo SelectedItem { get; set; } public ICommand ItemSelectedCommand { get; } + public IDisposable _groupInformationSubscriber; public ProgramsGroupViewModel() { ItemSelectedCommand = new RelayCommand(OnItemSelected); - ProgramsData.Instance.GroupsInformation.Subscribe(x=>Programs = x); - + _groupInformationSubscriber = ProgramsData.Instance.GroupsInformation.Subscribe(x=>Programs = x); + TVPlayerViewModel.Instance.TopPanelVisible(true, "Groups"); } @@ -30,5 +31,10 @@ namespace TV_Player var conrtrol = new ProgramsList(); TVPlayerViewModel.Instance.SetPageContext(conrtrol, programListViewModel); } + + public void Dispose() + { + _groupInformationSubscriber.Dispose(); + } } } diff --git a/TV Player WPF/ViewModels/ProgramsListViewModel.cs b/TV Player WPF/ViewModels/ProgramsListViewModel.cs index 2ef7314..6ce10b5 100644 --- a/TV Player WPF/ViewModels/ProgramsListViewModel.cs +++ b/TV Player WPF/ViewModels/ProgramsListViewModel.cs @@ -4,7 +4,7 @@ using TV_Player.ViewModels; namespace TV_Player { - public class ProgramsListViewModel : ObservableViewModelBase + public class ProgramsListViewModel : ObservableViewModelBase, IDisposable { private List _programs; public List Programs @@ -15,12 +15,12 @@ namespace TV_Player public M3UInfo SelectedItem { get; set; } public ICommand ItemSelectedCommand { get; } - + private IDisposable _programSubscriber; public ProgramsListViewModel(GroupInfo groupInfo) { TVPlayerViewModel.Instance.TopPanelVisible(true, groupInfo.Name); ItemSelectedCommand = new RelayCommand(OnItemSelected); - ProgramsData.Instance.AllPrograms.Subscribe(x => Programs = x.Where(p => p.GroupTitle == groupInfo.Name).ToList()); + _programSubscriber = ProgramsData.Instance.AllPrograms.Subscribe(x => Programs = x.Where(p => p.GroupTitle == groupInfo.Name).ToList()); TVPlayerViewModel.Instance.SetBackButtonAction(new Action(() => { @@ -37,5 +37,10 @@ namespace TV_Player conrtrol.SourceUrl = SelectedItem.Url; TVPlayerViewModel.Instance.SetPageContext(conrtrol, playerViewModel); } + + public void Dispose() + { + _programSubscriber.Dispose(); + } } }