boxlore

Verified safeOpen sourceExclusive
No reviews reviews
13
downloads
12
android

AI summary

Open-source podcast client with dynamic accent extraction from cover art, vector search recommendations, and Podcasting 2.0 features like live transcripts and video podcasts. v0.0.25 adds subscription folders with drag-and-drop reordering, offline chapter persistence, and improved Android Auto support.

Generated by AI. May contain inaccuracies.

About this app

boxlore is a modern, open-source podcast client built from the ground up to showcase Jetpack Compose's full styling and interactive potential.

- Dynamic Accent Extraction: Intercepts album cover artwork, resolves visually dominant colors via the Android Palette API, boosts saturation (min 40%), and bounds lightness (25%–55%) for clean, rich ambient gradients. - Performance Optimizations: Utilizes deferred rendering of heavy below-the-fold list components during tab slides to preserve a locked 60fps refresh rate on navigation. - Vector Search & Recommendations: Combines a local SQLite FTS5 index for fast offline queries with a Qdrant Cloud vector embedding space to serve semantic recommendations.

✨ Feature Grid

- Home Feed 🏠 Highlights & Capabilities: - Mixtape Curation: Dynamic, personalized listening queues. - Deferred Composition: Ultra-smooth 60fps transitions. - Curated Time Blocks: Adaptive choices matching the time of day.

- Player 🎵 Highlights & Capabilities: - Dynamic Ambient Glow: Real-time HSL color extraction from cover art. - Variable Speed: 0.5x to 3x with pitch correction. - Buffered Wavy Loader: Circular wavy loader for loading states.

- Search & Explore 🔍 Highlights & Capabilities: - Personalized "For You": Interest-based recommendations. - Edge Spelling Checker: Real-time correction on Cloudflare Edge. - Hybrid Querying: Fast SQLite + Podcast Index API.

- Podcasting 2.0 🎬 Highlights & Capabilities: - Live Transcripts: Synced reading with jump-to-time audio seeking. - Seekbar Chapters: Clickable chapter notches. - 16:9 Video Podcasts: Orientation-locked video layouts.

- Library & Offline ⬇️ Highlights & Capabilities: - Collapsible Downloads: Organized list, multi-select operations. - Smart Downloads: Automated background download purging.

🌐 Data Sources

This app aggregates data from multiple public sources to provide a unified podcast experience:

- Podcast Index API Data Provided: Global catalog of podcasts, episodes, and search results

- Apple Podcast Charts Data Provided: Daily scraped trending feeds via GitHub Actions

📄 License

GNU General Public License v3.0

What's new

v0.0.25Sep 9, 2026
  • boxlore v0.0.25 AI-generated summary: May contain mistakes. Verify details against the linked pull requests.
  • Added Added interactive same-show continuation banner with expandable episode preview and quick-refill action in the player queue sheet. (#1019) Room schema v35 with FolderEntity and PodcastFolderCrossRef for persistent subscription folders and show memberships. (#1059) FolderRepository and RoomFolderRepository in :core:catalog managing folder CRUD, genre linking, and automatic organization. (#1059) LibraryBackupFolderLogic and extended LibraryBackupManager v6 supporting backup/restore of folder structures, memberships, folder sort preferences, and custom podcast tags. (#1059) Direct-clickable show slots, overflow mini-clusters (+N), and FolderExpandedDialog for enlarged folder interactions. (#1059) Drag-and-drop folder reordering with persistent manual order in subscriptionFolderManualOrder and custom scoped reorder bar. (#1059) Offline chapter and transcript persistence for downloaded episodes, including Room migration v35 -> v36. (#1065) Automatic fallback to show note description timestamps for offline chapter generation when remote JSON chapters are absent. (#1065) Subscriptions tab presentation style preference (top vs floating) in :core:prefs, Settings UI, and Subscriptions screen. (#1048) Elevated Play All FAB animation when floating tab selector is active. (#1048) Backup and restore support for subscriptionsTabStyle, navigationStyle, and fontRoundness in LibraryBackupManager. (#1048) Custom podcast genre tag and icon picker for subscribed shows (#1051, #1032). (#1055) Room migration 13 to 14 adding custom_genre and custom_genre_icon columns to podcasts. (#1055) Curated 30+ Material rounded icon catalog in GenreIcons.kt. (#1055) Hybrid user-priority ordering for custom tags in Subscriptions filter chips. (#1055) time-of-day rotation and cross-day variation for because you like rail (#1063) Changed Subscriptions screen grid rendering to support sized folder items alongside unfiled podcasts. (#1059) Enhanced subscription sort sheet with 3-tier folder and intra-folder sort options and auto-organize controls. (#1059) Enforced canonical genre normalization (mapping "Technology" to "Tech" and auto-assigning "tech" icon). (#1059) Resolved out-of-memory errors during large podcast pagination and feed parsing by streaming responses and bounding in-memory cache sizes (#1026). (#1044) Modernize ktlint setup with Compose-friendly .editorconfig, remove 24 legacy XML baseline files, and apply repository-wide code formatting. (#1020) Enabled Gradle configuration cache in gradle.properties, reducing build configuration time for local and CI builds (#1021) Fixed Fixed same-show continuation in SmartQueueEngine by restoring forward chronological queries in LocalEpisodeCatalogDao and RssEpisodeDao (#1017). (#1019) Preserved preferredSort and contextSourceId across QueueManager and PlaybackQueueCoordinator for accurate refill sequencing. (#1019) Fixed an IllegalArgumentException crash when navigating to an episode with a missing, empty, or special-character description from Home feed recommendations by marking episodeDescription nullable with a default null value in NavGraphPodcastEpisodeDestinations (#1023). (#1030) Prevent background ForegroundServiceStartNotAllowedException and RemoteServiceException crashes on Android 14+ by routing background auto-downloads and smart downloads directly through DownloadManager without launching MediaDownloadService (#1024). (#1033) Eliminate silent disk storage leaks in SimpleCache by ensuring background download removals directly evict media cache files even when background service starts are blocked. (#1033) Fix notification auto-downloads failing or getting stuck in downloading state by awaiting completion under WorkManager wake locks and reconciling stale orphaned download records. (#1033) Prevent WorkManager 10-minute execution ceiling aborts during smart downloads by transitioning to sequential downloads with an 8.5-minute time budget. (#1033) Reorder jump glitch and touch targeting in subscriptions drag-and-drop grid. (#1059) Keyboard dismissal and state retention in folder creation bottom sheet. (#1059) Preserved notification and auto-download toggles on Podcast Info pull-to-refresh and routed subscribed shows to direct publisher feed refresh. (#1016) (#1022) Fixed latent notificationsEnabled and autoDownloadEnabled mapping in RSS repository entity conversion. (#1022) Prevent SecurityException crashes caused by system PendingIntent UID quota exhaustion in FCM notifications and Media3 playback session setup (#1025). (#1034) Preserved show name metadata during Android Auto playback and resolved session restore reversions when replaying completed episodes (#1035). (#1036) Fixed Android Auto reconnection failure by registering MediaButtonReceiver and implementing onPlaybackResumption with queue hydration and repeat session recovery (#1038). (#1045) Fixed disabled or missing chapters and transcripts during offline playback of downloaded episodes. (#1065) Fixed player dynamic theme application on inline transcript header and fullscreen button. (#1065) Calibrated player metadata typography and muted colors in transcript mode without visual conflict with inactive transcript lines. (#1065) Adapted the Cast button in the expanded player sheet to respect dark and light themes and match the Share button theming (#1037). (#1039) Handled broken pipe and network disconnect exceptions safely during Android Auto artwork streaming (#1027). (#1041) Enforce MediaController main-thread affinity in PlaybackRepository to prevent IllegalStateException on background session restoration. (#1042) Protect LazyColumn and LazyRow lists against duplicate keys to prevent IllegalArgumentException in recommendation and explore feeds. (#1043) Fixed Video Spotlight card tap animation in FeaturedVideoPodcastsShowcase by placing expressiveClickable before shadow, border, and surface background (#1031). (#1046) Forwarded onSetSubscriptionsTabStyle callback in AppearanceActions.trackedForAnalytics() to register clicks in Settings > Appearance. (#1048) Streamlined JSON library restore with real-time show-by-show progress reporting and active wavy loader animation throughout feed downloads. (#1050) Refactored post-restore notification card to a single dynamic button that triggers the system runtime permission dialog and refreshes on resume. (#1050) Reset custom tags and icons to default catalog genres when unsubscribing from a show. (#1055) Prompt Material 3 confirmation dialog before removing downloaded episodes across Podcast Info, Episode Info, Expanded Player, and Downloaded Episodes screen (#1061). (#1064)

About this version

Version
0.0.25 (25)
Size
25.68 MB
Requires Android
12
Target SDK
31
Architecture
armeabi-v7a, x86, x86_64, arm64-v8a
Downloads
13
Updated
Sep 9, 2026
Package
cx.aswin.boxlore

Similar apps

Ratings & reviews

0 ratings
  • 5
    0
  • 4
    0
  • 3
    0
  • 2
    0
  • 1
    0

Write a review

Tap a star to rate this app