# User Switching

Multiple users and the ability to switch between them is controlled by Settings -> System -> Multiple Users.

## Entry Points

### Quick Settings

In the QS footer, an icon becomes available for users to tap on. The view and its onClick actions are handled by [MultiUserSwitchController][2]. Multiple visual implementations are currently in use; one for phones/foldables ([UserSwitchDialogController][6]) and one for tablets ([UserSwitcherFullscreenDialog][5]).

### Bouncer

May allow changing or adding new users directly from they bouncer. See [KeyguardBouncer][1]

### Keyguard affordance

[KeyguardQsUserSwitchController][4]

## Components

All visual implementations should derive their logic and use the adapter specified in:

### [UserSwitcherController][3]

* Contains the current list of all system users
* Listens for relevant events and broadcasts to make sure this list stays up to date
* Manages user switching and dialogs for exiting from guest users
* Is settings aware regarding adding users from the lockscreen

## Visual Components

### [UserSwitcherFullscreenDialog][5]

A fullscreen user switching activity, supporting add guest/user actions if configured.

### [UserSwitchDialogController][6]

Renders user switching as a dialog over the current surface, and supports add guest user/actions if configured.

[1]: /frameworks/base/packages/SystemUI/docs/device-entry/bouncer.md
[2]: /frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/MultiUserController.java
[3]: /frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java
[4]: /frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardQsUserSwitchController.java
[5]: /frameworks/base/packages/SystemUI/src/com/android/systemui/user/UserSwitcherFullscreenDialog.kt
[6]: /frameworks/base/packages/SystemUI/src/com/android/systemui/qs/user/UserSwitchDialogController.kt
