Skip to content

2024-01-25

Choose a tag to compare

@github-actions github-actions released this 26 Jan 15:38
· 103 commits to main since this release

Activity: v1.9.0-alpha02

January 24, 2024

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

Kotlin Conversions

  • ActivityResultRegistry has been rewritten in Kotlin. This ensures that the nullability of the generics on the contract passed to register will correctly be passed through to the ActivityResultLauncher returned to you. (I121f0)
  • ActivityResult has been rewritten in Kotlin. The ActivityResult Kotlin extensions that support destructuring into the resultCode and data fields have been moved from activity-ktx to activity. (I0565a)
  • The Kotlin extensions of by viewModels() for ComponentActivity and trackPipAnimationHintView have been moved from activity-ktx to activity. The activity-ktx artifact is now completely empty. (I0a444)

Bug Fixes

  • The enableEdgeToEdge API now draws around any display cutouts. (a3644b, b/311173461)
  • From Activity 1.8.2: Fixed the extra passed to the Photo Picker Activity Contract's ACTION_SYSTEM_FALLBACK_PICK_IMAGES to correctly pass it the EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX key, rather than using the extra with the key "com.google.android.gms.provider.extra.PICK_IMAGES_MAX". It is strongly recommended if you are an OEM who implements a system fallback Photo Picker to support both extras to ensure the widest compatibility. (I96a00)

Annotation-Experimental: v1.4.0

January 24, 2024

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

Important changes since 1.3.0

  • Add support for Kotlin multi-platform
  • Fix compatibility with Kotlin 2.0
  • Show warnings for Java usages of experimentally-annotated Kotlin properties (I8bd43)
  • Fix placement of autofix annotation on Kotlin methods (Id7a41)

Benchmark: v1.2.3

January 24, 2024

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

Bug Fixes

  • Removed exception from Baseline Profile Gradle Plugin when AGP version is 8.3.0 or higher.
  • Fix for including library baseline profiles in AAR prior to AGP 8.3.0-alpha15.

CameraX: v1.4.0-alpha04

January 24, 2024

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

New Features

  • New artifact: camera-effects: A library for applying real time effects to CameraX output, including Preview, VideoCapture and/or ImageCapture. This artifact contains OpenGL implementations of the CameraEffect API that manipulates the camera output efficiently.
  • OverlayEffect: for drawing overlays with Android’s Canvas API. This allows the app to apply a watermark or highlight detected objects on camera outputs.
  • DynamicRange APIs for the Preview Use Case: The dynamic range can now be set on the Preview Use Case, independently of the Video Use Case. This allows HDR dynamic ranges such as HLG10 for Preview alone. New APIs are also available in CameraInfo to query which dynamic ranges each camera supports.

API Changes

  • Renamed ScreenFlashUiCompleter to ScreenFlashListener and moved ScreenFlashUiCompleter#getExpirationTimeMillis to expirationTimeMillis parameter of ScreenFlash#apply. (I13944)
  • New APIs added to allow dynamic range to be set on Preview use case, and to query dynamic ranges supported by each camera. This allows HDR dynamic ranges, such as HLG10, to be used with the Preview use case alone, no longer requiring a VideoCapture to be bound at the same time. (If25e3)
  • Renamed getMirroring() to isMirroring() (I47063)
  • Added Realtime still capture latency estimate support in CameraX. Camera extensions enable applications to use an API that provides an estimate of how long a capture will take. The estimate takes into account the current environment conditions, the camera state and includes the time spent processing multi-frame capture requests along with any additional time for encoding processed buffers if necessary. (I05c3a)
  • Renamed ScreenFlashUiControl to ScreenFlash, ScreenFlashUiControl#applyScreenFlashUi to ScreenFlash#apply, ScreenFlashUiControl#clearScreenFlashUi to ScreenFlash#clear, and added getScreenFlashUiApplyTimeoutSeconds method instead of exposing SCREEN_FLASH_UI_APPLY_TIMEOUT_SECONDS directly. (Iccdd0)

Bug Fixes

  • Fixed a memory leakage that results in activities or fragments not being released when Extensions are enabled (I14215)
  • Fixed the issue where getZoomRatio incorrectly returned a decreased value when applying an increasing zoom ratio. (I4aa0d, b/317543616)
  • ImageCapture#ScreenFlash#clear event is invoked immediately when ImageCapture is unbound or camera is closed, also fixes some bugs where it is never invoked due to captures in these scenarios not completing properly. (If99f9)
  • Fixed the crash that happens when lifecycle is stopped before takePicture request is completed (Idf017, b/306202751)
  • Fixed the issue where camera preview becomes black when Extensions are enabled on some devices (I1ffd0)
  • Fixed incorrect duration of video recording on devices using the Snapdragon 778G SoC. (If6aa7, b/316057919)

Collection: v1.4.0

January 24, 2024

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

Important changes since 1.3.0

New high-efficiency collections for storing primitives without boxing have been added:

  • MutableScatterMap & ScatterMap - Classes with MutableMap & Map-like API
  • MutableScatterSet & ScatterSet - Classes with MutableSet & Set-like API
  • MutableObjectList & ObjectList - Classes with MutableList & List-like API

For example, a map with an integer key and a reference type value is an IntObjectMap<T>. A map with a long key and a float value is a LongFloatMap. There is no version with the name ObjectObjectMap because that is covered by ScatterMap/MutableScatterMap.

Compose Animation: v1.6.0

January 24, 2024

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

Compose Animation: v1.7.0-alpha01

January 24, 2024

androidx.compose.animation:animation-*:1.7.0-alpha01 is released. Version 1.7.0-alpha01 contains these commits.

Compose Foundation: v1.6.0

January 24, 2024

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

Important changes since 1.5.0

  • New Modifier Modifier.anchoredDraggable that unlocks the ability to drag and animate between predefined set of anchors. This modifier is intended to be a replacement for Modifier.swipeable. Learn how to use it and migrate from Modifier.swipeable in the migration guide.
  • Drag and drop functionality between apps and components has been added. Refer to DragAndDropTarget, Modifier.dragAndDropSource and other APIs to get started
  • Modifier.draggable2D is the new modifier that allows for easy 2d dragging support. See Sample.
  • AndroidExternalSurface and AndroidEmbeddedExternalSurface have been added to make it easier to add surface-driven components in compose
  • Various API changes and improvements in Pager and snapFlingBehaviour
  • Various focus, text and insets APIs have been promoted to stable APIs

Compose Foundation: v1.7.0-alpha01

January 24, 2024

androidx.compose.foundation:foundation-*:1.7.0-alpha01 is released. Version 1.7.0-alpha01 contains these commits.

New Features

  • Added a new Indication API, IndicationNodeFactory. This leads to more performant Indication implementations compared to the previous (now deprecated) rememberUpdatedInstance API. For migration information, see developer.android.com.
  • clickable / combinedClickable / selectable / toggleable now accepts a nullable MutableInteractionSource parameter. If null, and the provided Indication is an IndicationNodeFactory, the Indication can be lazily created only when needed, which improves performance. If you are not hoisting and using the MutableInteractionSource, it is recommended to pass null.

API Changes

  • BasicTextField2 is available for experimental use. It should be roughly at feature parity with BasicTextField, and behavior should be production-ready. However, the API remains experimental for now. Before stabilizing, it will be renamed to BasicTextField and moved into the same package.
  • Introduced the first draft of the OutputTransformation API for BasicTextField2. This API replaces most of the use cases of VisualTransformation in the old BasicTextField. However it is not complete yet, and some things won't work correctly, but we'd appreciate any feedback on the API usability for your use cases. (aosp/2708848)
  • Introduced LinkAnnotation that allows to add links and clickables into text. Links feature is not complete yet and more API changes are coming.
  • Introduced receiveContent modifier that provides developers with a way to receive rich content in Jetpack Compose.
  • receiveContent integrates with BasicTextField2 to accept rich content provided by the software keyboard, or via paste from Clipboard.
  • KeyboardOptions.shouldShowKeyboardOnFocus allows you to disable the default behavior of BasicTextField of requesting a software keyboard on focus.
  • TextInputService and LocalTextInputService are now deprecated. Use PlatformTextInputModifierNode to integrate directly with platform IME APIs instead. (aosp/2862698)
  • Indication#rememberUpdatedInstance has been deprecated. It has a high unavoidable performance penalty, and prevents other optimizations. Instead, you should use the new IndicationNodeFactory API.

Bug Fixes

  • BasicTextField will now pre-validate a small selection of offset mappings when VisualTransformation is passed. This helps catch common coding errors that lead to unrecoverable exceptions in later measure or draw passes. By throwing during composition, it is more likely developers will see these errors during development helping avoid production crashes. (I0fd42)
  • VisualTransformation will not throw if you return an invalid index for an invalid index (b/316401857 )

Compose Material: v1.6.0

January 24, 2024

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

Compose Material: v1.7.0-alpha01

January 24, 2024

androidx.compose.material:material-*:1.7.0-alpha01 is released. Version 1.7.0-alpha01 contains these commits.

Behavior Changes

  • Material components have been migrated to use the new ripple APIs, and no longer query RippleTheme.

API Changes

  • rememberRipple and RippleTheme have been deprecated from material-ripple, with new ripple and RippleConfiguration APIs added to material and other design system libraries.

  • Material components that previously accepted a MutableInteractionSource and defaulted to remember { MutableInteractionSource() } now accept a nullable MutableInteractionSource and default to null instead. If you are not hoisting and using the MutableInteractionSource, you should pass null. This allows for some components to lazily create an instance only when needed, improving performance. It is also recommended that you make similar changes in your own components.

Compose Material 3: v1.2.0-rc01

January 24, 2024

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

Bug Fixes

  • Fixed mediumTopAppBarColors param order bug. (Ibe64a)
  • Fixed a bug introduced in 1.2.0-beta02 in CardDefaults.cardColors that did not update contentColor based on the containerColor param value. (Iee041, b/319671246)
  • Fixed a bug in disabledContentColor introduced in 1.2.0-beta02 and added small optimization. (I6dda1, b/318428829)

Compose Material3 Adaptive: v1.0.0-alpha05

January 24, 2024

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

New Features

  • Support history-awareness in scaffold navigation and value calc (I71d46)

Compose Runtime: v1.6.0

January 24, 2024

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

Important changes since 1.5.0

New Features

  • Re-throw exceptions that are swallowed during recomposition loop (4dff9a)

Performance Optimizations

  • Optimize recording modifications of snapshot states (28c3fe)
  • Optimize rememberSaveable (f01d79)
  • Defer re-reading derived states until changes are recorded (f38099)
  • Improve providing composition local values (a337ea)

Bug Fixes

  • Fix slot table memory leak (73fcfe)
  • Skip recomposition of subcompositions that will be removed. (Ieeb99, b/254645321)
  • Only trigger RememberObserver lifecycles when it is stored in remember calculation. (f6b4dc)
  • Restrict $dirty capture to inline lambdas. (acfca0)
  • Fix moveable content sometimes receiving the wrong composition locals. (035cd6)

Compose Runtime: v1.7.0-alpha01

January 24, 2024

androidx.compose.runtime:runtime-*:1.7.0-alpha01 is released. Version 1.7.0-alpha01 contains these commits.

Performance Optimizations

  • Add the ability to create slots after a child group has been added (b5960c)
  • Optimize recording modifications of snapshot states (28c3fe)
  • Enable strong skipping mode (ed1766)

Bug Fixes

  • Account for default parameter meta in intrinsic remember (096665)
  • Make currentCompoundHashKey unique in more cases (d4a872)
  • Realize groups when exiting inline function call (2a90fc)

Compose UI: v1.6.0

January 24, 2024

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

Compose UI: v1.7.0-alpha01

January 24, 2024

androidx.compose.ui:ui-*:1.7.0-alpha01 is released. Version 1.7.0-alpha01 contains these commits.

API Changes

  • Expanded ClipboardManager by adding ClipEntry and ClipMetadata to support arbitrary content such as images.

Core and Core-ktx: v1.13.0-alpha04

January 24, 2024

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

New Features

Kotlin Conversions

  • The androidx.core.util.Consumer class has been rewritten in Kotlin and now enforce that the generic type T now matches the nullability of what the accept() method receives. (Ie21e0)
  • androidx.core.util.Supplier has been converted to Kotlin, ensuring that the nullability of the type returned by get() matches the nullability of the generic type. (I21e9c)
  • androidx.core.util.Function has been rewritten in Kotlin, ensuring that the nullability of the input and outputs of the function match the generic types used. (I09dd7)

External Contribution

  • Thanks to Kamal Faraj for adding the AlarmManagerCompat.canScheduleExactAlarms API (I62e95, b/315440583)

Core Ultra Wideband (UWB): v1.0.0-alpha08

January 24, 2024

androidx.core.uwb:uwb:1.0.0-alpha08 and androidx.core.uwb:uwb-rxjava3:1.0.0-alpha08 are released. Version 1.0.0-alpha08 contains these commits.

API Changes

  • Adds new capabilities and parameters to allow 3p app to set ranging interval, slot duration and enable/disable AoA. Adds new API to support reconfiguration of ranging interval and range data notification. (Iebd18)

Fragment: v1.7.0-alpha09

January 24, 2024

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

Fragment Compose Artifact

A new fragment-compose artifact has been created that focuses on supporting apps that are in the process of moving from a Fragment based architecture to a fully Compose based architecture.

The first feature available in this new artifact is a content extension method on Fragment that seeks to make it easier to use Compose for the UI of an individual Fragment by creating a ComposeView for you and setting the correct ViewCompositionStrategy. (561cb7, b/258046948)

class ExampleFragment : Fragment() {
override fun onCreateView(
    inflater: LayoutInflater,
    container: ViewGroup?,
    savedInstanceState: Bundle?
) = content {
    // Write your @Composable content here
    val viewModel: ExampleViewModel = viewModel()

    // or extract it into a separate, testable method
    ExampleComposable(viewModel)
}

}

New Features

  • FragmentManager.OnBackStackChangedListener() now provides the onBackStackChangeProgressed() and onBackStackChangeCancelled() for receiving predictive back progress and canceled events respectively. (214b87)

Known Issue

  • When using Fragment's Predictive Back support for Animator or AndroidX Transition, Fragments will throw a NullPointerException from handleOnBackProgressed if no FragmentManager.OnBackStackChangedListener has ever been added via addOnBackStackChangedListener. Manually adding a listener will work around the crash. A fix will be available for this in the next release of Fragments.

Hilt: v1.2.0-beta01

January 24, 2024

androidx.hilt:hilt-*:1.2.0-beta01 is released. Version 1.2.0-beta01 contains these commits.

Lifecycle: v2.8.0-alpha01

January 24, 2024

androidx.lifecycle:lifecycle-*:2.8.0-alpha01 is released. Version 2.8.0-alpha01 contains these commits.

New Features

  • ViewModel now supports adding Closeable objects with a key that allows retrieving them via getCloseable(). (I3cf63)

Navigation: v2.8.0-alpha01

January 24, 2024

androidx.navigation:navigation-*:2.8.0-alpha01 is released. Version 2.8.0-alpha01 contains these commits.

Bug Fixes

  • Fixed BackStackState leak where multiple saveState calls on a destination would result in multiple states to be saved, but only the first one could be restored. (I598b0, b/309559751)

Dependency Update

privacysandbox ads: v1.1.0-beta04

January 24, 2024

androidx.privacysandbox.ads:ads-adservices:1.1.0-beta04 and androidx.privacysandbox.ads:ads-adservices-java:1.1.0-beta04 are released. Version 1.1.0-beta04 contains these commits.

New Features

  • New API to support post-auction user event reporting
  • Added support for Frequency cap filtering for remarketing ads
  • Supporting Join Custom Audience delegation
  • Waterfall mediation chain truncation support
  • Support for Protected Auctions on Bidding and Auction Servers

API Changes

  • Introduce AdSelectionManager::selectAds(AdSelectionFromOutcomesConfig) experimental API (I86cd2)
  • Introduce ReportEventRequest::inputEvent experimental API (Ib94f3)
  • Make ReportImpressionRequest::adSelectionConfig optional (Ief280)
  • Introduce AdSelectionManager::getAdSelectionData and AdSelectionManager::persistAdSelectionResultUnified experimental APIs (Ie4d0e)
  • Introduce CustomAudienceManager::fetchAndJoinCustomAudience experimental API (I09152)
  • Introduce AdSelectionManager::reportEvent experimental API (I0d7dc)
  • Introduced AdSelectionManager::updateAdCounterHistogram experimental API and altered AdData to indicate a series of AdFilters (I87b83)

Bug Fixes

  • Input URIs are now matched on a shared site/origin instead of requiring an exact host name match.
  • Fix test failing due to missing HTTPS scheme (d573058)
  • Fix missing HTTPS scheme from web URLs (cecdcb8)
  • Add throws annotation to the measurement APIs (2dba359)

privacysandbox sdkruntime: v1.0.0-alpha12

January 24, 2024

androidx.privacysandbox.sdkruntime:sdkruntime-client:1.0.0-alpha12, androidx.privacysandbox.sdkruntime:sdkruntime-core:1.0.0-alpha12, and androidx.privacysandbox.sdkruntime:sdkruntime-provider:1.0.0-alpha12 are released. Version 1.0.0-alpha12 contains these commits.

New Features

  • Introduce SdkSandboxControllerCompat#loadSdk for loading SDKs by other SDKs in sandbox (currently supported on API 34 Extension 10 only)

API Changes

  • Remove sandbox support on API 33 devices - backcompat (in app) mode should be used before API 34.

Wear Compose: v1.4.0-alpha01

January 24, 2024

androidx.wear.compose:compose-*:1.4.0-alpha01 is released. Version 1.4.0-alpha01 contains these commits.

New Features

  • We have added entry animation to SwipeDismissableNavHost for in-app transitions.(cfeb79a)
  • PositionIndicator is now shown by default when a screen is first displayed. This change was introduced in order to help meet Wear Quality guidelines. Unfortunately, it means that screenshot tests will need to be updated on screens that include PositionIndicator, as the PositionIndicator would not previously have been displayed. (419cef7)

API Changes

  • We have added a new ripple API in wear:compose-material and wear:compose-material3 libraries which replaces the deprecated rememberRipple. Also adds a temporary CompositionLocal, LocalUseFallbackRippleImplementation, to revert Material components to using the deprecated rememberRipple/RippleTheme APIs. This will be removed in the next stable release, and is only intended to be a temporary migration aid for cases where you are providing a custom RippleTheme. See developer.android.com for migration information and more background information behind this change. (af92b21)
  • We have updated ColorScheme to be immutable, making individual color updates less efficient, but making more common usage of colors more efficient. The reasoning behind this change is that the majority of apps wouldn't have updating individual colors as a main use case. This is still possible but it will recompose more than before, in turn we significantly decrease the amount of state subscriptions through all of the material code and will impact initialization and runtime cost of more standard use cases. (f5c48b7)
  • Wear material and Wear material3 components exposing a MutableInteractionSource in their API have been updated to now expose a nullable MutableInteractionSource that defaults to null. There are no semantic changes here: passing null means that you do not wish to hoist the MutableInteractionSource, and it will be created inside the component if needed. Changing to null allows for some components to never allocate a MutableInteractionSource, and allows for other components to only lazily create an instance when they need to, which improves performance across these components. If you are not using the MutableInteractionSource you pass to these components, it is recommended that you pass null instead. It is also recommended that you make similar changes in your own components. (f8fa920)
  • We have updated rememberExpandableState to save expandable state. This ensures that data is stored when navigating to another screen and restored when coming back to the original screen. (5c80095)

Bug Fixes

  • We have updated the ReduceMotion setting to use a lifecycle aware listener. (7c6b122)
  • We have updated TouchExplorationStateProvider’s Listener to be lifecycle aware (be28b01)
  • We have removed the materialcore layer for CompactButton to improve performance (25db8e9)
  • We have made BasicSwipeToDismissBox more robust to NaN offsets to avoid exceptions (b983739)
  • We have updated BasicSwipeToDismissBox to ensure alpha values are within the range 0,1
  • We have fixed a bug in the ToggleButton, SplitToggleButton, Checkbox, Switch and RadioButton so that accessibility announcements are not repeated (previously, semantic roles were duplicated) (d11eeb7)

Wear Compose Material3: v1.0.0-alpha16

January 24, 2024

androidx.wear.compose:compose-material3:1.0.0-alpha16 is released. Version 1.0.0-alpha16 contains these commits.

New Features

  • We have added CompactButton, which can use the same filled, filled tonal and outlined colors as Button.(I05df0)

API Changes

  • We have added RadioButton/SplitRadioButton as containers for selection controls, such as the Radio control. This differs from the existing ToggleButton in that RadioButton is selectable (and operates within a selection group) whereas ToggleButton is toggleable (and is independent). (I61275)
  • We are removing LocalContentAlpha from the Wear Compose Material3 library for consistency with the Compose Material3 library. (I49a0a)
  • Wear material and wear material3 components exposing a MutableInteractionSource in their API have been updated to now expose a nullable MutableInteractionSource that defaults to null. There are no semantic changes here: passing null means that you do not wish to hoist the MutableInteractionSource, and it will be created inside the component if needed. Changing to null allows for some components to never allocate a MutableInteractionSource, and allows for other components to only lazily create an instance when they need to, which improves performance across these components. If you are not using the MutableInteractionSource you pass to these components, it is recommended that you pass null instead. It is also recommended that you make similar changes in your own components. (Ib90fc, b/298048146)
  • Adds new ripple API in wear:compose-material and wear:compose-material3 libraries which replaces the deprecated rememberRipple. Also adds a temporary CompositionLocal, LocalUseFallbackRippleImplementation, to revert Material components to using the deprecated rememberRipple/RippleTheme APIs. This will be removed in the next stable release, and is only intended to be a temporary migration aid for cases where you are providing a custom RippleTheme. See developer.android.com for migration information and more background information behind this change. (af92b21)
  • We have made minor improvements to the HorizontalPageIndicator api and its documentation. (I60efc)
  • We have updated ColorScheme to be immutable, making individual color updates less efficient, but making more common usage of colors more efficient. The reasoning behind this change is that the majority of apps wouldn't have updating individual colors as a main use case. This is still possible but it will recompose more than before, in turn we significantly decrease the amount of state subscriptions through all of material code and will impact initialization and runtime cost of more standard use cases. (Ibc2d6)
  • Updated ToggleButton and SplitToggleButton APIs to allow disabled colors to be customized. In addition, Material Design tokens are now used for color and typography values. (If087c)
  • Updated Button image background colors to use Material Design tokens. (Iba215)
  • We have changed the Checkbox, Switch and RadioButton components to be display-only, by removing the click handling. These components are expected to be used in (Split)ToggleButton which handles the click, so the components are now more clearly indicated as display-only (and are not intended for standalone use on Wear). (I2322e)

Bug Fixes

  • We have added tokens for motion values of durations and easings in Wear Compose Material 3. (I437cd)
  • We have fixed a bug in the ToggleButton, SplitToggleButton, Checkbox, Switch and RadioButton so that accessibility announcements are not repeated (previously, semantic roles were duplicated). (Ica281)
  • We have removed the materialcore layer for CompactButton to improve performance. (7902858)

Wear Compose: v1.3.0

January 24, 2024

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

Important changes since 1.2.0

  • The SwipeToDismissBoxState class, SwipeToDismissValue enumeration, and Modifier.edgeSwipeToDismiss extension function are now each part of the androidx.wear.compose.foundation package, instead of the androidx.wear.compose.material package. This updated architecture allows you to implement gesture handling independently from other design considerations. Material Design workflows, such as applying colors from a configured theme, are handled separately.
  • The SwipeToRevealCard and SwipeToRevealChip classes help you implement the recommended swipe-to-reveal guidance. The SwipeToRevealSample class demonstrates how to use these components.
  • Our 1.3.0-alpha02 release introduced a change that causes Chip and ToggleChip objects to grow in height to better support user-selected font scaling. This can cause some clipping to occur. To fix this issue, the large shape for MaterialTheme now uses a larger corner radius (26 dp instead of 24 dp). Chip and ToggleChip objects use this new corner radius to avoid clipping content on the corners of Chip and ToggleChip.

    • Most Chips and ToggleChips are unchanged, given their default 52 dp height. However, Chip and ToggleChip objects that contain multiple lines of primary or secondary label text, or for which the height has been overridden, could cause screenshot tests to break.

Additional changes

For a more complete set of the changes introduced in version 1.3.0, see the beta01 release notes.

Recommendations for implementation

  • If your app allows users to pan around the screen's content, such as in a map-based app, turn off swipe handling by setting userSwipeEnabled to false in the SwipeDismissableNavHost composable, and include a button that allows users to go to the previous screen.
  • To turn off animations for a position indicator during fade-in and position-change animations within a scrolling list, use a SnapSpec object.
  • While waiting for a media app to load content for playback, show a blank Placeholder composable.
  • To create a collection of expandable items on demand, consider using the experimental ExpandableStateMapping class.

wear protolayout: v1.1.0-rc01

January 24, 2024

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

Bug Fixes

  • PlatformTimeUpdateNotifierImpl ticks immediately after enabling update. (I77145)
  • CircularProgressIndicator has been fixed for RTL layouts. From now on, it will go clockwise in all cases. (I95ee3)
  • Add a workaround for a skia arc drawing issue. (I08f09)

Wear Tiles: v1.3.0-rc01

January 24, 2024

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

API Changes

  • Renamed TileService#getActiveTilesSnapshotAsync to getActiveTilesAsync. (If6b87)

Wear Watchface: v1.2.1

January 24, 2024

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

Bug Fixes

  • Fixed a crash on Samsung Galaxy Watch 4, 5 & 6. (43f0b0)

Webkit: v1.10.0

January 24, 2024

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

Important changes since 1.9.0

WorkManager: v2.10.0-alpha01

January 24, 2024

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

New Features

  • Developers can specify NetworkRequest as a constraint for a worker via the Constraints.setRequiredNetworkRequest method. This enables more granular control over which network this worker should run.

API Changes

  • Adding an ability to specify NetworkRequest as the constraint. (Id98a1, b/280634452)