boxlore

Verified safeOpen sourceExclusive
No reviews reviews
26
downloads
12
android

AI summary

Open-source podcast client built with Jetpack Compose, featuring dynamic ambient color extraction from artwork, variable-speed playback, live transcripts, chapter support, and offline downloads. Combines local SQLite FTS5 search with Qdrant Cloud vector embeddings for semantic recommendations. v0.0.

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.11Jul 23, 2026
  • boxlore v0.0.11 AI-generated summary: May contain mistakes. Verify details against the linked pull requests.
  • Added
  • Expressive listening history insights: session rollups, calendar & stats UI, Room persistence layer, and playback telemetry integration. (#932) PlaybackControlSync in :core:playback to preserve playback speed and seek sizes across session clear and restore UI sync (#933) Home now displays up to three curated editorial rows per daypart using PodcastRepository.getCuratedVibes with playable filtering and cross‑row de‑duplication (#942) In‑memory SignalLog for ranking engine mutations and model movement, with Debug UI panels (Signals, Taste, Model) replacing animated learner visualizations. (#897)
  • Changed
  • Refresh detekt baseline to clear signature‑drift findings (#933) (+ 1 related changes) Greeting line on Home now shows title only without subtitle; editorial rows are rendered flush with the feed (#942) Enabled SignalLog capture by default in debug builds, disabled in release unless opted‑in; Learner engine now uses atomic exposure resolution with synchronized enable/disable of SignalLog. (#897) Updated actions/checkout to v7 in GitHub Actions workflows (#886) Updated actions/setup-java to v5.6.0 (#888) Changed actions/cache action version from 4 to 6 (#889) Updated @libsql/client to 0.17.4 in Gradle build scripts. (#894) Pinned transitive dependencies (Netty 4.1.136, BouncyCastle 1.84, jose4j 0.9.6, jdom2 2.0.6.1, commons‑compress 1.26.2, protobuf 3.25.5) and overridden protobufjs 7.6.5, uuid 11.1.1 to address Dependabot Maven alerts and npm audit findings. (#896) modular hardening, AGP 9 toolchain, merge-queue tests, Develocity (#902) Modular Android hardening (plans A0–A8 / B0–B10): introduced single AppContainer composition root, extracted core modules (:core:prefs, :core:downloads, :core:analytics, :core:ranking, :core:rss), slimmed MainActivity to shell over BoxLoreNavHost, replaced reflective DownloadServiceLauncher, upgraded to AGP 9 toolchain with Develocity wiring, added module README contracts. (#903) Removed .github/dependabot.yml and disabled Dependabot security updates via repository settings, halting automatic version‑update and security PRs. (#905) Changed CI workflow to run unit, detekt, ktlint, and Kover checks only on merge queue or manual dispatch (#906) Changed CI workflow to run unit and instrumented tests only when the merge-ci label is present, and updated merge queue script accordingly. (#907) CI documentation updated to clarify merge-ci labeling and PR template flow (#908) Added cloud-agent next-wave playbook documentation (docs/PLAN_CLOUD_AGENT_NEXT.md) with phase constraints and verification gates (#909) Reorganized feature and playback extraction under LOC caps: split home/playback, defined module boundaries so UI flows reside in :feature:* and shared engines in :core:*. (#919) Phase 2 package alignment: moved PostHog façade to :core:analytics, replaced analytics glossary, migrated satellite/prefs, aligned playback/database package with Auto Phase C, and catalog package with Phase 2 final signoff. (#921) Architecture‑as‑code and test harness added: Konsist boundary guards enforce graph constraints (no feature→feature, no Hilt/MockK, catalog boundaries), expanded hermetic JVM suites and :core:testing fakes, raised merged Kover floor, integrated Roborazzi verification in unit gate, added ARCHITECTURE.md and TESTING.md hubs with ranking cross‑links. (#930) Changed CI configuration to require CodeRabbit review threads resolved before merge by adding coderabbit-threads-resolved check and updating master merge queue ruleset (#934) Reduced CI required checks to testDebugUnitTest and CodeRabbit‑threads‑resolved; disabled automatic CodeRabbit request_changes_workflow; enforced policy that all CodeRabbit threads must be resolved before merge and blocks merges on CHANGES_REQUESTED, requiring manual merge; removed merge-queue-external-gates.yml (Sonar + CodeRabbit merge‑queue). (#935
  • Fixed
  • Restore artwork tint colors after process death by using Coil ImageLoader.execute with disk+memory cache and PlaybackArtworkResolver (#933) (+ 1 related changes) Preserved MediaController playback state on app reopen; restoreLastSession() no longer forces isPlaying = false, keeping mini and full player synchronized. (#904) Fixed Android Auto artwork pipeline by adding a durable AutoArtworkSourceStore, a shared AutoArtworkDownloader with HTTPS redirect validation and lenient image content‑type handling, refreshed collage signatures with shorter TTLs, and automatic collage refresh on queue changes, eliminating stale collages and blank episode covers. (#939) LearningEventLog startup gating now defaults to off in release builds unless BoxcastPrefs.resolveLearnerLogEnabled indicates an explicit opt‑in. (#936) Removed Migrated Firebase Hosting config to aswin.cx; removed .agents Android‑ASO skill and associated documentation. (#932) Adaptive /content/sections/v1 recipe rails and related UI wiring from Home surface (#942)

About this version

Version
0.0.11 (11)
Size
26.5 MB
Requires Android
12
Target SDK
31
Architecture
arm64-v8a, armeabi-v7a, x86, x86_64
Downloads
26
Updated
Jul 23, 2026
Package
cx.aswin.boxlore

Ratings & reviews

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

Write a review

Tap a star to rate this app