Started working on reworking of event system for changed channel data
This commit is contained in:
parent
d0662351d7
commit
c236dabb0e
16
Events/ChannelDataChangedEventArgs.cs
Normal file
16
Events/ChannelDataChangedEventArgs.cs
Normal file
@ -0,0 +1,16 @@
|
||||
using System;
|
||||
|
||||
namespace BetterRaid.Events;
|
||||
|
||||
public class ChannelDataChangedEventArgs : EventArgs
|
||||
{
|
||||
public static ChannelDataChangedEventArgs FromViewerCount(int old, int now)
|
||||
{
|
||||
return new ChannelDataChangedEventArgs();
|
||||
}
|
||||
|
||||
public static ChannelDataChangedEventArgs FromIsLive(bool old, bool now)
|
||||
{
|
||||
return new ChannelDataChangedEventArgs();
|
||||
}
|
||||
}
|
@ -4,6 +4,7 @@ using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Avalonia.Media;
|
||||
using Avalonia.Threading;
|
||||
using BetterRaid.Events;
|
||||
using BetterRaid.Models;
|
||||
using TwitchLib.Api.Helix.Models.Raids.StartRaid;
|
||||
using TwitchLib.Api.Helix.Models.Search;
|
||||
@ -34,6 +35,8 @@ public class RaidButtonViewModel : ViewModelBase
|
||||
|
||||
public DateTime? LastRaided => MainVm?.Database?.GetLastRaided(ChannelName);
|
||||
|
||||
public event EventHandler<ChannelDataChangedEventArgs>? ChannelDataChanged;
|
||||
|
||||
public RaidButtonViewModel(string channelName)
|
||||
{
|
||||
ChannelName = channelName;
|
||||
@ -161,6 +164,20 @@ public class RaidButtonViewModel : ViewModelBase
|
||||
|
||||
private void OnChannelDataChanged(object? sender, PropertyChangedEventArgs e)
|
||||
{
|
||||
OnPropertyChanged(nameof(Channel));
|
||||
switch (e.PropertyName)
|
||||
{
|
||||
case "IsLive":
|
||||
OnChannelDataChanged(ChannelDataChangedEventArgs.FromIsLive(false, true));
|
||||
break;
|
||||
|
||||
case "ViewerCount":
|
||||
OnChannelDataChanged(ChannelDataChangedEventArgs.FromViewerCount(0, 10));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void OnChannelDataChanged(ChannelDataChangedEventArgs args)
|
||||
{
|
||||
ChannelDataChanged?.Invoke(this, args);
|
||||
}
|
||||
}
|
@ -69,7 +69,7 @@ public partial class MainWindow : Window
|
||||
|
||||
foreach (var rbvm in _raidButtonVMs)
|
||||
{
|
||||
rbvm.PropertyChanged -= OnRaidButtonViewModelChanged;
|
||||
|
||||
}
|
||||
|
||||
_raidButtonVMs.Clear();
|
||||
@ -89,8 +89,6 @@ public partial class MainWindow : Window
|
||||
MainVm = vm
|
||||
};
|
||||
|
||||
rbvm.PropertyChanged += OnRaidButtonViewModelChanged;
|
||||
|
||||
_raidButtonVMs.Add(rbvm);
|
||||
}
|
||||
|
||||
@ -100,11 +98,6 @@ public partial class MainWindow : Window
|
||||
}
|
||||
}
|
||||
|
||||
private void OnRaidButtonViewModelChanged(object? sender, PropertyChangedEventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void GenerateRaidGrid()
|
||||
{
|
||||
foreach (var child in raidGrid.Children)
|
||||
|
Reference in New Issue
Block a user