fabiodalez-dev
3aab74e451
v2.1.0: Fix audio playback (CORS/workbox), add console logger
...
Audio Fix:
- Unregister service worker on Android — workbox CacheFirst on
audio/video caused CORS failures on Tidal CDN streams
- Patch workbox config: CacheFirst → NetworkOnly for audio/video
- Shim @capgo/capacitor-media-session (our AudioForegroundService
handles MediaSession natively)
Console Logger:
- fm-logger.js loaded synchronously in <head> (captures ALL output
from the very first script execution)
- Intercepts console.log/warn/error/info/debug + window.onerror +
unhandledrejection + fetch errors (4xx/5xx/network)
- Saves to Downloads/FabiodalezMusic/fm-console-log.txt every 30s
and on app background
- Max 3000 entries, timestamped, with error flag
Search Simplification:
- Removed wrapper-side search hooks (dropdown preview, highlight,
monkey-patch, cache cleanup) — upstream search flow handles it
- Kept upstream patches: debounce 700ms, limit=100, min 3 chars,
cache normalization
Upstream Sync:
- Pulled ~60 new commits including Tidal API v2 migration for
artists, artist banners, animated covers, mobile CSS, audio
slider fix, international fonts
Closes #4 : haptic feedback removed.
v2.1.0
2026-04-18 13:23:22 +02:00
fabiodalez-dev
3b5503bb45
v2.0.0: 50+ optimizations, search fixes, robust build system
...
Major wrapper rewrite with architecture-level improvements:
Search & Performance:
- Debounce 3000ms → 700ms with min 3-char threshold
- Explicit &limit=100 on all search endpoints (shows all albums)
- Cache normalization: trim/lowercase/NFD diacritics (Björk = bjork)
- Per-type TTL: tracks 10min, artists 60min, albums 30min
- CDN preconnect/dns-prefetch for Tidal API endpoints
Android Native:
- WebView hardening: cache mode, DOM storage, text zoom, HW accel
- AudioForegroundService: ExecutorService + LruCache for cover art
- MediaSession hardware keys (headphones, Bluetooth, car stereo)
- LocalFilesBridge: content:// URI streaming (no more base64 OOM)
- Safe onDestroy with try/catch, RECEIVER_NOT_EXPORTED
- windowSoftInputMode=adjustResize, WindowInsetsController migration
- Splash screen config, largeHeap, hardwareAccelerated in manifest
- Back button dismisses modals/lyrics/fullscreen before navigating
UI/UX:
- Tap targets ≥ 48dp, touch feedback (active state), route fade
- Responsive card grid (2-4 cols based on screen width)
- Pull-to-refresh, swipe left/right on now-playing-bar
- Safe-area CSS variables (--fm-safe-top/bottom)
- Double-back-to-exit with toast confirmation
Build System:
- fm-build.sh: one-shot install + build entry point
- verify-patches.sh: dry-run patch verification (CI-ready)
- PATCHES.md: full documentation of all 50+ optimizations
- Robust cleanup trap (file-by-file git checkout)
- @capgo/capacitor-media-session shimmed (our ForegroundService wins)
- Upstream bug workarounds: sourcemap-codec override, backtick typo
Bug Fixes:
- JS injection via filename (escape backslash before apostrophe)
- Timer leak in setInterval without clearInterval
- Notification channel created once (singleton pattern)
- Notification ID reuse (no tray accumulation)
- ClipboardManager null check
- DownloadBridge thread-safe with background executor
Closes #4 : haptic/vibration feedback removed entirely.
v2.0.0
2026-04-15 11:57:06 +02:00
fabiodalez-dev
74eecfa007
Merge pull request #3 from uziff/main
...
Update repo link and directory name in Quick Start section
2026-04-08 16:54:11 +02:00
fabiodalez-dev
29f6f98ffe
v1.3.0: Bluetooth auto-pause, visible navigation bar, upstream sync
...
- Auto-pause playback when Bluetooth disconnects (ACTION_AUDIO_BECOMING_NOISY)
- Show Android virtual navigation bar instead of hiding it in immersive mode
- Navigation bar color matches app theme (#1a1a1a)
- Capacitor edge-to-edge margin adjustment enabled
- Synced with 237 new upstream commits (visualizer, lyrics toggle, reviews, fixes)
v1.3.0
2026-04-08 13:08:07 +02:00
fabiodalez-dev
f3ea7b8d24
fix: handle duplicate splash resource from upstream Capacitor setup
...
Upstream now ships android/ with splash.png. Capacitor sync generates
splash.xml in the same drawable dir, causing Gradle to fail with
"Duplicate resources". Build script now removes splash.png when both exist.
2026-03-25 23:11:51 +01:00
Chroma
84e9fbb3bb
Update repository links and directory names in README
2026-03-24 19:29:55 +01:00
fabiodalez-dev
af2e6b064f
Add Buy Me a Coffee badge
2026-03-16 11:31:09 +01:00
fabiodalez-dev
55d8764f39
v1.1.0: Queue panel safe area, touch drag, clipboard, OAuth, back button, layout fixes
v1.1.0
2026-03-16 11:28:24 +01:00
fabiodalez-dev
287fd03d89
Initial release: Fabiodalez Music Android wrapper
...
Android overlay for Monochrome music streaming app featuring:
- Background playback via Foreground Service + MediaSession
- Media controls (notification, lock screen, Bluetooth)
- Battery optimization bypass
- File downloads to Downloads/FabiodalezMusic/
- Local music folder picker
- OAuth via Chrome Custom Tab
- Clipboard bridge
- Immersive navigation bar
- Back button navigation
- Custom branding and splash screen
- Auto-update build script (pulls from upstream)
2026-03-16 11:26:19 +01:00