[pull] androidx-main from androidx:androidx-main - #1449
Merged
Conversation
When ACTION_DOWN occurs on a component with a clickable modifier, RemoteComposeView previously requested disallowInterceptTouchEvent(true) unconditionally on touchDown. This prevented host ViewGroups and scrollable containers from intercepting drag gestures that began on clickable Remote Compose elements. This change checks whether the document has active applied touch operations (such as scroll or drag handlers) before requesting disallow intercept, allowing clickable components to propagate drag gestures to the host while preserving tap and click handling. Bug: 514549600 Test: automated tests added. Change-Id: I7dab1201451ef5ded6e3677fcf24fec0870baa72
Relnote: "Added `@FloatRange` to `BlurStop.fraction`, changed the default `fallOffRadius` in `BlurRadiusSpec.radialGradient` to `Dp.Unspecified`, renamed `Modifier.blur`'s `radius` parameter to `blurRadiusSpec`, and renamed `BlurScope.radius` to `blurRadiusSpec`." Test: BlurRadiusSpecTest.kt, BlurTest.kt Fixes: 556335791 Change-Id: I91dbc0667b6de356e44b9210ee2c553eb164b28b
Modifier.blur operates purely within the graphics layer and draw phase without triggering recompositions, meaning Recomposer.hasPendingWork is false throughout progressive blur animations. Consequently, launchIdlenessTracking continuously reported COMPOSE-IDLE, causing UiAutomator to immediately return from idleness waits and cancel/stop the trace before SurfaceFlinger could latch and present frames (resulting in 'Observed no expect/actual slices in trace'). Now it is tracking the animation's running state directly in ProgressiveBlurActivity so that idleness tracking reports COMPOSE-BUSY during the animation, and ensuring ProgressiveBlurBenchmark waits for target readiness in setupBlock. Test: ProgressiveBlurBenchmark Test: ProgressiveBlurBenchmark (microbenchmark) Fixes: 552208104 Change-Id: I58240ee8925d92469ed71576e0dff0ed25b9ee81
`IdlingResourceRegistry` previously polled idling resources using a coroutine launched on `Dispatchers.Main` with `delay(20)`. When a test overrides `Dispatchers.Main` with a `TestDispatcher`, `delay()` uses virtual time instead of real clock time. Because the test thread is blocked waiting for Compose idling, virtual time never advances, causing `delay(20)` to suspend indefinitely and time out with `ComposeNotIdleException`. To fix this, pass an async main looper `Handler` dispatcher to `IdlingResourceRegistry` so that polling always uses the Android main looper clock regardless of `Dispatchers.setMain`. Fixes: 322064243 Fixes: 385170168 Test: IdlingResourceRegistryTest Test: ComposeIdlingResourceTest Change-Id: Id3a54fbf6172b4f25d886982446ecff8119091e5
When PreviewView has not yet undergone its initial layout traversal, PreviewView.getViewPort() returns null (width=0, height=0), causing CameraController.getBoundSessionConfig() to abort with "PreviewView not attached to CameraController". Furthermore, if PreviewView layout occurs before the window is attached to a display, or if subsequent layout passes maintain the same view bounds, attachToControllerIfReady() was never retried. As a result, CameraController remained detached and the camera was never opened. This change: 1. Tracks attachment state in PreviewView via mIsAttachedToController. 2. Automatically retries attaching PreviewView to CameraController in mOnLayoutChangeListener and onLayout() whenever layout completes. 3. Retries attachment in DisplayRotationListener when display is added or changed if not yet attached. 4. Resets attachment state on setController() and onDetachedFromWindow(). 5. Adds unit tests verifying PreviewView auto-attaches upon layout. Bug: 558615671 Test: ./gradlew 📷camera-view:test Test: ./gradlew 📷integration-tests:camera-testapp-view:assembleDebugAndroidTest Change-Id: I63550fe86a7337b7bcc33695e03afffab6a2da09
…rame In DatePickerContent, nextAvailable and previousAvailable were read from monthsListState.canScrollForward and monthsListState.canScrollBackward. Because LazyListState initializes these properties to false prior to layout, the navigation buttons composed as disabled on frame 1 and scheduled an immediate recomposition on frame 2 when layout mutated canScrollForward to true. Computes month navigation availability directly from monthIndex and numberOfMonthsInRange(yearRange) in DatePickerContent, removing the layout-phase state mutation and allowing DatePicker to resolve in 1 frame. Migrates DatePickerBenchmark and DateRangePickerBenchmark to standard benchmarkToFirstPixel, benchmarkFirstMeasure, benchmarkFirstLayout, and benchmarkFirstDraw APIs, and deletes MaterialBenchmarkExtensions.kt. Fixes: 470062881 Test: ./gradlew :compose:material3:material3:connectedAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=androidx.compose.material3.DatePickerTest Test: ./gradlew :compose:material3:benchmark:connectedAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=androidx.compose.material3.benchmark.DatePickerBenchmark Relnote: "`DatePicker` now resolves in 1 frame by computing month navigation availability directly from the displayed month index." Change-Id: I08db7973b21ec076f76456926a35d6f15ffdb401
Introduces the SuppressStatusBar helper composable to handle status bar suppression across full-screen components. When inside an AppScaffold, it registers a suppression screen with the scaffold state to coordinate status bar visibility with underlying screens. Outside of an AppScaffold, it falls back to hard-hiding the status bar on the window via StatusBarOrchestrator, restoring initial state on disposal. Updates Dialog, Stepper, TimePicker, and DatePicker to use SuppressStatusBar. Bug: 532114833 Test: StatusBarTest Relnote: "Added SuppressStatusBar helper composable to suppress the system status bar for full-screen and overlay components." TAG=agy CONV=8d182699-e1c3-4690-9b87-c2932c98c542 Change-Id: I387c3fe3d80e0f94214e678e302dd185b6f1af73
…icker" into androidx-main
…into androidx-main
…t is ready" into androidx-main
* changes: Fix ProgressiveBlurBenchmark frame timing capture Address ProgressiveBlur API feedback
… in 1 frame" into androidx-main
…ents." into androidx-main
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 : )