Skip to content

Releases: mahozad/androidx-release-notes

2024-12-11

11 Dec 18:48
Compare
Choose a tag to compare

Activity: v1.10.0-rc01

December 11, 2024

androidx.activity:activity:1.10.0-rc01, androidx.activity:activity-compose:1.10.0-rc01, and androidx.activity:activity-ktx:1.10.0-rc01 are released. Version 1.10.0-rc01 contains these commits.

Bug Fixes

  • Fixed an issue where changing the enabled state while the PredictiveBackHandler is currently active would short circuit the callback immediately. It will now finish the current callback regardless of the enabled status changes. (Ib8719)

AppSearch: v1.1.0-alpha07

December 11, 2024

androidx.appsearch:appsearch-*:1.1.0-alpha07 is released. Version 1.1.0-alpha07 contains these commits.

New Features

  • Add ExperimentalAppSearchApi annotation to new API surfaces that have not yet stabilized. (Ib09f4)
  • Support for efficiently storing and sharing binary blob data via AppSearchSession#openBlobForWriteAsync and related methods
  • Support for filtering query results by scoring expression via the matchScoreExpression function (Id525a)
  • Support for propagating deletion from parent document to child documents. (Ia032d)
  • Support for embedding quantization API to increase embedding performance with slight quality loss. (Id8a07)
  • Support for restricting searches to certain documents using the addFilterDocumentIds API in SearchSpec. (I7c6f1)

API Changes

  • Move parent type information from GenericDocument to SearchResult. (I34a1d)
  • Support for new action types in the TakenAction API, including DismissAction and ImpressionAction. (I0c6c7)
  • Added new AppSearch builtin schema WebPage. (I28127)

Benchmark: v1.4.0-alpha06

December 11, 2024

androidx.benchmark:benchmark-*:1.4.0-alpha06 is released. Version 1.4.0-alpha06 contains these commits.

API Changes

  • Removed usage of @Language("sql") in PerfettoTraceProcessor.Session.query(), as Studio highlighting/parsing is broken. (Idc2fa, b/377733398)

Bug Fixes

  • This library now uses JSpecify nullness annotations, which are type-use. Kotlin developers should use the following compiler arguments to enforce correct usage: -Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode (I46810, b/326456246)
  • Corrected ArtMetric to report class load (not init), and improved docs to clarify runtime behavior. (I9915c)
  • On Android Multiuser, execute commands as root only on rooted devices. (I88b44)

Camera: v1.4.1

December 11, 2024

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

Bug Fixes

  • Fixed an issue on Pixel Android 15 devices where NIGHT mode in Extensions failed to capture still images until the camera focused on a nearby object. (I228d4)
  • Fixed the ImageCapture#takePicture malfunction issue when extensions are enabled and VideoCapture is bound together. (I5c745)

Camera: v1.5.0-alpha04

December 11, 2024

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

API Changes

  • Exposed ImageCapture.Builder#setOutputFormat and ImageCaptureCapabilities#getSupportedOutputFormats as stable APIs (Ieb04a)
  • Add VideoCapture.getResolutionInfo() to get the resolution information when a VideoCapture is bound to a Lifecycle. (Icb478)
  • Exposed PreviewView.getScreenFlash and PreviewView.setScreenFlashOverlayColor as stable APIs. (I74fee)

Bug Fixes

  • Fixed capture failure issue on Vivo 1610 device while taking picture with flash in the dark. (I366f4)
  • Fixed torch unexpectedly turning off after image capture in Redmi Note 6 Pro. (I2e0e8, b/377144569)
  • Fixed an issue on Pixel Android 15 devices where NIGHT mode in Extensions failed to capture still images until the camera focused on a nearby object. (I228d4)
  • Fixed the still image capture malfunction issue when extensions are enabled and VideoCapture is bound together. (I5c745)
  • Enabled UltraHDR still image capture support for Extensions if the device can support it. (I48300)
  • Fixed flash timing issue for flash capture with CameraEffect targeting image captures on TCL devices. (I7698c)

camera media3: v1.0.0-alpha01

December 11, 2024

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

New Features

  • An adapter library for using Media3 effects with CameraX. It's for adding Media3 effects into the camera pipeline with CameraX's ...
Read more

2024-12-09

09 Dec 18:47
Compare
Choose a tag to compare

Media3: v1.5.0

November 27, 2024

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

  • Common Library:
    • Add ForwardingSimpleBasePlayer that allows forwarding to another player with small adjustments while ensuring full consistency and listener handling (#1183).
    • Replace SimpleBasePlayer.State.playlist by getPlaylist() method.
    • Add override for SimpleBasePlayer.State.Builder.setPlaylist() to directly specify a Timeline and current Tracks and Metadata instead of building a playlist structure.
    • Increase minSdk to 21 (Android Lollipop). This is aligned with all other AndroidX libraries.
    • Add androidx.media3:media3-common-ktx artifact which provides Kotlin-specific functionality built on top of the Common library
    • Add Player.listen suspending extension function to spin a coroutine to listen to Player.Events to the media3-common-ktx library.
    • Remove @DoNotInline annotations from manually out-of-lined inner classes designed to avoid runtime class verification failures. Recent versions of R8 now automatically out-of-line calls like these to avoid the runtime failures (so the manual out-of-lining is no longer required). All Gradle users of the library must already be a using a version of the Android Gradle Plugin that uses a version of R8 which does this, due to compileSdk = 35. Users of the library with non-Gradle build systems will need to ensure their R8-equivalent shrinking/obfuscating step does a similar automatic out-of-lining process in order to avoid runtime class verification failures. This change has already been done in other AndroidX libraries.
  • ExoPlayer:
    • MediaCodecRenderer.onProcessedStreamChange() can now be called for every media item. Previously it was not called for the first one. Use MediaCodecRenderer.experimentalEnableProcessedStreamChangedAtStart() to enable this.
    • Add PreloadMediaSource.PreloadControl.onPreloadError to allow PreloadMediaSource.PreloadControl implementations to take actions when error occurs.
    • Add BasePreloadManager.Listener to propagate preload events to apps.
    • Allow changing SNTP client timeout and retry alternative addresses on timeout (#1540).
    • Remove MediaCodecAdapter.Configuration.flags as the field was always zero.
    • Allow the user to select the built-in speaker for playback on Wear OS API 35+ (where the device advertises support for this).
    • Defer the blocking call to Context.getSystemService(Context.AUDIO_SERVICE) until audio focus handling is enabled. This ensures the blocking call isn't done if audio focus handling is not enabled (#1616).
    • Allow playback regardless of buffered duration when loading fails (#1571).
    • Add AnalyticsListener.onRendererReadyChanged() to signal when individual renderers allow playback to be ready.
    • Fix MediaCodec.CryptoException sometimes being reported as an "unexpected runtime error" when MediaCodec is operated in asynchronous mode (default behaviour on API 31+).
    • Pass bufferedDurationUs instead of bufferedPositionUs with PreloadMediaSource.PreloadControl.onContinueLoadingRequested(). Also changes DefaultPreloadManager.Status.STAGE_LOADED_TO_POSITION_MS to DefaultPreloadManager.Status.STAGE_LOADED_FOR_DURATION_MS, apps then need to pass a value representing a specific duration from the default start position for which the corresponding media source has to be preloaded with this IntDef, instead of a position.
    • Add ForwardingRenderer implementation that forwards all method calls to another renderer (1703).
    • Add playlist preloading for the next item in the playlist. Apps can enable preloading by calling ExoPlayer.setPreloadConfiguration(PreloadConfiguration) accordingly. By default preloading is disabled. When opted-in and to not interfere with playback, DefaultLoadControl restricts preloading to start and continue only when the player is not loading for playback. Apps can change this behaviour by implementing LoadControl.shouldContinuePreloading() accordingly (like when overriding this method in DefaultLoadControl). The default implementation of LoadControl disables preloading in case an app is using a custom implementation of LoadControl.
    • Add method MediaSourceEventListener.EventDispatcher.dispatchEvent() to allow invoking events of subclass listeners (1736).
    • Add DefaultPreloadManager.Builder that builds the DefaultPreloadManager and ExoPlayer instances with consistently shared configurations.
    • Remove Renderer[] parameter from LoadControl.onTracksSelected() as DefaultLoadControl implementation can retrieve the stream types from ExoTrackSelection[].
    • Deprecated DefaultLoadControl.calculateTargetBufferBytes(Renderer[], ExoTrackSelection[]) and marked method as final to prevent overrides. The new DefaultLoadControl.calculateTargetBufferBytes(ExoTrackSelection[]) should be used instead.
    • Report MediaSourceEventListener events from secondary sources in MergingMediaSource. This will result in load start/error/cancelled/completed events being reported for sideloaded subtitles (those added with MediaItem.LocalConfiguration.subtitleConfigurations), which may appear as duplicate load events emitted from AnalyticsListener.
    • Prevent subtitle & metadata errors from completely stopping playback. Instead the problematic track is disabled and playback of the remaining tracks continues (#1722).
      • In new subtitle handling (during extraction), associated parse (e.g. invalid subtitle data) and load errors (e.g. HTTP 404) are emitted via onLoadError callbacks.
      • In legacy subtitle handling (during rendering), only associated load errors are emitted via onLoadError callbacks while parse errors are silently ignored (this is pre-existing behaviour).
    • Fix bug where playlist items or periods in multi-period DASH streams with durations that don't match the actual content could cause frame freezes at the end of the item (#1698).
    • Add a setter to SntpClient to set the max elapsed time since the last update after which the client is re-initialized (#1794).
  • Transformer:
    • Add SurfaceAssetLoader, which supports queueing video data to Transformer via a Surface.
    • ImageAssetLoader reports unsupported input via AssetLoader.onError instead of throwing an IllegalStateException.
    • Make setting the image duration using MediaItem.Builder.setImageDurationMs mandatory for image export.
    • Add export support for gaps...
Read more

2024-11-25

28 Nov 06:48
Compare
Choose a tag to compare

Media3: v1.5.0

November 27, 2024

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

  • Common Library:
    • Add ForwardingSimpleBasePlayer that allows forwarding to another player with small adjustments while ensuring full consistency and listener handling (#1183).
    • Replace SimpleBasePlayer.State.playlist by getPlaylist() method.
    • Add override for SimpleBasePlayer.State.Builder.setPlaylist() to directly specify a Timeline and current Tracks and Metadata instead of building a playlist structure.
    • Increase minSdk to 21 (Android Lollipop). This is aligned with all other AndroidX libraries.
    • Add androidx.media3:media3-common-ktx artifact which provides Kotlin-specific functionality built on top of the Common library
    • Add Player.listen suspending extension function to spin a coroutine to listen to Player.Events to the media3-common-ktx library.
    • Remove @DoNotInline annotations from manually out-of-lined inner classes designed to avoid runtime class verification failures. Recent versions of R8 now automatically out-of-line calls like these to avoid the runtime failures (so the manual out-of-lining is no longer required). All Gradle users of the library must already be a using a version of the Android Gradle Plugin that uses a version of R8 which does this, due to compileSdk = 35. Users of the library with non-Gradle build systems will need to ensure their R8-equivalent shrinking/obfuscating step does a similar automatic out-of-lining process in order to avoid runtime class verification failures. This change has already been done in other AndroidX libraries.
  • ExoPlayer:
    • MediaCodecRenderer.onProcessedStreamChange() can now be called for every media item. Previously it was not called for the first one. Use MediaCodecRenderer.experimentalEnableProcessedStreamChangedAtStart() to enable this.
    • Add PreloadMediaSource.PreloadControl.onPreloadError to allow PreloadMediaSource.PreloadControl implementations to take actions when error occurs.
    • Add BasePreloadManager.Listener to propagate preload events to apps.
    • Allow changing SNTP client timeout and retry alternative addresses on timeout (#1540).
    • Remove MediaCodecAdapter.Configuration.flags as the field was always zero.
    • Allow the user to select the built-in speaker for playback on Wear OS API 35+ (where the device advertises support for this).
    • Defer the blocking call to Context.getSystemService(Context.AUDIO_SERVICE) until audio focus handling is enabled. This ensures the blocking call isn't done if audio focus handling is not enabled (#1616).
    • Allow playback regardless of buffered duration when loading fails (#1571).
    • Add AnalyticsListener.onRendererReadyChanged() to signal when individual renderers allow playback to be ready.
    • Fix MediaCodec.CryptoException sometimes being reported as an "unexpected runtime error" when MediaCodec is operated in asynchronous mode (default behaviour on API 31+).
    • Pass bufferedDurationUs instead of bufferedPositionUs with PreloadMediaSource.PreloadControl.onContinueLoadingRequested(). Also changes DefaultPreloadManager.Status.STAGE_LOADED_TO_POSITION_MS to DefaultPreloadManager.Status.STAGE_LOADED_FOR_DURATION_MS, apps then need to pass a value representing a specific duration from the default start position for which the corresponding media source has to be preloaded with this IntDef, instead of a position.
    • Add ForwardingRenderer implementation that forwards all method calls to another renderer (1703).
    • Add playlist preloading for the next item in the playlist. Apps can enable preloading by calling ExoPlayer.setPreloadConfiguration(PreloadConfiguration) accordingly. By default preloading is disabled. When opted-in and to not interfere with playback, DefaultLoadControl restricts preloading to start and continue only when the player is not loading for playback. Apps can change this behaviour by implementing LoadControl.shouldContinuePreloading() accordingly (like when overriding this method in DefaultLoadControl). The default implementation of LoadControl disables preloading in case an app is using a custom implementation of LoadControl.
    • Add method MediaSourceEventListener.EventDispatcher.dispatchEvent() to allow invoking events of subclass listeners (1736).
    • Add DefaultPreloadManager.Builder that builds the DefaultPreloadManager and ExoPlayer instances with consistently shared configurations.
    • Remove Renderer[] parameter from LoadControl.onTracksSelected() as DefaultLoadControl implementation can retrieve the stream types from ExoTrackSelection[].
    • Deprecated DefaultLoadControl.calculateTargetBufferBytes(Renderer[], ExoTrackSelection[]) and marked method as final to prevent overrides. The new DefaultLoadControl.calculateTargetBufferBytes(ExoTrackSelection[]) should be used instead.
    • Report MediaSourceEventListener events from secondary sources in MergingMediaSource. This will result in load start/error/cancelled/completed events being reported for sideloaded subtitles (those added with MediaItem.LocalConfiguration.subtitleConfigurations), which may appear as duplicate load events emitted from AnalyticsListener.
    • Prevent subtitle & metadata errors from completely stopping playback. Instead the problematic track is disabled and playback of the remaining tracks continues (#1722).
      • In new subtitle handling (during extraction), associated parse (e.g. invalid subtitle data) and load errors (e.g. HTTP 404) are emitted via onLoadError callbacks.
      • In legacy subtitle handling (during rendering), only associated load errors are emitted via onLoadError callbacks while parse errors are silently ignored (this is pre-existing behaviour).
    • Fix bug where playlist items or periods in multi-period DASH streams with durations that don't match the actual content could cause frame freezes at the end of the item (#1698).
    • Add a setter to SntpClient to set the max elapsed time since the last update after which the client is re-initialized (#1794).
  • Transformer:
    • Add SurfaceAssetLoader, which supports queueing video data to Transformer via a Surface.
    • ImageAssetLoader reports unsupported input via AssetLoader.onError instead of throwing an IllegalStateException.
    • Make setting the image duration using MediaItem.Builder.setImageDurationMs mandatory for image export.
    • Add export support for gaps...
Read more

2024-11-19

19 Nov 18:46
Compare
Choose a tag to compare

Media3: 1.5.0-rc02 (2024-11-19)

androidx.media3:media3-*:1.5.0-rc02 is released.

Version 1.5.0-rc02 contains these commits.

This release includes the following changes since the 1.5.0-rc01 release:

  • Extractors:
    • Add AC-4 Level-4 ISO base media file format support (#1265).
  • Text:
    • Fix garbled CEA-608 subtitles in content with more than one SEI message per sample.
    • Fix playback hanging on DASH multi-period streams when CEA-608 subtitles are enabled (#1863).
    • Fix garbled CEA-608 subtitles in MP4 files that incorrectly mark every sample as a sync sample (#1863).
  • Demo app
    • Resolve the memory leaks in demo short-form app (#1839).

2024-11-13

13 Nov 18:44
Compare
Choose a tag to compare

Activity: v1.10.0-beta01

November 13, 2024

androidx.activity:activity:1.10.0-beta01, androidx.activity:activity-compose:1.10.0-beta01, and androidx.activity:activity-ktx:1.10.0-beta01 are released with no changes since the last alpha. Version 1.10.0-beta01 contains these commits.

Benchmark: v1.4.0-alpha05

November 13, 2024

androidx.benchmark:benchmark-*:1.4.0-alpha05 is released. Version 1.4.0-alpha05 contains these commits.

Bug Fixes

  • Fixed an issue on API 34+ where CompilationMode.None() would have inconsistent performance not representative of initial, worst case performance. This works around a platform change which allows ART's compilation state verify to partially compile apps (only affecting class loading) shortly after first launch. (Ie48d0)
  • Fixed issue where (especially short) traces could be captured that wouldn't report measurement from built-in Macrobenchmark Metrics, due to the process name being truncated within the Perfetto trace. Now macrobenchmark works around this issue by looking for the truncated package name in all built-in queries, in addition to the expected package name. Note that custom TraceMetric implementations or other direct callers of PerfettoSession.query can implement this same behavior by changing process.name LIKE "$packageName" in a Perfetto query to instead be (process.name LIKE "$packageName" OR process.name LIKE "$(packageName.takeLast(15))"). (I5bf01, b/377565760)

Car App: v1.7.0-beta03

November 13, 2024

Fixed a security vulnerability and other general bug fixes. If you are using a lower version, please update to use this version.

androidx.car.app:app-*:1.7.0-beta03 is released. Version 1.7.0-beta03 contains these commits.

API Changes

  • Update CAL Serialization / De-serialization code to only handle objects which have the annotation @CarProtocol declared on them. (Ic730e)
  • CarAppExtender can now be used to extend the framework Notification.Builder instead of only NotificationCompat.Builder. (Id3ad7)
  • Add KEY_EXCLUDE_MEDIA_ITEM_FROM_MIXED_APP_LIST extra. (I201f9)
  • Deprecate the empty Builder constructor on ConversationItem and replace it with a constructor that takes required parameters. Also adds a check to guard against null messages. (Ic8221)

Bug Fixes

  • Ensure PlaceList map uses string (Text-only) Header title. (Ic992f)
  • This library now uses JSpecify nullness annotations, which are type-use. Kotlin developers should use the following compiler arguments to enforce correct usage: -Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode. (Ib5367, b/326456246)

Collection: v1.5.0-alpha06

November 13, 2024

androidx.collection:collection-*:1.5.0-alpha06 is released. Version 1.5.0-alpha06 contains these commits.

Bug Fixes

  • Fixed a crash that could occur in SieveCache and OrderedScatterSet when adding numerous items causing repeated key collisions. (Iaaf3d, b/375607736)
  • Add wasm target to collection library. (I66fe3, b/352722444)

Compose Animation: v1.8.0-alpha06

November 13, 2024

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

API Changes

  • Updated sharedElement parameter naming from state to sharedContentState for consistency across shared element APIs. (I5694c, b/375351468)
  • AnimatedImageVector suite of APIs are now stable. (I7174b, b/261436267)

Compose Foundation: v1.8.0-alpha06

November 13, 2024

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

API Changes

  • Adds stylusHoverIcon modifier. (Iff20a, b/331289114)
  • Deprecated AnchoredDraggableState's confirmValueChange. Instead of vetoing state changes, disallowed anchors should not be in the active anchor set, and an OverscrollEffect should be used to indicate the unavailability of the requested action. (Ia717f)
  • Changes Autofill manager to be an interface. (I84914, b/376080755)
  • Adds OverscrollEffect#withoutDrawing and OverscrollEffect#withoutEventHandling APIs - these APIs create a wrapped instance of the provided overscroll effect that doesn't draw / handle events respectively, which allows for rendering overscroll in a separate component from the component that is dispatching events. For example, disabling drawing the overscroll inside a lazy list, and then drawing the overscroll separately on top / elsewhere. (Idbb3d, b/266550551, b/204650733, b/255554340, b/229537244)
  • Adding autofill support in text toolbar. (Ie6a4c)
  • Deprecates OverscrollConfiguration and LocalOverscrollConfigurati...
Read more

2024-10-30@07PM

31 Oct 13:00
Compare
Choose a tag to compare

Activity: v1.10.0-alpha03

October 30, 2024

androidx.activity:activity:1.10.0-alpha03, androidx.activity:activity-compose:1.10.0-alpha03, and androidx.activity:activity-ktx:1.10.0-alpha03 are released. Version 1.10.0-alpha03 contains these commits.

API Changes

  • Added a new LocalActivity composition local that provides the Activity for the current scope, removing the need for developers to get an Activity from the LocalContext. It also comes with a new lint rule that checks when the LocalContext is incorrectly being cast to an Activity. (I7746a, b/283009666)

Bug Fixes

  • From Activity 1.9.3: PredictiveBackHandler will no longer fire it's callback after the handler has been disabled. This will fix an issue where the NavHost from Navigation Compose would throw an IndexOutOfBoundsException. (I3f75e, b/365027664, b/340202286)

Dependency Update

Annotation: v1.9.1

October 30, 2024

androidx.annotation:annotation-*:1.9.1 is released. Version 1.9.1 contains these commits.

Bug Fixes

  • Added JS target platform. (I2310b)
  • Kotlin version update to 1.9 (I1a14c)

Benchmark: v1.4.0-alpha04

October 30, 2024

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

New Features

  • (Experimental) Enable Baseline Profile generation, and benchmarking on apps installed to a secondary user, for example any app on headless Android Auto devices. This support has been tested in some scenarios, but let us know with a bug if it doesn't work for you. (I9fcbe, b/356684617, b/373641155)

Bug Fixes

  • isProfileable is now always overridden in benchmark builds, and isDebuggable is also now always overridden in both benchmark and nonMinified (baseline profile capture) builds. (I487fa, b/369213505)
  • Fixes compilation detection on some physical devices prior to API 28 - affects json context.compilationMode, as well as behavior of androidx.benchmark.requireAot=true (which no longer incorrectly throws) (Ic3e08, b/374362482)
  • In CpuEventCounter metrics, throw if invalid measurements are observed (e.g. instructions/cpucycles==0) (I8c503)

Camera: v1.4.0

October 30, 2024

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

Important changes since 1.3.0

CameraX 1.4.0 is packed with exciting updates! Here's a summary:

Headline Feature: 10-bit HDR:

  • Capture stunning HDR photos and videos with ease.
  • Supports HLG and 10-bit HEVC encoding.
  • Enjoy 10-bit HDR preview and query device capabilities.
  • Works with UltraHDR images and HDR video on a growing range of devices.

Other Cool Features:

  • Kotlin Extensions: Added takePicture and awaitInstance suspend functions.
  • Real-time Effects: Apply effects like watermarks and object highlighting.
  • CameraController API: New controls for video capture configuration.
  • Preview Stabilization: Query device capability and enable stabilization.
  • VideoCapture Enhancements: Finer control over quality and access to higher resolutions.
  • CameraX Extensions Integration: Seamless integration with VideoCapture and new ImageCapture features.
  • Shutter Sound API: Easily check regional shutter sound requirements.
  • Screen Flash: Improved low-light photos for front-facing cameras.
  • Camera Extensions Metadata APIs: Supporting APIs for adjusting extensions strength and get notification of current Extensions mode in ExtensionMode#AUTO. You can find more bug fixes in our Beta and RC announcements.

Camera: v1.5.0-alpha03

October 30, 2024

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

API Changes

  • Add output format APIs for RAW and RAW + JPEG ImageCapture, the device capability check is exposed in ImageCaptureCapabilities#getSupportedOutputFormats. The OUTPUT_FORMAT_RAW is to capture RAW image, which is Adobe DNG format and OUTPUT_FORMAT_RAW_JPEG is to simultaneously capture RAW and JPEG images. The new ImageCapture#takePicture API is used for simultaneous image capture, it needs to provide two OutputFileOptions, the first one is for RAW image and the second one is for JPEG image. (Ib0f3d)

Bug Fixes

  • Fixed preview and video under-exposure issue on TCL devices when VideoCapture is enabled. (Id7a64)
  • Fixed the issue where invoking startFocusMetering with PreviewView.getMeteringPointFactory doesn't get the correct sensor coordinates when an effect is enabled or when 4 use cases are bound (stream-sharing). (I916c5, b/345993685)
  • Fixed the VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE event is not triggered when recording a video and there is insufficient storage space available. (I35779, b/356399842)

camera viewfinder: v1.4.0-alpha10

October 30, 2024

Read more

2024-10-30

30 Oct 18:45
Compare
Choose a tag to compare

Activity: v1.10.0-alpha03

October 30, 2024

androidx.activity:activity:1.10.0-alpha03, androidx.activity:activity-compose:1.10.0-alpha03, and androidx.activity:activity-ktx:1.10.0-alpha03 are released. Version 1.10.0-alpha03 contains these commits.

API Changes

  • Added a new LocalActivity composition local that provides the Activity for the current scope, removing the need for developers to get an Activity from the LocalContext. It also comes with a new lint rule that checks when the LocalContext is incorrectly being cast to an Activity. (I7746a, b/283009666)

Bug Fixes

  • From Activity 1.9.3: PredictiveBackHandler will no longer fire it's callback after the handler has been disabled. This will fix an issue where the NavHost from Navigation Compose would throw an IndexOutOfBoundsException. (I3f75e, b/365027664, b/340202286)

Dependency Update

Annotation: v1.9.1

October 30, 2024

androidx.annotation:annotation-*:1.9.1 is released. Version 1.9.1 contains these commits.

Bug Fixes

  • Added JS target platform. (I2310b)
  • Kotlin version update to 1.9 (I1a14c)

Benchmark: v1.4.0-alpha04

October 30, 2024

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

New Features

  • (Experimental) Enable Baseline Profile generation, and benchmarking on apps installed to a secondary user, for example any app on headless Android Auto devices. This support has been tested in some scenarios, but let us know with a bug if it doesn't work for you. (I9fcbe, b/356684617, b/373641155)

Bug Fixes

  • isProfileable is now always overridden in benchmark builds, and isDebuggable is also now always overridden in both benchmark and nonMinified (baseline profile capture) builds. (I487fa, b/369213505)
  • Fixes compilation detection on some physical devices prior to API 28 - affects json context.compilationMode, as well as behavior of androidx.benchmark.requireAot=true (which no longer incorrectly throws) (Ic3e08, b/374362482)
  • In CpuEventCounter metrics, throw if invalid measurements are observed (e.g. instructions/cpucycles==0) (I8c503)

Camera: v1.4.0

October 30, 2024

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

Important changes since 1.3.0

CameraX 1.4.0 is packed with exciting updates! Here's a summary:

Headline Feature: 10-bit HDR:

  • Capture stunning HDR photos and videos with ease.
  • Supports HLG and 10-bit HEVC encoding.
  • Enjoy 10-bit HDR preview and query device capabilities.
  • Works with UltraHDR images and HDR video on a growing range of devices.

Other Cool Features:

  • Kotlin Extensions: Added takePicture and awaitInstance suspend functions.
  • Real-time Effects: Apply effects like watermarks and object highlighting.
  • CameraController API: New controls for video capture configuration.
  • Preview Stabilization: Query device capability and enable stabilization.
  • VideoCapture Enhancements: Finer control over quality and access to higher resolutions.
  • CameraX Extensions Integration: Seamless integration with VideoCapture and new ImageCapture features.
  • Shutter Sound API: Easily check regional shutter sound requirements.
  • Screen Flash: Improved low-light photos for front-facing cameras.
  • Camera Extensions Metadata APIs: Supporting APIs for adjusting extensions strength and get notification of current Extensions mode in ExtensionMode#AUTO. You can find more bug fixes in our Beta and RC announcements.

Camera: v1.5.0-alpha03

October 30, 2024

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

API Changes

  • Add output format APIs for RAW and RAW + JPEG ImageCapture, the device capability check is exposed in ImageCaptureCapabilities#getSupportedOutputFormats. The OUTPUT_FORMAT_RAW is to capture RAW image, which is Adobe DNG format and OUTPUT_FORMAT_RAW_JPEG is to simultaneously capture RAW and JPEG images. The new ImageCapture#takePicture API is used for simultaneous image capture, it needs to provide two OutputFileOptions, the first one is for RAW image and the second one is for JPEG image. (Ib0f3d)

Bug Fixes

  • Fixed preview and video under-exposure issue on TCL devices when VideoCapture is enabled. (Id7a64)
  • Fixed the issue where invoking startFocusMetering with PreviewView.getMeteringPointFactory doesn't get the correct sensor coordinates when an effect is enabled or when 4 use cases are bound (stream-sharing). (I916c5, b/345993685)
  • Fixed the VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE event is not triggered when recording a video and there is insufficient storage space available. (I35779, b/356399842)

camera viewfinder: v1.4.0-alpha10

October 30, 2024

Read more

2024-10-23

24 Oct 18:44
Compare
Choose a tag to compare

WorkManager: v2.10.0-rc01

October 24, 2024

androidx.work:work-*:2.10.0-rc01 is released. Version 2.10.0-rc01 contains these commits.

2024-10-16

17 Oct 02:02
Compare
Choose a tag to compare

Activity: v1.9.3

October 16, 2024

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

Bug Fixes

  • PredictiveBackHandler will no longer fire it's callback after the handler has been disabled. This will fix an issue where the NavHost from Navigation Compose would throw an IndexOutOfBoundsException. (I3f75e, b/340202286)

Annotation: v1.9.0

October 16, 2024

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

Important changes since 1.8.0

  • Added support for the following Kotlin Multiplatform targets: watchosDeviceArm64, mingwX64, linuxArm64.

AppSearch: v1.1.0-alpha06

October 16, 2024

androidx.appsearch:appsearch-*:1.1.0-alpha06 is released. Version 1.1.0-alpha06 contains these commits.

API Changes

  • Added node representing the PropertyDefined query function. (I1aeaf)
  • Add nodes to represent numeric search and property restrict. (I963a9)
  • Add node representing GetSearchStringParameter query function. (I4f99b)
  • Add node representing the HasProperty query function. (I9c1c5)
  • Added interface for implementing functions in AST. (I9d42e)
  • Add AND and OR operators. (Iaa442)
  • Add NegationNode for representing logical negation of queries in AST. (Ia855a)
  • Add Node interface to AppSearch for defining nodes. (If42fb)
  • Adds an Experimental API annotation for AppSearch. (I3e57c)

Bug Fixes

  • Add TextNodes for holding terms. (Iefd02)

Security Fix

  • As of this change, androidx compiles against protobuf 4.28.2 in order to address CVE-2024-7254. Upgrade your dependency on androidx.appsearch:appsearch-external-protobuf to the latest 1.1.0-alpha06 to address the vulnerability risk.

Benchmark: v1.3.3

October 16, 2024

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

Bug Fixes

  • Fixed CollectBaselineProfileTask when AVD device has spaces in it (Ia0225, b/371642809)

Benchmark: v1.4.0-alpha03

October 16, 2024

androidx.benchmark:benchmark-*:1.4.0-alpha03 is released. Version 1.4.0-alpha03 contains these commits.

API Changes

  • Macrobenchmark: Adds ArtMetric, which can be used to inspect profile coverage or general Android RunTime performance. Captures number and total duration of JIT, class init (where available), and class verification. Additionally, changes CaptureInfo to include optional ART mainline version with default. (I930f7)
  • Add coefficientOfVariation to Benchmark JSON output to show stability within a given benchmark run. (Ib14ea)

Bug Fixes

  • Fixed CollectBaselineProfileTask when AVD device has spaces in it. (Ia0225, b/371642809)
  • Speculative fix for errors from StartupMode.COLD exceptions: Package <packagename> must not be running prior to cold start!. Now, MacrobenchmarkScope.killProcess() (including the one run before each iteration, used to implement StartupMode.COLD behavior) will wait to verify that the app's processes have all stopped running. (I60aa6, b/351582215)
  • Fixed issue where UNLOCKED_ error would show up on some rooted emulators. (Ic5117)
  • This library now uses JSpecify nullness annotations, which are type-use. Kotlin developers should use the following compiler arguments to enforce correct usage: -Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode (I7104f, b/326456246)

Camera: v1.4.0-rc04

October 16, 2024

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

Bug Fixes

  • Fixed the issue where invoking startFocusMetering with PreviewView.getMeteringPointFactory doesn't get the correct sensor coordinates when an effect is enabled or when 4 use cases are bound (stream-sharing). (I916c5, b/345993685)

Collection: v1.5.0-alpha04

October 16, 2024

androidx.collection:collection-*:1.5.0-alpha04 is released. Version 1.5.0-alpha04 contains these commits.

Compose Animation: v1.7.4

October 16, 2024

androidx.compose.animation:animation-*:1.7.4 is released. Version 1.7.4 contains

Read more

2024-10-02

02 Oct 18:46
Compare
Choose a tag to compare

Annotation: v1.9.0-rc01

October 2, 2024

androidx.annotation:annotation-*:1.9.0-rc01 is released. Version 1.9.0-rc01 contains no changes since the previous beta.

Benchmark: v1.3.2

October 2, 2024

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

Bug Fixes

  • Fixed Firebase Test Lab (FTL) being unable to pull Baseline Profile or Macrobenchmark result files from the Baseline Profile Gradle Plugin. (I2f678, b/285187547)

To use FTL apply the plugin to the baseline profile module in the plugin block, with:

  plugins {
      ...
      id("com.google.firebase.testlab")
  }

and then configure firebase test lab with:

  firebaseTestLab {
  // Credentials for FTL service
  serviceAccountCredentials.set(file("credentials.json"))

  // Creates one or more managed devices to run the tests on.
  managedDevices {
      "ftlDeviceShiba34" {
          device = "shiba"
          apiLevel = 34
      }
  }

  // Ensures the baseline profile is pulled from the device.
  // Note that this will be automated as well later with aosp/3272935.
  testOptions {
      results {
          directoriesToPull.addAll("/storage/emulated/0/Android/media/${android.namespace}")
      }
  }

}

Also the created FTL device needs to be added to the baseline profile extension:

  baselineProfile {
      managedDevices += "ftlDeviceShiba34"
      useConnectedDevices = false
  }

Benchmark: v1.4.0-alpha02

October 2, 2024

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

API Changes

  • Moved Gradle tasks lockClocks and unlockClocks to be on benchmark projects, instead of available at the top level. This change was necessary as there is unfortunately no way to register these as top level actions without breaking project isolation. (I02b8f, b/363325823)

Bug Fixes

  • BaselineProfileRule now collects profiles for multi-process apps by signaling each running process at the end of the block to dump profiles. If a profile based compilation never successfully finds a process to broadcast to, the compilation will fail, as it's unexpected to have profile data within. Additionally, added an instrumentation argument to control dump wait duration: androidx.benchmark.saveProfileWaitMillis (I0f519, b/366231469)
  • From Benchmark 1.3.2: Fixed Firebase Test Lab (FTL) being unable to pull Baseline Profile or Macrobenchmark result files from the Baseline Profile Gradle Plugin. (I2f678, b/285187547)

To use FTL apply the plugin to the baseline profile module in the plugin block, with:

  plugins {
      ...
      id("com.google.firebase.testlab")
  }

and then configure firebase test lab with:

  firebaseTestLab {
  // Credentials for FTL service
  serviceAccountCredentials.set(file("credentials.json"))

  // Creates one or more managed devices to run the tests on.
  managedDevices {
      "ftlDeviceShiba34" {
          device = "shiba"
          apiLevel = 34
      }
  }

  // Ensures the baseline profile is pulled from the device.
  // Note that this will be automated as well later with aosp/3272935.
  testOptions {
      results {
          directoriesToPull.addAll("/storage/emulated/0/Android/media/${android.namespace}")
      }
  }

}

Also the created FTL device needs to be added to the baseline profile extension:

  baselineProfile {
      managedDevices += "ftlDeviceShiba34"
      useConnectedDevices = false
  }

Camera: v1.4.0-rc03

October 2, 2024

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

Bug Fixes

  • Added flash/torch/3A functionalities for image captures with CameraEffect. The image captures with CameraEffect should now have the same pre-capture and post-capture processings (e.g. flash trigger, 3A convergence etc. when applicable) as image capture without any CameraEffect. (I5ff30)
  • Optimized the pinch-to-zoom smoothness in PreviewView (I04ffc)
  • Decouple Ultra HDR from 10-bit output capability, as Ultra HDR support no longer requires devices to have 10-bit output capability. (I96ff2, I0c3b3)

Camera: v1.5.0-alpha02

October 2, 2024

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

New Features

  • New APIs for querying camera features supported by the device. For example, checking if HDR and 60FPS can be enabled at the same time. It includes 2 artifacts: camera-feature-combination-query and camera-feature-combination-query-play-services. This is a compatible version of camera2's CameraManager#getCameraDeviceSetup#isSessionConfigurationSupported API with additional data provided by Google Play Service.

Bug Fixes

  • Fixed Preview/VideoCapture target frame rate issue on LEGACY level devices. The target frame rate set via the setTargetFrameRate or Camera2Interop API was always overwritten to the value provided by the AeFpsRangeLegacyQuirk. With this fix, CameraX library will respect the value set via the setTargetFrameRate or Camera2Interop API. (Ie2d32)
  • Added flash/torch/3A functionalities for image captures with CameraEffect. The image captures with CameraEffect should now have the same pre-capture and post-capture processings (e.g. flash trigger, 3A convergence etc. when applicable) as image capture without any CameraEffect. (I5ff30)
  • Excluded problematic output sizes for ImageAnalysis on Samsung SM-A057G device. When ImageAnalysis uses a resolution larger or equal to 1920x1440, it will cause black preview issue. Applied ExcludedSupportedSizesQuirk to the SM-A057G device to avoid the issue. (I63dfe,
Read more