ash/login/ui/README.md
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.
PublicAccountWarningDialogLockScreenMediaViewNoteActionLaunchButtonUserAddingScreenIndicator 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)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.