-
Notifications
You must be signed in to change notification settings - Fork 0
Feat/app review required data #86
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…teness - Expand the architectural overview to include the AppReview model. - Refine the descriptions of the workflow steps for better understanding. - Add details on user interactions and state changes following prompt responses. - Improve terminology consistency throughout the documentation.
- Introduce new enum for user response to initial app review prompt - Include positive and negative options - Add json_annotation for enum serialization
…entiment - Create a new NegativeFeedback class to represent a single instance of negative feedback - Add necessary imports and annotations for JSON serialization - Implement Equatable for value comparison - Include properties for timestamp and optional reason for dissatisfaction - Provide factory constructor for JSON deserialization - Add method for JSON serialization
- Create new file with app review fixtures - Generate diverse scenarios for app review data - Include positive, negative with/without reasons, and multi-stage reviews - Support multiple languages (English and Arabic)
…dback - Updated enum name from InitialAppReviewAnswer to InitialAppReviewFeedback - Updated documentation comment to reflect new enum name
- Create new test file for InitialAppReviewFeedback enum - Add tests to verify enum string names - Implement tests for creating enum values from string names
- Update class name from InitialAppReviewAnswer to InitialAppReviewFeedback - Update related variable names in AppReview class - Improve code readability and consistency
…odel - Implement unit tests for AppReview constructors - Verify serialization and deserialization with fromJson/toJson - Test copyWith functionality for creating updated instances - Ensure proper implementation of Equatable for equality checks - Validate props list for AppReview instances
- Create comprehensive tests for NegativeFeedback model - Cover constructor, fromJson/toJson, and Equatable behavior - Ensure proper instantiation with and without reason - Verify round trip serialization/deserialization - Test equality for instances with same and different properties
…eview funnel - Expand architectural explanation in AppReview model documentation - Introduce detailed description of the two-layer review funnel strategy - Clarify constraints imposed by native in-app review APIs - Emphasize the importance of strategically choosing the optimal moment for review requests
…e review request - Replace storeReviewRequestedAt (DateTime?) with wasStoreReviewRequested (bool) - Update documentation to reflect new implementation - Adjust.copyWith method to use new boolean flag - Remove unnecessary import of json_helpers package
- Clarify that 'storeReviewRequestedAt' is set to 'true' when a positive feedback is given - Improve documentation readability and accuracy
- Replace `storeReviewRequestedAt` with `wasStoreReviewRequested` - Simplifies the model by removing timestamp information - Aligns with recent changes in the app review model
- Replace checks for `storeReviewRequestedAt` with `wasStoreReviewRequested` - Update test assertions to use more specific boolean checks - Improve test readability and accuracy regarding store review request status
- Change import path from 'core/src/utils/nullable_date_time_converter.dart' to 'core/src/utils/utils.dart'
- Add `enabled` master switch to control entire app review funnel - Implement `isNegativeFeedbackFollowUpEnabled` to toggle follow-up prompt after negative feedback - Update `initialPromptCooldownDays` description to clarify cooldown after negative feedback - Modify model to include new parameters and update existing ones - Adjust test cases to cover new functionality
…ting - Add 'enabled' field to control the entire reporting system - Update constructor, props list, and copyWith method to include new field - Add documentation for the new 'enabled' field
- Add 'enabled' field to CommunityConfig class - Update props list to include 'enabled' - Modify copyWith method to support 'enabled' field
- Change initialPromptCooldownDays from 14 to 3 in ReportingConfig - Enable community and reporting features by setting enabled to true
- Add unit tests for CommunityConfig model - Verify instantiation, equality, JSON serialization/deserialization - Test copyWith method functionality
- Add test for default 'enabled' value - Include 'enabled' field in copyWith test - Verify updated 'enabled' value after copyWith
Summary of ChangesHello @fulleni, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request introduces a robust and strategic system for managing in-app review feedback. It implements a two-layer funnel designed to capture user sentiment privately before prompting for public store reviews, thereby maximizing positive public feedback while gathering valuable constructive criticism. The changes include new data models for tracking user review journeys and negative feedback, enhanced configuration options, and comprehensive fixture data for testing various user scenarios. Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request introduces new models and configurations for an app review feature, including AppReview and NegativeFeedback models, an enum for feedback types, and expanded configuration options. The documentation is thorough and clearly explains the new architecture. I've identified a couple of areas for improvement: one in the fixture generation logic to enhance data variety, and a more significant issue concerning an inconsistency in the auto-generated JSON serialization code that could lead to unpredictable behavior and warrants investigation. Overall, this is a well-executed feature addition.
- Update app reviews fixture to use a different negative feedback reason for each review - Enhances test data variability and realism
- Replace direct DateTime parsing with dateTimeFromJson helper function - Replace direct DateTime serialization with dateTimeToJson helper function - Improve code readability and maintainability by using helper functions
Status
READY
Description
Type of Change