Exemplo n.º 1
0
        public LegalDocumentsViewModel(LegalChecker legalChecker)
        {
            Title        = "Terms and Conditions";
            NextCommand  = BackCommand;
            LegalChecker = legalChecker;

            this.WhenAnyValue(x => x.Content)
            .ObserveOn(RxApp.MainThreadScheduler)
            .Subscribe(content => IsBusy = content is null);
        }
 public WalletManagerViewModel(WalletManager walletManager, UiConfig uiConfig, BitcoinStore bitcoinStore,
                               LegalChecker legalChecker, TransactionBroadcaster broadcaster)
 {
     WalletManager            = walletManager;
     BitcoinStore             = bitcoinStore;
     LegalChecker             = legalChecker;
     _walletDictionary        = new Dictionary <Wallet, WalletViewModelBase>();
     _walletActionsDictionary = new Dictionary <WalletViewModelBase, List <NavBarItemViewModel> >();
     _actions = new ObservableCollection <NavBarItemViewModel>();
     _wallets = new ObservableCollection <WalletViewModelBase>();
     _loggedInAndSelectedAlwaysFirst = true;
     _transactionBroadcaster         = broadcaster;
        public TermsAndConditionsViewModel(LegalChecker legalChecker, RoutableViewModel next)
        {
            ViewTermsCommand = ReactiveCommand.Create(
                () =>
            {
                if (legalChecker.TryGetNewLegalDocs(out _))
                {
                    var legalDocs = new LegalDocumentsViewModel(legalChecker);
                    Navigate().To(legalDocs);
                }
            });

            NextCommand = ReactiveCommand.CreateFromTask(
                async() =>
            {
                await legalChecker.AgreeAsync();
                Navigate().To(next, NavigationMode.Clear);
            },
                this.WhenAnyValue(x => x.IsAgreed).ObserveOn(RxApp.MainThreadScheduler));
        }
Exemplo n.º 4
0
        public MainViewModel(Global global)
        {
            _global       = global;
            _legalChecker = global.LegalChecker;

            _dialogScreen = new DialogScreenViewModel();

            _fullScreen = new DialogScreenViewModel(NavigationTarget.FullScreen);

            _compactDialogScreen = new DialogScreenViewModel(NavigationTarget.CompactDialogScreen);

            MainScreen = new TargettedNavigationStack(NavigationTarget.HomeScreen);

            NavigationState.Register(MainScreen, DialogScreen, FullScreen, CompactDialogScreen);

            Network = global.Network;

            _isMainContentEnabled  = true;
            _isDialogScreenEnabled = true;
            _isFullScreenEnabled   = true;

            _statusBar = new StatusBarViewModel(
                global.DataDir,
                global.Network,
                global.Config,
                global.HostedServices,
                global.BitcoinStore.SmartHeaderChain,
                global.Synchronizer);

            _walletManagerViewModel = new WalletManagerViewModel(global.WalletManager, global.UiConfig, _global.BitcoinStore, _global.LegalChecker, _global.TransactionBroadcaster);

            _addWalletPage = new AddWalletPageViewModel(
                _walletManagerViewModel,
                global.BitcoinStore);

            _settingsPage = new SettingsPageViewModel(global.Config, global.UiConfig);
            _privacyMode  = new PrivacyModeViewModel(global.UiConfig);
            _searchPage   = new SearchPageViewModel();

            _navBar = new NavBarViewModel(MainScreen, _walletManagerViewModel);

            NavigationManager.RegisterType(_navBar);

            RegisterCategories(_searchPage);
            RegisterViewModels();

            RxApp.MainThreadScheduler.Schedule(async() => await _navBar.InitialiseAsync());

            _searchPage.Initialise();

            this.WhenAnyValue(x => x.DialogScreen !.IsDialogOpen)
            .ObserveOn(RxApp.MainThreadScheduler)
            .Subscribe(x => IsMainContentEnabled = !x);

            this.WhenAnyValue(x => x.FullScreen !.IsDialogOpen)
            .ObserveOn(RxApp.MainThreadScheduler)
            .Subscribe(x => IsMainContentEnabled = !x);

            _walletManagerViewModel.WhenAnyValue(x => x.Items.Count, x => x.Actions.Count)
            .Subscribe(x => _navBar.IsHidden = x.Item1 == 0 && x.Item2 == 0);

            if (!_walletManagerViewModel.WalletManager.AnyWallet(_ => true))
            {
                MainScreen.To(_addWalletPage);
            }
        }