-
Notifications
You must be signed in to change notification settings - Fork 0
Fix app configuration UI #63
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
- Replace ListTile with Column to allow conditional rendering - Move daysBetweenViews input field inside CheckboxListTile - Add description for daysBetweenViews input field - Update layout and spacing for better usability
- Update resolved-ref from 9c25c6b to b47d995 for the auth-inmemory package
- Create new extension on AppUserRole to provide localized string representations - Add l10n method that returns localized name based on user role - Include cases for guestUser, standardUser, and premiumUser - Update imports to include necessary packages and localization files
- Create new extension on FeedDecoratorType to provide localized string representations - Add l10n method that returns the localized name for each FeedDecoratorType - Cover all cases of FeedDecoratorType in the switch statement - Import necessary packages and libraries
- Add descriptions for "days between views" input - Translate FeedDecoratorType options for both Arabic and English - Include localized names for AppUserRole in both languages
- Add localization for feed decorator types and user roles - Refactor feed decorator configuration display using FeedDecoratorType.values - Remove unnecessary conversion to list for feedDecoratorConfig entries
…decorators - Modify the remoteConfig object to include a new FeedDecoratorConfig for the current decoratorType if it's not already present - This ensures that the map is always updated, preventing potential issues with missing decorator configurations
…roller - Add text selection logic to UserController initialization for user preference limits - Implement similar text selection for feed decorator and ad config forms - Ensure cursor is positioned at the end of the text for all relevant fields
- Clarify the behavior of the days between views setting for both Arabic and English localizations - Specify that the decorator will only be shown again if the associated task has not been completed
- Create a static list of supported languages (_supportedLanguages) - Update ListView.builder to use _supportedLanguages.length for itemCount - Modify language selection to use _supportedLanguages list - Add documentation for _supportedLanguages
…rator - Disable checkbox for standard and premium users when selecting roles for link_account decorator - Keep the functionality intact for other decorator types and user roles
…tiles - Add ExpansionTileController for each top-level ExpansionTile - Implement logic to collapse other main tiles when one expands - Wrap Maintenance and Force Update sections in ExpansionTiles - Update initialization and disposal of ExpansionTileControllers
- Convert _SettingsView from StatelessWidget to StatefulWidget - Add ExpansionTileController for each expansion tile - Implement onExpansionChanged to collapse other tiles when one is expanded - Ensure proper disposal of controllers
- Replace fixed layout with a responsive wrap layout for summary cards - Calculate item width dynamically based on available space - Support for wrapping cards into multiple rows on
- Remove local kMaxAppWidth constant - Use AppConstants.kMaxAppWidth from shared file - Improve code maintainability and consistency
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.
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 delivers a substantial overhaul of the application's configuration and settings user interfaces. The primary goal was to enhance usability and maintainability through strategic UI/UX improvements, including the introduction of collapsible sections and refined text input behaviors. Additionally, the changes centralize application constants and expand localization capabilities, laying a stronger foundation for future development and internationalization.
Highlights
- Improved UI/UX for Configuration and Settings Pages: The App Configuration and Settings pages have been significantly enhanced by wrapping major sections within collapsible
ExpansionTile
widgets. This design choice improves navigation and reduces visual clutter, allowing users to focus on one section at a time. - Enhanced Text Input Field Behavior: A common Flutter UI issue where the text cursor jumps to the beginning of an input field upon programmatic updates has been resolved. By implementing
TextSelection.collapsed
withTextEditingController
s, the cursor now consistently remains at the end of the text, providing a smoother and more intuitive user experience. - Centralized Application Constants: Application-wide constants, such as the maximum app width, have been centralized into a new
AppConstants
class. This refactoring promotes better code organization, easier maintenance, and consistent usage of global values across the codebase. - Expanded Localization Support: Localization support has been expanded to include new keys for
FeedDecoratorType
andAppUserRole
enum values. This ensures that all relevant UI elements and user roles are properly translated, providing a more comprehensive and user-friendly experience for international users. - Refactored Feed Decorators Management: The Feed Decorators section in the App Configuration now dynamically displays all available
FeedDecoratorType
values, even if they are not explicitly configured in the remote settings. This provides a more complete overview and allows for easier management of all decorator types, with default configurations provided where necessary.
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 in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command>
or @gemini-code-assist <command>
. Below is a summary of the supported commands.
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 issue 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
-
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. ↩
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 focuses on refactoring the App Configuration and Settings UI to improve user experience and maintainability. Key changes include introducing accordion-style expansion tiles, adding localization for user roles and feed decorators, and centralizing constants. The changes are well-structured, but there are opportunities to reduce code duplication in the expansion tile logic and improve efficiency in a BLoC method. Overall, this is a solid improvement to the codebase.
Status
READY/IN DEVELOPMENT/HOLD
Description
Type of Change