예제 #1
0
        public bool ExitShouldBeInterrupted(bool ret, Action exitCommand)
        {
            if (_isSaving)
            {
                var displayTask = DisplayAlert("Saving in progress",
                                               "Saving is in progress.\nQuitting might corrupt the archive being saved.\nDo you want to quit anyways?",
                                               "Quit", "Wait");
                displayTask.ContinueWith(task =>
                {
                    if (displayTask.Result)
                    {
                        // Switch back to player page (main page)
                        XamarinHelpers.EnsureMainThread(exitCommand);
                    }
                });
                return(true);
            }

            if (_treeMightHaveChanged)
            {
                var displayAlert = DisplayAlert("Unsaved data", "There might be unsaved data.\n\nAre sure you want to quit?",
                                                "Quit", "Cancel");
                displayAlert.ContinueWith(task =>
                {
                    if (displayAlert.Result)
                    {
                        // Switch back to player page (main page)
                        XamarinHelpers.EnsureMainThread(exitCommand);
                    }
                });
                return(true);
            }
            return(false);
        }
 private void SliderOnOffsetChanged(object sender, ValueChangedEventArgs e)
 {
     OffsetChanged?.Invoke(sender, e);
     if (sender != SliderEntry)
     {
         XamarinHelpers.EnsureMainThread(() => { SliderEntry.Text = e.NewValue.ToString(CultureInfo.InvariantCulture); });
     }
 }
예제 #3
0
        private void VideoPlayerOnPositionChanged(object sender, PositionChangedEventArgs args)
        {
            var allowedOffset = _videoPlayer.AllowedOffset;

            XamarinHelpers.EnsureMainThread(() => SetVideoPosition(args.Time, allowedOffset));
        }