Example #1
0
        public SettingsViewModel(IUILanguageProvider uiLanguageProvider,
                                 SidekickSettings sidekickSettings,
                                 INativeKeyboard nativeKeyboard,
                                 ILeagueDataService leagueDataService,
                                 IKeybindEvents keybindEvents)
        {
            this.uiLanguageProvider = uiLanguageProvider;
            this.sidekickSettings   = sidekickSettings;
            this.nativeKeyboard     = nativeKeyboard;
            this.keybindEvents      = keybindEvents;
            this.leagueDataService  = leagueDataService;

            Settings = new SidekickSettings();
            AssignValues(sidekickSettings, Settings);

            Keybinds.Clear();
            Settings.GetType()
            .GetProperties()
            .Where(x => x.Name.StartsWith("Key"))
            .ToList()
            .ForEach(x => Keybinds.Add(x.Name, x.GetValue(Settings).ToString()));

            WikiOptions.Add("POE Wiki", WikiSetting.PoeWiki.ToString());
            WikiOptions.Add("POE Db", WikiSetting.PoeDb.ToString());
            this.leagueDataService.Leagues.ForEach(x => LeagueOptions.Add(x.Id, x.Text));
            uiLanguageProvider.AvailableLanguages.ForEach(x => UILanguageOptions.Add(x.NativeName.First().ToString().ToUpper() + x.NativeName.Substring(1), x.Name));

            nativeKeyboard.OnKeyDown += NativeKeyboard_OnKeyDown;
        }
Example #2
0
        public PoeNinjaCache(IPoeNinjaClient client,
                             ILogger logger,
                             ILanguageProvider languageProvider,
                             ILeagueDataService leagueDataService,
                             SidekickSettings configuration)
        {
            this.client           = client;
            this.languageProvider = languageProvider;
            this.logger           = logger.ForContext(GetType());
            this.configuration    = configuration;

            leagueDataService.OnLeagueChange += async() => await RefreshData();
        }
Example #3
0
        protected override async void OnStartup(StartupEventArgs e)
        {
            Instance = this;

            base.OnStartup(e);

            AttachErrorHandlers();

            // Tooltip opened indefinitely until mouse is moved.
            ToolTipService.ShowDurationProperty.OverrideMetadata(typeof(DependencyObject), new FrameworkPropertyMetadata(int.MaxValue));

            serviceProvider = Sidekick.Startup.InitializeServices(this);

            logger            = serviceProvider.GetRequiredService <ILogger>();
            nativeProcess     = serviceProvider.GetRequiredService <INativeProcess>();
            nativeBrowser     = serviceProvider.GetRequiredService <INativeBrowser>();
            leagueDataService = serviceProvider.GetRequiredService <ILeagueDataService>();
            initializer       = serviceProvider.GetRequiredService <IInitializer>();
            viewLocator       = serviceProvider.GetRequiredService <IViewLocator>();
            settings          = serviceProvider.GetRequiredService <SidekickSettings>();

            trayIcon             = (TaskbarIcon)FindResource("TrayIcon");
            trayIcon.DataContext = serviceProvider.GetRequiredService <TrayIconViewModel>();

            await RunAutoUpdate();

            EnsureSingleInstance();

            leagueDataService.OnNewLeagues += () =>
            {
                Dispatcher.Invoke(() =>
                {
                    AdonisUI.Controls.MessageBox.Show(InitializerResources.Warn_NewLeagues, buttons: AdonisUI.Controls.MessageBoxButton.OK);
                });
            };

            if (settings.ShowSplashScreen)
            {
                initializer.OnProgress += (a) =>
                {
                    if (!viewLocator.IsOpened <SplashScreenView>())
                    {
                        Dispatcher.Invoke(() =>
                        {
                            viewLocator.Open <SplashScreenView>();
                        });
                    }
                };
            }

            initializer.OnError += (error) =>
            {
                AdonisUI.Controls.MessageBox.Show(InitializerResources.ErrorDuringInit, buttons: AdonisUI.Controls.MessageBoxButton.OK);
                base.Shutdown(1);
            };

            await initializer.Initialize();

            trayIcon.ShowBalloonTip(
                TrayResources.Notification_Title,
                string.Format(TrayResources.Notification_Message, settings.Key_CheckPrices.ToKeybindString(), settings.Key_CloseWindow.ToKeybindString()),
                trayIcon.Icon,
                largeIcon: true);

            serviceProvider.GetRequiredService <EventsHandler>();
        }
Example #4
0
 public ItemSearchSettingsViewModel(ILeagueDataService leagueDataService, IWritableOptions <ItemSearchOptions> itemSearchOptions)
 {
     this.leagueDataService = leagueDataService;
     this.itemSearchOptions = itemSearchOptions;
 }