Skip to content

Commit 0ea653e

Browse files
committed
Improve open items bar button image creation
1 parent 08d13a2 commit 0ea653e

File tree

4 files changed

+14
-7
lines changed

4 files changed

+14
-7
lines changed

Zotero/Controllers/OpenItemsController.swift

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -479,3 +479,10 @@ extension OpenItemsController {
479479
viewController.set(userActivity: activity)
480480
}
481481
}
482+
483+
extension UIImage {
484+
static func openItemsImage(count: Int) -> UIImage? {
485+
let count = max(0, count)
486+
return count <= 50 ? UIImage(systemName: "\(count).square") : UIImage(systemName: "square.grid.3x3.square")
487+
}
488+
}

Zotero/Scenes/Detail/Items/Views/ItemsViewController.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -487,8 +487,8 @@ final class ItemsViewController: UIViewController {
487487
}
488488

489489
private func updateRestoreOpenItemsButton(withCount count: Int) {
490-
guard let item = self.navigationItem.rightBarButtonItems?.first(where: { button in RightBarButtonItem(rawValue: button.tag) == .restoreOpenItems }) else { return }
491-
item.image = UIImage(systemName: "\(count).square")
490+
guard let item = navigationItem.rightBarButtonItems?.first(where: { button in RightBarButtonItem(rawValue: button.tag) == .restoreOpenItems }) else { return }
491+
item.image = .openItemsImage(count: count)
492492
}
493493

494494
private func setupRightBarButtonItems(for state: ItemsState) {
@@ -583,7 +583,7 @@ final class ItemsViewController: UIViewController {
583583
}
584584

585585
case .restoreOpenItems:
586-
image = UIImage(systemName: "0.square")
586+
image = .openItemsImage(count: 0)
587587
accessibilityLabel = L10n.Items.restoreOpen
588588
primaryAction = UIAction { [weak self] _ in
589589
guard let self, let presenter, let controller = controllers.userControllers?.openItemsController, let sessionIdentifier = getSessionIdentifier() else { return }

Zotero/Scenes/Detail/PDF/Views/PDFReaderViewController.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ class PDFReaderViewController: UIViewController {
107107
return share
108108
}()
109109
private lazy var openItemsButton: UIBarButtonItem = {
110-
let openItems = UIBarButtonItem(image: UIImage(systemName: "0.square"), style: .plain, target: nil, action: nil)
110+
let openItems = UIBarButtonItem(image: .openItemsImage(count: 0), style: .plain, target: nil, action: nil)
111111
openItems.isEnabled = true
112112
openItems.accessibilityLabel = L10n.Accessibility.Pdf.openItems
113113
openItems.title = L10n.Accessibility.Pdf.openItems
@@ -685,7 +685,7 @@ class PDFReaderViewController: UIViewController {
685685
private func createRightBarButtonItems(for state: PDFReaderState) -> [UIBarButtonItem] {
686686
var buttons = [settingsButton, shareButton, searchButton]
687687
buttons.insert(openItemsButton, at: 1)
688-
openItemsButton.image = .init(systemName: "\(state.openItemsCount).square")
688+
openItemsButton.image = .openItemsImage(count: state.openItemsCount)
689689

690690
if state.library.metadataEditable {
691691
buttons.append(toolbarButton)

Zotero/Scenes/General/Views/NoteEditorViewController.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ final class NoteEditorViewController: UIViewController {
101101
item = done
102102

103103
case .restoreOpenItems:
104-
let openItems = UIBarButtonItem(image: UIImage(systemName: "0.square"), style: .plain, target: nil, action: nil)
104+
let openItems = UIBarButtonItem(image: .openItemsImage(count: 0), style: .plain, target: nil, action: nil)
105105
openItems.isEnabled = true
106106
openItems.accessibilityLabel = L10n.Accessibility.Pdf.openItems
107107
openItems.title = L10n.Accessibility.Pdf.openItems
@@ -129,7 +129,7 @@ final class NoteEditorViewController: UIViewController {
129129

130130
func updateRestoreOpenItemsButton(withCount count: Int) {
131131
guard let item = navigationItem.rightBarButtonItems?.first(where: { button in RightBarButtonItem(rawValue: button.tag) == .restoreOpenItems }) else { return }
132-
item.image = UIImage(systemName: "\(count).square")
132+
item.image = .openItemsImage(count: count)
133133
}
134134

135135
func forceSaveIfNeeded() {

0 commit comments

Comments
 (0)