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); }); } }
private void VideoPlayerOnPositionChanged(object sender, PositionChangedEventArgs args) { var allowedOffset = _videoPlayer.AllowedOffset; XamarinHelpers.EnsureMainThread(() => SetVideoPosition(args.Time, allowedOffset)); }