mirror of
https://github.com/FBukovina/Atoll.git
synced 2026-10-27 15:14:33 +00:00
Fix: LockScreen UI bug
This commit is contained in:
parent
d88d9acb60
commit
e6074c4fa3
3 changed files with 61 additions and 19 deletions
|
|
@ -429,21 +429,20 @@ struct LockScreenMusicPanel: View {
|
|||
}
|
||||
|
||||
private var playPauseButton: some View {
|
||||
let frameSize: CGFloat = isExpanded ? 72 : 48
|
||||
let symbolSize: CGFloat = isExpanded ? 30 : 24
|
||||
let frameSize: CGFloat = isExpanded ? 80 : 54
|
||||
let symbolSize: CGFloat = isExpanded ? 34 : 26
|
||||
let iconName = musicManager.isPlaying ? "pause.fill" : "play.fill"
|
||||
|
||||
return Button(action: {
|
||||
return HoverButton(
|
||||
icon: iconName,
|
||||
iconColor: .white,
|
||||
scale: .large,
|
||||
pressEffect: .none
|
||||
) {
|
||||
registerInteraction()
|
||||
musicManager.togglePlay()
|
||||
}) {
|
||||
Image(systemName: musicManager.isPlaying ? "pause.fill" : "play.fill")
|
||||
.font(.system(size: symbolSize, weight: .semibold))
|
||||
.foregroundColor(.white)
|
||||
.contentTransition(.symbolEffect(.replace))
|
||||
.frame(width: frameSize, height: frameSize)
|
||||
.contentShape(Rectangle())
|
||||
}
|
||||
.buttonStyle(PlainButtonStyle())
|
||||
.frame(width: frameSize, height: frameSize)
|
||||
}
|
||||
|
||||
private func controlButton(
|
||||
|
|
|
|||
|
|
@ -621,10 +621,10 @@ private struct MinimalisticReminderDetailsView: View {
|
|||
private var playPauseButton: some View {
|
||||
MinimalisticSquircircleButton(
|
||||
icon: musicManager.isPlaying ? "pause.fill" : "play.fill",
|
||||
fontSize: 24,
|
||||
fontSize: 28,
|
||||
fontWeight: .semibold,
|
||||
frameSize: CGSize(width: 54, height: 54),
|
||||
cornerRadius: 20,
|
||||
frameSize: CGSize(width: 60, height: 60),
|
||||
cornerRadius: 24,
|
||||
foregroundColor: .white,
|
||||
pressEffect: .none,
|
||||
symbolEffectStyle: .replace,
|
||||
|
|
|
|||
|
|
@ -122,6 +122,7 @@ struct MusicControlsView: View {
|
|||
let showShuffleAndRepeat: Bool
|
||||
@Default(.musicAuxLeftControl) private var leftAuxControl
|
||||
@Default(.musicAuxRightControl) private var rightAuxControl
|
||||
@Default(.musicSkipBehavior) private var musicSkipBehavior
|
||||
@Default(.enableLyrics) private var enableLyrics
|
||||
|
||||
var body: some View {
|
||||
|
|
@ -214,20 +215,62 @@ struct MusicControlsView: View {
|
|||
|
||||
private var playbackControls: some View {
|
||||
let controls = resolvedAuxControls
|
||||
let seekInterval: TimeInterval = 10
|
||||
let skipMagnitude: CGFloat = 6
|
||||
|
||||
let backwardConfig: (icon: String, press: HoverButton.PressEffect?, action: () -> Void)
|
||||
let forwardConfig: (icon: String, press: HoverButton.PressEffect?, action: () -> Void)
|
||||
|
||||
switch musicSkipBehavior {
|
||||
case .track:
|
||||
backwardConfig = (
|
||||
icon: "backward.fill",
|
||||
press: .nudge(-skipMagnitude),
|
||||
action: { musicManager.previousTrack() }
|
||||
)
|
||||
forwardConfig = (
|
||||
icon: "forward.fill",
|
||||
press: .nudge(skipMagnitude),
|
||||
action: { musicManager.nextTrack() }
|
||||
)
|
||||
case .tenSecond:
|
||||
backwardConfig = (
|
||||
icon: "gobackward.10",
|
||||
press: .wiggle(.counterClockwise),
|
||||
action: { musicManager.seek(by: -seekInterval) }
|
||||
)
|
||||
forwardConfig = (
|
||||
icon: "goforward.10",
|
||||
press: .wiggle(.clockwise),
|
||||
action: { musicManager.seek(by: seekInterval) }
|
||||
)
|
||||
}
|
||||
|
||||
return HStack(spacing: 8) {
|
||||
if showShuffleAndRepeat {
|
||||
auxButton(for: controls.left)
|
||||
}
|
||||
HoverButton(icon: "backward.fill", scale: .medium, pressEffect: .nudge(-6)) {
|
||||
MusicManager.shared.previousTrack()
|
||||
|
||||
HoverButton(
|
||||
icon: backwardConfig.icon,
|
||||
scale: .medium,
|
||||
pressEffect: backwardConfig.press
|
||||
) {
|
||||
backwardConfig.action()
|
||||
}
|
||||
|
||||
HoverButton(icon: musicManager.isPlaying ? "pause.fill" : "play.fill", scale: .large) {
|
||||
MusicManager.shared.togglePlay()
|
||||
}
|
||||
HoverButton(icon: "forward.fill", scale: .medium, pressEffect: .nudge(6)) {
|
||||
MusicManager.shared.nextTrack()
|
||||
|
||||
HoverButton(
|
||||
icon: forwardConfig.icon,
|
||||
scale: .medium,
|
||||
pressEffect: forwardConfig.press
|
||||
) {
|
||||
forwardConfig.action()
|
||||
}
|
||||
|
||||
if showShuffleAndRepeat {
|
||||
auxButton(for: controls.right)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue