Skip to content

Commit

Permalink
Improve code
Browse files Browse the repository at this point in the history
  • Loading branch information
mvasilak committed Sep 23, 2024
1 parent bfbd058 commit 0550443
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 15 deletions.
19 changes: 8 additions & 11 deletions Zotero/Controllers/OpenItemsController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ final class OpenItemsController {
itemsBySessionIdentifier[sessionIdentifier, default: []]
}

func setItems(_ items: [Item], for sessionIdentifier: String, validate: Bool) {
func set(items: [Item], for sessionIdentifier: String, validate: Bool) {
DDLogInfo("OpenItemsController: setting items \(items) for \(sessionIdentifier)")
let existingItems = getItems(for: sessionIdentifier)
let newItems = validate ? filterValidItems(items) : items
Expand Down Expand Up @@ -179,7 +179,7 @@ final class OpenItemsController {
if !deletions.isEmpty, let self {
// Observed items have been deleted, call setItems to validate and register new observer.
let existingItems = getItems(for: sessionIdentifier)
setItems(existingItems, for: sessionIdentifier, validate: true)
set(items: existingItems, for: sessionIdentifier, validate: true)
}

case .error(let error):
Expand All @@ -198,7 +198,7 @@ final class OpenItemsController {
for i in 0..<newItems.count {
newItems[i].userIndex = i
}
setItems(newItems, for: sessionIdentifier, validate: validate)
set(items: newItems, for: sessionIdentifier, validate: validate)
}

func sessionIdentifier(for kind: Item.Kind) -> String? {
Expand All @@ -219,7 +219,7 @@ final class OpenItemsController {
let item = Item(kind: kind, userIndex: existingItems.count)
let newItems = existingItems + [item]
// setItems will produce next observable event
setItems(newItems, for: sessionIdentifier, validate: false)
set(items: newItems, for: sessionIdentifier, validate: false)
}
}

Expand Down Expand Up @@ -270,7 +270,7 @@ final class OpenItemsController {
existingItems.removeAll(where: { $0 == item })
}
// setItems will produce next observable event
setItems(existingItems, for: sessionIdentifier, validate: false)
set(items: existingItems, for: sessionIdentifier, validate: false)
}
if let presenter {
presenter.showItem(with: presentation)
Expand Down Expand Up @@ -348,7 +348,7 @@ final class OpenItemsController {
if itemsCount > 1 {
let closeOtherAction = UIAction(title: L10n.Accessibility.Pdf.closeOtherOpenItems, image: .init(systemName: "checkmark.circle.badge.xmark")) { [weak self] _ in
guard let self else { return }
setItems([item], for: sessionIdentifier, validate: false)
set(items: [item], for: sessionIdentifier, validate: false)
completion(false, true)
}
currentItemActions.append(closeOtherAction)
Expand All @@ -369,7 +369,7 @@ final class OpenItemsController {

let closeAllAction = UIAction(title: L10n.Accessibility.Pdf.closeAllOpenItems, image: .init(systemName: "xmark.square")) { [weak self] _ in
guard let self else { return }
setItems([], for: sessionIdentifier, validate: false)
set(items: [], for: sessionIdentifier, validate: false)
openItemPresenterProvider()?.showItem(with: nil)
completion(true, true)
}
Expand Down Expand Up @@ -507,10 +507,7 @@ final class OpenItemsController {

extension OpenItemsController {
func openItemsUserActivity(for sessionIdentifier: String?, libraryId: LibraryIdentifier, collectionId: CollectionIdentifier? = nil) -> NSUserActivity {
var items: [Item] = []
if let sessionIdentifier {
items = getItems(for: sessionIdentifier)
}
let items = sessionIdentifier.flatMap({ getItems(for: $0) }) ?? []
return items.isEmpty ? .mainActivity(with: []) : .contentActivity(with: items, libraryId: libraryId, collectionId: collectionId ?? Defaults.shared.selectedCollectionId)
}

Expand Down
12 changes: 8 additions & 4 deletions Zotero/Scenes/AppCoordinator.swift
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ extension AppCoordinator: AppDelegateCoordinatorDelegate {
DDLogInfo("AppCoordinator: Preprocessing restored state - \(data)")
Defaults.shared.selectedLibrary = data.libraryId
Defaults.shared.selectedCollectionId = data.collectionId
controllers.userControllers?.openItemsController.setItems(data.openItems, for: session.persistentIdentifier, validate: true)
controllers.userControllers?.openItemsController.set(items: data.openItems, for: session.persistentIdentifier, validate: true)
}
return (urlContext, data)
}
Expand Down Expand Up @@ -213,7 +213,9 @@ extension AppCoordinator: AppDelegateCoordinatorDelegate {
mainController.showItems(for: collection, in: data.libraryId)
guard data.restoreMostRecentlyOpenedItem else { return }
openItemsController.restoreMostRecentlyOpenedItem(using: self, sessionIdentifier: sessionIdentifier) { item in
if item == nil {
if let item {
DDLogInfo("AppCoordinator: restored open item - \(item)")
} else {
DDLogInfo("AppCoordinator: no open item to restore")
}
}
Expand Down Expand Up @@ -375,7 +377,7 @@ extension AppCoordinator: AppDelegateCoordinatorDelegate {

func showMainScreen(with data: RestoredStateData, session: UISceneSession) -> Bool {
guard let window, let mainController = window.rootViewController as? MainViewController else { return false }
controllers.userControllers?.openItemsController.setItems(data.openItems, for: session.persistentIdentifier, validate: true)
controllers.userControllers?.openItemsController.set(items: data.openItems, for: session.persistentIdentifier, validate: true)
mainController.dismiss(animated: false) {
mainController.masterCoordinator?.showCollections(for: data.libraryId, preselectedCollection: data.collectionId, animated: false)
}
Expand All @@ -386,7 +388,9 @@ extension AppCoordinator: AppDelegateCoordinatorDelegate {
guard userActivity.activityType == NSUserActivity.contentContainerId, let window, let mainController = window.rootViewController as? MainViewController else { return }
mainController.getDetailCoordinator { [weak self] coordinator in
self?.controllers.userControllers?.openItemsController.restoreMostRecentlyOpenedItem(using: coordinator, sessionIdentifier: sessionIdentifier) { item in
if item == nil {
if let item {
DDLogInfo("AppCoordinator: restored open item for continued user activity - \(item)")
} else {
DDLogInfo("AppCoordinator: no open item to restore for continued user activity")
}
}
Expand Down

0 comments on commit 0550443

Please sign in to comment.