Add alphabet scrollbar to list screens#127
Conversation
Add a reusable AlphabetScrollbar widget that appears on the right edge of list screens when sorting by name/title and the list has 100+ items. - Supports tap and drag to jump to a letter with haptic feedback - Groups digits and symbols under '#', only A-Z get own entries - Integrated into Songs, Albums, Artists, Favorites, Playlist Details, and Artist Details screens - SliverPadding on Albums/Artists prevents content overlap - Scrollbar auto-hides when sorting by non-name fields or below item count threshold
|
Caution Review failedPull request was closed or merged during review 📝 WalkthroughWalkthroughThis PR introduces a new Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant AlphabetScrollbar
participant ScrollController
participant ListView
User->>AlphabetScrollbar: Drag finger vertically
activate AlphabetScrollbar
AlphabetScrollbar->>AlphabetScrollbar: Calculate Y position to letter
AlphabetScrollbar->>AlphabetScrollbar: Trigger HapticFeedback.selectionClick()
AlphabetScrollbar->>ScrollController: jumpTo(targetScrollOffset)
ScrollController->>ListView: Update scroll position
ListView->>User: Display target letter section
deactivate AlphabetScrollbar
User->>AlphabetScrollbar: Release drag (end)
activate AlphabetScrollbar
AlphabetScrollbar->>AlphabetScrollbar: Clear active letter
AlphabetScrollbar->>User: Dismiss visual highlight
deactivate AlphabetScrollbar
User->>AlphabetScrollbar: Tap letter
activate AlphabetScrollbar
AlphabetScrollbar->>ScrollController: jumpTo(targetScrollOffset)
ScrollController->>ListView: Update scroll position
AlphabetScrollbar->>AlphabetScrollbar: Schedule 300ms reset
AlphabetScrollbar->>User: Clear active letter after delay
deactivate AlphabetScrollbar
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~22 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Summary
AlphabetScrollbarwidget overlaid on the right edge of list screens#SliverPaddingon Albums/Artists prevents list content from overlapping the scrollbarshouldShow()static helper centralizes visibility logicTest plan
#groups numeric/symbol entriesSummary by CodeRabbit
New Features