Skip to content

2025-08-13

Compare
Choose a tag to compare
@github-actions github-actions released this 13 Aug 18:52
· 3 commits to main since this release

Activity: v1.12.0-alpha06

August 13, 2025

androidx.activity:activity:1.12.0-alpha06, androidx.activity:activity-compose:1.12.0-alpha06, and androidx.activity:activity-ktx:1.12.0-alpha06 are released. Version 1.12.0-alpha06 contains these commits.

MinSdk Update

Documentation Updates

  • Updated KDocs for PredictiveBackHandler to call out a known timing issue where it may process a gesture in the same frame it is disabled. (I5be5c, b/431534103)
  • Updated KDocs for BackHandler and PredictiveBackHandler to explicitly state the 'last composed wins' behavior in addition to recommending unconditional composition with the enabled flag. (I7ab94)

Dependency update

appfunctions: v1.0.0-alpha03

August 13, 2025

androidx.appfunctions:appfunctions-*:1.0.0-alpha03 is released. Version 1.0.0-alpha03 contains these commits.

New Features

  • Use KDoc(s) as AppFunction descriptions
  • Restrict values for Int and String types using AppFunctionIntValueConstraint and AppFunctionStringValueConstraint annotations, respectively.
  • Specify a natural language description for large language models and a user visible description displayed within agent apps.
  • Automatically grant permissions to URI(s) returned from an app function using AppFunctionUriGrant class.
  • Write Robolectric tests using AppFunctionTestRule for testing your app function setup.

API Changes

  • Add AppFunctionStringValueConstraint (I10e3f)
  • Add AppFunctionIntValueConstraint (Ifda13)
  • Refactor AppFunctionPrimitiveTypeMetadata to specific data type classes. (I1a3b2)
  • Add description field in AppFunctionResponseMetadata (I2332b)
  • Remove permission requirement from setAppFunctionEnabled API (I1b92a)
  • Add description field in AppFunctionParameterMetadata (I40a67)
  • Add AppFunctionUriGrant (I67ca9)
  • Add resolveAppFunctionAppMetadata API. (I17408)
  • Add isDescribedByKdoc in @AppFunctionSerializable annotation (Ie14e7)
  • Add description field in AppFunctionDataTypeMetadata (I1bcac)
  • Return AppPackageMetadata from observeAppFunctions API. (I68c7e)
  • Add description field in AppFunctionMetadata (I060e2)
  • Add AppFunctionTestRule (Id5ed0)
  • Add isDescribedByKdoc in @AppFunction annotation (Ia84d2)

Bug Fixes

  • AppFunctionManagerCompat only supports U+ devices (Ifa8d0)
  • Add property descriptions of shared serializable types in AppFunction's metadata xml (I2aab2)
  • Add a description element in generated AppFunction's metadata xml (Ie5bf6)

Browser: v1.10.0-alpha01

August 13, 2025

androidx.browser:browser:1.10.0-alpha01 is released. Version 1.10.0-alpha01 contains these commits.

API Changes

  • Added support for the display_override TWA manifest property (Ib036b)
  • Removing obsolete @RequiresApi(21) annotations (Ic4792)
  • Removing obsolete @RequiresApi(21) annotations (I9103b)
  • Allow Null for pageUrl in ContentActionSelectedData (Ifed54)
  • Added an Intent to allow launching the initial url in an external app (Id9349)
  • Add an Intent to allow launching the initial url in an external app (Ifed54)

Bug Fixes

Camera: v1.5.0-rc01

August 13, 2025

androidx.camera:camera-*:1.5.0-rc01 is released. Version 1.5.0-rc01 contains these commits.

Bug Fixes

  • Moving the default minSdk from API 21 to API 23 (Ibdfca, b/380448311, b/435705964, b/435705223)
  • Removed the 10-bit output restriction for the low-light boost auto-exposure mode. Applications can now simultaneously enable both features on supported devices. (I5a638)
  • Resolved an issue that caused devices with UniSoc chipsets to hang when capturing an image. The problem occurred when VideoCapture, Preview, and ImageCapture were used simultaneously with all streams set to a 1280x720 resolution. (Ia00c4, b/380802479)
  • Fixed preview black screen when no high-speed frame rate is set for high-speed/slow-motion recording. (cdf0ff2e9)
  • Improve error handling and logging in getViewportAspectRatioInt (82fca18)

camera featurecombinationquery: v1.5.0-rc01

August 13, 2025

androidx.camera.featurecombinationquery:featurecombinationquery:1.5.0-rc01 and androidx.camera.featurecombinationquery:featurecombinationquery-play-services:1.5.0-rc01 are released. Version 1.5.0-rc01 contains these commits.

camera media3: v1.0.0-alpha04

August 13, 2025

androidx.camera.media3:media3-effect:1.0.0-alpha04 is released. Version 1.0.0-alpha04 contains these commits.

Bug Fixes

  • Fixed the crash in androidx.camera.media3.effect with media3 1.7 or later (I450a6)

camera viewfinder: v1.5.0-rc01

August 13, 2025

androidx.camera.viewfinder:viewfinder-compose:1.5.0-rc01, androidx.camera.viewfinder:viewfinder-core:1.5.0-rc01, and androidx.camera.viewfinder:viewfinder-view:1.5.0-rc01 are released. Version 1.5.0-rc01 contains these commits.

Bug Fixes

Compose Animation: v1.9.0

August 13, 2025

androidx.compose.animation:animation-*:1.9.0 is released. Version 1.9.0 contains these commits.

Compose Animation: v1.10.0-alpha01

August 13, 2025

androidx.compose.animation:animation-*:1.10.0-alpha01 is released. Version 1.10.0-alpha01 contains these commits.

New Features

  • New API to allow dynamically enable and disable shared elements that also allows accounting for whether there is already an ongoing shared element transition.
  • New API to set up an alternative target bounds when the target shared element is disposed during the transition.
  • New API to obtain the LayoutCoordinates of a LookaheadScope. (I18dd4, b/409819304, b/395670637)
  • New modifier Modifier.skipToLookaheadPosition in SharedTransitionScope for anchoring a layout at the target position during a shared transition. (I88734)

API Changes

  • Simplified renderInSharedTransitionOverlay by removing the clipInOverlayDuringTransition lambda as this has been rarely used. Introduced new factory method for SharedContentConfig. (Id01b2)
  • Added a set of Defaults for shared element, shared bounds, renderInSharedTransitionOverlay configurations. These defaults are now accessible through public APIs. (Id23cc)
  • ScaleToBounds ResizeMode has been renamed to scaleToBounds (I5ac50)

Bug Fixes

Compose Foundation: v1.9.0

August 13, 2025

androidx.compose.foundation:foundation-*:1.9.0 is released. Version 1.9.0 contains these commits

Important changes since 1.8.0

  • Lint checks shipped with Compose now require a minimum AGP version of 8.8.2. If you are unable to upgrade AGP, you can instead upgrade Lint on its own by using android.experimental.lint.version=8.8.2 (or a newer version) in your gradle.properties. To run Compose lint checks inside the IDE, Android Studio Ladybug or newer is required.
  • Breaking change: clickable, combinedClickable,selectable, toggleable, and triStateToggleable overloads without an Indication parameter now only support IndicationNodeFactory instances provided using LocalIndication. This change will apply when you recompile your usages of these modifiers using this version of Compose. Binary / transitive dependencies are not affected. If you are providing a deprecated Indication implementation to LocalIndication, and using these APIs, this will introduce a crash at runtime. This behavior change is needed to enable improved performance, and allow Composable functions using these modifiers to skip during recomposition. You can use ComposeFoundationFlags.isNonComposedClickableEnabled=false to temporarily opt-out of this behavior change, to enable upgrading Compose without being blocked on this migration. This flag will be removed after one stable release. To resolve, migrate any deprecated Indication implementations to use IndicationNodeFactory instead. You can also use the overloads with an explicit Indication parameter - these overloads will continue to support non-IndicationNodeFactory instances of Indication, although this is not recommended for performance reasons. (I6bcdc, b/316914333)
  • Introduced isFlingCancellationWithNestedScrollFixEnabled to fix an issue with fling propagation in nested scrolling. In this CL we are restoring the fling continuation behavior removed in I9326a. We will still cancel the fling animation in case the child is removed from composition. (I467f4, b/405910180, b/419049142, b/416784125)
  • Re-add usage of scrollAnimationSpec in ContentInViewNode. The behavior was removed during the scrollAnimationSpec deprecation which caused use cases to be broken. (I1436a, b/403301605)
  • Stabilized LazyLayout. (If5db4), LazyLayoutPrefetchState and it's scheduling method schedulePrecomposition and schedulePrecompositionAndPremeasure. (I4362f, b/252853717) and LazyLayoutItemProvider (Icce09,b/261565751)
  • Allow Compose to trigger ViewTreeObserver.OnScrollChanged. This behavior is introduced under the flag isOnScrollChangedCallbackEnabled. We also introduced an extension function of DelegatableNode dispatchOnScrollChanged. (I34b9d, b/238109286)
  • Introduce Modifier.scrollable2D, Scrollable2DState and companion APIs for state creation. Also introduced common scroll extension functions. (Ic61c8, b/214410040)
  • PrefetchScheduler and customisation have been deprecated in favor of the internal implementation that does all the work automatically. (I3a9a6, b/420551535)
  • TextFieldState.edit { } no longer clears the undo history. Instead it creates a standalone undo entry. If the desired behavior is to clear the undo stack after an edit call, please use TextFieldState.undoState.clearHistory(). (I12c14)
  • Context Menu and Selection toolbar now both support Smart Items (Smart Selection)
  • Added styled text OutputTransformation to allow styling the output of TextField using the state overload.
  • TextField: Support context menu (right click menu).
  • Text copied from multiple Text composables in a SelectionContainer now will have a line separator \n added between text coming from the separate Text composables. (I25332, b/285036739)
  • Introduce API for creating custom bullet lists through AnnotatedString (I1d066, b/383269496, b/139326648)
  • The state overload of BasicTextField will keep the cursor scrolled into view when its size changes. (I0eb41, b/406187741)

Compose Foundation: v1.10.0-alpha01

August 13, 2025

androidx.compose.foundation:foundation-*:1.10.0-alpha01 is released. Version 1.10.0-alpha01 contains these commits.

API Changes

  • Update Pager's prefetch strategy to use Cache Window instead of the default 1 item in the direction of the scroll. Now initial prefetching is enabled by default in Pager and prefetching will be based on the size of the window worth 1 viewport, that is, we will try to fill 1 whole view port with prefetched items. Items will be kept around longer as well. (I4d45e, b/292136289)
  • ComposeFoundationLayoutFlags.isWindowInsetsOptimizationEnabled flag has been added to allow disabling a WindowInsets performance optimization should the new implementation cause a behavioral change. (I8e912)
  • SnapFlingBehavior now allows snap animation specs to overshoot during snapping. This allows enables e.g. a bouncy spring spec as the snapAnimationSpec to produce a bouncy snap animation. Overshooting values continue to be ignored when performing an approach with the snap spec. (I373c2)
  • Pointer downs with a mouse or touchpad in a ComposeView will now clear focus automatically if the pointer down doesn't occur in the bounds of the focused node. This results in a "tap-to-clear focus" UX that is more expected than current behavior when using pointer input devices. This behavior can be opt-ed out of with a new AbstractComposeView.isClearFocusOnPointerDownEnabled API. (I6322b, b/282963174)
  • Now Scrollable supports 2 dimensional mouse wheel scroll events better. A new test API landed to help test use cases in MouseInjectionScope. We also introduced a new overload for scroll methods in MouseInjectionScope and a flag to control the new behavior called isMouseWheel1DAxisLockingEnabled (I136df)
  • Updated DragGestureNode to use raw pointer input instead of suspending pointer input for optimization. The changes are added behind the flag isNonSuspendingPointerInputInDraggableEnabled (I0fa4b)
  • Annotated some AnchoredDraggable APIs with @FrequentlyChangingValue. offset, requireOffset and progress change often and should not be read in composition. Please access these values from the layout and draw phases, effects or otherwise outside of composition instead. (I05539)
  • Removed flags isOnScrollChangedCallbackEnabled, isAdjustPointerInputChangeOffsetForVelocityTrackerEnabled, isFlingContinuationAtBoundsEnabled, isAutomaticNestedPrefetchEnabled, DragGesturePickUpEnabled, isPointerInteropFilterDispatchingFixEnabled, isNestedScrollInteropPostFlingFixEnabled, isNestedScrollDispatcherNodeFixEnabled (I36c18)
  • Introduce CompositionLocal that can be used to modify the brush of Autofill's successful filling highlight. (I52329)
  • Added customizable focus rect to FocusProperties. You can now define a custom focus area instead of defaulting the bounding box of the focusable. This information is used by the focus traversal system and the keep in view logic of scrollable containers. (Id6555, b/368378073)
  • Added a new LineHeightStyle.Mode called Tight. This mode helps enforce smaller line heights even when they may possibly cut taller glyphs. (Id3849)
  • Introduced new Interpolatable interface which allows for automatic interpolation between different types, assuming one type knows how to convert from the other. This interface is leveraged in several compose types like Brush and Shape, but can be utilized externally as well. (I58eab)
  • Adds indirect input events and a way to specify coordinate axis to use for scrolling. (I58e7c)
  • Adds new WindowInsets.cutoutPath API to get the path for the display cutout (Ib90b1, b/279636456)
  • The isWindowInsetsDefaultPassThroughEnabled flag has been removed, defaulting WindowInsets to not consuming so that child Views can receive WindowInsets by default. (I888e0, b/412469666)

Bug Fixes

  • isNonSuspendingPointerInputInDraggableEnabled should be disabled for now. (Ia41c4)
  • Moving the default minSdk from API 21 to API 23 (Ibdfca, b/380448311, b/435705964, b/435705223)
  • Updated DraggableAnchors' minPosition/maxPosition documentation to indicate these APIs should return Float.NaN in line with other DraggableAnchors APIs. (I0460a)
  • Fixed a bug where DraggableAnchors#closestAnchor would crash if the anchors were empty (I4e646)
  • Performance improvements for DraggableAnchors (If4065, I0460a)
  • TextFieldState.edit { } no longer clears the undo history. Instead it creates a standalone undo entry. If the desired behavior is to clear the undo stack after an edit call, please use TextFieldState.undoState.clearHistory(). (I12c14)
  • Added support for double-tap to select word in SelectionContainer and BasicTextField(value, onValueChange) overload. (Ibb06a)
  • Minor bug fix to make AutoboxingStateValuePropertyDetector compatible for both K1 and K2 (Ie81c1)
  • requestRectangleOnScreen requests made by AndroidViews now properly propagates to Compose. This helps views like EditText to stay on screen when interacted with. (Ibbf4c)
  • Column and Row now correctly pass the item's actual size to Alignment.Vertical.align and Alignment.Horizontal.align, resolving an issue where custom alignment implementations received an incorrect 0 value. (I3e460, b/349722072)

Compose Material: v1.9.0

August 13, 2025

androidx.compose.material:material-*:1.9.0 is released. Version 1.9.0 contains these commits.

Important changes since 1.8.0

Behavior Changes

  • Lint checks shipped with Compose now require a minimum AGP version of 8.8.2. If you are unable to upgrade AGP, you can instead upgrade Lint on its own by using android.experimental.lint.version=8.8.2 (or a newer version) in your gradle.properties. To run Compose lint checks inside the IDE, Android Studio Ladybug or newer is required.

API Changes

  • Projects released with Kotlin 2.0 require KGP 2.0.0 or newer to be consumed. (Idb6b5)
  • Text field decoration box APIs are no longer experimental. (I7480f)

Bug Fixes

  • ExposedDropdownMenu is binary compat with older versions. (I133f7)

Compose Material: v1.10.0-alpha01

August 13, 2025

androidx.compose.material:material-*:1.10.0-alpha01 is released. Version 1.10.0-alpha01 contains these commits.

Bug Fixes

Compose Material3: v1.4.0-beta02

August 13, 2025

androidx.compose.material3:material3-*:1.4.0-beta02 is released. Version 1.4.0-beta02 contains these commits.

Dependency Changes

API Changes

  • In PullToRefreshDefaults, renamed shape to indicatorShape and containerColor to indicatorContainerColor and added indicatorMaxDistance for indicator use. (Ib6cbe)
  • Remove deprecation tag from PullToRefreshDefaults.indicatorColor (Iaaee2)
  • BasicAlertDialogOverrideScope was accidentally promoted to stable and had its experimental annotation removed in aosp/3701846. Marking it as internal. It will stay as public experimental in 1.5.0-alpha (I9182a)

Bug Fixes

Compose Material3: v1.5.0-alpha02

August 13, 2025

androidx.compose.material3:material3-*:1.5.0-alpha02 is released. Version 1.5.0-alpha02 contains these commits.

API Changes

  • In PullToRefreshDefaults, renamed shape to indicatorShape and containerColor to indicatorContainerColor and added indicatorMaxDistance for indicator use. (Ib6cbe)
  • Remove deprecation tag from PullToRefreshDefaults.indicatorColor (Iaaee2)
  • Added AppBarWithSearch, replacing TopSearchBar and supporting navigation/action icons. (I213a5)

Bug Fixes

  • Fix bug where backpress incorrectly updates drawer offset. (I85624, b/427778135)
  • SwipeToDismissBox now falls back to a settled targetValue if no other anchors exist. BottomSheetScaffold now falls back to an Expanded targetValue if no other anchors exist. (I73d5e, b/428856426)
  • Fixed button padding in AlertDialog when stacked vertically. (Ia2118)
  • [FAB] Fix bug where FAB is still clickable after Modifier.animateFloatingActionButton hides it (I8ea6c, b/430336834)
  • [Slider] Fixed keyboard navigation for Slider (I3a405)

Compose Material3 Adaptive: v1.2.0-alpha11

August 13, 2025

androidx.compose.material3.adaptive:adaptive-*:1.2.0-alpha11 is released. Version 1.2.0-alpha11 contains these commits.

API Changes

  • Introduce a generic PaneScaffoldRole interface to improve API readability (I1b757)
  • Remove AdaptStrategy.Levitated.Strategy class (I6f798)
  • Changes Modifier.preferredWidth/Height's proportion parameter from Int percentage values to Float ranges from 0 to 1. (Ib2de2)

Bug Fixes

Compose Runtime: v1.9.0

August 13, 2025

androidx.compose.runtime:runtime-*:1.9.0 is released. Version 1.9.0 contains these commits.

Important changes since 1.8.0

  • Lint checks shipped with Compose now require a minimum AGP version of 8.8.2. If you are unable to upgrade AGP, you can instead upgrade Lint on its own by using android.experimental.lint.version=8.8.2 (or a newer version) in your gradle.properties. To run Compose lint checks inside the IDE, Android Studio Ladybug or newer is required.
  • A new runtime-annotation library has been created. This contains annotation definitions without a dependency on Compose runtime, so it can be used from non-Compose modules.
    • @Stable, @Immutable, and @StableMarker have been moved to runtime-annotation, to allow annotating non-Compose modules
    • @FrequentlyChangingValue and @RememberInComposition have been added to runtime-annotation. @FrequentlyChangingValue marks declarations that can cause frequent recompositions, and @RememberInComposition marks declarations that should be remembered in composition. Corresponding lint checks warn for incorrect usage.

Compose Runtime: v1.10.0-alpha01

August 13, 2025

androidx.compose.runtime:runtime-*:1.10.0-alpha01 is released. Version 1.10.0-alpha01 contains these commits.

API Changes

  • Introduces the retain API. Like rememberSaveable, retain can persist and save remembered values that leave the composition hierarchy. Retained values are not serialized and have a shorter lifespan than saved values, and behave similarly to an androidx ViewModel. See the documentation for more details. (Ia3105, b/177562901)
  • Added an awaitOrScheduleNextCompositionEnd() API, which issues a callback when the Recomposer finishes composing the current frame. If the Recomposer isn't currently composing a frame, this API suspends until the next frame's composition finishes and schedules a new frame to be composed. (Ib873c)
  • Add a non-unit returning composition local provider API (I22521, b/271871288)
  • Added a feature flag, isMovableContentUsageTrackingEnabled, that allows tracking the usage of movable content to avoid some overhead when initially creating the content. This feature flags is currently disabled by default. (Ia713d)

Bug Fixes

  • Fixes a crash in movable content when it is moved between subcompositions. (I3fa1e, b/436858107)
  • Fixes a bug with part of a composable stack trace missing when inside multiple nested subcompositions. (I98c6f)
  • Moving the default minSdk from API 21 to API 23 (Ibdfca, b/380448311, b/435705964, b/435705223)
  • Fixed a race condition when internal state of a pausable composition was being updated from multiple threads. (I03895)
  • Updates composition registration observer to be called before initial composition. (I4adca, b/430600932)
  • Minor bug fix to make AutoboxingStateValuePropertyDetector compatible for both K1 and K2. (Ie81c1)

External Contribution

  • Make the runtime-rxjava2 artifact multiplatform and add the JVM as a supported target. (I5409e)
  • Make the runtime-rxjava3 artifact multiplatform and add the JVM as a supported target. (I97e84)

Compose UI: v1.9.0

August 13, 2025

androidx.compose.ui:ui-*:1.9.0 is released. Version 1.9.0 contains these commits.

Important changes since 1.8.0

  • Important changes in version 1.9.0 are covered in this blogpost
  • Lint checks shipped with Compose now require a minimum AGP version of 8.8.2. If you are unable to upgrade AGP, you can instead upgrade Lint on its own by using android.experimental.lint.version=8.8.2 (or a newer version) in your gradle.properties. To run Compose lint checks inside the IDE, Android Studio Ladybug or newer is required.

Compose UI: v1.10.0-alpha01

August 13, 2025

androidx.compose.ui:ui-*:1.10.0-alpha01 is released. Version 1.10.0-alpha01 contains these commits.

API Changes

  • Pointer downs with a mouse or touchpad in a ComposeView will now clear focus automatically if the pointer down doesn't occur in the bounds of the focused node. This results in a "tap-to-clear focus" UX that is more expected than current behavior when using pointer input devices. This behavior can be opt-ed out of with a new AbstractComposeView.isClearFocusOnPointerDownEnabled API. (I6322b, b/282963174)
  • Introduce FillableData interface to support various autofill component types, in addition to Text. (If9bd2)
  • New API to allow dynamically enable and disable shared elements that also allows accounting for whether there is already an ongoing shared element transition. New API to set up an alternative target bounds when the target shared element is disposed during the transition. New API to obtain the LayoutCoordinates of a LookaheadScope. (I18dd4, b/409819304, b/395670637)
  • Introduce flag isNestedScrollInteropIntegerPropagationEnabled to control the experiment of dispatching correct integers to nested scroll interop. (If8316)
  • Added requestFocusForChildInRootBounds() to DelegatableNode to move focus to a child that overlaps with the given rect. (I001ef)
  • Removed flags isOnScrollChangedCallbackEnabled, isAdjustPointerInputChangeOffsetForVelocityTrackerEnabled, isFlingContinuationAtBoundsEnabled, isAutomaticNestedPrefetchEnabled, DragGesturePickUpEnabled, isPointerInteropFilterDispatchingFixEnabled, isNestedScrollInteropPostFlingFixEnabled, isNestedScrollDispatcherNodeFixEnabled (I36c18)
  • Added @CheckResult annotation on the SemanticsNode finder and selector functions to enforce usage of returned values. (I6f86e, b/201652748)
  • Improve the performance of the content capture process (I3c7c0)
  • Introduce CompositionLocal that can be used to modify the brush of Autofill's successful filling highlight. (I52329)
  • Introduced new Interpolatable interface which allows for automatic interpolation between different types, assuming one type knows how to convert from the other. This interface is leveraged in several compose types like Brush and Shape, but can be utilized externally as well. (I58eab)
  • Now Scrollable supports 2 dimensional mouse wheel scroll events better. A new test API landed to help test use cases in MouseInjectionScope. We also introduced a new overload for scroll methods in MouseInjectionScope and a flag to control the new behavior called isMouseWheel1DAxisLockingEnabled (I136df)
  • Add DeviceConfigurationOverrides for keyboard type & state, navigation type and state, touchscreen state, and UI mode type (I282f0)
  • Added a new LineHeightStyle.Mode called Tight. This mode helps enforce smaller line heights even when they may possibly cut taller glyphs. (Id3849)
  • BaselineShift now has an Unspecified value to prevent boxing BaselineShift, Hyphens, LineBreak, TextAlign, and TextDirection now have isSpecified helper functions Hyphens, TextAlign, TextDecoration, and TextDirection now have valueOf() and value methods enabling efficient serialization/deserialization. (I8d44c)
  • Added a new getDisplayName method interface to allow custom display names for preview parameter instances. (I19bdf, b/241699422)
  • When Dp values are compared with Unspecified using less-than or greater-than, it now always returns false. Using Dp.compareTo(Unspecified) always returns 0. Setting the flag ComposeUiUnitFlags.isDpCompareToChanged to false will return Dp.compareTo() to is former behavior, where comparing Unspecified with less-than and greater-than don't always return false, and compareTo() with Unspecified matches the behavior of Float.compareTo(). (Ifa88b, b/429221319)

Bug Fixes

  • Moving the default minSdk from API 21 to API 23 (Ibdfca, b/380448311, b/435705964, b/435705223)
  • Fixes an issue that prevented the creation of new AndroidComposeViews while a transition is ongoing. (I2e23e, b/340894487, b/287484338)
  • Fixes a color bug when using a vector drawable that uses one color and the fillColor is neither fully opaque nor fully transparent. (I3b041, b/328677973)
  • Fixes an issue where icons loaded via painterResource with theme-specific colors didn't update on theme changes. (I85ea0, b/424416571)
  • Introduce onFillData and fillableData semantics (I45d9e)
  • Platform-specific state encoding is now always enabled in StateRestorationTester. This aligns test behavior with real application state restoration, such as Parcelization on Android. (I38211, b/408154192, b/382294247)
  • Fixes occasional crashes when requesting focus. (57b31a11, b/431111149)

Core and Core-ktx: v1.17.0

August 13, 2025

androidx.core:core:1.17.0, androidx.core:core-ktx:1.17.0, and androidx.core:core-testing:1.17.0 are released. Version 1.17.0 contains these commits.

Important changes since 1.16.0

  • Core library has been updated to target Kotlin 2.0 language level and requires use of Kotlin Gradle Plugin 2.0.0 or newer.

Core-Backported-Fixes: v1.0.0-alpha01

August 13, 2025

androidx.core:core-backported-fixes:1.0.0-alpha01 is released. Version 1.0.0-alpha01 contains these commits.

New Features

  • The Core Backported Fixes library lets you check if a critical bug fix has been applied to a device. This is useful because it can take a long time for bug fixes to be rolled out to all devices, and this API provides a way for you to know when it is safe to use features that depend on a fix.

    val fixManager = BackportedFixManager()
        if (fixManager.isFixed(KnownIssues.KI_1234)) {
          Offer_experience_that_needs_fix()
        } else {
          Offer_experience_that_avoids_the_bug()
      }
    

This release includes

  • KnownIssues.KI_398591036: Abnormal color tone when capturing JPEG-R images on some Pixel devices. Fix by using JPEG outputs until this KI is resolved.

credentials: v1.6.0-alpha05

August 13, 2025

androidx.credentials:credentials:1.6.0-alpha05 and androidx.credentials:credentials-play-services-auth:1.6.0-alpha05 are released. Version 1.6.0-alpha05 contains these commits.

API Changes

  • Added APIs that allow relying parties (RPs) to send credential state signals to credential providers, such that they can update the state of the credentials on their end. (Ia7a65)

Bug Fixes

credentials providerevents: v1.0.0-alpha02

August 13, 2025

androidx.credentials.providerevents:providerevents:1.0.0-alpha02 and androidx.credentials.providerevents:providerevents-play-services:1.0.0-alpha02 are released. Version 1.0.0-alpha02 contains these commits.

API Changes

  • Minor refactors to exception classes and GetCapabilitiesRequest (Ia6ee3)
  • Added APIs that allow relying parties (RPs) to send credential state signals to credential providers, such that they can update the state of the credentials on their end. (Ia7a65)
  • Refactor ExportCredentialsResponse such that the metrics reported are grouped by the credential type (I3a088)
  • Added new APIs for device setup service (Icc9d5)

Bug Fixes

  • Added new apis for credential exchange (I77c1c)

Emoji2: v1.6.0-rc01

August 13, 2025

androidx.emoji2:emoji2-*:1.6.0-rc01 is released. Version 1.6.0-rc01 contains these commits.

New Features

  • Supported Emoji 16.0 and added “emoji” suffix to the content description.

API Changes

  • Removing obsolete @RequiresApi(21) annotations (Ic4792)
  • Removing obsolete @RequiresApi(21) annotations (I9103b)

Fragment: v1.8.9

August 13, 2025

androidx.fragment:fragment-*:1.8.9 is released. Version 1.8.9 contains these commits.

Bug Fixes

  • Fixed an issue where cancelling a predictive back gesture that pops a hide operation will cause the subsequent gesture not to animate correctly when using animators. (I0a400, b/384765586)
  • Fixed an error where a combination of setMaxLifecycle and popBackStack could fail to move the top fragment to RESUMED. (I3448b, b/406127576)

Games-Activity: v4.3.0-alpha01

August 13, 2025

androidx.games:games-activity:4.3.0-alpha01 and androidx.games:games-text-input:4.3.0-alpha01 are released. Version 4.3.0-alpha01 contains these commits.

New Features

  • Support 16kb page sizes by default.
  • Mouse support for GameActivity.

Bug Fixes

  • Fixed a race condition between onDestroy and onCreate lifecycle events.
  • Fixed an issue where apps needed to manually preserve a symbol to initialize native code.
  • Improved GameActivity touch handling.
  • Fixed GameTextInput generating as a shared library incorrectly.

Games-Controller: v2.3.0-alpha01

August 13, 2025

androidx.games:games-controller:2.3.0-alpha01, androidx.games:games-memory-advice:2.3.0-alpha01, and androidx.games:games-performance-tuner:2.3.0-alpha01 are released. Version 2.3.0-alpha01 contains these commits.

New Features

  • Support 16kb page sizes by default.

Graphics Path: v1.1.0-alpha01

August 13, 2025

androidx.graphics:graphics-path:1.1.0-alpha01 is released. Version 1.1.0-alpha01 contains these commits.

Bug Fixes

  • Add implementation for conversion from conic to quadratic and use it on host platforms. f059b1

Hilt: v1.3.0-beta01

August 13, 2025

androidx.hilt:hilt-*:1.3.0-beta01 is released. Version 1.3.0-beta01 contains these commits.

ink: v1.0.0-alpha06

August 13, 2025

androidx.ink:ink-*:1.0.0-alpha06 is released. Version 1.0.0-alpha06 contains these commits.

New Features

  • Emoji highlighter stock brush: Highlight parts of a document with any emoji you choose, to add a fun flair and help stay organized.
  • More helper APIs for geometry module primitive shapes
  • Improve device compatibility and performance

API Changes

  • Simplified API for InProgressStrokesView, finish geometry APIs, emoji highlighter, remove factory functions from MutableParallelogram in favor of populate methods, support seed for randomized brush behaviors. (I38280)

Bug Fixes

  • Fix a performance issue and a wet/dry color consistency issue. (Ifcd1d)

input: v1.0.0-beta06

August 13, 2025

androidx.input:input-motionprediction:1.0.0-beta06 is released. Version 1.0.0-beta06 contains these commits.

New Features

  • The library will now use the system prediction API if available.

API Changes

  • Removing obsolete @RequiresApi(21) annotations (I9103b)

Lifecycle: v2.10.0-alpha02

August 13, 2025

androidx.lifecycle:lifecycle-*:2.10.0-alpha02 is released. Version 2.10.0-alpha02 contains these commits.

New Features

  • The LifecycleOwner composable can now create a standalone root lifecycle. By (explicitly) setting parent = null, the new lifecycle operates independently of any host (like an Activity, Fragment or NavBackStackEntry). It starts as soon as the composable enters the composition and is automatically destroyed when it leaves. (I8dfbe, b/433659048)

    @Composable
    fun IndependentComponent() {
        // Create a standalone lifecycle, not tied to the parent Activity/Fragment.
        LifecycleOwner(parent = null) {
            val rootLifecycle = LocalLifecycleOwner.current.lifecycle
        }
    }
    

API Changes

  • In the LifecycleOwner composable, the parentLifecycleOwner parameter has been renamed to parent. (I080bc)

Bug Fixes

  • LifecycleOwner composable now correctly moves its lifecycle to DESTROYED upon disposal. This prevents potential leaks for external code that holds a reference to the lifecycle. (I9e5b7, b/433659048)
  • Moving the default minSdk from API 21 to API 23 (Ibdfca, b/380448311, b/435705964, b/435705223)

External Contribution

  • Remove unnecessary internal backing fields from LifecycleOwner. Thanks Jake Wharton for the contribution. (Ideddb)

Media: v1.7.1

August 13, 2025

androidx.media:media:1.7.1 is released. Version 1.7.1 contains these commits.

Bug Fixes

  • Improve performance of MediaSession.setMetadata() by reducing the number of intermediate allocations and removing unnecessary parceling/unparceling of bitmaps.

navigation3: v1.0.0-alpha07

August 13, 2025

androidx.navigation3:navigation3-*:1.0.0-alpha07 is released. Version 1.0.0-alpha07 contains these commits.

MinSdk Update

API Changes

  • SavedStateNavEntryDecorator now uses the SaveableStateRegistry built into SaveableStateProvider to save and restore states. (If8d9a)
  • The predictivePopTransitionSpec is now provided the swipe edge as a parameter, allowing you to customize the transition based on what edge the user started the Predictive Back gesture from. (I753a8)

Bug Fixes

  • Fixed an issue that would cause custom scenes to be infinitely recalculated because the most recent scene was not being remembered. (I7ba84, b/418153031)

Dependency update

navigationevent: v1.0.0-alpha06

August 13, 2025

androidx.navigationevent:navigationevent-*:1.0.0-alpha06 is released. Version 1.0.0-alpha06 contains these commits.

New Features

Passive Listeners API

You can now pass custom contextual information from any navigation host and passively listen to gesture state changes from anywhere in your UI. This enables context-aware animations for predictive back and other gesture-driven navigation.

This feature has two parts:

  1. Providing Info - Use NavigationEventInfo to carry custom data.
  2. Consuming State - Use dispatcher.state (NavigationEventState) to observe gesture progress and context.
  • NavigationEventCallback now exposes setInfo(currentInfo, previousInfo) method to set gesture context in one call (I1d5e7, b/424470518).
  • NavigationEventHandler adds a new overload that accepts currentInfo and previousInfo, making it the primary API for supplying context in Compose apps (I6ecd3, b/424470518).

Example:

  data class MyScreenInfo(val screenName: String) : NavigationEventInfo

NavigationEventHandler(
enabled = true,
currentInfo = MyScreenInfo("Details Screen"),
previousInfo = MyScreenInfo("Home Screen")
) { /* Handle back completion */ }


  • NavigationEventDispatcher now exposes dispatcher.state and dispatcher.getState<T>() (If7fae, Ia90ca, b/424470518). These StateFlow-based APIs let any UI observe gesture progress and contextual data without handling the event directly.

Example:

  val gestureState by LocalNavigationEventDispatcherOwner.current!!
      .navigationEventDispatcher
      .state
      .collectAsState()

val progress = gestureState.progress // Returns latestEvent.progress or 0F

when (val state = gestureState) {
is InProgress -> {
val toScreen = state.currentInfo as MyScreenInfo
val fromScreen = state.previousInfo as MyScreenInfo
println("Navigating from ${fromScreen.screenName} to ${toScreen.screenName}")
}
is Idle -> { /* Idle state */ }
}


  • Add progress property to NavigationEventState (I7b196) that returns latestEvent.progress when in progress, or 0F otherwise:

    val progress = state.progress
    
  • Add NavigationEventDispatcherOwner composable to create, link, and dispose of NavigationEventDispatcher instances hierarchically. Enable dynamic control of the dispatcher's enabled state and automatic cleanup.

    @Composable
    fun Sample() {
        NavigationEventDispatcherOwner(enabled = true) {
            val localDispatcherOwner = LocalNavigationEventDispatcherOwner.current
        }
    }
    

API Changes

  • The isPassthrough parameter has been removed from the NavigationEventCallback. (I99028, b/424470518)
  • NavigationEventState constructors are now internal. For testing, update the state (defaults to Idle) via the DirectNavigationEventInputHandler. Call handleOnStarted or handleOnProgressed to set state to InProgress, and handleOnCompleted or handleOnCancelled to return it to Idle. To update NavigationEventInfo, use NavigationEventCallback.setInfo. (I93dca, b/424470518)
  • Added default parameters to NavigationEvent to allow for easier instantiation and to simplify testing which should be used in place of TestNavigationEvent. (I5dc49, I232f4)
  • Added a TestNavigationEventCallback for testing navigation events with specific current/previous states. (Idd22e, b/424470518)
  • NavigationEventInputHandler has been made into an abstract class to replace the previous AbstractNavigationEventInputHandler with an implementation in DirectNavigationEventInputHandler (Iadde5, Ifed40I3897c, b/432616296, b/435416924)
  • The send* functions in NavigationEventInputHandler have had their prefixes renamed to handle*. (Iffcaf)
  • OnBackInvokedInputHandler now extends the newly abstract NavigationInputHandler. (Ib45aa)
  • Changed NavigationEventDispatcherOwner to require a parent dispatcher where you must explicitly pass null to create a root dispatcher. (Ia6f64, b/431534103)

Bug Fixes

  • Improved efficiency by avoiding collection copies in NavigationEventDispatcher.dispose(). (I4ab09)
  • Fixed an issue where the NavigationEventHandler did not correctly respond to changes in its enabled state. (Ia5268,I19bec, I5be5c, b/431534103)

Docs Updates

  • KDocs for NavigationEvent expanded to clarify its role as a unified event wrapper and detail property behavior across different navigation types (gestures, clicks). (I91e8d)
  • Updated documentation for system back handling Compose APIs (BackHandler, PredictiveBackHandler, NavigationEventHandler) to call out behavior specifically around callback order. (I7ab94, )

Dependency Update

  • NavigationEvent now depends on Compose Runtime 1.9.0-beta03 which allows the navigationevent-compose artifact to support all KMP targets. (Ia1b87)

Room: v2.8.0-rc01

August 13, 2025

androidx.room:room-*:2.8.0-rc01 is released. Version 2.8.0-rc01 contains these commits.

API Changes

  • Removing obsolete @RequiresApi(21) annotations (Ic4792, I9103b)

Bug Fixes

  • Fix a race condition where Room Flows would not emit the latest query result in an asynchronous multi-query/write situation. (Ic9a3c)

Savedstate: v1.4.0-alpha02

August 13, 2025

androidx.savedstate:savedstate-*:1.4.0-alpha02 is released. Version 1.4.0-alpha02 contains these commits.

Sqlite: v2.6.0-rc01

August 13, 2025

androidx.sqlite:sqlite-*:2.6.0-rc01 is released. Version 2.6.0-rc01 contains these commits.

Test Uiautomator: v2.4.0-alpha06

August 13, 2025

androidx.test.uiautomator:uiautomator:2.4.0-alpha06 is released. Version 2.4.0-alpha06 contains these commits.

New Features

  • Added window-based APIs for improved multi-window testing, i.e. UiDevice#findWindow can now be used to find a specific UiWindow according to a ByWindowSelector built with By.Window factory methods. (I359c4, I40528, I8c963)

Test Uiautomator Shell: v1.0.0-alpha02

August 13, 2025

androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha02 is released. Version 1.0.0-alpha02 contains these commits.

Wear Compose: v1.5.0-rc02

August 13, 2025

androidx.wear.compose:compose-*:1.5.0-rc02 is released. Version 1.5.0-rc02 contains these commits.

Bug Fixes

  • Fixed a bug in TimePicker where long, internationalised strings for the period (AM/PM) could break the layout. (I0fa81)

WindowManager: v1.5.0-beta02

August 13, 2025

androidx.window:window-*:1.5.0-beta02 is released. Version 1.5.0-beta02 contains these commits.

New Features

  • Minor bug fixes.

External Contribution

  • Add all KMP platforms to window-core (If3d7c)

Jetpack Compose for XR: v1.0.0-alpha06

August 13, 2025

androidx.xr.compose:compose:1.0.0-alpha06 and androidx.xr.compose:compose-testing:1.0.0-alpha06 are released. Version 1.0.0-alpha06 contains these commits.

Bug Fixes

  • Recreate the ComposeXrOwnerLocals when the lifecycle owner is destroyed. (9123ce1)

Jetpack SceneCore: v1.0.0-alpha06

August 13, 2025

androidx.xr.scenecore:scenecore:1.0.0-alpha06, androidx.xr.scenecore:scenecore-guava:1.0.0-alpha06, and androidx.xr.scenecore:scenecore-testing:1.0.0-alpha06 are released. Version 1.0.0-alpha06 contains these commits.

API Changes

  • Unrestrict SceneCore's BaseEntity and BaseScenePose APIs (88c0ff6)