From ffa4fb35ea7af8822e08977e70979d50c85bf54e Mon Sep 17 00:00:00 2001 From: Honey Date: Fri, 26 Jun 2026 13:59:58 +0200 Subject: [PATCH] chore(pwa): desktop install polish for manifest Add PNG icons (192/512) for a crisp taskbar/Start-menu icon, drop the portrait orientation lock so the window resizes freely on desktop, and add a stable app id. Installs as a standalone desktop window. Co-Authored-By: Claude Opus 4.8 --- CHANGELOG.md | 1 + public/manifest.json | 16 +++++++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 20d8b22..75de664 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -65,6 +65,7 @@ Versioning: two-part `MAJOR.MINOR` — each release bumps the minor (features an - **Android** — Downloaded badge: albums and playlists in the Library tabs show a ↓-in-circle badge on the cover when fully downloaded - **Android** — Duplicate-safe storage: a song shared by an album and a playlist is stored once (keyed by song ID) and reference-counted on delete — removing one group keeps the file if another still needs it - **Web + Android** — Lyrics prefetch: lyrics are fetched the moment a track starts playing (not only when the Lyrics tab is opened), so opening Lyrics is instant. The lrclib cache is warmed on every song change +- **Web (PWA)** — Desktop install polish: `manifest.json` now ships PNG icons (192/512) for a crisp taskbar/Start-menu icon, drops the `portrait` lock so the window resizes freely, and adds a stable app `id` — installs as a standalone desktop window (no browser chrome) ### Fixed - **Android** — Download crash on Android 15 (targetSdk 35): `FOREGROUND_SERVICE_TYPE_DATA_SYNC` is banned for apps targeting API 35; WorkManager's expedited path used it and the resulting exception killed the app ~1.5 s after tapping download. Fixed by dropping `setExpedited()` and all foreground-service use from `DownloadWorker` — downloads run as silent background work with progress shown in the Offline tab diff --git a/public/manifest.json b/public/manifest.json index 1e2b74d..89605e9 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -1,18 +1,24 @@ { "name": "NovaSonic", "short_name": "NovaSonic", - "description": "Self-hosted music streaming PWA", + "description": "Self-hosted music streaming für Navidrome / Subsonic", + "id": "/", "start_url": "/", "scope": "/", "display": "standalone", - "orientation": "portrait-primary", "background_color": "#07070f", "theme_color": "#07070f", "icons": [ { - "src": "icon.svg", - "sizes": "any", - "type": "image/svg+xml", + "src": "icon-192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "any" + }, + { + "src": "icon-512.png", + "sizes": "512x512", + "type": "image/png", "purpose": "any" }, {