2024-04-30
Annotation: v1.8.0-rc01
May 1, 2024
androidx.annotation:annotation-*:1.8.0-rc01 is released. Version 1.8.0-rc01 contains no changes since the prior beta release.
Appcompat: v1.7.0-beta01
May 1, 2024
androidx.appcompat:appcompat:1.7.0-beta01 and androidx.appcompat:appcompat-resources:1.7.0-beta01 are released. Version 1.7.0-beta01 contains these commits.
Benchmark: v1.3.0-alpha04
May 1, 2024
androidx.benchmark:benchmark-*:1.3.0-alpha04 is released. Version 1.3.0-alpha04 contains these commits.
API Changes
- Added experimental
MacrobenchmarkRule#measureRepeatedvariant which takes a customPerfettoConfigfor fully customized Perfetto trace recording. Note that incorrectly configured configs may cause built in Metric classes to fail. (Idfd3d, b/309841164, b/304038384) - Rename
PowerMetric.deviceSupportsPowerEnergytoPowerMetric.deviceSupportsHighPrecisionTrackingfor clarity (I5b82f) - Added
PowerMetric.deviceBatteryHasMinimumCharge()andPowerMetric.deviceSupportsPowerEnergy()to enable changing or skipping benchmarks based on device power measurement capability. (I6a591, b/322121218)
Bug Fixes
- Added comparison with previous baseline profile (I824c8, b/269484510)
- Added DSL to disable warnings (Ic4deb, b/331237001)
- Changed exception to info log when benchmark variants are disabled (I8a517, b/332772491)
- Make it simpler to capture method traces for a Macrobenchmark is scoped to the duration of the actual
measureBlock(). Previously, it started at target process launch and only supported cold starts (Iee85a, b/300651094) - Avoid crashing when perfetto trace processor is slow to start (I98841, b/329145808)
Compose Animation: v1.6.7
May 1, 2024
androidx.compose.animation:animation-*:1.6.7 is released. Version 1.6.7 contains these commits.
Compose Animation: v1.7.0-alpha08
May 1, 2024
androidx.compose.animation:animation-*:1.7.0-alpha08 is released. Version 1.7.0-alpha08 contains these commits.
API Changes
LookaheadScopeAPIs have been made stable. (I21507)
External Contribution
- Clear start animation time after
SeekableTransitionStateanimates/snaps by Steven Schoen (1ca89529)
Compose Compiler: v1.5.13
May 1, 2024
androidx.compose.compiler:compiler:1.5.13 and androidx.compose.compiler:compiler-hosted:1.5.13 are released. Version 1.5.13 contains these commits.
New features
- Strong skipping is no longer considered experimental and is safe for use in production. It will become the default behavior in an upcoming release. (I6c8c4)
Bug Fixes
- Fix binary compatibility for
@Composablefunctions with value class parameters that have a default value and are wrapping a non-primitive value. (I89465 - Upstreamed fixes for JS and Native compilation from Compose multiplatform. See the commit range above for full details.
Compose Foundation: v1.6.7
May 1, 2024
androidx.compose.foundation:foundation-*:1.6.7 is released. Version 1.6.7 contains these commits.
Compose Foundation: v1.7.0-alpha08
May 1, 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha08 is released. Version 1.7.0-alpha08 contains these commits.
New Features
- Added right-click context menu to
BasicTextFieldandSelectionContainerwith items for cut, copy, paste, and select-all actions. (If8c93, Ia2b49, I6f268)
API Changes
LazyLayoutprefetch requests can be marked as urgent now, meaning that we expect this item to be needed in the next frame and want to ignore frame budget to make sure to do more work in advance (Id513f)- Renamed
isPositionedByParentWithDirectManipulationtointroducesFrameOfReference. Note that it now has the reverse effect, meaning that by default, mostLayoutCoordinatesintroduce a frame of reference, and, only when placed under direct manipulation the property will be false. To query position with only those that introduce a frame of reference, usepositionInLocalFrameOfReference(...). OrpositionInLocalLookaheadFrameOfReferencefrom aLookaheadScope. (Ifc5f7) - Renamed
onClickedtoonClickinsideLinkInteractionListener(Iaa35c) - Change action lambda for
getScrollViewportLengthas per API council feedback. (Ibc74a) - Renamed stylus handwriting delegation APIs. (Ica45f, b/327271923)
- Rename
TextInclusionStrategy.isInsidetoisIncluded. MakeParagraph/MultiParagraph#getRangeForRect()return type non nullable. (I51f26)
Bug Fixes
- Added "Select all" to all text contextual menus in
SelectionContainer. (Ib750e, b/240143283) - Fixed long screenshot capture for scrolling containers with
reverseScrolling=true. (I7c59c) - Fixed an issue where
AnchoredDraggableState'scurrentValuewould change when approaching the state's bounds. (Iea30b, b/333846848)
External Contribution
- Renamed
PrefetchExecutor->PrefetchSchedulerto better reflect its responsibilities. (Ib9154) - Added support for prefetching items in nested
LazyLists(e.g. aLazyColumnthat renders nestedLazyRows). This change is expected to reduce frame drops during scrolling for theseLazyLists. The implementation default is to prefetch the first 2 nested items, however this behavior can be controlled by the newLazyLayoutPrefetchStrategy(nestedPrefetchItemCount)andLazyListPrefetchStrategy#onNestedPrefetchAPIs. (I51952)
Compose Material: v1.6.7
May 1, 2024
androidx.compose.material:material-*:1.6.7 is released. Version 1.6.7 contains these commits.
Compose Material: v1.7.0-alpha08
May 1, 2024
androidx.compose.material:material-*:1.7.0-alpha08 is released. Version 1.7.0-alpha08 contains these commits.
API Changes
- Fix
backgroundColornot applying toTextFieldDecorationBoxandOutlinedTextFieldDecorationBox. Decoration boxes now accept ashapeparameter. (I371c2, b/307694651) RippleConfiguration#isEnabledhas been removed, andLocalRippleConfigurationhas been made nullable. To disable a ripple, instead of providing aRippleConfigurationwithisEnabled = false, providenulltoLocalRippleConfiguration. (I22725)- Text links have a pressed state styling option in addition to normal styling, hovered and focused.
TextDefaultsmethods each have apressedStyleargument to support that. (Ic473f, b/139312671)
Bug Fixes
OutlinedTextFieldtop padding for label now accounts for system font size. (Idc781)
Compose Material3: v1.3.0-alpha06
May 1, 2024
androidx.compose.material3:material3-*:1.3.0-alpha06 is released. Version 1.3.0-alpha06 contains these commits.
Breaking Changes
New pull-to-refresh APIs:
- Simplified
PullToRefreshStateto use fractional values instead of Dp units. isRefreshingstate is controlled by the user instead ofPullToRefreshState.- Separated out the nested scroll connection from
PullToRefreshState. It is handled by the newPullToRefreshBoxorModifier.pullToRefresh. - This update is a breaking change to previous experimental APIs. (I0adeb, b/314496282, b/317177684, b/323787138, b/324573502, b/317177683)
- Simplified
API Changes
RippleConfiguration#isEnabledhas been removed, andLocalRippleConfigurationhas been made nullable. To disable a ripple, instead of providing aRippleConfigurationwithisEnabled = false, providenulltoLocalRippleConfiguration. (I22725)ModalBottomSheetmore accurately draws scrim over status bar when edge to edge is enabled. Modal bottom sheet content can now consume window insets, allowing for visible content above the navigation bar.ModalBottomSheetparameterwindowInsetsrenamed tocontentWindowInsetsto specify where the insets will be applied, these are no longer tied to window logic.contentWindowInsetstype has been changed to a function which returnsWindowInsets, to allow it to be resolved within its new window. (I39630, b/274872542, b/300280229, b/290893168)PrimaryScrollableTabRowandSecondaryScrollableTabRownow use custom layout instead of subcomposition, which should improve performance. (I991e0)- Text links got pressed state styling option in addition to normal styling, hovered and focused.
TextDefaultsmethods each got apressedStyleargument to support that. (Ic473f, b/139312671)
Bug Fixes
- Navigation drawer drag anchors now match the
drawerContent's width. (Ibc72f, b/245355396) OutlinedTextFieldtop padding for label now accounts for system font size. (Idc781)- Fixed package location of
CalendarLocale. (Ifa235) - [Predictive Back] Update predictive back animations to use interpolation curve of (0.1, 0.1, 0, 1) (I2591a)
Compose Material3 Adaptive Navigation Suite: v1.0.0-alpha07
May 1, 2024
androidx.compose.material3:material3-adaptive-navigation-suite:1.0.0-alpha07, androidx.compose.material3:material3-adaptive-navigation-suite-android:1.0.0-alpha07, and androidx.compose.material3:material3-adaptive-navigation-suite-desktop:1.0.0-alpha07 are released. Version 1.0.0-alpha07 contains these commits.
API Changes
- Make navigation suite APIs non-experimental (If62af)
Bug Fixes
- Consume insets for content by default (50266df)
Compose Material3 Adaptive: v1.0.0-alpha12
May 1, 2024
androidx.compose.material3.adaptive:adaptive-*:1.0.0-alpha12 is released. Version 1.0.0-alpha12 contains these commits.
API Changes
- Add
isFlatinfo toHingeInfo(Ie0516, b/333784198) - Make adaptive APIs non-experimental (I1d038)
- Make adaptive layout APIs non-experimental (Id23df)
- Changed
BackNavigationBehaviorfrom an enum to a value class (Id8757)
Bug Fixes
- Change transition fraction to a lambda (I6f5a9)
- Fix the initial state issue of
SizeTracker(18326a9) - Include hinge list in
Postureequality check (6687137)
Compose Runtime: v1.6.7
May 1, 2024
androidx.compose.runtime:runtime-*:1.6.7 is released. Version 1.6.7 contains these commits.
Compose Runtime: v1.7.0-alpha08
May 1, 2024
androidx.compose.runtime:runtime-*:1.7.0-alpha08 is released. Version 1.7.0-alpha08 contains these commits.
Compose UI: v1.6.7
May 1, 2024
androidx.compose.ui:ui-*:1.6.7 is released. Version 1.6.7 contains these commits.
Compose UI: v1.7.0-alpha08
May 1, 2024
androidx.compose.ui:ui-*:1.7.0-alpha08 is released. Version 1.7.0-alpha08 contains these commits.
API Changes
- Adds support for mutable shape implementations.
Shape#createOutlineis now observed inside graphics layers, so reading state values inside will cause invalidations when the state changes, allowing for more performant shape animations. (Id1629, b/326070216) - Renamed
isPositionedByParentWithDirectManipulationtointroducesFrameOfReference. Note that it now has the reverse effect, meaning that by default, mostLayoutCoordinatesintroduce a frame of reference, and, only when placed under direct manipulation the property will be false. To query position with only those that introduce a frame of reference, usepositionInLocalFrameOfReference(...). OrpositionInLocalLookaheadFrameOfReferencefrom aLookaheadScope. (Ifc5f7) LookaheadScopeAPIs have been made stable (I21507)- Change action lambda for
getScrollViewportLengthas per API council feedback. (Ibc74a) - Updated
GraphicsLayeroutline APIs to consume float parameters instead of int. RemovedUnsetOffset/UnsetSize IntSizesentinel values in favor of already existing Unspecified constants on float based Offset and Size inline classes (I2fb03, b/333863462) - When injecting mouse input during tests,
MouseInjectionScope.click(),MouseInjectionScope.doubleClick(),MouseInjectionScope.tripleClick(),MouseInjectionScope.longClick()now accept abutton: MouseButtonparameter to make them more universally applicable. The default value isMouseButton.Primaryfor all methods. (I31a23, b/190493367, b/261439695) - Renamed
onClickedtoonClickinsideLinkInteractionListener. (Iaa35c) - Rename
TextInclusionStrategy.isInsidetoisIncluded. MakeParagraph/MultiParagraph#getRangeForRect()return type non nullable. (I51f26)
Bug Fixes
- Fixed long screenshot capture for scrolling containers with
reverseScrolling=true. (I7c59c)
External Contribution
- Added support for prefetching items in nested
LazyLists(e.g. aLazyColumnthat renders nestedLazyRows). This change is expected to reduce frame drops during scrolling for theseLazyLists. The implementation default is to prefetch the first 2 nested items, however this behavior can be controlled by the newLazyLayoutPrefetchStrategy(nestedPrefetchItemCount)andLazyListPrefetchStrategy#onNestedPrefetchAPIs. (I51952)
Core Performance: v1.0.0
January 10, 2024
androidx.core:core-performance:1.0.0, androidx.core:core-performance-play-services:1.0.0, and androidx.core:core-performance-testing:1.0.0 are released. Version 1.0.0 contains these commits.
Major features of 1.0.0
- Core Performance - Provides a reliable mechanism for developers to identify the device’s level of performance at runtime to help optimize an app’s user experience accordingly.
- Core Performance Play Services - Google-specific implementation providing up-to-date media performance class information for tested devices and OS versions.
- Core Performance Testing - Test doubles for Core Performance.
Bug Fixes
- Fixed a crash when initializing
PlayServicesDevicePerformancefound in version1.0.0-beta2. (b/318803680)
Core and Core-ktx: v1.13.1
May 1, 2024
androidx.core:core:1.13.1, androidx.core:core-ktx:1.13.1, and androidx.core:core-testing:1.13.1 are released. Version 1.13.1 contains these commits.
Bug Fixes
- Fix issue where when handwriting toolbar is shown, a finger tap can't switch to the regular keyboard (I7f843, b/332769437)
Core and Core-ktx: v1.14.0-alpha01
May 1, 2024
androidx.core:core:1.14.0-alpha01, androidx.core:core-ktx:1.14.0-alpha01, and androidx.core:core-testing:1.14.0-alpha01 are released. Version 1.14.0-alpha01 contains these commits.
New Features
- Move to 21 as the default
minSdkVersionof androidx libraries (I6ec7f)
API Changes
- Deprecate additional obsolete compat methods. (Ie4470, b/313834577)
- Deprecated obsolete compat methods. (I01d90, b/313834577)
- Updated
isAtLeastV()to return true for finalized V SDK. (I6339a)
DataStore: v1.1.1
May 1, 2024
androidx.datastore:datastore-*:1.1.1 is released. Version 1.1.1 contains these commits.
Bug Fixes
- Mitigated Linux false alarm on "Resource deadlock would occur" error in a corner case multiple
DataStoreinstances attempt to write from different processes by backing off the file lock.
Fragment: v1.7.0
May 1, 2024
androidx.fragment:fragment-*:1.7.0 is released. Version 1.7.0 contains these commits.
Predictive Back Gesture Support
- Fragments now provide support for Predictive in-app back when using
Animatoror when using AndroidX Transition 1.5.0. This allows users to use the back gesture to see the previous fragment by seeking your Animator/Transition before deciding to either commit the transaction via completing the gesture or canceling.
| Transition System | XML Resource | Supports Predictive Back |
|---|---|---|
Animation |
R.anim |
No |
Animator |
R.animator |
Yes |
Framework Transition |
R.transition |
No |
AndroidX Transition with Transition 1.4.1 or less |
R.transition |
No |
AndroidX Transition with Transition 1.5.0 |
R.transition |
Yes |
If you see any issues with Predictive Back support in Fragments after you’ve opted into the predictive back gesture, please file an issue against Fragment with a sample project that reproduces your issue. You can disable predictive back by using FragmentManager.enabledPredictiveBack(false) in the onCreate() of your Activity.
FragmentManager.OnBackStackChangedListener() now provides the onBackStackChangeProgressed() and onBackStackChangeCancelled() for receiving predictive back progress and canceled events respectively.
Fragment Compose Artifact
A new fragment-compose artifact has been created that focuses on supporting apps that are in the process of moving from a Fragment based architecture to a fully Compose based architecture.
The first feature available in this new artifact is a content extension method on Fragment that seeks to make it easier to use Compose for the UI of an individual Fragment by creating a ComposeView for you and setting the correct ViewCompositionStrategy.
class ExampleFragment : Fragment() {override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ) = content { // Write your @Composable content here val viewModel: ExampleViewModel = viewModel() // or extract it into a separate, testable method ExampleComposable(viewModel) }
}
Graphics Path: v1.0.1
May 1, 2024
androidx.graphics:graphics-path:1.0.1 is released. Version 1.0.1 contains these commits.
Bug Fixes
- Improvements to compiler flags.
Graphics Shapes: v1.0.0-beta01
May 1, 2024
androidx.graphics:graphics-shapes:1.0.0-beta01, androidx.graphics:graphics-shapes-android:1.0.0-beta01, and androidx.graphics:graphics-shapes-desktop:1.0.0-beta01 are released. Version 1.0.0-beta01 contains these commits.
API Changes
- Allow shapes to be pre-rotated to start at a different point. This change allows
pillStarshapes to start their curves from a non-default point on the perimeter. This can be useful when animating the stroking of the shape's path, to start drawing from a specific location on the shape's outline. (Ifbb4d, b/324303807) - Added
calculateBounds()functions to Morph, which parallel the same functions onRoundedPolygon. (I8a3b6, b/325463575)
input: v1.0.0-beta04
May 1, 2024
androidx.input:input-motionprediction:1.0.0-beta04 is released. Version 1.0.0-beta04 contains these commits.
New Features
- Prediction will not stop suddenly
- Built-in prediction is now the default instead of the system one
Bug Fixes
- Move to 21 as the default
minSdkVersionof androidx libraries (I6ec7f) - Fix down event time for the multi pointer events (04824a).
- Fix historical timestamp for the first pointer (dee0b0).
- Fix bad historical time when multiple pointers are present (1189fa).
Lifecycle: v2.8.0-rc01
May 1, 2024
androidx.lifecycle:lifecycle-*:2.8.0-rc01 is released. Version 2.8.0-rc01 contains these commits.
Bug Fixes
- Fixed an issue where the Baseline Profile for
lifecycle-commonclasses was not properly packaged. These are now packaged in thelifecycle-runtimeAAR. (aosp/3038274, b/322382422) - Fixed an unintentional ordering change in how
AutoCloseableinstances attached to a ViewModel are cleared - the previous order ofaddCloseable(String, AutoCloseable), thenaddClosable(AutoCloseable), thenonCleared()has been restored. (aosp/3041632) - Improve the default creation behavior for
viewModelScopefor native and JVM Desktop environments. (aosp/3039221)
External Contribution
- Thanks Victor Kropp for improving the checking for the main thread on JVM Desktop. (aosp/3037116)
Navigation: v2.8.0-alpha08
May 1, 2024
androidx.navigation:navigation-*:2.8.0-alpha08 is released. Version 2.8.0-alpha08 contains these commits.
Safe Args in Navigation Compose
- The work to support compile time type safety for Navigation Compose and users of the Navigation Kotlin DSL based on Kotlin Serialization has completed and previously experimental APIs are now stable. (Iea94d, I0eb0d, I873b7, I3a64b, I6c3a2, I11f0b, Ic3032, I8d394, I95710, Ice060, Id0e55, I45f8b, Idcdaf, If5380, I08b23, Ia5c59, b/188693139)
This functionality uses Kotlin Serialization to allow you to define destinations in your navigation graph via type safe objects and data classes:
// Define a home destination that doesn't take any arguments @Serializable object Home// Define a profile destination that takes an ID
@Serializable
data class Profile(val id: String)
// Now define your NavHost using type safe objects
NavHost(navController, startDestination = Home) {
composable<Home> {
HomeScreen(onNavigateToProfile = { id ->
navController.navigate(Profile(id))
})
}
composable<Profile> { backStackEntry ->
val profile: Profile = backStackEntry.toRoute()
ProfileScreen(profile)
}
}
See the Navigation Compose meet Type Safety blog post for more information.
New Features
- The
navigation-fragment-composeartifact now provides aLocalFragmentcomposition local to composable methods within aComposableFragment. (If35e5) NavTypenow has built-in support for Lists of Int, String, Boolean, Float, and Long. (I4b6dd, Ia914c, b/188693139)
Paging: v3.3.0-rc01
May 1, 2024
androidx.paging:paging-*:3.3.0-rc01 is released with no changes in Paging 3.3.0-beta01. Version 3.3.0-rc01 contains these commits.
Room: v2.7.0-alpha01
May 1, 2024
androidx.room:room-*:2.7.0-alpha01 is released. Version 2.7.0-alpha01 contains these commits.
New Features
- Kotlin Multi-Platform (KMP) Support: In this release, Room has been refactored to become a Kotlin Multi-Platform (KMP) library. Although there is still some work to be done, this release introduces a new version of Room where the majority of the functionality has been “common-ized” (made to be multiplatform). Current supported platforms are Android, iOS, JVM (Desktop), native Mac and native Linux. Any missing functionality in the newly supported platforms will be made “feature-complete” in upcoming Room releases.
For more information on how to get started using Room KMP, please refer to the official Room KMP documentation.
- Kotlin Code Generation on KSP has been turned ON by default if processing is done via KSP. For KAPT or Java only projects, Room will still generate Java sources.
API Changes
- An overload of
Room.databaseBuilder()has been added that takes a lambda parameter that is meant to be used with a Room generated function to avoid using reflection when instantiating the generated RoomDatabase implementation. Example usage is:kotlin Room.databaseBuilder<MyDatabase>( context = appContext name = dbFilePath, factory = { MyDatabase::class.instantiateImpl() } ) - An API for configuring a Room with a
CoroutineContexthas been added to the builder:RoomDatabase.Builder.setQueryCoroutineContext. Note that aRoomDatabasecan only be configured with either executors usingsetQueryExecutoror with a Coroutine context but not both. - An API for configuring Room with a
SQLiteDriver has been added:RoomDatabase.Builder.setDriver(). For more information about theSQLiteDriver API refer to the SQLite KMP documentation - APIs for accessing the underlying
SQLiteConnectionfrom driver APIs have been added:RoomDatabase.useReaderConnectionandRoomDatabase.useWriterConnection. - Varios Room related callbacks now have an overloaded version that receive
SQLiteConnectioninstead ofSupportSQLiteDatabase. These are intended to be overridden when migrating to a KMP project. For more information about migrating Room usages in an Android app to a common KMP module refer to the migration guide. The callbacks are:Migration.migrate(SQLiteConnection)AutoMigrationSpec.onPostMigrate(SQLiteConnection)RoomDatabase.Callback.onCreate(SQLiteConnection)RoomDatabase.Callback.onDestructiveMigration(SQLiteConnection)RoomDatabase.Callback.onOpen(SQLiteConnection)
- The KTX artifact
androidx.room:room-ktxhas been merged toandroidx.room:room-runtimealong with all its APIs, the artifact is now blank. Please remove it from your dependency list.
Sqlite: v2.5.0-alpha01
May 1, 2024
androidx.sqlite:sqlite-*:2.5.0-alpha01 is released. Version 2.5.0-alpha01 contains these commits.
New Features
- Kotlin Multi-Platform (KMP) Support: With the release of Room 2.7.0-alpha01 which is the first release of Room KMP, the
SQLiteAPIs that enable Room to be KMP have also been updated. The packageandriodx.sqlitecontains three interfaces that define low-level SQLite APIs:SQLiteDriver,SQLiteConnectionandSQLiteStatement. The artifactandroidx.sqlite:sqlite-frameworkoffers implementation of the interfaces for Android and iOS Natively, whileandroidx.sqlite:sqlite-bundledoffers an implementation that usesSQLitecompiled from source (also known as “bundled SQLite”). For more information about the SQLite Driver API refer to the official SQLite KMP documentation.
Transition: v1.5.0
May 1, 2024
androidx.transition:transition:1.5.0 and androidx.transition:transition-ktx:1.5.0 are released. Version 1.5.0 contains these commits.
Important changes since 1.4.0
- Transitions support seeking on API 34 and above. A new API was added to
TransitionManager,controlDelayedTransition(), which returns aTransitionSeekControllerthat allows seeking theTransition. This functionality is used by Fragment 1.7.0 to automatically seek transitions when using the Predictive Back Gesture. - Transitions have a new method,
getRootTransition(), that returns the Transition containing the current Transition or the current Transition if it isn't contained by any other Transition. This can be useful if the developer needs to have listeners for when the entire Transition starts or ends. TransitionListenersnow have newonTransitionStart()andonTransitionEnd()listeners that allow the developer to know whether the transition is starting or ending going in reverse or not. This can be important for developing seekable transitions that haveTransitionListeners.
Tv-Material: v1.0.0-beta01
May 1, 2024
androidx.tv:tv-material:1.0.0-beta01 is released. Version 1.0.0-beta01 contains these commits.
API Changes
ColorSchemeand its utility functions are now stable. (If34fa)LocalContentColoris now stable (I60ee2)TypographyAPI is now stable (I088d6)- Shapes APIs are now stable (I0f5f4)
- Border API is now stable (I69281)
- Glow API is now stable (Iea5f1)
- Icon component is now stable (I62c2d)
LocalTextStylesAPI is now stable (Iaded8)MaterialThemeAPI is now stable (I2f541)- Text Component is now stable (Ib9e31)
RadioButtoncomponent is now stable (Ia03c8)- Switch component is now stable (I6cea3)
Checkboxcomponents are now stable (I7eafc)- Surface components are now stable (I58758, I04aca)
- Renamed
NonInteractiveSurfaceDefaultstoSurfaceDefaultsandNonInteractiveSurfaceColorstoSurfaceColors(I0812e) - Selectable Surface now uses “select” terminology instead of “check” because they both have different semantics meaning (I5a206)
NavigationDrawerandNavigationDrawerScopeare now stable (I249c1)NavigationDrawerItemcomponent is now stable (Id6986)- Tab and
TabRowcomponents are now stable (I92d92) Button,OutlinedButton,IconButton,OutlinedIconButtonandWideButtoncomponents are now stable (Ib4de8)Card,ClassicCard,CompactCard,WideClassicCard,StandardCardContainer&WideCardContainercomponents are now stable (I34390)- Renamed
StandardCardLayouttoStandardCardContainerandWideCardLayouttoWideCardContainer(I08883) - Removed
CardContainerDefaults.ImageCardand renamedCardDefaults.ContainerGradienttoCardDefaults.ScrimBrush(I6adfe) ListItemandDenseListItemare now stable (Idebd9)ListItemDefaults.ListItemShape,ListItemDefaults.FocusedDisabledBorder&ListItemDefaults.SelectedContainerColorOpacityare now private (I5d533)- Rearranged the
ListItem’s parameters & renamedListItemDefaults.ListItemElevationtoListItemDefaults.TonalElevation(Id6841) LocalAbsoluteTonalElevationis now internal (Ibfc65)- The
ImmersiveListcomponent has been removed. Check out this sample to learn how to build it yourself. (Id48da) - tv-material components exposing a
MutableInteractionSourcein their API have been updated to now expose a nullableMutableInteractionSourcethat defaults to null. There are no semantic changes here: passing null means that you do not wish to hoist theMutableInteractionSource, and it will be created inside the component if needed. Changing to null allows for some components to never allocate aMutableInteractionSource, and allows for other components to only lazily create an instance when they need to, which improves performance across these components. If you are not using theMutableInteractionSourceyou pass to these components, it is recommended that you pass null instead. It is also recommended that you make similar changes in your own components. (I309b4, b/298048146) - TV Text component's
TextAlignparameter is now non-null (Ib73b1, b/299490814) - Introduced a special Unspecified value for
TextAlign,TextDirection,HyphensandLineBreakfields of theParagraphTextStyleto replace (I4197e, b/299490814)
Vectordrawable: v1.2.0
May 1, 2024
androidx.vectordrawable:vectordrawable:1.2.0 and androidx.vectordrawable:vectordrawable-animated:1.2.0 are released. Version 1.2.0 contains these commits.
Vectordrawable-Seekable 1.0.0: v1.0.0
May 1, 2024
androidx.vectordrawable:vectordrawable-seekable:1.0.0 is released. Version 1.0.0 contains these commits.
Major features of 1.0.0
androidx.vectordrawable:vectordrawable-seekable is a seekable alternative for androidx.vectordrawable:vectordrawable-animated with some additional features. It supports the same XML format as AnimatedVectorDrawable.
- Pause and resume
- Seek (setCurrentPlayTime)
- Enhanced callbacks
See SeekableAnimatedVectorDrawable for the details.
ViewPager2: v1.1.0-rc01
May 1, 2024
androidx.viewpager2:viewpager2:1.1.0-rc01 is released with no notable changes since 1.1.0-beta02. Version 1.1.0-rc01 contains these commits.
Wear Compose: v1.4.0-alpha08
May 1, 2024
androidx.wear.compose:compose-*:1.4.0-alpha08 is released. Version 1.4.0-alpha08 contains these commits.
API Changes
- We have made the following changes to the new rotary API: renamed
Modifier.rotarytoModifier.rotaryScrollable; renamed theRotaryBehaviorinterface toRotaryScrollableBehaviorand its functionhandleScrollEventtoperformScroll; renamedRotaryScrollableAdaptertoRotaryScrollableLayoutInfoProviderand removed thescrollableStateproperty. (I0c8a6) - We have made additional changes to the rotary API: renamed
RotaryScrollableLayoutInfoProvidertoRotarySnapLayoutInfoProvider(because this provider is only needed for rotary with snap); changed the type of thesnapOffsetparameter inRotaryScrollableDefaults.snapBehavior snapOffsetfrom Int to Dp. (Iddebe) - We have renamed the
clickInteractionSourceparameter onSplitSelectableChiptocontainerInteractionSource. (Ia8f84) - We have updated the click callback parameter names for
SplitSelectableChip- fromonClicktoonSelectionClickand fromonBodyClicktoonContainerClick. (I32237)
Bug Fixes
- We have updated the horizontal padding for
PositionIndicatorto 2dp (was 5dp), in order to fix a bug where thePositionIndicator(scroll bar) overlaps scrollable content. Please note that this change is expected to break existing screenshots that include thePositionIndicatordue to the change of padding. (I57472) - We have improved the documentation for the new rotary API by describing the differences between low-res and hi-res rotary devices. (I63abe)
- We have addressed an out-of-range exception in
SwipeDismissableNavHostthat could be triggered when interpolated alpha values were less than zero. (Ib75a1, b/335782510)
Wear Compose Material3: v1.0.0-alpha22
May 1, 2024
androidx.wear.compose:compose-material3:1.0.0-alpha22 is released. Version 1.0.0-alpha22 contains these commits.
API Changes
- We have updated the Material3
ColorScheme. (I7b2b8) - We have updated the Material3 Switch - as well as some color changes, the tick now matches that used for the Checkbox. (Icac7b)
Bug Fixes
- Update all integration demos to use new
rotaryScrollablemodifier. (I25090)
wear protolayout: v1.2.0-alpha02
May 1, 2024
androidx.wear.protolayout:protolayout-*:1.2.0-alpha02 is released. Version 1.2.0-alpha02 contains these commits.
API Changes
- We've added support for disabling ripple feedback on individual clickable elements. (If1ede)
- The API for transformation has been removed from
ArcModifiersas they don't support that feature (Ic0827) ArcDirectionPropBuilder now expects a value in the constructor. (I76ada)- The
PlatformDataValues.Builder.putAllmethod will allow merging onePlatformDataValueinto another one. (I50ba3) Text#setIsScalableis renamed toText#setScalable. (If920e)- Material Text can set whether to use scalable size (grows when user font size is changed) or not. (Ibc849)
- We've added the option to set content description to
TitleChip. (I5d21f) - Fixed
CompactChipto work correctly with icon only and update the API to allow this option. (I6589e)
Bug Fixes
- Fixed an issue of potential duplicate platform data during initialization. (Iba0fd)
- Introduce a new getter to
DynamicDataNodeto retrieve node cost. The cost is used when acquiring dynamic node quota. Currently, Nodes with fixed values will have a cost of 0, all the other nodes will have a cost of 1. (Ia33e1) - Remove counting logic from the
NO_OP_QUOTA_MANAGER. (Ib50b8) - We have added a lint rule to report a warning when
PrimaryLayoutis used withoutsetResponsiveContentInsetEnabledand provide a quick fix. (I12025) - There is a limit to a number of dynamic expression nodes. (Iffae8)
Wear Tiles: v1.4.0-alpha02
May 1, 2024
androidx.wear.tiles:tiles-*:1.4.0-alpha02 is released. Version 1.4.0-alpha02 contains these commits.
API Changes
- Move
tileIdto Builder constructor param as a mandatory field and document default timestamp value in the getter. (I98c2b) - Add
TileInteractionEvent,TileEnter, andTileLeaveproto messages and Java Wrappers needed for batching tile enter/leave events. (I112b0) - Refactor
TileRendererto use a Builder instead of aTileRenderer.Configobject. (Ib66f9) - Add a
platformDataProvidersattribute toTileRenderer.Config. (I6030d) - Add a new constructor to
TileRendererthat supports a newTileRenderer.Configclass. Other constructors are deprecated. (Iae7ff) - Add a
platformDataValuesfield toTilePreviewDatato allow overriding platform data values. (If437a)
Bug Fixes
- Document that the default value for
TileRenderer.Config.Builder#setTilesThemeis zero. (Iced18)
Webkit: v1.11.0
May 1, 2024
androidx.webkit:webkit:1.11.0 is released. Version 1.11.0 contains these commits.
Important changes since 1.10.0
- Allow apps to control audio playback in
WebViewthrough the newsetAudioMutedandisAudioMutedAPIs, which are analogous to muting a tab in Chrome. - Introduced
URLUtilCompat, which supports parsing ofContent-Dispositionheaders that use thefilename*encoded value attribute as defined in RFC 6266. The compatibility API also directly exposes a method to parse theContent-Dispositionheader where a suggested file name based on URL and MIME-type is not desired.
WindowManager: v1.3.0-beta02
May 1, 2024
androidx.window:window-*:1.3.0-beta02 is released. Version 1.3.0-beta02 contains these commits.
API Changes
- Remove support for creating and using custom
WindowSizeClass's. (Id1143)
Bug Fixes
- Fixes
KotlinReflectionInternalErrorcaused by proguard stripping out some files on certain device implementations. (I01b02)