Skip to content

Conversation

@fulleni
Copy link
Member

@fulleni fulleni commented Dec 1, 2025

Status

READY

Description

This pull request introduces a robust set of administrative tools for managing user-generated content and community interactions within the application. It provides a centralized interface for configuring user engagement features like reactions and comments, setting up content reporting mechanisms, and fine-tuning the app review funnel. These additions empower administrators with greater control over the user experience and content moderation, ensuring a healthy and interactive community environment.

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

    Adds all necessary English and Arabic localization keys for the new "Community & Engagement" section in the App Configuration page.

    This includes titles, descriptions, and labels for user engagement, content reporting, and the app feedback funnel, ensuring the UI is fully localized and admin-centric.
    Introduces a new extension `EngagementModeL10n` to provide localized string representations for the `EngagementMode` enum values. This centralizes localization logic for the enum, making it reusable and consistent across the UI.
    Introduces the `AppReviewSettingsForm`, a self-contained widget for managing the `AppReviewConfig`. It provides UI controls for enabling the feedback system, setting the positive interaction threshold, and configuring follow-up actions, guided by descriptive text that clarifies the two-layer feedback funnel logic.
    Introduces the `ReportingSettingsForm`, a widget for managing the `ReportingConfig`. It includes a master toggle for the reporting system and individual switches for enabling/disabling reporting on headlines, sources, and comments, providing granular control.
    Introduces `CommunityConfigForm`, a container widget that orchestrates the community settings UI. It composes the `EngagementSettingsForm`, `ReportingSettingsForm`, and `AppReviewSettingsForm` into a series of nested, descriptive `ExpansionTile`s, creating a clear and hierarchical user interface for administrators.
    Integrates the newly created `CommunityConfigForm` into the `FeaturesConfigurationTab`. A new top-level `ExpansionTile` labeled "Community & Engagement" is added to the main list, which houses the form.

    This change maintains the existing single-expansion UX pattern by leveraging the shared `_expandedTileIndex` ValueNotifier.
    Introduces the `EngagementSettingsForm` for managing the `EngagementConfig`. This widget provides a master toggle for the engagement system and a `SegmentedButton` to switch between 'Reactions Only' and 'Reactions & Comments' modes, abstracting the engagement logic into a dedicated UI component.
- Updated core package reference from 3779a8b to a960fe8 in pubspec.yaml
- Updated corresponding reference in pubspec.lock
- Replace static fixture data with language-specific data for headlines, topics, and sources
- Modify DataInMemory initialization to use getHeadlinesFixturesData, getTopicsFixturesData, and getSourcesFixturesData with 'en' language code
- Add ExpansionTile for internal prompt logic settings
- Add ExpansionTile for follow-up actions settings
- Move positive interaction threshold and initial prompt cooldown fields inside the new tiles
- Add switches for requesting store review and written feedback in the follow-up actions tile
…ctions

- Add Arabic and English entries for "internalPromptLogicTitle" and "followUpActionsTitle"
- Include descriptions for new entries to facilitate translation and understanding of context
…ility

- Update subtitle text style in FeaturesConfigurationTab and CommunityConfigForm
- Apply onSurface color with 0.7 opacity for better contrast and readability
- Extract subtitle style to a variable for reuse and consistency
- Wrap app review settings in a Padding widget
- Display app review settings only if appReviewConfig.enabled is true
- Adjust layout structure to improve readability and maintainability
- Add padding around form elements
- Improve spacing between sections
- Update ExpansionTile layout for better readability
- Adjust switch alignment for consistency
- Update related localization strings to reflect new terminology
@fulleni fulleni added this to the Market Contender Edition milestone Dec 1, 2025
@fulleni fulleni self-assigned this Dec 1, 2025
@fulleni fulleni linked an issue Dec 1, 2025 that may be closed by this pull request
@gemini-code-assist
Copy link

gemini-code-assist bot commented Dec 1, 2025

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 introduces a robust set of administrative tools for managing user-generated content and community interactions within the application. It provides a centralized interface for configuring user engagement features like reactions and comments, setting up content reporting mechanisms, and fine-tuning the app review funnel. These additions empower administrators with greater control over the user experience and content moderation, ensuring a healthy and interactive community environment.

Highlights

  • User Generated Content (UGC) Configuration UI: Introduced new administrative UI forms for configuring user engagement, content reporting, and app review funnel settings, providing granular control over community features.
  • Integration into Features Configuration Tab: A new 'Community & Engagement' expansion tile has been added to the FeaturesConfigurationTab, serving as a central hub for all new UGC-related settings.
  • Localization Support: Comprehensive localization strings have been added for both English and Arabic to support all new UI elements and descriptions related to UGC configuration.
  • Language-Aware Fixture Data: The application's demo envirement bootstrapping process has been updated to load initial fixture data (headlines, topics, sources) using language-aware functions, improving flexibility for multi-language environments.
  • Core Dependency Update: The core package dependency has been updated to a newer commit, incorporating underlying model or logic changes necessary for these new features.
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 comprehensive configuration suite for user-generated content and community engagement features. The changes are well-structured, adding new forms for engagement, reporting, and app review settings. My review focuses on improving code maintainability by reducing duplication in onChanged handlers and enhancing the robustness of the UI state management in features_configuration_tab.dart. I've provided specific suggestions to refactor verbose copyWith chains and correct the usage of ValueKey to prevent potential UI state issues.

Added `expandedCrossAxisAlignment: CrossAxisAlignment.start` to the `CommunityConfigForm` widget to align the app review settings to the left side. This improves the layout and readability of the settings form.
- Add a SwitchListTile to enable/disable community features
- Wrap existing settings forms in a conditional rendering block
- Improve user flow by allowing access to settings only when community features are enabled
- Add SwitchListTile to enable/disable source reporting
- Update reporting configuration when switch state changes
- Implement source reporting
@fulleni fulleni merged commit 0190676 into main Dec 1, 2025
1 check failed
@fulleni fulleni deleted the feat/build-user-generated-content-config-and-moderation-suite branch December 1, 2025 04:24
@github-project-automation github-project-automation bot moved this from Backlog to Done in Flutter News App Project Dec 1, 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.

feat: Build Full Comment Moderation Suite

2 participants