2022-08-01
Activity: v1.5.1
July 27, 2022
androidx.activity:activity:1.5.1, androidx.activity:activity-compose:1.5.1, and androidx.activity:activity-ktx:1.5.1 are released. Version 1.5.1 contains these commits.
Bug Fixes
The
ActivityResultRegistrywill no longer return a result to theActivityResultCallbackwhen thelaunch()call throws anyExceptionand the callback was registered without aLifecycleOwner. (Ia7ff7, b/238350794)ComponentActivitywill now properly dispatch menu calls toonPrepareOptionMenu(),onCreateOptionsMenu()andonOptionsItemSelected()overrides without the need to call the super function. (Ie33c5, b/238057118)
Dependency update
- The
Activitylibrary now depends on the Lifecycle2.5.1. (If6697)
Annotation: v1.5.0-alpha01
July 27, 2022
androidx.annotation:annotation:1.5.0-alpha01 is released. Version 1.5.0-alpha01 contains these commits.
New Features
- Annotation library has been fully migrated to Kotlin sources, resulting in support for Kotlin-specific target use sites and other Kotlin-compatible annotation features.
Annotation-Experimental: v1.3.0-alpha01
July 27, 2022
androidx.annotation:annotation-experimental:1.3.0-alpha01 is released. Version 1.3.0-alpha01 contains these commits.
API Changes
- Add support for package-level use of
@androidx.annotation.OptIn(I24d58)
Appcompat: v1.5.0-rc01
July 27, 2022
androidx.appcompat:appcompat:1.5.0-rc01 and androidx.appcompat:appcompat-resources:1.5.0-rc01 are released. Version 1.5.0-rc01 contains these commits.
Bug Fixes
- Fixes an issue where AppCompat’s context wrapper reused the application context's backing resource implementation, resulting in
uiModebeing overwritten on the application context. (Idf9d5)
Benchmark: v1.2.0-alpha01
July 27, 2022
androidx.benchmark:benchmark-*:1.2.0-alpha01 is released. Version 1.2.0-alpha01 contains these commits.
New Features
- New tracing-perfetto-common component allowing tooling to enable Perfetto SDK tracing in an app that exposes it (I2cc7f)
Added
androidx.benchmark.enabledRulesinstrumentation argument to enable filtering macrobenchmark runs to just benchmarks, or just baseline profile generation. Pass in 'Macrobenchmark', or 'BaselineProfile' to just run one type of test, e.g. when just generatingBaselineProfileson an emulator. Comma-separated list also Supported. (I756b7, b/230371561)E.g. in Your macrobenchmark's build.gradle:
android { defaultConfig { testInstrumentationRunnerArgument 'androidx.benchmark.enabledRules', 'BaselineProfile' } }Or from the Gradle command line:
./gradlew macrobenchmark:cC -P android.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=BaselineProfile
API Changes
- Added new
PowerMetricfor measuring energy and power tasks in benchmarks. (I9f39b, b/220183779) - Added a new compilation mode
CompilationMode.Ignoreto skip profile reset and compilation. (Ibbcf8, b/230453509) - Added a new parameter to
BaselineProfileRule#collectBaselineProfileto filter output file by package names (If7338, b/220146561) - Enables developer to discharge device to measure power drain. (I6a6cb)
- Added the ability to clear shader cache in
MacrobenchmarkScope. (I32122) - Enables developer to configure display of metric type and detail desired subsystem categories. (I810c9)
- Previously an
UnsupportedOperationExceptionwas thrown in the benchmark if run on an unsupported device. Now UOE only occurs if the metric is used on the unsupported device (ie:PowerMetric.configure). (I5cf20, b/227229375) - Added
TotalPowerMetricandTotalEnergyMetricfor measuring total power and energy in each system category in macrobenchmarks. (I3b26b, b/224557371)
Bug Fixes
- Fixed an issue where compiled methods were not correctly being reset between each macrobenchmark on unrooted builds. This unfortunately requires reinstalling the apk each iteration, which will clear application data for each macrobenchmark. (I31c74, b/230665435)
- Fix trace recording crash on API 21/22 (If7fd6, b/227509388, b/227510293, b/227512788)
- Overhaul activity launch completion detection to fix 'Unable to read any metrics' exception in startup macrobenchmarks. (Ia517c)
CameraX: v1.2.0-alpha04
July 27, 2022
androidx.camera:camera-*:1.2.0-alpha04 is released. Version 1.2.0-alpha04 contains these commits.
API Changes
- Rename
ImageAnalysis.Analyzer#getTargetResolutionOverride()toImageAnalysis.Analyzer#getDefaultTargetResolution(). The behavior is also changed so that the value returned by this method can be overridden by the value ofImageAnalysis#setTargetResolution(). (If1d36) - Exposed API for setting location metadata to the saved video. An
android.location.Locationobject can be set via new APIandroidx.camera.video.OutputOptions.Builder.setLocation(Location). (I313a0, b/204197544)
Bug Fixes
- Fix the issue to take picture with unbind preview (Ie70b6, b/235119898)
- Fixed crash in
Recorderwhen attempting to record while audio source is unavailable. (I9f652)
Car App: v1.3.0-alpha01
July 27, 2022
androidx.car.app:app:1.3.0-alpha01, androidx.car.app:app-projected:1.3.0-alpha01, androidx.car.app:app-automotive:1.3.0-alpha01, and androidx.car.app:app-testing:1.3.0-alpha01 are released. Version 1.3.0-alpha01 contains these commits.
Features annotated with API level 5 are compatible with Android Auto 7.9 and above.
New Features
- API Level 5: new
MapTemplatethat can be used by navigation apps to display pane or list content alongside a map (If5826, If44b8) - API Level 5: new
CarAudioRecordAPI to allow recording audio input via the host vehicle's microphone (I5e71a) - API Level 5: new
SuggestionManagerAPI to allow apps to provide suggestions to the host (I5c103) - API Level 5: new
AlertAPI to display in context notifications on theNavigationTemplate(I163a7, I5ad70) - API Level 5: new
HeaderandMapControllercomponents to facilitate re-use across templates (If5826) - Added
androidx.car.app.category.POIas a category for enabling POI apps (and deprecatedandroidx.car.app.category.PARKINGandandroidx.car.app.category.CHARGING) (I59da1)
API Changes
- API Level 5: new
onClickmethod in theSurfaceCallbackinterface to allow for tap on map interactivity (Ia9777) - API Level 5: new flags
Action.FLAG_IS_PERSISTENTandAction.FLAG_DEFAULTto describeActions (I96318, I5ad70) - API Level 5: new enabled/disabled state for the
Action,Row, andTogglecomponents (host support coming around the 1.3.0-beta01 release of the library) (Id8a09) - API Level 5: Favor the new
Headercomponent viasetHeaderon thePlaceListNavigationTemplate.BuilderandRoutePreviewNavigationTemplate.Builder, deprecating the existingsetTitleandsetHeaderActionmethods (I30e6a) - API Level 5: new
setOnContentRefreshListnermethod on thePlaceListMapTemplate.BuilderandPlaceListNavigationTemplate.Builderfor use with implementations of the newOnContentRefreshListnerinterface. - API Level 5: New
setTripTextandsetTripIconon theTravelEstimate.Builderto customise the travel estimate card (Idcc6d, Ic620d) - Add support for
CarIconSpans in thePaneTemplate's title (Ia1ee0) - Add support for
CarIconSpans in aRow's title and text (Ic1e3c) - Map
ActionStrips can now have up to four actions (If3522) - Update Car App API level to 5 (I26b8e)
- Headers/titles are now optional for the
PlaceListMapTemplate,PlaceListNavigationTemplate,RoutePreviewNavigationTemplate,GridTemplate,ListTemplate,LongMessageTemplate,MessageTemplate,PaneTemplate, andSignInTemplate(I2078d, Icadde)
Bug Fixes
- Updated
PaneTemplateimage sizing rules to be a square bounding box (Idd72e) - Fixed an exception that happens if the screen stack is modified after
State.DESTROYED. (I3c8eb) - Added a null check for retriving the app icon (I3f710)
- Update Car Hardware API to use
STATUS_UNKNOWNinstead ofSTATUS_UNAVAILABLEby default (Ic9444) - Check if display exists before creating surface (Ice027a)
- Fix
CarValue.equals()bug involvingSTATUS_UNIMPLEMENTED(I24451)
Collection: v1.3.0-alpha02
July 27, 2022
androidx.collection:collection:1.3.0-alpha02 and androidx.collection:collection-ktx:1.3.0-alpha02 are released. Version 1.3.0-alpha02 contains these commits.
API Changes
SparseArrayCompatis now available to non-jvm platforms from the common artifact (Ic9bd0, b/219589118, b/228347315)CircularIntArrayis now available to non-jvm platforms from the common artifact (I3d8ef, b/228344943)LongSparseArrayis now available to non-jvm platforms from the common artifact (I73149, b/228347315)
Compose Animation: v1.2.0
July 27, 2022
androidx.compose.animation:animation:1.2.0, androidx.compose.animation:animation-core:1.2.0, and androidx.compose.animation:animation-graphics:1.2.0 are released. Version 1.2.0 contains these commits.
Important changes since 1.1.0
- Compose animation now supports 'Animator duration scale' setting from Developer Options.
- A large selection of new experimental easing curves.
AnimatedImageVectornow supportsrepeatCountandrepeatMode
Compose Animation: v1.3.0-alpha02
July 27, 2022
androidx.compose.animation:animation:1.3.0-alpha02, androidx.compose.animation:animation-core:1.3.0-alpha02, and androidx.compose.animation:animation-graphics:1.3.0-alpha02 are released. Version 1.3.0-alpha02 contains these commits.
Compose Compiler: v1.3.0-rc01
July 27, 2022
androidx.compose.compiler:compiler:1.3.0-rc01 is released. Version 1.3.0-rc01 contains these commits.
Compose Foundation: v1.2.0
July 27, 2022
androidx.compose.foundation:foundation:1.2.0 and androidx.compose.foundation:foundation-layout:1.2.0 are released. Version 1.2.0 contains these commits.
Important changes since 1.1.0
LazyVerticalGridandLazyHorizontalGridare stable now.- You can now specify a content type for items in Lazy lists and grids. This will allow the components to reuse elements more efficiently.
- Lazy lists and grids now have
userScrollEnabledparam which allows to disable scrolling via the user gestures. - A new experimental API called
LazyLayoutwas added. It It is the API we use internally to power Lazy lists and grids. OverscrollEffectAPI has been introduced as experimental. You can define custom overscroll effects as well as adding a standard platform one to custom scrollable containers.- Nested scrolling interoperability APIs have been introduced to allow for interoperability between views and compose scrolling actors.
- Mouse and trackpad scrolling has been added to all scrolling containers.
Compose Foundation: v1.3.0-alpha02
July 27, 2022
androidx.compose.foundation:foundation:1.3.0-alpha02 and androidx.compose.foundation:foundation-layout:1.3.0-alpha02 are released. Version 1.3.0-alpha02 contains these commits.
API Changes
- Added
drawTextextension function onDrawScopeto provide a way to draw multi-styled text on composables and modifiers that operate on aDrawScopelikeCanvasanddrawBehind. (I16a62, b/190787898)
Bug Fixes
- Soft keyboard will now be hidden when a text field is disabled while focused. (I6e3e4, b/237308379)
- When adding
InputEventChangeevents to Velocity Tracker we will consider now deltas instead of positions, this will guarantee the velocity is correctly calculated for all cases even if the target element moves (Icea9d, b/216582726, b/223440806, b/227709803) - When a scrollable has a focused child, it will now correctly scroll to keep the focused child in view when its size is decreased, even when the size is animated. (I80867, b/230756508, b/220119990)
- Fixed a crash where
TextFieldis cleared and refilled while selection is active. (I1235b, b/208655565, b/214253689)
Compose Material: v1.2.0
July 27, 2022
androidx.compose.material:material-*:1.2.0 is released. Version 1.2.0 contains these commits.
Compose Material: v1.3.0-alpha02
July 27, 2022
androidx.compose.material:material-*:1.3.0-alpha02 is released. Version 1.3.0-alpha02 contains these commits.
External Contribution
- Fix
AnimatedVisibilityissue withFloatingActionButtonin Scaffold (I3a0ae, b/224005027)
Compose Material 3: v1.0.0-alpha15
July 27, 2022
androidx.compose.material3:material3:1.0.0-alpha15 and androidx.compose.material3:material3-window-size-class:1.0.0-alpha15 are released. Version 1.0.0-alpha15 contains these commits.
New Features
- Allow dragging the top app bar from the bar itself. (I65c00, b/205873416)
API Changes
- Updates to the
FilterChipandElevatedFilterChipAPIs to remove theselectedIconslot and promote reusing theleadingIconfor displaying a selected state. (Ie5dc2) - Add scrim and outline variant color roles. (Id6d54)
- Fix naming conventions for composable defaults. (I62b27)
- Mark
ListItemDefaultsandListItemColorsas experimental. (I1f3ec) - Changes to the top app bar API to better reflect the meaning of its state properties. Also, mark the top app bar API as experimental. (Ic0ad8)
- Text selection colors have now been added to
TextFieldColorsfor better discoverability. (Iba1b8) - Adding
ButtonDefault.ButtonWithIconContentPaddingto be used with buttons that contain an icon. (I2bf9c) - Text fields have been marked as experimental to allow for more flexibility in future API changes. (I127b5)
- Removed the
@ExperimentalMaterial3Apiannotation from theCheckboxfunction. (I5eefc) - Removed the
@ExperimentalMaterial3Apiannotation from theRadioButtonfunction. (I17e2a) - Removed the
@ExperimentalMaterial3Apiannotation from the non-interactive Cards. (I9bd49) - Updates various component defaults objects to include colors, shapes etc. (I96e11)
Bug Fixes
- Removed non-functioning trailing icons from input chip samples to avoid user confusion in the catalog app. (I9846a)
Compose Runtime: v1.2.0
July 27, 2022
androidx.compose.runtime:runtime-*:1.2.0 is released. Version 1.2.0 contains these commits.
Important changes since 1.1.0
Compose Runtime had a handful of features introduced in 1.2.0, along with many stabilizing bug fixes. The most significant new feature was the introduction of the
movableContentOfAPI, which can be used to enable complex UX such as shared element transitions. ThemovableContentOfAPI converts a composable lambda into a lambda that moves it state, and corresponding nodes, to any new location it is called. When the previous call leaves the composition the state is temporarily preserved and if a new call to the lambda enters the composition then the state, and associated Nodes, are moved to the location of the new call. If no new call is added the state is removed permanently and remember observers are notified.If a
movableContentOflambda is called multiple times in the same composition, new state and nodes are created for each call and, as calls leave the composition and new calls enter, the state is moved from the first leaving calls to the entering calls in the order they are called. All state not claimed by new calls is removed permanently.In addition to this and a few other new features, much time was spent stabilizing the runtime and Snapshot state system. Various memory leaks were removed and code paths optimized.
A summarized list of the changes can be found below:
New Features in 1.2
- Add experimental snapshot unsafeEnter/Leave
- Add Snapshot.asContextElement experimental API
- Introduce Snapshot.withoutReadObservation
- Allow state to move within a composition
- Tracing of Recompositions in Compose
Performance in 1.2
- Improve composition local performance
- Baseline profiles for compose should be derived using benchmarks
Bug Fixes in 1.2
- Remove tracking information from release recompose scopes
- Prevent removing derived state from composition when it is read in other scopes
- Use more efficient removeScope() in SnapshotStateObserver
- Clean up derived state dependencies in composition
- Fix currentCompositeKeyHash changing after inner recomposition inside movable content
- Clean up invalidated compositions during disposal
- Fix derive state read during recomposition
- Fix memory leak when observing derived state objects
- Fixed movableContent composite hash key to be consistent
- Fix corner a case where the composer would crash
- Ensure forced invalidation of a group forces recomposition
- Fix bug when rememberSaveable with input is restored in the wrong order
Compose Runtime: v1.3.0-alpha02
July 27, 2022
androidx.compose.runtime:runtime-*:1.3.0-alpha02 is released. Version 1.3.0-alpha02 contains these commits.
API Changes
- Re-added
ComposerKt.traceEventStart(Int, String)for backwards compatibility (I6e6de)
Compose UI: v1.2.0
July 27, 2022
androidx.compose.ui:ui-*:1.2.0 is released. Version 1.2.0 contains these commits.
Important changes since 1.1.0
Improvements in focus traversal:
- Focus-driven-scrolling of Lazy lists now works, using the new
BeyondBoundsLayoutcore API - New behavior customization APIs in
FocusOrderandFocusProperties - Improved behavior with physical keyboard or TV remote
- Focus-driven-scrolling of Lazy lists now works, using the new
New APIs for:
- Window insets
- Core primitives for gesture-driven, infinite and layout animations
GraphicsLayercapabilities, includingRenderEffect
Many bugfixes and performance improvements
Compose UI: v1.3.0-alpha02
July 27, 2022
androidx.compose.ui:ui-*:1.3.0-alpha02 is released. Version 1.3.0-alpha02 contains these commits.
API Changes
- Added a new property
PointerInputChange#pressureto retrieve the pressure. (I45a5e, b/205164819) - Added
rememberTextMeasurerto easily create and rememberTextMeasurerinstances in composition. (I8d66e) Rect,RoundRect, andMutableRectnow support the Kotlininsyntax for calling thecontainsfunction. (Ie42b0, b/238642990)- Remove unnecessary functions from
KeyInjectionScope, as they can be easily implemented with simpler parts of the API. The functions that have been removed includepressKeys,keysDownandkeysUp. (I81d77) - Refactored constant and parameter names in
KeyInjectionScopeto include the suffix 'Millis' where the units of said constants and parameters are milliseconds. (Iabef5) - Added
toStringForLog()method toEditCommandto help troubleshoot text editing issues. (I53354, b/228862731) - Added
drawTextextension function onDrawScopeto provide a way to draw multi-styled text on composables and modifiers that operate on aDrawScopelikeCanvasanddrawBehind. (I16a62, b/190787898) - Introduce a new experimental API called
TextMeasurerthat enables arbitrary text layout computation that creates identical results toBasicText, independent from Compose runtime. (I17101) - Add
mapTreetoSlotTree.kt. This allows tools to inspect theSlotTreewithout making an in memory copy first like asTree does. For the Layout Inspector this gives a performance improvement of about a factor 10. (I5e113) - Changed Compose Preview to be stored in binary output files, in order to allow developers to write and reuse
MultiPreviewannotations from libraries. (I85699, b/233511976)
Bug Fixes
- When adding
InputEventChangeevents toVelocityTracker we will consider now deltas instead of positions, this will guarantee the velocity is correctly calculated for all cases even if the target element moves (Icea9d, b/216582726, b/223440806, b/227709803) - Fix NPE caused by
AnnotatedString.toUpperCasewhen annotations are present. (I0aca2, b/210899140)
Core Splashscreen: v1.0.0
July 27, 2022
The core SplashScreen library brings the new Android 12 splash screen to all devices from API 23. Using the splash screen library, your application doesn't need any custom SplashScreen Activity and leverages the right APIs for a fast launch of your application. To use it, simply follow the steps outlined in our guide. For more information about the Android 12 splash screen, visit the official documentation.
androidx.core:core-splashscreen:1.0.0 is released. Version 1.0.0 contains these commits.
Customview Poolingcontainer: v1.0.0
July 27, 2022
androidx.customview:customview-poolingcontainer:1.0.0 is released. Version 1.0.0 contains these commits.
Major features of 1.0.0
Upgrading
RecyclerViewto1.3.0-alpha02or newer and Compose UI to1.2.0-beta02or newer will enable more performant reuse ofRecyclerViewchildren containing Compose views. See this blog post for more information.For most users, there is no need to use this library directly, unless you are developing a RecyclerView-like
ViewGroupor a View that requires additional resources to be explicitly disposed when it is removed (like Compose).
Emoji2: v1.2.0-rc01
July 27, 2022
androidx.emoji2:emoji2-*:1.2.0-rc01 is released. Version 1.2.0-rc01 contains these commits.
- No changes since the last beta version.
Fragment: v1.5.1
July 27, 2022
androidx.fragment:fragment:1.5.1, androidx.fragment:fragment-ktx:1.5.1, and androidx.fragment:fragment-testing:1.5.1 are released. Version 1.5.1 contains these commits.
Bug Fixes
- Fix a regression in the
DialogFragmentCallbacksDetectorwhere using the lint version bundled with AGP 7.4 would cause lint to crash. (b/237567009)
Dependency update
- The Fragment library now depends on the Lifecycle
2.5.1. (Id204c) - The Fragment library now depends on Activity
1.5.1. (I10f07)
Fragment: v1.6.0-alpha01
July 27, 2022
androidx.fragment:fragment:1.6.0-alpha01, androidx.fragment:fragment-ktx:1.6.0-alpha01, and androidx.fragment:fragment-testing:1.6.0-alpha01 are released. Version 1.6.0-alpha01 contains these commits.
Behavior Changes
- The saved state of
Fragments has been split entirely between private library state (customParcelableclasses) and state provided by the developer, which is now always stored in aBundlethat allows determining exactly where a fragment’s state is originating. (b/207158202)
Bug Fixes
- From Fragment
1.5.1: Fix a regression in theDialogFragmentCallbacksDetectorwhere using the lint version bundled with AGP 7.4 would cause lint to crash. (b/237567009)
Dependency update
- From Fragment
1.5.1: The Fragment library now depends on the Lifecycle2.5.1. (Id204c) - From Fragment
1.5.1: The Fragment library now depends on Activity1.5.1. (I10f07)
Health Connect Client: v1.0.0-alpha03
July 27, 2022
androidx.health:health-connect-client:1.0.0-alpha03 is released. Version 1.0.0-alpha03 contains these commits.
New Features
- Summary of new API changes: a set of units have been added to the read, write, aggregate APIs. Apps can now retrieve or write records with their unit of choice, such as grams or milligrams for
NutritionRecordnutrients.
API Changes
- Fix
List<DataOrigin>to beSet<DataOrigin>across various request response objects. (I42342) - Fix unit of basal total calories from Power->Energy. (I0b429)
- Moved series sample classes inside series records (Ica9bb):
CyclingPedalingCadence->CyclingPedalingCadenceRecord.SampleHeartRate->HeartRateRecord.SampleStepsCadence->StepsCadenceRecord.Sample
- Deprecate
HealthDataRequestPermissionclass, in favor ofPermissionController.createRequestPermissionActivityContract; This promotes better discoverability and unified parameterization. (I81e7f) - Added US fluid ounces to Volume. (I5f03d)
- Added Speed unit type (I1d574)
- Added Percentage unit type (I08f23)
- Added Pressure unit type (Ifb01f)
- Added Mass unit type (Ifd81a)
- Added Volume unit type (I59ad1)
- Added Power unit type. Moved Power series sample class inside
PowerRecordclass. (I5b1e5) - Added Energy unit type (I983ae)
- Added Temperature unit type (I4cdb5)
- Rename references of Activity to be specific to Exercise, including (I3f936):
- Renamed
ActivityLap->ExerciseLapRecord - Renamed
ActivityEvent->ExerciseEventRecord - Renamed
Repetitions->ExerciseRepetitionsRecord - Renamed
ActivitySession->ExerciseSessionRecord
- Renamed
- Moved package metadata nested under records. (Ie0835)
- Used Length unit in all remaining records (Ib10dd):
ActivityLapRecordElevationGainedRecordHeightRecordHipCircumferenceRecordWaistCircumferenceRecord
- Added Length unit type (Idae39)
- Update
CervicalMucusdescription terminology (I25a2b):CervicalMucus.Amount->CervicalMucusRecord.TextureCervicalMucus.Appearance->CervicalMucusRecord.Sensation
- Added 'Record' suffix to all record class names (I1ffc2)
Bug Fixes
- Fix proguard issues when lib built with release flavor and
minifyEnabledtrue. (I78933) - Hides documentation not intended for public usage. (I7a08f)
- Fixes the issue in clients who may have their own protobuf dependencies.(https://android-review.googlesource.com/c/platform/frameworks/support/+/2105430)
Lifecycle: v2.5.1
July 27, 2022
androidx.lifecycle:lifecycle-*:2.5.1 is released. Version 2.5.1 contains these commits.
Bug Fixes
- Custom implementations of
AndroidViewModelFactorynow correctly call thecreate(modelClass)function when using the statefulAndroidViewModelFactoryconstructor withLifecycle2.4+. (I5b315, b/238011621)
Mediarouter: v1.3.1
July 27, 2022
androidx.mediarouter:mediarouter:1.3.1 is released. Version 1.3.1 contains these commits.
Bug Fixes
- Work around a device-specific issue where
MediaRouter.removeUserRoute()would throw an unexpectedIllegalArgumentException(b/202931542).
Metrics: v1.0.0-alpha03
July 27, 2022
androidx.metrics:metrics-performance:1.0.0-alpha03 is released. Version 1.0.0-alpha03 contains these commits.
This release contains minor API refinements as the library gets closer to beta. One of the API changes removes the Executor from the
createAndTrack()factory method for creating aJankStatsobject. This has implications for theOnFrameListenercallback, as that listener is now called on the thread which delivers the per-frame data toJankStats(the Main/UI thread on versions earlier than API 24, and theFrameMetricsthread on API 24+). Moreover, theFrameDataobject passed to the listener is now reused every frame, so data from that object must be copied and cached elsewhere during the callback, as that object should be considered obsolete as soon as the listener returns.There were also various bug fixes, including some concurrency issues.
Finally, the fix to reuse
FrameData(mentioned above) means that there are now zero allocations per frame due to frame metrics delivery. There weren’t many allocations before, but the new approach means that you can useJankStatswithout incurring any per-frame GC overhead in your app.
API Changes
- Updated method and parameter names in
PerformanceMetricsStateto make the results of those calls clearer. (I56da5, b/233421985) - Added benchmark tests to track allocations, eliminated some internal allocations related to state management and reporting. Note that
FrameDatapassed to listeners is now considered volatile; that structure will be reused for the next frame and the data is only reliable until the listener returns. - Removed Executor from constructor for
JankStats; listeners are now called on whatever thread the internal data was received upon. (I12743)
Bug Fixes
- Fixed crash due to double-removal of
OnFrameMetricsAvailableListener(I44094, b/239457413) - Return to original logic of posting
OnPreDrawListenermessages at front of queue, for more consistent and predictable frame timing. (I05a43, b/233358407) - Fixed
ConcurrentModificationExceptionbug where the list of listener delegates was being modified while it was also being iterated through to send per-frame data. (Ib7693, b/236612357)
Navigation: v2.5.1
July 27, 2022
androidx.navigation:navigation-*:2.5.1 is released. Version 2.5.1 contains these commits.
Bug Fixes
Navigation Safe Argswill no longer cause deprecation warnings in generated classes when using custom argument types that are saved in aBundle. (Id86ed, b/237725966)
Dependency Updates
- The Navigation library now depends on Lifecycle
2.5.1. (Ib4451) - The Navigation library now depends on Activity
1.5.1. (I3efe8) - The Navigation library now depends on Fragment
1.5.1. (I56177)
ProfileInstaller: v1.2.0
July 27, 2022
androidx.profileinstaller:profileinstaller:1.2.0 is released. Version 1.2.0 contains these commits.
Important changes since 1.1.0
- Added support for the ART profile format used on Android 12 and going forward.
- Add new APIs in
ProfileInstallReceiverto get more consistent results withMacrobenchmarkswhen using baseline profiles.
Room: v2.4.3
July 27, 2022
androidx.room:room-*:2.4.3 is released. Version 2.4.3 contains these commits.
Bug Fixes
- Fixed an issue that would cause Room to not recognize suspend functions in Kotlin 1.7 (b/236612358)
ShareTarget: v1.2.0-rc02
July 27, 2022
androidx.sharetarget:sharetarget:1.2.0-rc02 is released with no changes since version 1.2.0-alpha01 . Version 1.2.0-rc02 contains these commits.
Tracing Perfetto: v1.0.0-alpha01
July 27, 2022
androidx.tracing:tracing-perfetto:1.0.0-alpha01, androidx.tracing:tracing-perfetto-binary:1.0.0-alpha01, and androidx.tracing:tracing-perfetto-common:1.0.0-alpha01 are released. Version 1.0.0-alpha01 contains these commits.
- Note: All
androidx.tracing:tracing-perfetto*libraries are initially only intended for internal use inside AndroidX libraries. You should have no need to depend on them directly.
New Features
All
androidx.tracing:tracing-perfetto*libraries are initially only intended for internal use inside AndroidX libraries. and you should have no need to depend on them directly. We are documenting these implementation details for transparency.androidx.tracing:tracing-perfettois a library which helps write trace events using low-overhead Perfetto SDK. This can be used inside Benchmark, Android Studio or Perfetto UI.androidx.tracing:tracing-perfetto-binaryis a set of binary dependencies required for androidx.tracing:tracing-perfetto.androidx.tracing:tracing-perfetto-commonis an internal dependency of androidx.tracing:tracing-perfetto and can be used by tooling to integrate with androidx.tracing:tracing-perfetto.
Wear Compose: v1.1.0-alpha02
July 27, 2022
androidx.wear.compose:compose-foundation:1.1.0-alpha02, androidx.wear.compose:compose-material:1.1.0-alpha02, and androidx.wear.compose:compose-navigation:1.1.0-alpha02 are released. Version 1.1.0-alpha02 contains these commits.
New Features
- We have switched Compose for Wear OS dependencies on core Compose libraries from 1.2.0 to 1.3.0-alpha0X
API Changes
- Added overloads for modifying chip shapes (I02e87)
Bug Fixes
- We have animated the visibility of the vignette when showing/hiding Dialog, to be consistent with the existing scaling animation. (Ida33e)
- We have fixed a bug where a divide-by-zero could occur with some fling behavior when scrolling. (I86cb6)
- Fixed a bug in the
ChipDefaults.childChipColor()to ensure that the disabled background color is fully transparent. (I2b3c3, b/238057342)
Wear Compose: v1.0.0
July 27, 2022
androidx.wear.compose:compose-foundation:1.0.0, androidx.wear.compose:compose-material:1.0.0, and androidx.wear.compose:compose-navigation:1.0.0 are released. Version 1.0.0 contains these commits.
Major features of 1.0.0
- This is the first stable release of Compose for Wear OS (read more).
- Compose for Wear OS builds upon the core Compose libraries providing additional wearable-specific components and, where appropriate, alternate implementations of core Compose components tailored to wearable devices.
- For a list of the key components in Wear Compose see the release notes for (Compose for Wear OS Beta01).
Bug Fixes
- We have animated the visibility of the vignette when showing/hiding Dialog, to be consistent with the existing scaling animation. (Ida33e)
- We have fixed a bug where a divide-by-zero could occur with some fling behavior when scrolling. (I86cb6)
- Fixed a bug in the
ChipDefaults.childChipColor()to ensure that the disabled background color is fully transparent. (I2b3c3, b/238057342)
Wear Tiles: v1.1.0-beta01
July 27, 2022
androidx.wear.tiles:tiles-*:1.1.0-beta01 is released. Version 1.1.0-beta01 contains these commits.
The 1.0.0-beta01 release of Tiles Material library contains components and layouts that are in-line with Material guidelines and easy to build.
The included components are:
Button- clickable, circular-shaped object, with either icon, text or image with 3 predefined sizes.Chip- clickable, stadium-shaped object that can contain an icon, primary and secondary labels, and has fixed height and customizable width.CompactChip&TitleChip- two variations of the standard Chip that have smaller and larger heights, respectively, and can contain one line of text.CircularProgressIndicator- colored arc around the edge of the screen with the given start and end angles, which can describe a full or partial circle with the full progress arc behind it.Text- styled text which uses the recommended Wear Material typography styles
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.
In addition to components, there are recommended tiles layouts:
PrimaryLayout- A layout which can be customized by adding primary or secondary labels, content in the middle, and a primary chip at the bottom. The main content within this layout could be added as aMultiSlotLayoutorMultiButtonLayoutobject.EdgeContentLayout- A layout for hostingCircularProgressIndicatoraround the edge with main content inside and primary or secondary label around it.MultiButtonLayout- A layout that can contain 1 - 7 buttons, arranged in line with the Material guidelines depending on their number.MultiSlotLayout- A row-like style layout with horizontally aligned and spaced slots (for icons or other small content).
All layouts have recommended padding and styles applied that are within Material guidelines.
API Changes
- Major refactor to the Chip components that includes separating setters in Builder so that each part of the content is passed in separately with renaming to match guidelines (primary label, secondary label, image resource id). Additionally, content description will be auto generated if not set. (I57622)
ProgressIndicatorLayouthas been renamed toEdgeContentLayout. (Ic1aa6)- Button size contents have been renamed to names
without _BUTTONsuffix in it with additional Javadocs clarification acrossButton. (I1dfe2)
Bug Fixes
- Margins, padding and overall arrangement in Material Layouts has been updated to accommodate all types of recommended layouts and screen sizes and shapes.
- Improvements to Material Layouts. In
MultiSlotLayoutslots are now flexible in width where they’ll wrap content instead of being fixed size.(I52919),(If18b4) - Area that can be tapped on
CompactChiphas been increased to follow accessibility guidelines. (Ie8264)
WindowManager: v1.1.0-alpha03
July 27, 2022
androidx.window:window-*:1.1.0-alpha03 is released. Version 1.1.0-alpha03 contains these commits.
New Features
- Update the default values for embedding rules.
API Changes
- Update default values for embedding rule properties. (Ic4d35)