-
Notifications
You must be signed in to change notification settings - Fork 139
Implement task buttons refactor #3525
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
Summary of ChangesHello @andreia-ferreira, 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 refactors the task action button implementation across the data collection flow. The primary goal was to modernize the button UI and logic by migrating to Jetpack Compose and centralizing state management within ViewModels. This change improves maintainability, testability, and sets the stage for more flexible UI development by decoupling button presentation from fragment logic and task position determination. Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Changelog
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 is a significant and well-executed refactoring of the task button handling logic. It moves away from a stateful TaskButton class towards a more declarative, Compose-idiomatic approach using a stateless TaskButton composable and a new TaskFooter. The state management is now centralized in the AbstractTaskViewModel and its subclasses, using StateFlow to drive the UI, which is a great improvement for maintainability and testability. The decoupling of DataCollectionViewModel from task ViewModels via the TaskPositionInterface is also a solid design choice. I've found one issue in the DrawAreaTaskViewModel related to reactive state updates for the buttons, which could lead to a stale UI.
...ain/java/org/groundplatform/android/ui/datacollection/tasks/polygon/DrawAreaTaskViewModel.kt
Show resolved
Hide resolved
4e3e0a9 to
c35604c
Compare
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #3525 +/- ##
============================================
+ Coverage 70.54% 70.57% +0.03%
+ Complexity 1639 1615 -24
============================================
Files 327 326 -1
Lines 8975 8861 -114
Branches 990 976 -14
============================================
- Hits 6331 6254 -77
+ Misses 2048 2024 -24
+ Partials 596 583 -13
🚀 New features to boost your workflow:
|
shobhitagarwal1612
left a comment
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.
Amazing! ✨
Fixes #3437
This PR refactors the task action buttons fully to Jetpack Compose, implementing the previously created
TaskFooterandTaskButtoncomponents.The main changes consist on:
task_frag_action_buttons.xml, the oldTaskButtonand removed its usage from task fragment layoutsThis modernizes the UI implementation for task navigation and actions, improving maintainability and testability. The functionality itself should be the same, not interfering with the user experience:
Before:
Screen_recording_20260209_152821.webm
After:
after.webm
@shobhitagarwal1612 PTAL?