v1.3.0: New version#2058
Merged
Merged
Conversation
Signed-off-by: maxrave-dev <ndtminh2608@gmail.com>
…laying screens - AlbumScreen / PlaylistScreen (mobile portrait): - Edge-to-edge artwork (half-screen height) with title/artist/year overlay centered at bottom - Liquid glass back/heart/search buttons (Kyant backdrop, 48dp circular) - Haze blur top app bar matching page background tone - Action row redesign: Shuffle + Play pill + Download centered cluster (Rounded icons) - Heart moved to top-right toolbar area - Muted palette tint background (Muted swatch + 45% dark blend) - Horizontal divider between song items (Apple Music style) - Palette caching to avoid flicker on LazyColumn item recycle - Coil memory cache enabled on artwork - NowPlayingScreen: - Spotify-style metadata overlay (subtitle + thumbnail + title + buttons) when controls hidden - Title font reduced from headlineMedium to titleMedium - Dual-state bottom gradient (heavier focus, lighter unfocus, ~28% coverage) - Fix gradient transparency bug by replacing Color.Transparent with Color.Black.copy(alpha = 0f) - Solid Black stops shifted earlier (0.85f) so viewport bottom is fully covered - UIExt.android.kt: - Bug fix: wDP previously used bounds.height() instead of bounds.width() on API 30+
- Replace infinite basicMarquee with maxLines + ellipsis truncation - Title max 2 lines, subtitle 1 line, optional third line (real or empty fallback) - Remove hardcoded fallback labels (songs/artists/playlist/album/videos) - Add heightIn on HomeItemContentPlaylist and HomeItemArtist outer Column to keep card heights uniform regardless of title length
- Re-add basicMarquee on subtitle lines with subtle params (2s initial delay, 2s repeat delay, 25dp velocity, only animates when text overflows) - Combine 'artists • album/views' into subtitle for HomeItemSong/Video/VideoChart, drop separate 3rd line Text - Title maxLines=2 across all item types - Add heightIn(min) to HomeItemContentPlaylist/Artist/Song/Video outer Column for uniform card heights regardless of title length
Signed-off-by: maxrave-dev <ndtminh2608@gmail.com>
…ose MP 1.11.0 - Downgrade BuildKonfig 0.21.0 → 0.20.0. 0.21.0 migrated to Gradle 9.4.1 but does not declare generateBuildKonfig output as input to AGP prepare*ArtProfile / extract*Annotations tasks, causing Gradle 9 strict validation to abort the build. - Add explicit dependsOn from prepare*ArtProfile to generateBuildKonfig in composeApp build.gradle.kts as defense-in-depth (no-op on 0.20.0). - Replace direct asComposeImageBitmap() (Skiko/JVM-only) usages with the existing cross-platform Image.toImageBitmap() expect/actual in 6 commonMain screen files; Android target lacked the symbol after the Compose 1.11.0 upgrade. - Replace asComposeImageBitmap with Android-native asImageBitmap in androidApp MainAppWidget.kt. - Suppress ProGuard unresolved-reference warnings for Haze 1.7.2 and Compottie 2.1.0 — both still reference Skiko Shader/Paint method signatures that Compose MP 1.11.0 removed; no newer versions of either library are available yet.
…tBrains 2026 KMP structure
- composeApp/icon/dmg-background.png — 2800x1600 source asset - scripts/wrap-mac-dmg.sh — create-dmg + UDRW + volicon + UDZO pipeline - desktop-package.yml — add wrap-mac-dmg job (macos-14, needs build-desktop-packages) - conveyor.conf — auto-infer site.base-url, keep updates=none - composeApp/build.gradle.kts — revert curated VLC plugin lists to full set
- Split Mac universal.dmg → arm64.dmg + intel64.dmg per machine, saves ~25-40 MB per user download (universal was 84.9 MB fat binary vs arm64 48.8 MB + intel64 54.8 MB shipped separately) - Add Windows ARM64 (winarm64.zip from VideoLAN 3.0.23) — opens ARM Windows PC support (Surface Pro X, Snapdragon Copilot+ PCs) - Drop linux.aarch64.glibc machine — VideoLAN ships no Linux ARM binary; mahozad/vlc-plugins-linux is amd64-only, so including this would ship an AppImage that crashes on first VLCJ load - Restrict `make site` to mac+windows machines — Conveyor's Linux tarball intermediate task was failing even with targets=[], so pass -Kapp.machines explicitly to skip the Linux pipeline that already ran in the prior `make linux-app` step - Factor shared Mac DMG + Windows zip extraction into helper functions; each per-arch task is now a thin doLast wrapper
get.videolan.org returns a 302 redirect to a different mirror per request. Java's URL.openStream() follows same-protocol same-host redirects but silently saves the 302 HTML response body when the mirror lands on a cross-protocol redirect or returns an error page — producing "Cannot expand ZIP" downstream. CI run 26264936101 hit this on the win64 mirror lottery despite local + winarm64 + Mac DMG downloads succeeding (they got lucky mirrors that round). Switch to curl -fsSL with retry, which follows redirects robustly across protocols and fails non-zero on HTTP errors instead of saving error bodies.
Conveyor's -K flag accepts HOCON list syntax, not CSV. The CSV form "-Kapp.machines=mac.amd64,mac.aarch64,..." was parsed as a single machine spec and failed with "Unrecognized machine attribute 'amd64,mac'". Switch to "-Kapp.machines=[mac.amd64,...]" per the Conveyor docs example "-Kapp.inputs=[a,b,c]". Verified locally with `conveyor -Kapp.machines=[mac.amd64, mac.aarch64,windows.amd64,windows.aarch64] make` — output drops all linux invokables (linux-app, linux-tarball, debian-package, base-configured-inputs/linux.amd64.glibc) and lists `site` as unambiguously invokable, confirming the override replaces the machines list as intended.
Conveyor stdlib preset /stdlib/jdk/21/openjdk.conf (Eclipse Temurin) does not ship a windows.aarch64 build, so `make site` failed with "JAR files were imported but no JVM inputs were supplied for 'windows.aarch64'" right after Mac archs + Windows x64 succeeded. Surgical override: add Microsoft Build of OpenJDK 21 windows-aarch64 zip as an additional input for that one machine. Keep Temurin from the stdlib include for the other 4 platforms — battle-tested with Compose Multiplatform, minimal change surface. Pin via aka.ms redirect so the URL stays stable across point releases (currently 21.0.11). Verified locally with `conveyor -Kapp.machines=[mac.amd64, mac.aarch64,windows.amd64,windows.aarch64] make site` — all 6 package artifacts produced in 226s (mac-aarch64.zip 167M, mac-amd64.zip 174M, windows-aarch64.zip 180M, windows-amd64.zip 191M, .arm64.msix 183M, .x64.msix 194M), plus download.html, .appinstaller for both archs, and the .exe wrapper.
CI's `desktop-windows` artifact previously shipped the raw Conveyor
output (.msix + .appinstaller + .exe wrapper) which is unusable for
end users: the .exe wrapper and .appinstaller both fetch
${site.base-url}/simpmusic.crt and simpmusic-arm64.appinstaller
from GitHub Releases /latest/download/, which return 404 until we
publish a release with those files. simpmusic.crt was also missing
from the upload entirely.
Replace the upload step with a per-arch bundling step that produces
two self-contained zips end users can actually install:
SimpMusic-Windows-x64-installer.zip
├── install.bat (UAC self-elevate, certutil
│ add cert, Add-AppxPackage)
├── simpmusic.crt (Conveyor self-signed code
│ signing cert, stable across
│ builds via CONVEYOR_SIGNING_KEY)
└── simpmusic-<ver>.x64.msix (the actual app)
SimpMusic-Windows-arm64-installer.zip
├── install.bat
├── simpmusic.crt
└── simpmusic-<ver>.arm64.msix
The install.bat detects host arch via %PROCESSOR_ARCHITECTURE% and
picks the matching MSIX from the same folder — single bundle per
arch, double-click to install, no network round-trip.
Tested locally with `conveyor make site -Kapp.machines=windows.aarch64`
+ the bundle loop; install.bat verified on a real Windows ARM64 host
(cert imports to Cert:\LocalMachine\TrustedPeople, MSIX sideloads via
Add-AppxPackage, app launches native ARM64 — confirmed via Task
Manager Details tab Architecture column).
`wmic` was deprecated in Windows 10 21H1 and is no longer installed
on Windows 11 by default, so our previous VM detection
(`wmic computersystem get model`) silently returned an empty string
on every Win 11 host. That left isVM = false → undecorated +
transparent window → Parallels Win 11 ARM rendered nothing or
flipped into a fullscreen-with-invisible-overlay state where clicks
were eaten by the transparent surface.
Replace the probe chain with:
1. PowerShell `Get-CimInstance Win32_ComputerSystem`
(modern wmic replacement, ships with every Windows 10/11)
2. Legacy `wmic computersystem get manufacturer,model`
(fallback for older hosts where PowerShell is locked down)
Also widen the vendor token list (Parallels, VirtualBox, VMware,
QEMU, KVM, Xen, Hyper-V) and probe BOTH Manufacturer and Model,
since Parallels-on-ARM only puts the brand string in Manufacturer
("Parallels Software International Inc.") while Model reads as
"Parallels ARM Virtual Machine" — the old single-Model probe would
have missed it even if wmic still worked.
Verified on Parallels Desktop running Windows 11 ARM64: app window
now opens with a native title bar and renders correctly; previous
invisible-window + fullscreen-glitch + click-eating-overlay states
all gone.
Remove windows.aarch64 from the Conveyor machines list, the bundled Microsoft JDK windows-aarch64 input, the workflow's -Kapp.machines override, and the install.bat arch-detection loop. End users on Windows 11 ARM64 (Surface Pro X, Snapdragon Copilot+ PC, Parallels ARM, etc.) get the x64 msix running under Prism emulation, which works correctly. Reason: androidx.sqlite:sqlite-bundled-jvm 2.6.2 (and even 2.7.0-alpha05) does not ship a windows_arm64 sqliteJni.dll. The bundled Room driver fails at first connection with "Cannot find a suitable SQLite binary for windows 11 | aarch64", which we cannot work around without compiling the native ourselves. The rest of the ARM Windows toolchain (Skiko, VLC, Microsoft JDK) does have ARM64 builds, so we can re-enable windows.aarch64 once Google ships the upstream sqlite native — the supporting plumbing is preserved in git history (commit ebe1577 + 16872e1). Side effect: CI artifact `desktop-windows` is now a single SimpMusic-Windows-installer.zip (~190 MB) instead of separate SimpMusic-Windows-{x64,arm64}-installer.zip. install.bat no longer needs %PROCESSOR_ARCHITECTURE% logic; it just globs simpmusic-*.msix and installs whatever it finds, which is simpler to maintain and matches what end users actually need. Verified locally with `conveyor -Kapp.machines=windows.amd64 make site` → bundle loop → SimpMusic-Windows-installer.zip (193 MB, 3 files) → sideload + launch on Parallels Win 11 ARM (with the VM detection fix from the previous commit, the window now renders correctly).
Picks up core@eb836db which sets VLC_PLUGIN_PATH in DefaultVlcDiscoverer.onSetPluginPath so libvlc_new() can locate the bundled plugins subdirectory on the Conveyor-built Linux AppImage. Without this, libvlc_new() returned NULL and Koin failed to construct VlcPlayerAdapter, crashing the app at startup with "Failed to get a new native library instance".
Signed-off-by: maxrave-dev <ndtminh2608@gmail.com>
Migrate Jpackage default to Hydraulic Conveyor
- fix(data): preserve album track order in getSongsByListVideoId - feat(stream): use hard-coded Tidal instance list with sequential probing - feat(player): improve AutoMix crossfade transitions (BPM ratio fix, equal-power volume fade, front-loaded BPM ramp, longer Auto durations)
Signed-off-by: maxrave-dev <ndtminh2608@gmail.com>
When the canvas overlay is rendered (unfocused / controls-visible state), the previous linear Transparent→Black brush left the visible viewport bottom slightly translucent because the host ModalBottomSheet does not extend behind the system navigation gesture area. Canvas video tinted the last pixels with a green/teal bleed. Switch the colorStops to a held-Black tail: 0% → Transparent 92% → Transparent (canvas clear through most of the page) 97% → Black 100% → Black (held solid through the visible bottom edge) Also mirror the held-Black pattern in the focused branch so the bottom edge stays opaque there too. Net visible darkening shrinks from the original ~80% to ~8% near the bottom only.
- Bump versionName 1.2.1 → 1.3.0 and versionCode 50 → 51. - Refresh compose-bom 2026.05.00 → 2026.05.01, material3-expressive alpha19 → alpha20, and md library 0.40.2 → 0.41.0. - Add fastlane 51.txt changelogs for en-US and vi-VN covering offline Home screen, Canvas translated lyrics line, AutoMix DJ-style crossfade improvements, Apple Music-inspired redesign, 3-line home layout, reliable Tidal 320kbps fallback, album track order, language code fixes (CN/ID/IW), and the Conveyor desktop installer changes (Windows MSIX + install.bat, macOS custom DMG). - Bump core submodule pointer to pick up the AI same-language abort fix.
Signed-off-by: maxrave-dev <ndtminh2608@gmail.com>
…, search bar haze overlay - Album/Playlist: group top-right buttons (Heart, Search, More) into liquid glass pill container - Album: add PlaylistBottomSheet for album options (Add to queue, Share) - Playlist: move search bar from stickyHeader to overlay with hazeEffect blur - Playlist: dynamic spacer height via onGloballyPositioned instead of hardcode - Playlist: platform-aware search bar background (haze on Android, solid on Desktop) - README: update Windows installer to MSIX, add ARM64 note
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.