Skip to content

Commit d4a9619

Browse files
Improvements menu (#3284)
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
1 parent 3e8e385 commit d4a9619

File tree

2 files changed

+25
-14
lines changed

2 files changed

+25
-14
lines changed

iOSClient/Favorites/NCFavoriteNavigationController.swift

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,18 @@ class NCFavoriteNavigationController: NCMainNavigationController {
1010
return
1111
}
1212

13-
func createMenu() -> [UIMenuElement] {
13+
func createMenu() -> UIMenu? {
1414
guard let items = self.createMenuActions()
1515
else {
16-
return []
16+
return nil
1717
}
1818

19-
let additionalSubmenu = UIMenu(title: "", options: .displayInline, children: [items.foldersOnTop])
20-
21-
return [items.select, items.viewStyleSubmenu, items.sortSubmenu, additionalSubmenu]
19+
if collectionViewCommon.layoutKey == global.layoutViewFavorite {
20+
return UIMenu(children: [items.select, items.viewStyleSubmenu, items.sortSubmenu])
21+
} else {
22+
let additionalSubmenu = UIMenu(title: "", options: .displayInline, children: [items.foldersOnTop, items.personalFilesOnlyAction, items.showDescription])
23+
return UIMenu(children: [items.select, items.viewStyleSubmenu, items.sortSubmenu, additionalSubmenu])
24+
}
2225
}
2326

2427
if collectionViewCommon.isEditMode {
@@ -35,15 +38,18 @@ class NCFavoriteNavigationController: NCMainNavigationController {
3538
} else if self.collectionViewCommon?.navigationItem.rightBarButtonItems == nil || (!collectionViewCommon.isEditMode && !(collectionViewCommon.tabBarSelect?.isHidden() ?? true)) {
3639
collectionViewCommon.tabBarSelect?.hide()
3740

38-
let menuButton = UIBarButtonItem(image: utility.loadImage(named: "ellipsis.circle"), menu: UIMenu(children: createMenu()))
41+
let menuButton = UIBarButtonItem(image: utility.loadImage(named: "ellipsis.circle"), menu: createMenu())
3942
menuButton.tag = menuButtonTag
4043
menuButton.tintColor = NCBrandColor.shared.iconImageColor
4144

4245
self.collectionViewCommon?.navigationItem.rightBarButtonItems = [menuButton]
4346

4447
} else {
4548

46-
self.collectionViewCommon?.navigationItem.rightBarButtonItems?.first?.menu = self.collectionViewCommon?.navigationItem.rightBarButtonItems?.first?.menu?.replacingChildren(createMenu())
49+
if let rightBarButtonItems = self.collectionViewCommon?.navigationItem.rightBarButtonItems,
50+
let menuBarButtonItem = rightBarButtonItems.first(where: { $0.tag == menuButtonTag }) {
51+
menuBarButtonItem.menu = createMenu()
52+
}
4753
}
4854

4955
// fix, if the tabbar was hidden before the update, set it in hidden

iOSClient/More/NCMoreNavigationController.swift

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,21 @@ class NCMoreNavigationController: NCMainNavigationController {
1010
return
1111
}
1212

13-
func createMenu() -> [UIMenuElement] {
13+
func createMenu() -> UIMenu? {
1414
guard let items = self.createMenuActions()
1515
else {
16-
return []
16+
return nil
1717
}
1818

1919
if collectionViewCommon.layoutKey == global.layoutViewRecent {
20-
return [items.select, items.viewStyleSubmenu]
20+
return UIMenu(children: [items.select, items.viewStyleSubmenu])
2121
} else if collectionViewCommon.layoutKey == global.layoutViewOffline {
22-
return [items.select, items.viewStyleSubmenu]
22+
return UIMenu(children: [items.select, items.viewStyleSubmenu, items.sortSubmenu])
23+
} else if collectionViewCommon.layoutKey == global.layoutViewShares {
24+
return UIMenu(children: [items.select, items.viewStyleSubmenu, items.sortSubmenu])
2325
} else {
2426
let additionalSubmenu = UIMenu(title: "", options: .displayInline, children: [items.foldersOnTop, items.personalFilesOnlyAction, items.showDescription])
25-
return [items.select, items.viewStyleSubmenu, items.sortSubmenu, additionalSubmenu]
27+
return UIMenu(children: [items.select, items.viewStyleSubmenu, items.sortSubmenu, additionalSubmenu])
2628
}
2729
}
2830

@@ -40,15 +42,18 @@ class NCMoreNavigationController: NCMainNavigationController {
4042
} else if self.collectionViewCommon?.navigationItem.rightBarButtonItems == nil || (!collectionViewCommon.isEditMode && !(collectionViewCommon.tabBarSelect?.isHidden() ?? true)) {
4143
collectionViewCommon.tabBarSelect?.hide()
4244

43-
let menuButton = UIBarButtonItem(image: utility.loadImage(named: "ellipsis.circle"), menu: UIMenu(children: createMenu()))
45+
let menuButton = UIBarButtonItem(image: utility.loadImage(named: "ellipsis.circle"), menu: createMenu())
4446
menuButton.tag = menuButtonTag
4547
menuButton.tintColor = NCBrandColor.shared.iconImageColor
4648

4749
self.collectionViewCommon?.navigationItem.rightBarButtonItems = [menuButton]
4850

4951
} else {
5052

51-
self.collectionViewCommon?.navigationItem.rightBarButtonItems?.first?.menu = self.collectionViewCommon?.navigationItem.rightBarButtonItems?.first?.menu?.replacingChildren(createMenu())
53+
if let rightBarButtonItems = self.collectionViewCommon?.navigationItem.rightBarButtonItems,
54+
let menuBarButtonItem = rightBarButtonItems.first(where: { $0.tag == menuButtonTag }) {
55+
menuBarButtonItem.menu = createMenu()
56+
}
5257
}
5358

5459
// fix, if the tabbar was hidden before the update, set it in hidden

0 commit comments

Comments
 (0)