mirror of
https://github.com/SideStore/SideStore.git
synced 2026-02-17 10:43:30 +01:00
Fixes Error Log context menu appearing while scrolling table view
This commit is contained in:
@@ -19,6 +19,13 @@ 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
|
||||||
@@ -106,6 +113,15 @@ private extension ErrorLogViewController
|
|||||||
])
|
])
|
||||||
|
|
||||||
cell.menuButton.menu = menu
|
cell.menuButton.menu = menu
|
||||||
|
|
||||||
|
if self.isScrolling
|
||||||
|
{
|
||||||
|
cell.menuButton.showsMenuAsPrimaryAction = false
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cell.menuButton.showsMenuAsPrimaryAction = true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Include errorDescriptionTextView's text in cell summary.
|
// Include errorDescriptionTextView's text in cell summary.
|
||||||
@@ -315,3 +331,39 @@ extension ErrorLogViewController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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