blob: fc1fa5fdeea5b0b0e89cac8b16003fc418b7efb4 [file] [view]
# Tab UI & Tab Management
This directory contains the majority of the code for the Tabs related UI on
Chrome Android. Notably it does not contain the tablet tab strip code which can
be found in
`//chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/`.
The code in this directory builds a UI layer based upon the data layer in
`chrome/browser/tabmodel/`.
## UI Elements
The central MVC component of this directory is the `TabList*` family of classes
which binds a `TabModel` to a `RecyclerView` to present a list of tabs.
The `TabList*` MVC component is hosted by one of a few parent containers.
* `TabGroupUi*` - the bottom tab strip showing tab group information on phone
form-factor devices.
* `TabGridDialog*` - the tab group dialog accessible from the tab switcher or
bottom tab strip.
* `TabSwitcherPane*` - grid tab switcher or GTS, represents a `Pane` in the
hub `chrome/browser/hub/` that host either incognito or regular tabs.
* `TabListEditor*` - represents a UI for bulk actions on tabs.
* `TabGroupList*` - notably does not use `TabList*` but rather hosts a list of
tab groups with a different recycler view structure.
This directory also houses an assortment of UI related helper classes for
handling various operations such as picking tab group colors.