folder button minor improvements

This commit is contained in:
True Zhuanjia committed 2026-02-01 11:26:39 +08:00
1 parent d14ee640c5
commit be69af925a
1 file changed
+29 -35
+29 -35
View File
@@ -2758,49 +2758,43 @@ import SVGKit
folder.folded = hidden folder.folded = hidden
folder.setupAtrributedText() folder.setupAtrributedText()
if hidden { if hidden {
folder.forEachWidget{ widget in for sequence in folder.sequenceSet {
guard widget != folder else {return} guard let widget = OnScreenWidgetView.mapping[sequence], widget != exception else {continue}
if folder.sequenceSet.contains(widget.sequence), widget != exception{ DispatchQueue.main.async {
DispatchQueue.main.async { widget.isUserInteractionEnabled = false
widget.isUserInteractionEnabled = false let duration = folder.buttonMode == .slideAndHold ? 0.05 : 0.15
let duration = folder.buttonMode == .slideAndHold ? 0.05 : 0.15 UIView.animate(withDuration: duration, animations: {
UIView.animate(withDuration: duration, animations: { widget.center = folder.center
widget.center = folder.center },completion: { finished in
},completion: { finished in widget.isUserInteractionEnabled = !folder.folded
widget.isUserInteractionEnabled = !folder.folded widget.center = folder.folded ? folder.storedCenter : widget.storedCenter
widget.center = folder.folded ? folder.storedCenter : widget.storedCenter widget.isHidden = folder.folded
widget.isHidden = folder.folded })
})
}
} }
} }
} }
else{ else{
folder.forEachWidget{ widget in for sequence in folder.sequenceSet {
guard widget != folder else {return} guard let widget = OnScreenWidgetView.mapping[sequence], widget != exception else {continue}
if folder.sequenceSet.contains(widget.sequence), widget != exception{ DispatchQueue.main.async {
DispatchQueue.main.async { widget.center = folder.storedCenter
widget.center = folder.storedCenter widget.isUserInteractionEnabled = false
widget.isUserInteractionEnabled = false widget.isHidden = false
widget.isHidden = false UIView.animate(withDuration: folder.buttonMode == .slideAndHold ? 0.05 : 0.15, animations: {
UIView.animate(withDuration: folder.buttonMode == .slideAndHold ? 0.05 : 0.15, animations: { widget.center = widget.storedCenter
widget.center = widget.storedCenter },completion: { finished in
},completion: { finished in widget.isUserInteractionEnabled = !folder.folded
widget.isUserInteractionEnabled = !folder.folded widget.center = folder.folded ? folder.storedCenter : widget.storedCenter
widget.center = folder.folded ? folder.storedCenter : widget.storedCenter widget.isHidden = folder.folded
widget.isHidden = folder.folded })
})
}
} }
} }
} }
if recursive { if recursive {
folder.forEachWidget{ widget in for sequence in folder.sequenceSet {
guard widget != folder else {return} guard let widget = OnScreenWidgetView.mapping[sequence] else {continue}
guard widget.isFolder, widget != exception else {return} guard widget.isFolder, widget != exception else {continue}
if folder.sequenceSet.contains(widget.sequence){ OnScreenWidgetView.setCollection(hidden: hidden, for: widget, exception: exception, recursive: true)
OnScreenWidgetView.setCollection(hidden: hidden, for: widget, exception: exception, recursive: true)
}
} }
} }
} }