private async Task <SettingsWindowVM> SetupViewModels() { var albumArt = new AlbumArtVM(_albumArtModel, _trackModel); var albumArtPopup = new AlbumArtPopupVM(_albumArtPopupModel, _trackModel); var audioBand = new AudioBandVM(_audioBandModel); var customLabels = new CustomLabelsVM(_customLabelsModel, this); var nextButton = new NextButtonVM(_nextButtonModel); var playPauseButton = new PlayPauseButtonVM(_playPauseButtonModel, _trackModel); var prevButton = new PreviousButtonVM(_previousButtonModel); var progressBar = new ProgressBarVM(_progressBarModel, _trackModel); await _uiDispatcher.InvokeAsync(() => InitializeBindingSources(albumArtPopup, albumArt, audioBand, nextButton, playPauseButton, prevButton, progressBar)); return(new SettingsWindowVM { AlbumArtPopupVM = albumArtPopup, ProgressBarVM = progressBar, PreviousButtonVM = prevButton, PlayPauseButtonVM = playPauseButton, NextButtonVM = nextButton, AudioBandVM = audioBand, AboutVm = new AboutVM(), AlbumArtVM = albumArt, CustomLabelsVM = customLabels, AudioSourceSettingsVM = new ObservableCollection <AudioSourceSettingsVM>() }); }
/// <summary> /// Initializes a new instance of the <see cref="SettingsWindow"/> class /// with the settings viewmodel. /// </summary> /// <param name="vm">The settings window viewmodel.</param> /// <param name="audioBandVM">The audioband view model</param> /// <param name="albumArtPopupVM">The album art popup view model</param> /// <param name="albumArtVM">The album art view model</param> /// <param name="customLabelsVM">The custom labels view model</param> /// <param name="aboutVm">The about dialog view model</param> /// <param name="nextButtonVM">The next button view model</param> /// <param name="playPauseButtonVM">The play/pause button view model</param> /// <param name="previousButtonVM">The previous button view model</param> /// <param name="progressBarVM">The progress bar view model</param> public SettingsWindow( SettingsWindowVM vm, AudioBandVM audioBandVM, AlbumArtPopupVM albumArtPopupVM, AlbumArtVM albumArtVM, CustomLabelsVM customLabelsVM, AboutVM aboutVm, NextButtonVM nextButtonVM, PlayPauseButtonVM playPauseButtonVM, PreviousButtonVM previousButtonVM, ProgressBarVM progressBarVM) { AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve; ElementHost.EnableModelessKeyboardInterop(this); CancelCloseCommand = new RelayCommand(CancelCloseCommandOnExecute); SaveCloseCommand = new RelayCommand(SaveCloseCommandOnExecute); AudioBandVM = audioBandVM; AlbumArtPopupVM = albumArtPopupVM; AlbumArtVM = albumArtVM; CustomLabelsVM = customLabelsVM; AboutVM = aboutVm; NextButtonVM = nextButtonVM; PlayPauseButtonVM = playPauseButtonVM; PreviousButtonVM = previousButtonVM; ProgressBarVM = progressBarVM; InitializeComponent(); DataContext = vm; _vm = vm; Activated += OnActivated; }
private void Application_Startup(object sender, StartupEventArgs e) { Graph_VM = new GraphVM(new GraphModel()); Clock_VM = new ClockVM(new ClockModel()); MediaPlayer_VM = new MediaPlayerVM(new MediaPlayerModel(new Client())); ProgressBar_VM = new ProgressBarVM(new ProgressBarModel()); JoystickBars_VM = new JoystickBarsVM(new JoystickBarsModel()); // load names Load_Names(); // event - observer pattern Load_Communication(); }
private void InitializeBindingSources( AlbumArtPopupVM albumArtPopupVm, AlbumArtVM albumartVm, AudioBandVM audioBandVm, NextButtonVM nextButtonVm, PlayPauseButtonVM playPauseButtonVm, PreviousButtonVM previousButtonVm, ProgressBarVM progressBarVm) { AlbumArtPopupVMBindingSource.DataSource = albumArtPopupVm; AlbumArtVMBindingSource.DataSource = albumartVm; AudioBandVMBindingSource.DataSource = audioBandVm; NextButtonVMBindingSource.DataSource = nextButtonVm; PlayPauseButtonVMBindingSource.DataSource = playPauseButtonVm; PreviousButtonVMBindingSource.DataSource = previousButtonVm; ProgressBarVMBindingSource.DataSource = progressBarVm; }
private async Task <SettingsWindowVM> SetupViewModels() { var albumArt = new AlbumArtVM(_albumArtModel, _trackModel); var albumArtPopup = new AlbumArtPopupVM(_albumArtPopupModel, _trackModel); var audioBand = new AudioBandVM(_audioBandModel); var customLabels = new CustomLabelsVM(_customLabelsModel, this); var nextButton = new NextButtonVM(_nextButtonModel); var playPauseButton = new PlayPauseButtonVM(_playPauseButtonModel, _trackModel); var prevButton = new PreviousButtonVM(_previousButtonModel); var progressBar = new ProgressBarVM(_progressBarModel, _trackModel); var allAudioSourceSettings = new List <AudioSourceSettingsVM>(); foreach (var audioSource in _audioSourceLoader.AudioSources) { var matchingSetting = _audioSourceSettingsModel.FirstOrDefault(s => s.AudioSourceName == audioSource.Name); if (matchingSetting != null) { allAudioSourceSettings.Add(new AudioSourceSettingsVM(matchingSetting, audioSource)); } else { var newSettings = new AudioSourceSettings { AudioSourceName = audioSource.Name }; _audioSourceSettingsModel.Add(newSettings); allAudioSourceSettings.Add(new AudioSourceSettingsVM(newSettings, audioSource)); } } await _uiDispatcher.InvokeAsync(() => InitializeBindingSources(albumArtPopup, albumArt, audioBand, nextButton, playPauseButton, prevButton, progressBar)); return(new SettingsWindowVM { AlbumArtPopupVM = albumArtPopup, ProgressBarVM = progressBar, PreviousButtonVM = prevButton, PlayPauseButtonVM = playPauseButton, NextButtonVM = nextButton, AudioBandVM = audioBand, AboutVm = new AboutVM(), AlbumArtVM = albumArt, CustomLabelsVM = customLabels, AudioSourceSettingsVM = allAudioSourceSettings }); }
/// <summary> /// Will navigate to Dashboard page after this LoggedInProcess /// </summary> /// <param name="loginResponse"></param> /// <returns></returns> public async Task LoggedInProcess(Framework.WebApi.AuthenticationResponse loginResponse) { ProgressBarVM.Initialization(Color.Orange, 4); Elmah.MVVMLightViewModels.WebServiceConfig.Token = loginResponse.Token; // 1.1. Theme var theme = Framework.Xaml.ApplicationPropertiesHelper.GetTheme(); if (theme != Framework.Themes.Theme.Light) { ThemeSelectorVM.SwitchTheme(theme); } ProgressBarVM.Forward(); await AppVM.GetCurrentLocation(); ProgressBarVM.Forward(); // 1.2. Token: Elmah.MVVMLightViewModels.WebServiceConfig.Token = loginResponse.Token; // 2.1. CacheLists { var allCacheDataKey = Caching.ListsHelper.BuildCacheDataKey(Elmah.EntityContracts.Enums.CacheLists.__ALL__.ToString()); if (!Framework.Xaml.ApplicationPropertiesHelper.HasTableCachingData(allCacheDataKey)) { await Caching.ListsHelper.GetAndCacheLists(); } else { var cacheDataSetting = Framework.Xaml.ApplicationPropertiesHelper.GetTableCachingData(allCacheDataKey); if (cacheDataSetting.ShouldRefresh) { await Caching.ListsHelper.GetAndCacheLists(); } } } ProgressBarVM.Forward(); //// 2.2.GetAndCacheYourData //await NTierOnTime.MVVMLightViewModels.YourDataHelper.GetAndCacheYourData(); ProgressBarVM.Forward(); //await BusinessNavigationVM.InitializeActionItems(); if (loginResponse.LoggedInSource == Framework.WebApi.LoggedInSource.LogInPage || loginResponse.LoggedInSource == Framework.WebApi.LoggedInSource.AutoLogIn) { MessagingCenter.Send <Elmah.XamarinForms.ViewModels.DashboardVM, long>(DashboardVM, Elmah.XamarinForms.ViewModels.DashboardVM.MessageTitle_LoadData, loginResponse.EntityID.Value); App.Current.MainPage = new Elmah.XamarinForms.AppShell(); } else if (loginResponse.LoggedInSource == Framework.WebApi.LoggedInSource.RegisterPage) { // TODO: you can goto Wizard page here, after registed a new account. //NavigationVM.Person.SendMessage_Init_TabDashboard(new NTierOnTime.DataSourceEntities.PersonIdentifier { EntityID = loginResponse.EntityID.Value }); //App.Current.MainPage = new NavigationPage(new NTierOnTime.XamarinForms.Pages.Settings.PersonWizardPage { PersonID = loginResponse.EntityID?.ToString() }); } // 3.1. CheckAllPermissions //await PermissionHelper.I.CheckAllPermissions(); }