Skip to content

Booru 4.0

Choose a tag to compare

@weekanya weekanya released this 05 Sep 23:09
· 234 commits to main since this release

Booru 4.0

Fullscreen Media Viewer

  • Root-level viewer architecture: Mounted the media viewer at the root layout to achieve seamless edge-to-edge rendering across all navigation tabs.
  • Horizontal pager navigation: Implemented continuous left and right swiping between posts with active page preloading.
  • Gesture and zoom overhaul: Unified pinch-to-zoom and pan interactions into an uninterrupted gesture cycle; double-tap zooms directly into the tapped coordinate with dynamically calculated boundaries.
  • Video player enhancements: Added customizable playback speed controls, reduced playback progress polling to eliminate unnecessary recompositions, and resolved tap-interception issues.
  • Collapsible tag sheet: Tags in the detail sheet are collapsed by default and expand on demand with synchronized slide and fade animations, preventing layout displacement and empty space artifacts.
  • Download and wallpaper management: Added automatic MIME-type detection from response headers, fallback URL candidates, and transaction rollback on interrupted downloads.

Favorites Screen

  • Instant fullscreen transition: Replaced gesture-delayed tap handlers with direct click dispatchers and removed per-item grid animation wrappers, eliminating input lag when opening media.
  • Content type filtering: Added dedicated single-row filters for All, Images, GIFs, and Videos with live post counters.
  • Sorting options: Added sorting by newest first, oldest first, and by Booru source name.
  • Search optimization: Implemented multi-token search across tags and source names simultaneously; streamlined the search bar into an outline-free Material 3 container.
  • Keyboard interaction handling: Added automatic focus release and soft keyboard dismissal on item click, category selection, and grid scroll, preventing animation conflicts and frame drops.
  • Preview quality restoration: Restored high-resolution sample image rendering for grid cards with automatic fallback to previews.

Custom Booru Sources

  • Danbooru and e621 engine support: Added dedicated URL parsing and pagination handling for Danbooru-style endpoints, including custom API base paths.
  • Editing existing sources: Added the ability to view, modify, and update credentials and URLs of existing custom Booru endpoints directly from settings.
  • Automatic fallback on deletion: Deleting an active custom Booru source automatically redirects the gallery to all sources and refreshes the feed to prevent invalid states.
  • Standardized network headers: Enforced a consistent User-Agent across all custom API queries and autocomplete requests.

Tag Blacklist & Filtering

  • Blacklist interface overhaul: Redesigned the blacklist management sheet with batch input, real-time tag search, and quick removal.
  • Contextual tag actions: Long-pressing any tag in the detail viewer allows one-tap addition to or removal from the blacklist.
  • Visual cleanup: Removed high-contrast borders and outlines from blacklist chips and confirmation dialogs in favor of tonal surface containers.

UI & Dialog Architecture

  • Unified dialog sizing: Standardized dialog layouts with header-aligned close buttons, integrated titles, and streamlined confirmation actions.
  • Clean aesthetic: Removed unnecessary outline borders across buttons, chips, and text fields.
  • Settings simplification: Consolidated rating controls, removed redundant switches, and aligned version metadata to 4.0.

Stability & Performance

  • Infinite pagination fix: Corrected state reference handling in GalleryViewModel to prevent pagination from stalling during continuous scrolling.
  • Cache leak prevention: Restated cache handling to exclude raw full-length video files from permanent disk caches and added automatic cleanup for abandoned temporary download files.
  • Autocomplete robustness: Fixed tag suggestion parsing to evaluate only the current active input token rather than the entire query string.