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();
        }
Пример #4
0
 /// <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();
                }
            }
        }