General hierarchy of UI elements in authentication UI:
LockScreen
is the root element, that owns LockContentsView
(potentially wrapped in LockDebugView
). It resides in kShellWindowId_LockScreenContainer layer of the primary display.
LoginDataDispatcher
implements LoginScreenModel
and redirects calls to its observers, main of which is LockContentView
.
LockContentView
is a full-screen view that owns and displays all other authentication UI elements:
LoginBigUserView
;LoginBigUserView
s;LoginBigUserView
is used to display selected user, and rest of the users are displayed using ScrollableUsersListView
;LoginExpandedPublicAccountView
when the user tries to sign in to public account.PublicAccountWarningDialog
LockScreenMediaControlsView
NoteActionLaunchButton
UserAddingScreenIndicator
displayed when screen is used for multiprofile loginBottomStatusIndicator
for indicating management/ADB sideloading infoManagementBubble
for management disclosureAuthErrorBubble
for displaying auth errorsLoginErrorBubble
for displaying:LoginTooltipView
for easy unlock tooltipsLoginBigUserView
contains one of:
LoginPublicAccountUserView
that consists of:LoginUserView
(see below)LoginExpandedPublicAccountView
(see above)LoginAuthUserView
that represents user information and provides UI for authentication. It consists of:LoginUserView
LoginPasswordView
that shows:LoginPinView
(that provides digital keyboard) along with LoginPinInputView
(that provides positional input field)FingerprintView
ChallengeResponseView
DisabledAuthMessageView
(e.g. when child user has an associated time limit)LockedTpmMessageView
PinRequestWidget
works as a standalone UI. It contains a PinRequestView
that consists of LoginPinKeyboard
and one of either FixedLengthCodeInput
or FlexCodeInput
, both of which are subclasses of AccessCodeInput
.