diff --git a/MainWindow.xaml.cs b/MainWindow.xaml.cs index 2c52228..eeb0984 100644 --- a/MainWindow.xaml.cs +++ b/MainWindow.xaml.cs @@ -131,6 +131,21 @@ public partial class MainWindow : Window _ = InitializeWebViewAsync(); await LoadChannelsAsync(); + // Erinnerungs-Callback: Sender automatisch einschalten + _reminderService.SwitchToChannel = channelName => + { + var ch = _allChannels.FirstOrDefault(c => + c.Name.Equals(channelName, StringComparison.OrdinalIgnoreCase)); + if (ch != null) + { + var listEntry = _filteredChannels.FirstOrDefault(c => + c.Name.Equals(channelName, StringComparison.OrdinalIgnoreCase)); + if (listEntry != null) + LstChannels.SelectedItem = listEntry; + else + PlayChannel(ch); + } + }; RestoreLastChannel(); _ = LoadEpgInBackgroundAsync(); } diff --git a/Services/ReminderService.cs b/Services/ReminderService.cs index 05c6f0a..d21a571 100644 --- a/Services/ReminderService.cs +++ b/Services/ReminderService.cs @@ -57,7 +57,7 @@ public class ReminderService if (due.Any()) Save(); } - private static void FireNotification(Reminder r) + private void FireNotification(Reminder r) { try { @@ -65,13 +65,21 @@ public class ReminderService var when = minLeft <= 0 ? "Jetzt" : $"In {minLeft} Minute{(minLeft == 1 ? "" : "n")}"; var msg = $"{when}: {r.Title}\n{r.ChannelName} {r.StartTime:HH:mm}\u2013{r.EndTime:HH:mm}"; - System.Windows.MessageBox.Show(msg, "\u23f0 HomeStream-Erinnerung", - System.Windows.MessageBoxButton.OK, + var result = System.Windows.MessageBox.Show( + msg + "\n\nJetzt einschalten?", + "\u23f0 HomeStream-Erinnerung", + System.Windows.MessageBoxButton.YesNo, System.Windows.MessageBoxImage.Information); + + if (result == System.Windows.MessageBoxResult.Yes) + SwitchToChannel?.Invoke(r.ChannelName); } catch { } } + /// Wird aufgerufen wenn User bei Erinnerung "Jetzt einschalten" klickt. + public Action? SwitchToChannel { get; set; } + private void Load() { try