private async void ContentWebView_OnFocused(object sender, FocusEventArgs e) { string heightString = await ContentWebView.EvaluateJavaScriptAsync("getHeight()"); bool heightParsed = double.TryParse(heightString, out _webViewHeight); if (heightParsed) { ContentWebView.HeightRequest = _webViewHeight + 25.0; } }
private async void ContentWebView_OnNavigating(object sender, WebNavigatingEventArgs e) { e.Cancel = true; string heightString = await ContentWebView.EvaluateJavaScriptAsync("getHeight()"); bool heightParsed = double.TryParse(heightString, out _webViewHeight); if (heightParsed) { ContentWebView.HeightRequest = _webViewHeight + 25.0; } }
private async void EditButton_OnClicked(object sender, EventArgs e) { if (_viewModel.EditMode) { _viewModel.EditMode = false; _viewModel.IsBusy = true; _viewModel.IsSaving = true; DateTime noteDate = new DateTime(_viewModel.DateYear, _viewModel.DateMonth, _viewModel.DateDay, _viewModel.DateHours, _viewModel.DateMinutes, 0); _viewModel.CurrentNote.CreatedDate = noteDate; _viewModel.CurrentNote.Title = _viewModel.NoteTitle; string noteContent = await ContentWebView.EvaluateJavaScriptAsync("getContent()"); noteContent = noteContent.Replace(@"\u003C", "<"); // Todo: Proper string encoding/decoding. _viewModel.CurrentNote.Content = noteContent; _viewModel.CurrentNote.Category = CategoryEntry.Text; _viewModel.CurrentNote.AccessLevel = _viewModel.AccessLevel; // Save changes. Note resultNote = await ProgenyService.UpdateNote(_viewModel.CurrentNote); _viewModel.IsBusy = false; _viewModel.IsSaving = false; EditButton.Text = IconFont.CalendarEdit; if (resultNote != null) // Todo: Error message if update fails. { MessageLabel.Text = "Note Updated"; // Todo: Translate MessageLabel.BackgroundColor = Color.DarkGreen; MessageLabel.IsVisible = true; await Reload(); } } else { EditButton.Text = IconFont.ContentSave; HtmlWebViewSource htmlSource = new HtmlWebViewSource(); // htmlSource.BaseUrl = DependencyService.Get<IBaseUrl>().Get(); htmlSource.Html = DependencyService.Get <IBaseUrl>().GetQuillHtml().Replace("!!Content!!", _viewModel.Content); ContentWebView.Source = htmlSource; _viewModel.EditMode = true; _viewModel.CategoryAutoSuggestList = await ProgenyService.GetCategoryAutoSuggestList(_viewModel.CurrentNote.ProgenyId, 0); } }
private async void SaveNoteButton_OnClicked(object sender, EventArgs e) { if (ProgenyCollectionView.SelectedItem is Progeny progeny) { _viewModel.IsBusy = true; _viewModel.IsSaving = true; Note saveNote = new Note(); saveNote.ProgenyId = progeny.Id; saveNote.AccessLevel = _viewModel.AccessLevel; saveNote.Progeny = progeny; DateTime noteTime = new DateTime(NoteDatePicker.Date.Year, NoteDatePicker.Date.Month, NoteDatePicker.Date.Day, NoteTimePicker.Time.Hours, NoteTimePicker.Time.Minutes, 0); saveNote.CreatedDate = noteTime; string userEmail = await UserService.GetUserEmail(); UserInfo userinfo = await UserService.GetUserInfo(userEmail); saveNote.Owner = userinfo.UserId; saveNote.Title = TitleEntry.Text; saveNote.Category = CategoryEntry.Text; string noteContent = await ContentWebView.EvaluateJavaScriptAsync("getContent()"); noteContent = noteContent.Replace(@"\u003C", "<"); // Todo: Proper string encoding/decoding. saveNote.Content = noteContent; // saveNote.Content = ContentEditor.Text; if (ProgenyService.Online()) { saveNote = await ProgenyService.SaveNote(saveNote); _viewModel.IsBusy = false; _viewModel.IsSaving = false; if (saveNote.NoteId == 0) { var ci = CrossMultilingual.Current.CurrentCultureInfo; ErrorLabel.Text = resmgr.Value.GetString("ErrorNoteNotSaved", ci); ErrorLabel.BackgroundColor = Color.Red; } else { var ci = CrossMultilingual.Current.CurrentCultureInfo; ErrorLabel.Text = resmgr.Value.GetString("NoteSaved", ci) + saveNote.NoteId; ErrorLabel.BackgroundColor = Color.Green; SaveNoteButton.IsVisible = false; CancelNoteButton.Text = "Ok"; CancelNoteButton.BackgroundColor = Color.FromHex("#4caf50"); await Shell.Current.Navigation.PopModalAsync(); } } else { // Todo: Translate message. ErrorLabel.Text = $"Error: No internet connection. Measurement for {progeny.NickName} was not saved. Try again later."; ErrorLabel.BackgroundColor = Color.Red; } _viewModel.IsBusy = false; _viewModel.IsSaving = false; ErrorLabel.IsVisible = true; } }