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;LoginBigUserViews;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.PublicAccountWarningDialogLockScreenMediaControlsViewNoteActionLaunchButtonUserAddingScreenIndicator 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:LoginUserViewLoginPasswordView that shows:LoginPinView (that provides digital keyboard) along with LoginPinInputView (that provides positional input field)FingerprintViewChallengeResponseViewDisabledAuthMessageView (e.g. when child user has an associated time limit)LockedTpmMessageViewPinRequestWidget 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.