Skip to content

2023-11-29

Choose a tag to compare

@github-actions github-actions released this 29 Nov 21:36
· 113 commits to main since this release

Activity: v1.9.0-alpha01

November 29, 2023

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

New Features

  • ComponentActivity now implements OnUserLeaveHintProvider to allow components to callbacks for onUserLeaveHint events. (I54892)

API Changes

  • ComponentActivity has been rewritten in Kotlin. (I14f31)
  • ActivityResultCaller has been rewritten in Kotlin. (Ib02e4)
  • ActivityResultLauncher has been rewritten in Kotlin. As part of that conversion, 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. (Id4615)
  • PickVisualMediaRequest now has the same minimum API level of 19 as the PickVisualMedia Activity Result contract. (Id6e21)

Dependency Update

Annotation-Experimental: v1.4.0-alpha01

November 29, 2023

androidx.annotation:annotation-experimental:1.4.0-alpha01 is released. Version 1.4.0-alpha01 contains these commits.

Bug Fixes

  • Temporarily remove class-level autofix suggestions to work around b/301598518. (Id98b2)
  • Show warnings for Java usages of experimentally-annotated Kotlin properties (I8bd43)
  • Fix placement of autofix annotation on Kotlin methods (Id7a41)

bluetooth: v1.0.0-alpha02

November 29, 2023

androidx.bluetooth:bluetooth:1.0.0-alpha02 and androidx.bluetooth:bluetooth-testing:1.0.0-alpha02 are released. Version 1.0.0-alpha02 contains these commits.

New Features

  • Lower minSdkVersion to 21

API Changes

  • GattServerConnectFlow#updateServices becomes a suspend function (I0237d)
  • Change AdvertiseParams.durationMillis to Long (If6771)
  • Convert openGattServer to Flow (Icef54)
  • Throw ScanException on scan fail and set scanner to setLegacy(false) by default (Ib337c)
  • Throw AdvertiseException on advertise fail (I0e691)
  • Add general bluetooth exception to catch (I0130d)
  • Convert advertise to Flow and change maximum duration (I32fd8)
  • Add serviceData and serviceSolicitationUuids to ScanResult (I6d7f0)
  • Change durationMillis from Long to Duration (I89d49)
  • Add rssi, and periodicAdvertisingInterval to ScanResult (I60b51)
  • Add serviceSolicitationUuid and solicitationUuidMask to ScanFilter (Ic2206)
  • Added GattServerSessionScope#subscribedCharacteristics (I0edab)
  • Add serviceSolicitationUuids to AdvertiseParams (Ic9aa7)
  • Change AdvertiseParams.durationMillis from Int to Long (I6873f)
  • GattServerSessionScope#notify does not return but throws an exception if it fails (Ifc26f)

Bug Fixes

  • Extract scan functionality (I4d43f)

Browser: v1.8.0-beta01

November 29, 2023

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

New Features

  • Add experimental support for Minimized Custom Tabs APIs. (I67f2d)

Collection: v1.4.0-beta02

November 29, 2023

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

New Features - Improved performance of FloatFloatPair. (If5537)

Bug Fixes

Compose Animation: v1.6.0-beta02

November 29, 2023

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

Compose Compiler: v1.5.5

November 29, 2023

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

Bug Fixes

  • Fixes a crash during lookup of overridden composable types (Ib6d2c, b/297665426)
    • Add stabilityConfigurationPath to known parameters (previously bug prevented usage of configuration file flag). (b/309765121)
    • Memoization fixes (I081d1, I4d7bf)
    • Recomposition fix by accounting for Uncertain param state in intrinsic remember (b/263402091)
    • Fix debugging line information for intrinsic remember (Ic8cf5)
    • Fix crash (IR lowering failed) during overridden composable types lookup at compile time (b/297665426)

External Contribution

Compose Foundation: v1.6.0-beta02

November 29, 2023

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

Bug Fixes

  • Fix for canScroll not being updated after relayout-only scroll. (I60a86)
  • Fix for Modifier.animateItemPlacement() and LookaheadScope after small scrolls. (I3a2b7)

Compose Material: v1.6.0-beta02

November 29, 2023

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

Compose Material 3: v1.2.0-alpha12

November 29, 2023

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

API Changes

  • RangeSlider now takes a Kotlin range (e.g., 0f..1f) instead of a custom FloatRange value class. SnapFlingBehavior.kt now also uses a Kotlin range. (I025cb)
  • Mark Modifier factory functions as @Stable. (Ib109f)

Compose Material3 Adaptive: v1.0.0-alpha02

November 29, 2023

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

API Changes

  • Split navigation APIs from adaptive scaffold APIs. (Ic4045)
  • Remove GutterSize class. (I785b3)

Bug Fixes

  • Fix panes are not switched when AnimatedPane is not used (d88f181)

Compose Runtime: v1.6.0-beta02

November 29, 2023

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

Runtime Tracing: v1.0.0-beta01

November 29, 2023

androidx.compose.runtime:runtime-tracing:1.0.0-beta01 is released. Version 1.0.0-beta01 contains these commits.

Compose UI: v1.6.0-beta02

November 29, 2023

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

Core and Core-ktx: v1.13.0-alpha02

November 29, 2023

androidx.core:core:1.13.0-alpha02, androidx.core:core-ktx:1.13.0-alpha02, and androidx.core:core-testing:1.13.0-alpha02 are released. Version 1.13.0-alpha02 contains these commits.

New Features

  • Adds the OnUserLeaveHintProvider interface to allow any component to receive onUserLeaveHint events necessary for implementing picture-in-picture. This is implemented by ComponentActivity in Activity 1.9.0-alpha01. (I54892)

API Changes

  • Deprecated androidx.core.os.CancellationSignal. Usages should be replaced with the platform-provided android.os.CancellationSignal. (Id45f6, b/309499026, b/309054079)
  • The OnMultiWindowModeChangedProvider, OnNewIntentProvider, OnPictureInPictureModeChangedProvider, OnConfigurationChangedProvider, and OnTrimMemoryProvider interfaces have been converted to Kotlin to ensure that the generic parameters on the Consumer that their listener methods take have the correct nullability (they are all non-null). (Ib6237)
  • The MultiWindowModeChangedInfo and PictureInPictureModeChangedInfo classes that are sent to the Consumer added to their respective Provider interfaces are now written in Kotlin. (Ie08e2)

Dependency Update

DataStore: v1.1.0-alpha07

November 29, 2023

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

API Changes

  • Make MultiProcessDataStoreFactory methods no longer experimental by removing @ExperimentalMultiProcessDataStore annotations. (Ieee54)

Bug Fixes

  • Rollout the removal of @ExperimentalMultiProcessDataStore annotations to 1.1.0-alpha07. (I8e607)

Fragment: v1.7.0-alpha07

November 29, 2023

androidx.fragment:fragment-*:1.7.0-alpha07 is released. Version 1.7.0-alpha07 contains these commits.

Bug Fixes

  • Fixed a NullPointerException caused by setting a shared element transition and failing to set an enter/exitTransition as well. (I8472b)
  • From Fragment 1.6.2: When the Fragment of a FragmentContainerView is inflated, its states such as FragmentManager, Host, and id are now accessible in the onInflate callback. (I1e44c, b/307427423)
  • From Fragment 1.6.2: When using clearBackStack to remove a set of fragments, any nested Fragment's ViewModel will now be cleared when the parent fragment’s ViewModels are cleared. (I6d83c, b/296173018)

Games-Activity: v3.0.0-beta01

November 29, 2023

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

Games-Memory-Advice version 2.1: v2.1.0-beta01

November 29, 2023

androidx.games:games-memory-advice:2.1.0-beta01 is released. Version 2.1.0-beta01 contains these commits.

Games Performance Tuner 2.0: v2.0.0-alpha07

November 29, 2023

androidx.games:games-performance-tuner:2.0.0-alpha07 is released. Version 2.0.0-alpha07 contains these commits.

Bug Fixes

  • Fixed memory telemetry reporting sometimes reporting wrong values

Graphics Path: v1.0.0-beta01

November 29, 2023

androidx.graphics:graphics-path:1.0.0-beta01 is released. Version 1.0.0-beta01 contains these commits.

API Changes

Bug Fixes

  • Various fixes and performance improvements, including how the library deals with conics.

Media: v1.7.0

November 29, 2023

androidx.media:media:1.7.0 is released. Version 1.7.0 contains these commits.

Important changes since 1.6.0

  • Catch ForegroundServiceStartNotAllowedException in MediaButtonReceiver and forward it to onForegroundServiceStartNotAllowedException. (I0c939)
  • Add BROWSER_SERVICE_EXTRAS_KEY_FAVORITES_MEDIA_ITEM for passing Favorites media item in MediaBrowserCompat root extras. (Id3a11)
  • Add extras to set browse custom actions in MediaBrowserCompat root extras and MediaItem descriptions. (Iab163)
  • Fix IllegalStateException caused by returning null from MediaBrowserService.onLoadChildren on older Android versions.

Media2: v1.3.0-beta01

November 29, 2023

androidx.media2:media2-*:1.3.0-beta01 is released with no changes from Media2 1.3.0-alpha01. Version 1.3.0-beta01 contains these commits.

Room: v2.6.1

November 29, 2023

androidx.room:room-*:2.6.1 is released. Version 2.6.1 contains these commits.

Bug Fixes

  • Resolved issue in generated code where the default value for Double columns in EntityCursorConverter was being set to 0 instead of 0.0. A potential fix for a similar edge-case for Float type columns has also been included. (Id75f5, b/304584179)
  • Exceptions thrown from PagingSource loads will now be propagated as a LoadStateUpdate of LoadResult.Error containing the Throwable. This error state is observable through PagingDataAdapter.loadStateFlow(Views) or LazyPagingItems.loadState(Compose). Note that this marks a behavioral change where in the past load errors will bubble up as an Exception thrown by the dao method that triggered the load. (I93887, b/302708983)

Tracing: v1.2.0

November 29, 2023

androidx.tracing:tracing:1.2.0 and androidx.tracing:tracing-ktx:1.2.0 are released. Version 1.2.0 contains these commits.

Important changes since 1.1.0

  • Add trace() and traceAsync() variants with lazy string and cookie computation. Also now correctly skips Trace.end if Trace.begin throws.

Transition: v1.5.0-alpha05

November 29, 2023

androidx.transition:transition:1.5.0-alpha05 and androidx.transition:transition-ktx:1.5.0-alpha05 are released. Version 1.5.0-alpha05 contains these commits.

Bug Fixes

  • Fixed a NullPointerException caused by setting a shared element transition and failing to set an enter/exitTransition as well. (I8472b)
  • Fixed issue where animateToStart() with Slide() failed to move the View back to the start position (I698f4, b/300157785)
  • Fixed reentrancy problem in Transition which broke cancellation. (Iddcce, b/308379201)

Versionedparcelable: v1.2.0-beta01

November 29, 2023

androidx.versionedparcelable:versionedparcelable:1.2.0-beta01 is released with no changes since 1.2.0-alpha01. Version 1.2.0-beta01 contains these commits.

Wear Tooling Preview: v1.0.0

November 29, 2023

androidx.wear:wear-tooling-preview:1.0.0 is released. Version 1.0.0 contains these commits.

Features in 1.0.0

  • Add WearDevices to list valid wear devices that can be used for UI previews.

wear protolayout: v1.1.0-alpha03

November 29, 2023

androidx.wear.protolayout:protolayout-*:1.1.0-alpha03 is released. Version 1.1.0-alpha03 contains these commits.

New Features

  • Add experimental support for dynamically hiding/unhiding layout elements (I64a78)
  • Add dynamic value support to BoolProp (I2fe96)
  • Add schema version requirement annotation to ProtoLayout APIs (I0f03c)
  • Extending the API with the new option in TextOverflow for ellipsizing the Text in a fixed parent container even when max lines is not reached (but there's not enough space for Text). (I110a9)
  • Added helper method DimensionBuilders.weight for building ExpandedDimensionProp with weight. (I4f72b)
  • DynamicInstant and DynamicDuration can be used as state or platform data types. (I6819f)

API Changes

  • Update The API to hide DynamicZonedDateTime and move all its operations to DyanamicInstant (I34b94)
  • Spacer now supports Expanded dimension for width/height. (Ie7c94)
  • Support click target area extension in Renderer (I39c79)

Wear Tiles: v1.3.0-alpha03

November 29, 2023

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

New Features

  • Added a new API TileService#getActiveTilesSnapshotAsync for querying which tiles belonging to the app are active. (I6850e)

API Changes

  • Rename @TilePreview to @Preview (Ifc08a)

Wear Watchface: v1.2.0

November 29, 2023

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

Important changes since 1.1.0

  • We’ve added support some new complication types which are available for use from Android T:
    • GoalProgressComplicationData which is similar to RangedValueComplicationData except it's for progress towards a goal where min implicitly is zero, and the value is allowed to be larger than targetValue.
    • WeightedElementsComplicationData which consists of an array of Elements (pairs of weight and color) along with optional text/title/image. These might be displayed as a pie chart where the colors need to be meaningful given the context, since there typically isn't room in a complication to render labels.
  • We’ve added support for optional ColorRanges to RangedValueComplicationData. Normally complications would be rendered in colors of the watch face's choosing, but sometimes the ComplicationDataSource is best placed to set the colors e.g. when they have a particular semantic meaning. E.g. red to blue for temperature.
  • Almost every type of ComplicationData now supports SmallImages.
  • We've added ComplicationDisplayPolicy where DO_NOT_SHOW_WHEN_DEVICE_LOCKED instructs a compatible watch face to not display the complication when the device is locked.
  • From Android T, OEMs will be able to determine if a complication request is from a watch face in the list defined by the android.support.wearable.complications.SAFE_WATCH_FACES metadata in their provider’s manifest by ComplicationRequest#isForSafeWatchFace. The provider will need the com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE permission to receive anything other than TargetWatchFaceSafety.UNKNOWN`.
  • UserStyleFlavors has become a non-experimental feature.

Webkit: v1.10.0-alpha01

November 29, 2023

androidx.webkit:webkit:1.10.0-alpha01 is released. Version 1.10.0-alpha01 contains these commits.

New Features

  • Added a new API to WebSettingsCompat to control the experimental Android WebView Media Integrity API behaviour by either disabling the API entirely, or restrict sharing the application identity in the API response. This can be toggled for all origins and on a per origin basis.

Webkit: v1.9.0

November 29, 2023

androidx.webkit:webkit:1.9.0 is released. Version 1.9.0 contains these commits.

Important changes since 1.8.0

  • Added a new multi-profile API for WebViews.
  • Added an API to inject and run Javascript before page load.
    • The WebViewCompat#addDocumentStartJavascript API allows apps to inject scripts into a WebView which are guaranteed to run before any page scripts are executed. The API allows the app to specify a target list of origins for the script to be enabled on, ensuring that it only runs on intended pages. Unlike WebView#evaluateJavascript, this API will allow execution of scripts in embedded Iframes when they load. Apps can use this new API in combination with WebViewCompat#addWebMessageListener to set up two-way communication with JavaScript in the page in a reliable way.
  • Added APIs to modify how Privacy Sandbox Attribution Reporting events are registered.
    • We introduced a new API WebSettingsCompat#setAttributionRegistrationBehavior which allows developers to configure whether attribution sources and triggers are registered as coming from the app itself or coming from the web content in the WebView. This method can also be used to disable Attribution Reporting in WebView. Additionally we added a new API WebSettingsCompat#getAttributionRegistrationBehavior to get the current behavior.
    • For more information see the Privacy Sandbox documentation.
  • Added APIs to override user-agent metadata for client hints.

WorkManager: v2.9.0

November 29, 2023

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

Important changes since 2.8.0

  • Observability via Flow-s. Instead of LiveData, Worker's progress now can be observed via Flow’s via WorkManager.getWorkInfosFlow and similar methods.
  • Now WorkManager provides a hint on why a worker was previously stopped. It can be queried from a worker itself via getStopReason() method or from WorkInfo via getStopReason().
  • Precise scheduling of periodic workers via setNextScheduleTimeOverride. This allows dynamic calculation of the next Periodic work schedule, which can be used to implement advanced features like adaptive refresh times, custom retry behavior, or making a newsfeed worker run before the user wakes up every morning without drift. ExistingPeriodicWorkPolicy.UPDATE should be used with these techniques to avoid canceling a currently-running worker while scheduling the next one.
  • WorkManager’s testing with threading matching production. ExecutorsMode.PRESERVE_EXECUTORS can be used in initializeTestWorkManager to preserve executors set in Configuration and to use the real main thread.
  • Coroutines APIs such as CoroutineWorker have been moved from additional artifact work-runtime-ktx to the main artifact work-runtime. work-runtime-ktx is now empty.

API Changes

  • stopReason was added to WorkInfo. It makes stopReason available after the worker has run. It could be helpful in the reporting stopReason in a usable way, because once a worker has been stopped, an app itself could be killed very quickly. (I21386)
  • Allow Clock to be set via config and used to drive execution sequencing of Worker tests. (Ic586e)
  • getStopReason() method was added to ListenableWorker that gives a hint why the worker was stopped. (I07060)
  • Added WorkManagerTestInitHelper#closeWorkDatabase() to avoid Closeguard's warning about leaked resources. (Ia8d49)
  • WorkInfo's constructor is public now, which can be useful in testing. (Ia00b6, b/209145335)
  • work-runtime-ktx is now empty, CoroutineWorker and other Kotlin specific utilities are now available in the main work-runtime artifact. (I71a9a)
  • Added setNextScheduleTimeOverride method, which allows accurate setting of periodic work schedules (I3b4da)
  • Added getNextScheduleTimeMillis to get scheduled run time info is added to WorkInfo. (I797e4)
  • Initial delay and periodicity info are added to WorkInfo. (I52f2f)
  • Added method observe workers via Flows via methods getWorkInfosByTagFlow, getWorkInfoByIdFlow, getWorkInfosForUniqueWorkFlow, getWorkInfosFlow (If122a)
  • Added missing @RequiresApi(...) annotations to Constraints' constructors and properties. They are now aligned with corresponding annotations on setters in Constraints.Builder that existed from early versions of WorkManager. (I6d7d2)
  • WorkManager now has a separate limit for content uri workers to give them guaranteed slots in JobScheduler to prevent missing content updates under the high load. The limit can be configured via Configuration.Builder.setContentUriTriggerWorkersLimit. (Ic128f)
  • Constraints are added to WorkInfo. (I162c0)