Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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);
            }
        }