private void OnChangeName() { if (_upcomingProgram != null) { Schedule schedule = SchedulerAgent.GetScheduleById(_upcomingProgram.ScheduleId); if (schedule == null) { return; } string schedname = schedule.Name; VirtualKeyboard keyboard = (VirtualKeyboard)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_VIRTUAL_KEYBOARD); if (keyboard != null) { keyboard.Reset(); keyboard.IsSearchKeyboard = false; keyboard.Text = schedname ?? String.Empty; keyboard.DoModal(GetID); if (keyboard.IsConfirmed) { schedule.Name = keyboard.Text; SchedulerAgent.SaveSchedule(schedule); } } } }
private void OnPriority() { if (_upcomingProgram != null) { Schedule schedule = SchedulerAgent.GetScheduleById(_upcomingProgram.ScheduleId); if (schedule == null) { return; } GUIDialogMenu dlg = (GUIDialogMenu)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU); if (dlg != null) { dlg.Reset(); dlg.SetHeading(Utility.GetLocalizedText(TextId.RecordingsListItemsSuffix)); dlg.Add(Utility.GetLocalizedText(TextId.VeryLow)); dlg.Add(Utility.GetLocalizedText(TextId.Low)); dlg.Add(Utility.GetLocalizedText(TextId.Normal)); dlg.Add(Utility.GetLocalizedText(TextId.High)); dlg.Add(Utility.GetLocalizedText(TextId.VeryHigh)); dlg.SelectedLabel = (int)schedule.SchedulePriority + 2; dlg.DoModal(GetID); if (dlg.SelectedLabel >= 0) { schedule.SchedulePriority = (SchedulePriority)(dlg.SelectedLabel - 2); SchedulerAgent.SaveSchedule(schedule); } } } }
private void OnKeep() { if (_upcomingProgram != null) { Schedule schedule = SchedulerAgent.GetScheduleById(_upcomingProgram.ScheduleId); if (schedule == null) { return; } GUIDialogMenu dialog = (GUIDialogMenu)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU); if (dialog == null) { return; } dialog.Reset(); dialog.SetHeading(1042); // Keep until dialog.Add(Utility.GetLocalizedText(TextId.UntilSpaceNeeded)); dialog.Add(Utility.GetLocalizedText(TextId.NumberOfDays)); dialog.Add(Utility.GetLocalizedText(TextId.NumberOfEpisodes)); dialog.Add(Utility.GetLocalizedText(TextId.NumberOfWatchedEpisodes)); dialog.Add(Utility.GetLocalizedText(TextId.Forever)); switch (schedule.KeepUntilMode) { case KeepUntilMode.UntilSpaceIsNeeded: dialog.SelectedLabel = 0; break; case KeepUntilMode.NumberOfDays: dialog.SelectedLabel = 1; break; case KeepUntilMode.NumberOfEpisodes: dialog.SelectedLabel = 2; break; case KeepUntilMode.NumberOfWatchedEpisodes: dialog.SelectedLabel = 3; break; case KeepUntilMode.Forever: dialog.SelectedLabel = 4; break; } dialog.DoModal(GetID); if (dialog.SelectedId == -1) { return; } switch (dialog.SelectedLabel) { case 0: schedule.KeepUntilMode = KeepUntilMode.UntilSpaceIsNeeded; break; case 1: { int?value = GetKeepValue(1045, KeepUntilMode.NumberOfDays, 3014, 3015, schedule.KeepUntilMode == KeepUntilMode.NumberOfDays ? schedule.KeepUntilValue : 7); if (value.HasValue) { schedule.KeepUntilMode = KeepUntilMode.NumberOfDays; schedule.KeepUntilValue = value; } } break; case 2: { int?value = GetKeepValue(887, KeepUntilMode.NumberOfEpisodes, 682, 914, schedule.KeepUntilMode == KeepUntilMode.NumberOfEpisodes ? schedule.KeepUntilValue : 3); if (value.HasValue) { schedule.KeepUntilMode = KeepUntilMode.NumberOfEpisodes; schedule.KeepUntilValue = value; } } break; case 3: { int?value = GetKeepValue(887, KeepUntilMode.NumberOfWatchedEpisodes, 682, 914, schedule.KeepUntilMode == KeepUntilMode.NumberOfWatchedEpisodes ? schedule.KeepUntilValue : 3); if (value.HasValue) { schedule.KeepUntilMode = KeepUntilMode.NumberOfWatchedEpisodes; schedule.KeepUntilValue = value; } } break; case 4: schedule.KeepUntilMode = KeepUntilMode.Forever; break; } if (schedule != null) { SchedulerAgent.SaveSchedule(schedule); } } }
private void Onrecord(ScheduleType scheduleType) { Schedule schedule = null; if (_upcomingProgram != null) { schedule = SchedulerAgent.GetScheduleById(_upcomingProgram.ScheduleId); } if (_upcomingProgram != null && schedule != null && schedule.ScheduleType == scheduleType) //delete schedule { if (_upcomingProgram.IsCancelled) { SchedulerAgent.UncancelUpcomingProgram(_upcomingProgram.ScheduleId, _upcomingProgram.GuideProgramId, _upcomingProgram.Channel.ChannelId, _upcomingProgram.StartTime); try { //refresh _upcomingProgram _upcomingProgram = SchedulerAgent.GetUpcomingPrograms(schedule, true)[0]; } catch { } } else { if (_upcomingProgram.IsPartOfSeries) { GUIDialogYesNo dlgYesNo = (GUIDialogYesNo)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_YES_NO); if (dlgYesNo != null) { dlgYesNo.SetHeading(Utility.GetLocalizedText(TextId.DeleteEntireSchedule)); dlgYesNo.SetLine(1, "\"" + schedule.Name + "\""); dlgYesNo.SetLine(2, Utility.GetLocalizedText(TextId.AreYouSure)); dlgYesNo.SetLine(3, String.Empty); dlgYesNo.SetDefaultToYes(false); dlgYesNo.DoModal(GUIWindowManager.ActiveWindow); if (dlgYesNo.IsConfirmed) { SchedulerAgent.DeleteSchedule(schedule.ScheduleId); _upcomingProgram = null; } } } else { SchedulerAgent.DeleteSchedule(_upcomingProgram.ScheduleId); _upcomingProgram = null; } } } else//create new schedule { TimeSpan duration = new TimeSpan(Int32.Parse(_spinHoursDuration.GetLabel()), Int32.Parse(_spinMinutesDuration.GetLabel()), 0); DateTime startTime = new DateTime(Int32.Parse(_spinStartYear.GetLabel()), Int32.Parse(_spinStartMonth.GetLabel()), Int32.Parse(_spinStartDay.GetLabel()), Int32.Parse(_spinStartHour.GetLabel()), Int32.Parse(_spinStartMinute.GetLabel()), 0); ScheduleDaysOfWeek daysOfWeek = new ScheduleDaysOfWeek(); //TODO: What if we have multiple channels with the same name Channel channel = SchedulerAgent.GetChannelByDisplayName(_channelType, _spinChannel.GetLabel()); Schedule newSchedule = null; newSchedule = SchedulerAgent.CreateNewSchedule(_channelType, scheduleType); newSchedule.Rules.Add(ScheduleRuleType.Channels, channel.ChannelId); newSchedule.Rules.Add(ScheduleRuleType.ManualSchedule, startTime, new ScheduleTime(duration)); if (!_recordOnce) { string days = " "; if (_mondayButton.Selected) { daysOfWeek = daysOfWeek | ScheduleDaysOfWeek.Mondays; days += Utility.GetLocalizedText(TextId.Mon) + ","; } if (_tuesdayButton.Selected) { daysOfWeek = daysOfWeek | ScheduleDaysOfWeek.Tuesdays; days += Utility.GetLocalizedText(TextId.Tue) + ","; } if (_wednesdayButton.Selected) { daysOfWeek = daysOfWeek | ScheduleDaysOfWeek.Wednesdays; days += Utility.GetLocalizedText(TextId.Wed) + ","; } if (_thursdayButton.Selected) { daysOfWeek = daysOfWeek | ScheduleDaysOfWeek.Thursdays; days += Utility.GetLocalizedText(TextId.Thu) + ","; } if (_fridayButton.Selected) { daysOfWeek = daysOfWeek | ScheduleDaysOfWeek.Fridays; days += Utility.GetLocalizedText(TextId.Fri) + ","; } if (_saturdayButton.Selected) { daysOfWeek = daysOfWeek | ScheduleDaysOfWeek.Saturdays; days += Utility.GetLocalizedText(TextId.Sat) + ","; } if (_sundayButton.Selected) { daysOfWeek = daysOfWeek | ScheduleDaysOfWeek.Sundays; days += Utility.GetLocalizedText(TextId.Sun) + ","; } days = days.Remove(days.Length - 1); newSchedule.Rules.Add(ScheduleRuleType.DaysOfWeek, daysOfWeek); newSchedule.Name = String.Format(CultureInfo.CurrentCulture, "{0} {1} {2:t}-{3:t}", channel.DisplayName, days, startTime, startTime.Add(duration)); } else { newSchedule.Name = String.Format(CultureInfo.CurrentCulture, "{0} {1:g}-{2:t}", channel.DisplayName, startTime, startTime.Add(duration)); } //TODO: try to prevent dublicate manual schedules //and find a better way to get the newly created "_schedule" and "_upcomingProgram" if (newSchedule != null) { newSchedule.ScheduleType = scheduleType; SchedulerAgent.SaveSchedule(newSchedule); bool found = false; UpcomingProgram[] _programs = SchedulerAgent.GetAllUpcomingPrograms(scheduleType, true); foreach (UpcomingProgram _prog in _programs) { if (_prog.Channel.ChannelId == channel.ChannelId && _prog.Duration == duration && !found) { Schedule _schedule = SchedulerAgent.GetScheduleById(_prog.ScheduleId); if (_schedule.Rules.FindRuleByType(ScheduleRuleType.ManualSchedule) != null) { if (_schedule.Name == newSchedule.Name) { if (_recordOnce && _prog.StartTime == startTime) { _upcomingProgram = _prog; found = true; } else if (!_recordOnce && _schedule.Rules.FindRuleByType(ScheduleRuleType.DaysOfWeek) != null && _schedule.Rules.FindRuleByType(ScheduleRuleType.DaysOfWeek).Arguments[0].ToString() == daysOfWeek.ToString() && Convert.ToDateTime(_schedule.Rules.FindRuleByType(ScheduleRuleType.ManualSchedule).Arguments[0]) == startTime) { _upcomingProgram = _prog; found = true; } Update(_schedule); break; } } } } if (!found) { GUIWindowManager.ShowPreviousWindow(); } } } }
private void UpdateDateTime() { DateTime time = DateTime.Now; Schedule sched = null; ScheduleRule _manualRule = null; int valueYear = 0; bool yearFound = true; if (_upcomingProgram != null) { sched = SchedulerAgent.GetScheduleById(_upcomingProgram.ScheduleId); if (sched != null) { yearFound = false; _manualRule = sched.Rules.FindRuleByType(ScheduleRuleType.ManualSchedule); if (_manualRule != null) { time = Convert.ToDateTime(_manualRule.Arguments[0]); } } } for (int i = DateTime.Now.Year; i <= DateTime.Now.Year + 2; i++) { _spinStartYear.AddLabel(i.ToString(), 0); if (_upcomingProgram != null && sched != null && yearFound == false) { if (i.ToString() == time.Year.ToString()) { yearFound = true; } valueYear++; } } if (yearFound == false) { // year not found in list, add year in list _spinStartYear.AddLabel(time.ToString(), 0); yearFound = true; valueYear++; } for (int i = 1; i <= 12; i++) { if (i < 10) { _spinStartMonth.AddLabel("0" + i.ToString(), 0); } else { _spinStartMonth.AddLabel(i.ToString(), 0); } } UpdateDaysinMonth(Int32.Parse(_spinStartMonth.GetLabel()), Int32.Parse(_spinStartYear.GetLabel())); for (int i = 0; i <= 23; i++) { if (i < 10) { _spinStartHour.AddLabel("0" + i.ToString(), 0); _spinHoursDuration.AddLabel("0" + i.ToString(), 0); } else { _spinStartHour.AddLabel(i.ToString(), 0); _spinHoursDuration.AddLabel(i.ToString(), 0); } } for (int i = 0; i <= 59; i++) { if (i < 10) { _spinStartMinute.AddLabel("0" + i.ToString(), 0); _spinMinutesDuration.AddLabel("0" + i.ToString(), 0); } else { _spinStartMinute.AddLabel(i.ToString(), 0); _spinMinutesDuration.AddLabel(i.ToString(), 0); } } _spinStartMonth.Value = (time.Month - 1); _spinStartDay.Value = (time.Day - 1); _spinStartHour.Value = time.Hour; _spinStartMinute.Value = time.Minute; if (_upcomingProgram != null && sched != null && _manualRule != null) { if (yearFound) { _spinStartYear.Value = (valueYear - 1); } _spinHoursDuration.Value = _upcomingProgram.Duration.Hours; _spinMinutesDuration.Value = _upcomingProgram.Duration.Minutes; } else { //default duration = 1 hour _spinHoursDuration.Value = 1; _spinMinutesDuration.Value = 0; } }
private void UpdateChannels() { Schedule schedule = null; bool channelFound = false; int channelIndex = 0; int groupIndex = 0; if (_upcomingProgram != null) { schedule = SchedulerAgent.GetScheduleById(_upcomingProgram.ScheduleId); if (schedule != null) { _channelType = _upcomingProgram.Channel.ChannelType; } } List <ChannelGroup> groups = new List <ChannelGroup>(PluginMain.Navigator.GetGroups(_channelType)); if (_spinGroup.GetLabel() == "" || _spinGroup.GetLabel() == GUILocalizeStrings.Get(2014)) { _spinGroup.Reset(); foreach (ChannelGroup group in groups) { _spinGroup.AddLabel(group.GroupName, 0); } } //based on name but I don't know anything better string groupName = _spinGroup.GetLabel(); _spinChannel.Reset(); foreach (ChannelGroup group in groups) { if (group.GroupName == groupName || (channelFound == false && schedule != null)) { foreach (Channel chan in SchedulerAgent.GetChannelsInGroup(group.ChannelGroupId, true)) { _spinChannel.AddLabel(chan.DisplayName, 0); if (!channelFound && schedule != null) { if (_upcomingProgram.Channel.ChannelId == chan.ChannelId) { channelFound = true; } channelIndex++; } } } if (!channelFound) { groupIndex++; } } if (!channelFound && schedule != null) { // channel not found in groups, create a "unknown group" for this channel _spinGroup.AddLabel(GUILocalizeStrings.Get(2014), 0); _spinGroup.Value = groupIndex; _spinChannel.Reset(); _spinChannel.AddLabel(_upcomingProgram.Channel.DisplayName, 0); } if (channelFound) { _spinChannel.Value = channelIndex - 1; _spinGroup.Value = groupIndex; } }
private void UpdateButtonStates() { Schedule sched = null; if (_upcomingProgram != null) { sched = SchedulerAgent.GetScheduleById(_upcomingProgram.ScheduleId); } if (_upcomingProgram != null && sched != null && sched.ScheduleType == ScheduleType.Recording && !_upcomingProgram.IsCancelled) { _RecordButton.Label = Utility.GetLocalizedText(TextId.DontRecord); _AlertMeButton.IsEnabled = false; } else { _RecordButton.Label = Utility.GetLocalizedText(TextId.Record); _AlertMeButton.IsEnabled = true; } if (_upcomingProgram != null && sched != null && sched.ScheduleType == ScheduleType.Alert && !_upcomingProgram.IsCancelled) { _AlertMeButton.Label = Utility.GetLocalizedText(TextId.CancelReminder); } else { _AlertMeButton.Label = Utility.GetLocalizedText(TextId.SetReminder); } _StartTimeLabel.Label = Utility.GetLocalizedText(TextId.OnDate); _SelectDaysLabel.Label = Utility.GetLocalizedText(TextId.SelectDays); if (_upcomingProgram != null && sched != null) { try { var daysofweekrule = sched.Rules.FindRuleByType(ScheduleRuleType.DaysOfWeek); if (daysofweekrule != null) { string daysofweek = daysofweekrule.Arguments[0].ToString(); if (daysofweek.Contains(ScheduleDaysOfWeek.Mondays.ToString())) { _mondayButton.Selected = true; } if (daysofweek.Contains(ScheduleDaysOfWeek.Tuesdays.ToString())) { _tuesdayButton.Selected = true; } if (daysofweek.Contains(ScheduleDaysOfWeek.Wednesdays.ToString())) { _wednesdayButton.Selected = true; } if (daysofweek.Contains(ScheduleDaysOfWeek.Thursdays.ToString())) { _thursdayButton.Selected = true; } if (daysofweek.Contains(ScheduleDaysOfWeek.Fridays.ToString())) { _fridayButton.Selected = true; } if (daysofweek.Contains(ScheduleDaysOfWeek.Saturdays.ToString())) { _saturdayButton.Selected = true; } if (daysofweek.Contains(ScheduleDaysOfWeek.Sundays.ToString())) { _sundayButton.Selected = true; } } } catch { Log.Error("ManualSchedule: error updating select buttons"); } _spinChannel.IsEnabled = false; _spinGroup.IsEnabled = false; _spinHoursDuration.IsEnabled = false; _spinMinutesDuration.IsEnabled = false; _spinStartDay.IsEnabled = false; _spinStartHour.IsEnabled = false; _spinStartMinute.IsEnabled = false; _spinStartMonth.IsEnabled = false; _spinStartYear.IsEnabled = false; _mondayButton.IsEnabled = false; _tuesdayButton.IsEnabled = false; _wednesdayButton.IsEnabled = false; _thursdayButton.IsEnabled = false; _fridayButton.IsEnabled = false; _saturdayButton.IsEnabled = false; _sundayButton.IsEnabled = false; if (sched.ScheduleType == ScheduleType.Recording && !_upcomingProgram.IsCancelled) { _KeepButton.IsEnabled = true; _PriorityButton.IsEnabled = true; } else { _KeepButton.IsEnabled = false; _PriorityButton.IsEnabled = false; } if (_upcomingProgram.IsCancelled) { _ChangeNameButton.IsEnabled = false; } else { _ChangeNameButton.IsEnabled = true; } } else { _spinChannel.IsEnabled = true; _spinGroup.IsEnabled = true; _spinHoursDuration.IsEnabled = true; _spinMinutesDuration.IsEnabled = true; _spinStartDay.IsEnabled = true; _spinStartHour.IsEnabled = true; _spinStartMinute.IsEnabled = true; _spinStartMonth.IsEnabled = true; _spinStartYear.IsEnabled = true; _mondayButton.IsEnabled = true; _tuesdayButton.IsEnabled = true; _wednesdayButton.IsEnabled = true; _thursdayButton.IsEnabled = true; _fridayButton.IsEnabled = true; _saturdayButton.IsEnabled = true; _sundayButton.IsEnabled = true; _KeepButton.IsEnabled = false; _PriorityButton.IsEnabled = false; _ChangeNameButton.IsEnabled = false; } if (_mondayButton.Selected || _tuesdayButton.Selected || _wednesdayButton.Selected || _thursdayButton.Selected || _fridayButton.Selected || _saturdayButton.Selected || _sundayButton.Selected) { _StartTimeLabel.Label = Utility.GetLocalizedText(TextId.FromDate); _recordOnce = false; } else { _StartTimeLabel.Label = Utility.GetLocalizedText(TextId.OnDate); _recordOnce = true; } Update(sched); }
private void LoadUpcomingPrograms(ScheduleSummary schedule) { GUIControl.ClearControl(GetID, _viewsList.GetID); if (schedule == null) { _isInSubDirectory = false; bool group = false; if (_groupBySchedButton != null) { group = _groupBySchedButton.Selected; } if (group) { ScheduleSummary[] schedules = SchedulerAgent.GetAllSchedules(this._channelType, _currentProgramType, true); foreach (ScheduleSummary sched in schedules) { GUIListItem item = CreateListItem(null, null, sched); _viewsList.Add(item); } } else { if (_currentProgramType == ScheduleType.Recording) { List <UpcomingRecording> upcomingRecordings = new List <UpcomingRecording>( this.ControlAgent.GetAllUpcomingRecordings(UpcomingRecordingsFilter.Recordings | UpcomingRecordingsFilter.CancelledByUser, false)); foreach (UpcomingRecording recording in upcomingRecordings) { if (recording.Program.Channel.ChannelType == this._channelType) { GUIListItem item = CreateListItem(recording.Program, recording, null); _viewsList.Add(item); } } } else { List <UpcomingProgram> upcomingPrograms = new List <UpcomingProgram>( this.SchedulerAgent.GetAllUpcomingPrograms(_currentProgramType, true)); foreach (UpcomingProgram program in upcomingPrograms) { if (program.Channel.ChannelType == this._channelType) { GUIListItem item = CreateListItem(program, null, null); _viewsList.Add(item); } } } } } else if (schedule != null) { //add prev directory folder GUIListItem item = new GUIListItem(); item.Label = _parentDirectoryLabel; item.IsFolder = true; Utils.SetDefaultIcons(item); _viewsList.Add(item); _selectedSchedule = schedule; if (_currentProgramType == ScheduleType.Recording) { UpcomingRecording[] upcomingRecordings = ControlAgent.GetUpcomingRecordings(schedule.ScheduleId, true); foreach (UpcomingRecording recording in upcomingRecordings) { item = CreateListItem(recording.Program, recording, null); _viewsList.Add(item); } } else { Schedule sched = SchedulerAgent.GetScheduleById(schedule.ScheduleId); UpcomingProgram[] upcomingPrograms = SchedulerAgent.GetUpcomingPrograms(sched, true); foreach (UpcomingProgram upcomingProgram in upcomingPrograms) { item = CreateListItem(upcomingProgram, null, null); _viewsList.Add(item); } } _isInSubDirectory = true; } string strObjects = string.Format("{0}", _viewsList.Count - (_viewsList.Count > 0 && _viewsList[0].Label == _parentDirectoryLabel ? 1 : 0)); GUIPropertyManager.SetProperty("#itemcount", strObjects); OnSort(); UpdateButtonStates(); UpdateProperties(); if (GetItemCount() > 0) { if (_isInSubDirectory) { while (m_iSelectedItemInFolder >= GetItemCount() && m_iSelectedItemInFolder > 0) { m_iSelectedItemInFolder--; } GUIControl.SelectItemControl(GetID, _viewsList.GetID, m_iSelectedItemInFolder); } else { while (m_iSelectedItem >= GetItemCount() && m_iSelectedItem > 0) { m_iSelectedItem--; } GUIControl.SelectItemControl(GetID, _viewsList.GetID, m_iSelectedItem); } } }
protected override void OnShowContextMenu() { int iItem = GetSelectedItemNo(); GUIListItem pItem = GetItem(iItem); if (pItem == null) { return; } if (pItem.IsFolder) { ScheduleSummary schedule = pItem.TVTag as ScheduleSummary; if (schedule != null) { GUIDialogMenu dlg = (GUIDialogMenu)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU); if (dlg == null) { return; } dlg.Reset(); dlg.SetHeading(schedule.Name ?? string.Empty); dlg.Add(Utility.GetLocalizedText(TextId.Settings)); if (schedule.IsActive) { dlg.Add(Utility.GetLocalizedText(TextId.CancelThisSchedule)); } else { dlg.Add(Utility.GetLocalizedText(TextId.UnCancelThisSchedule)); } dlg.Add(Utility.GetLocalizedText(TextId.DeleteThisSchedule)); dlg.DoModal(GetID); Schedule _sched = SchedulerAgent.GetScheduleById(schedule.ScheduleId); switch (dlg.SelectedLabel) { case 0: if (_sched != null) { UpcomingProgram[] programs = SchedulerAgent.GetUpcomingPrograms(_sched, true); if (programs != null && programs.Length > 0) { OnEditSchedule(programs[0]); } } break; case 1: if (_sched != null) { if (_sched.IsActive) { _sched.IsActive = false; SchedulerAgent.SaveSchedule(_sched); } else { _sched.IsActive = true; SchedulerAgent.SaveSchedule(_sched); } } break; case 2: { GUIDialogYesNo dlgYesNo = (GUIDialogYesNo)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_YES_NO); if (dlgYesNo != null) { dlgYesNo.Reset(); dlgYesNo.SetHeading(schedule.Name); dlgYesNo.SetLine(1, Utility.GetLocalizedText(TextId.DeleteThisSchedule)); dlgYesNo.SetLine(2, Utility.GetLocalizedText(TextId.AreYouSure)); dlgYesNo.SetLine(3, string.Empty); dlgYesNo.SetDefaultToYes(false); dlgYesNo.DoModal(GetID); if (dlgYesNo.IsConfirmed) { SchedulerAgent.DeleteSchedule(schedule.ScheduleId); _selectedSchedule = null; } } } break; } m_iSelectedItem = GetSelectedItemNo(); LoadUpcomingPrograms(null); } } else { UpcomingProgram upcoming = pItem.TVTag as UpcomingProgram; if (upcoming != null) { GUIDialogMenu dlg = (GUIDialogMenu)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU); if (dlg == null) { return; } dlg.Reset(); dlg.SetHeading(upcoming.Title); dlg.Add(Utility.GetLocalizedText(TextId.Settings)); dlg.Add(Utility.GetLocalizedText(TextId.Priority)); if (upcoming.IsCancelled) { if (upcoming.CancellationReason == UpcomingCancellationReason.Manual) { dlg.Add(Utility.GetLocalizedText(TextId.UncancelThisShow)); } } else { dlg.Add(Utility.GetLocalizedText(TextId.CancelThisShow)); } dlg.DoModal(GetID); switch (dlg.SelectedLabel) { case 0: // settings/information OnEditSchedule(upcoming); break; case 1: // Priority OnChangePriority(upcoming); break; case 2: // (Un)Cancel if (upcoming.IsCancelled) { this.SchedulerAgent.UncancelUpcomingProgram(upcoming.ScheduleId, upcoming.GuideProgramId, upcoming.Channel.ChannelId, upcoming.StartTime); } else { this.SchedulerAgent.CancelUpcomingProgram(upcoming.ScheduleId, upcoming.GuideProgramId, upcoming.Channel.ChannelId, upcoming.StartTime); } m_iSelectedItem = GetSelectedItemNo(); LoadUpcomingPrograms(null); break; } } } }