forked from akai/readest
05da6bdf43
Hand selected words off to the platform's native dictionary surface when the user opts into the new "System Dictionary" entry under Settings → Languages → Dictionaries. The setting is exclusive: enabling it disables all other providers (and vice versa) so the in-app lookup button either always opens the popup or always invokes the OS — no mixed states. Per platform: - macOS: AppKit's -[NSView showDefinitionForAttributedString:atPoint:] via a top-level Tauri command in src-tauri/src/macos/system_dictionary.rs. Anchored at the selection's bottom-center (CSS pixels mapped into NSView coords), so the inline Lookup HUD appears just below the highlighted text without raising Dictionary.app to the foreground. - iOS: UIReferenceLibraryViewController presented as a half-detent pageSheet on iPhone (medium → large drag-to-expand) and as a formSheet on iPad. Implemented in the native-bridge plugin. - Android: ACTION_PROCESS_TEXT intent with EXTRA_PROCESS_TEXT_READONLY, dispatched without createChooser so users get the standard system disambiguation dialog with "Just once / Always" buttons. Reports unavailable=true when no app handles the intent so the TS layer can silently skip rather than open an empty chooser. Web/Linux/Windows hide the row entirely. The provider is a sentinel — the registry filters it out of the popup tab list (it has no in-popup UI) and the annotator's handleDictionary checks isSystemDictionaryEnabled to dispatch directly to the native bridge before opening the in-app DictionaryPopup.
40 lines
1.2 KiB
TOML
40 lines
1.2 KiB
TOML
[default]
|
|
description = "Default permissions for the plugin"
|
|
permissions = [
|
|
"allow-auth-with-safari",
|
|
"allow-auth-with-custom-tab",
|
|
"allow-copy-uri-to-path",
|
|
"allow-use-background-audio",
|
|
"allow-install-package",
|
|
"allow-set-system-ui-visibility",
|
|
"allow-get-status-bar-height",
|
|
"allow-get-sys-fonts-list",
|
|
"allow-intercept-keys",
|
|
"allow-lock-screen-orientation",
|
|
"allow-iap-is-available",
|
|
"allow-iap-initialize",
|
|
"allow-iap-fetch-products",
|
|
"allow-iap-purchase-product",
|
|
"allow-iap-restore-purchases",
|
|
"allow-get-system-color-scheme",
|
|
"allow-get-safe-area-insets",
|
|
"allow-get-screen-brightness",
|
|
"allow-set-screen-brightness",
|
|
"allow-get-external-sdcard-path",
|
|
"allow-open-external-url",
|
|
"allow-show-lookup-popover",
|
|
"allow-select-directory",
|
|
"allow-get-storefront-region-code",
|
|
"allow-request-manage-storage-permission",
|
|
"allow-register-listener",
|
|
"allow-remove-listener",
|
|
"allow-check-permissions",
|
|
"allow-request-permissions",
|
|
"allow-checkPermissions",
|
|
"allow-requestPermissions",
|
|
"allow-set-sync-passphrase",
|
|
"allow-get-sync-passphrase",
|
|
"allow-clear-sync-passphrase",
|
|
"allow-is-sync-keychain-available",
|
|
]
|