Skip to content

2024-04-30

Choose a tag to compare

@github-actions github-actions released this 01 May 18:38
· 88 commits to main since this release

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#measureRepeated variant which takes a custom PerfettoConfig for 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.deviceSupportsPowerEnergy to PowerMetric.deviceSupportsHighPrecisionTracking for clarity (I5b82f)
  • Added PowerMetric.deviceBatteryHasMinimumCharge() and PowerMetric.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

  • LookaheadScope APIs have been made stable. (I21507)

External Contribution

  • Clear start animation time after SeekableTransitionState animates/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 @Composable functions 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 BasicTextField and SelectionContainer with items for cut, copy, paste, and select-all actions. (If8c93, Ia2b49, I6f268)

API Changes

  • LazyLayout prefetch 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 isPositionedByParentWithDirectManipulation to introducesFrameOfReference. Note that it now has the reverse effect, meaning that by default, most LayoutCoordinates introduce 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, use positionInLocalFrameOfReference(...). Or positionInLocalLookaheadFrameOfReference from a LookaheadScope. (Ifc5f7)
  • Renamed onClicked to onClick inside LinkInteractionListener (Iaa35c)
  • Change action lambda for getScrollViewportLength as per API council feedback. (Ibc74a)
  • Renamed stylus handwriting delegation APIs. (Ica45f, b/327271923)
  • Rename TextInclusionStrategy.isInside to isIncluded. Make Paragraph/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's currentValue would change when approaching the state's bounds. (Iea30b, b/333846848)

External Contribution

  • Renamed PrefetchExecutor -> PrefetchScheduler to better reflect its responsibilities. (Ib9154)
  • Added support for prefetching items in nested LazyLists (e.g. a LazyColumn that renders nested LazyRows). This change is expected to reduce frame drops during scrolling for these LazyLists. The implementation default is to prefetch the first 2 nested items, however this behavior can be controlled by the new LazyLayoutPrefetchStrategy(nestedPrefetchItemCount) and LazyListPrefetchStrategy#onNestedPrefetch APIs. (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 backgroundColor not applying to TextFieldDecorationBox and OutlinedTextFieldDecorationBox. Decoration boxes now accept a shape parameter. (I371c2, b/307694651)
  • RippleConfiguration#isEnabled has been removed, and LocalRippleConfiguration has been made nullable. To disable a ripple, instead of providing a RippleConfiguration with isEnabled = false, provide null to LocalRippleConfiguration. (I22725)
  • Text links have a pressed state styling option in addition to normal styling, hovered and focused. TextDefaults methods each have a pressedStyle argument to support that. (Ic473f, b/139312671)

Bug Fixes

  • OutlinedTextField top 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 PullToRefreshState to use fractional values instead of Dp units.
    • isRefreshing state is controlled by the user instead of PullToRefreshState.
    • Separated out the nested scroll connection from PullToRefreshState. It is handled by the new PullToRefreshBox or Modifier.pullToRefresh.
    • This update is a breaking change to previous experimental APIs. (I0adeb, b/314496282, b/317177684, b/323787138, b/324573502, b/317177683)

API Changes

  • RippleConfiguration#isEnabled has been removed, and LocalRippleConfiguration has been made nullable. To disable a ripple, instead of providing a RippleConfiguration with isEnabled = false, provide null to LocalRippleConfiguration. (I22725)
  • ModalBottomSheet more 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. ModalBottomSheet parameter windowInsets renamed to contentWindowInsets to specify where the insets will be applied, these are no longer tied to window logic. contentWindowInsets type has been changed to a function which returns WindowInsets, to allow it to be resolved within its new window. (I39630, b/274872542, b/300280229, b/290893168)
  • PrimaryScrollableTabRow and SecondaryScrollableTabRow now 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. TextDefaults methods each got a pressedStyle argument to support that. (Ic473f, b/139312671)

Bug Fixes

  • Navigation drawer drag anchors now match the drawerContent's width. (Ibc72f, b/245355396)
  • OutlinedTextField top 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 isFlat info to HingeInfo (Ie0516, b/333784198)
  • Make adaptive APIs non-experimental (I1d038)
  • Make adaptive layout APIs non-experimental (Id23df)
  • Changed BackNavigationBehavior from 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 Posture equality 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#createOutline is 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 isPositionedByParentWithDirectManipulation to introducesFrameOfReference. Note that it now has the reverse effect, meaning that by default, most LayoutCoordinates introduce 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, use positionInLocalFrameOfReference(...). Or positionInLocalLookaheadFrameOfReference from a LookaheadScope. (Ifc5f7)
  • LookaheadScope APIs have been made stable (I21507)
  • Change action lambda for getScrollViewportLength as per API council feedback. (Ibc74a)
  • Updated GraphicsLayer outline APIs to consume float parameters instead of int. Removed UnsetOffset/UnsetSize IntSize sentinel 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 a button: MouseButton parameter to make them more universally applicable. The default value is MouseButton.Primary for all methods. (I31a23, b/190493367, b/261439695)
  • Renamed onClicked to onClick inside LinkInteractionListener. (Iaa35c)
  • Rename TextInclusionStrategy.isInside to isIncluded. Make Paragraph/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. a LazyColumn that renders nested LazyRows). This change is expected to reduce frame drops during scrolling for these LazyLists. The implementation default is to prefetch the first 2 nested items, however this behavior can be controlled by the new LazyLayoutPrefetchStrategy(nestedPrefetchItemCount) and LazyListPrefetchStrategy#onNestedPrefetch APIs. (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 PlayServicesDevicePerformance found in version 1.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 minSdkVersion of androidx libraries (I6ec7f)

API Changes

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 DataStore instances 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 Animator or 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 pillStar shapes 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 on RoundedPolygon. (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 minSdkVersion of 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-common classes was not properly packaged. These are now packaged in the lifecycle-runtime AAR. (aosp/3038274, b/322382422)
  • Fixed an unintentional ordering change in how AutoCloseable instances attached to a ViewModel are cleared - the previous order of addCloseable(String, AutoCloseable), then addClosable(AutoCloseable), then onCleared() has been restored. (aosp/3041632)
  • Improve the default creation behavior for viewModelScope for 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

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-compose artifact now provides a LocalFragment composition local to composable methods within a ComposableFragment. (If35e5)
  • NavType now 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 CoroutineContext has been added to the builder: RoomDatabase.Builder.setQueryCoroutineContext. Note that a RoomDatabase can only be configured with either executors using setQueryExecutor or with a Coroutine context but not both.
  • An API for configuring Room with a SQLite Driver has been added: RoomDatabase.Builder.setDriver(). For more information about the SQLite Driver API refer to the SQLite KMP documentation
  • APIs for accessing the underlying SQLiteConnection from driver APIs have been added: RoomDatabase.useReaderConnection and RoomDatabase.useWriterConnection.
  • Varios Room related callbacks now have an overloaded version that receive SQLiteConnection instead of SupportSQLiteDatabase. 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-ktx has been merged to androidx.room:room-runtime along 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 SQLite APIs that enable Room to be KMP have also been updated. The package andriodx.sqlite contains three interfaces that define low-level SQLite APIs: SQLiteDriver, SQLiteConnection and SQLiteStatement. The artifact androidx.sqlite:sqlite-framework offers implementation of the interfaces for Android and iOS Natively, while androidx.sqlite:sqlite-bundled offers an implementation that uses SQLite compiled 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 a TransitionSeekController that allows seeking the Transition. 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.
  • TransitionListeners now have new onTransitionStart() and onTransitionEnd() 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 have TransitionListeners.

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

  • ColorScheme and its utility functions are now stable. (If34fa)
  • LocalContentColor is now stable (I60ee2)
  • Typography API 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)
  • LocalTextStyles API is now stable (Iaded8)
  • MaterialTheme API is now stable (I2f541)
  • Text Component is now stable (Ib9e31)
  • RadioButton component is now stable (Ia03c8)
  • Switch component is now stable (I6cea3)
  • Checkbox components are now stable (I7eafc)
  • Surface components are now stable (I58758, I04aca)
  • Renamed NonInteractiveSurfaceDefaults to SurfaceDefaults and NonInteractiveSurfaceColors to SurfaceColors (I0812e)
  • Selectable Surface now uses “select” terminology instead of “check” because they both have different semantics meaning (I5a206)
  • NavigationDrawer and NavigationDrawerScope are now stable (I249c1)
  • NavigationDrawerItem component is now stable (Id6986)
  • Tab and TabRow components are now stable (I92d92)
  • Button, OutlinedButton, IconButton, OutlinedIconButton and WideButton components are now stable (Ib4de8)
  • Card, ClassicCard, CompactCard, WideClassicCard, StandardCardContainer & WideCardContainer components are now stable (I34390)
  • Renamed StandardCardLayout to StandardCardContainer and WideCardLayout to WideCardContainer (I08883)
  • Removed CardContainerDefaults.ImageCard and renamed CardDefaults.ContainerGradient to CardDefaults.ScrimBrush (I6adfe)
  • ListItem and DenseListItem are now stable (Idebd9)
  • ListItemDefaults.ListItemShape, ListItemDefaults.FocusedDisabledBorder & ListItemDefaults.SelectedContainerColorOpacity are now private (I5d533)
  • Rearranged the ListItem’s parameters & renamed ListItemDefaults.ListItemElevation to ListItemDefaults.TonalElevation (Id6841)
  • LocalAbsoluteTonalElevation is now internal (Ibfc65)
  • The ImmersiveList component has been removed. Check out this sample to learn how to build it yourself. (Id48da)
  • tv-material components exposing a MutableInteractionSource in their API have been updated to now expose a nullable MutableInteractionSource that defaults to null. There are no semantic changes here: passing null means that you do not wish to hoist the MutableInteractionSource, and it will be created inside the component if needed. Changing to null allows for some components to never allocate a MutableInteractionSource, 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 the MutableInteractionSource you 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 TextAlign parameter is now non-null (Ib73b1, b/299490814)
  • Introduced a special Unspecified value for TextAlign, TextDirection, Hyphens and LineBreak fields of the ParagraphTextStyle to 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.rotary to Modifier.rotaryScrollable; renamed the RotaryBehavior interface to RotaryScrollableBehavior and its function handleScrollEvent to performScroll; renamed RotaryScrollableAdapter to RotaryScrollableLayoutInfoProvider and removed the scrollableState property. (I0c8a6)
  • We have made additional changes to the rotary API: renamed RotaryScrollableLayoutInfoProvider to RotarySnapLayoutInfoProvider (because this provider is only needed for rotary with snap); changed the type of the snapOffset parameter in RotaryScrollableDefaults.snapBehavior snapOffset from Int to Dp. (Iddebe)
  • We have renamed the clickInteractionSource parameter on SplitSelectableChip to containerInteractionSource. (Ia8f84)
  • We have updated the click callback parameter names for SplitSelectableChip - from onClick to onSelectionClick and from onBodyClick to onContainerClick. (I32237)

Bug Fixes

  • We have updated the horizontal padding for PositionIndicator to 2dp (was 5dp), in order to fix a bug where the PositionIndicator (scroll bar) overlaps scrollable content. Please note that this change is expected to break existing screenshots that include the PositionIndicator due 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 SwipeDismissableNavHost that 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 rotaryScrollable modifier. (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 ArcModifiers as they don't support that feature (Ic0827)
  • ArcDirectionProp Builder now expects a value in the constructor. (I76ada)
  • The PlatformDataValues.Builder.putAll method will allow merging one PlatformDataValue into another one. (I50ba3)
  • Text#setIsScalable is renamed to Text#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 CompactChip to 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 DynamicDataNode to 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 PrimaryLayout is used without setResponsiveContentInsetEnabled and 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 tileId to Builder constructor param as a mandatory field and document default timestamp value in the getter. (I98c2b)
  • Add TileInteractionEvent, TileEnter, and TileLeave proto messages and Java Wrappers needed for batching tile enter/leave events. (I112b0)
  • Refactor TileRenderer to use a Builder instead of a TileRenderer.Config object. (Ib66f9)
  • Add a platformDataProviders attribute to TileRenderer.Config. (I6030d)
  • Add a new constructor to TileRenderer that supports a new TileRenderer.Config class. Other constructors are deprecated. (Iae7ff)
  • Add a platformDataValues field to TilePreviewData to allow overriding platform data values. (If437a)

Bug Fixes

  • Document that the default value for TileRenderer.Config.Builder#setTilesTheme is 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 WebView through the new setAudioMuted and isAudioMuted APIs, which are analogous to muting a tab in Chrome.
  • Introduced URLUtilCompat, which supports parsing of Content-Disposition headers that use the filename* encoded value attribute as defined in RFC 6266. The compatibility API also directly exposes a method to parse the Content-Disposition header 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 KotlinReflectionInternalError caused by proguard stripping out some files on certain device implementations. (I01b02)