private void AddSwitchToSuggestions() { var firstElement = new ApplicationRobotAction(ApplicationRobotActionTarget.Suggestion, 0, 0, false); var actions = new List <ApplicationRobotAction>(); for (var index = 1; index < _model.SuggestionLists.Count; index++) { var element = new ApplicationRobotAction(ApplicationRobotActionTarget.Suggestion, index, 0, false); actions.Add(element); } for (var index = 0; index < _model.SuggestionLists.Count; index++) { var list = _model.SuggestionLists[index]; var count = list.Count(); if (1 < count) { var element = new ApplicationRobotAction(ApplicationRobotActionTarget.Suggestion, index, list.Count() - 1, false); actions.Add(element); } } AddRectangle(() => { _switchTarget = ApplicationRobotActionTarget.Suggestion; ShowSwitchInterface(); }, firstElement, actions.ToArray()); }
private async Task ShowSwitchInterfaceAsync() { await Task.Delay(200); _switchTarget = ApplicationRobotActionTarget.Interstitial; ShowSwitchInterface(); }
private void AddSwitchToHead() { var headElement = new ApplicationRobotAction(ApplicationRobotActionTarget.Head, 0, 0, false); var tailElement = new ApplicationRobotAction(ApplicationRobotActionTarget.Tail, _model.TailItems.Count - 1, 0, false); AddRectangle(() => { _switchTarget = ApplicationRobotActionTarget.Head; ShowSwitchInterface(); }, headElement, tailElement); }
/// <summary> /// /// </summary> /// <param name="target"></param> /// <param name="index"></param> /// <param name="subIndex"></param> /// <param name="isComplete"></param> public ApplicationRobotAction(ApplicationRobotActionTarget target, int index, int subIndex, bool isComplete) { Debug.Assert(0 <= index); Debug.Assert(target == ApplicationRobotActionTarget.Suggestion || subIndex == 0); Target = target; Index = index; SubIndex = subIndex; IsComplete = isComplete; }
internal SwitchInterface(IApplicationHost host, ISuperPanel <FrameworkElement, Size, Rect> panel, Canvas targetCanvas) { _host = host; _panel = panel; _model = host.Model; SwitchPanel = targetCanvas; _switchTimer.Tick += OnSwitchTimerTick; _model.ApplicationModelUpdate += OnApplicationModelUpdate; Debug.WriteLine("Enter switch mode"); _switchTarget = ApplicationRobotActionTarget.Interstitial; ShowSwitchInterface(); }
private void ShowSwitchInterface() { _switchClickCount = 0; _switchTimer.Interval = TimeSpan.FromSeconds(10); _switchTimer.Start(); SwitchPanel.Children.Clear(); _targets.Clear(); switch (_switchTarget) { case ApplicationRobotActionTarget.Head: { AddSwitchToInterstitials(); AddSwitchToSuggestions(); for (var index = 0; index < _model.HeadItems.Count; index++) { var element = new ApplicationRobotAction(ApplicationRobotActionTarget.Head, index, 0, false); AddRectangle(element); } for (var index = 0; index < _model.TailItems.Count; index++) { var element = new ApplicationRobotAction(ApplicationRobotActionTarget.Tail, index, 0, false); AddRectangle(element); } } break; case ApplicationRobotActionTarget.Tail: { AddSwitchToSuggestions(); var list = _model.SuggestionLists[_switchSuggestionListsIndex]; for (var subIndex = 0; subIndex < list.Count(); subIndex++) { var element = new ApplicationRobotAction(ApplicationRobotActionTarget.Suggestion, _switchSuggestionListsIndex, subIndex, false); AddRectangle(element); } } break; case ApplicationRobotActionTarget.Suggestion: { AddSwitchToHead(); AddSwitchToInterstitials(); for (var index = 0; index < _model.SuggestionLists.Count; index++) { var element = new ApplicationRobotAction(ApplicationRobotActionTarget.Suggestion, index, 0, false); var list = _model.SuggestionLists[index]; var count = list.Count(); if (1 < count) { var lastElement = new ApplicationRobotAction(ApplicationRobotActionTarget.Suggestion, index, count - 1, false); var uncapturedIndex = index; AddRectangle(() => { _switchTarget = ApplicationRobotActionTarget.Tail; _switchSuggestionListsIndex = uncapturedIndex; ShowSwitchInterface(); }, element, lastElement); } else { AddRectangle(element); } } } break; case ApplicationRobotActionTarget.Interstitial: default: { Debug.Assert(_switchTarget == ApplicationRobotActionTarget.Interstitial); AddSwitchToSuggestions(); AddSwitchToHead(); for (var index = 0; index < _model.SuggestionInterstitials.Count; index++) { var element = new ApplicationRobotAction(ApplicationRobotActionTarget.Interstitial, index, 0, false); AddRectangle(element); } } break; } }
private void AddSwitchToInterstitials() { AddRectangle(() => { _switchTarget = ApplicationRobotActionTarget.Interstitial; ShowSwitchInterface(); }, new ApplicationRobotAction(ApplicationRobotActionTarget.Interstitial, 0, 0, false), new ApplicationRobotAction(ApplicationRobotActionTarget.Interstitial, _model.SuggestionInterstitials.Count - 1, 0, false)); }
private ApplicationRobotAction(ApplicationRobotActionTarget target, int index) : this(target, index, 0, false) { }
private ApplicationRobotAction(ApplicationRobotActionTarget target, int index, bool isComplete) : this(target, index, 0, isComplete) { }