Skip to content

2024-03-07

Choose a tag to compare

@github-actions github-actions released this 07 Mar 12:46
· 95 commits to main since this release

Browser: v1.8.0

March 6, 2024

androidx.browser:browser:1.8.0 is released. Version 1.8.0 contains these commits.

Important changes since 1.7.0

  • Added CustomTabsIntent.Builder#setInitialActivityWidthPx which allows developers to specify the initial launch width of a Custom Tab. (I443f6)
  • Added CustomTabsIntent.Builder#setActivitySideSheetPosition which allows developers to specify the Custom Tab’s position when acting as a side sheet. (I443f6)
  • Added CustomTabsIntent.Builder#setActivitySideSheetDecorationType which allows developers to specify the Custom Tab’s decoration type when it is acting as a side sheet. (I443f6)
  • Added CustomTabsIntent.Builder#setActivitySideSheetRoundedCornersPosition which allows developers to specify the position of the rounded corners when the Custom Tab is acting as a side sheet. (I443f6)
  • Added CustomTabsIntent.Builder#setActivitySideSheetMaximizationEnabled which allows developers to enable or disable the maximization button when the Custom Tab is acting as a side sheet. (Ie3564)
  • Added onActivityLayout callback method to interface CustomTabsCallback to let developers know the coordinates of the area occupied by the Custom Tab and the state in which it is being displayed. This will be called when the Custom Tab is first displayed on the screen and each time the occupied area changes. (I443f6)
  • Added onWarmupCompleted callback method to interface CustomTabsCallback to let developers know when CustomTabsClient#warmupfinishes warming up the browser process. (I107cf)
  • Added the session id to extras in CustomTabsSession#setEngagementSignalsCallback and CustomTabsSession#isEngagementSignalsApiAvailable. (Iba7f1)
  • Added experimental support for Minimized Custom Tabs APIs. (I67f2d)

CameraX: v1.3.2

March 6, 2024

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

Bug Fixes

  • Fixed a JPEG metadata issue on Samsung A24 devices. CameraX now saves images accurately, and the ImageProxy.toBitmap() function returns correct Bitmap objects. (I8d6eb, b/309005680)
  • Removed the 9280x6944 resolution option on Redmi Note 9 Pro devices due to issues. (Ia23da)

Compose Animation: v1.6.3

March 6, 2024

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

Compose Animation: v1.7.0-alpha04

March 6, 2024

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

API Changes

  • New API Path.reverse() to reverse a path's direction (I36348)

Compose Foundation: v1.6.3

March 6, 2024

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

Compose Foundation: v1.7.0-alpha04

March 6, 2024

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

API Changes

  • Support stylus handwriting feature on devices after Android U. (I002e4)
  • Added hintLocales to KeyboardOptions to provide TextFields with the ability to hint IMEs with specific locales to preset a preferred language. (Id18c2)
  • Removed the Experimental BasicTextField2 and BasicSecureTextField overloads that took value: String and onValueChange: () -> String parameters. (I568b4)
  • Add an optional applySemantics function to InputTransformation to influence the semantics of the BasicTextField2 that it's applied to. (I74a2f, b/170648072)
  • In this CL we are adding the GetScrollViewportLength semantic action so we can pipe up information about the components being scrolled in compose to the a11y system. This CL also applies the usage of said property in Foundation Scrollable Lists. (Ic5fa2)
  • BasicTextField2 is renamed to BasicTextField. (Ie5713)
  • FocusRequester.createRefs is now stable (I4d92c, b/261436820)
  • Introduced DelegatableNode.scrollIntoView() to allow modifier nodes to make scrollIntoView requests directly. (I2b3b7, b/299939840)
  • Introduced DelegatableNode.requireView() to allow modifier nodes to get the current Android View without reading a composition local. (I40768)
  • Introducing contextual layout information within Contextual Flow Row Scope and Contextual Flow Column Scope, featuring line index, position, and constraints on maximum width and height to stay in specified position. Items exceeding maximum width/height may flow to the next line or be omitted based on overflow settings. (Id13f8, b/292114798)

Bug Fixes

  • Fixed a bug where in certain conditions toggling enabled or readOnly attributes of TextField would cause a crash. (Iae17b)

Compose Material: v1.6.3

March 6, 2024

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

Bug Fixes

  • Fix regression in ExposedDropdownMenu to make it focusable again. (c0e0ed, b/323694447)

Compose Material: v1.7.0-alpha04

March 6, 2024

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

New Features

Compose Material 3: v1.2.1

March 6, 2024

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

Bug Fixes

  • Make the Slider states stable again. Making State.onValueChangeFinished a val again. Wrapping onValueChangeFinished in a rememberUpdatedState. (Ie8fd0, b/322269951)
  • Removing @Stable from the states of Slider since we're changing state.onValueChangeFinished to a var. (I82ba1, b/322269951)
  • Fix NavigationBar custom colors to copy from defaults. (80a779, b/326894020)
  • Fix regression in ExposedDropdownMenu to make it focusable again (3fcec1, b/323694447)
  • Fix button color caching issue (3e5bbcb/327371655)

Compose Material3: v1.3.0-alpha02

March 6, 2024

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

API Changes

  • Making the slider states stable again. Making State.onValueChangeFinished a val again. Wrapping onValueChangeFinished in a rememberUpdatedState. (I82ab2, b/322269951)
  • The Navigation components now use the new SurfaceContainer roles. DrawerDefaults now provides distinct standardContainerColor and modalContainerColor attributes. DrawerDefaults.ModalDrawerElevation is now 0.dp. (I7fbac)
  • Removing @Stable from the states of Slider since we're changing state.onValueChangeFinished to a var. (Ied34a, b/322269951)
  • ModalBottomSheet and StandardBottomSheet animation spec is now a TweenSpec, updated from a spring animation. This resolves an issue with a visible overshoot. Deprecated SheetState constructors without density have now been removed. (I7babc, b/285847707)

Bug Fixes

  • SurfaceContainer variants are now used by components. Components which formally calculated color with Surface and TonalElevation now use SurfaceContainer roles by default, which are not affected by tonal elevation. (b/304584161)
  • Fixed bug that caused ElevatedFilterChip's unselected, disabled container color to be black. (I400e6, b/322407043)
  • Fix indeterminate progress indicator when the progress is 0 (Id6582)
  • Fixed an issue with Slider and RangeSlider on RTL layout (Iab0e1)
  • Adding SliderRangeTolerance for the slider range calculation since Float rounding can be inaccurate. (Ic918a, b/324934900)
  • Ensure that the DatePickerDialog displays its buttons when nesting a DateRangePicker or when displaying any type of date picker on small screens with larger fonts. (Ie4758, b/325107799, b/277768544)
  • Menu now leverages the SurfaceContainer role for container color. MenuDefaults.TonalElevation is now 0.dp. (I135b7)
  • TextField now leverages the SurfaceContainerHighest role for container color. (I4dced)
  • Elevated chips now leverage the SurfaceContainerLow role (I7cd2f)
  • DatePicker container color is now SurfaceContainerHigh. DatePickerDefaults.TonalElevation is now 0.dp. (Ida753)
  • Updates Bottom Sheets container color and drag handle color. (I72a0a)
  • RichTooltip container color is now SurfaceContainer. (Ia8b45)
  • SearchBar container color is now SurfaceContainerHighest. SearchBarDefaults.TonalElevation is now 0.dp. (I88604)
  • Updates switch disabled and unselected tracks/icons to leverage the SurfaceContainerHighest color role. (I7687a)
  • AlertDialog container color is now SurfaceContainerHigh. (Ie0433)
  • BottomAppBar container color is now SurfaceContainer. TopAppBar onScroll color is now SurfaceContainer. (I41630)
  • ElevatedCard container color is now SurfaceContainerLow. FilledCard’s container color of SurfaceContainerHighest. (I35141)
  • ElevatedButton container color is now SurfaceContainerLow. FilledIconButton’s when unselected now have a container color of SurfaceContainerHighest. (I792c9)
  • Updates TimePicker container color and clock dial color role to SurfaceContainerHighest. (I43b93)

Compose Material3 Adaptive Navigation Suite: v1.0.0-alpha05

March 6, 2024

androidx.compose.material3:material3-adaptive-navigation-suite:1.0.0-alpha05, androidx.compose.material3:material3-adaptive-navigation-suite-android:1.0.0-alpha05, and androidx.compose.material3:material3-adaptive-navigation-suite-desktop:1.0.0-alpha05 are released. Version 1.0.0-alpha05 contains these commits.

API Changes

Compose Material3 Adaptive: v1.0.0-alpha08

March 6, 2024

androidx.compose.material3.adaptive:adaptive-*:1.0.0-alpha08 is released. Version 1.0.0-alpha08 contains these commits.

New Features

  • Implement delayed sliding in when switching panes. (I1a38e)

API Changes

  • Removed the ThreePaneScaffoldState interface. (I63f23)

Compose Runtime: v1.6.3

March 6, 2024

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

Compose Runtime: v1.7.0-alpha04

March 6, 2024

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

Performance Improvements

  • Call Snapshot.current once per derived state evaluation (ee7daf)
  • Read currentRecord once per observation in composition (b882b2)
  • Remove accidental iterator allocation in snapshotFlow (231e56)
  • Enable nonSkippingGroupOptimization for compose libraries. This causes the generated code for all non-restartable composable functions in androidx to be more efficient. In the future we plan to enable this by default. I(acbc08)

Compose UI: v1.6.3

March 6, 2024

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

Compose UI: v1.7.0-alpha04

March 6, 2024

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

API Changes

  • Support stylus handwriting feature for BasicTextField2 on devices after Android U. (I002e4)
  • In this CL we are adding the GetScrollViewportLength semantic action so we can pipe up information about the components being scrolled in compose to the a11y system. This CL also applies the usage of said property in Foundation Scrollable Lists. (Ic5fa2)
  • FocusRequester.createRefs is now stable (I4d92c, b/261436820)
  • Introduced DelegatableNode.requireView() to allow modifier nodes to get the current Android View without reading a composition local. (I40768)
  • New API Path.reverse() to reverse a path's direction (I36348)
  • Added hintLocales to KeyboardOptions to provide TextFields with the ability to hint IMEs with specific locales to preset a preferred language.
  • Expose platformLocale property from Locale that returns the underlying platform object, e.g. java.util.Locale. (I921c6)

credentials: v1.2.1

March 6, 2024

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

Bug Fixes

  • Provided fallback solution when platform credential manager is not available. (b/310701473)

DataStore: v1.1.0-beta02

March 6, 2024

androidx.datastore:datastore-*:1.1.0-beta02 is released. Version 1.1.0-beta02 contains these commits.

Bug Fixes

  • Performance improvement on DataStore only collects update notifications when it is observed. (b/267792241)
    • Note that this change might trigger UncompletedCoroutinesError in your tests if you are using the Coroutines testing library. Make sure you pass the TestScope.backgroundScope when initializing DataStore in your tests to avoid this issue.
  • ​Fixed the issue of nested updateData calls on the same instance would deadlock. (b/241760537)
  • Made DataStore no longer throw IOExceptions if it fails to delete SharedPreferences during migration. (b/195553816)
  • Fixed the issue where file rename fails during updateData in non-Android JVM environments. (b/203087070)
  • Fixed the issue where CorruptionException is not handled after DataStore initialization. (b/289582516)

Games-Activity: v3.0.0

March 6, 2024

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

Major features of 3.0.0

  • GameTextInput has been reworked to be ready to use in games.
  • Some interfaces in both libraries have been changed with respect to version 2.0.0.

Bug Fixes

  • Fixed compatibility issues with old NDKs
  • Fixed Windows build problems

Graphics Path: v1.0.0

March 6, 2024

androidx.graphics:graphics-path:1.0.0 is released.

Media3: v1.3.0

March 6, 2024

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

  • Common Library:
    • Implement support for android.resource://package/[type/]name raw resource URIs where package is different to the package of the current application. This has always been documented to work, but wasn't correctly implemented until now.
    • Normalize MIME types set by app code or read from media to be fully lower-case.
    • Define ads with a full MediaItem instead of a single Uri in AdPlaybackState.
    • Increase minSdk to 19 (Android KitKat). This is aligned with all other AndroidX libraries, and is required for us to upgrade to the latest versions of our AndroidX dependencies.
    • Populate both artworkUri and artworkData in MediaMetadata.Builder.populate(MediaMetadata) when at least one of them is non-null (#964).
  • ExoPlayer:
    • Add PreloadMediaSource and PreloadMediaPeriod that allows apps to preload a content media source at a specific start position before playback. PreloadMediaSource takes care of preparing the content media source to receive the Timeline, preparing and caching the period at the given start position, selecting tracks and loading media data for the period. Apps control the preload progress by implementing PreloadMediaSource.PreloadControl and set the preloaded source to the player for playback.
    • Add ExoPlayer.setImageOutput that allows apps to set ImageRenderer.ImageOutput.
    • DefaultRenderersFactory now provides an ImageRenderer to the player by default with null ImageOutput and ImageDecoder.Factory.DEFAULT.
    • Emit Player.Listener.onPositionDiscontinuity event when silence is skipped (#765).
    • Add experimental support for parsing subtitles during extraction. You can enable this using MediaSource.Factory.experimentalParseSubtitlesDuringExtraction().
    • Support adaptive media sources with PreloadMediaSource.
    • Implement HttpEngineDataSource, an HttpDataSource using the HttpEngine API.
    • Prevent subclassing CompositeSequenceableLoader. This component was previously made extensible but was never subclassed within the library. Customizations can be done by wrapping an instance using the decorator pattern and implementing a custom CompositeSequenceableLoaderFactory.
    • Fix issue where repeating the same time causes metadata from this item to be cleared (#1007).
    • Rename experimentalSetSubtitleParserFactory methods on BundledChunkExtractor.Factory and DefaultHlsExtractorFactory to setSubtitleParserFactory and disallow passing null. Use the new experimentalParseSubtitlesDuringExtraction(boolean) methods to control parsing behaviour.
    • Add support for customising the SubtitleParser.Factory used during extraction. This can be achieved with MediaSource.Factory.setSubtitleParserFactory().
    • Add source prefix to all Format.id fields generated from MergingMediaSource. This helps to identify which source produced a Format (#883).
    • Fix the regex used for validating custom Common Media Client Data (CMCD) key names by modifying it to only check for hyphen (#1028).
    • Stop double-encoding CMCD query parameters (#1075).
  • Transformer:
    • Add support for flattening H.265/HEVC SEF slow motion videos.
    • Increase transmuxing speed, especially for 'remove video' edits.
    • Add API to ensure that the output file starts on a video frame. This can make the output of trimming operations more compatible with player implementations that don't show the first video frame until its presentation timestamp (#829).
    • Add support for optimizing single asset MP4 trim operations.
    • Add support to ensure a video frame has the first timestamp in the output file. Fixes output files beginning with black frame on iOS based players (#829).
  • Track Selection:
    • Add DefaultTrackSelector.selectImageTrack to enable image track selection.
    • Add TrackSelectionParameters.isPrioritizeImageOverVideoEnabled to determine whether to select an image track if both an image track and a video track are available. The default value is false which means selecting a video track is prioritized.
  • Extractors:
    • Add additional AV1C parsing to MP4 extractor to retrieve ColorInfo.colorSpace, ColorInfo.colorTransfer, and ColorInfo.colorRange values (#692).
    • MP3: Use constant bitrate (CBR) seeking for files with an Info header (the CBR equivalent of the Xing header). Previously we used the seek table from the Info header, but this results in less precise seeking than if we ignore it and assume the file is CBR.
    • MPEG2-TS: Add DTS, DTS-LBR and DTS:X Profile2 support (#275).
    • Extract audio types from TS descriptors and map them to role flags, allowing users to make better-informed audio track selections (#973).
  • Audio:
    • Improve silence skipping algorithm with smooth volume ramp; retained minimal silence and more natural silence durations (#7423).
    • Report the skipped silence more deterministically (#1035).
  • Video:
    • Change the MediaCodecVideoRenderer constructor that takes a VideoFrameProcessor.Factory argument and replace it with a constructor that takes a VideoSinkProvider argument. Apps that want to inject a custom VideoFrameProcessor.Factory can instantiate a CompositingVideoSinkProvider that uses the custom VideoFrameProcessor.Factory and pass the video sink provider to MediaCodecVideoRenderer.
  • Text:
    • Fix serialization of bitmap cues to resolve Tried to marshall a Parcel that contained Binder objects error when using DefaultExtractorsFactory.setTextTrackTranscodingEnabled (#836).
    • CEA-708: Ignore rowLock value. The CEA-708-E S-2023 spec states that rowLock and columnLock should both be assumed to be true, regardless of the values present in the stream (columnLock support is not implemented, so it's effectively assumed to always be false).
  • Image:
    • Add support for DASH thumbnails. Grid images are cropped and individual thumbnails are provided to ImageOutput close to their presentation times.
  • DRM:
  • IMA extension:
    • Fix issue where DASH and HLS ads without the appropriate file extension can't be played.
  • Session:
    • Disable double-click detection for TV apps (#962).
    • Fix issue where MediaItem.RequestMetadata with just non-null extras is not transmitted between media controllers and sessions.
    • Add constructor to MediaLibrarySession.Builder that only takes a Context instead of a MediaLibraryService.
  • HLS Extension:
    • Reduce HlsMediaPeriod to package-private visibility. This type shouldn't be directly depended on from outside the HLS package.
    • Resolve seeks to beginning of a segment more efficiently (#1031).
  • Decoder Extensions (FFmpeg, VP9, AV1, MIDI, etc.):
    • MIDI decoder: Ignore SysEx event messages (#710).
  • Test Utilities:
    • Don't pause playback in TestPlayerRunHelper.playUntilPosition. The test keeps the playback in a playing state, but suspends progress until the test is able to add assertions and further actions.
  • Demo app:
    • Add a shortform demo module to demo the usage of PreloadMediaSource with the short-form content use case.

Mediarouter: v1.7.0-rc01

March 6, 2024

androidx.mediarouter:mediarouter:1.7.0-rc01 and androidx.mediarouter:mediarouter-testing:1.7.0-rc01 are released. Version 1.7.0-rc01 contains these commits.

Navigation: v2.8.0-alpha04

March 6, 2024

androidx.navigation:navigation-*:2.8.0-alpha04 is released. Version 2.8.0-alpha04 contains these commits.

New Features

  • You can now specify the SizeTranform for your transitions in Navigation Compose by defining them as part of the initialization for the composable and/or navigation functions. (I91062, b/296912651)

Bug Fixes

  • Fixed an issue where NavHost in Compose Navigation failed to properly show the transition when using System Back without a gesture. (Iceeae, b/325998468)

Paging: v3.3.0-alpha04

March 6, 2024

androidx.paging:paging-*:3.3.0-alpha04 is released. Version 3.3.0-alpha04 contains these commits.

Bug Fixes

  • Fixed minor documentation errors related to the addition of Kotlin multiplatform compatibility. (aosp/2950785)

privacysandbox sdkruntime: v1.0.0-alpha13

March 6, 2024

androidx.privacysandbox.sdkruntime:sdkruntime-client:1.0.0-alpha13, androidx.privacysandbox.sdkruntime:sdkruntime-core:1.0.0-alpha13, and androidx.privacysandbox.sdkruntime:sdkruntime-provider:1.0.0-alpha13 are released. Version 1.0.0-alpha13 contains these commits.

New Features

  • Backcompat support for SDK-SDK loading (SdkSandboxControllerCompat#loadSdk) - now SDKs loaded locally (in Application process) could load other SDKs

Security-App-Authenticator-Testing: v1.0.0-beta01

March 6, 2024

androidx.security:security-app-authenticator:1.0.0-beta01 and androidx.security:security-app-authenticator-testing:1.0.0-beta01 are released. Version 1.0.0-beta01 contains these commits.

Wear Compose: v1.4.0-alpha04

March 6, 2024

androidx.wear.compose:compose-*:1.4.0-alpha04 is released. Version 1.4.0-alpha04 contains these commits.

API Changes

  • We have added a new overload for ToggleChip and SplitToggleChip that takes a selectionControl parameter instead of the toggleControl parameter. This should be used with the RadioButton control in order to provide selectable semantics instead of toggleable semantics for accessibility (I1d6d9)
  • We have updated parameter names for the new selectionControl overload from onSelected to onSelect for ToggleChip and SplitToggleChip (I1a971)

Wear Compose Material3: v1.0.0-alpha19

March 6, 2024

androidx.wear.compose:compose-material3:1.0.0-alpha19 is released. Version 1.0.0-alpha19 contains these commits.

API Changes

  • We have added TimeText to the Wear Compose Material3 library. This component shows the current time (and additional status) at the top of the screen. The new, concise Material3 API avoids duplication between linear and curved content. (I4d7c3)
  • We have updated parameter names from onSelected to onSelect for RadioButton. (I1a971)
  • Tokenize RadioButton and SplitRadioButton and also refactor the existing methods to reduce the amount of CompositionLocal lookup by adding cached instances of colors, and making methods of RadioButtonColors and SplitRadioButtonColors internal. (I02b33)

wear protolayout: v1.2.0-alpha01

March 6, 2024

androidx.wear.protolayout:protolayout-*:1.2.0-alpha01 is released. Version 1.2.0-alpha01 contains these commits.

New Features

  • ProtoLayout Arc elements now have the option to add ArcDirection (Clockwise, Counterclockwise or Normal) to it. Adding this behavior to Arc, ArcLine or ArcText will fix their behavior on RTL layouts. (I90699)
  • EdgeContentLayout has been updated with a new setResponsiveContentInsetEnabled setter to achieve better alignment with the UX guidelines, consistency in Tiles by having primary label at the fixed place on top and responsive inset for labels. (I60175)
  • We have added PrimaryLayout.setResponsiveContentInsetEnabled that adds responsive inset to the primary label, secondary label and bottom chip in this layout, to avoid that content going off the screen edge. (I0c457)
  • Adds method to remove outer margins from CircularProgressIndicator so it can be used as a smaller component. (I55c06)

API Changes

  • Tiles renderer now excludes font padding on all text elements by default, without an option to include it. (I3e300)

Bug Fixes

  • Fixed Text alignment issue when ellipsize, letter spacing and center align are all used on Text. (I716c7)
  • Add a workaround for a skia arc drawing issue. (I08f09)
  • Fix ArcLine drawing direction for RTL layouts. (I6c141)

Wear Tiles: v1.4.0-alpha01

March 6, 2024

androidx.wear.tiles:tiles-*:1.4.0-alpha01 is released. Version 1.4.0-alpha01 contains these commits.

WindowManager: v1.3.0-alpha03

March 6, 2024

androidx.window:window-*:1.3.0-alpha03 is released. Version 1.3.0-alpha03 contains these commits.

API Changes

  • Split WindowSizeClassUtil into more focused methods. (Ie9292)
  • Restore WindowSizeClass#compute (I21355, b/324293374)

Bug Fixes

  • Fixes crash where the context provided wasn't being unwrapped correctly. (94d10ce , b/318787482)