Add separators to iOS context menus
This commit is contained in:
parent
cab5a8178d
commit
a80fc871c4
@ -594,16 +594,17 @@ extension MasterFeedViewController: UIContextMenuInteractionDelegate {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return UIContextMenuConfiguration(identifier: sectionIndex as NSCopying, previewProvider: nil) { suggestedActions in
|
return UIContextMenuConfiguration(identifier: sectionIndex as NSCopying, previewProvider: nil) { suggestedActions in
|
||||||
let accountInfoAction = self.getAccountInfoAction(account: account)
|
|
||||||
let deactivateAction = self.deactivateAccountAction(account: account)
|
|
||||||
|
|
||||||
var actions = [accountInfoAction, deactivateAction]
|
var menuElements = [UIMenuElement]()
|
||||||
|
menuElements.append(UIMenu(title: "", options: .displayInline, children: [self.getAccountInfoAction(account: account)]))
|
||||||
|
|
||||||
if let markAllAction = self.markAllAsReadAction(account: account, contentView: interaction.view) {
|
if let markAllAction = self.markAllAsReadAction(account: account, contentView: interaction.view) {
|
||||||
actions.insert(markAllAction, at: 1)
|
menuElements.append(UIMenu(title: "", options: .displayInline, children: [markAllAction]))
|
||||||
}
|
}
|
||||||
|
|
||||||
return UIMenu(title: "", children: actions)
|
menuElements.append(UIMenu(title: "", options: .displayInline, children: [self.deactivateAccountAction(account: account)]))
|
||||||
|
|
||||||
|
return UIMenu(title: "", children: menuElements)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -891,34 +892,41 @@ private extension MasterFeedViewController {
|
|||||||
|
|
||||||
guard let self = self else { return nil }
|
guard let self = self else { return nil }
|
||||||
|
|
||||||
var actions = [UIAction]()
|
var menuElements = [UIMenuElement]()
|
||||||
|
|
||||||
if let inspectorAction = self.getInfoAction(indexPath: indexPath) {
|
if let inspectorAction = self.getInfoAction(indexPath: indexPath) {
|
||||||
actions.append(inspectorAction)
|
menuElements.append(UIMenu(title: "", options: .displayInline, children: [inspectorAction]))
|
||||||
}
|
}
|
||||||
|
|
||||||
if let homePageAction = self.homePageAction(indexPath: indexPath) {
|
if let homePageAction = self.homePageAction(indexPath: indexPath) {
|
||||||
actions.append(homePageAction)
|
menuElements.append(UIMenu(title: "", options: .displayInline, children: [homePageAction]))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var pageActions = [UIAction]()
|
||||||
if let copyFeedPageAction = self.copyFeedPageAction(indexPath: indexPath) {
|
if let copyFeedPageAction = self.copyFeedPageAction(indexPath: indexPath) {
|
||||||
actions.append(copyFeedPageAction)
|
pageActions.append(copyFeedPageAction)
|
||||||
}
|
}
|
||||||
|
|
||||||
if let copyHomePageAction = self.copyHomePageAction(indexPath: indexPath) {
|
if let copyHomePageAction = self.copyHomePageAction(indexPath: indexPath) {
|
||||||
actions.append(copyHomePageAction)
|
pageActions.append(copyHomePageAction)
|
||||||
|
}
|
||||||
|
if !pageActions.isEmpty {
|
||||||
|
menuElements.append(UIMenu(title: "", options: .displayInline, children: pageActions))
|
||||||
}
|
}
|
||||||
|
|
||||||
if let markAllAction = self.markAllAsReadAction(indexPath: indexPath) {
|
if let markAllAction = self.markAllAsReadAction(indexPath: indexPath) {
|
||||||
actions.append(markAllAction)
|
menuElements.append(UIMenu(title: "", options: .displayInline, children: [markAllAction]))
|
||||||
}
|
}
|
||||||
|
|
||||||
if includeDeleteRename {
|
if includeDeleteRename {
|
||||||
actions.append(self.renameAction(indexPath: indexPath))
|
menuElements.append(UIMenu(title: "",
|
||||||
actions.append(self.deleteAction(indexPath: indexPath))
|
options: .displayInline,
|
||||||
|
children: [
|
||||||
|
self.renameAction(indexPath: indexPath),
|
||||||
|
self.deleteAction(indexPath: indexPath)
|
||||||
|
]))
|
||||||
}
|
}
|
||||||
|
|
||||||
return UIMenu(title: "", children: actions)
|
return UIMenu(title: "", children: menuElements)
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -929,15 +937,20 @@ private extension MasterFeedViewController {
|
|||||||
|
|
||||||
guard let self = self else { return nil }
|
guard let self = self else { return nil }
|
||||||
|
|
||||||
var actions = [UIAction]()
|
var menuElements = [UIMenuElement]()
|
||||||
actions.append(self.deleteAction(indexPath: indexPath))
|
|
||||||
actions.append(self.renameAction(indexPath: indexPath))
|
|
||||||
|
|
||||||
if let markAllAction = self.markAllAsReadAction(indexPath: indexPath) {
|
if let markAllAction = self.markAllAsReadAction(indexPath: indexPath) {
|
||||||
actions.append(markAllAction)
|
menuElements.append(UIMenu(title: "", options: .displayInline, children: [markAllAction]))
|
||||||
}
|
}
|
||||||
|
|
||||||
return UIMenu(title: "", children: actions)
|
menuElements.append(UIMenu(title: "",
|
||||||
|
options: .displayInline,
|
||||||
|
children: [
|
||||||
|
self.renameAction(indexPath: indexPath),
|
||||||
|
self.deleteAction(indexPath: indexPath)
|
||||||
|
]))
|
||||||
|
|
||||||
|
return UIMenu(title: "", children: menuElements)
|
||||||
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -336,38 +336,41 @@ class MasterTimelineViewController: UITableViewController, UndoableCommandRunner
|
|||||||
|
|
||||||
guard let self = self else { return nil }
|
guard let self = self else { return nil }
|
||||||
|
|
||||||
var actions = [UIAction]()
|
var menuElements = [UIMenuElement]()
|
||||||
|
|
||||||
|
var markActions = [UIAction]()
|
||||||
if let action = self.toggleArticleReadStatusAction(article) {
|
if let action = self.toggleArticleReadStatusAction(article) {
|
||||||
actions.append(action)
|
markActions.append(action)
|
||||||
}
|
}
|
||||||
|
markActions.append(self.toggleArticleStarStatusAction(article))
|
||||||
actions.append(self.toggleArticleStarStatusAction(article))
|
|
||||||
|
|
||||||
if let action = self.markAboveAsReadAction(article, indexPath: indexPath) {
|
if let action = self.markAboveAsReadAction(article, indexPath: indexPath) {
|
||||||
actions.append(action)
|
markActions.append(action)
|
||||||
}
|
}
|
||||||
|
|
||||||
if let action = self.markBelowAsReadAction(article, indexPath: indexPath) {
|
if let action = self.markBelowAsReadAction(article, indexPath: indexPath) {
|
||||||
actions.append(action)
|
markActions.append(action)
|
||||||
}
|
}
|
||||||
|
menuElements.append(UIMenu(title: "", options: .displayInline, children: markActions))
|
||||||
|
|
||||||
|
var secondaryActions = [UIAction]()
|
||||||
if let action = self.discloseFeedAction(article) {
|
if let action = self.discloseFeedAction(article) {
|
||||||
actions.append(action)
|
secondaryActions.append(action)
|
||||||
}
|
}
|
||||||
|
|
||||||
if let action = self.markAllInFeedAsReadAction(article, indexPath: indexPath) {
|
if let action = self.markAllInFeedAsReadAction(article, indexPath: indexPath) {
|
||||||
actions.append(action)
|
secondaryActions.append(action)
|
||||||
|
}
|
||||||
|
if !secondaryActions.isEmpty {
|
||||||
|
menuElements.append(UIMenu(title: "", options: .displayInline, children: secondaryActions))
|
||||||
}
|
}
|
||||||
|
|
||||||
if let action = self.openInBrowserAction(article) {
|
if let action = self.openInBrowserAction(article) {
|
||||||
actions.append(action)
|
menuElements.append(UIMenu(title: "", options: .displayInline, children: [action]))
|
||||||
}
|
}
|
||||||
|
|
||||||
if let action = self.shareAction(article, indexPath: indexPath) {
|
if let action = self.shareAction(article, indexPath: indexPath) {
|
||||||
actions.append(action)
|
menuElements.append(UIMenu(title: "", options: .displayInline, children: [action]))
|
||||||
}
|
}
|
||||||
|
|
||||||
return UIMenu(title: "", children: actions)
|
return UIMenu(title: "", children: menuElements)
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user