tree: bed81db7196f3568a817427e7a2a1a022dd45d21 [path history] [tgz]
  1. OWNERS
  2. README.md
  3. access_code_input.cc
  4. access_code_input.h
  5. animated_rounded_image_view.cc
  6. animated_rounded_image_view.h
  7. animation_frame.h
  8. arrow_button_view.cc
  9. arrow_button_view.h
  10. bottom_status_indicator.cc
  11. bottom_status_indicator.h
  12. fake_login_detachable_base_model.cc
  13. fake_login_detachable_base_model.h
  14. horizontal_image_sequence_animation_decoder.cc
  15. horizontal_image_sequence_animation_decoder.h
  16. hover_notifier.cc
  17. hover_notifier.h
  18. image_parser.cc
  19. image_parser.h
  20. lock_contents_view.cc
  21. lock_contents_view.h
  22. lock_contents_view_unittest.cc
  23. lock_debug_view.cc
  24. lock_debug_view.h
  25. lock_screen.cc
  26. lock_screen.h
  27. lock_screen_media_controls_view.cc
  28. lock_screen_media_controls_view.h
  29. lock_screen_media_controls_view_unittest.cc
  30. lock_screen_sanity_unittest.cc
  31. lock_window_unittest.cc
  32. login_auth_user_view.cc
  33. login_auth_user_view.h
  34. login_auth_user_view_unittest.cc
  35. login_base_bubble_view.cc
  36. login_base_bubble_view.h
  37. login_base_bubble_view_unittest.cc
  38. login_big_user_view.cc
  39. login_big_user_view.h
  40. login_button.cc
  41. login_button.h
  42. login_data_dispatcher.cc
  43. login_data_dispatcher.h
  44. login_detachable_base_model.cc
  45. login_detachable_base_model.h
  46. login_display_style.h
  47. login_error_bubble.cc
  48. login_error_bubble.h
  49. login_error_bubble_unittest.cc
  50. login_expanded_public_account_view.cc
  51. login_expanded_public_account_view.h
  52. login_expanded_public_account_view_unittest.cc
  53. login_keyboard_test_base.cc
  54. login_keyboard_test_base.h
  55. login_menu_view.cc
  56. login_menu_view.h
  57. login_palette.cc
  58. login_palette.h
  59. login_password_view.cc
  60. login_password_view.h
  61. login_password_view_test.cc
  62. login_pin_input_view.cc
  63. login_pin_input_view.h
  64. login_pin_input_view_unittest.cc
  65. login_pin_view.cc
  66. login_pin_view.h
  67. login_pin_view_unittest.cc
  68. login_public_account_user_view.cc
  69. login_public_account_user_view.h
  70. login_public_account_user_view_unittest.cc
  71. login_test_base.cc
  72. login_test_base.h
  73. login_test_utils.cc
  74. login_test_utils.h
  75. login_tooltip_view.cc
  76. login_tooltip_view.h
  77. login_user_menu_view.cc
  78. login_user_menu_view.h
  79. login_user_menu_view_unittest.cc
  80. login_user_view.cc
  81. login_user_view.h
  82. login_user_view_unittest.cc
  83. media_controls_header_view.cc
  84. media_controls_header_view.h
  85. non_accessible_view.cc
  86. non_accessible_view.h
  87. note_action_launch_button.cc
  88. note_action_launch_button.h
  89. note_action_launch_button_unittest.cc
  90. pin_keyboard_animation.cc
  91. pin_keyboard_animation.h
  92. pin_request_view.cc
  93. pin_request_view.h
  94. pin_request_view_unittest.cc
  95. pin_request_widget.cc
  96. pin_request_widget.h
  97. public_account_warning_dialog.cc
  98. public_account_warning_dialog.h
  99. scrollable_users_list_view.cc
  100. scrollable_users_list_view.h
  101. system_label_button.cc
  102. system_label_button.h
  103. user_switch_flip_animation.cc
  104. user_switch_flip_animation.h
  105. views_utils.cc
  106. views_utils.h
  107. views_utils_unittest.cc
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:

  • When only one user is in the list it is displayed using LoginBigUserView;
  • When two users are on the list, they are displayed using two LoginBigUserViews;
  • When 3+ users are in the list, one 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.
    • Allows selection of language/keyboard for Public session
    • Displays monitoring warning indicator and triggers PublicAccountWarningDialog
    • Allows to actually sign in to the public account
  • Also owns/refers to following optional UI elements:
    • LockScreenMediaControlsView
    • NoteActionLaunchButton
    • UI that shows information about system.
    • Various bubbles and indicators
      • UserAddingScreenIndicator displayed when screen is used for multiprofile login
      • BottomStatusIndicator for indicating management/ADB sideloading info
      • ManagementBubble for management disclosure
      • AuthErrorBubble for displaying auth errors
      • LoginErrorBubble for displaying:
        • security warnings when detachable keyboard does not match one used on previous login
        • ext4 migration warning
        • supervised user deprecation notice
      • LoginTooltipView for easy unlock tooltips

LoginBigUserView contains one of:

  • LoginPublicAccountUserView that consists of:
    • LoginUserView (see below)
    • Arrow button to proceed to showing LoginExpandedPublicAccountView (see above)
  • LoginAuthUserView that represents user information and provides UI for authentication. It consists of:
    • LoginUserView
      • (Animated) user image
      • Name label
      • Drop-down info with an option to remove user
    • LoginPasswordView that shows:
      • Password input field
      • “Show Password” button
      • CAPS LOCK indicator
      • Submit button
      • Quick unlock indicator
    • or pair of LoginPinView (that provides digital keyboard) along with LoginPinInputView (that provides positional input field)
    • Password/PIN toggle button
    • Button to trigger online sign-in
    • 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.