Skip to content

Releases: mahozad/androidx-release-notes

2024-04-30

01 May 18:38
Compare
Choose a tag to compare

Annotation: v1.8.0-rc01

May 1, 2024

androidx.annotation:annotation-*:1.8.0-rc01 is released. Version 1.8.0-rc01 contains no changes since the prior beta release.

Appcompat: v1.7.0-beta01

May 1, 2024

androidx.appcompat:appcompat:1.7.0-beta01 and androidx.appcompat:appcompat-resources:1.7.0-beta01 are released. Version 1.7.0-beta01 contains these commits.

Benchmark: v1.3.0-alpha04

May 1, 2024

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

API Changes

  • Added experimental MacrobenchmarkRule#measureRepeated variant which takes a custom PerfettoConfig for fully customized Perfetto trace recording. Note that incorrectly configured configs may cause built in Metric classes to fail. (Idfd3d, b/309841164, b/304038384)
  • Rename PowerMetric.deviceSupportsPowerEnergy to PowerMetric.deviceSupportsHighPrecisionTracking for clarity (I5b82f)
  • Added PowerMetric.deviceBatteryHasMinimumCharge() and PowerMetric.deviceSupportsPowerEnergy() to enable changing or skipping benchmarks based on device power measurement capability. (I6a591, b/322121218)

Bug Fixes

  • Added comparison with previous baseline profile (I824c8, b/269484510)
  • Added DSL to disable warnings (Ic4deb, b/331237001)
  • Changed exception to info log when benchmark variants are disabled (I8a517, b/332772491)
  • Make it simpler to capture method traces for a Macrobenchmark is scoped to the duration of the actual measureBlock(). Previously, it started at target process launch and only supported cold starts (Iee85a, b/300651094)
  • Avoid crashing when perfetto trace processor is slow to start (I98841, b/329145808)

Compose Animation: v1.6.7

May 1, 2024

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

Compose Animation: v1.7.0-alpha08

May 1, 2024

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

API Changes

  • LookaheadScope APIs have been made stable. (I21507)

External Contribution

  • Clear start animation time after SeekableTransitionState animates/snaps by Steven Schoen (1ca89529)

Compose Compiler: v1.5.13

May 1, 2024

androidx.compose.compiler:compiler:1.5.13 and androidx.compose.compiler:compiler-hosted:1.5.13 are released. Version 1.5.13 contains these commits.

New features

  • Strong skipping is no longer considered experimental and is safe for use in production. It will become the default behavior in an upcoming release. (I6c8c4)

Bug Fixes

  • Fix binary compatibility for @Composable functions with value class parameters that have a default value and are wrapping a non-primitive value. (I89465
  • Upstreamed fixes for JS and Native compilation from Compose multiplatform. See the commit range above for full details.

Compose Foundation: v1.6.7

May 1, 2024

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

Compose Foundation: v1.7.0-alpha08

May 1, 2024

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

New Features

  • Added right-click context menu to BasicTextField and SelectionContainer with items for cut, copy, paste, and select-all actions. (If8c93, Ia2b49, I6f268)

API Changes

  • LazyLayout prefetch requests can be marked as urgent now, meaning that we expect this item to be needed in the next frame and want to ignore frame budget to make sure to do more work in advance (Id513f)
  • Renamed isPositionedByParentWithDirectManipulation to introducesFrameOfReference. Note that it now has the reverse effect, meaning that by default, most LayoutCoordinates introduce a frame of reference, and, only when placed under direct manipulation the property will be false. To query position with only those that introduce a frame of reference, use positionInLocalFrameOfReference(...). Or positionInLocalLookaheadFrameOfReference from a LookaheadScope. (Ifc5f7)
  • Renamed onClicked to onClick inside LinkInteractionListener (Iaa35c)
  • Change action lambda for getScrollViewportLength as per API council feedback. (Ibc74a)
  • Renamed stylus handwriting delegation APIs. (
Read more

2024-04-26

29 Apr 18:37
Compare
Choose a tag to compare

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

18 Apr 18:37
Compare
Choose a tag to compare

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 implements OnUserLeaveHintProvider to allow components to callbacks for onUserLeaveHint events.
  • The OnBackPressedCallback, BackHandler, and PredictiveBackHandler APIs now warn when calling onBackPressedDispatcher.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 to activity. activity-ktx is now completely empty.
    • As part of the conversion of ActivityResultLauncher to Kotlin, the getContract method is now an abstract Kotlin property. This is a binary compatible change, but source breaking if your implementation of ActivityResultLauncher is written in Kotlin.

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 fixes StartupMode.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 to getMeasurements 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 a nonMinified 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 using Trace.{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). (
Read more

2024-04-17@05PM

17 Apr 18:38
Compare
Choose a tag to compare

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 implements OnUserLeaveHintProvider to allow components to callbacks for onUserLeaveHint events.
  • The OnBackPressedCallback, BackHandler, and PredictiveBackHandler APIs now warn when calling onBackPressedDispatcher.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 to activity. activity-ktx is now completely empty.
    • As part of the conversion of ActivityResultLauncher to Kotlin, the getContract method is now an abstract Kotlin property. This is a binary compatible change, but source breaking if your implementation of ActivityResultLauncher is written in Kotlin.

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 fixes StartupMode.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 to getMeasurements 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 a nonMinified 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 using Trace.{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). (
Read more

2024-04-17

17 Apr 15:36
Compare
Choose a tag to compare

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 their rankingData. Customization is possible by extending this class. Add DefaultPreloadManager which uses PreloadMediaSource to preload media samples of the sources into memory, and uses an integer rankingData that indicates the index of an item on the UI.
    • Add PlayerId to most methods of LoadControl to enable LoadControl implementations to support multiple players.
    • Remove Buffer.isDecodeOnly() and C.BUFFER_FLAG_DECODE_ONLY. There is no need to set this flag as renderers and decoders will decide to skip buffers based on timestamp. Custom Renderer implementations should check if the buffer time is at least BaseRenderer.getLastResetPositionUs() to decide whether a sample should be shown. Custom SimpleDecoder implementations can check isAtLeastOutputStartTimeUs if needed or mark other buffers with DecoderOutputBuffer.shouldBeSkipped to skip them.
    • Allow a null value to be returned by TargetPreloadStatusControl.getTargetPreloadStatus(T) to indicate not to preload a MediaSource with the given rankingData.
    • Add remove(MediaSource) to BasePreloadManager.
  • Transformer:
    • Add audioConversionProcess and videoConversionProcess to ExportResult 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.
  • Video:
    • Fix issue where Listener.onRenderedFirstFrame() arrives too early when switching surfaces mid-playback.
  • DataSource:
    • Implement support for android.resource://package/id raw resource URIs where package 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 the DataSpec constructors. This parameter was already annotated to be non-null.
  • Effect:
    • Support multiple speed changes within the same EditedMediaItem or Composition in SpeedChangeEffect.
    • 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 using OverlaySettings.Builder.setOverlayFrameAnchor(), flip their x and y values by multiplying them by -1.
  • Session:
    • Change default of CommandButton.enabled to true 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 in onTaskRemoved() (#1219).
    • Add MediaSessionService.pauseAllPlayersAndStopSelf() that conveniently allows to pause playback of all sessions and call stopSelf to terminate the lifecycle of the MediaSessionService.
    • 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.
  • Downloads:
    • Ensure that DownloadHelper does not leak unreleased Renderer instances, which can eventually result in an app crashing with IllegalStateException: Too many receivers, total of 1000, registered for pid (#1224).
  • Test Utilities:
    • Implement onInit() and onRelease() in FakeRenderer.
    • Change TestPlayerRunHelper.runUntil/playUntil methods to fail on nonfatal errors (e.g. those reported to AnalyticsListener.onVideoCodecError). Use the new TestPlayerRunHelper.run(player).ignoringNonFatalErrors().untilXXX() method chain to disable this behavior.
  • Demo app:
    • Use DefaultPreloadManager in the short form demo app.
  • Remove deprecated symbols:
    • Remove CronetDataSourceFactory. Use CronetDataSource.Factory instead.
    • Remove some DataSpec constructors. Use DataSpec.Builder instead.

2024-04-09

09 Apr 18:36
Compare
Choose a tag to compare

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.
  • 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 for DefaultVideoFrameProcessor.Factory.Builder.build() (#1187).
  • Transformer:
    • Add workaround for exception thrown due to MediaMuxer not supporting negative presentation timestamps before API 30.
  • 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 as XING and VBRI.
    • 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 from WebvttParser.parse (#1177).
  • DRM:
    • Work around a NoSuchMethodError which can be thrown by the MediaDrm framework instead of ResourceBusyException or NotProvisionedException on some Android 14 devices (#1145).
  • Effect:
    • Improved PQ to SDR tone-mapping by converting color spaces.
  • Session:
    • Fix issue where the current position jumps back when the controller replaces the current item (#951).
    • Fix issue where MediaMetadata with just non-null extras is not transmitted between media controllers and sessions (#1176).
  • UI:
    • Fallback to include audio track language name if Locale cannot identify a display name (#988).
  • DASH Extension:
    • Populate all Label elements from the manifest into Format.labels (#1054).
  • 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

03 Apr 18:37
Compare
Choose a tag to compare

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

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 triggering RequiresOptIn 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 from MapWithContentTemplate (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 in ListTemplate, deprecate headerAction, headerTitle, actionStrip (I7ae01)
  • Deprecate title, headerAction, actionStrip in GridTemplate and add support for Header (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 in PaneTemplate, add new Header support (I23154)
  • Changed Media Center telemetry from BroadcastReceiver to Browse Custom Action. (I4185f)
  • Added Header attribute support in MessageTemplate. Deprecated support for ActionStrip, headerAction and title. (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 from ConversationItem (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 and LazyRow. Previously it was possible to add Modifier.animateItemPlacement() modifier in order to support placement (reordering) animations. We deprecated this modifier and introduced a new non-experimental modifier called Modifier.animateItem() which allows you to support all three animation types: appearance (fade in), disappearance (fade out) and reordering. (I2d7f7,
Read more

2024-03-19

20 Mar 18:37
Compare
Choose a tag to compare

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 the OnBackPressedDispatcher 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 replaces snapTo() with seekTo(), and adds a snapTo() 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 of startReplacableGroup when a module is compiled with a runtime that contains this method. startReplaceGroup was introduced in the runtime in Compose Runtime 1.7.0-alpha03. Calls to startRestartGroup are only generated when targeting 1.7.0-alpha03 or later versions of the runtime.

  • Calling startReplaceGroup instead of startReplaceableGroup allows the runtime to detect changes more efficiently but may affect the order in which changes are detected by the Composer and sent to the Applier. This may result in subtle changes in behavior if an Applier 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 with onLinkClicked argument. A replacement API for hyperlinks support will follow in the future. (I107d5)
  • Removed Codepoints related methods and properties under TextFieldState and TextFieldBuffer. Also removed the inChars suffixes from the remaining selection and composition related APIs. (Ief7ce)
  • AnchoredDraggable's currentValue will now update when passing through an anchor point. Use settledValue to receive the previous currentValue semantics, only updating when settling at an anchor. The progress is now exposed as a function (requiring a s...
Read more

2024-03-07

07 Mar 12:46
Compare
Choose a tag to compare

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 c...
Read more

2024-03-06

06 Mar 21:36
Compare
Choose a tag to compare

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 c...
Read more