mirror of
https://github.com/FBukovina/Atoll.git
synced 2026-10-27 15:14:33 +00:00
Two fixes for the right-click-artwork-to-wallpaper flow on Spotify tracks that have a Canvas video. 1. Force AllSpacesAndDisplays.Type and SystemDefault.Type to "individual" while the artwork is active (was: keep existing value via nil-coalescing). On macOS Tahoe the user-level wallpaper rotation honors the parent Type field, so leaving it as "folder" caused WallpaperAgent to advance to the next image in a rotating wallpaper pack instead of honoring the patched single-image / aerial choice. The original Type is preserved in the plist backup at temp/atoll_wallpaper_backup.plist and is restored byte-for-byte on dismiss, so rotation resumes normally after the artwork is dismissed. The forced override is also applied to nested Displays / Spaces blocks but only when Type was already present, to avoid mutating block shapes that intentionally omit it. 2. When the Canvas is expected at right-click time (effectiveVideoURL != nil), defer applyArtworkToPlist and restartWallpaperAgent entirely. Previously the flow applied raw album art as the static wallpaper, restarted the agent, then prepared and applied the aerial in a second restart, causing a visible flash of the raw album cover. The deferred path stores the blurred fallback URL in pendingFallbackStaticURL and only touches the plist once: with the aerial on success, or with the blurred album cover via applyDeferredStaticFallback if the aerial asset prep or aerial-plist patch fails. The in-app videoWindow continues to mask the desktop wallpaper during prep on the unlocked screen; the lock screen simply transitions from the existing wallpaper straight to the Canvas video. The earlier ?? nil-coalescing in patchWallpaperEntries also covered per-Display, per-Space.Default, and per-Space.Displays Type fields, so those are forced too where present. Signed-off-by: Jis G Jacob <studiokeys@blissroms.org> |
||
|---|---|---|
| .. | ||
| animations | ||
| Assets.xcassets | ||
| audio | ||
| BluetoothHUDAnimations | ||
| components | ||
| enums | ||
| extensions | ||
| helpers | ||
| managers | ||
| MediaControllers | ||
| menu | ||
| metal | ||
| models | ||
| observers | ||
| Preview Content/Preview Assets.xcassets | ||
| private | ||
| Providers | ||
| services/Extensions | ||
| Shortcuts | ||
| sizing | ||
| strings | ||
| utils | ||
| audio-feedback.m4a | ||
| ContentView.swift | ||
| dynamic.m4a | ||
| DynamicIsland-Bridging-Header.h | ||
| DynamicIsland.entitlements | ||
| DynamicIslandApp.swift | ||
| DynamicIslandViewCoordinator.swift | ||
| Info.plist | ||
| Localizable.xcstrings | ||
| lock.mp3 | ||
| lowbattery.mp3 | ||
| timer.mp3 | ||
| unlock.mp3 | ||