Files
linkding-ios/Marks/Intents/BookmarkOnscreen.swift
Krishna Kumar a3059f25fc
All checks were successful
CI / build-and-deploy (push) Successful in 28s
feat(intents): onscreen entity annotations + App Intents tests
- bookmarkOnscreen(_:) publishes the viewed bookmark as the on-screen
  entity (NSUserActivity.appEntityIdentifier) so Siri can resolve "this"
  / "summarize this one"; applied to the BrowserView sheets in
  BookmarksView and SearchView
- Add MarksTests (XCTest) covering entity mapping, EntityIdentifier,
  IntentRouter, and the real perform() of SearchMarksIntent and
  OpenBookmarkIntent; wired into the Marks scheme test phase

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 00:16:46 -05:00

20 lines
883 B
Swift

import SwiftUI
import AppIntents
extension View {
/// Marks `bookmark` as the on-screen entity via an `NSUserActivity`, so
/// Siri / Apple Intelligence can resolve references like "summarize this"
/// or "open this one" while the bookmark is being viewed.
///
/// iOS 26.0 ships no SwiftUI `.appEntityIdentifier` modifier, so this uses
/// the supported path: the standard `.userActivity` modifier plus
/// `NSUserActivity.appEntityIdentifier` (from `AppEntityAnnotatable`).
func bookmarkOnscreen(_ bookmark: Bookmark) -> some View {
userActivity("com.magicive.marks.viewBookmark", element: bookmark.id) { id, activity in
activity.title = bookmark.displayTitle
activity.appEntityIdentifier = EntityIdentifier(for: BookmarkEntity.self, identifier: id)
activity.isEligibleForSearch = true
}
}
}