Skip to content

Conversation

@fulleni
Copy link
Member

@fulleni fulleni commented Dec 20, 2025

Status

READY

Description

This pull request significantly enhances the application's configurability by adding a comprehensive analytics configuration tab. This new feature provides granular control over analytics providers, event tracking, and data sampling. Concurrently, the existing dashboard overview functionality has been deprecated and removed, streamlining the application's focus and reducing unnecessary complexity. The changes also include refactoring of other feature configuration sections into more modular components.

Type of Change

  • ✨ New feature (non-breaking change which adds functionality)
  • 🛠️ Bug fix (non-breaking change which fixes an issue)
  • ❌ Breaking change (fix or feature that would cause existing functionality to change)
  • 🧹 Code refactor
  • ✅ Build configuration change
  • 📝 Documentation
  • 🗑️ Chore

- Update core dependency from v1.4.0 to latest commit (a8a1714)
- This ensures the project uses the most recent version of the core package
- Add new strings for analytics settings in both English and Arabic
- Include translations for analytics tab, provider, events, and sampling rates
- Cover descriptions for system status, event configuration, and provider selection
- Introduce labels for Firebase and Mixpanel analytics providers
- Implement AnalyticsConfigForm widget for configuring analytics settings
- Add provider selection using SegmentedButton
- Implement events configuration with CheckboxListTile and sampling rate slider
- Localize all strings using AppLocalizations
- Ensure proper theming and spacing using ui_kit and core packages
- Insert AnalyticsConfigForm and its corresponding ExpansionTile
- Update existing ExpansionTile indices to maintain correct order
- Add analytics-related strings for localization
- Added analytics event labels and descriptions for various user actions
- Included events for user registration, login, content interaction,
  filtering, search, and subscription management
- Covered events for ad interactions, theme and language changes,
  and review prompts
- Provided labels and descriptions in both Arabic and English
- Add Analytics config form to FeaturesConfigurationTab
- Implement ExpansionTile for analytics settings
- Include analytics description and icon
- Ensure proper spacing and styling for new configuration section
…ions

- Add labels and descriptions to analytics events in the configuration form
- Implement `_getEventLabel` and `_getEventDescription` methods
- Update UI to display event labels and descriptions
- Improve code readability and type safety
- Update null safety for event enabling toggle
- Remove unnecessary decimals in slider definition
- Add missing case description for source filter event
- Remove the entire ExpansionTile block related to analytics configuration
- Remove the unused SizedBox
- Implement FeedConfigForm widget for configuring feed settings
- Add functionality to change feed item click behavior
- Implement expandable list for feed decorators configuration
- Integrate localization for all labels and descriptions
- Remove unused _getDecoratorDescription method
- Replace individual feed-related widgets with FeedConfigForm
- Conditionally render ad-related forms based on remoteConfig features
- Remove direct manipulation of feed item click behavior
…ics enablement

- Wrap provider and events sections in a conditional check for analyticsConfig.enabled
- Ensure these sections are only rendered if analytics is enabled
… on push configuration

- Wrap primary provider and delivery types sections in a conditional check for pushConfig.enabled
- Ensure these sections are only displayed when push notifications are enabled
@gemini-code-assist
Copy link

Summary of Changes

Hello @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 significantly enhances the application's configurability by adding a comprehensive analytics configuration tab. This new feature provides granular control over analytics providers, event tracking, and data sampling. Concurrently, the existing dashboard overview functionality has been deprecated and removed, streamlining the application's focus and reducing unnecessary complexity. The changes also include refactoring of other feature configuration sections into more modular components.

Highlights

  • New Analytics Configuration Tab: Introduced a dedicated tab for managing analytics settings, allowing configuration of providers, event logging, and sampling rates.
  • Overview Feature Removal: The entire dashboard overview feature, including its BLoC, events, states, and UI components, has been removed from the application.
  • Refactored Feature Configuration: Existing feature configuration forms for ads and feed settings have been refactored into dedicated widgets (AnalyticsConfigForm and FeedConfigForm) for better modularity and maintainability.
  • Conditional Ad Configuration Display: Ad-related configuration forms are now conditionally displayed based on whether ads are enabled in the remote configuration.
  • Localization Updates: Added extensive new localization strings to support the new analytics configuration options in both English and Arabic.
Using Gemini Code Assist

The 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 /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

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 .gemini/ folder in the base of the repository. Detailed instructions can be found here.

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

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a 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 a new 'Analytics' configuration tab and refactors the existing 'Features' tab for better organization. The logic for feed configuration has been extracted into its own widget, which improves modularity.

A few points for consideration:

  • The overview page and its related BLoC have been removed. While the removal is clean, the pull request description lacks details about this significant change. It would be beneficial to document the reasoning behind this.
  • The dependency on the core package in pubspec.yaml is now pinned to a specific commit hash instead of a version tag. While this might be necessary, it's generally better to depend on tags or versions for stability and clarity.
  • I've added a couple of suggestions to improve maintainability in the new analytics form and the features configuration tab.

Overall, the new feature is well-implemented with good structure and localization support.

@fulleni fulleni added this to the Market Contender Edition milestone Dec 20, 2025
- Consolidate App Monetization & Remote Control sections into Real-Time App Configuration & Remote Control
- Combine Dynamic Application Control and Centralized Monetization Engine into a single, cohesive section
- Add Analytics & Data Insights subsection to highlight new capabilities
- Improve readability and conciseness of the content
- Combine event label and description into a single function
- Simplify checkbox list tile creation with destructuring
- Update function signature to use AppLocalizations directly
- Return tuple with label and description for each event
- Replace int-based indexing with _FeatureTile enum for tracking expanded tile
- Update ValueNotifier type from int? to _FeatureTile?
- Modify ExpansionTile builders to use enum values instead of indices
- Improve readability and maintainability of features configuration tab
- Update pinput dependency in pubspec.yaml
- This change ensures compatibility with the latest Flutter version
- Change pinput version from 6.0.1 to 6.0.0 in pubspec.yaml
@fulleni fulleni merged commit e2b6f41 into main Dec 20, 2025
2 of 3 checks passed
@fulleni fulleni deleted the feat/analytics-configuration-tab branch December 20, 2025 10:52
@github-project-automation github-project-automation bot moved this from Backlog to Done in Flutter News App Project Dec 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants