You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Stable ID Identity: Custom sources now use persistent UUIDs as their sole runtime identifier. Display names can be freely renamed without breaking saved preferences, credentials, active source routing, or history.
Display Name Collision Protection: Multiple custom sources with identical or overlapping names are fully isolated and routed by ID without conflicts.
Universal Tag Navigation: Clicking tags (searchTag) from custom sources now correctly retains the source context through pagination, post viewing, tag browsing, and back navigation.
Strict HTTPS Validation: Custom source URL validation preserves public HTTPS security requirements and rejects non-FQDN or insecure endpoints.
AI Content Filtering
Unified Single Source of Truth: All AI filtering logic across repository queries, post parsing, and local feed filtering is now centralized in AiFilter.
Expanded AI Tag Recognition: Added comprehensive exact and compound detection for ai_generated, novelai, stable_diffusion, midjourney, dall-e, synthetic_media, ai_upscale, and deepfake.
False-Positive Guard: Implemented strict delimiter and boundary checks so natural words containing "ai" (such as maid, rain, train, chair, afraid, photosynthesis) are never mistakenly flagged.
Media Viewer & 120Hz Animations
Long Screenshot & Comic Strip Mode: Refined comic viewing mode to trigger exclusively for true long screenshots and multi-panel webtoon strips (aspect ratio >= 3.0). Standard large photos, portrait pin-ups, and wallpapers remain in standard fit mode with pinch-to-zoom and pan.
Video Swiping Auto-play Fix: Fixed an issue where swiping to another video in the pager could leave it paused due to background pre-rendering states. The player now reliably starts playback on active page transition unless explicitly paused by the user.
120Hz Responsive Touch Feedback: Re-engineered bouncyPress using direct gesture pointer input on the first frame of interaction, delivering instantaneous, fluid physical feedback without delaying click handling.
Snappy UI Transitions: Bottom navigation tabs, filter option buttons, and mode switches now use physics-based medium-stiffness springs and accelerated crossfades tailored for high refresh rate displays.
Platform & System Requirements
Android 12 Baseline & SDK 37: Raised minimum supported version to Android 12 (API 31), allowing modern Scoped Storage and media APIs by default. Upgraded compileSdk and targetSdk to Android 17 (SDK 37).
Cache, Favorites & Parsers
Cache Orphan Handling: Added automatic pruning of orphaned cached media and leftover .tmp download segments on startup.
Shared Media Protection: Deleting a favorite item now checks whether the cached media file is referenced by other saved posts before removal, avoiding premature cache deletion.
Realbooru Parser Hardening: Added direct file attribute extraction before URL reconstruction and preserved native image file extensions (.png, .webp, .jpg).
Conservative Rating Policy: Parser strictly assigns UNKNOWN (u) to missing or unmapped ratings, ensuring unrated posts are never accidentally permitted under Safe Mode.
Security & Updater
Credential Redaction: Sensitive API parameters (api_key, user_id, password, Authorization) are now systematically redacted from all logcat outputs, error messages, and network exception logs.
Strict APK Release Matching: The built-in updater eliminates arbitrary fallback selections. It strictly targets unambiguous release APK assets (app-release.apk, booru-release.apk, or unique non-debug release assets) and rejects ambiguous candidate lists.