private async Task performMainAction() { hide(); if (!impressionWasRegistered) { return; } if (impressionIsPositive) { ratingService.AskForRating(); /* * We can't really know whether the user has actually rated. * We only know that we presented the rating view (iOS) * or navigated to the market (Android). */ trackSecondStepOutcome( RatingViewOutcome.AppWasRated, RatingViewSecondStepOutcome.AppWasRated, analyticsService.RatingViewSecondStepRate); } else { var sendFeedbackSucceed = await Navigate <SendFeedbackViewModel, bool>(); isFeedbackSuccessViewShowing.OnNext(sendFeedbackSucceed); trackSecondStepOutcome( RatingViewOutcome.FeedbackWasLeft, RatingViewSecondStepOutcome.FeedbackWasLeft, analyticsService.RatingViewSecondStepSendFeedback); } }
public async Task PerformMainAction() { var impressionIsPositive = impressionSubject.Value; if (impressionIsPositive == null) { return; } if (impressionIsPositive.Value) { ratingService.AskForRating(); //We can't really know whether the user actually rated //We only know that we presented the iOS rating view analyticsService.UserFinishedRatingViewSecondStep.Track(RatingViewSecondStepOutcome.AppWasRated); onboardingStorage.SetRatingViewOutcome(RatingViewOutcome.AppWasRated, timeService.CurrentDateTime); } else { await feedbackService.SubmitFeedback(); analyticsService.UserFinishedRatingViewSecondStep.Track(RatingViewSecondStepOutcome.FeedbackWasLeft); onboardingStorage.SetRatingViewOutcome(RatingViewOutcome.FeedbackWasLeft, timeService.CurrentDateTime); } }
public async Task PerformMainAction() { hide(); if (!impressionWasRegistered) { return; } if (impressionIsPositive) { ratingService.AskForRating(); //We can't really know whether the user actually rated //We only know that we presented the iOS rating view trackSecondStepOutcome( RatingViewOutcome.AppWasRated, RatingViewSecondStepOutcome.AppWasRated, analyticsService.RatingViewSecondStepRate); } else { var sendFeedbackSucceed = await navigationService.Navigate <SendFeedbackViewModel, bool>(); isFeedbackSuccessViewShowing.OnNext(sendFeedbackSucceed); trackSecondStepOutcome( RatingViewOutcome.FeedbackWasLeft, RatingViewSecondStepOutcome.FeedbackWasLeft, analyticsService.RatingViewSecondStepSendFeedback); } }
public async Task PerformMainAction() { var impressionIsPositive = impressionSubject.Value; if (impressionIsPositive == null) { return; } if (impressionIsPositive.Value) { ratingService.AskForRating(); //We can't really know whether the user actually rated //We only know that we presented the iOS rating view analyticsService.RatingViewSecondStepRate.Track(); analyticsService.UserFinishedRatingViewSecondStep.Track(RatingViewSecondStepOutcome.AppWasRated); onboardingStorage.SetRatingViewOutcome(RatingViewOutcome.AppWasRated, timeService.CurrentDateTime); } else { var sendFeedbackSucceed = await navigationService.Navigate <SendFeedbackViewModel, bool>(); isFeedbackSuccessViewShowing.OnNext(sendFeedbackSucceed); analyticsService.RatingViewSecondStepSendFeedback.Track(); analyticsService.UserFinishedRatingViewSecondStep.Track(RatingViewSecondStepOutcome.FeedbackWasLeft); onboardingStorage.SetRatingViewOutcome(RatingViewOutcome.FeedbackWasLeft, timeService.CurrentDateTime); } }