Commit graph

  • bf9222ab0d fix(playlists): re-adding a song to a playlist crashed with SQLiteConstraintException master v0.1.5 avi 2026-10-03 19:43:44 -05:00
  • d0c5ce86fd chore(release): v0.1.4 (versionCode 6) — re-cut of 80b0300 code v0.1.4 avi 2026-10-01 20:09:52 -05:00
  • 80b0300141 feat(discover): browse sub-genres Wavlake doesn't index via radio-tag station search v0.1.3 avi 2026-10-01 18:11:59 -05:00
  • 31d47f4cb5 fix(discover): genre card from search results did nothing — openGenre reloaded rankings but the view stayed in the Results branch so the update was invisible. Clear the query and return to Idle rankings view, showing 'Top in <genre>'. avi 2026-10-01 10:44:30 -05:00
  • 4c63421400 chore(release): v0.1.2 (versionCode 3) — crash-fix build sideloaded to phone avi 2026-10-01 10:33:23 -05:00
  • 598556dbdd fix(crash): home button painted adaptive mipmap.ic_launcher — on API 26+ that resolves to the adaptive-icon XML and painterResource throws IllegalArgumentException ('Only VectorDrawables and rasterized asset types'), killing the app on first frame. Add rasterized ic_home_mark PNGs and paint those instead; bump to 0.1.2 (versionCode 3). avi 2026-10-01 10:33:15 -05:00
  • 90afcf3b6a feat(icon): adaptive launcher icon with rounded legacy fallbacks avi 2026-10-01 10:09:05 -05:00
  • 838809ec0c chore(release): v0.1.1 (versionCode 2) — first Forgejo release; enables in-app self-update path avi 2026-09-30 12:28:02 -05:00
  • b18f2df1f4 feat(update): in-app self-update — check Forgejo latest release, download APK with progress, launch installer via FileProvider; REQUEST_INSTALL_PACKAGES + unknown-sources redirect; version-compare unit tests v0.1.1 avi 2026-09-30 12:10:22 -05:00
  • 6147e0fde2 fix(playback): ghost ICY readers — stop() racing a blocked read fired onError, whose auto-restart resurrected unbounded zombie streams; every ghost flickered its own song over the now-playing field avi 2026-09-30 11:03:05 -05:00
  • a490b394d3 fix(library): overflow menu for refresh/delete/multi-select so title keeps full width; song-count plural avi 2026-09-30 10:23:21 -05:00
  • 9e84906715 feat(discover): type-toggle chips (Artists/Tracks/Genres/Stations), bucketed results, local station + genre search avi 2026-09-30 10:23:21 -05:00
  • bd4f6bb874 perf: cache WaveGraphic paths per size (was rebuilding ~3k lineTo per draw frame) + measured motion pass avi 2026-09-28 20:41:37 -05:00
  • e5a64e1892 feat: new launcher icon + motion polish (adjacent-tab glide, animateItem rows, header crossfade, cheaper pressDip) avi 2026-09-28 19:25:29 -05:00
  • 36f61ddb40 Checkpoint all work; ignore build artifacts and gradle caches avi 2026-09-23 18:58:21 -05:00
  • b000544d15 perf(app): fluid navigation + genre search avi 2026-09-10 06:48:55 -05:00
  • 1c9d07251a feat(nostr): Amber external-signer login, pubkey import, ephemeral zap fallback avi 2026-09-10 02:17:48 -05:00
  • 5ff5318db4 feat(nostr): decentralized layer Phase A — identity, relays, zaps, NWC wallet avi 2026-09-08 11:49:09 -05:00
  • e2ed74a47d feat(ui): mini-player buffering pose + one-tap retry on error avi 2026-09-08 10:13:06 -05:00
  • 918aeaf8d3 feat(ui): swipe-down to dismiss the mini-player avi 2026-09-08 10:07:25 -05:00
  • 172e932ef3 feat(ui): press feedback + haptics avi 2026-09-08 10:02:35 -05:00
  • d612ba6f49 feat(nav): swipeable pager for the 4 tabs (Spotify-style) avi 2026-09-08 09:59:21 -05:00
  • eb32aed07c fix(ui): mini-player attributes track to its station avi 2026-09-08 09:39:26 -05:00
  • 4f8d3e9299 feat(ui): Spotify-style playback signatures avi 2026-09-08 09:35:53 -05:00
  • 5b524f2153 fix: dedupe library — refuse duplicate saves, auto-remove existing dupes avi 2026-09-08 09:18:25 -05:00
  • ec55ba84ae feat: sleep timer, playback speed, real queue with shuffle/repeat avi 2026-09-08 01:30:43 -05:00
  • ee0d6b6149 polish: remove unused imports, tidy BorderStroke qualification avi 2026-09-08 00:45:18 -05:00
  • bc6396a570 feat: directory search, favorites, motion system, home button, transport fix avi 2026-09-08 00:37:33 -05:00
  • 1b7c6febbb feat: rename app to SatsAmp + appearance themes (violet/blue/green/orange accents, System/Dark/Light modes) avi 2026-09-07 18:45:29 -05:00
  • 6628965e68 wip: glass theme tokens + demo page + charcoal base port avi 2026-09-07 18:12:09 -05:00
  • a99d4c43f4 fix: folder tab long-press via Initial-pass pointerInput watcher + shared Handler timer; taps still select (verified on-device: 8-step gesture suite) avi 2026-09-07 13:57:49 -05:00
  • 3f84249c82 fix: folder tabs selectable again — long-press via pointerInput/detectTapGestures instead of combinedClickable (Tab's selectable masked the modifier's onClick) avi 2026-09-07 12:38:57 -05:00
  • 38b36687ee feat: library UX — long-press folder tab to delete (group only or +songs), import dedupe skips duplicates, always-visible sort row with A-Z/Z-A toggle avi 2026-09-07 12:29:58 -05:00
  • e6f88d5740 feat: folder import creates a folder-named playlist (Library tab) + Imported/<folder>/ subdir dev 2026-09-07 11:44:12 -05:00
  • 153a132656 ux: home 'Import music' opens import dialog directly instead of navigating to Library dev 2026-09-07 11:26:36 -05:00
  • c0aea3eabc fix: folder import — treat picked tree URIs via fromTreeUri (was misread as file -> Invalid URI) dev 2026-09-07 11:21:27 -05:00
  • 7372d30943 feat: manual song import via SAF picker (copy to library + tag read + dedupe) dev 2026-09-07 11:08:57 -05:00
  • 72e55ba319 baseline before import-songs feature dev 2026-09-07 11:04:09 -05:00