mirror of
https://github.com/SideStore/SideStore.git
synced 2026-02-09 06:43:25 +01:00
Fixes Error Log context menu appearing while scrolling
This commit is contained in:
@@ -21,6 +21,13 @@ final class ErrorLogViewController: UITableViewController
|
|||||||
private lazy var dataSource = self.makeDataSource()
|
private lazy var dataSource = self.makeDataSource()
|
||||||
private var expandedErrorIDs = Set<NSManagedObjectID>()
|
private var expandedErrorIDs = Set<NSManagedObjectID>()
|
||||||
|
|
||||||
|
private var isScrolling = false {
|
||||||
|
didSet {
|
||||||
|
guard self.isScrolling != oldValue else { return }
|
||||||
|
self.updateButtonInteractivity()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private lazy var timeFormatter: DateFormatter = {
|
private lazy var timeFormatter: DateFormatter = {
|
||||||
let dateFormatter = DateFormatter()
|
let dateFormatter = DateFormatter()
|
||||||
dateFormatter.dateStyle = .none
|
dateFormatter.dateStyle = .none
|
||||||
@@ -103,6 +110,7 @@ private extension ErrorLogViewController
|
|||||||
])
|
])
|
||||||
|
|
||||||
cell.menuButton.menu = menu
|
cell.menuButton.menu = menu
|
||||||
|
cell.menuButton.showsMenuAsPrimaryAction = self.isScrolling ? false : true
|
||||||
}
|
}
|
||||||
|
|
||||||
// Include errorDescriptionTextView's text in cell summary.
|
// Include errorDescriptionTextView's text in cell summary.
|
||||||
@@ -331,3 +339,39 @@ extension ErrorLogViewController: QLPreviewControllerDataSource {
|
|||||||
return fileURL as QLPreviewItem
|
return fileURL as QLPreviewItem
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extension ErrorLogViewController
|
||||||
|
{
|
||||||
|
override func scrollViewWillBeginDragging(_ scrollView: UIScrollView)
|
||||||
|
{
|
||||||
|
self.isScrolling = true
|
||||||
|
}
|
||||||
|
|
||||||
|
override func scrollViewDidEndDecelerating(_ scrollView: UIScrollView)
|
||||||
|
{
|
||||||
|
self.isScrolling = false
|
||||||
|
}
|
||||||
|
|
||||||
|
override func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool)
|
||||||
|
{
|
||||||
|
guard !decelerate else { return }
|
||||||
|
self.isScrolling = false
|
||||||
|
}
|
||||||
|
|
||||||
|
private func updateButtonInteractivity()
|
||||||
|
{
|
||||||
|
guard #available(iOS 14, *) else { return }
|
||||||
|
|
||||||
|
for case let cell as ErrorLogTableViewCell in self.tableView.visibleCells
|
||||||
|
{
|
||||||
|
if self.isScrolling
|
||||||
|
{
|
||||||
|
cell.menuButton.showsMenuAsPrimaryAction = false
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cell.menuButton.showsMenuAsPrimaryAction = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user