fix app lock hanging on macOS and blocking the photo picker
iOS CI / Build and Test SwiftUI App (push) Canceled after 0s
Build Unsigned iOS and macOS Apps / Build Unsigned iOS IPA (push) Canceled after 0s
Build Unsigned iOS and macOS Apps / Build macOS ZIP (push) Canceled after 0s

- Lock only when the scene really backgrounds: transient inactive
  states (system photo picker, app switcher) no longer swap in the
  lock screen and break gallery selection on iOS.
- Cache biometric availability once per session off the main thread
  instead of calling LAContext.canEvaluatePolicy in view bodies,
  which froze the macOS lock screen, and auto-prompt biometrics on
  iOS only.
- Keep UI tests as an opt-in target and guard both fixes in
  verify.sh.
This commit is contained in:
wt committed 2026-08-30 01:14:23 +07:00
1 parent 8b86e33186
commit 6ed5cb3ce9
9 files changed
+86 -78

No files matched your search

+6 -4
View File
@@ -428,17 +428,19 @@ final class XMPPService {
throw LumaXMPPError.omemoInitializationFailed
}
// Clean up an invalid self-session left behind by a previous buggy
// build (one-time migration per account), then make sure a working
// self-session exists: encrypt-to-self needs it and deleting it on
// every connect made archived self-copies undecryptable.
// build (one-time migration per account).
omemoStorage.removeSessionWithOwnDeviceOnce()
ensureSelfSession(client: client, omemoStorage: omemoStorage)
configureModules(client: client, signalContext: signalContext, omemoStorage: omemoStorage)
configureConnection(client: client, account: account, password: password)
activePassword = password
subscribe(to: client, omemoStorage: omemoStorage)
// The self-session must be rebuilt after the modules exist: the
// ensureSelfSession lookup goes through the modules manager and
// crashes on a not-yet-registered OMEMO module.
ensureSelfSession(client: client, omemoStorage: omemoStorage)
self.client = client
self.omemoStorage = omemoStorage
callEngine.attach(client: client)