public PasswordManagerViewModel(IWindowsManager windowsManager, IQrScannerHelper qrScannerHelper, IMetaPubSub metaMessenger, IActiveDevice activeDevice, ISettingsManager <ApplicationSettings> settingsManager) { this.windowsManager = windowsManager; this.qrScannerHelper = qrScannerHelper; _metaMessenger = metaMessenger; _settingsManager = settingsManager; _metaMessenger.Subscribe <ActiveDeviceChangedMessage>(OnActiveDeviceChanged); _metaMessenger.Subscribe <AddAccountForAppMessage>(OnAddAccountForApp); this.WhenAnyValue(x => x.SearchQuery) .Throttle(TimeSpan.FromMilliseconds(100)) .Where(term => null != term) .DistinctUntilChanged() .InvokeCommand(FilterAccountCommand); this.WhenAnyValue(x => x.Device) .Where(x => null != x) .Subscribe(d => OnDeviceChanged()); this.WhenAnyValue(x => x.SelectedAccount) .InvokeCommand(CancelCommand); // Todo: On update, preserve selection or if unable, clear it //Observable.FromEventPattern<NotifyCollectionChangedEventArgs>(Accounts, nameof(ObservableCollection<string>.CollectionChanged)) // .Subscribe(change => SelectedAccount = Accounts.FirstOrDefault()); Device = activeDevice.Device != null ? new DeviceViewModel(activeDevice.Device) : null; }
public MenuFactory(IStartupHelper startupHelper , IWindowsManager windowsManager, IAppHelper appHelper, ISettingsManager <ApplicationSettings> settingsManager, ISupportMailContentGenerator supportMailContentGenerator, IServiceProxy serviceProxy, IActiveDevice activeDevice, IMetaPubSub metaMessenger) { _startupHelper = startupHelper; _windowsManager = windowsManager; _appHelper = appHelper; _settingsManager = settingsManager; _supportMailContentGenerator = supportMailContentGenerator; _serviceProxy = serviceProxy; _activeDevice = activeDevice; _metaMessenger = metaMessenger; }
public UserActionHandler( IMetaPubSub metaMessenger, IActiveDevice activeDevice, InputLogin inputLogin, InputPassword inputPassword, InputOtp inputOtp, ISettingsManager <ApplicationSettings> appSettingsManager, IHotkeyManager hotkeyManager, IWindowsManager windowsManager, ILog log) : base(nameof(UserActionHandler), log) { _metaMessenger = metaMessenger; _activeDevice = activeDevice; _inputLogin = inputLogin; _inputPassword = inputPassword; _inputOtp = inputOtp; _appSettingsManager = appSettingsManager; _hotkeyManager = hotkeyManager; _windowsManager = windowsManager; _metaMessenger.Subscribe <HotkeyPressedMessage>(HotkeyPressedMessageHandler); _metaMessenger.Subscribe <ButtonPressedMessage>(ButtonPressedMessageHandler); }
public MainViewModel(IDeviceManager deviceManager, IMenuFactory menuFactory, IActiveDevice activeDevice, IMetaPubSub metaMessenger, ViewModelLocator viewModelLocator, IAppHelper appHelper, SoftwareUnlockSettingViewModel softwareUnlock) { _deviceManager = deviceManager; _menuFactory = menuFactory; _activeDevice = activeDevice; _viewModelLocator = viewModelLocator; _appHelper = appHelper; _softwareUnlock = softwareUnlock; InitMenu(); _deviceManager.DevicesCollectionChanged += Devices_CollectionChanged; _activeDevice.ActiveDeviceChanged += ActiveDevice_ActiveDeviceChanged; metaMessenger.Subscribe <OpenPasswordManagerMessage>((p) => { MenuPasswordManager.IsChecked = true; return(Task.CompletedTask); }); metaMessenger.Subscribe <OpenHideezKeyPageMessage>((p) => { MenuHardwareKeyPage.IsChecked = true; return(Task.CompletedTask); }); metaMessenger.Subscribe <OpenMobileAuthenticatorPageMessage>((p) => { MenuSoftwareKeyPage.IsChecked = true; return(Task.CompletedTask); }); }
public DeviceSettingsPageViewModel(IServiceProxy serviceProxy, IWindowsManager windowsManager, IActiveDevice activeDevice, IMetaPubSub metaMessenger) { this.serviceProxy = serviceProxy; this.windowsManager = windowsManager; _metaMessenger = metaMessenger; _metaMessenger.Subscribe <ActiveDeviceChangedMessage>(OnActiveDeviceChanged); Сonnected = new StateControlViewModel { Name = "Status.Device.Сonnected", Visible = true, }; Initialized = new StateControlViewModel { Name = "Status.Device.Initialized", Visible = true, }; Authorized = new StateControlViewModel { Name = "Status.Device.Authorized", Visible = true, }; StorageLoaded = new StateControlViewModel { Name = "Status.Device.StorageLoaded", Visible = true, }; Indicators.Add(Сonnected); Indicators.Add(Initialized); Indicators.Add(Authorized); Indicators.Add(StorageLoaded); this.WhenAnyValue(x => x.Device).Where(d => d != null).Subscribe(d => { PropertyChangedEventManager.AddListener(Device, this, nameof(Device.IsConnected)); PropertyChangedEventManager.AddListener(Device, this, nameof(Device.IsInitialized)); PropertyChangedEventManager.AddListener(Device, this, nameof(Device.IsAuthorized)); PropertyChangedEventManager.AddListener(Device, this, nameof(Device.IsStorageLoaded)); Сonnected.State = StateControlViewModel.BoolToState(Device.IsConnected); Initialized.State = StateControlViewModel.BoolToState(Device.IsInitialized); Authorized.State = StateControlViewModel.BoolToState(Device.IsAuthorized); StorageLoaded.State = StateControlViewModel.BoolToState(Device.IsStorageLoaded); }); this.WhenAnyValue(x => x.LockProximity, x => x.UnlockProximity).Where(t => t.Item1 != 0 && t.Item2 != 0).Subscribe(o => ProximityHasChanges = true); Device = activeDevice.Device != null ? new DeviceViewModel(activeDevice.Device) : null; }