xref: /aosp_15_r20/frameworks/base/packages/SystemUI/src/com/android/systemui/biometrics/ui/CredentialView.kt (revision d57664e9bc4670b3ecf6748a746a57c557b6bc9e)
1 package com.android.systemui.biometrics.ui
2 
3 import com.android.systemui.biometrics.AuthPanelController
4 import com.android.systemui.biometrics.plugins.AuthContextPlugins
5 import com.android.systemui.biometrics.ui.binder.Spaghetti
6 import com.android.systemui.biometrics.ui.viewmodel.CredentialViewModel
7 
8 /** A credential variant of BiometricPrompt. */
9 sealed interface CredentialView {
10     /**
11      * Callbacks for the "host" container view that contains this credential view.
12      *
13      * TODO(b/251476085): Removed when the host view is converted to use a parent view model.
14      */
15     interface Host {
16         /** When the user's credential has been verified. */
onCredentialMatchednull17         fun onCredentialMatched(attestation: ByteArray)
18 
19         /** When the user abandons credential verification. */
20         fun onCredentialAborted()
21 
22         /** Warn the user is warned about excessive attempts. */
23         fun onCredentialAttemptsRemaining(remaining: Int, messageBody: String)
24     }
25 
26     // TODO(251476085): remove AuthPanelController
27     fun init(
28         viewModel: CredentialViewModel,
29         host: Host,
30         panelViewController: AuthPanelController,
31         animatePanel: Boolean,
32         legacyCallback: Spaghetti.Callback,
33         plugins: AuthContextPlugins?,
34     )
35 }
36