October 22, 2025
androidx.activity:activity:1.12.0-beta01, androidx.activity:activity-compose:1.12.0-beta01, and androidx.activity:activity-ktx:1.12.0-beta01 are released. Version 1.12.0-beta01 contains these commits.
API Changes
ActivityFlags API for managing runtime behavior changes and migrations. The first flag enables stable ordering for OnBackPressedCallback, making back navigation more predictable across lifecycle changes. Developers can opt out by setting ActivityFlags.isOnBackPressedLifecycleOrderMaintained = false. (I06bdf, Id08bb, I439aa, b/422730945, b/450533622)Dependency Update
October 22, 2025
androidx.annotation:annotation-experimental:1.6.0-alpha01 is released. Version 1.6.0-alpha01 contains these commits.
API Changes
OptIn annotation now supports the ElementType.PARAMETER target.October 22, 2025
androidx.camera:camera-*:1.6.0-alpha01 is released. Version 1.6.0-alpha01 contains these commits.
New Features
CameraPipe, this new stack is a collaboration between the CameraX and Pixel Camera teams. It ensures that all improvements are shared, benefiting both CameraX users and the Pixel camera app.API Changes
CameraPresenceListener API for more details. (I41ead, b/427182232, b/419441394)Bug Fixes
PREVIEW_STABILIZATION is used with VideoCapture. This corrects a bug that caused inconsistent results when a Preview use case was not also active. (Ifed82, b/449913903)CameraInfo#isFeatureGroupSupported could incorrectly return true for PREVIEW_STABILIZATION if the SessionConfig in the query was already configured with other features. (I2c355c, b/437816469)October 22, 2025
androidx.camera.featurecombinationquery:featurecombinationquery:1.6.0-alpha01 and androidx.camera.featurecombinationquery:featurecombinationquery-play-services:1.6.0-alpha01 are released. Version 1.6.0-alpha01 contains these commits.
October 22, 2025
androidx.camera.viewfinder:viewfinder-compose:1.6.0-alpha01, androidx.camera.viewfinder:viewfinder-core:1.6.0-alpha01, and androidx.camera.viewfinder:viewfinder-view:1.6.0-alpha01 are released. Version 1.6.0-alpha01 contains these commits.
API Changes
ImplementationMode via the new ViewfinderDefaults.implementationMode public API. This is now used as the default for both ViewfinderView and the Viewfinder composable. (Ic3f52)October 22, 2025
androidx.compose.animation:animation-*:1.9.4 is released. Version 1.9.4 contains these commits.
October 22, 2025
androidx.compose.animation:animation-*:1.10.0-beta01 is released. Version 1.10.0-beta01 contains these commits.
API Changes
SharedContentConfig factory method that takes a lambda indicating whether the shared element should be enabled has been removed. lookheadScopeCoordinates API has been updated with a LookaheadScope being the receiver scope, with source coordinates being the parameter. (Id1fc2, b/452416806)BoundsTransform interface has been updated to be consistent with SizeTransform. (Ia46f2, b/343696350)ScaleToBounds API has been removed. Please use scaleToBounds instead. (I17296)October 22, 2025
androidx.compose.foundation:foundation-*:1.9.4 is released. Version 1.9.4 contains these commits.
October 22, 2025
androidx.compose.foundation:foundation-*:1.10.0-beta01 is released. Version 1.10.0-beta01 contains these commits.
API Changes
PagerState.currentPageOffsetFraction with @FrequentlyChangingValue. (Idfaab)Bug Fixes
October 22, 2025
androidx.compose.material:material-*:1.9.4 is released. Version 1.9.4 contains these commits.
October 22, 2025
androidx.compose.material:material-*:1.10.0-beta01 is released. Version 1.10.0-beta01 contains these commits.
October 22, 2025
androidx.compose.material3:material3-*:1.5.0-alpha07 is released. Version 1.5.0-alpha07 contains these commits.
API Changes
SearchBar.InputField with a keyboardOptions parameter, allowing for optimized text input by specifying keyboard options and lineLimits parameter allowing to specify text wrapping scrolling (Id08a4, b/416991049)Bug Fixes
PressInteraction.Press is emitted immediately on awaitFirstDown, providing instant visual feedback. (If9e25, b/308501482)Tooltip caret not changing directions when scrolling. The TooltipBox now triggers a recomposition whenever the tooltip popup switches sides, ensuring the caret's direction is updated correctly. (I5ad1e, b/438875827)October 22, 2025
androidx.compose.material3.adaptive:adaptive-*:1.2.0 is released. Version 1.2.0 contains these commits.
Important changes since 1.1.0:
PaneScaffoldScope.preferredHeight modifier for devs to provide pane preferred heights that will be applied with new adapt strategies we are going to introduce. (I957dd)PaneScaffoldScope (Id9299)currentWindowAdaptiveInfo() function support large and extra-large window width size classes (I92e97)October 22, 2025
androidx.compose.material3.adaptive:adaptive-*:1.3.0-alpha02 is released. Version 1.3.0-alpha02 contains these commits.
API Changes
DragToResizeState to Levitate strategy (I717bd)October 22, 2025
androidx.compose.runtime:runtime-*:1.9.4 is released. Version 1.9.4 contains these commits.
October 22, 2025
androidx.compose.runtime:runtime-*:1.10.0-beta01 is released. Version 1.10.0-beta01 contains these commits.
API Changes
RetainedValuesStore.getExitedValueOrDefault is renamed to RetainedValuesStore.getExitedValueOrElse (If9653, b/452340613)isKeepingExitedValues has been renamed to isRetainingExitedValues (I660bf, b/437095756)RetainScope has been renamed to RetainedValuesStore. RetainScopeHolder has been renamed to RetainedValuesStoreRegistry. RetainScopeHolder.RetainScopeProvider has been renamed to RetainedValuesStoreRegistry.ProvideChildRetainedValuesStore. (Idf23a, b/437095756)Bug Fixes
SavedState in SaveableStateRegistry until the first usage. (Ic0a93)October 22, 2025
androidx.compose.ui:ui-*:1.9.4 is released. Version 1.9.4 contains these commits.
Bug Fixes
onLayoutRectChanged modifier callbacks were not always being called when debounceMillis is not zero. (72aba47, b/445324854)October 22, 2025
androidx.compose.ui:ui-*:1.10.0-beta01 is released. Version 1.10.0-beta01 contains these commits.
API Changes
isOptimizedFocusEventDispatchEnabled = false (I919fb, b/449228515)TextDirection, TextAlign, Hyphens, FontSynthesis valueOf functions now throw IllegalArgumentException when they receive an unknown value. (I07c67)CompositionDataTree.makeTree to pass default values instead of wrapper function. (Id64a6, b/445229688)createComposeRule, createAndroidComposeRule and createEmptyComposeRule which accept the effectContext parameter are stable and the parameter defaults to EmptyCoroutineContext. (If400c, b/450540702)UnplacedStateAwareModifierNode was renamed to UnplacedAwareModifierNode (I6a551, b/449719932)ComposeUiFlags.isRectManagerOffsetUsageFromLayoutCoordinatesEnabled feature flag. It enabled performance optimization where coordinates requests like LayoutCoordinates.positionInRoot() are using the cached offsets we already have in RectManager, instead of traversing the whole tree on each call. (Ieaadc)Bug Fixes
PlaceholderSpan now correctly uses non-linear font scaling for sizing (Id2ead, b/324462728)ViewCompat to perform haptic feedback constants supported at the platform level, relying on its fallback support for newer constants. (Ib5a00)October 22, 2025
androidx.credentials:credentials:1.6.0-beta03 and androidx.credentials:credentials-play-services-auth:1.6.0-beta03 are released. Version 1.6.0-beta03 contains these commits.
New Features
October 22, 2025
androidx.datastore:datastore-*:1.2.0-beta01 is released. Version 1.2.0-beta01 contains these commits.
API Changes
CorruptionHandler public. (I9ac35, b/452406457)androidx.core.util.Function in GuavaDataStore. (I71eae, b/448563999)GuavaDataStore.from that takes in an Executor instead of a CoroutineContext. (I989fa, b/448563183)Bug Fixes
java.lang.UnsatisfiedLinkError when using DataStore in an app which is optimized with R8, but which is not using getDefaultProguardFile('android-proguard-optimize.txt'). (I27d0d, b/434696293)GuavaDataStore operations could incorrectly run on the calling thread (e.g., the main thread) instead of the specified IO dispatcher. (Ic91ea,b/441801112)October 22, 2025
androidx.games:games-activity:4.4.0-alpha01 is released. Version 4.4.0-alpha01 contains these commits.
Bug Fixes
native_app_glue.ALooper_pollAll to ALooper_pollOnce.October 22, 2025
androidx.graphics:graphics-*:1.1.0 is released. Version 1.1.0 contains these commits.
October 22, 2025
androidx.heifwriter:heifwriter:1.2.0-alpha01 is released. Version 1.2.0-alpha01 contains these commits.
New Features
EncoderPreference class has been implemented. This enhancement enables HeifWriter to consider encoder preferences, such as hardware or software encoding and enforcement of Constant Quantization (CQ), during the encoder selection process. If a suitable encoder cannot be found based on the specified preferences, an exception will be raised.API Changes
EncoderPreference class. I81efdOctober 22, 2025
androidx.ink:ink-*:1.0.0-beta01 is released. Version 1.0.0-beta01 contains these commits.
Bug Fixes
October 22, 2025
androidx.lifecycle:lifecycle-*:2.10.0-beta01 is released. Version 2.10.0-beta01 contains these commits.
API Changes
ViewModelStoreNavEntryDecoratorDefault has been renamed to ViewModelStoreNavEntryDecoratorDefaults, with an 's'. (I6d27b, b/444447434)Bug Fixes
rememberLifecycleOwner no longer crashes if the owner receives an Lifecycle.Event.ON_DESTROY event before moving to Lifeycle.State.CREATED. (I6f98e, b/444594991)October 22, 2025
androidx.media3:media3-*:1.9.0-alpha01 is released. Version 1.9.0-alpha01 contains these commits.
minSdk to 23 in line with other AndroidX libraries.PlayerTransferState, which facilitates transferring the playback state across Player instances.void mute() and void unmute() methods to Player that preserve and consequently restore Player's volume before and after setting it to zero.WakeLockManager, WifiLockManager, AudioFocusManager, AudioBecomingNoisyManager and StuckPlayerDetector previously used by ExoPlayer internally to allow reuse for other players (#1893).ForwardingPlayer listener handling when the underlying delegate player uses reference equality for comparing listener instances (#2675).Player.listenTo suspending extension function in the media3-common-ktx library that specifies the particular Player.Events that should be acted upon.BasePlayer.getBufferedPercentage resulting from integer overflow when the reported buffered position is implausibly much larger than the reported duration (#2750).StuckPlayerException player error if the player seems stuck. This happens in the following cases, where each default timeout can be configured in ExoPlayer.Builder if required:
STATE_BUFFERING while trying to play and no buffering progress.STATE_READY while trying to play and no playback progress.STATE_READY beyond the declared duration without reaching the end of the item.ExoPlayer.Builder.setWakeMode to C.WAKE_MODE_LOCAL.Context originally passed to ExoPlayer.Builder.ExoPlayer.setVirtualDeviceId to manually update the virtual device ID obtained from the Context passed to ExoPlayer.Builder.setSeekBackIncrementMs, setSeekForwardIncrementMs and setMaxSeekToPreviousPositionMs to ExoPlayer to update these settings after construction (#2736).DefaultPreloadManager. Apps now can return DefaultPreloadManager.PreloadStatus.specifiedRangeCached(startPositionMs, durationMs) or DefaultPreloadManager.PreloadStatus.specifiedRangeCached(durationMs) via TargetPreloadStatusControl.getTargetPreloadStatus(T rankingData) to indicate that a media item needs to be pre-cached.DefaultPreloadManager in shortform demo app.DefaultLoadControl.Builder setters for local playback and adjust default values of DefaultLoadControl to work well with a wide range of local files.STATE_READY or STATE_BUFFERING.addMediaItems(List<MediaItem>, List<T>) and addMediaSources(List<MediaSource>, List<T>) that add the media items or media sources in batch, and automatically call invalidate() afterwards.removeMediaItems((List<MediaItem>) and removeMediaSources(List<MediaSource>) that remove the media items or media sources in batch, and make sure that preload manager does not start to preload or continue preloading any of them after removal.DefaultPreloadManager.setCurrentPlayingIndex(int) to invalidate itself automatically. Apps don't need to call invalidate() explicitly anymore after updating the current playing index.DefaultLoadControl.Builder.setPlayerTargetBufferBytes(String, int) for apps to set a value of target buffer bytes for a player with the specified playerName. The DefaultLoadControl can now make decisions of each player separately based on its own allocated bytes and target buffer bytes.SkipInfo to the AdPlaybackState.AdGroup to carry skip information for each ad in the ad group.removeMediaItems(List) during playing a post-roll created a crash (#2746).DefaultPreloadManager to avoid total buffer bytes for preloading from growing arbitrarily. To use the default control logic, Apps can set the target buffer bytes for preloading via DefaultLoadControl.Builder.setPlayerTargetBufferBytes(String, int) for a playerName of PlayerId.Preload.name ("preload"), and inject the created DefaultLoadControl via DefaultPreloadManager.Builder.setLoadControl(LoadControl).CompositionPlayer under a new @ExperimentalApi annotation to indicate it is available for experimentation, but is still under development. Some APIs are likely to change significantly in future releases, and there are known issues and limitations with some use-cases (some undocumented).COMMAND_SET_AUDIO_ATTRIBUTES and audio focus handling in CompositionPlayer.CompositionPlayer.InAppMp4Muxer as default muxer.EditedMediaItem.Builder#setSpeed() and deprecate Effects#createExperimentalSpeedChangingEffects().forceAudioTrack and forceVideoTrack with trackTypes in EditedMediaItemSequence.TrackSelectionParameters.selectTextByDefault to prefer the selection of any text track without specifying other more specific preferences.preferredVideoLabels, preferredAudioLabels and preferredTextLabels in TrackSelectionParameters to specify a preference for tracks with a specific label, for example those read from HLS NAME tags (#1666).audio/mpeg (MP3), audio/mpeg-L1 and audio/mpeg-L2 MIME types by peeking the layer value of the first sample before emitting a track format from the extractor (#2683).stbl box larger than 1MB implies the file must be non-fragmented (#2650).MatroskaExtractor where seeking could be inaccurate for files with multiple tracks. Cue points are now correctly associated with their respective tracks, leading to more precise seeking.©mvn (movement name) and ©mvi (movement index) metadata, these are now emitted as TextInformationFrame objects in Format.metadata with IDs of MVNM and MVIN respectively (#2754).IllegalArgumentException from ReorderingBufferQueue caused by PES packets with no timestamp (#2764).stsd box (instead of failing to parse the whole file).HeifExtractor can now parse HEIC files containing embedded video and audio tracks.FLAG_ENABLE_INDEX_SEEKING to prefer seeking information from metadata headers (like Xing and VBRI) when available, falling back to index-based seeking if no other seeking information is present. This improves performance for files with seeking metadata (#2839).:media3-inspector module to serve as the dedicated home for media inspection utilities. This module now houses a new androidx.media3.inspector.MetadataRetriever, which will provide a unified API for both metadata and frame extraction. The existing androidx.media3.exoplayer.MetadataRetriever is now deprecated in favor of this new version.androidx.media3.inspector.FrameExtractor, a new public API for frame extraction. This AutoCloseable class provides a way to extract frames with support for HDR video, video effects, and custom decoder selection. It should be created via its Builder for a specific MediaItem.getThumbnail() to extract a representative thumbnail frame from a media file without requiring a specific timestamp.AudioProcessor instances aware of seeking.AudioOutputProvider interface into DefaultAudioSink.Builder to support custom audio output paths. The default is AudioTrackAudioOutputProvider.GainProcessor.Sonic.ToFloatPcmAudioProcessor.MediaDrmCallback methods from byte[] to a new MediaDrmCallback.Response type, to allow returning extra optional information. This is a source breaking change, but breakages can be easily resolved by wrapping the previous byte[] return value with new Response before returning.AnalyticsListener.onDrmKeysLoaded (#1001).MediaMuxerCompat, a drop-in replacement for framework MediaMuxer.MuxerUtil.createMotionPhotoFromJpegImageAndBmffVideo() to allow Motion Photo creation.WebmMuxer to allow muxing of OPUS, VORBIS, VP8 and VP9 media streams into a webm file format.ImaServerSideAdInsertionUriBuilder.setNetworkCode, a new API for setting the Google Ad Manager network code for the IMA SDK to handle ads identifiers as specified in Google Ad Manager settings. Network codes are optional but recommended for Full service stream requests. To find the network code, see this article.MediaSession.Callback.onPlaybackResumption to indicate if the call happens to gather information only or to start playback (#1764).MediaSession.ControllerInfo.isTrusted to also declare controllers from the own app as trusted (#2542).MediaSessionService.triggerNotificationUpdate to manually trigger a notification update (#1833).ProgressListener to custom command methods.MediaLibrarySession.Builder.setLibraryErrorReplicationMode to non fatal.Context parameter to MediaButtonReceiver.onForegroundServiceStartNotAllowedException (#2625).PlaybackInfo instead of fetching it via binder. This ensures that playback type and volume control ID are read atomically and do match to each other.ACTION_UP key events were filtered out before passing them to the callback for custom handling. This brings parity with what media1 did and the platform does (#2637).getCurrentTimeline() was called by PlayerWrapper even when the command isn't available (#2665).MediaBrowser, custom commands are sent to the session only if the custom action is advertised as a custom action in PlaybackStateCompat of the legacy session. All other custom actions are sent to the service.onAudioSessionIdChanged to notify media controllers when an audio session ID is set by the session (#244).KEYCODE_HEADSETHOOK did not start the player upon and media key event Intent arriving in onStartCommand(). This is fixed by handling 'KEYCODE_HEADSETHOOK' just like KEYCODE_MEDIA_PLAY_PAUSE (#2816).setVideoSurfaceHolder call.String CharSequence metadata values like span-styled strings (#2853).ProgressStateWithTickInterval class and the corresponding rememberProgressStateWithTickInterval Composable to media3-ui-compose module. This state holder is used in demo-compose to display the current position and duration in text form.MuteButtonState to ui-compose that handles muting of the Player volume. This state holder is used in demo-compose to display mute/unmute toggle button.ProgressStateWithTickCount classes and the corresponding rememberProgressStateWithTickCount Composable to media3-ui-compose module. This state holder is used in demo-compose to display progress as a horizontal read-only progress bar.ContentFrame Composable to media3-ui-compose which combines PlayerSurface management with aspect ratio resizing and covering with a shutter.SurfaceView inside a Compose AndroidView and hence affecting ContentFrame and PlayerSurface Composables with SURFACE_TYPE_SURFACE_VIEW (#1237, #2811).media3-ui-compose-material3 module and add Material3-themed Composables (PlayPauseButton, NextButton, PreviousButton, SeekBackButton, SeekForwardButton, RepeatButton, ShuffleButton, MuteButton) to it.PlayerView.AdPlaybackState for public access.UnsupportedOperationException when playing DASH streams with a non-hierarchical data: URI manifest (#2688).LiveConfiguration to the value provided by the MediaItem of the DashMediaSource when released and when the media item is updated by the user (#2606).dav1d library, replacing the previous libgav1 implementation for improved decoding speed.CastPlayer.Builder, which enables CastPlayer to do both local and Cast playback. To keep the old CastPlayer behavior of supporting only Cast playback, you can use RemoteCastPlayer. The pre-existing CastPlayer constructors keep their old behavior, but are deprecated in favour of using the CastPlayer or RemoteCastPlayer builders instead.DefaultMediaItemConverter.MediaItem.mediaMetadata.mediaType to infer the Cast MEDIA_TYPE to use in DefaultCastOptionsProvider#toMediaQueueItem, when available.DefaultCastOptionsProvider.FakeClock. It defaults to 1 second, but is configurable via FakeClock.Builder.RobolectricUtil.runMainLooperUntil (and runLooperUntil). It defaults to 1 second, but is configurable via new overloads of these methods.CapturingRenderersFactory from test-utils to test-utils-robolectric.DefaultPreloadManager constructor. Use DefaultPreloadManager.Builder instead.EditedMediaItemSequence constructors. Use EditedMediaItemSequence.Builder instead.October 22, 2025
androidx.navigation3:navigation3-*:1.0.0-beta01 is released. Version 1.0.0-beta01 contains these commits.
API Changes
SceneStrategyScope now only has a no argument public constructor, suitable for testing your SceneStrategy and the returned Scene in isolation. For more complex use cases, please use rememberSceneState(). (I8440c, b/451679047)Bug Fixes
SceneStrategy with then. (Iba3f0, b/450323470)backStack passed to NavDisplay and using animations. (Ief7b5, b/450967248)October 22, 2025
androidx.pdf:pdf-*:1.0.0-alpha11 is released. Version 1.0.0-alpha11 contains these commits.
New Features
fromPdfView and PdfViewer Composable, which allows developers to add selection menu items.API Changes
contentDesc nullable and removed default value. (I86f8c, b/441973880)PdfSelectionMenuKeys for Link Selection Menu Items (Ic9b05, b/447079082)PageAlignment API to PdfView and PdfViewer into androidx-mainStockBrushes API to take stock brush version as a factory function parameter and expose self-overlap behavior control for highlighter brushes, rename MutableAffineTransform.populateFromTranslate to populateFromTranslation, remove InProgressStrokesView.setRenderFactory/getRenderFactory. (Id9eab, b/436656418)PageAlignment API to PdfView and PdfViewer (I9c9a5, b/438065228)PdfViewer Composable (Id9b0f, b/407663999)PdfView a ViewGroup. No support for arbitrary children. (Ib51d8, b/410008792)HyperLinkSelection and GoToLinkSelection from PdfView (I378c4, b/441280002)PdfPageContent to support generic selections (I28f16, b/437845185)PdfView (Idd547, b/407663737)onPdfViewCreated for PdfView access in PdfViewerFragment. (I86715, b/422620454)FileDescriptor API to PdfLoader (I60b8d)Bug Fixes
External Contribution
PdfSelectionMenuKeys for Link Selection Menu ItemsPdfViewer ComposablePdfViewOctober 22, 2025
androidx.room:room-*:2.8.3 is released. Version 2.8.3 contains these commits.
Bug Fixes
October 22, 2025
androidx.savedstate:savedstate-*:1.4.0-rc01 is released with no changes since 1.4.0-beta01. Version 1.4.0-rc01 contains these commits.
October 22, 2025
androidx.wear.compose:compose-*:1.6.0-alpha04 is released. Version 1.6.0-alpha04 contains these commits.
API Changes
reverseLayout for TransformingLazyColumn (I19f9e, b/352513793)ConfirmationDialogDefaults.VariantFailureIcon for use in FailureConfirmationDialog. This new generic error icon may be preferred in some cases, compared to ConfirmationDialogDefaults.FailureIcon which shows a broken connection to the phone. (Ifc851, b/443115305)Bug Fixes
LaunchedEffect. (I94519, b/418192973)SwipeDismissableNavHost on API36+, where pressing the back button during predictive back animation interrupted and restarted the animation. The implementation now uses SeakableTransitionState.animateTo instead of Animatable, which has a slight performance benefit. (I2241f, b/428156670)AlertDialog, where the confirm button was announced as 'Button. Confirm' rather than the standard 'Confirm. Button'. (Ic2381, b/429378202)TimePicker number visibility on small screens. (I68386, b/447625365)TransformingLazyColumn now uses the Compose Foundation Lazy Layout implementation, including prefetching, and benefits from a performance improvement on frame timings in most cases. (Idd743, b/445911630)October 22, 2025
androidx.wear.compose:compose-*:1.5.4 is released. Version 1.5.4 contains these commits.
Bug Fixes
LaunchedEffect. (I94519, b/418192973)SwipeDismissableNavHost on API36+, where pressing the back button during predictive back animation interrupted and restarted the animation. The implementation now uses SeakableTransitionState.animateTo instead of Animatable, which has a slight performance benefit. (I2241f, b/428156670)AlertDialog, where the confirm button was announced as 'Button. Confirm' rather than the standard 'Confirm. Button'. (Ic2381, b/429378202)October 22, 2025
androidx.wear.protolayout:protolayout-*:1.4.0-alpha02 is released. Version 1.4.0-alpha02 contains these commits.
New Features
isInAmbientMode) describing whether the device is in ambient mode or not (Ief832)API Changes
PendingIntent clickable now accepts a fallback action (LoadAction/LaunchAction) to be used when PendingIntent is not supported by the ProtoLayout Renderer. Fallback action will automatically be picked up and placed in the layout when the version of the Renderer is lower than the one supporting PendingIntent. (I6eee2, b/450259727)protoLayoutScope field within MaterialScope is now made NonNull for easier usage when MaterialScope is created via materialScopeWithResources. In addition, there is a hasProtoLayoutScope function to check for the presence of it. (I1858f, b/450067019)October 22, 2025
androidx.wear.tiles:tiles-*:1.6.0-alpha02 is released. Version 1.6.0-alpha02 contains these commits.
New Features
ProtoLayoutScope. If using image resources directly in the layout via materialScopeWithScope or ProtoLayoutScope directly, there is no longer need to specify onTileResourcesRequest and resources specifically in the TilePreviewData, they will be collected automatically. (I58516)Bug Fixes
ProtoLayoutScope created internally by the TileService now includes the ProtoLayout Renderer’s VersionInfo. (I6eee2, b/450259727)October 22, 2025
androidx.work:work-*:2.11.0 is released. Version 2.11.0 contains these commits.
Important changes since 2.10.0:
minSdk has been updated from API 21 to API 23.setRemoteSessionTimeoutMillis in WorkManager’s Configuration builder has been added to enable configuring the amount of time a RemoteWorkManager session is alive from its last usage.October 22, 2025
androidx.xr.arcore:arcore-*:1.0.0-alpha07 is released. Version 1.0.0-alpha07 contains these commits.
Bug Fixes
:xr:arcore:arcore-openxr added as an implementation dependency to :xr:arcore:arcore (I47315, b/446999229)October 22, 2025
androidx.xr.compose:compose:1.0.0-alpha08 and androidx.xr.compose:compose-testing:1.0.0-alpha08 are released. Version 1.0.0-alpha08 contains these commits.
API Changes
ResizePolicy to accept onResizeStart, onResizeUpdate, and onResizeEnd. (I7e21f)Bug Fixes
October 22, 2025
androidx.xr.compose.material3:material3:1.0.0-alpha12 is released. Version 1.0.0-alpha12 contains these commits.
New Features
SpaceModeToggleButton for switching between HomeSpace and FullSpace (Ic6865)Bug Fixes
October 22, 2025
androidx.xr.projected:projected:1.0.0-alpha01 is released. Version 1.0.0-alpha01 contains these commits.
New Features
October 22, 2025
androidx.xr.runtime:runtime-*:1.0.0-alpha07 is released. Version 1.0.0-alpha07 contains these commits.
API Changes
SessionConfigureConfigureNotSupported and replace it with UnsupportedOperationException. (I7680f)October 22, 2025
androidx.xr.scenecore:scenecore-*:1.0.0-alpha08 is released. Version 1.0.0-alpha08 contains these commits.
API Changes
ActivityPanelEntity.moveActivity to transferActivity (I273c5, b/430332856)Bug Fixes
:xr:scenecore:scenecore-spatial-rendering and :xr:scenecore:scenecore-spatial-core added as implementation dependency of :xr:scenecore:scenecore (I6ab65, b/447000520)session.scene is accessed after session destruction. (I77e6f)