Skip to content

Implement search feature (titles, site, labels for current view)#11

Merged
NateEaton merged 6 commits intomainfrom
claude/review-search-feature-spec-DaDHp
Jan 31, 2026
Merged

Implement search feature (titles, site, labels for current view)#11
NateEaton merged 6 commits intomainfrom
claude/review-search-feature-spec-DaDHp

Conversation

@NateEaton
Copy link
Copy Markdown
Owner

@NateEaton NateEaton commented Jan 31, 2026

Summary
Search icon in TopAppBar activates an OutlinedTextField with magnifying glass leading icon, inline clear (X) trailing icon, and back arrow navigation
Searches title, site name, and labels with case-insensitive LIKE queries, 300ms debounce
Respects current view filters (My List, Archive, Favorites)
Auto-focuses search field on activation
"No results found" empty state
Added spec doc for future enhancements: overflow menu, sort, full-text content search, cross-view search
Test plan
[ ] Tap search icon — field appears with keyboard focused
[ ] Type query — results filter in real time after brief debounce
[ ] Clear icon (X) inside field clears text, results return to full list
[ ] Back arrow exits search mode entirely
[ ] Search works correctly within My List, Archive, and Favorites views
[ ] No-results state displays when query matches nothing
[ ] Opening a bookmark from search results shows content correctly

https://claude.ai/code/session_01Hfb83UWdF5kRvyBMRHYSWX

- Changed TextField to OutlinedTextField for visible border around search box
- Added leadingIcon with Icons.Filled.Search magnifying glass icon

https://claude.ai/code/session_01Hfb83UWdF5kRvyBMRHYSWX
Adds search functionality to the bookmark list view:
- Search icon in TopAppBar activates search mode
- OutlinedTextField with magnifying glass leading icon for search input
- Searches across bookmark title, site name, and labels (case-insensitive)
- 300ms debounce on search input to avoid excessive queries
- Close (X) button to exit search mode, clear button when query is non-empty
- "No results found" empty state for searches with no matches

New files:
- SearchOperators.kt: Simple search query parser (text-only, no operators)

Modified files:
- BookmarkDao: Added searchBookmarkListItems() with dynamic LIKE query
- BookmarkRepository/Impl: Added searchBookmarkListItems() method
- BookmarkListViewModel: Search state (query, active) with combine+flatMapLatest
- BookmarkListScreen: Search UI in TopAppBar with outlined text field
- strings.xml: Added search-related string resources

https://claude.ai/code/session_01Hfb83UWdF5kRvyBMRHYSWX
Uses FocusRequester with LaunchedEffect to automatically set keyboard
focus to the OutlinedTextField when the user taps the search icon.

https://claude.ai/code/session_01Hfb83UWdF5kRvyBMRHYSWX
- Navigation icon: use AutoMirrored.Filled.ArrowBack (matching Settings
  screens) instead of X when search is active
- Clear button: moved inside the OutlinedTextField as trailingIcon
  instead of a separate action icon outside the search box
- Compact search field: reduced height to 44dp with bodyMedium text
  style and small shape for a more compact appearance in the header

https://claude.ai/code/session_01Hfb83UWdF5kRvyBMRHYSWX
Remove height constraint (44dp), bodyMedium text style, and small
shape — the default OutlinedTextField sizing prevents text from
being chopped off at the bottom.

https://claude.ai/code/session_01Hfb83UWdF5kRvyBMRHYSWX
Planning document covering:
- Three-dot overflow menu with context-sensitive items
- Search all views toggle (ignore current filter)
- Full-text content search toggle (query article_content)
- Sort feature (newest, oldest, by site, by title)
- Dynamic placeholder text reflecting active options
- Implementation order and performance considerations

https://claude.ai/code/session_01Hfb83UWdF5kRvyBMRHYSWX
@NateEaton NateEaton changed the title Update search spec: OutlinedTextField with leading magnifying glass icon Implement search feature (titles, site, labels for current view) Jan 31, 2026
@NateEaton NateEaton merged commit b069f18 into main Jan 31, 2026
3 checks passed
@NateEaton NateEaton deleted the claude/review-search-feature-spec-DaDHp branch February 20, 2026 17:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants