Releases: mahozad/androidx-release-notes
2024-04-30
Annotation: v1.8.0-rc01
May 1, 2024
androidx.annotation:annotation-*:1.8.0-rc01
is released. Version 1.8.0-rc01 contains no changes since the prior beta release.
Appcompat: v1.7.0-beta01
May 1, 2024
androidx.appcompat:appcompat:1.7.0-beta01
and androidx.appcompat:appcompat-resources:1.7.0-beta01
are released. Version 1.7.0-beta01 contains these commits.
Benchmark: v1.3.0-alpha04
May 1, 2024
androidx.benchmark:benchmark-*:1.3.0-alpha04
is released. Version 1.3.0-alpha04 contains these commits.
API Changes
- Added experimental
MacrobenchmarkRule#measureRepeated
variant which takes a customPerfettoConfig
for fully customized Perfetto trace recording. Note that incorrectly configured configs may cause built in Metric classes to fail. (Idfd3d, b/309841164, b/304038384) - Rename
PowerMetric.deviceSupportsPowerEnergy
toPowerMetric.deviceSupportsHighPrecisionTracking
for clarity (I5b82f) - Added
PowerMetric.deviceBatteryHasMinimumCharge()
andPowerMetric.deviceSupportsPowerEnergy()
to enable changing or skipping benchmarks based on device power measurement capability. (I6a591, b/322121218)
Bug Fixes
- Added comparison with previous baseline profile (I824c8, b/269484510)
- Added DSL to disable warnings (Ic4deb, b/331237001)
- Changed exception to info log when benchmark variants are disabled (I8a517, b/332772491)
- Make it simpler to capture method traces for a Macrobenchmark is scoped to the duration of the actual
measureBlock()
. Previously, it started at target process launch and only supported cold starts (Iee85a, b/300651094) - Avoid crashing when perfetto trace processor is slow to start (I98841, b/329145808)
Compose Animation: v1.6.7
May 1, 2024
androidx.compose.animation:animation-*:1.6.7
is released. Version 1.6.7 contains these commits.
Compose Animation: v1.7.0-alpha08
May 1, 2024
androidx.compose.animation:animation-*:1.7.0-alpha08
is released. Version 1.7.0-alpha08 contains these commits.
API Changes
LookaheadScope
APIs have been made stable. (I21507)
External Contribution
- Clear start animation time after
SeekableTransitionState
animates/snaps by Steven Schoen (1ca89529)
Compose Compiler: v1.5.13
May 1, 2024
androidx.compose.compiler:compiler:1.5.13
and androidx.compose.compiler:compiler-hosted:1.5.13
are released. Version 1.5.13 contains these commits.
New features
- Strong skipping is no longer considered experimental and is safe for use in production. It will become the default behavior in an upcoming release. (I6c8c4)
Bug Fixes
- Fix binary compatibility for
@Composable
functions with value class parameters that have a default value and are wrapping a non-primitive value. (I89465 - Upstreamed fixes for JS and Native compilation from Compose multiplatform. See the commit range above for full details.
Compose Foundation: v1.6.7
May 1, 2024
androidx.compose.foundation:foundation-*:1.6.7
is released. Version 1.6.7 contains these commits.
Compose Foundation: v1.7.0-alpha08
May 1, 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha08
is released. Version 1.7.0-alpha08 contains these commits.
New Features
- Added right-click context menu to
BasicTextField
andSelectionContainer
with items for cut, copy, paste, and select-all actions. (If8c93, Ia2b49, I6f268)
API Changes
LazyLayout
prefetch requests can be marked as urgent now, meaning that we expect this item to be needed in the next frame and want to ignore frame budget to make sure to do more work in advance (Id513f)- Renamed
isPositionedByParentWithDirectManipulation
tointroducesFrameOfReference
. Note that it now has the reverse effect, meaning that by default, mostLayoutCoordinates
introduce a frame of reference, and, only when placed under direct manipulation the property will be false. To query position with only those that introduce a frame of reference, usepositionInLocalFrameOfReference(...)
. OrpositionInLocalLookaheadFrameOfReference
from aLookaheadScope
. (Ifc5f7) - Renamed
onClicked
toonClick
insideLinkInteractionListener
(Iaa35c) - Change action lambda for
getScrollViewportLength
as per API council feedback. (Ibc74a) - Renamed stylus handwriting delegation APIs. (
2024-04-26
Annotation 1.1.0: Annotation 1.1.0-alpha04
April 26, 2024
androidx.test:annotation:1.1.0-alpha04}
is released.
Core 1.6.0: Core Core-ktx 1.6.0-alpha06
April 26, 2024
androidx.test:core:1.6.0-alpha06
and androidx.test:core-ktx:1.6.0-alpha06
are released.
Bug Fixes
- Make ViewCapture use ControlledLooper API instead of hardcoding is Robolectric check
- Fix using ActivityScenario#launchActivityForResult with an implicit Intent
API Changes
- Added ApplicationInfoBuilder.setFlags(int)
- Make suspend function versions of ViewCapture/WindowCapture/DeviceCapture APIs,
and rename existing methods as *Async variants that return ListenableFutures - Make Bitmap.writeToTestStorage use the registered PlatformTestStorage instead of hardcoding TestStorage
- Remove ExperimentalTestApi/RequiresOptIn restrictions from captureToBitmap and takeScreenshot APIs
Espresso 3.6.0: Espresso 3.6.0-alpha04
April 26, 2024
The following artifacts were released:
androidx.test.espresso:espresso-accessibility:3.6.0-alpha04
androidx.test.espresso:espresso-core:3.6.0-alpha04
androidx.test.espresso:espresso-contrib:3.6.0-alpha04
androidx.test.espresso:espresso-idling-resource:3.6.0-alpha04
androidx.test.espresso:espresso-intents:3.6.0-alpha04
androidx.test.espresso:espresso-remote:3.6.0-alpha04
androidx.test.espresso:espresso-web:3.6.0-alpha04
androidx.test.espresso.idling:idling-concurrent:3.6.0-alpha04
androidx.test.espresso.idling:idling-net:3.6.0-alpha04
Bug Fixes
- Fix slow inRoot operations in Robolectric
- Use PlatformTestStorageRegistry.getInstance consistently instead of passing a reference around
- Remove TODO from InteractionResponse public ref docs
New Features
- Add waitForClose to DrawerActions.
API Changes
- Adapt to ViewCapture API changes
- Delete ViewInteraction.captureToBitmap in favor of ViewActions.captureToBitmap, and promote to a stable API from ExperimentalTestApi
Test:
Test:
Test:
Monitor 1.7.0: monitor 1.7.0-alpha05
April 26, 2024
androidx.test:monitor:1.7.0-alpha05
is released.
API Changes * Make DeviceController an public API from ExperimentalTestApi * Move PlatformTestStorage to a public API * Add internal ControlledLooper#isDrawCallbacksSupported.
Orchestrator 1.5.0: orchestrator 1.5.0-alpha04
April 26, 2024
androidx.test:orchestrator:1.5.0-alpha04
is released.
Runner 1.6.0: runner 1.6.0-alpha07
April 26, 2024
androidx.test:runner:1.6.0-alpha07
is released.
Bug Fixes
- When logging test exceptions, use Log's built-in support for throwables to avoid stack truncation
- Internal changes to support GrantPermissionRule using UiAutomation#grantRuntimePermissions
Rules 1.6.0: rules 1.6.0-alpha04
April 26, 2024
androidx.test:rules:1.6.0-alpha04
is released.
Bug Fixes
- Make GrantPermissionRule use UiAutomation to grant permissions on APIs > =28 to fix issues running on automotive.
Services 1.5.0: services 1.5.0-alpha04
April 26, 2024
androidx.test.services:test-services:1.5.0-alpha04
androidx.test.services:storage:1.5.0-alpha04
are released.
Bug Fixes
- TestStorage: use local cache dir to store output files when running as non system user
API Changes
- Make TestStorage an internal API from experimental
2024-04-18
Activity: v1.9.0
April 17, 2024
androidx.activity:activity:1.9.0
, androidx.activity:activity-compose:1.9.0
, and androidx.activity:activity-ktx:1.9.0
are released. Version 1.9.0 contains these commits.
Important changes since 1.8.0
ComponentActivity
now implementsOnUserLeaveHintProvider
to allow components to callbacks foronUserLeaveHint
events.- The
OnBackPressedCallback
,BackHandler
, andPredictiveBackHandler
APIs now warn when callingonBackPressedDispatcher.onBackPressed()
when handling back as that will always break the Predictive Back Animation. See the best practices guide for more details. - The remainder of the Activity APIs have been rewritten in Kotlin and all extensions previously available in
activity-ktx
have been moved toactivity
.activity-ktx
is now completely empty.- As part of the conversion of
ActivityResultLauncher
to Kotlin, thegetContract
method is now an abstract Kotlin property. This is a binary compatible change, but source breaking if your implementation ofActivityResultLauncher
is written in Kotlin.
- As part of the conversion of
Annotation: v1.8.0-beta02
April 17, 2024
androidx.annotation:annotation-*:1.8.0-beta02
is released. Version 1.8.0-beta02 contains no changes since the prior release.
Benchmark: v1.2.4
April 17, 2024
androidx.benchmark:benchmark-*:1.2.4
is released. Version 1.2.4 contains these commits.
Bug Fixes
- Fixes baseline profile srcset not being set up in benchmark variants. Also fixes
automaticGenerationDuringBuild
in libraries causing a circular dependency. (I28ab7, b/333024280) - Use
am force-stop
to kill apps when not a system app like System UI or Launcher. This fixesStartupMode.COLD
benchmarks crashing from "Package $package must not be running prior to cold start!" due to process kill not fully succeeding. (I5e028)
Benchmark: v1.3.0-alpha03
April 17, 2024
androidx.benchmark:benchmark-*:1.3.0-alpha03
is released. Version 1.3.0-alpha03 contains these commits.
New Features
- Adds public API
PerfettoTraceProcessor.Session.queryMetrics
APIs with JSON, textproto, and proto binary (undecoded) variants. These allow you to query metrics built into TraceProcessor (I54d7f, b/304038382) - Added
profilerOutput
to JSON output for easier tooling around profiling traces (e.g. perfetto, method traces). (I05ddd, b/332604449) - Added power tag to benchmark Perfetto Config. This captures, for example, wakelock tracepoints. (Icfe44, b/286551983)
- Added inst argument
androidx.benchmark.profiling.skipWhenDurationRisksAnr
, can be set to false to avoid skipping method traces when expected duration may cause an ANR - strongly recommended to avoid in CI runs. - Added experimental inst argument
androidx.benchmark.profiling.perfCompare.enable
, set this to true to run comparison timing between measurement and profiling phases. Useful in e.g. evaluating overhead of method tracing. (I61fb4, b/329146942)
API Changes
- Changed
TraceSectionMetric.Mode
to sealed class to enable future expansion without breaking exhaustive when statements (I71f7b) - Added
TraceSectionMetric.Mode.Average
and.Count
, and reordered args so the more common argument (mode) was earlier in the arg list, reducing need for specifying parameter names. (Ibf0b0, b/315830077, b/322167531) - Renamed
Metric.getResult
togetMeasurements
to match return type (I42595)
Bug Fixes
- Fix to ensure benchmarks use generated baseline profiles when
automaticGenerationDuringBuild
is off (Ic144f, b/333024280) - Fix
BaselineProfile
gradle plugin property overrides to enable baseline profile generation and benchmarking when customizing anonMinified
or benchmark build type. (Ib8f05, b/324837887) - Fixed method traces flush in macrobenchmark, so that method traces should be fully captured and valid, even on slower devices. (I6349a, b/329904950)
- Enable blocking start on Perfetto trace record to reduce risk of missing data at beginning of trace. Only supported on API 33+. (Ie6e41, b/310760059)
- Added a warning when Android Test Orchestrator is used in benchmark modules, as this will cause per-module output JSON files to be repeatedly overwritten. (Ia1af6, b/286899049)
- Force ',' (comma) thousands separators for consistency in Studio output, ignoring device locale (I3e921, b/313496656)
TraceSectionMetric
now supports slices created usingTrace.{begin|end}AsyncSection
. (I91b32, b/300434906)- Added log.w / exception labels to all startup detection failures. This does not change current behavior (so some errors throw, and others silently fail to detect the startup), just makes it more understandable. Generally the ones that
Log.w()
and fail to report startup metrics are those where non-frame events are missing, exceptions are thrown when startup is detected except for frame timing information (from UI/RT slices). (
2024-04-17@05PM
Activity: v1.9.0
April 17, 2024
androidx.activity:activity:1.9.0
, androidx.activity:activity-compose:1.9.0
, and androidx.activity:activity-ktx:1.9.0
are released. Version 1.9.0 contains these commits.
Important changes since 1.8.0
ComponentActivity
now implementsOnUserLeaveHintProvider
to allow components to callbacks foronUserLeaveHint
events.- The
OnBackPressedCallback
,BackHandler
, andPredictiveBackHandler
APIs now warn when callingonBackPressedDispatcher.onBackPressed()
when handling back as that will always break the Predictive Back Animation. See the best practices guide for more details. - The remainder of the Activity APIs have been rewritten in Kotlin and all extensions previously available in
activity-ktx
have been moved toactivity
.activity-ktx
is now completely empty.- As part of the conversion of
ActivityResultLauncher
to Kotlin, thegetContract
method is now an abstract Kotlin property. This is a binary compatible change, but source breaking if your implementation ofActivityResultLauncher
is written in Kotlin.
- As part of the conversion of
Annotation: v1.8.0-beta02
April 17, 2024
androidx.annotation:annotation-*:1.8.0-beta02
is released. Version 1.8.0-beta02 contains no changes since the prior release.
Benchmark: v1.2.4
April 17, 2024
androidx.benchmark:benchmark-*:1.2.4
is released. Version 1.2.4 contains these commits.
Bug Fixes
- Fixes baseline profile srcset not being set up in benchmark variants. Also fixes
automaticGenerationDuringBuild
in libraries causing a circular dependency. (I28ab7, b/333024280) - Use
am force-stop
to kill apps when not a system app like System UI or Launcher. This fixesStartupMode.COLD
benchmarks crashing from "Package $package must not be running prior to cold start!" due to process kill not fully succeeding. (I5e028)
Benchmark: v1.3.0-alpha03
April 17, 2024
androidx.benchmark:benchmark-*:1.3.0-alpha03
is released. Version 1.3.0-alpha03 contains these commits.
New Features
- Adds public API
PerfettoTraceProcessor.Session.queryMetrics
APIs with JSON, textproto, and proto binary (undecoded) variants. These allow you to query metrics built into TraceProcessor (I54d7f, b/304038382) - Added
profilerOutput
to JSON output for easier tooling around profiling traces (e.g. perfetto, method traces). (I05ddd, b/332604449) - Added power tag to benchmark Perfetto Config. This captures, for example, wakelock tracepoints. (Icfe44, b/286551983)
- Added inst argument
androidx.benchmark.profiling.skipWhenDurationRisksAnr
, can be set to false to avoid skipping method traces when expected duration may cause an ANR - strongly recommended to avoid in CI runs. - Added experimental inst argument
androidx.benchmark.profiling.perfCompare.enable
, set this to true to run comparison timing between measurement and profiling phases. Useful in e.g. evaluating overhead of method tracing. (I61fb4, b/329146942)
API Changes
- Changed
TraceSectionMetric.Mode
to sealed class to enable future expansion without breaking exhaustive when statements (I71f7b) - Added
TraceSectionMetric.Mode.Average
and.Count
, and reordered args so the more common argument (mode) was earlier in the arg list, reducing need for specifying parameter names. (Ibf0b0, b/315830077, b/322167531) - Renamed
Metric.getResult
togetMeasurements
to match return type (I42595)
Bug Fixes
- Fix to ensure benchmarks use generated baseline profiles when
automaticGenerationDuringBuild
is off (Ic144f, b/333024280) - Fix
BaselineProfile
gradle plugin property overrides to enable baseline profile generation and benchmarking when customizing anonMinified
or benchmark build type. (Ib8f05, b/324837887) - Fixed method traces flush in macrobenchmark, so that method traces should be fully captured and valid, even on slower devices. (I6349a, b/329904950)
- Enable blocking start on Perfetto trace record to reduce risk of missing data at beginning of trace. Only supported on API 33+. (Ie6e41, b/310760059)
- Added a warning when Android Test Orchestrator is used in benchmark modules, as this will cause per-module output JSON files to be repeatedly overwritten. (Ia1af6, b/286899049)
- Force ',' (comma) thousands separators for consistency in Studio output, ignoring device locale (I3e921, b/313496656)
TraceSectionMetric
now supports slices created usingTrace.{begin|end}AsyncSection
. (I91b32, b/300434906)- Added log.w / exception labels to all startup detection failures. This does not change current behavior (so some errors throw, and others silently fail to detect the startup), just makes it more understandable. Generally the ones that
Log.w()
and fail to report startup metrics are those where non-frame events are missing, exceptions are thrown when startup is detected except for frame timing information (from UI/RT slices). (
2024-04-17
Media3: v1.4.0-alpha01
April 17, 2024
androidx.media3:media3-*:1.4.0-alpha01
is released. Version 1.4.0-alpha01 contains these commits.
- ExoPlayer:
- Add
BasePreloadManager
which coordinates the preloading for multiple sources based on the priorities defined by theirrankingData
. Customization is possible by extending this class. AddDefaultPreloadManager
which usesPreloadMediaSource
to preload media samples of the sources into memory, and uses an integerrankingData
that indicates the index of an item on the UI. - Add
PlayerId
to most methods ofLoadControl
to enableLoadControl
implementations to support multiple players. - Remove
Buffer.isDecodeOnly()
andC.BUFFER_FLAG_DECODE_ONLY
. There is no need to set this flag as renderers and decoders will decide to skip buffers based on timestamp. CustomRenderer
implementations should check if the buffer time is at leastBaseRenderer.getLastResetPositionUs()
to decide whether a sample should be shown. CustomSimpleDecoder
implementations can checkisAtLeastOutputStartTimeUs
if needed or mark other buffers withDecoderOutputBuffer.shouldBeSkipped
to skip them. - Allow a null value to be returned by
TargetPreloadStatusControl.getTargetPreloadStatus(T)
to indicate not to preload aMediaSource
with the givenrankingData
. - Add
remove(MediaSource)
toBasePreloadManager
.
- Add
- Transformer:
- Add
audioConversionProcess
andvideoConversionProcess
toExportResult
indicating how the respective track in the output file was made. - Relax trim optimization H.264 level checks.
- Add support for changing between SDR and HDR input media in a sequence.
- Add support for composition-level audio effects.
- Add support for transcoding Ultra HDR images into HDR videos.
- Fix issue where the
DefaultAudioMixer
does not output the correct amount of bytes after being reset and reused.
- Add
- Video:
- Fix issue where
Listener.onRenderedFirstFrame()
arrives too early when switching surfaces mid-playback.
- Fix issue where
- DataSource:
- Implement support for
android.resource://package/id
raw resource URIs wherepackage
is different to the package of the current application. This wasn't previously documented to work, but is a more efficient way of accessing resources in another package than by name. - Eagerly check
url
is non-null in theDataSpec
constructors. This parameter was already annotated to be non-null.
- Implement support for
- Effect:
- Support multiple speed changes within the same
EditedMediaItem
orComposition
inSpeedChangeEffect
. - Support for HLG and PQ output from ultra HDR bitmap input.
- Add support for EGL_GL_COLORSPACE_BT2020_HLG_EXT, which improves HLG surface output in ExoPlayer.setVideoEffect and Transformer's Debug SurfaceView.
- Update Overlay matrix implementation to make it consistent with the documentation by flipping the x and y values applied in
setOverlayFrameAnchor()
. If usingOverlaySettings.Builder.setOverlayFrameAnchor()
, flip their x and y values by multiplying them by-1
.
- Support multiple speed changes within the same
- Session:
- Change default of
CommandButton.enabled
totrue
and ensure the value can stay false for controllers even if the associated command is available. - Add icon constants for
CommandButton
that should be used instead of custom icon resources. - Add
MediaSessionService.isPlaybackOngoing()
to let apps query whether the service needs to be stopped inonTaskRemoved()
(#1219). - Add
MediaSessionService.pauseAllPlayersAndStopSelf()
that conveniently allows to pause playback of all sessions and callstopSelf
to terminate the lifecycle of theMediaSessionService
. - Override
MediaSessionService.onTaskRemoved(Intent)
to provide a safe default implementation that keeps the service running in the foreground if playback is ongoing or stops the service otherwise.
- Change default of
- Downloads:
- Ensure that
DownloadHelper
does not leak unreleasedRenderer
instances, which can eventually result in an app crashing withIllegalStateException: Too many receivers, total of 1000, registered for pid
(#1224).
- Ensure that
- Test Utilities:
- Implement
onInit()
andonRelease()
inFakeRenderer
. - Change
TestPlayerRunHelper.runUntil/playUntil
methods to fail on nonfatal errors (e.g. those reported toAnalyticsListener.onVideoCodecError
). Use the newTestPlayerRunHelper.run(player).ignoringNonFatalErrors().untilXXX()
method chain to disable this behavior.
- Implement
- Demo app:
- Use
DefaultPreloadManager
in the short form demo app.
- Use
- Remove deprecated symbols:
- Remove
CronetDataSourceFactory
. UseCronetDataSource.Factory
instead. - Remove some
DataSpec
constructors. UseDataSpec.Builder
instead.
- Remove
2024-04-09
Media3: v1.3.1
April 11, 2024
androidx.media3:media3-*:1.3.1
is released. Version 1.3.1 contains these commits.
- Common Library:
- Add
Format.labels
to allow localized or other alternative labels.
- Add
- ExoPlayer:
- Fix issue where
PreloadMediaPeriod
cannot retain the streams when it is preloaded again. - Apply the correct corresponding
TrackSelectionResult
to the playing period in track reselection. - Start early-enabled renderers only after advancing the playing period when transitioning between media items (#1017).
- Add missing return type to proguard
-keepclasseswithmembers
rule forDefaultVideoFrameProcessor.Factory.Builder.build()
(#1187).
- Fix issue where
- Transformer:
- Add workaround for exception thrown due to
MediaMuxer
not supporting negative presentation timestamps before API 30.
- Add workaround for exception thrown due to
- Track Selection:
DefaultTrackSelector
: Prefer video tracks with a 'reasonable' frame rate (>=10fps) over those with a lower or unset frame rate. This ensures the player selects the 'real' video track in MP4s extracted from motion photos that can contain two HEVC tracks where one has a higher resolution but a very small number of frames (#1051).
- Extractors:
- Fix issue where padding was not skipped when reading odd-sized chunks from WAV files (#1117).
- MP3: Populate
Format.averageBitrate
from metadata frames such asXING
andVBRI
. - MPEG-TS: Revert a change that aimed to ensure the last frame is rendered by passing the last access unit of a stream to the sample queue (#7909). This is due to the change causing new problems with I-frame only HLS streams (#1150) and H.262 HLS streams (#1126).
- Audio:
- Allow renderer recovery by disabling offload if audio track fails to initialize in offload mode.
- Video:
- Add workaround for a device issue on Galaxy Tab S7 FE, Chromecast with Google TV, and Lenovo M10 FHD Plus that causes 60fps H265 streams to be marked as unsupported
- Add workaround that ensures the first frame is always rendered while tunneling even if the device does not do this automatically as required by the API (#1169). (#966).
- Fix issue where HDR color info handling causes codec misbehavior and prevents adaptive format switches for SDR video tracks (#1158).
- Text:
- WebVTT: Prevent directly consecutive cues from creating spurious additional
CuesWithTiming
instances fromWebvttParser.parse
(#1177).
- WebVTT: Prevent directly consecutive cues from creating spurious additional
- DRM:
- Work around a
NoSuchMethodError
which can be thrown by theMediaDrm
framework instead ofResourceBusyException
orNotProvisionedException
on some Android 14 devices (#1145).
- Work around a
- Effect:
- Improved PQ to SDR tone-mapping by converting color spaces.
- Session:
- UI:
- Fallback to include audio track language name if
Locale
cannot identify a display name (#988).
- Fallback to include audio track language name if
- DASH Extension:
- Populate all
Label
elements from the manifest intoFormat.labels
(#1054).
- Populate all
- RTSP Extension:
- Skip empty session information values (i-tags) in SDP parsing (#1087).
- Decoder Extensions (FFmpeg, VP9, AV1, MIDI, etc.):
- Disable the MIDI extension as a local dependency by default because it requires an additional Maven repository to be configured. Users who need this module from a local dependency can re-enable it.
2024-04-02
Activity: v1.9.0-rc01
April 3, 2024
androidx.activity:activity:1.9.0-rc01
, androidx.activity:activity-compose:1.9.0-rc01
, and androidx.activity:activity-ktx:1.9.0-rc01
are released. Version 1.9.0-rc01 contains these commits.
Dependency update
- Activity now depends on Profile Installer 1.3.1.
Annotation-Experimental: v1.4.1
April 3, 2024
androidx.annotation:annotation-experimental:1.4.1
is released. Version 1.4.1 contains these commits.
Bug Fixes
- Fix usage of
isKotlin
to avoid accidentally triggeringRequiresOptIn
check in Kotlin files. (I2d8c1f)
Annotation: v1.8.0-beta01
April 3, 2024
androidx.annotation:annotation-*:1.8.0-beta01
is released. Version 1.8.0-beta01 contains these commits.
New Features
ReplaceWith
annotation is now API-stable, but the associated lint check with auto-fix has not shipped yet
Car App: v1.7.0-alpha01
April 3, 2024
androidx.car.app:app-*:1.7.0-alpha01
is released. We have moved our library versioning scheme to match the active CarApi version. This is to reduce confusion on the naming scheme based on developer feedback. As a result, we will skip versions 1.5 / 1.6 directly moving to 1.7 Version 1.7.0-alpha01 contains these commits.
New Features
- Map with Content: New template named
MapWithContent
which supports List / Grid / Pane / Message as Content inside a map.RoutePreview
,PlaceListNavigation
, Map templates are now deprecated.- Sample apps have been updated to show functionality of deprecated templates using
MapWithContent
.
- Conversation Item: New APIs for displaying conversations (IM, SMS), and Assistant readout in the car.
- Vehicle Dimensions: New API to retrieve vehicle measures (data on AAOS at the moment).
API Changes
- Mark extra small row image type as experimental (I5184b)
- Added
CarInfo#fetchExteriorDimensions
API which allows access to vehicle exterior dimension information such as height, width, etc (Ia40c5) - Removed
ExperimentalAPI
tag fromMapWithContentTemplate
(I66db8) - Update
GridItem#setTitle
parameter to be nullable. (I3d610) GetHeader
API does not require API 7 because it is backwards compatible (I8c812)- Add support for
Header
inListTemplate
, deprecateheaderAction
,headerTitle
,actionStrip
(I7ae01) - Deprecate
title
,headerAction
,actionStrip
inGridTemplate
and add support forHeader
(I41a9c) - Remove level 7 requirement for experimental APIs: Badge,
GridTemplate
item size and image shape getters/setters,GridItem
methods for getting/setting Badge. (Id71eb) - Deprecate
title
,headerAction
,actionStrip
inPaneTemplate
, add newHeader
support (I23154) - Changed Media Center telemetry from
BroadcastReceiver
to Browse Custom Action. (I4185f) - Added
Header
attribute support inMessageTemplate
. Deprecated support forActionStrip
,headerAction
andtitle
. (Ie2de8) - Modify alert constant visibility (Icf8a8)
- Remove
isLoading
attribute from the parent template (I651e6) - Add extras to inform media apps of the main UI parameters (I85ca2)
- Add media center analytics feature to
MediaExtensions
(I7ce28) - Added option for extra small image on rows. (I72c03)
Bug Fixes
- Update javadoc on
ConversationItem
to state that messages should be sorted in order from oldest to newest. (I77a2a) - Update
ListTemplate
truncation logic to remove oldest messages fromConversationItem
(Ie0a61)
Compose Animation: v1.6.5
April 3, 2024
androidx.compose.animation:animation-*:1.6.5
is released. Version 1.6.5 contains these commits.
Compose Animation: v1.7.0-alpha06
April 3, 2024
androidx.compose.animation:animation-*:1.7.0-alpha06
is released. Version 1.7.0-alpha06 contains these commits.
New Features
- Item appearance and disappearance animation support was added into
LazyColumn
andLazyRow
. Previously it was possible to addModifier.animateItemPlacement()
modifier in order to support placement (reordering) animations. We deprecated this modifier and introduced a new non-experimental modifier calledModifier.animateItem()
which allows you to support all three animation types: appearance (fade in), disappearance (fade out) and reordering. (I2d7f7,
2024-03-19
Activity: v1.9.0-beta01
March 20, 2024
androidx.activity:activity:1.9.0-beta01
, androidx.activity:activity-compose:1.9.0-beta01
, and androidx.activity:activity-ktx:1.9.0-beta01
are released. Version 1.9.0-beta01 contains these commits.
Bug Fixes
- Fixed an Activity startup performance regression introduced in Activity
1.9.0-alpha02
caused by calling theOnBackPressedDispatcher
as part of the creation of the Activity. (Ie75e3)
Annotation: v1.8.0-alpha02
March 20, 2024
androidx.annotation:annotation-*:1.8.0-alpha02
is released with no notable changes. Version 1.8.0-alpha02 contains these commits.
Benchmark: v1.3.0-alpha02
March 20, 2024
androidx.benchmark:benchmark-*:1.3.0-alpha02
is released. Version 1.3.0-alpha02 contains these commits.
New Features
Experimental R8 support in microbench via embedded proguard rules. Note that this support is experimental, and requires AGP 8.3 for minification of library module tests. Use the following to enable R8 minification/optimization in your benchmark module's
build.gradle
, which should lead to a significant performance increase, depending on workload. (I738a3, b/184378053)android { buildTypes.release.androidTest.enableMinification = true }
Bug Fixes
- Fixes method tracing warning to be on separate line from microbench output. (I0455c, b/328308833)
Compose Animation: v1.6.4
March 20, 2024
androidx.compose.animation:animation-*:1.6.4
is released. Version 1.6.4 contains these commits.
Compose Animation: v1.7.0-alpha05
March 20, 2024
androidx.compose.animation:animation-*:1.7.0-alpha05
is released. Version 1.7.0-alpha05 contains these commits.
API Changes
SeekableTransitionState
replacessnapTo()
withseekTo()
, and adds asnapTo()
that immediately changes the state to a destination state without any kind of animation.
Compose Compiler: v1.5.11
March 20, 2024
androidx.compose.compiler:compiler:1.5.11
and androidx.compose.compiler:compiler-hosted:1.5.11
are released. Version 1.5.11 contains these commits.
Notes
Starting with this version, the compiler will now call
startReplaceGroup
instead ofstartReplacableGroup
when a module is compiled with a runtime that contains this method.startReplaceGroup
was introduced in the runtime in Compose Runtime1.7.0-alpha03
. Calls tostartRestartGroup
are only generated when targeting 1.7.0-alpha03 or later versions of the runtime.Calling
startReplaceGroup
instead ofstartReplaceableGroup
allows the runtime to detect changes more efficiently but may affect the order in which changes are detected by theComposer
and sent to theApplier
. This may result in subtle changes in behavior if anApplier
relies on the order these operations are detected.
Bug Fixes
- Fix nested external generic types being inferred Unstable. (I3437f, b/327643787)
- Support multiple stability configuration files. (I8db14, b/325326744)
- Compose Compiler now correctly transforms overridden functions by recursively walking through base classes/overrides. (I2c9f9, b/316196500)
- Ensure that function reference memoization doesn't try to capture implicit parents of local declarations when they are not used directly. (Ib1267)
- Fix code generation for composable crossinline lambda (hard to encounter this bug without "nonSkippingGroupOptimization" enabled). (Icb2fd, b/325502738)
Compose Foundation: v1.6.4
March 20, 2024
androidx.compose.foundation:foundation-*:1.6.4
is released. Version 1.6.4 contains these commits.
Bug Fixes
- A long-press-then-drag selection gesture which moves out of the text’s layout bounds in the first frame of the drag no longer crashes. (Icdf90, b/325307463)
Compose Foundation: v1.7.0-alpha05
March 20, 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha05
is released. Version 1.7.0-alpha05 contains these commits.
API Changes
- Removed experimental
LocalTextLinkStyle
composition local for styling hyperlinks. (Iebfa7) - Removed experimental override of
BasicText
withonLinkClicked
argument. A replacement API for hyperlinks support will follow in the future. (I107d5) - Removed Codepoints related methods and properties under
TextFieldState
andTextFieldBuffer
. Also removed theinChars
suffixes from the remaining selection and composition related APIs. (Ief7ce) AnchoredDraggable
'scurrentValue
will now update when passing through an anchor point. UsesettledValue
to receive the previouscurrentValue
semantics, only updating when settling at an anchor. The progress is now exposed as a function (requiring a s...
2024-03-07
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 interfaceCustomTabsCallback
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 interfaceCustomTabsCallback
to let developers know whenCustomTabsClient#warmupfinishes
warming up the browser process. (I107cf) - Added the session id to extras in
CustomTabsSession#setEngagementSignalsCallback
andCustomTabsSession#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
toKeyboardOptions
to provideTextFields
with the ability to hint IMEs with specific locales to preset a preferred language. (Id18c2) - Removed the Experimental
BasicTextField2
andBasicSecureTextField
overloads that tookvalue: String
andonValueChange: () -> String
parameters. (I568b4) - Add an optional
applySemantics
function toInputTransformation
to influence the semantics of theBasicTextField2
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 toBasicTextField
. (Ie5713)FocusRequester.createRefs
is now stable (I4d92c, b/261436820)- Introduced
DelegatableNode.scrollIntoView()
to allow modifier nodes to makescrollIntoView
requests directly. (I2b3b7, b/299939840) - Introduced
DelegatableNode.requireView()
to allow modifier nodes to get the current AndroidView
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 c...
2024-03-06
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 interfaceCustomTabsCallback
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 interfaceCustomTabsCallback
to let developers know whenCustomTabsClient#warmupfinishes
warming up the browser process. (I107cf) - Added the session id to extras in
CustomTabsSession#setEngagementSignalsCallback
andCustomTabsSession#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
toKeyboardOptions
to provideTextFields
with the ability to hint IMEs with specific locales to preset a preferred language. (Id18c2) - Removed the Experimental
BasicTextField2
andBasicSecureTextField
overloads that tookvalue: String
andonValueChange: () -> String
parameters. (I568b4) - Add an optional
applySemantics
function toInputTransformation
to influence the semantics of theBasicTextField2
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 toBasicTextField
. (Ie5713)FocusRequester.createRefs
is now stable (I4d92c, b/261436820)- Introduced
DelegatableNode.scrollIntoView()
to allow modifier nodes to makescrollIntoView
requests directly. (I2b3b7, b/299939840) - Introduced
DelegatableNode.requireView()
to allow modifier nodes to get the current AndroidView
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 c...