Skip to content

[pull] androidx-main from androidx:androidx-main#1193

Merged
pull[bot] merged 43 commits into
MaxMood96:androidx-mainfrom
androidx:androidx-main
Jun 17, 2026
Merged

[pull] androidx-main from androidx:androidx-main#1193
pull[bot] merged 43 commits into
MaxMood96:androidx-mainfrom
androidx:androidx-main

Conversation

@pull

@pull pull Bot commented Jun 17, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

jesaleh and others added 30 commits June 8, 2026 17:38
This fixes lint issues that calls to runTest ignores the return value. This was passing preubmit but failed when running check locally.
This change also removes the lint finle since it is no longer used

Bug: 521558597
Test: Unit Tests
Change-Id: I30b952e3528fa336475c925d080111ede16c2e12
Usages have been removed from G3

Bug: 489542187
Test: Unit test
Change-Id: Ifdaee88cbdd9eece2432888147e60ee6d26b0d44
The `hasContentDescription` filter in Subspace Compose Testing now defaults to `substring = true`. This aligns with common testing practices where partial content description matches are often desired. A test case has been added to verify this new default behavior.

Test: A unit tested update to test the change of the default behavior.
Fix: 522389241
Relnote: Updated the Semantic modifier's hasContentDescription to default to substring matching.
Change-Id: I082143ce42e8ae505e08216d5e9013cbd5a0abd6
tryPeekFirst, tryPeekLast, and tryPeekAll now takes in an optional
predicate that filters for items inside the buffer.

Test: FrameBufferImplTest
Change-Id: Iaac7a0a2f0cc58c0d0f5d2ee4391c7f51ae45f55
Remove `ExperimentalXrDeviceLifecycleApi` annotation from
`androidx.xr.runtime` library since it is unused and obsolete.

Test: ./gradlew :xr:runtime:runtime:testReleaseUnitTest
Relnote: "Remove unused `ExperimentalXrDeviceLifecycleApi` experimental opt-in annotation."
Change-Id: I46d957c80e875d3491e1aac92946ceb3a88c121f
The `neutralData` object previously allocated new inline lambdas
(e.g. `{ IntOffset.Zero }`) on every evaluation. Because
`TransitionData` equality checks evaluate lambdas by instance
identity, this broke structural equality.

As a result, `activeExit` was continuously deemed unequal to its
previous value. This CL fixes the issue by extracting the inline
lambdas into static singletons.

Similarly, this CL also caches the `{ lastSlide }` lambda in
`SharedMutableTransformState` as a stable property. This prevents
`getHandoffExit()` and `getHandoffEnter()` from allocating new
inline lambdas on every call, ensuring structural equality is
maintained during shared transition handoffs.

Bug: 522545691
Bug: 524385470
Bug: 522677395
Test: ./gradlew :compose:animation:animation:test

Change-Id: Ic86e7c89bbfdd54880d1855f99b89de6c67ec9b3
This CL introduces an early-return optimization in the `plus` operator
for both `EnterTransition` and `ExitTransition`. If either operand is
`None`, it directly returns the other operand without allocating new
`TransitionData` or `Enter/ExitTransitionImpl` objects.

Test: ./gradlew :compose:animation:animation:test
Change-Id: I72682aec5b279c4b55b87a6ca8f04a737e76d03a
Fixes an ArrayIndexOutOfBoundsException in the LinkComposer that
would occur when nested MovableContent recomposes to a different
location. This manifested as the Applier attempting to move up too
many times and affects several macrobenchmarks.

The underlying issue is that the ChangeListWriter can get confused
about the location that the editor will be in when switching between
change lists. We need to make sure that the editor realizes all
operations and restores the previous position when working with
multiple change lists.

Test: MovableContentTests.testUpdateMovingNestedContent
Relnote: """
    Fixed an `ArrayIndexOutOfBoundsException` in the `LinkComposer`
    when using nested `MovableContent`.
    """
Change-Id: I85daf75aa5dd28409289dcee04ad49a808e0da3e
This temporarily disables the feature to fix an issue where zero-delta move events
were triggering state updates and interfering with TapGestureDetector on Resting BottomSheets.
The flag will be re-enabled once the underlying bugs in Draggable/NestedScroll are resolved.

Bug: 359962905
Test: presubmit
Change-Id: I451fd9c561b7a6b1b4b22c942771fbccc69ece87
Addresses API Council feedback from promoting expressive menus.

Test: ./gradlew :compose:material3:material3:connectedAndroidDeviceTest -Pandroid.testInstrumentationRunnerArguments.class=androidx.compose.material3.MenuTest
Bug: 513226415
Relnote: Remove unused offset parameter from `DropdownMenuPopup`. Added the default menu properties into the menu defaults. Updated the naming for groups label from `MenuDefaults.Label` to `MenuDefaults.DropdownMenuGroupLabel`. Added `disabledContainerColor` into `MenuDefaults.selectableItemColors` and `MenuDefaults.selectableItemVibrantColors`. Added `Modifier` parameter to composable functions in `MenuDefaults` that return a layout.
Change-Id: I3d2b19381f46df852d6290b39b199d44fbfde480
- Deprecated class is now replaced by ImageBasedLightingAsset
- No longer need ExrImageTest.kt because it comes from our old test pattern

Bug: 502251518

Change-Id: Iafea1284df49c90296325210516f1545aa53e741
BUG: 524645857
Test: unit-tests
Change-Id: I25a4e76ca11317d2ed663d6698e096f31d40b3db
…o outline"

This reverts commit 4c9588a.

Reason for revert: This change is causing minor screenshot test failure with what looks like a rounding difference with the new outline bounds. 

Change-Id: Ie1990676b9e1d13e48c3087330f32a0a3c05546d
- Fix Matrix3 rotation extraction by unscaling columns with their
  magnitude to correctly handle non-uniform scaling and 180-degree
  rotations.
- Update Matrix3 scale to use the matrix determinant for its sign
  rather than diagonal element signs (fixes b/367780918).
- Prevent NaN in Vector2, Vector3, and Vector4 `toNormalized` by
  returning `Zero` for vectors with length squared below `1e-15f`.
- Prevent NaN in Vector3 and Vector4 `angleBetween` by checking for
  small vector lengths.
- Prevent NaN in Quaternion initialization by returning Identity for
  inputs with length below `1e-8f`.
- Prevent NaN in Quaternion `toAxisAngle` by clamping `w` to
  [-1.0, 1.0] before calling `acos`.
- Prevent NaN in Quaternion `fromLookTowards` by choosing an
  alternate up vector when `up` is parallel to `forward`.
- Fix Pose `fromLookAt` to properly align the local -Z axis (forward)
  with the target by passing `-forward` to `fromLookTowards`.
- Clean up redundant `Companion.` references in Pose.

Test: ./gradlew :xr:runtime:runtime:test
Relnote: "Fixed Pose.`fromLookAt` forward direction alignment, corrected scale extraction in Matrix3, and prevented numerical `NaNs` in normalization, axis-angle conversion, and `angleBetween` calculations."
Bug: 367780918
Change-Id: I7a3b54467df0110d16f98b0cad6d2e6c9a6edb68
Remove TrackingState.TRACKING_DEGRADED completely from the
androidx.xr.arcore public API and implementation surface. Update
conversion functions to use enum instances rather than int values.
Map RTTrackingState.TRACKING_DEGRADED (from runtime/natives) to
TrackingState.PAUSED, and update references in tests and integration
test apps. Update API signatures in current.txt and
restricted_current.txt.

Remove all usages and imports of `ExperimentalInertialTrackingApi` and
direct references to `DeviceTrackingMode.INERTIAL` from `arcore`
production and test modules. This is achieved by using instance-based
mode checks and comparing against `DeviceTrackingMode.DISABLED` and
`DeviceTrackingMode.SPATIAL` instances instead of raw integer literals,
and falling back to assuming `INERTIAL` when it is neither. A reflection
helper is also added in tests and sample apps for configuring
`DeviceTrackingMode.INERTIAL` without opt-ins or raw integers.

Test: ./gradlew :xr:arcore:arcore:testReleaseUnitTest
Test: ./gradlew :xr:arcore:arcore-openxr:testReleaseUnitTest
Test: ./gradlew :xr:arcore:arcore:checkApi
Test: ./gradlew :xr:arcore:integration-tests:projected-testapp:testDebugUnitTest
Bug: 524326338
Relnote: "Remove `TrackingState`.TRACKING_DEGRADED from public API surface and map runtime degraded states to PAUSED instead. Update `TrackingState` to use enums instead of int values for string conversion and runtime conversion."

Change-Id: I3eb5b4b57f9d9bd029f0b08a9841d54b4ebf128e
…w for b/505678008

Implement the request bounds expansion in requestChildRectangleOnScreen on API >= 37.1.
This expands the target rectangle to include the child's item decoration
offsets. It ensures that platform focus gain scroll requests (using
getDrawingRect) do not override the target scroll position with bounds
that exclude decorations.

Bug: b/505678008
Test: ./gradlew :recyclerview:recyclerview:connectedAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=androidx.recyclerview.widget.RecyclerViewLayoutTest#focusScrollWithScrollXAndDecorations,androidx.recyclerview.widget.RecyclerViewLayoutTest#focusScrollWithNestedHorizontalScrollViewAndDecorations,androidx.recyclerview.widget.RecyclerViewLayoutTest#nestedRecyclerViewFocusScrollWithDecorations
TAG=agy
CONV=da57e9fb-a670-41f5-9c3c-f59166655b4c

Change-Id: I6d0df3153d85d1cc7f6034be9ded67045b877312
…clerView for b/505678008" into androidx-main
- Deprecate `transformingMovable` and `movable` overload.
- Introduce `movable` modifier overload with `movePolicy` param.
- Introduce different `MovePolicy`: such as `default`,`custom` and `anchor`. The `default` will let the system handle any transformations done to the composable. The `custom` will let developers handle the transforms. The `anchor` policy will let the system handle any transformations done but will also anchor composables to the plane defined.

Bug: 481781189
Test: Manual and Unit tests
Relnote: "Added movable overload with `movePolicy` param and deprecate `transformingMovable` and `movable` "
Change-Id: Ic88c1d6acf919b741f6f50bca3f61da958caab70
This change introduces a default tolerance of 0.5.dp to various Subspace semantics assertions that compare Dp values, such as width, height, depth, and positions.

Additionally, the documentation for assertLeftPositionInRootIsEqualTo and assertTopPositionInRootIsEqualTo has been updated to clarify how "left" and "top" are derived from the node's center position and size in Subspace.

Test: The existing unit tests.
Bug: 521491915
Relnote: Added a tolerance: Dp = Dp(0.5f) parameter to all public floating-point dimension and position equality assertions in SubspaceAssertions.kt. The default tolerance behavior (0.5.dp) is fully documented.
Change-Id: I266cbf4d1cc817e2159490f05d1995285fde3709
Adds a test that validates that if a process with an auto-close and multi-instance database is auto-closed but has an active Flow, then an invalidation from a secondary process will be delivered, causing the database to re-open and the Flow to emit.

Bug: 521454893
Test: MultiInstanceInvalidationTest
Change-Id: I49a0d1475435f494ed5302c77c412e12edbbc4ca
The assertion function was checking for any ancestor in the entity hierarchy, not just the direct parent. The new name more accurately reflects the function's behavior.

Test: the existing unit tests
Fix: 521491915
Change-Id: Idec636b832e6a025fd18aefe0412717352e77220
android-test-infra-autosubmit@system.gserviceaccount.com and others added 13 commits June 16, 2026 15:09
Test: None
Change-Id: I3356c635acd7336e9d099dcaa8d6faa22634b6e7
Merged-In: I71fad8b6073a7147669fc2c499ea1e3af092b534
* changes:
  Rename assertEntityIsChildOf to assertEntityIsDescendantOf.
  Add tolerance to Subspace Dp assertions.
Bug: 496257436
Bug: 519672992
Test: Ran ResizablePanel test app
Relnote: Update resizable modifier to use a `ResizePolicy` instead of two modifiers
Change-Id: I7fb0fff7c7abe5ab3cffe2a118fec42cf61f4684
@pull pull Bot locked and limited conversation to collaborators Jun 17, 2026
@pull pull Bot added the ⤵️ pull label Jun 17, 2026
@pull pull Bot merged commit ae76d1a into MaxMood96:androidx-main Jun 17, 2026
2 of 4 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.