private async void OnSendClick (object sender, EventArgs e) { IsSendingFeedback = true; var mood = FeedbackMessage.Mood.Neutral; if (UserRating == ratingPositive) { mood = FeedbackMessage.Mood.Positive; } else if (UserRating == ratingNegative) { mood = FeedbackMessage.Mood.Negative; } var msg = new FeedbackMessage () { CurrentMood = mood, Message = UserMessage, }; var sent = await msg.Send (); if (sent) { if (userRating == ratingPositive) { AskPublishToAppStore.Show (UserMessage, FragmentManager); } else { ThankForFeedbackDialog.Show (FragmentManager); } ResetForm (); } else { var ctx = ServiceContainer.Resolve<Context> (); var toast = Toast.MakeText (ctx, Resource.String.FeedbackSendFailedText, ToastLength.Long); toast.Show (); } IsSendingFeedback = false; }
private async void SendMessage () { isSending = true; View.UserInteractionEnabled = false; RebindSendButton (); try { var msg = new FeedbackMessage () { CurrentMood = userMood.Value, Message = messageTextView.Text, }; var sent = await msg.Send (); if (sent) { var appStoreUrl = new NSUrl (Build.AppStoreUrl); var askReview = userMood == FeedbackMessage.Mood.Positive && UIApplication.SharedApplication.CanOpenUrl (appStoreUrl); var userMessage = messageTextView.Text; // Reset state before showing alert. userMood = null; messageTextView.Text = String.Empty; RebindMoodButtons (); if (askReview) { var alert = new UIAlertView ( "FeedbackReviewTitle".Tr (), "FeedbackReviewMessage".Tr (), null, "FeedbackReviewCancel".Tr (), "FeedbackReviewAppStore".Tr ()); alert.Clicked += (sender, e) => { if (e.ButtonIndex == 1) { UIPasteboard.General.String = userMessage; UIApplication.SharedApplication.OpenUrl (appStoreUrl); } }; alert.Show (); } else { new UIAlertView ( "FeedbackSuccessTitle".Tr (), "FeedbackSuccessMessage".Tr (), null, "FeedbackSuccessOk".Tr ()).Show (); } } else { new UIAlertView ( "FeedbackFailureTitle".Tr (), "FeedbackFailureMessage".Tr (), null, "FeedbackFailureOk".Tr ()).Show (); } } finally { isSending = false; View.UserInteractionEnabled = true; RebindSendButton (); } }