Beispiel #1
0
        public MainViewModel(Global global)
        {
            _global = global;

            _dialogScreen = new DialogScreenViewModel();

            var navigationState = new NavigationStateViewModel(() => this, () => _dialogScreen, () => this);

            Network = global.Network;

            _currentDialog = null;

            _isMainContentEnabled  = true;
            _isDialogScreenEnabled = true;

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

            var walletManager = new WalletManagerViewModel(navigationState, global.WalletManager, global.UiConfig);

            var addWalletPage = new AddWalletPageViewModel(navigationState, global.LegalDocuments, global.WalletManager, global.BitcoinStore, global.Network);

            _navBar = new NavBarViewModel(navigationState, Router, walletManager, addWalletPage);

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

            this.WhenAnyValue(x => x.CurrentDialog !.IsDialogOpen)
            .ObserveOn(RxApp.MainThreadScheduler)
            .Subscribe(x => IsDialogScreenEnabled = !x);
        }
Beispiel #2
0
        public MainViewModel(Global global)
        {
            _global = global;

            Network = global.Network;

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

            NavBar = new NavBarViewModel(this, Router, global.WalletManager, global.UiConfig);
        }
        public MainViewModel(Global global)
        {
            _global = global;
            Network = global.Network;

            _currentDialog = null;

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

            var walletManager = new WalletManagerViewModel(this, global.WalletManager, global.UiConfig);

            var addWalletPage = new AddWalletPageViewModel(this, global.WalletManager, global.BitcoinStore, global.Network);

            _navBar = new NavBarViewModel(this, Router, walletManager, addWalletPage);
        }
Beispiel #4
0
        public MainViewModel(Global global)
        {
            _global = global;

            Network = global.Network;

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

            Dispatcher.UIThread.Post(async() =>
            {
                await Task.Delay(5000);

                Router.Navigate.Execute(new HomeViewModel(this));
            });

            Observable.FromEventPattern(Router.NavigationStack, nameof(Router.NavigationStack.CollectionChanged))
            .ObserveOn(RxApp.MainThreadScheduler)
            .Subscribe(_ => IsBackButtonVisible = Router.NavigationStack.Count > 1);

            Router.Navigate.Execute(new HomeViewModel(this));             // for testing
            Router.Navigate.Execute(new HomeViewModel(this));             // for testing
        }
Beispiel #5
0
 public App(Global global, Func <Task> backendInitialiseAsync) : this()
 {
     _global = global;
     _backendInitialiseAsync = backendInitialiseAsync;
 }
Beispiel #6
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);
            }
        }
Beispiel #7
0
 public App(Global global) : this()
 {
     _global = global;
 }
Beispiel #8
0
        public MainViewModel(Global global)
        {
            _global = global;

            _dialogScreen = new DialogScreenViewModel(800, 700);

            _fullScreen = new DialogScreenViewModel(double.PositiveInfinity, double.PositiveInfinity, NavigationTarget.FullScreen);

            MainScreen = new TargettedNavigationStack(NavigationTarget.HomeScreen);

            NavigationState.Register(MainScreen, DialogScreen, FullScreen, () => this);

            Network = global.Network;

            _currentDialog = null;

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

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

            _walletManager = new WalletManagerViewModel(global.WalletManager, global.UiConfig);

            _addWalletPage = new AddWalletPageViewModel(
                global.LegalDocuments,
                global.WalletManager,
                global.BitcoinStore,
                global.Network);

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

            _navBar = new NavBarViewModel(MainScreen, _walletManager);

            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);

            this.WhenAnyValue(x => x.CurrentDialog !.IsDialogOpen)
            .ObserveOn(RxApp.MainThreadScheduler)
            .Subscribe(x =>
            {
                IsFullScreenEnabled   = !x;
                IsDialogScreenEnabled = !x;
            });

            _walletManager.WhenAnyValue(x => x.Items.Count)
            .Subscribe(x => _navBar.IsHidden = x == 0);

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