public override void OnHidden() { base.OnHidden(); AudioToolbar.AudioPlayer.AudioCompleted -= AudioPlayerOnAudioCompleted; //inform the audio toolbar to clean up AudioToolbar.OnHidden(); }
public override void OnRevealed() { base.OnRevealed(); AdjustToolbarColor(); AudioToolbar.AudioPlayer.AudioCompleted += AudioPlayerOnAudioCompleted; //Register audio again AudioToolbar.OnRevealed(); }
/// <summary> /// Called when the page disappears. /// </summary> public override void OnDisappearing() { WillDisappear = true; base.OnDisappearing(); AudioToolbar.AudioPlayer.AudioCompleted -= AudioPlayerOnAudioCompleted; //inform the audio toolbar to clean up AudioToolbar.OnDisappearing(); }
/// <summary> /// Translates the audio toolbar on top of the screen or outside of it dependent on whether the toolbar /// should be visible or not /// </summary> private void ToggleAudioBarVisibility() { if (ViewModel.AudioToolbarVisible) { AudioToolbar.TranslateTo(0, 0); } else { AudioToolbar.TranslateTo(0, -100); } }
/// <summary> /// Set the current view. /// </summary> /// <returns></returns> private async Task SetCurrentView() { // update UI Page currentPage = pages[currentViewIndex]; AudioAvailable = currentPage.Audio != null; if (!AudioAvailable) { AudioToolbarVisible = false; } AudioToolbar.SetNewAudioFile(currentPage.Audio); switch (currentPage.PageType) { case PageType.AppetizerPage: SelectedView = new AppetizerViewModel(Title, currentPage.AppetizerPage); break; case PageType.ImagePage: SelectedView = new ImageViewModel(currentPage.ImagePage, ToggleVisibilityOfNavigationButtons); break; case PageType.TextPage: SelectedView = new TextViewModel(currentPage.TextPage, ToggleVisibilityOfNavigationButtons); break; case PageType.TimeSliderPage: SelectedView = new TimeSliderViewModel(currentPage.TimeSliderPage, ToggleVisibilityOfNavigationButtons); break; } if (currentPage.AdditionalInformationPages != null && currentPage.AdditionalInformationPages.Any()) { HasAdditionalInformation = true; } else { HasAdditionalInformation = false; } //Cancel disabling navigation buttons caused by page selected before tokenSource?.Cancel(); //Toggle navigation buttons visibility for specific pages switch (currentPage.PageType) { case PageType.ImagePage: case PageType.TextPage: case PageType.TimeSliderPage: StartDelayedToggling(); break; } if (currentPage.Audio != null) { // ask if user wants autoamtic audio playback if (Settings.RepeatHintAudio) { var result = await Navigation.DisplayAlert(Strings.ExhibitDetailsPage_Hinweis, Strings.ExhibitDetailsPage_AudioPlay, Strings.ExhibitDetailsPage_AgreeFeature, Strings.ExhibitDetailsPage_DisagreeFeature); Settings.AutoStartAudio = result; Settings.RepeatHintAudio = false; } //play automatic audio, if wanted if (Settings.AutoStartAudio) { AudioToolbar.AudioPlayer.Play(); } } }