Zwei Anzeigen für einen Handgriff sind eine zu viel
Apples eigene Einblendung lässt sich aushängen, ohne Root und ohne SIP anzufassen: `com.apple.OSDUIHelper` liegt in der GUI-Domäne des angemeldeten Benutzers, nicht im System. `launchctl bootout` dort hinein genügt. Standardmäßig aus, denn es verschwindet **jede** Einblendung — auch Helligkeit und Feststelltaste, und für die Feststelltaste hat Onyx keinen Ersatz. Beim Beenden wird wieder eingehängt: eine Einstellung darf nicht überleben, was sie eingestellt hat. Dazu zwei Fehler im Anlernen behoben. Der Posenname stand als roher Schlüssel da — die Zeichenketten liegen im Bündel von `FaceProvider`, gesucht wurden sie im Hauptbündel. Und „Gesicht vergleichen" blieb nach dem Anlernen grau, weil `isEnrolled` bei jedem Aufruf den Schlüsselbund las: richtig, aber für SwiftUI unsichtbar, weil es nichts gab, woran eine Ansicht die Änderung hätte bemerken können. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
fd29df51cf
commit
a3399d3a96
@@ -41,10 +41,24 @@ public final class LockController {
|
||||
/// Ob Gesichtserkennung überhaupt benutzt werden soll.
|
||||
public var usesFaceUnlock = true
|
||||
|
||||
public init() {}
|
||||
public init() {
|
||||
refreshEnrollment()
|
||||
}
|
||||
|
||||
/// Ob ein Gesicht angelernt ist.
|
||||
public var isEnrolled: Bool { !store.load().isEmpty }
|
||||
///
|
||||
/// **Gespeichert und nicht berechnet.** Als berechnete Eigenschaft las sie
|
||||
/// bei jedem Aufruf den Schlüsselbund — richtig, aber für SwiftUI
|
||||
/// unsichtbar: es gab nichts, woran eine Ansicht hätte merken können, dass
|
||||
/// gerade ein Gesicht angelernt wurde. Der Schalter „Gesicht vergleichen"
|
||||
/// blieb deshalb grau, bis man das Fenster neu öffnete.
|
||||
public private(set) var isEnrolled = false
|
||||
|
||||
/// Liest nach, ob ein Gesicht hinterlegt ist. Nach dem Anlernen und nach
|
||||
/// dem Vergessen zu rufen.
|
||||
public func refreshEnrollment() {
|
||||
isEnrolled = !store.load().isEmpty
|
||||
}
|
||||
|
||||
// MARK: - Sperren
|
||||
|
||||
|
||||
Reference in New Issue
Block a user