Skip to content

Conversation

@fulleni
Copy link
Member

@fulleni fulleni commented Nov 28, 2025

Status

READY

Description

This pull request undertakes a significant refactoring of the remote configuration management system, focusing on improving the structure and usability of the administrative interface. Key changes include a more logical grouping of settings under a new "System" tab, modularizing configuration forms for better maintainability, and enhancing complex sections like ad platform and user limit settings with intuitive tabbed navigation. These updates aim to provide a clearer and more efficient experience for managing application configurations, supported by thorough localization.

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

- Add Arabic and English translations for new settings related to feed item click behavior
- Include titles, descriptions, and options for internal and external browser navigation
- Create new extension file for FeedItemClickBehavior enum
- Add segmented button for selecting feed item click behavior
- Implement onSelectionChanged callback to update remote config
- Reorganize feed-related settings under a single expansion tile
- Update Arabic and English descriptions for feed item click behavior setting
- Specify that the setting relates to browser selection when tapping a headline
- Rename "Feed Item Click Behavior" to "Headline Click Behavior" for clarity
- Replace Padding widget with ExpansionTile for better expandable content structure
- Adjust padding and alignment for improved visual consistency
- Simplify widget hierarchy, reducing unnecessary nesting
- Update Arabic translation from "Headline Click Behavior" to "Feed Item Click Behavior"
- Update English description to match the new title
- Add consistent padding to expansion tile children
- Align expansion tile content to start
- Improve layout consistency across configuration tabs
- Add consistent children padding to ExpansionTiles
- Set uniform expandedCrossAxisAlignment for all ExpansionTiles
- Improve visual consistency across different configuration sections
- Replace ExpansionTile with TabBar for selecting ad platforms
- Implement TabController for handling tab navigation
- Update ad unit identifier fields to use TabBarView
- Adjust layout and styling for improved usability
- Add children padding to create more space between ads and align with account
settings
- Set expanded cross axis alignment to start to align children to the left
- Replace Padding with Expanded and SingleChildScrollView for daysBetweenViews field
- Enhances scrollability and layout flexibility in feed decorator form
- Add children padding to ExpansionTile for better visual spacing
- Align expansion tile content to start for improved readability
- Remove AdPlatformType.demo from segments, tabs,
…otification settings

- Remove SingleChildScrollView and replace it with a Column
- Adjust padding and scrolling behavior in the parent widget
- This change improves the layout structure and may enhance performance
- Import ui_kit package for consistent styling
- Add horizontal padding of 16px (AppSpacing.md) to the formstyle(ad content
_config_form- Improve): wrap layout consistency form in with other padding for widgets consistent spacing in

- Add horizontal the padding app of
 medium size
…ode structure

- Replace nested AdPlatformType map initialization with a more readable format
- Add ExpansionTile for better organization of ad platform configuration sections
- Adjust padding and layout for improved visual hierarchy
- Refactor code to improve readability and maintainability
- Update "primaryAdPlatformTitle" in both app_ar.arb and app_en.arb
- Remove "Selection" from the title as it's already implied by the
… form

Removed the Padding widget with horizontal padding and adjusted the layout by changing the parent widget from Padding to Column.
…pandability

- Introduce nested ExpansionTiles for better organization
- Rename 'User Content Limits' to 'User Limits' for clarity
- Add consistent padding and alignment to expansion tile children
- Remove redundant SizedBox between expansion tiles
- Add horizontal padding of AppSpacing.lg and vertical padding of AppSpacing.sm to SingleChildScrollView widget
- Improve visual appearance and usability of saved filter limits form
- Wrap Column with ValueListenableBuilder to reduce widget tree depth
- Adjust indentation for better readability
- Maintain original functionality and design
…iption text

- Remove Padding widget wrapping the limits description text
- Directly use Text widget for limits description
- Maintains vertical spacing before and after the text
- Add Arabic translation for "User Limits" and its description
- Add English translation for "User Limits" and its description
- Maintain consistent formatting for existing translation entries
- Add separate TabController for notification subscription tabs
- Rearrange notification fields layout to be more user-friendly
- Increase height of headline filter form to accommodate new layout
- Update tab bar to use scrollable design for better space utilization
…tification types

- Add _getNotificationDescription method to provide localized descriptions
- Update notification fields to use localized labels and descriptions
- Improve user experience by providing context-specific information for each
- Add Arabic and English descriptions for breaking news, daily digest, and weekly roundup notification subscription limits
- Update app_ar.arb and app_en.arb files with new localization entries
- Add Arabic and English translations for app status and updates section
- Include labels and descriptions for forced updates feature
- Add translations for application URLs section
- Combine maintenance mode and app updates into a single settings section
- Rename "General App Config" to "App URLs"
- Reorganize settings tiles and their respective indices
- Remove outer Padding widget
- Change main Column to be full-size to fill the parent Row
- Update description text to match the section content (app URLs)
- Move SwitchListTile to the top of the form
- Add conditional rendering for latest version fields
- Adjust padding and spacing for better visual hierarchy
- Remove redundant description text for the configuration
- Rename `GeneralAppConfigForm` to `AppUrlsForm`
- Update class and file names to reflect more specific purpose
- Modify documentation to clarify form's focus on application URLs
- Update Arabic and English descriptions for "is under maintenance" and "enable forced updates" switches
- Specify "mobile app" in descriptions to avoid ambiguity with other apps or services
…igurationTab

- Renamed `AppConfigurationTab` to `SystemConfigurationTab` to better reflect its purpose
…iguration

- Update tab title from "appTab" to "systemTab"
- Modify Arabic and English localization files to reflect the change
- Correct typo in "feedItemClickBehaviorDescription"
@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 undertakes a significant refactoring of the remote configuration management system, focusing on improving the structure and usability of the administrative interface. Key changes include a more logical grouping of settings under a new "System" tab, modularizing configuration forms for better maintainability, and enhancing complex sections like ad platform and user limit settings with intuitive tabbed navigation. These updates aim to provide a clearer and more efficient experience for managing application configurations, supported by thorough localization.

Highlights

  • Configuration UI Reorganization: The main application configuration page has been restructured, replacing the generic "App" tab with a more specific "System" tab, and moving related settings into logical sub-sections.
  • Modularization of App Settings: General application settings, such as Terms of Service and Privacy Policy URLs, have been extracted into a new, dedicated AppUrlsForm widget for improved code organization.
  • Enhanced Ad Platform Management: The ad platform configuration now features a tabbed interface, allowing for easier management of ad unit identifiers across different advertising networks.
  • Improved User Limit and Notification Settings: The user interface for configuring saved filter limits and notification subscription limits has been significantly enhanced with tabbed views for different user roles and notification types.
  • New Feed Item Click Behavior: A new setting has been introduced to control how feed items open, providing options for either an in-app browser or the system's default browser.
  • Comprehensive Localization Updates: All new and refactored UI elements, including tab names, titles, and descriptions, have received full localization support across 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 is a great refactoring of the app configuration UI. It significantly improves the structure by grouping related settings into nested ExpansionTiles and using TabBars, which enhances the user experience. The code is well-organized, and the changes to localization are consistent. I've found one minor issue with a refactoring in saved_filter_limits_section.dart where a ValueListenableBuilder was unnecessarily nested, and I've provided a suggestion to simplify it. Overall, excellent work on improving the maintainability and usability of this feature.

…nd updates

- Extract common controller initialization logic into separate methods
- Implement proper cursor positioning when updating text controllers
- Avoid unnecessary text updates by comparing current and new values
- Apply refactoring to both AppUrlsForm and UpdateConfigForm widgets
@fulleni fulleni merged commit 6da0a5a into main Nov 28, 2025
1 check failed
@fulleni fulleni deleted the fix/sync-with-remote-config-structure branch November 28, 2025 09:50
@github-project-automation github-project-automation bot moved this from Backlog to Done in Flutter News App Project Nov 28, 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