6c7c86f346
* feat(applock): wire up biometric plugin + biometricUnlockEnabled setting Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(applock): add guarded biometric service wrapper * feat(applock): auto-prompt biometrics on the lock screen with PIN fallback Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(applock): guard concurrent biometric prompts + tighten lock-screen tests - Add biometricInFlightRef to prevent concurrent authenticateWithBiometrics calls - Assert PIN input still rendered after biometric failure (test 2) - Replace flaky waitFor negative assertion with a 50ms flush in test 3 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(applock): mobile biometric toggle + default-on at PIN setup Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore(i18n): add biometric app-lock strings * fix(applock): seed biometricUnlockEnabled via app-lock store init; close test gaps Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * build(applock): pin tauri-plugin-biometric in Cargo.lock Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
365 lines
10 KiB
Plaintext
365 lines
10 KiB
Plaintext
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
<plist version="1.0">
|
|
<dict>
|
|
<key>ITSAppUsesNonExemptEncryption</key>
|
|
<false/>
|
|
<key>NSFaceIDUsageDescription</key>
|
|
<string>Readest uses Face ID to unlock the app.</string>
|
|
<key>LSSupportsOpeningDocumentsInPlace</key>
|
|
<false/>
|
|
<key>UIViewControllerBasedStatusBarAppearance</key>
|
|
<false/>
|
|
<key>UIHomeIndicatorAutoHidden</key>
|
|
<true/>
|
|
<key>UIRequiresFullScreen</key>
|
|
<false/>
|
|
<key>CFBundleDocumentTypes</key>
|
|
<array>
|
|
<dict>
|
|
<key>CFBundleTypeName</key>
|
|
<string>EPUB Document</string>
|
|
<key>LSHandlerRank</key>
|
|
<string>Alternate</string>
|
|
<key>CFBundleTypeRole</key>
|
|
<string>Viewer</string>
|
|
<key>LSItemContentTypes</key>
|
|
<array>
|
|
<string>org.idpf.epub-container</string>
|
|
</array>
|
|
</dict>
|
|
|
|
<dict>
|
|
<key>CFBundleTypeName</key>
|
|
<string>PDF Document</string>
|
|
<key>LSHandlerRank</key>
|
|
<string>Alternate</string>
|
|
<key>CFBundleTypeRole</key>
|
|
<string>Viewer</string>
|
|
<key>LSItemContentTypes</key>
|
|
<array>
|
|
<string>com.adobe.pdf</string>
|
|
</array>
|
|
</dict>
|
|
|
|
<dict>
|
|
<key>CFBundleTypeName</key>
|
|
<string>FB2 Document</string>
|
|
<key>LSHandlerRank</key>
|
|
<string>Alternate</string>
|
|
<key>CFBundleTypeRole</key>
|
|
<string>Viewer</string>
|
|
<key>LSItemContentTypes</key>
|
|
<array>
|
|
<string>com.readest.fb2</string>
|
|
</array>
|
|
</dict>
|
|
|
|
<dict>
|
|
<key>CFBundleTypeName</key>
|
|
<string>CBZ Archive</string>
|
|
<key>LSHandlerRank</key>
|
|
<string>Alternate</string>
|
|
<key>CFBundleTypeRole</key>
|
|
<string>Viewer</string>
|
|
<key>LSItemContentTypes</key>
|
|
<array>
|
|
<string>com.readest.cbz</string>
|
|
</array>
|
|
</dict>
|
|
|
|
<dict>
|
|
<key>CFBundleTypeName</key>
|
|
<string>MOBI Document</string>
|
|
<key>LSHandlerRank</key>
|
|
<string>Alternate</string>
|
|
<key>CFBundleTypeRole</key>
|
|
<string>Viewer</string>
|
|
<key>LSItemContentTypes</key>
|
|
<array>
|
|
<string>org.mobipocket.mobi</string>
|
|
</array>
|
|
</dict>
|
|
|
|
<dict>
|
|
<key>CFBundleTypeName</key>
|
|
<string>AZW Document</string>
|
|
<key>LSHandlerRank</key>
|
|
<string>Alternate</string>
|
|
<key>CFBundleTypeRole</key>
|
|
<string>Viewer</string>
|
|
<key>LSItemContentTypes</key>
|
|
<array>
|
|
<string>com.amazon.azw</string>
|
|
<string>com.amazon.azw3</string>
|
|
</array>
|
|
</dict>
|
|
|
|
<dict>
|
|
<key>CFBundleTypeName</key>
|
|
<string>Text File</string>
|
|
<key>LSHandlerRank</key>
|
|
<string>Alternate</string>
|
|
<key>CFBundleTypeRole</key>
|
|
<string>Viewer</string>
|
|
<key>LSItemContentTypes</key>
|
|
<array>
|
|
<string>public.plain-text</string>
|
|
</array>
|
|
</dict>
|
|
</array>
|
|
|
|
<key>UTImportedTypeDeclarations</key>
|
|
<array>
|
|
<dict>
|
|
<key>UTTypeIdentifier</key>
|
|
<string>org.idpf.epub-container</string>
|
|
<key>UTTypeDescription</key>
|
|
<string>EPUB Document</string>
|
|
<key>UTTypeConformsTo</key>
|
|
<array>
|
|
<string>public.data</string>
|
|
<string>public.composite-content</string>
|
|
</array>
|
|
<key>UTTypeTagSpecification</key>
|
|
<dict>
|
|
<key>public.filename-extension</key>
|
|
<array>
|
|
<string>epub</string>
|
|
</array>
|
|
<key>public.mime-type</key>
|
|
<string>application/epub+zip</string>
|
|
</dict>
|
|
</dict>
|
|
|
|
<dict>
|
|
<key>UTTypeIdentifier</key>
|
|
<string>com.adobe.pdf</string>
|
|
<key>UTTypeDescription</key>
|
|
<string>PDF Document</string>
|
|
<key>UTTypeConformsTo</key>
|
|
<array>
|
|
<string>public.data</string>
|
|
<string>public.composite-content</string>
|
|
</array>
|
|
<key>UTTypeTagSpecification</key>
|
|
<dict>
|
|
<key>public.filename-extension</key>
|
|
<array>
|
|
<string>pdf</string>
|
|
</array>
|
|
<key>public.mime-type</key>
|
|
<string>application/pdf</string>
|
|
</dict>
|
|
</dict>
|
|
|
|
<dict>
|
|
<key>UTTypeIdentifier</key>
|
|
<string>com.readest.fb2</string>
|
|
<key>UTTypeDescription</key>
|
|
<string>FB2 Document</string>
|
|
<key>UTTypeConformsTo</key>
|
|
<array>
|
|
<string>public.xml</string>
|
|
</array>
|
|
<key>UTTypeTagSpecification</key>
|
|
<dict>
|
|
<key>public.filename-extension</key>
|
|
<array>
|
|
<string>fb2</string>
|
|
</array>
|
|
<key>public.mime-type</key>
|
|
<string>application/xml</string>
|
|
</dict>
|
|
</dict>
|
|
|
|
<dict>
|
|
<key>UTTypeIdentifier</key>
|
|
<string>com.readest.cbz</string>
|
|
<key>UTTypeDescription</key>
|
|
<string>CBZ Archive</string>
|
|
<key>UTTypeConformsTo</key>
|
|
<array>
|
|
<string>public.archive</string>
|
|
</array>
|
|
<key>UTTypeTagSpecification</key>
|
|
<dict>
|
|
<key>public.filename-extension</key>
|
|
<array>
|
|
<string>cbz</string>
|
|
</array>
|
|
<key>public.mime-type</key>
|
|
<string>application/x-cbz</string>
|
|
</dict>
|
|
</dict>
|
|
|
|
<dict>
|
|
<key>UTTypeIdentifier</key>
|
|
<string>org.mobipocket.mobi</string>
|
|
<key>UTTypeDescription</key>
|
|
<string>MOBI Document</string>
|
|
<key>UTTypeConformsTo</key>
|
|
<array>
|
|
<string>public.data</string>
|
|
</array>
|
|
<key>UTTypeTagSpecification</key>
|
|
<dict>
|
|
<key>public.filename-extension</key>
|
|
<array>
|
|
<string>mobi</string>
|
|
</array>
|
|
<key>public.mime-type</key>
|
|
<string>application/x-mobipocket-ebook</string>
|
|
</dict>
|
|
</dict>
|
|
|
|
<dict>
|
|
<key>UTTypeIdentifier</key>
|
|
<string>com.amazon.azw</string>
|
|
<key>UTTypeDescription</key>
|
|
<string>AZW Document</string>
|
|
<key>UTTypeConformsTo</key>
|
|
<array>
|
|
<string>public.data</string>
|
|
</array>
|
|
<key>UTTypeTagSpecification</key>
|
|
<dict>
|
|
<key>public.filename-extension</key>
|
|
<array>
|
|
<string>azw</string>
|
|
<string>azw3</string>
|
|
</array>
|
|
<key>public.mime-type</key>
|
|
<string>application/vnd.amazon.ebook</string>
|
|
</dict>
|
|
</dict>
|
|
|
|
<dict>
|
|
<key>UTTypeIdentifier</key>
|
|
<string>public.plain-text</string>
|
|
<key>UTTypeDescription</key>
|
|
<string>Text File</string>
|
|
<key>UTTypeConformsTo</key>
|
|
<array>
|
|
<string>public.data</string>
|
|
<string>public.content</string>
|
|
</array>
|
|
<key>UTTypeTagSpecification</key>
|
|
<dict>
|
|
<key>public.filename-extension</key>
|
|
<array>
|
|
<string>txt</string>
|
|
</array>
|
|
<key>public.mime-type</key>
|
|
<string>text/plain</string>
|
|
</dict>
|
|
</dict>
|
|
</array>
|
|
|
|
<key>UTExportedTypeDeclarations</key>
|
|
<array>
|
|
<dict>
|
|
<key>UTTypeIdentifier</key>
|
|
<string>org.idpf.epub-container</string>
|
|
<key>UTTypeDescription</key>
|
|
<string>EPUB Document</string>
|
|
<key>UTTypeConformsTo</key>
|
|
<array>
|
|
<string>public.data</string>
|
|
<string>public.content</string>
|
|
</array>
|
|
<key>UTTypeTagSpecification</key>
|
|
<dict>
|
|
<key>public.filename-extension</key>
|
|
<array>
|
|
<string>epub</string>
|
|
</array>
|
|
<key>public.mime-type</key>
|
|
<string>application/epub+zip</string>
|
|
</dict>
|
|
</dict>
|
|
|
|
<dict>
|
|
<key>UTTypeIdentifier</key>
|
|
<string>com.readest.fb2</string>
|
|
<key>UTTypeDescription</key>
|
|
<string>FB2 Document</string>
|
|
<key>UTTypeConformsTo</key>
|
|
<array>
|
|
<string>public.xml</string>
|
|
</array>
|
|
<key>UTTypeTagSpecification</key>
|
|
<dict>
|
|
<key>public.filename-extension</key>
|
|
<array>
|
|
<string>fb2</string>
|
|
</array>
|
|
<key>public.mime-type</key>
|
|
<string>application/xml</string>
|
|
</dict>
|
|
</dict>
|
|
|
|
<dict>
|
|
<key>UTTypeIdentifier</key>
|
|
<string>com.readest.cbz</string>
|
|
<key>UTTypeDescription</key>
|
|
<string>CBZ Archive</string>
|
|
<key>UTTypeConformsTo</key>
|
|
<array>
|
|
<string>public.archive</string>
|
|
</array>
|
|
<key>UTTypeTagSpecification</key>
|
|
<dict>
|
|
<key>public.filename-extension</key>
|
|
<array>
|
|
<string>cbz</string>
|
|
</array>
|
|
<key>public.mime-type</key>
|
|
<string>application/x-cbz</string>
|
|
</dict>
|
|
</dict>
|
|
|
|
<dict>
|
|
<key>UTTypeIdentifier</key>
|
|
<string>org.mobipocket.mobi</string>
|
|
<key>UTTypeDescription</key>
|
|
<string>MOBI Document</string>
|
|
<key>UTTypeConformsTo</key>
|
|
<array>
|
|
<string>public.data</string>
|
|
</array>
|
|
<key>UTTypeTagSpecification</key>
|
|
<dict>
|
|
<key>public.filename-extension</key>
|
|
<array>
|
|
<string>mobi</string>
|
|
</array>
|
|
<key>public.mime-type</key>
|
|
<string>application/x-mobipocket-ebook</string>
|
|
</dict>
|
|
</dict>
|
|
|
|
<dict>
|
|
<key>UTTypeIdentifier</key>
|
|
<string>com.amazon.azw</string>
|
|
<key>UTTypeDescription</key>
|
|
<string>AZW Document</string>
|
|
<key>UTTypeConformsTo</key>
|
|
<array>
|
|
<string>public.data</string>
|
|
</array>
|
|
<key>UTTypeTagSpecification</key>
|
|
<dict>
|
|
<key>public.filename-extension</key>
|
|
<array>
|
|
<string>azw</string>
|
|
<string>azw3</string>
|
|
</array>
|
|
<key>public.mime-type</key>
|
|
<string>application/vnd.amazon.ebook</string>
|
|
</dict>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
</plist>
|