feat(ADFA-4197): add Check All toggle to Git commit UI#1434
Conversation
Adds a Check All / Uncheck All toggle to the Git bottom-sheet so a large changeset can be staged in one tap instead of ticking each file. The button sits in the branch/PULL header row and its label tracks selection state. Also improves the changes list: a persistent vertical scrollbar indicates how much of a long list is off-screen, content is inset so status icons no longer overlap the scrollbar, and row spacing is tightened.
There was a problem hiding this comment.
Claude Code Review
This repository is configured for manual code reviews. Comment @claude review to trigger a review and subscribe this PR to future pushes, or @claude review once for a one-time review.
Tip: disable this comment in your organization's Code Review settings.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
💤 Files with no reviewable changes (1)
🚧 Files skipped from review as they are similar to previous changes (2)
📝 Walkthrough
WalkthroughAdds a "Check All / Uncheck All" ChangesGit Check/Uncheck All Selection
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In
`@app/src/main/java/com/itsaky/androidide/fragments/git/GitBottomSheetFragment.kt`:
- Around line 144-154: The btnCheckAll button is set to visible without checking
if there are any selectable (non-conflicted) files available. When
fileChangeAdapter.submitList(allChanges) is called and allChanges contains only
conflicted entries, the button remains visible but selectAll() becomes a no-op
since the adapter excludes conflicted paths. Modify the visibility logic for
btnCheckAll to check whether there are any non-conflicted files available before
setting it to visible, or disable the button when there are no selectable items.
Apply this fix at all three locations mentioned (the initial section around line
144-154 and the additional sections at 195-202 and 303-308).
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 13556d33-bf2e-4a4c-8ab6-a3694c762e0c
📒 Files selected for processing (5)
app/src/main/java/com/itsaky/androidide/fragments/git/GitBottomSheetFragment.ktapp/src/main/java/com/itsaky/androidide/fragments/git/adapter/GitFileChangeAdapter.ktapp/src/main/res/layout/fragment_git_bottom_sheet.xmlapp/src/main/res/layout/item_git_file_change.xmlresources/src/main/res/values/strings.xml
Summary
Implements ADFA-4197 / #1355 — a user-requested "Check All button for git branch" to make committing a large changeset easier.
Today the Git bottom-sheet lists every changed file with an individual checkbox, all starting unchecked, so committing many files means ticking each one by hand. This adds a single toggle to stage/unstage everything at once, plus a few quality-of-life fixes to the changes list.
Changes
outsideOverlay.Files
GitFileChangeAdapter.kt—selectAll()/clearSelection()/areAllSelected()helpers reusing the existing selection callback.GitBottomSheetFragment.kt— wire the toggle, sync its label, reset after commit, and show it only when there are changes.fragment_git_bottom_sheet.xml— toggle button in the header row; scrollbar attributes on the RecyclerView.item_git_file_change.xml— reduced vertical padding.resources/.../values/strings.xml—check_all/uncheck_all.Testing
:app:assembleV8Debugbuilds clean.