private void LoadState(IEnumerable <string> events) { commanderToasts.UnsubscribeToasts(); // Clear state: State.Cargo.ToList().ForEach(k => State.IncrementCargo(k.Value.Data.Name, -1 * k.Value.Count)); LastUpdate = Instant.MinValue; ApplyEventsToSate(events); ThresholdsManagerWindow.InitThresholds(State.Cargo); commanderToasts.SubscribeToasts(); if (Settings.Default.EntriesHighlighted == null) { Settings.Default.EntriesHighlighted = new StringCollection(); Settings.Default.Save(); } var highlightedEntries = Settings.Default.EntriesHighlighted.Cast <string>().OrderBy(s => s).ToList(); var entries = State.Cargo.Select(kv => kv.Value).OrderBy(e => e.Data.Name).ToList(); for (int i = 0, j = 0; i < entries.Count && j < highlightedEntries.Count; i++) { if (entries[i].Data.Name == highlightedEntries[j]) { entries[i].Highlighted = true; j++; } } }
private void LoadState(IEnumerable <string> events) { commanderToasts?.UnsubscribeToasts(); State.InitLoad(); // Clear state: State.Cargo.ToList().ForEach(k => State.IncrementCargo(k.Value.Data.Name, -1 * k.Value.Count)); LastUpdate = Instant.MinValue; ApplyEventsToSate(events); ThresholdsManagerWindow.InitThresholds(State.Cargo); commanderToasts?.SubscribeToasts(); State.Cargo.RefreshSort(); State.CompleteLoad(); }
private void ThresholdToastCheck(string item) { if (!SettingsManager.ThresholdWarningEnabled) { return; } var translator = Languages.Instance; if (!state.Cargo.ContainsKey(item)) { return; } var entry = state.Cargo[item]; if (entry.Threshold.HasValue && entry.Threshold <= entry.Count) { try { var toastXml = ToastNotificationManager.GetTemplateContent(ToastTemplateType.ToastImageAndText02); var stringElements = toastXml.GetElementsByTagName("text"); var content = string.Format( translator.Translate( "Reached {0} {1} - threshold set at {2} (click this to configure your thresholds)"), entry.Count, translator.Translate(entry.Data.Name), entry.Threshold); stringElements[0].AppendChild(toastXml.CreateTextNode(translator.Translate("Threshold Reached!"))); stringElements[1].AppendChild(toastXml.CreateTextNode(content)); var imagePath = "file:///" + Path.GetFullPath("Resources/Images/elite-dangerous-clean.png"); var imageElements = toastXml.GetElementsByTagName("image"); imageElements[0].Attributes.GetNamedItem("src").NodeValue = imagePath; var toast = new ToastNotification(toastXml); toast.Activated += (o, e) => Application.Current.Dispatcher.Invoke(() => ThresholdsManagerWindow.ShowThresholds(translator, state.Cargo, commanderName)); ToastNotificationManager.CreateToastNotifier("EDEngineer").Show(toast); } catch (Exception) { // silently fail for platforms not supporting toasts } } }
private void MainWindowLoaded(object sender, RoutedEventArgs args) { var dimensions = SettingsManager.Dimensions; Width = dimensions.Width; Left = dimensions.Left; Top = dimensions.Top; Height = dimensions.Height; if (dimensions.LeftSideWidth != 1 || dimensions.RightSideWidth != 1) { ContentGrid.ColumnDefinitions[0].Width = new GridLength(dimensions.LeftSideWidth, GridUnitType.Star); ContentGrid.ColumnDefinitions[2].Width = new GridLength(dimensions.RightSideWidth, GridUnitType.Star); } if (AllowsTransparency) { ToggleEditMode.Content = viewModel.Languages.Translate("Unlock Window"); MainSplitter.Visibility = Visibility.Hidden; } else { ToggleEditMode.Content = viewModel.Languages.Translate("Lock Window"); ResetWindowPositionButton.Visibility = Visibility.Visible; } icon = TrayIconManager.Init((o, e) => ShowWindow(), (o, e) => Close(), ConfigureShortcut, (o, e) => ToggleEditModeChecked(o, null), (o, e) => ResetWindowPositionButtonClicked(o, null), (o, e) => Languages.PromptLanguage(viewModel.Languages), () => serverBridge.Toggle(), serverBridge.Running, (o, e) => { HideWindow(); ReleaseNotesManager.ShowReleaseNotes(); }, Properties.Settings.Default.CurrentVersion, (o, e) => { HideWindow(); ThresholdsManagerWindow.ShowThresholds(viewModel.Languages, viewModel.CurrentCommander.Value.State.Cargo, viewModel.CurrentCommander.Key); }); try { var shortcut = SettingsManager.Shortcut; var hotKey = (Keys) new KeysConverter().ConvertFromString(shortcut); HotkeyManager.RegisterHotKey(this, hotKey); } catch { SettingsManager.Shortcut = null; ConfigureShortcut(this, EventArgs.Empty); ShowWindow(); } Blueprints.UpdateLayout(); ShoppingList.UpdateLayout(); }