9 Commits

Author SHA1 Message Date
dd64a21404 feat: QR code for current media with channel info, cross-platform
- Add QR generation of the currently playing URL (macOS window / iOS sheet)
- Encode channel metadata (name/type/group/logo) in the QR payload as
  compact JSON; fall back to a plain URL when the payload is too long
  for a reliably scannable QR
- Scanning saves the entry into the local library with its channel
  metadata and starts playback; legacy plain-URL QR codes still work
- Add iOS QR scanner sheet (AVCaptureMetadataOutput) so scanning is no
  longer macOS-only; both scanners share handleScannedCode
- Add optional channel name / group fields to the Add URL dialog and
  thread group/logo through addURL/addItem into the library
- Restore session (queue + position) on launch and save on quit for
  macOS, not just iOS
- Bundle app icons: generate AppIcon.icns from the macOS iconset when
  missing, and compile Assets.xcassets into the iOS app
2026-10-04 12:07:00 +08:00
b929b1eb6e Set metadata types after session starts (availableMetadataObjectTypes empty before) 2026-06-24 19:28:38 +08:00
e87921b59f Request camera permission before QR scanning 2026-06-24 19:25:42 +08:00
f220800262 Improve QR scanner: prefer built-in camera, add rectOfInterest, fallback metadata types 2026-06-24 19:24:25 +08:00
8236b586c5 Fix crash: check availableMetadataObjectTypes before setting QR type 2026-06-24 19:22:13 +08:00
f7c295c653 fix: QR scanner - move camera init to background thread, window shows immediately 2026-06-23 23:03:48 +08:00
6d1ff50074 fix: QR scanner crash - use independent NSWindow instead of SwiftUI sheet 2026-06-23 09:14:23 +08:00
32f722bd34 fix: QR scanner crash - add previewLayer as sublayer in layout() instead of init 2026-06-23 09:11:48 +08:00
ae96218d20 feat: add QR code scanner for media URLs 2026-06-23 09:09:23 +08:00