2022-08-24
Activity: v1.6.0-rc01
August 24, 2022
androidx.activity:activity:1.6.0-rc01, androidx.activity:activity-compose:1.6.0-rc01, and androidx.activity:activity-ktx:1.6.0-rc01 are released. Version 1.6.0-rc01 contains these commits.
Bug Fixes
- Initializing an
OnBackPressedDispatcherwill no longer causeClassVerificationErrors when using SDK versions prior to 33. (Ic32e1) - Classes that override
ComponentActivity’sonPictureInPictureModeChanged()callback will now always have their callbacks dispatched. (Ib7fdb)
Annotation-Experimental: v1.3.0-rc01
August 24, 2022
androidx.annotation:annotation-experimental:1.3.0-rc01 is released. Version 1.3.0-rc01 contains these commits.
- No changes from the previous release. Implementation has been frozen for RC.
Annotation: v1.5.0-beta01
August 24, 2022
androidx.annotation:annotation:1.5.0-beta01 is released. Version 1.5.0-beta01 contains these commits.
- No changes from previous release. API surface has been frozen for beta.
AppSearch: v1.1.0-alpha02
August 24, 2022
androidx.appsearch:appsearch-*:1.1.0-alpha02 is released. Version 1.1.0-alpha02 contains these commits.
New Features
- Sped up Optimize process using index compaction rather than rebuilding index from scratch
- Changed native logging tag from "icing" to "AppSearchIcing", log INFO messages by default
API Changes
- Adds new
PropertyPathobject for working with paths, and newaddProjectionmethods to acceptPropertyPath. (I45588) - Added
builtin:ThingtoAppSearchbuiltin types (I55427) - Prevent empty property names in
GenericDocumentsooner – previously they were prevented at indexing time, now they are prevented atGenericDocument.Builder.build()time (I9e780)
Bug Fixes
- Removed unnecessary string formatting to improve RELEVANCE scoring performance
- More efficient pagination when encountering unreadable or deleted documents
- Implemented garbage collection for abandoned queries
- Fix nested indexing support for Documents. Previously indexNestedProperties was ignored. (Iae9a6)
External Contribution
- Shea Smith: Fix nested indexing support for Documents. (Iae9a6)
Benchmark: v1.2.0-alpha02
August 24, 2022
androidx.benchmark:benchmark-*:1.2.0-alpha02 is released. Version 1.2.0-alpha02 contains these commits.
API Changes
- Default to
am force stopforMacrobenchmarkScope.killProcess(), even when rooted, except during Baseline Profile generation. This can be overridden with an optional boolean argument. (02cce9, b/241214097)
Bug Fixes
- Support baseline profile generation for System apps. (I900b8, b/241214097)
- Support checking for ODPM power metrics on unrooted devices. (a38c78, b/229623230)
CameraX: v1.2.0-beta01
August 24, 2022
androidx.camera:camera-*:1.2.0-beta01 is released. Version 1.2.0-beta01 contains these commits.
New Features
- New library
camera-mlkit-vision. Easily integrate CameraX with many MLKit features, including barcode scanning, face detection, text detection, etc. Please find the sample code here. - New experimental Zero-Shutter Lag API. Optimizes capture pipeline to have better latency while keeping good image quality. When the capture mode is set to CAPTURE_MODE_ZERO_SHUTTER_LAG, the latency between the shutter button is clicked and the picture is taken is expected to be minimized, compared with other capture modes. On devices that don’t support ZERO_SHUTTER_LAG, it’ll fallback to CAPTURE_MODE_MINIMIZE_LATENCY.
- Made
ImageAnalysis.AnalyzerandMLKitAnalyzeras official APIs. - Exposed API for setting location metadata to the saved video.
- Rename
ImageAnalysis.Analyzer#getTargetResolutionOverride()toImageAnalysis.Analyzer#getDefaultTargetResolution().
Bug Fixes
- Fixed Alps k61v1_basic_ref image capture issue. The captured JPEG images from HAL have incorrect Exif metadata. The Exif metadata doesn't have the 0xffd9 or 0xffda tag to make
ExifInterfacecorrectly parse the attributes. Capturing the images in YUV format and then compressing them to JPEG output images to workaround this issue. (I45abb)
Compose Animation: v1.3.0-beta01
August 24, 2022
androidx.compose.animation:animation:1.3.0-beta01, androidx.compose.animation:animation-core:1.3.0-beta01, and androidx.compose.animation:animation-graphics:1.3.0-beta01 are released. Version 1.3.0-beta01 contains these commits.
Compose Foundation: v1.3.0-beta01
August 24, 2022
androidx.compose.foundation:foundation:1.3.0-beta01 and androidx.compose.foundation:foundation-layout:1.3.0-beta01 are released. Version 1.3.0-beta01 contains these commits.
API Changes
- Removed
pointerPositionfromOverscrollEffect- effects that care about pointer position can useModifier.pointerInput { }in theeffectModifierto get the current pointer position instead. (I9f606, b/241239306) - Exposed
AwaitPointerEventScope#awaitLongPressOrCancellationas additional building block for more complex gesture detection (I04374, b/181577176) - Introduced
lazyListSnapLayoutInfoProviderto enable snapping in Lazy Lists. (I3ecdf) - Introduced
SnapFlingBehavior, a fling behavior that enables list snapping. Provide an instance ofSnapLayoutInfoProviderwith information about your snapping layout. (Ie754c)
Compose Material: v1.3.0-beta01
August 24, 2022
androidx.compose.material:material-*:1.3.0-beta01 is released. Version 1.3.0-beta01 contains these commits.
Behavior breaking change
Maximum supported elevation in dialogs and popups has been reduced to 8dp.
The maximum supported elevation for Compose dialogs and popups has been reduced from 30dp to 8dp. This change affects both material and ui custom dialogs and popups. This change is made to mitigate an accessibility bug on Android versions below S, and to ensure that accessibility services within those windows are able to interact with the content inside the dialog or popup.
You will only be impacted by this change if you are creating a custom dialog or popup implementation with an elevation set to levels higher than 8dp. Consider lowering the elevation of your dialog or popup. If you need to opt-out from this new behavior, consider forking your own dialog or popup with the desired elevation set. This is not recommended, as accessibility might be negatively impacted and it is on the developer to ensure the bottom part of the dialog or popup is interactable and readable by accessibility services.
Compose Material 3: v1.0.0-beta01
August 24, 2022
androidx.compose.material3:material3:1.0.0-beta01 and androidx.compose.material3:material3-window-size-class:1.0.0-beta01 are released. Version 1.0.0-beta01 contains these commits.
API Reference
To see latest theming, component and other composables available check out the Compose Material 3 API reference overview.
API Changes
- Updated the Material 3 top app bar to snap into a fully collapsed to a fully extended state. Also, updated the
TopAppBarDefaultsbehavior function to be Composables and provide default values for their top app bar state and animation spec. (I642b3) - Updated FAB component signatures to match surface API (I3afaa)
- Added insets Build-in support for Top app bars, drawers, navigation bar and rail. These components, when used separately or with Scaffold will automatically handle insets for developers. Note: This change doesn't add automatic handling of status bar icons and transparency of the status and navigation bars. Please, continue to do it manually to ensure the best edge-to-edge experience. (I7e4e6, b/183161866)
- Updated component defaults to reduce API surface for future flexibility and performance improvements. (I31820)
- Reordered chip and navigation drawer sheet parameters to maintain consistency within the API (I45d0b)
- Removed
startIndentfrom Divider and moved color to be the last parameter.(If7be2)
Compose Runtime: v1.3.0-beta01
August 24, 2022
androidx.compose.runtime:runtime-*:1.3.0-beta01 is released. Version 1.3.0-beta01 contains these commits.
API Changes
- A
findmethod was added toCompositionDatato allow developer tools using this API to quickly find a sub-group of composition using its identity. (I5794f)
Compose UI: v1.3.0-beta01
August 24, 2022
androidx.compose.ui:ui-*:1.3.0-beta01 is released. Version 1.3.0-beta01 contains these commits.
Modifier Node Refactor
The layer which handles Modifier/Modifier.Element instances and coordinates their behavior on LayoutNodes has been majorly refactored. As it stands this was a refactor which did not affect the public API of any of the many modifiers in Compose, and can be viewed as an implementation-only change. Despite that, this is an important change for various reasons. (Ie4313)
Change Summary
The added experimental Modifier.Node APIs provide an abstraction that allows for state to be maintained on an instance that will be retained with the lifecycle of the layout node, and will be allocated per-layout-node and per-usage of the corresponding Modifier.Element that produced it.
Broadly speaking, this abstraction provides an alternative mechanism to produce stateful modifiers without relying on the mechanics of the Modifier.composed API.
Risk
This change is strictly binary compatible with prior releases, and is intended to be backwards compatible in terms of observable behavior as much as practical and reasonable. That said, there are few subsystems of compose this refactor did not touch, and it is likely that behavior has changed in ways that were not covered by our tests and have not yet been found and fixed.
Please upgrade to this release with caution. If you believe this has broken something for you, please let us know.
Experimental APIs
Various experimental APIs have been added, all relating to the new concept of a "Modifier Node". Modifier.Node’s are created as a result of
fun modifierElementOf(…): Modifierabstract class ModifierNodeElementabstract class Modifier.Nodeabstract class DelegatingNodeinterface LayoutModifierNodeinterface DrawModifierNodeinterface SemanticsNodeinterface PointerInputNodeinterface ModifierLocalNodeinterface ParentDataModifierNodeinterface LayoutAwareModifierNodeinterface GlobalPositionAwareModifierNodeinterface IntermediateLayoutModifierNode
Behavior breaking change
Maximum supported elevation in dialogs and popups has been reduced to 8dp.
The maximum supported elevation for Compose dialogs and popups has been reduced from 30dp to 8dp. This change affects both material and ui custom dialogs and popups. This change is made to mitigate an accessibility bug on Android versions below S, and to ensure that accessibility services within those windows are able to interact with the content inside the dialog or popup.
You will only be impacted by this change if you are creating a custom dialog or popup implementation with an elevation set to levels higher than 8dp. Consider lowering the elevation of your dialog or popup. If you need to opt-out from this new behavior, consider forking your own dialog or popup with the desired elevation set. This is not recommended, as accessibility might be negatively impacted and it is on the developer to ensure the bottom part of the dialog or popup is interactable and readable by accessibility services.
API Changes
- Fixed an issue where
painterResourcewouldn't update on configuration changes (I58e73, b/228862715) rememberTextMeasurerno longer takesFontFamily.Resolver,Density, orLayoutDirectionparameters. Please use theTextMeasurerconstructor to provide custom values for these parameters. (Ia1da3)- Added
DialogProperties.decorFitsSystemWindowsproperty to allow Dialogs to supportWindowInsets. (I57742, b/229378542) - Moved font constructors back to original kotlin file to retain binary compatibility. No change from last stable release. (Ieb2f3)
- Removed unnecessary operator from several equals definitions - this has no effect. (I6c309)
FontVariation.Settingis a sealed interface, to allow future clamping APIs. (I11021, b/143703328)- Add
CompositionGroup.findParameterstoSlotTree.kt. This allows tools to retrieve parameters for aCompositionGroupwithout having to parse the entire slot table. (I124fe)
Core and Core-ktx: v1.9.0-rc01
August 24, 2022
androidx.core:core:1.9.0-rc01 and androidx.core:core-ktx:1.9.0-rc01 are released. Version 1.9.0-rc01 contains these commits.
Bug Fixes
IntentSanitizer.sanitizeByFilteringno longer writes to the log when filtering (69b3b55)
Core Google Shortcuts: v1.1.0-alpha02
August 24, 2022
androidx.core:core-google-shortcuts:1.1.0-alpha02 is released. Version 1.1.0-alpha02 contains these commits.
New Features
- Update dependency from
com.google.firebase:firebase-appindexingtocom.google.android.gms:play-services-appindex. Developers who use this new version should not externally depend oncom.google.firebase:firebase-appindexing, as the two libraries are now incompatible.
Fragment: v1.6.0-alpha02
August 24, 2022
androidx.fragment:fragment:1.6.0-alpha02, androidx.fragment:fragment-ktx:1.6.0-alpha02, and androidx.fragment:fragment-testing:1.6.0-alpha02 are released. Version 1.6.0-alpha02 contains these commits.
Bug Fixes
- From Fragment
1.5.2: Fixed an issue where executing apopBackStack()and areplace()transaction at the same time could cause exiting fragments to run the wrongAnimation/Animator. (Ib1c07, b/214835303)
Health Connect: v1.0.0-alpha04
August 24, 2022
As of 1.0.0-alpha04, Health Connect has moved from the previous group of androidx.health into androidx.health.connect. For previous versions of Health Connect, please visit the androidx.health page.
androidx.health.connect:connect-client:1.0.0-alpha04 is released. Version 1.0.0-alpha04 contains these commits.
New Features
- Included optional debug logs builtin for API calls (link)
API Changes
- Renamed Metadata
clientIdtoclientRecordId,clientVersiontoclientRecordVersion. (link) - Made Metadata uid more friendly to readers, no longer nullable. (link)
- Added pounds to Mass unit (link)
- Renamed
DeletionChange.deleteUidto uid (link) - Rename Permission -> HealthPermission. This avoids ambiguity with Android Framework permissions. (link)
Bug Fixes
- Fixed regression issues with incorrect calories unit with Energy (link)
- Fixed regression issue with aggregation for few record types (link)
Room: v2.5.0-alpha03
August 24, 2022
androidx.room:room-*:2.5.0-alpha03 is released. Version 2.5.0-alpha03 contains these commits.
New Features
- Added a new shortcut annotation,
@Upsert, which attempts to insert an entity when there is no uniqueness conflict or update the entity if there is a conflict. (I7aaab, b/241964353)
Bug Fixes
- Room will now throw a
SQLiteConstraintExceptioninstead of aIllegalStateExceptionduring an auto-migration foreign key constraint check. (I328dd) - Fix a Kotlin source incompatible change for getter / properties of
getOpenHelper,getQueryExecutorandgetTransactionExecutor. (Iad0ac)
Sqlite: v2.3.0-alpha05
August 24, 2022
androidx.sqlite:sqlite:2.3.0-alpha05, androidx.sqlite:sqlite-framework:2.3.0-alpha05, and androidx.sqlite:sqlite-ktx:2.3.0-alpha05 are released. Version 2.3.0-alpha05 contains these commits.
API Changes
- The library group androidx.sqlite sources has been converted from Java to Kotlin. Be aware that because androidx.sqlite had some missing nullability annotations you might experience source incompatibility errors if your sources are in Kotlin and the code was inferring the wrong nullability. Please file a bug if there are any significant incompatibility. (b/240707042)
Tracing Perfetto: v1.0.0-alpha02
August 24, 2022
androidx.tracing:tracing-perfetto:1.0.0-alpha02, androidx.tracing:tracing-perfetto-binary:1.0.0-alpha02, and androidx.tracing:tracing-perfetto-common:1.0.0-alpha02 are released. Version 1.0.0-alpha02 contains these commits.
Bug Fixes
- Several improvements to Perfetto service initialization
- Improved handling of a no-response case by introducing a dedicated exit code: RESULT_CODE_CANCELLED.
- Improved handling of parsing errors.
- Made
EnableTracingResponse.requiredVersionnullable, as we cannot know the version if we cannot communicate with the package. (I5ba20)
Wear: v1.3.0-alpha03
August 24, 2022
androidx.wear:wear:1.3.0-alpha03 is released. Version 1.3.0-alpha03 contains these commits.
New Features
ArcLayoutnow supports expansion weights which operate in a similar way to regular Layout weights. This means you can specify the relative size of child elements without having to compute their angles directly. We’ve also added a best effortMaxAngleDegreeswhich is respected when expanding child elements with weights. E.g. you could clamp the arc with several children with weights to 90 degrees, this would also respect the space taken by any non-expanded elements..
API Changes
- We've added weight to
ArcLayout.LayoutParamswhich allows a widget to expand to fill the available space, if there's more than one widget then their share of the available space is proportional to their weight. In addition we've addedArcLayout.setMaxAngleDegreesso you can for example cap the expansion at 90 degrees (NB this does not affect layout of any fixed sized child widgets). FinallyArcLayout.Widgetnow hassetSweepAngleDegreeswhich allows theArcLayoutto inform a Widget with a non-zero weight of its size. (I75f24) - Updated nullability of
setColorFilter(I99ddf, b/236498063)
Wear Compose: v1.1.0-alpha04
August 24, 2022
androidx.wear.compose:compose-foundation:1.1.0-alpha04, androidx.wear.compose:compose-material:1.1.0-alpha04, and androidx.wear.compose:compose-navigation:1.1.0-alpha04 are released. Version 1.1.0-alpha04 contains these commits.
API Changes
- We have updated a number of the default colors in the MaterialTheme in order to improve accessibility as the original colors did not have sufficient contrast resulting in difficulties for users to differentiate chip/card/button backgrounds from the theme background color. The updated colors are surface(0xFF202124->0xFF303133), onPrimary(0xFF202124->0xFF303133), onSecondary(0xFF202124->0xFF303133), primaryVariant(0xFF669DF6->0xFF8AB4F8) and onError(0xFF202124->0xFF000000). The changes in colors though relatively subtle may impact existing screenshot tests. (81ab09)
Bug Fixes
- Fix a logic bug in
ScalingLazyColumnthat could result in lists with a small (typically exactly 2) number of list items not completing initialization and as a result being transparent. (504347)
Wear Compose: v1.0.1
August 24, 2022
androidx.wear.compose:compose-foundation:1.0.1, androidx.wear.compose:compose-material:1.0.1, and androidx.wear.compose:compose-navigation:1.0.1 are released. Version 1.0.1 contains these commits.
Bug Fixes
- Fix a logic bug in
ScalingLazyColumnthat could result in lists with a small (typically exactly 2) number of list items not completing initialization and as a result being transparent. (076c61)
Wear Tiles: v1.1.0
August 24, 2022
androidx.wear.tiles:tiles-*:1.1.0 is released. Version 1.1.0 contains these commits.
Important changes since 1.0.0
- This is the first stable release that contains the Tiles Material library (read more on our blog).
- This library contains components and layouts that are in-line with Material guidelines and easy to use. The included components are
Button,Chip,CompactChip,TitleChip,CircularProgressIndicator,Text.All these components have their own colors object that can be built with the main Colors class to easily apply the same theme over all components. In addition to colors, there is a Typography class to easily get FontStyle objects using the typography name. - Besides components, there are recommended tile layouts -
PrimaryLayout,EdgeContentLayout,MultiButtonLayout,MultiSlotLayout. All layouts have recommended padding and styles applied that are within Material guidelines. - For a list of the components and layouts in Tiles Material library see the release notes for Tiles.
Webkit: v1.6.0-alpha01
August 24, 2022
androidx.webkit:webkit:1.6.0-alpha01 is released. Version 1.6.0-alpha01 contains these commits.
New Features
- Added APIs in
WebSettingsCompatto enable/disable the effect ofEnterpriseAuthenticationAppLinkPolicyif set by admin inWebView. This feature letsWebViewopen an Authentication app instead of opening the authentication URL. This feature has no effect on devices that are not managed by an enterprise policy.
Webkit: v1.5.0
August 24, 2022
androidx.webkit:webkit:1.5.0 is released. Version 1.5.0 contains these commits.
Important changes since 1.4.0
- A new
setAlgorithmicDarkeningAllowedAPI onWebSettingsCompatreplaces the oldsetForceDarkandsetForceDarkStrategyAPIs. Apps targeting SDK 33 and higher (T) should use the new API, as the old API will no longer have any effect for those apps. - An allow-list of URLs to use the configured proxy can now be set through
ProxyCofig.Builderby settingsetReverseBypassEnabledtotrue. When this is in effect, all other URLs will bypass the configured proxy.