2023-01-25
Activity: v1.7.0-alpha04
January 25, 2023
androidx.activity:activity:1.7.0-alpha04, androidx.activity:activity-compose:1.7.0-alpha04, and androidx.activity:activity-ktx:1.7.0-alpha04 are released. Version 1.7.0-alpha04 contains these commits.
New Features
- The
PickVisualMediaandPickMultipleVisualMediaActivity Result contracts will now use a Google Play services provided Photo Picker where available in cases where the Android system provided Photo Picker (e.g.,MediaStore.ACTION_PICK_IMAGES) is not available. TheisPhotoPickerAvailable()API that only detects the Android system provided Photo Picker has been deprecated. It is recommended to use the newisPhotoPickerAvailable(Context)API, which will return if either Photo Picker is available. (I55be6)
Annotation: v1.6.0-beta01
January 25, 2023
androidx.annotation:annotation:1.6.0-beta01 and androidx.annotation:annotation-jvm:1.6.0-beta01 are released with no changes from 1.6.0-alpha01.
Arch Core: v2.2.0-beta01
January 25, 2023
androidx.arch.core:core-common:2.2.0-beta01, androidx.arch.core:core-runtime:2.2.0-beta01, and androidx.arch.core:core-testing:2.2.0-beta01 are released with no changes. Version 2.2.0-beta01 contains these commits.
Browser: v1.5.0-rc01
January 25, 2023
androidx.browser:browser:1.5.0-rc01 is released. Version 1.5.0-rc01 contains these commits.
- No changes since 1.5.0-beta01.
CameraX: v1.2.1
January 25, 2023
androidx.camera:camera-*:1.2.1 is released. Version 1.2.1 contains these commits.
Bug Fixes
- Fix JPEG image corruption issue if writing Exif location data on some Samsung Android 12 devices. (b/263289024)
CameraX: v1.3.0-alpha03
January 25, 2023
androidx.camera:camera-*:1.3.0-alpha03 is released. Version 1.3.0-alpha03 contains these commits.
API Changes
- Added
CameraInfo.getIntrinsicZoomRatioto provide angle of view information relative to the default camera. (Ib300c) - Added
CameraInfo.getLensFacingto provide lens facing information. AddedCameraSelector#LENS_FACING_EXTERNALas an experimental feature for selecting external cameras. (Icaf3e) - Add
#setEffect()toCameraControllerthat allows adding effects to camera output. (I1d21f) - Add
invalidate()method toSurfaceRequest. The Surface provider can notify that the previously provided surface is no longer valid. (Idc649) - Add a
ImageProcessorAPI. This interface is for inject post-processing effects into theImageCapturepipeline. (I575c6) - Added API
Recorder.Builder.setAspectRatio()which can be combined withQualitySelectorto support more video resolutions. (I8a082) - Added
Recorder.Builder#setTargetVideoEncodingBitRateto set Target Video EncodingBitRateandRecorder#getTargetVideoEncodingBitRateto get Target Video Encoding BitRate. (I5984d)
Bug Fixes
- Fixed
ImageCapturefailed when there is no flash unit and flash mode is on. (I9e8b4, b/263391112) - Fixed JPEG image corruption issue if writing Exif location data on some Samsung Android 12 devices. (Ib7086, b/263747161, b/263289024)
- when setting torch/zoom prior before camera initialization compelets, e.g. calling
CameraController#enableTorch, the pending action is cached and submitted once the initialization compeltes. (I11e92, b/264157663)
Compose Animation: v1.4.0-alpha05
January 25, 2023
androidx.compose.animation:animation:1.4.0-alpha05, androidx.compose.animation:animation-core:1.4.0-alpha05, and androidx.compose.animation:animation-graphics:1.4.0-alpha05 are released. Version 1.4.0-alpha05 contains these commits.
Changes
- No changes in animation libraries since the last alpha, version bump only
Compose Foundation: v1.4.0-alpha05
January 25, 2023
androidx.compose.foundation:foundation:1.4.0-alpha05 and androidx.compose.foundation:foundation-layout:1.4.0-alpha05 are released. Version 1.4.0-alpha05 contains these commits.
New Features
- Added full line span support to
LazyStaggeredGrid(I28252) - Adding experimental
onHovertoClickableText(I6938f) - Introduced new experimental overloads for the
runComposeUiTestfunction andcreate*ComposeRulefunctions that acceptCoroutineContextparameters. The context will be used for the test composition and anyLaunchedEffectandrememberCoroutineScope()calls in the composition. (I10614, b/265177763)
API Changes
- Merges the pre/post APIs of
OverscrollEffectinto combined 'decorator'applyToScrollandapplyToFlingfunctions. See the updated samples in the documentation for examples of how to implement an overscroll effect with the new API shape. (I8a9c4, b/255554340) - More type/nullability of inline/deprecated-hidden functions (I24f91)
LineBreakandHyphensAPIs inTextStyleare graduated to stable. (Ic1e1d)
Bug Fixes
- The cursor in text fields will now continue to blink even when animations are disabled. (I95e70, b/265177763)
Modifier.basicMarqueenow animates even when animations are disabled in the system settings. (I23389, b/262298306, b/265177763)
External Contribution
notifyFocusedRectmethods inTextInputSessionandTextInputServiceare not deprecated again. (I23a04, b/262648050)
Compose Material: v1.4.0-alpha05
January 25, 2023
androidx.compose.material:material-*:1.4.0-alpha05 is released. Version 1.4.0-alpha05 contains these commits.
Bug Fixes
- Fixed an issue where
ModalBottomSheetLayout's HalfExpandedstate was calculated incorrectly and the sheet would appear to be floating. (I8c615, b/265610459) - Fixed a bug in
ModalBottomSheetLayoutwhere the sheet would crash when going from the hidden to a visible state in some circumstances. (Ia9265, b/265444789)
Compose Runtime: v1.4.0-alpha05
January 25, 2023
androidx.compose.runtime:runtime:1.4.0-alpha05 and androidx.compose.runtime:runtime-saveable:1.4.0-alpha05 are released. Version 1.4.0-alpha05 contains these commits.
API Changes
- More type/nullability of inline/deprecated-hidden functions (I24f91)
Compose UI: v1.4.0-alpha05
January 25, 2023
androidx.compose.ui:ui-*:1.4.0-alpha05 is released. Version 1.4.0-alpha05 contains these commits.
API Changes
- Introduced new experimental overloads for the
runComposeUiTestfunction andcreate*ComposeRulefunctions that acceptCoroutineContextparameters. The context will be used for the test composition and anyLaunchedEffectandrememberCoroutineScope()calls in the composition. (I10614, b/265177763) - Add a new API to track 1 dimensional velocity (If5a82)
FocusRequesteris now marked as@Stable. (I580ee)- Remove an experimental annotation from the
DialogPropertiesconstructor that takes ausePlatformDefaultWidthparameter. (Ic4048) - Added function to calculation position and tangent at a distance on a path - with
PathMeasure.getPosition()andPathMeasure.getTangent()(I3b47c) - Removed accidentally exposed public setter on
PlatformParagraphStyle. (I07f47) - More type/nullability of inline/deprecated-hidden functions (I24f91)
- Add
AnnotatedString.hasStringAnnotationsto query for annotations with zero-allocations. (I94dfe, b/246960758) - Added a new overload for
TextMeasurer.measurefunction which takes in aStringas text. (I47b2d, b/242705342) LineBreakandHyphensAPIs in TextStyle are graduated to stable. (Ic1e1d)
External Contribution
notifyFocusedRectmethods inTextInputSessionandTextInputServiceare not deprecated again. (I23a04, b/262648050)
Constraintlayout:
ConstraintLayout-compose, and ConstraintLayout-Core 1.1: v1.1.0-alpha06
January 25, 2023
androidx.constraintlayout:constraintlayout-compose:1.1.0-alpha06 and androidx.constraintlayout:constraintlayout-core:1.1.0-alpha06 are released. Version 1.1.0-alpha06 contains these commits.
New Features
- Add new Apis to enable the Grid Helper in Compose with JSON representation which allows composables to be placed in a 2D grid. (I968ad)
API Changes
- Add support for arc up and arc down modes
Arc.AboveandArc.Belowdirection independent arc modes toMotionLayout(I184a9) - It is now possible to constrain a baseline anchor to top/bottom anchors and vice versa. (I54628)
- Renamed
MotionLayoutScope#motionProperties(including derivatives) toMotionLayoutScope#customProperties. This is to be consistent as when setting custom properties. (Ib34c9) - It’s now possible to create multiple references in
ConstraintSetandMotionScene:val (box, text, button) = createRefsFor("box", "text","button"). Apply constraints to multiple elements withconstrain(box, button, text). Within aConstrainScope, you may now intuitively set a fixed dimension withDp.asDimension:width = 10.dp.asDimension. (I021ec, Ia0960) MotionScene()andTransition()methods are now non-Composable functions. The objects from these functions (includingConstraintSet) should now be properly comparable from each other.animateChanges = trueinConstraintLayoutcan now be used with only oneConstraintSetreference, as long as any of its properties changed on recomposition. (I7d22e)
Bug Fixes
- Fixed issue where
ConstraintLayoutalways triggered an unnecessary extra recomposition when helpers were changed. (Id83ad, b/222093277) - Fix behavior when using Intrinsics with
ConstraintLayout&MotionLayout. (I487ae, b/220527863) - Fix not being able to remeasure when the content changes. (Ibfe8a, b/219091179)
Core and Core-ktx: v1.10.0-alpha02
January 25, 2023
androidx.core:core:1.10.0-alpha02 and androidx.core:core-ktx:1.10.0-alpha02 are released. Version 1.10.0-alpha02 contains these commits.
API Changes
- Added
BuildCompatconstant forAD_SERVICESextension version (I51d98) - Add
BEHAVIOR_DEFAULTtoWindowInsetsControllerCompat.BEHAVIOR_SHOW_BARS_BY_SWIPEandBEHAVIOR_SHOW_BARS_BY_TOUCHare deprecated. (I17b61)
Emoji2: v1.3.0-beta01
January 25, 2023
androidx.emoji2:emoji2-*:1.3.0-beta01 is released. Version 1.3.0-beta01 contains these commits.
New Features
- Querying system exclusions.
- Replacing the spans for custom drawing code.
- And fixed a bug where background spans were not correctly applied behind
EmojiSopans. - This release adds APIs necessary to support
EmojiCompatin Compose. Expect compose support for emoji compat in a near future release.
Emoji2 Emojipicker: v1.0.0-alpha01
January 25, 2023
androidx.emoji2:emoji2-emojipicker:1.0.0-alpha01 is released. Version 1.0.0-alpha01 contains these commits.
New Features
- Introduced an emoji picker which provides consistent user experience with the latest emojis across Android OS OEM devices and apps. It provides the latest emoji support and emoji picker UI including skin-tone variants and emoji compat support.
API Changes
- Introduced
EmojiPickerViewclass that provides up-to-date emojis in a vertical scrollable view with a clickable horizontal header. - The emoji picker grid columns can be set via XML attribute
emojiGridColumnsor functionsetEmojiGridColumns(). - The emoji picker grid rows can be set via XML attribute
emojiGridRowsor functionsetEmojiGridRows(). - The emoji picked listener can be set via
setOnEmojiPickedListener()and the listener will be notified whenever the user clicked any emoji. - The recent emoji provider can be provided with
setRecentEmojiProvider(). This is an optional function. If the recent emoji provider isn’t set, a default recent emoji provider will be used by the library. The default behavior is defined as follows: 1) all selected emojis will be saved per-app level in shared preferences. 2) the picker will display at most 3 rows of selected emojis, deduped, in reverse chronological order. - Introduced
EmojiViewItemclass that holds the displayed emoji and its emoji variants. - Introduced
RecentEmojiProviderinterface that can be implemented to provide a recent emoji list. TherecentEmojiProvideris responsible for providing emojis in the “Recently Used” category.
Health Connect: v1.0.0-alpha10
January 25, 2023
androidx.health.connect:connect-client:1.0.0-alpha10 is released. Version 1.0.0-alpha10 contains these commits.
API Changes
ExerciseEventRecord,ExerciseLapRecord,ExerciseRepititionRecordandSwimmingStrokesRecordare no longer supported asRecordTypes. They can no longer be written or read fromHealthConnect. Remove any reference to these data types from theHealthConnectintegration. (If7ca2)- Changes in permissions APIs to accept permissions in a new string based format. This change also requires changing permission declaration to the standard android permissions format. (Ib0a2f)
Lifecycle: v2.6.0-alpha05
January 25, 2023
androidx.lifecycle:lifecycle-*:2.6.0-alpha05 is released. Version 2.6.0-alpha05 contains these commits.
Kotlin Conversions
Transformationsis now written in Kotlin. This is a source incompatible change for those classes written in Kotlin that were directly using syntax such asTransformations.map- Kotlin code must now use the Kotlin extension method syntax that was previously only available when usinglifecycle-livedata-ktx. When using the Java programming language, the versions of these methods that take anandroidx.arch.core.util.Functionmethod are deprecated and replaced with the versions that take a KotlinFunction1. This change maintains binary compatibility. (I8e14f)ViewTreeViewModelStoreOwneris now written in Kotlin. This is a source incompatible change for those classes written in Kotlin - you must now directly import and use the Kotlin extension methods onViewofandroidx.lifecycle.setViewTreeViewModelStoreOwnerandandroidx.lifecycle.findViewTreeViewModelStoreOwnerto set and find a previously set owner. This is binary compatible and remains source compatible for implementations written in the Java programming language. (Ia06d8, Ib22d8, b/240298691)- The
HasDefaultViewModelProviderFactoryinterface is now written in Kotlin. This is a source incompatible change for classes written in Kotlin - they must now override thedefaultViewModelProviderFactoryanddefaultViewModelCreationExtrasproperties rather than implementing the previous corresponding functions. (Iaed9c, b/240298691) Observeris now written in Kotlin. ItsonChanged()method now uses the namevaluefor its parameter. (Iffef2, I4995e, b/240298691)AndroidViewModel,AbstractSavedStateViewModelFactory,LifecycleService,ServiceLifecycleDispatcher, andProcessLifecycleOwnerare now written in Kotlin (I2e771, Ibae40, I160d7, I08884, I1cda7, b/240298691)
Mediarouter: v1.4.0-beta01
January 25, 2023
androidx.mediarouter:mediarouter:1.4.0-beta01 is released. Version 1.4.0-beta01 contains these commits.
API Changes
DynamicGroupRouteController.notifyDynamicRoutesChanged() now throws IllegalArgumentException when no route passed is SELECTED or SELECTING. (8f6b3e)
Bug Fixes
- Fix crash caused by an api-compliant provider service implementation returning a null route provider. (63f16d)
- Make protected broadcast receivers work on apps targeting API 33+ by marking them as non-exported. (784f8b)
- Fix some spurious nullability annotations in
OverlayListView. (472e3f) - Fix bug where
EXTRA_CLOSE_ON_CONNECTinSystemOutputSwitcherDialogController.showDialogwould cause the bluetooth settings fragment to close suddenly on wear devices. (28c9d8) - Changed to Javadoc of Output Switcher’s public methods. (f0ae94, 44d2c9)
Wear: v1.3.0-alpha04
January 25, 2023
androidx.wear:wear:1.3.0-alpha04 is released. Version 1.3.0-alpha04 contains these commits.
Bug Fixes
- We have updated the animation in
SwipeDismissFrameLayoutto be consistent with the Wear platform and Wear Compose implementations. (I7261b)
Wear Compose: v1.2.0-alpha03
January 25, 2023
androidx.wear.compose:compose-*:1.2.0-alpha03 is released. Version 1.2.0-alpha03 contains these commits.
API Changes
- We have migrated
ScalingLazyColumn(and associated classes) fromandroidx.wear.compose.material.ScalingLazyColumntoandrdoidx.wear.compose.foundation.lazy.ScalingLazyColumn(see this example for migration). This new location more closely matches that ofcompose.foundation.lazy.LazyColumnand is more natural as it is not an opinionated Material component. The change is happening now in preparation for a new Material3 library, which we will be working on in parallel with the existing Material library. (I060e7)
The following changes are part of the ScalingLazyColumn migration from Material to Foundation.Lazy:
PositionIndicatorapis targeting MaterialScalingLazyColumnhave been deprecated - please update toFoundation.Lazy ScalingLazyColumn. AdditionallyanchorTypefield was added toScalingLazyListLayoutInfo. (I29d95)ScalingLazyColumnhas been marked as deprecated in the Wear Compose Material package (I16d34)- We have updated the
ScrollAwaymodifier to useScalingLazyListStatefrom Wear ComposeFoundation.Lazyand deprecated the overload that tookScalingLazyListStatefrom Wear Compose Material. (Ifc42c) - We have updated the Dialog APIs to use
ScalingLazyListStatefromFoundation.Lazyand deprecated the overloads that used MaterialScalingLazyListState(Ic8960) - We have updated the Picker APIs to use
ScalingParamsfromFoundation.Lazyand deprecated the overloads that used MaterialScalingParams. (Idc3d8)
Bug Fixes
- We have fixed a bug that caused unnecessary recompositions in
ScalingLazyListState.centerItemIndexby ensuring that it only pushes updates when the value actually changes (Ia9f38) - We have improved the performance of
SwipeToDismissBox(I3933b) - Added benchmark tests for
ScalingLazyColumnin Wear Compose Foundation (Ie00f9) - We have updated some internal
ScalingLazyColumnclasses methods in Material to use their equivalents fromFoundation.Lazy(I38aab) - We have fixed some issues in Picker tests and add more tests for checking scroll with offset (I6ac34)
- We migrated the
ScalingLazyColumnIntegration Demos to depend onFoundation.Lazyinstead of MaterialScalingLazyColumn(Ic6caa) - We have added optional
fromDate/toDateparameters to ourDatePickerdemo (I961cd)
wear protolayout: v1.0.0-alpha02
January 25, 2023
androidx.wear.protolayout:protolayout:1.0.0-alpha02, androidx.wear.protolayout:protolayout-expression:1.0.0-alpha02, and androidx.wear.protolayout:protolayout-proto:1.0.0-alpha02 are released. Version 1.0.0-alpha02 contains these commits.
New Features
- Layout builders from
androidx.wear.tiles:tilesare moving toandroidx.wear.protolayout:protolayout. The ones inandroidx.wear.tiles:tileswill be deprecated in one of the next alpha releases.
Wear Watchface: v1.2.0-alpha06
January 25, 2023
androidx.wear.watchface:watchface-*:1.2.0-alpha06 is released. Version 1.2.0-alpha06 contains these commits.
New Features
- Work is ongoing to add support for complication platform bindings, this isn’t ready for use yet, but stay tuned!
- We’ve added XML
ComplicationSlotsupport for the new complication types, GOAL_PROGRESS and WEIGHTED_ELEMENTS.
Bug Fixes
- Fixes a leak where the watch face editor was not properly released on Samsung devices. (3b5987)
- Fixes a bug where sometimes the complications didn’t display properly when switching between a watch face with multiple favorites. (b38ece)
- Fixes a serialization bug with perOptionScreenReaderNames that lead to watch face crashes. (e9f466)
Webkit: v1.7.0-alpha01
January 25, 2023
androidx.webkit:webkit:1.7.0-alpha01 is released. Version 1.7.0-alpha01 contains these commits.
New Features
- We are adding support for Image drag in
WebView. You can enable your users to drag images out of theWebViewby adding the newDropDataContentProviderto your app's manifest. (05a1a6)
Webkit: v1.6.0
January 25, 2023
androidx.webkit:webkit:1.6.0 is released. Version 1.6.0 contains these commits.
Important changes since 1.5.0
- A new ProcessGlobalConfig API has been added to allow apps to provide configuration settings that need to be set before loading WebView, such as the WebView data directory suffix. The configuration should be set up and applied as early as possible during application startup, to ensure that it happens before any other thread can call a method that loads
WebViewinto the process. - A new CookieManagerCompat API has been added to expand android.webkit.CookieManager with a new
getCookieInfomethod, which retrieves all attributes for all cookies set on a specific URL. This differs from the existing getCookie API inCookieManagerwhich returns only the name and value attributes of the cookies. WebSettingsCompathas new methods to enable/disable the effect ofEnterpriseAuthenticationAppLinkPolicyif set by admin inWebView, and to get the current setting. This feature lets WebView open an Authentication app instead of opening the authentication URL. This feature has no effect on devices that are not managed by an enterprise policy.- Adding a new API to
WebSettingsCompatto let applications explicitly send the app package name in theX-Requested-Withheader to allowlisted origins. The header has traditionally been sent on every request fromWebView.