mirror of
https://github.com/FBukovina/Atoll.git
synced 2026-10-27 15:14:33 +00:00
new version
This commit is contained in:
parent
cc09f17074
commit
c8a6c2b1fa
10 changed files with 1531 additions and 187 deletions
|
|
@ -1113,8 +1113,17 @@ private struct MinimalisticReminderDetailsView: View {
|
|||
struct MinimalisticAlbumArtView: View {
|
||||
@ObservedObject var musicManager = MusicManager.shared
|
||||
@ObservedObject var vm: DynamicIslandViewModel
|
||||
@Default(.showLiveCanvasInDynamicIsland) private var showLiveCanvasInDynamicIsland
|
||||
let albumArtNamespace: Namespace.ID
|
||||
|
||||
private var usesLiveCanvasArtwork: Bool {
|
||||
showLiveCanvasInDynamicIsland && musicManager.videoArtworkURL != nil
|
||||
}
|
||||
|
||||
private var albumArtCornerRadius: CGFloat {
|
||||
musicManager.albumArt.size.width / musicManager.albumArt.size.height > 1.0 ? 4 : 12
|
||||
}
|
||||
|
||||
var body: some View {
|
||||
ZStack(alignment: .bottomTrailing) {
|
||||
if Defaults[.lightingEffect] {
|
||||
|
|
@ -1128,16 +1137,27 @@ struct MinimalisticAlbumArtView: View {
|
|||
Color.clear
|
||||
.aspectRatio(1, contentMode: .fit)
|
||||
.background(
|
||||
Image(nsImage: musicManager.albumArt)
|
||||
.resizable()
|
||||
.scaledToFill()
|
||||
DynamicIslandArtworkSourceView(
|
||||
cornerRadius: albumArtCornerRadius,
|
||||
contentMode: .fill
|
||||
)
|
||||
)
|
||||
.clipped()
|
||||
.clipShape(RoundedRectangle(cornerRadius: 12))
|
||||
.clipShape(RoundedRectangle(cornerRadius: albumArtCornerRadius))
|
||||
.scaleEffect(x: 1.3, y: 1.4)
|
||||
.rotationEffect(.degrees(92))
|
||||
.blur(radius: 35)
|
||||
.opacity(min(0.6, 1 - max(musicManager.albumArt.getBrightness(), 0.3)))
|
||||
.opacity(
|
||||
usesLiveCanvasArtwork
|
||||
? (musicManager.isPlaying ? 0.68 : 0.22)
|
||||
: min(0.6, 1 - max(musicManager.albumArt.getBrightness(), 0.3))
|
||||
)
|
||||
.shadow(
|
||||
color: Color(nsColor: musicManager.avgColor).opacity(usesLiveCanvasArtwork ? 0.28 : 0.16),
|
||||
radius: usesLiveCanvasArtwork ? 18 : 12,
|
||||
x: 0,
|
||||
y: 0
|
||||
)
|
||||
}
|
||||
|
||||
private var albumArtButton: some View {
|
||||
|
|
@ -1147,13 +1167,10 @@ struct MinimalisticAlbumArtView: View {
|
|||
Color.clear
|
||||
.aspectRatio(1, contentMode: .fit)
|
||||
.background(
|
||||
|
||||
Image(nsImage: musicManager.albumArt)
|
||||
.resizable()
|
||||
.aspectRatio(contentMode: .fit)
|
||||
.clipShape(RoundedRectangle(cornerRadius: musicManager.albumArt.size.width/musicManager.albumArt.size.height > 1.0 ? 4 : 12))
|
||||
|
||||
|
||||
DynamicIslandArtworkSourceView(
|
||||
cornerRadius: albumArtCornerRadius,
|
||||
contentMode: .fit
|
||||
)
|
||||
)
|
||||
.clipped()
|
||||
.matchedGeometryEffect(id: "albumArt", in: albumArtNamespace)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue