Starting March 27, 2025, we recommend using android-latest-release
instead of aosp-main
to build and contribute to AOSP. For more information, see Changes to AOSP.
Car UI library release notes
Stay organized with collections
Save and categorize content based on your preferences.
This page describes updates made to the Car UI library in each of the releases
listed below.
car-ui-lib 2.6.0
New features
- Added a tap listener for the
CarUiToolbar
logo.
Issues addressed
- Fixed an issue where
CarUiToolbar
's overflow dialog content would remain
stale when making the updates through the plugin.
- Fixed an issue where
CarUiRecyclerView
's scrollbar was not visible because
incorrect insets were applied.
- Fixed an issue when the plugin returned a null
InsetsChangedListener
.
- Added a check to enforce content rendered in
AppStyledView
must not use
Theme.CarUi
.
- Fixed default
AppStyledView
positioning in large landscape screens.
- Added customization of
AppStyledView
background and dim amount.
- Added support for calls to
AppStyledDialog#setContentView()
after
AppStyledView
is shown.
Deprecated these methods:
CarUi#installBaseLayoutAround(View, InsetsChangedListener, boolean)
, use
CarUi#InsetsChangedListener(Context, View, InsetsChangedListener, boolean)
instead.
CarUi#installBaseLayoutAround(View, InsetsChangedListener, boolean,
boolean)
, use CarUi#InsetsChangedListener(Context, View,
InsetsChangedListener, boolean, boolean)
instead.
car-ui-lib-plugin-apis 1.5.0
New features
- Added customization of
CarUiToolbar
logo tap listener.
Deprecated these items:
PluginFactoryOEMV6
, use PluginFactoryOEMV7
instead.
ToolbarControllerOEMV2
, use ToolbarControllerOEMV3
instead.
car-ui-lib 2.5.1
Issues addressed
- Fixed a ProGuard issue that was preventing loading the car-ui-lib plugin.
- Fixed forward compatibility for plugins that would cause NPE at runtime.
- Enforce that car-ui-lib plugin has to be a system app.
- Fixed
CarUiRecyclerView
not showing scrollbar in some scenarios.
- Fixed selected tabs not updating when the plugin is used.
- Fixed issues with instantiating
SearchView
when the plugin is used.
- Initialize Car service UX restriction state callback using Activity context
for correct display configuration.
- Updated nullness annotations.
car-ui-lib 2.5.0
Issues addressed
- Optimized plugin startup time.
- Fixed an issue where apps were always returning 1 as max supported plugin
version.
- Removed the overwriting of theme to force
Theme.CarUi
from AppStyledView
.
- Added overridable method to set title on
ListPreferenceFragment
.
car-ui-lib-plugin-apis 1.4.0
New features
- Allow OEM customization of
CarUiPreference
.
Deprecated these items:
PluginFactoryOEMV5
, use PluginFactoryOEMV6
instead.
car-ui-lib 2.4.0
New features
- Added support for the transition to
AppStyledView
.
Issues addressed
- Updated
AppStyledRecyclerViewAdapter
to no longer be public.
- Provided a convenience method for context with optimization for
AppStyledDialogController
.
- Moved the
AppStyledViewNavIcon
definition to AppStyledDialogController
.
- Removed forced overwriting of theme to
Theme.CarUi
in AppStyledView
.
- Added transitions to support the rendering of
AppStyledView
screens.
- Added
car_ui_recycler_view_no_scrollbar
to the list of items that can be
overlaid.
- Created a Gradle library for
CarUiRecyclerView
espresso ViewActions
and
ViewMatchers
.
- Refactored the app-styled view to use
ScrollView
.
car-ui-lib-plugin-apis 1.3.0
New features
Deprecated these items:
PluginFactoryOEMV4
, use PluginFactoryOEMV5
instead.
RecyclerViewOEMV1
, use RecyclerViewOEMV2
instead.
OnScrollListenerOEMV1
, use RecyclerViewOEMV2.OnScrollListenerOEMV2
instead.
car-ui-lib 2.3.0
New features
Added new component:
Added support for the following scrollbar attributes:
android:fadeScrollbars
android:scrollbars
android:scrollbarThumbVertical
android:scrollbarTrackVertical
android:scrollbarStyle
android:scrollbarFadeDuration
android:verticalScrollbarPosition
android:requiresFadingEdge
Addressed issues
Fixed CarUiRecyclerView
, which did not maintain position upon Activity
recreation.
Resolved bitmap serialization incompatibility between the client code and
the IME service.
Enabled usage of NavHostFragment
with PreferenceFragment
.
car-ui-lib-plugin-apis 1.2.0
New features
Replaced usage of java.util.function
interfaces with the following library
interfaces:
com.android.car.ui.plugin.oemapis.BiConsumer
com.android.car.ui.plugin.oemapis.Consumer
com.android.car.ui.plugin.oemapis.Function
Deprecated these items:
PluginFactoryOEMV3
, use PluginFactoryOEMV4
instead.
ToolbarControllerOEMV1
, use ToolbarControllerOEMV2
instead.
ContentListItemOEMV1
, use ContentListItemOEMV2
instead.
ImeSearchInterfaceOEMV1
, use ImeSearchInterfaceOEMV2
instead.
Replaced the library implementation of nullness interfaces with implementations
of androidx.annotations
.
car-ui-lib-plugin-apis 1.1.1
This release updates the minSdkVersion
to 28.
car-ui-lib 2.2.1
This release:
- Introduces
CarUiFooterPreference
- Updates the
minSdkVersion
to 28.
car-ui-lib-plugin-apis 1.1.0
This release:
- Deprecates
AppStyledViewControllerOEMV1
Introduces AppStyledViewControllerOEMV2
Incorporates changes from AppStyledViewControllerOEMV1
:
public abstract int getContentAreaHeight();
public abstract int getContentAreaWidth();
Deprecates PluginFactoryOEMV1
and PluginFactoryOEMV2
Introduces the PluginFactoryOEMV3
interface.
car-ui-lib 2.1.0
This release:
Adds AppStyledView
client APIs:
public int getContentAreaHeight();
public int getContentAreaWidth();
Introduces CarUiPrimarySwitchPreference
Updates the AppStyledDialogController
constructor to require Activity
instead of Context
:
Adds:
public AppStyledDialogController(android.app.Activity);
Deprecates:
public AppStyledDialogController(android.content.Context);
car-ui-lib-plugin-apis 1.0.1
This release adds nullness annotations.
car-ui-lib-plugin-apis 1.0.0
This release introduces support for the following car-ui-lib
plugin APIs:
AppStyledViewDialog
CarUiRecyclerView
CarUiToolbar
CarUiListItems
car-ui-lib 2.0.0
This version, available on Google
Maven,
introduces car-ui-lib
plugin support for these components:
AppStyledViewDialog
CarUiRecyclerView
CarUiToolbar
CarUiListItems
car-ui-lib 1.0.0
This release is available on AOSP for Android 12 and lower and provides
support for:
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-08-29 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-29 UTC."],[],[],null,["# Car UI library release notes\n\nThis page describes updates made to the Car UI library in each of the releases\nlisted below.\n\ncar-ui-lib 2.6.0\n----------------\n\n### New features\n\n- Added a tap listener for the `CarUiToolbar` logo.\n\n### Issues addressed\n\n- Fixed an issue where `CarUiToolbar`'s overflow dialog content would remain stale when making the updates through the plugin.\n- Fixed an issue where `CarUiRecyclerView`'s scrollbar was not visible because incorrect insets were applied.\n- Fixed an issue when the plugin returned a null `InsetsChangedListener`.\n- Added a check to enforce content rendered in `AppStyledView` must not use `Theme.CarUi`.\n- Fixed default `AppStyledView` positioning in large landscape screens.\n- Added customization of `AppStyledView` background and dim amount.\n- Added support for calls to `AppStyledDialog#setContentView()` after `AppStyledView` is shown.\n\nDeprecated these methods:\n\n- `CarUi#installBaseLayoutAround(View, InsetsChangedListener, boolean)`, use `CarUi#InsetsChangedListener(Context, View, InsetsChangedListener, boolean)` instead.\n- `CarUi#installBaseLayoutAround(View, InsetsChangedListener, boolean,\n boolean)`, use `CarUi#InsetsChangedListener(Context, View,\n InsetsChangedListener, boolean, boolean)` instead.\n\ncar-ui-lib-plugin-apis 1.5.0\n----------------------------\n\n### New features\n\n- Added customization of `CarUiToolbar` logo tap listener.\n\nDeprecated these items:\n\n- `PluginFactoryOEMV6`, use `PluginFactoryOEMV7` instead.\n- `ToolbarControllerOEMV2`, use `ToolbarControllerOEMV3` instead.\n\ncar-ui-lib 2.5.1\n----------------\n\n### Issues addressed\n\n- Fixed a ProGuard issue that was preventing loading the car-ui-lib plugin.\n- Fixed forward compatibility for plugins that would cause NPE at runtime.\n- Enforce that car-ui-lib plugin has to be a system app.\n- Fixed `CarUiRecyclerView` not showing scrollbar in some scenarios.\n- Fixed selected tabs not updating when the plugin is used.\n- Fixed issues with instantiating `SearchView` when the plugin is used.\n- Initialize Car service UX restriction state callback using Activity context for correct display configuration.\n- Updated nullness annotations.\n\ncar-ui-lib 2.5.0\n----------------\n\n### Issues addressed\n\n- Optimized plugin startup time.\n- Fixed an issue where apps were always returning 1 as max supported plugin version.\n- Removed the overwriting of theme to force `Theme.CarUi` from `AppStyledView`.\n- Added overridable method to set title on `ListPreferenceFragment`.\n\ncar-ui-lib-plugin-apis 1.4.0\n----------------------------\n\n### New features\n\n- Allow OEM customization of `CarUiPreference`.\n\nDeprecated these items:\n\n- `PluginFactoryOEMV5`, use `PluginFactoryOEMV6` instead.\n\ncar-ui-lib 2.4.0\n----------------\n\n### New features\n\n- Added support for the transition to `AppStyledView`.\n\n### Issues addressed\n\n- Updated `AppStyledRecyclerViewAdapter` to no longer be public.\n- Provided a convenience method for context with optimization for `AppStyledDialogController`.\n- Moved the `AppStyledViewNavIcon` definition to `AppStyledDialogController`.\n- Removed forced overwriting of theme to `Theme.CarUi` in `AppStyledView`.\n- Added transitions to support the rendering of `AppStyledView` screens.\n- Added `car_ui_recycler_view_no_scrollbar` to the list of items that can be overlaid.\n- Created a Gradle library for `CarUiRecyclerView` espresso `ViewActions` and `ViewMatchers`.\n- Refactored the app-styled view to use `ScrollView`.\n\ncar-ui-lib-plugin-apis 1.3.0\n----------------------------\n\n### New features\n\nDeprecated these items:\n\n- `PluginFactoryOEMV4`, use `PluginFactoryOEMV5` instead.\n- `RecyclerViewOEMV1`, use `RecyclerViewOEMV2` instead.\n- `OnScrollListenerOEMV1`, use `RecyclerViewOEMV2.OnScrollListenerOEMV2` instead.\n\ncar-ui-lib 2.3.0\n----------------\n\n### New features\n\nAdded new component:\n\n- `CarUiShortcutsPopup`\n\nAdded support for the following scrollbar attributes:\n\n- `android:fadeScrollbars`\n- `android:scrollbars`\n- `android:scrollbarThumbVertical`\n- `android:scrollbarTrackVertical`\n- `android:scrollbarStyle`\n- `android:scrollbarFadeDuration`\n- `android:verticalScrollbarPosition`\n- `android:requiresFadingEdge`\n\n### Addressed issues\n\n- Fixed `CarUiRecyclerView`, which did not maintain position upon `Activity`\n recreation.\n\n- Resolved bitmap serialization incompatibility between the client code and\n the IME service.\n\n- Enabled usage of `NavHostFragment` with `PreferenceFragment`.\n\ncar-ui-lib-plugin-apis 1.2.0\n----------------------------\n\n### New features\n\nReplaced usage of `java.util.function` interfaces with the following library\ninterfaces:\n\n- `com.android.car.ui.plugin.oemapis.BiConsumer`\n- `com.android.car.ui.plugin.oemapis.Consumer`\n- `com.android.car.ui.plugin.oemapis.Function`\n\nDeprecated these items:\n\n- `PluginFactoryOEMV3`, use `PluginFactoryOEMV4` instead.\n- `ToolbarControllerOEMV1`, use `ToolbarControllerOEMV2` instead.\n- `ContentListItemOEMV1`, use `ContentListItemOEMV2` instead.\n- `ImeSearchInterfaceOEMV1`, use `ImeSearchInterfaceOEMV2` instead.\n\nReplaced the library implementation of nullness interfaces with implementations\nof `androidx.annotations`.\n\ncar-ui-lib-plugin-apis 1.1.1\n----------------------------\n\nThis release updates the `minSdkVersion` to 28.\n\ncar-ui-lib 2.2.1\n----------------\n\nThis release:\n\n- Introduces `CarUiFooterPreference`\n- Updates the `minSdkVersion` to 28.\n\ncar-ui-lib-plugin-apis 1.1.0\n----------------------------\n\nThis release:\n\n- Deprecates `AppStyledViewControllerOEMV1`\n- Introduces `AppStyledViewControllerOEMV2`\n\n- Incorporates changes from `AppStyledViewControllerOEMV1`:\n\n public abstract int getContentAreaHeight();\n public abstract int getContentAreaWidth();\n\n- Deprecates `PluginFactoryOEMV1` and `PluginFactoryOEMV2`\n\n- Introduces the `PluginFactoryOEMV3` interface.\n\ncar-ui-lib 2.1.0\n----------------\n\nThis release:\n\n- Adds `AppStyledView` client APIs:\n\n public int getContentAreaHeight();\n public int getContentAreaWidth();\n\n- Introduces `CarUiPrimarySwitchPreference`\n\n- Updates the `AppStyledDialogController` constructor to require `Activity`\n instead of `Context`:\n\n - Adds:\n\n public AppStyledDialogController(android.app.Activity);\n\n - Deprecates:\n\n public AppStyledDialogController(android.content.Context);\n\ncar-ui-lib-plugin-apis 1.0.1\n----------------------------\n\nThis release adds nullness annotations.\n\ncar-ui-lib-plugin-apis 1.0.0\n----------------------------\n\nThis release introduces support for the following `car-ui-lib` plugin APIs:\n\n- `AppStyledViewDialog`\n- `CarUiRecyclerView`\n- `CarUiToolbar`\n- `CarUiListItems`\n\ncar-ui-lib 2.0.0\n----------------\n\nThis version, available on [Google\nMaven](https://maven.google.com/web/index.html?#com.android.car.ui),\nintroduces `car-ui-lib` plugin support for these components:\n\n- `AppStyledViewDialog`\n- `CarUiRecyclerView`\n- `CarUiToolbar`\n- `CarUiListItems`\n\ncar-ui-lib 1.0.0\n----------------\n\nThis release is available on AOSP for Android 12 and lower and provides\nsupport for:\n\n- `AppStyledViewDialog`\n- [`CarUiRecyclerView`](/docs/devices/automotive/hmi/car_ui/caruirecyclerview)\n- [`CarUiToolbar`](/docs/devices/automotive/hmi/car_ui/toolbar_rro)\n- [`CarUiListItems`](/docs/devices/automotive/hmi/car_ui/caruilistitem)\n- Dialog\n- Resource customization through [runtime resource overlays (RROs)](/docs/core/architecture/rros)\n- [`PreferencesFragment`](/docs/devices/automotive/hmi/car_ui/caruipreference)\n- [Rotary support](/docs/devices/automotive/hmi/rotary_controller/oem_integration)\n- `WideScreenImeKeyboard`"]]