diff --git a/compose/animation/animation-core/api/1.7.0-beta07.txt b/compose/animation/animation-core/api/1.7.0-beta07.txt new file mode 100644 index 0000000000000..8c561f6495aea --- /dev/null +++ b/compose/animation/animation-core/api/1.7.0-beta07.txt @@ -0,0 +1,854 @@ +// Signature format: 4.0 +package androidx.compose.animation.core { + + public final class Animatable { + ctor @Deprecated public Animatable(T initialValue, androidx.compose.animation.core.TwoWayConverter typeConverter, optional T? visibilityThreshold); + ctor public Animatable(T initialValue, androidx.compose.animation.core.TwoWayConverter typeConverter, optional T? visibilityThreshold, optional String label); + method public suspend Object? animateDecay(T initialVelocity, androidx.compose.animation.core.DecayAnimationSpec animationSpec, optional kotlin.jvm.functions.Function1,kotlin.Unit>? block, kotlin.coroutines.Continuation>); + method public suspend Object? animateTo(T targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional T initialVelocity, optional kotlin.jvm.functions.Function1,kotlin.Unit>? block, kotlin.coroutines.Continuation>); + method public androidx.compose.runtime.State asState(); + method public String getLabel(); + method public T? getLowerBound(); + method public T getTargetValue(); + method public androidx.compose.animation.core.TwoWayConverter getTypeConverter(); + method public T? getUpperBound(); + method public T getValue(); + method public T getVelocity(); + method public V getVelocityVector(); + method public boolean isRunning(); + method public suspend Object? snapTo(T targetValue, kotlin.coroutines.Continuation); + method public suspend Object? stop(kotlin.coroutines.Continuation); + method public void updateBounds(optional T? lowerBound, optional T? upperBound); + property public final boolean isRunning; + property public final String label; + property public final T? lowerBound; + property public final T targetValue; + property public final androidx.compose.animation.core.TwoWayConverter typeConverter; + property public final T? upperBound; + property public final T value; + property public final T velocity; + property public final V velocityVector; + } + + public final class AnimatableKt { + method public static androidx.compose.animation.core.Animatable Animatable(float initialValue, optional float visibilityThreshold); + } + + public final class AnimateAsStateKt { + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateDpAsState(float targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional String label, optional kotlin.jvm.functions.Function1? finishedListener); + method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateDpAsState(float targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional kotlin.jvm.functions.Function1? finishedListener); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateFloatAsState(float targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional float visibilityThreshold, optional String label, optional kotlin.jvm.functions.Function1? finishedListener); + method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateFloatAsState(float targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional float visibilityThreshold, optional kotlin.jvm.functions.Function1? finishedListener); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateIntAsState(int targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional String label, optional kotlin.jvm.functions.Function1? finishedListener); + method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateIntAsState(int targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional kotlin.jvm.functions.Function1? finishedListener); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateIntOffsetAsState(long targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional String label, optional kotlin.jvm.functions.Function1? finishedListener); + method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateIntOffsetAsState(long targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional kotlin.jvm.functions.Function1? finishedListener); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateIntSizeAsState(long targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional String label, optional kotlin.jvm.functions.Function1? finishedListener); + method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateIntSizeAsState(long targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional kotlin.jvm.functions.Function1? finishedListener); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateOffsetAsState(long targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional String label, optional kotlin.jvm.functions.Function1? finishedListener); + method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateOffsetAsState(long targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional kotlin.jvm.functions.Function1? finishedListener); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateRectAsState(androidx.compose.ui.geometry.Rect targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional String label, optional kotlin.jvm.functions.Function1? finishedListener); + method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateRectAsState(androidx.compose.ui.geometry.Rect targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional kotlin.jvm.functions.Function1? finishedListener); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateSizeAsState(long targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional String label, optional kotlin.jvm.functions.Function1? finishedListener); + method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateSizeAsState(long targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional kotlin.jvm.functions.Function1? finishedListener); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateValueAsState(T targetValue, androidx.compose.animation.core.TwoWayConverter typeConverter, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional T? visibilityThreshold, optional String label, optional kotlin.jvm.functions.Function1? finishedListener); + method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateValueAsState(T targetValue, androidx.compose.animation.core.TwoWayConverter typeConverter, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional T? visibilityThreshold, optional kotlin.jvm.functions.Function1? finishedListener); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface Animation { + method public long getDurationNanos(); + method public T getTargetValue(); + method public androidx.compose.animation.core.TwoWayConverter getTypeConverter(); + method public T getValueFromNanos(long playTimeNanos); + method public V getVelocityVectorFromNanos(long playTimeNanos); + method public default boolean isFinishedFromNanos(long playTimeNanos); + method public boolean isInfinite(); + property public abstract long durationNanos; + property public abstract boolean isInfinite; + property public abstract T targetValue; + property public abstract androidx.compose.animation.core.TwoWayConverter typeConverter; + } + + public final class AnimationConstants { + field public static final int DefaultDurationMillis = 300; // 0x12c + field public static final androidx.compose.animation.core.AnimationConstants INSTANCE; + field public static final long UnspecifiedTime = -9223372036854775808L; // 0x8000000000000000L + } + + public enum AnimationEndReason { + enum_constant public static final androidx.compose.animation.core.AnimationEndReason BoundReached; + enum_constant public static final androidx.compose.animation.core.AnimationEndReason Finished; + } + + public final class AnimationKt { + method public static androidx.compose.animation.core.DecayAnimation DecayAnimation(androidx.compose.animation.core.FloatDecayAnimationSpec animationSpec, float initialValue, optional float initialVelocity); + method public static androidx.compose.animation.core.TargetBasedAnimation TargetBasedAnimation(androidx.compose.animation.core.AnimationSpec animationSpec, androidx.compose.animation.core.TwoWayConverter typeConverter, T initialValue, T targetValue, T initialVelocity); + method public static T getVelocityFromNanos(androidx.compose.animation.core.Animation, long playTimeNanos); + } + + public final class AnimationResult { + ctor public AnimationResult(androidx.compose.animation.core.AnimationState endState, androidx.compose.animation.core.AnimationEndReason endReason); + method public androidx.compose.animation.core.AnimationEndReason getEndReason(); + method public androidx.compose.animation.core.AnimationState getEndState(); + property public final androidx.compose.animation.core.AnimationEndReason endReason; + property public final androidx.compose.animation.core.AnimationState endState; + } + + public final class AnimationScope { + method public void cancelAnimation(); + method public long getFinishedTimeNanos(); + method public long getLastFrameTimeNanos(); + method public long getStartTimeNanos(); + method public T getTargetValue(); + method public androidx.compose.animation.core.TwoWayConverter getTypeConverter(); + method public T getValue(); + method public T getVelocity(); + method public V getVelocityVector(); + method public boolean isRunning(); + method public androidx.compose.animation.core.AnimationState toAnimationState(); + property public final long finishedTimeNanos; + property public final boolean isRunning; + property public final long lastFrameTimeNanos; + property public final long startTimeNanos; + property public final T targetValue; + property public final androidx.compose.animation.core.TwoWayConverter typeConverter; + property public final T value; + property public final T velocity; + property public final V velocityVector; + } + + public interface AnimationSpec { + method public androidx.compose.animation.core.VectorizedAnimationSpec vectorize(androidx.compose.animation.core.TwoWayConverter converter); + } + + public final class AnimationSpecKt { + method @Deprecated @androidx.compose.runtime.Stable public static androidx.compose.animation.core.InfiniteRepeatableSpec infiniteRepeatable(androidx.compose.animation.core.DurationBasedAnimationSpec animation, optional androidx.compose.animation.core.RepeatMode repeatMode); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.core.InfiniteRepeatableSpec infiniteRepeatable(androidx.compose.animation.core.DurationBasedAnimationSpec animation, optional androidx.compose.animation.core.RepeatMode repeatMode, optional long initialStartOffset); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.core.KeyframesSpec keyframes(kotlin.jvm.functions.Function1,kotlin.Unit> init); + method @SuppressCompatibility @androidx.compose.animation.core.ExperimentalAnimationSpecApi public static androidx.compose.animation.core.KeyframesWithSplineSpec keyframesWithSpline(@FloatRange(from=0.0, to=1.0) float periodicBias, kotlin.jvm.functions.Function1,kotlin.Unit> init); + method @SuppressCompatibility @androidx.compose.animation.core.ExperimentalAnimationSpecApi public static androidx.compose.animation.core.KeyframesWithSplineSpec keyframesWithSpline(kotlin.jvm.functions.Function1,kotlin.Unit> init); + method @Deprecated @androidx.compose.runtime.Stable public static androidx.compose.animation.core.RepeatableSpec repeatable(int iterations, androidx.compose.animation.core.DurationBasedAnimationSpec animation, optional androidx.compose.animation.core.RepeatMode repeatMode); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.core.RepeatableSpec repeatable(int iterations, androidx.compose.animation.core.DurationBasedAnimationSpec animation, optional androidx.compose.animation.core.RepeatMode repeatMode, optional long initialStartOffset); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.core.SnapSpec snap(optional int delayMillis); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.core.SpringSpec spring(optional float dampingRatio, optional float stiffness, optional T? visibilityThreshold); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.core.TweenSpec tween(optional int durationMillis, optional int delayMillis, optional androidx.compose.animation.core.Easing easing); + } + + public final class AnimationState implements androidx.compose.runtime.State { + ctor public AnimationState(androidx.compose.animation.core.TwoWayConverter typeConverter, T initialValue, optional V? initialVelocityVector, optional long lastFrameTimeNanos, optional long finishedTimeNanos, optional boolean isRunning); + method public long getFinishedTimeNanos(); + method public long getLastFrameTimeNanos(); + method public androidx.compose.animation.core.TwoWayConverter getTypeConverter(); + method public T getValue(); + method public T getVelocity(); + method public V getVelocityVector(); + method public boolean isRunning(); + property public final long finishedTimeNanos; + property public final boolean isRunning; + property public final long lastFrameTimeNanos; + property public final androidx.compose.animation.core.TwoWayConverter typeConverter; + property public T value; + property public final T velocity; + property public final V velocityVector; + } + + public final class AnimationStateKt { + method public static androidx.compose.animation.core.AnimationState AnimationState(androidx.compose.animation.core.TwoWayConverter typeConverter, T initialValue, T initialVelocity, optional long lastFrameTimeNanos, optional long finishedTimeNanos, optional boolean isRunning); + method public static androidx.compose.animation.core.AnimationState AnimationState(float initialValue, optional float initialVelocity, optional long lastFrameTimeNanos, optional long finishedTimeNanos, optional boolean isRunning); + method public static androidx.compose.animation.core.AnimationState copy(androidx.compose.animation.core.AnimationState, optional float value, optional float velocity, optional long lastFrameTimeNanos, optional long finishedTimeNanos, optional boolean isRunning); + method public static androidx.compose.animation.core.AnimationState copy(androidx.compose.animation.core.AnimationState, optional T value, optional V? velocityVector, optional long lastFrameTimeNanos, optional long finishedTimeNanos, optional boolean isRunning); + method public static V createZeroVectorFrom(androidx.compose.animation.core.TwoWayConverter, T value); + method public static boolean isFinished(androidx.compose.animation.core.AnimationState); + } + + public abstract sealed class AnimationVector { + } + + public final class AnimationVector1D extends androidx.compose.animation.core.AnimationVector { + ctor public AnimationVector1D(float initVal); + method public float getValue(); + property public final float value; + } + + public final class AnimationVector2D extends androidx.compose.animation.core.AnimationVector { + ctor public AnimationVector2D(float v1, float v2); + method public float getV1(); + method public float getV2(); + property public final float v1; + property public final float v2; + } + + public final class AnimationVector3D extends androidx.compose.animation.core.AnimationVector { + ctor public AnimationVector3D(float v1, float v2, float v3); + method public float getV1(); + method public float getV2(); + method public float getV3(); + property public final float v1; + property public final float v2; + property public final float v3; + } + + public final class AnimationVector4D extends androidx.compose.animation.core.AnimationVector { + ctor public AnimationVector4D(float v1, float v2, float v3, float v4); + method public float getV1(); + method public float getV2(); + method public float getV3(); + method public float getV4(); + property public final float v1; + property public final float v2; + property public final float v3; + property public final float v4; + } + + public final class AnimationVectorsKt { + method public static androidx.compose.animation.core.AnimationVector1D AnimationVector(float v1); + method public static androidx.compose.animation.core.AnimationVector2D AnimationVector(float v1, float v2); + method public static androidx.compose.animation.core.AnimationVector3D AnimationVector(float v1, float v2, float v3); + method public static androidx.compose.animation.core.AnimationVector4D AnimationVector(float v1, float v2, float v3, float v4); + } + + @SuppressCompatibility @androidx.compose.animation.core.ExperimentalAnimationSpecApi @androidx.compose.runtime.Immutable public final class ArcAnimationSpec implements androidx.compose.animation.core.DurationBasedAnimationSpec { + ctor public ArcAnimationSpec(optional int mode, optional int durationMillis, optional int delayMillis, optional androidx.compose.animation.core.Easing easing); + method public int getDelayMillis(); + method public int getDurationMillis(); + method public androidx.compose.animation.core.Easing getEasing(); + method public int getMode(); + method public androidx.compose.animation.core.VectorizedDurationBasedAnimationSpec vectorize(androidx.compose.animation.core.TwoWayConverter converter); + property public final int delayMillis; + property public final int durationMillis; + property public final androidx.compose.animation.core.Easing easing; + property public final int mode; + } + + @SuppressCompatibility @androidx.compose.animation.core.ExperimentalAnimationSpecApi @kotlin.jvm.JvmInline public final value class ArcMode { + field public static final androidx.compose.animation.core.ArcMode.Companion Companion; + } + + public static final class ArcMode.Companion { + method public int getArcAbove(); + method public int getArcBelow(); + method public int getArcLinear(); + property public final int ArcAbove; + property public final int ArcBelow; + property public final int ArcLinear; + } + + @androidx.compose.runtime.Immutable public final class CubicBezierEasing implements androidx.compose.animation.core.Easing { + ctor public CubicBezierEasing(float a, float b, float c, float d); + method public float transform(float fraction); + } + + public final class DecayAnimation implements androidx.compose.animation.core.Animation { + ctor public DecayAnimation(androidx.compose.animation.core.DecayAnimationSpec animationSpec, androidx.compose.animation.core.TwoWayConverter typeConverter, T initialValue, T initialVelocity); + ctor public DecayAnimation(androidx.compose.animation.core.DecayAnimationSpec animationSpec, androidx.compose.animation.core.TwoWayConverter typeConverter, T initialValue, V initialVelocityVector); + ctor public DecayAnimation(androidx.compose.animation.core.VectorizedDecayAnimationSpec animationSpec, androidx.compose.animation.core.TwoWayConverter typeConverter, T initialValue, V initialVelocityVector); + method public long getDurationNanos(); + method public T getInitialValue(); + method public V getInitialVelocityVector(); + method public T getTargetValue(); + method public androidx.compose.animation.core.TwoWayConverter getTypeConverter(); + method public T getValueFromNanos(long playTimeNanos); + method public V getVelocityVectorFromNanos(long playTimeNanos); + method public boolean isInfinite(); + property public long durationNanos; + property public final T initialValue; + property public final V initialVelocityVector; + property public boolean isInfinite; + property public T targetValue; + property public androidx.compose.animation.core.TwoWayConverter typeConverter; + } + + public interface DecayAnimationSpec { + method public androidx.compose.animation.core.VectorizedDecayAnimationSpec vectorize(androidx.compose.animation.core.TwoWayConverter typeConverter); + } + + public final class DecayAnimationSpecKt { + method public static float calculateTargetValue(androidx.compose.animation.core.DecayAnimationSpec, float initialValue, float initialVelocity); + method public static T calculateTargetValue(androidx.compose.animation.core.DecayAnimationSpec, androidx.compose.animation.core.TwoWayConverter typeConverter, T initialValue, T initialVelocity); + method public static androidx.compose.animation.core.DecayAnimationSpec exponentialDecay(optional @FloatRange(from=0.0, fromInclusive=false) float frictionMultiplier, optional @FloatRange(from=0.0, fromInclusive=false) float absVelocityThreshold); + method public static androidx.compose.animation.core.DecayAnimationSpec generateDecayAnimationSpec(androidx.compose.animation.core.FloatDecayAnimationSpec); + } + + @SuppressCompatibility @androidx.compose.animation.core.ExperimentalAnimatableApi public final class DeferredTargetAnimation { + ctor public DeferredTargetAnimation(androidx.compose.animation.core.TwoWayConverter vectorConverter); + method public T? getPendingTarget(); + method public boolean isIdle(); + method public T updateTarget(T target, kotlinx.coroutines.CoroutineScope coroutineScope, optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec); + property public final boolean isIdle; + property public final T? pendingTarget; + } + + public interface DurationBasedAnimationSpec extends androidx.compose.animation.core.FiniteAnimationSpec { + method public androidx.compose.animation.core.VectorizedDurationBasedAnimationSpec vectorize(androidx.compose.animation.core.TwoWayConverter converter); + } + + @androidx.compose.runtime.Stable public fun interface Easing { + method public float transform(float fraction); + } + + public final class EasingFunctionsKt { + method public static androidx.compose.animation.core.Easing getEase(); + method public static androidx.compose.animation.core.Easing getEaseIn(); + method public static androidx.compose.animation.core.Easing getEaseInBack(); + method public static androidx.compose.animation.core.Easing getEaseInBounce(); + method public static androidx.compose.animation.core.Easing getEaseInCirc(); + method public static androidx.compose.animation.core.Easing getEaseInCubic(); + method public static androidx.compose.animation.core.Easing getEaseInElastic(); + method public static androidx.compose.animation.core.Easing getEaseInExpo(); + method public static androidx.compose.animation.core.Easing getEaseInOut(); + method public static androidx.compose.animation.core.Easing getEaseInOutBack(); + method public static androidx.compose.animation.core.Easing getEaseInOutBounce(); + method public static androidx.compose.animation.core.Easing getEaseInOutCirc(); + method public static androidx.compose.animation.core.Easing getEaseInOutCubic(); + method public static androidx.compose.animation.core.Easing getEaseInOutElastic(); + method public static androidx.compose.animation.core.Easing getEaseInOutExpo(); + method public static androidx.compose.animation.core.Easing getEaseInOutQuad(); + method public static androidx.compose.animation.core.Easing getEaseInOutQuart(); + method public static androidx.compose.animation.core.Easing getEaseInOutQuint(); + method public static androidx.compose.animation.core.Easing getEaseInOutSine(); + method public static androidx.compose.animation.core.Easing getEaseInQuad(); + method public static androidx.compose.animation.core.Easing getEaseInQuart(); + method public static androidx.compose.animation.core.Easing getEaseInQuint(); + method public static androidx.compose.animation.core.Easing getEaseInSine(); + method public static androidx.compose.animation.core.Easing getEaseOut(); + method public static androidx.compose.animation.core.Easing getEaseOutBack(); + method public static androidx.compose.animation.core.Easing getEaseOutBounce(); + method public static androidx.compose.animation.core.Easing getEaseOutCirc(); + method public static androidx.compose.animation.core.Easing getEaseOutCubic(); + method public static androidx.compose.animation.core.Easing getEaseOutElastic(); + method public static androidx.compose.animation.core.Easing getEaseOutExpo(); + method public static androidx.compose.animation.core.Easing getEaseOutQuad(); + method public static androidx.compose.animation.core.Easing getEaseOutQuart(); + method public static androidx.compose.animation.core.Easing getEaseOutQuint(); + method public static androidx.compose.animation.core.Easing getEaseOutSine(); + property public static final androidx.compose.animation.core.Easing Ease; + property public static final androidx.compose.animation.core.Easing EaseIn; + property public static final androidx.compose.animation.core.Easing EaseInBack; + property public static final androidx.compose.animation.core.Easing EaseInBounce; + property public static final androidx.compose.animation.core.Easing EaseInCirc; + property public static final androidx.compose.animation.core.Easing EaseInCubic; + property public static final androidx.compose.animation.core.Easing EaseInElastic; + property public static final androidx.compose.animation.core.Easing EaseInExpo; + property public static final androidx.compose.animation.core.Easing EaseInOut; + property public static final androidx.compose.animation.core.Easing EaseInOutBack; + property public static final androidx.compose.animation.core.Easing EaseInOutBounce; + property public static final androidx.compose.animation.core.Easing EaseInOutCirc; + property public static final androidx.compose.animation.core.Easing EaseInOutCubic; + property public static final androidx.compose.animation.core.Easing EaseInOutElastic; + property public static final androidx.compose.animation.core.Easing EaseInOutExpo; + property public static final androidx.compose.animation.core.Easing EaseInOutQuad; + property public static final androidx.compose.animation.core.Easing EaseInOutQuart; + property public static final androidx.compose.animation.core.Easing EaseInOutQuint; + property public static final androidx.compose.animation.core.Easing EaseInOutSine; + property public static final androidx.compose.animation.core.Easing EaseInQuad; + property public static final androidx.compose.animation.core.Easing EaseInQuart; + property public static final androidx.compose.animation.core.Easing EaseInQuint; + property public static final androidx.compose.animation.core.Easing EaseInSine; + property public static final androidx.compose.animation.core.Easing EaseOut; + property public static final androidx.compose.animation.core.Easing EaseOutBack; + property public static final androidx.compose.animation.core.Easing EaseOutBounce; + property public static final androidx.compose.animation.core.Easing EaseOutCirc; + property public static final androidx.compose.animation.core.Easing EaseOutCubic; + property public static final androidx.compose.animation.core.Easing EaseOutElastic; + property public static final androidx.compose.animation.core.Easing EaseOutExpo; + property public static final androidx.compose.animation.core.Easing EaseOutQuad; + property public static final androidx.compose.animation.core.Easing EaseOutQuart; + property public static final androidx.compose.animation.core.Easing EaseOutQuint; + property public static final androidx.compose.animation.core.Easing EaseOutSine; + } + + public final class EasingKt { + method public static androidx.compose.animation.core.Easing getFastOutLinearInEasing(); + method public static androidx.compose.animation.core.Easing getFastOutSlowInEasing(); + method public static androidx.compose.animation.core.Easing getLinearEasing(); + method public static androidx.compose.animation.core.Easing getLinearOutSlowInEasing(); + property public static final androidx.compose.animation.core.Easing FastOutLinearInEasing; + property public static final androidx.compose.animation.core.Easing FastOutSlowInEasing; + property public static final androidx.compose.animation.core.Easing LinearEasing; + property public static final androidx.compose.animation.core.Easing LinearOutSlowInEasing; + } + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This is an experimental animation API for Transition. It may change in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalAnimatableApi { + } + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This is an experimental animation API for AnimationSpec. " + "It may change in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalAnimationSpecApi { + } + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This is an experimental animation API for Transition. It may change in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalTransitionApi { + } + + public interface FiniteAnimationSpec extends androidx.compose.animation.core.AnimationSpec { + method public androidx.compose.animation.core.VectorizedFiniteAnimationSpec vectorize(androidx.compose.animation.core.TwoWayConverter converter); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface FloatAnimationSpec extends androidx.compose.animation.core.AnimationSpec { + method public long getDurationNanos(float initialValue, float targetValue, float initialVelocity); + method public default float getEndVelocity(float initialValue, float targetValue, float initialVelocity); + method public float getValueFromNanos(long playTimeNanos, float initialValue, float targetValue, float initialVelocity); + method public float getVelocityFromNanos(long playTimeNanos, float initialValue, float targetValue, float initialVelocity); + method public default androidx.compose.animation.core.VectorizedFloatAnimationSpec vectorize(androidx.compose.animation.core.TwoWayConverter converter); + } + + public interface FloatDecayAnimationSpec { + method public float getAbsVelocityThreshold(); + method public long getDurationNanos(float initialValue, float initialVelocity); + method public float getTargetValue(float initialValue, float initialVelocity); + method public float getValueFromNanos(long playTimeNanos, float initialValue, float initialVelocity); + method public float getVelocityFromNanos(long playTimeNanos, float initialValue, float initialVelocity); + property public abstract float absVelocityThreshold; + } + + public final class FloatExponentialDecaySpec implements androidx.compose.animation.core.FloatDecayAnimationSpec { + ctor public FloatExponentialDecaySpec(optional @FloatRange(from=0.0, fromInclusive=false) float frictionMultiplier, optional @FloatRange(from=0.0, fromInclusive=false) float absVelocityThreshold); + method public float getAbsVelocityThreshold(); + method public long getDurationNanos(float initialValue, float initialVelocity); + method public float getTargetValue(float initialValue, float initialVelocity); + method public float getValueFromNanos(long playTimeNanos, float initialValue, float initialVelocity); + method public float getVelocityFromNanos(long playTimeNanos, float initialValue, float initialVelocity); + property public float absVelocityThreshold; + } + + public final class FloatSpringSpec implements androidx.compose.animation.core.FloatAnimationSpec { + ctor public FloatSpringSpec(optional float dampingRatio, optional float stiffness, optional float visibilityThreshold); + method public float getDampingRatio(); + method public long getDurationNanos(float initialValue, float targetValue, float initialVelocity); + method public float getStiffness(); + method public float getValueFromNanos(long playTimeNanos, float initialValue, float targetValue, float initialVelocity); + method public float getVelocityFromNanos(long playTimeNanos, float initialValue, float targetValue, float initialVelocity); + property public final float dampingRatio; + property public final float stiffness; + } + + public final class FloatTweenSpec implements androidx.compose.animation.core.FloatAnimationSpec { + ctor public FloatTweenSpec(optional int duration, optional int delay, optional androidx.compose.animation.core.Easing easing); + method public int getDelay(); + method public int getDuration(); + method public long getDurationNanos(float initialValue, float targetValue, float initialVelocity); + method public float getValueFromNanos(long playTimeNanos, float initialValue, float targetValue, float initialVelocity); + method public float getVelocityFromNanos(long playTimeNanos, float initialValue, float targetValue, float initialVelocity); + property public final int delay; + property public final int duration; + } + + public final class InfiniteAnimationPolicyKt { + method public static suspend inline Object? withInfiniteAnimationFrameMillis(kotlin.jvm.functions.Function1 onFrame, kotlin.coroutines.Continuation); + method public static suspend Object? withInfiniteAnimationFrameNanos(kotlin.jvm.functions.Function1 onFrame, kotlin.coroutines.Continuation); + } + + public final class InfiniteRepeatableSpec implements androidx.compose.animation.core.AnimationSpec { + ctor @Deprecated public InfiniteRepeatableSpec(androidx.compose.animation.core.DurationBasedAnimationSpec animation, optional androidx.compose.animation.core.RepeatMode repeatMode); + ctor public InfiniteRepeatableSpec(androidx.compose.animation.core.DurationBasedAnimationSpec animation, optional androidx.compose.animation.core.RepeatMode repeatMode, optional long initialStartOffset); + method public androidx.compose.animation.core.DurationBasedAnimationSpec getAnimation(); + method public long getInitialStartOffset(); + method public androidx.compose.animation.core.RepeatMode getRepeatMode(); + method public androidx.compose.animation.core.VectorizedAnimationSpec vectorize(androidx.compose.animation.core.TwoWayConverter converter); + property public final androidx.compose.animation.core.DurationBasedAnimationSpec animation; + property public final long initialStartOffset; + property public final androidx.compose.animation.core.RepeatMode repeatMode; + } + + public final class InfiniteTransition { + method public java.util.List> getAnimations(); + method public String getLabel(); + property public final java.util.List> animations; + property public final String label; + } + + public final class InfiniteTransition.TransitionAnimationState implements androidx.compose.runtime.State { + method public androidx.compose.animation.core.TargetBasedAnimation getAnimation(); + method public androidx.compose.animation.core.AnimationSpec getAnimationSpec(); + method public String getLabel(); + method public androidx.compose.animation.core.TwoWayConverter getTypeConverter(); + method public T getValue(); + property public final androidx.compose.animation.core.TargetBasedAnimation animation; + property public final androidx.compose.animation.core.AnimationSpec animationSpec; + property public final String label; + property public final androidx.compose.animation.core.TwoWayConverter typeConverter; + property public T value; + } + + public final class InfiniteTransitionKt { + method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateFloat(androidx.compose.animation.core.InfiniteTransition, float initialValue, float targetValue, androidx.compose.animation.core.InfiniteRepeatableSpec animationSpec); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateFloat(androidx.compose.animation.core.InfiniteTransition, float initialValue, float targetValue, androidx.compose.animation.core.InfiniteRepeatableSpec animationSpec, optional String label); + method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateValue(androidx.compose.animation.core.InfiniteTransition, T initialValue, T targetValue, androidx.compose.animation.core.TwoWayConverter typeConverter, androidx.compose.animation.core.InfiniteRepeatableSpec animationSpec); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateValue(androidx.compose.animation.core.InfiniteTransition, T initialValue, T targetValue, androidx.compose.animation.core.TwoWayConverter typeConverter, androidx.compose.animation.core.InfiniteRepeatableSpec animationSpec, optional String label); + method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.animation.core.InfiniteTransition rememberInfiniteTransition(); + method @androidx.compose.runtime.Composable public static androidx.compose.animation.core.InfiniteTransition rememberInfiniteTransition(optional String label); + } + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This API is internal to library.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY, kotlin.annotation.AnnotationTarget.FIELD, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface InternalAnimationApi { + } + + public abstract sealed class KeyframeBaseEntity { + } + + @androidx.compose.runtime.Immutable public final class KeyframesSpec implements androidx.compose.animation.core.DurationBasedAnimationSpec { + ctor public KeyframesSpec(androidx.compose.animation.core.KeyframesSpec.KeyframesSpecConfig config); + method public androidx.compose.animation.core.KeyframesSpec.KeyframesSpecConfig getConfig(); + method public androidx.compose.animation.core.VectorizedKeyframesSpec vectorize(androidx.compose.animation.core.TwoWayConverter converter); + property public final androidx.compose.animation.core.KeyframesSpec.KeyframesSpecConfig config; + } + + public static final class KeyframesSpec.KeyframeEntity extends androidx.compose.animation.core.KeyframeBaseEntity { + } + + public static final class KeyframesSpec.KeyframesSpecConfig extends androidx.compose.animation.core.KeyframesSpecBaseConfig> { + ctor public KeyframesSpec.KeyframesSpecConfig(); + method public infix androidx.compose.animation.core.KeyframesSpec.KeyframeEntity at(T, @IntRange(from=0L) int timeStamp); + method public infix androidx.compose.animation.core.KeyframesSpec.KeyframeEntity atFraction(T, @FloatRange(from=0.0, to=1.0) float fraction); + method @SuppressCompatibility @androidx.compose.animation.core.ExperimentalAnimationSpecApi public infix androidx.compose.animation.core.KeyframesSpec.KeyframeEntity using(androidx.compose.animation.core.KeyframesSpec.KeyframeEntity, int arcMode); + method @Deprecated public infix void with(androidx.compose.animation.core.KeyframesSpec.KeyframeEntity, androidx.compose.animation.core.Easing easing); + } + + public abstract sealed class KeyframesSpecBaseConfig> { + method public infix E at(T, @IntRange(from=0L) int timeStamp); + method public infix E atFraction(T, @FloatRange(from=0.0, to=1.0) float fraction); + method @IntRange(from=0L) public final int getDelayMillis(); + method @IntRange(from=0L) public final int getDurationMillis(); + method public final void setDelayMillis(@IntRange(from=0L) int); + method public final void setDurationMillis(@IntRange(from=0L) int); + method public final infix E using(E, androidx.compose.animation.core.Easing easing); + property @IntRange(from=0L) public final int delayMillis; + property @IntRange(from=0L) public final int durationMillis; + } + + @SuppressCompatibility @androidx.compose.animation.core.ExperimentalAnimationSpecApi @androidx.compose.runtime.Immutable public final class KeyframesWithSplineSpec implements androidx.compose.animation.core.DurationBasedAnimationSpec { + ctor public KeyframesWithSplineSpec(androidx.compose.animation.core.KeyframesWithSplineSpec.KeyframesWithSplineSpecConfig config); + ctor public KeyframesWithSplineSpec(androidx.compose.animation.core.KeyframesWithSplineSpec.KeyframesWithSplineSpecConfig config, @FloatRange(from=0.0, to=1.0) float periodicBias); + method public androidx.compose.animation.core.KeyframesWithSplineSpec.KeyframesWithSplineSpecConfig getConfig(); + method public androidx.compose.animation.core.VectorizedDurationBasedAnimationSpec vectorize(androidx.compose.animation.core.TwoWayConverter converter); + property public final androidx.compose.animation.core.KeyframesWithSplineSpec.KeyframesWithSplineSpecConfig config; + } + + @SuppressCompatibility @androidx.compose.animation.core.ExperimentalAnimationSpecApi public static final class KeyframesWithSplineSpec.KeyframesWithSplineSpecConfig extends androidx.compose.animation.core.KeyframesSpecBaseConfig> { + ctor public KeyframesWithSplineSpec.KeyframesWithSplineSpecConfig(); + } + + public final class MutableTransitionState extends androidx.compose.animation.core.TransitionState { + ctor public MutableTransitionState(S initialState); + method public S getCurrentState(); + method public S getTargetState(); + method public boolean isIdle(); + method public void setTargetState(S); + property public S currentState; + property public final boolean isIdle; + property public S targetState; + } + + @androidx.compose.runtime.Immutable public final class PathEasing implements androidx.compose.animation.core.Easing { + ctor public PathEasing(androidx.compose.ui.graphics.Path path); + method public float transform(float fraction); + } + + public enum RepeatMode { + enum_constant public static final androidx.compose.animation.core.RepeatMode Restart; + enum_constant public static final androidx.compose.animation.core.RepeatMode Reverse; + } + + @androidx.compose.runtime.Immutable public final class RepeatableSpec implements androidx.compose.animation.core.FiniteAnimationSpec { + ctor @Deprecated public RepeatableSpec(int iterations, androidx.compose.animation.core.DurationBasedAnimationSpec animation, optional androidx.compose.animation.core.RepeatMode repeatMode); + ctor public RepeatableSpec(int iterations, androidx.compose.animation.core.DurationBasedAnimationSpec animation, optional androidx.compose.animation.core.RepeatMode repeatMode, optional long initialStartOffset); + method public androidx.compose.animation.core.DurationBasedAnimationSpec getAnimation(); + method public long getInitialStartOffset(); + method public int getIterations(); + method public androidx.compose.animation.core.RepeatMode getRepeatMode(); + method public androidx.compose.animation.core.VectorizedFiniteAnimationSpec vectorize(androidx.compose.animation.core.TwoWayConverter converter); + property public final androidx.compose.animation.core.DurationBasedAnimationSpec animation; + property public final long initialStartOffset; + property public final int iterations; + property public final androidx.compose.animation.core.RepeatMode repeatMode; + } + + public final class SeekableTransitionState extends androidx.compose.animation.core.TransitionState { + ctor public SeekableTransitionState(S initialState); + method public suspend Object? animateTo(optional S targetState, optional androidx.compose.animation.core.FiniteAnimationSpec? animationSpec, kotlin.coroutines.Continuation); + method public S getCurrentState(); + method @FloatRange(from=0.0, to=1.0) public float getFraction(); + method public S getTargetState(); + method public suspend Object? seekTo(@FloatRange(from=0.0, to=1.0) float fraction, optional S targetState, kotlin.coroutines.Continuation); + method public suspend Object? snapTo(S targetState, kotlin.coroutines.Continuation); + property public S currentState; + property @FloatRange(from=0.0, to=1.0) public final float fraction; + property public S targetState; + } + + @androidx.compose.runtime.Immutable public final class SnapSpec implements androidx.compose.animation.core.DurationBasedAnimationSpec { + ctor public SnapSpec(optional int delay); + method public int getDelay(); + method public androidx.compose.animation.core.VectorizedDurationBasedAnimationSpec vectorize(androidx.compose.animation.core.TwoWayConverter converter); + property public final int delay; + } + + public final class Spring { + field public static final float DampingRatioHighBouncy = 0.2f; + field public static final float DampingRatioLowBouncy = 0.75f; + field public static final float DampingRatioMediumBouncy = 0.5f; + field public static final float DampingRatioNoBouncy = 1.0f; + field public static final float DefaultDisplacementThreshold = 0.01f; + field public static final androidx.compose.animation.core.Spring INSTANCE; + field public static final float StiffnessHigh = 10000.0f; + field public static final float StiffnessLow = 200.0f; + field public static final float StiffnessMedium = 1500.0f; + field public static final float StiffnessMediumLow = 400.0f; + field public static final float StiffnessVeryLow = 50.0f; + } + + @androidx.compose.runtime.Immutable public final class SpringSpec implements androidx.compose.animation.core.FiniteAnimationSpec { + ctor public SpringSpec(optional float dampingRatio, optional float stiffness, optional T? visibilityThreshold); + method public float getDampingRatio(); + method public float getStiffness(); + method public T? getVisibilityThreshold(); + method public androidx.compose.animation.core.VectorizedSpringSpec vectorize(androidx.compose.animation.core.TwoWayConverter converter); + property public final float dampingRatio; + property public final float stiffness; + property public final T? visibilityThreshold; + } + + @kotlin.jvm.JvmInline public final value class StartOffset { + ctor public StartOffset(int offsetMillis, optional int offsetType); + method public int getOffsetMillis(); + method public int getOffsetType(); + property public final int offsetMillis; + property public final int offsetType; + } + + @kotlin.jvm.JvmInline public final value class StartOffsetType { + field public static final androidx.compose.animation.core.StartOffsetType.Companion Companion; + } + + public static final class StartOffsetType.Companion { + method public int getDelay(); + method public int getFastForward(); + property public final int Delay; + property public final int FastForward; + } + + public final class SuspendAnimationKt { + method public static suspend Object? animate(androidx.compose.animation.core.TwoWayConverter typeConverter, T initialValue, T targetValue, optional T? initialVelocity, optional androidx.compose.animation.core.AnimationSpec animationSpec, kotlin.jvm.functions.Function2 block, kotlin.coroutines.Continuation); + method public static suspend Object? animate(float initialValue, float targetValue, optional float initialVelocity, optional androidx.compose.animation.core.AnimationSpec animationSpec, kotlin.jvm.functions.Function2 block, kotlin.coroutines.Continuation); + method public static suspend Object? animateDecay(androidx.compose.animation.core.AnimationState, androidx.compose.animation.core.DecayAnimationSpec animationSpec, optional boolean sequentialAnimation, optional kotlin.jvm.functions.Function1,kotlin.Unit> block, kotlin.coroutines.Continuation); + method public static suspend Object? animateDecay(float initialValue, float initialVelocity, androidx.compose.animation.core.FloatDecayAnimationSpec animationSpec, kotlin.jvm.functions.Function2 block, kotlin.coroutines.Continuation); + method public static suspend Object? animateTo(androidx.compose.animation.core.AnimationState, T targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional boolean sequentialAnimation, optional kotlin.jvm.functions.Function1,kotlin.Unit> block, kotlin.coroutines.Continuation); + } + + public final class TargetBasedAnimation implements androidx.compose.animation.core.Animation { + ctor public TargetBasedAnimation(androidx.compose.animation.core.AnimationSpec animationSpec, androidx.compose.animation.core.TwoWayConverter typeConverter, T initialValue, T targetValue, optional V? initialVelocityVector); + method public long getDurationNanos(); + method public T getInitialValue(); + method public T getTargetValue(); + method public androidx.compose.animation.core.TwoWayConverter getTypeConverter(); + method public T getValueFromNanos(long playTimeNanos); + method public V getVelocityVectorFromNanos(long playTimeNanos); + method public boolean isInfinite(); + property public long durationNanos; + property public final T initialValue; + property public boolean isInfinite; + property public T targetValue; + property public androidx.compose.animation.core.TwoWayConverter typeConverter; + } + + @androidx.compose.runtime.Stable public final class Transition { + method public java.util.List.TransitionAnimationState> getAnimations(); + method public S getCurrentState(); + method @SuppressCompatibility @androidx.compose.animation.core.InternalAnimationApi public boolean getHasInitialValueAnimations(); + method public String? getLabel(); + method public androidx.compose.animation.core.Transition.Segment getSegment(); + method public S getTargetState(); + method public long getTotalDurationNanos(); + method public java.util.List> getTransitions(); + method public boolean isRunning(); + property public final java.util.List.TransitionAnimationState> animations; + property public final S currentState; + property @SuppressCompatibility @androidx.compose.animation.core.InternalAnimationApi public final boolean hasInitialValueAnimations; + property public final boolean isRunning; + property public final String? label; + property public final androidx.compose.animation.core.Transition.Segment segment; + property public final S targetState; + property public final long totalDurationNanos; + property public final java.util.List> transitions; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public static interface Transition.Segment { + method public S getInitialState(); + method public S getTargetState(); + method public default infix boolean isTransitioningTo(S, S targetState); + property public abstract S initialState; + property public abstract S targetState; + } + + @androidx.compose.runtime.Stable public final class Transition.TransitionAnimationState implements androidx.compose.runtime.State { + method public androidx.compose.animation.core.TargetBasedAnimation getAnimation(); + method public androidx.compose.animation.core.FiniteAnimationSpec getAnimationSpec(); + method public String getLabel(); + method public androidx.compose.animation.core.TwoWayConverter getTypeConverter(); + method public T getValue(); + property public final androidx.compose.animation.core.TargetBasedAnimation animation; + property public final androidx.compose.animation.core.FiniteAnimationSpec animationSpec; + property public final String label; + property public final androidx.compose.animation.core.TwoWayConverter typeConverter; + property public T value; + } + + public final class TransitionKt { + method @androidx.compose.runtime.Composable public static inline androidx.compose.runtime.State animateDp(androidx.compose.animation.core.Transition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.core.FiniteAnimationSpec> transitionSpec, optional String label, kotlin.jvm.functions.Function1 targetValueByState); + method @androidx.compose.runtime.Composable public static inline androidx.compose.runtime.State animateFloat(androidx.compose.animation.core.Transition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.core.FiniteAnimationSpec> transitionSpec, optional String label, kotlin.jvm.functions.Function1 targetValueByState); + method @androidx.compose.runtime.Composable public static inline androidx.compose.runtime.State animateInt(androidx.compose.animation.core.Transition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.core.FiniteAnimationSpec> transitionSpec, optional String label, kotlin.jvm.functions.Function1 targetValueByState); + method @androidx.compose.runtime.Composable public static inline androidx.compose.runtime.State animateIntOffset(androidx.compose.animation.core.Transition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.core.FiniteAnimationSpec> transitionSpec, optional String label, kotlin.jvm.functions.Function1 targetValueByState); + method @androidx.compose.runtime.Composable public static inline androidx.compose.runtime.State animateIntSize(androidx.compose.animation.core.Transition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.core.FiniteAnimationSpec> transitionSpec, optional String label, kotlin.jvm.functions.Function1 targetValueByState); + method @androidx.compose.runtime.Composable public static inline androidx.compose.runtime.State animateOffset(androidx.compose.animation.core.Transition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.core.FiniteAnimationSpec> transitionSpec, optional String label, kotlin.jvm.functions.Function1 targetValueByState); + method @androidx.compose.runtime.Composable public static inline androidx.compose.runtime.State animateRect(androidx.compose.animation.core.Transition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.core.FiniteAnimationSpec> transitionSpec, optional String label, kotlin.jvm.functions.Function1 targetValueByState); + method @androidx.compose.runtime.Composable public static inline androidx.compose.runtime.State animateSize(androidx.compose.animation.core.Transition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.core.FiniteAnimationSpec> transitionSpec, optional String label, kotlin.jvm.functions.Function1 targetValueByState); + method @androidx.compose.runtime.Composable public static inline androidx.compose.runtime.State animateValue(androidx.compose.animation.core.Transition, androidx.compose.animation.core.TwoWayConverter typeConverter, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.core.FiniteAnimationSpec> transitionSpec, optional String label, kotlin.jvm.functions.Function1 targetValueByState); + method @SuppressCompatibility @androidx.compose.animation.core.ExperimentalTransitionApi @androidx.compose.runtime.Composable public static inline androidx.compose.animation.core.Transition createChildTransition(androidx.compose.animation.core.Transition, optional String label, kotlin.jvm.functions.Function1 transformToChildState); + method @androidx.compose.runtime.Composable public static androidx.compose.animation.core.Transition rememberTransition(androidx.compose.animation.core.TransitionState transitionState, optional String? label); + method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.animation.core.Transition updateTransition(androidx.compose.animation.core.MutableTransitionState transitionState, optional String? label); + method @androidx.compose.runtime.Composable public static androidx.compose.animation.core.Transition updateTransition(T targetState, optional String? label); + } + + public abstract sealed class TransitionState { + method public abstract S getCurrentState(); + method public abstract S getTargetState(); + property public abstract S currentState; + property public abstract S targetState; + } + + @androidx.compose.runtime.Immutable public final class TweenSpec implements androidx.compose.animation.core.DurationBasedAnimationSpec { + ctor public TweenSpec(optional int durationMillis, optional int delay, optional androidx.compose.animation.core.Easing easing); + method public int getDelay(); + method public int getDurationMillis(); + method public androidx.compose.animation.core.Easing getEasing(); + method public androidx.compose.animation.core.VectorizedTweenSpec vectorize(androidx.compose.animation.core.TwoWayConverter converter); + property public final int delay; + property public final int durationMillis; + property public final androidx.compose.animation.core.Easing easing; + } + + public interface TwoWayConverter { + method public kotlin.jvm.functions.Function1 getConvertFromVector(); + method public kotlin.jvm.functions.Function1 getConvertToVector(); + property public abstract kotlin.jvm.functions.Function1 convertFromVector; + property public abstract kotlin.jvm.functions.Function1 convertToVector; + } + + public final class VectorConvertersKt { + method public static androidx.compose.animation.core.TwoWayConverter TwoWayConverter(kotlin.jvm.functions.Function1 convertToVector, kotlin.jvm.functions.Function1 convertFromVector); + method public static androidx.compose.animation.core.TwoWayConverter getVectorConverter(androidx.compose.ui.geometry.Offset.Companion); + method public static androidx.compose.animation.core.TwoWayConverter getVectorConverter(androidx.compose.ui.geometry.Rect.Companion); + method public static androidx.compose.animation.core.TwoWayConverter getVectorConverter(androidx.compose.ui.geometry.Size.Companion); + method public static androidx.compose.animation.core.TwoWayConverter getVectorConverter(androidx.compose.ui.unit.Dp.Companion); + method public static androidx.compose.animation.core.TwoWayConverter getVectorConverter(androidx.compose.ui.unit.DpOffset.Companion); + method public static androidx.compose.animation.core.TwoWayConverter getVectorConverter(androidx.compose.ui.unit.IntOffset.Companion); + method public static androidx.compose.animation.core.TwoWayConverter getVectorConverter(androidx.compose.ui.unit.IntSize.Companion); + method public static androidx.compose.animation.core.TwoWayConverter getVectorConverter(kotlin.jvm.internal.FloatCompanionObject); + method public static androidx.compose.animation.core.TwoWayConverter getVectorConverter(kotlin.jvm.internal.IntCompanionObject); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface VectorizedAnimationSpec { + method public long getDurationNanos(V initialValue, V targetValue, V initialVelocity); + method public default V getEndVelocity(V initialValue, V targetValue, V initialVelocity); + method public V getValueFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity); + method public V getVelocityFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity); + method public boolean isInfinite(); + property public abstract boolean isInfinite; + } + + public interface VectorizedDecayAnimationSpec { + method public float getAbsVelocityThreshold(); + method public long getDurationNanos(V initialValue, V initialVelocity); + method public V getTargetValue(V initialValue, V initialVelocity); + method public V getValueFromNanos(long playTimeNanos, V initialValue, V initialVelocity); + method public V getVelocityFromNanos(long playTimeNanos, V initialValue, V initialVelocity); + property public abstract float absVelocityThreshold; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface VectorizedDurationBasedAnimationSpec extends androidx.compose.animation.core.VectorizedFiniteAnimationSpec { + method public int getDelayMillis(); + method public int getDurationMillis(); + method public default long getDurationNanos(V initialValue, V targetValue, V initialVelocity); + property public abstract int delayMillis; + property public abstract int durationMillis; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface VectorizedFiniteAnimationSpec extends androidx.compose.animation.core.VectorizedAnimationSpec { + method public default boolean isInfinite(); + property public default boolean isInfinite; + } + + public final class VectorizedFloatAnimationSpec implements androidx.compose.animation.core.VectorizedFiniteAnimationSpec { + ctor public VectorizedFloatAnimationSpec(androidx.compose.animation.core.FloatAnimationSpec anim); + method public long getDurationNanos(V initialValue, V targetValue, V initialVelocity); + method public V getValueFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity); + method public V getVelocityFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity); + } + + public final class VectorizedInfiniteRepeatableSpec implements androidx.compose.animation.core.VectorizedAnimationSpec { + ctor @Deprecated public VectorizedInfiniteRepeatableSpec(androidx.compose.animation.core.VectorizedDurationBasedAnimationSpec animation, optional androidx.compose.animation.core.RepeatMode repeatMode); + ctor public VectorizedInfiniteRepeatableSpec(androidx.compose.animation.core.VectorizedDurationBasedAnimationSpec animation, optional androidx.compose.animation.core.RepeatMode repeatMode, optional long initialStartOffset); + method public long getDurationNanos(V initialValue, V targetValue, V initialVelocity); + method public V getValueFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity); + method public V getVelocityFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity); + method public boolean isInfinite(); + property public boolean isInfinite; + } + + public final class VectorizedKeyframesSpec implements androidx.compose.animation.core.VectorizedDurationBasedAnimationSpec { + ctor public VectorizedKeyframesSpec(java.util.Map> keyframes, int durationMillis, optional int delayMillis); + method public int getDelayMillis(); + method public int getDurationMillis(); + method public V getValueFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity); + method public V getVelocityFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity); + property public int delayMillis; + property public int durationMillis; + } + + public final class VectorizedRepeatableSpec implements androidx.compose.animation.core.VectorizedFiniteAnimationSpec { + ctor @Deprecated public VectorizedRepeatableSpec(int iterations, androidx.compose.animation.core.VectorizedDurationBasedAnimationSpec animation, optional androidx.compose.animation.core.RepeatMode repeatMode); + ctor public VectorizedRepeatableSpec(int iterations, androidx.compose.animation.core.VectorizedDurationBasedAnimationSpec animation, optional androidx.compose.animation.core.RepeatMode repeatMode, optional long initialStartOffset); + method public long getDurationNanos(V initialValue, V targetValue, V initialVelocity); + method public V getValueFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity); + method public V getVelocityFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity); + } + + public final class VectorizedSnapSpec implements androidx.compose.animation.core.VectorizedDurationBasedAnimationSpec { + ctor public VectorizedSnapSpec(optional int delayMillis); + method public int getDelayMillis(); + method public int getDurationMillis(); + method public V getValueFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity); + method public V getVelocityFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity); + property public int delayMillis; + property public int durationMillis; + } + + public final class VectorizedSpringSpec implements androidx.compose.animation.core.VectorizedFiniteAnimationSpec { + ctor public VectorizedSpringSpec(optional float dampingRatio, optional float stiffness, optional V? visibilityThreshold); + method public float getDampingRatio(); + method public float getStiffness(); + property public final float dampingRatio; + property public final float stiffness; + } + + public final class VectorizedTweenSpec implements androidx.compose.animation.core.VectorizedDurationBasedAnimationSpec { + ctor public VectorizedTweenSpec(optional int durationMillis, optional int delayMillis, optional androidx.compose.animation.core.Easing easing); + method public int getDelayMillis(); + method public int getDurationMillis(); + method public androidx.compose.animation.core.Easing getEasing(); + method public V getValueFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity); + method public V getVelocityFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity); + property public int delayMillis; + property public int durationMillis; + property public final androidx.compose.animation.core.Easing easing; + } + + public final class VisibilityThresholdsKt { + method public static long getVisibilityThreshold(androidx.compose.ui.geometry.Offset.Companion); + method public static androidx.compose.ui.geometry.Rect getVisibilityThreshold(androidx.compose.ui.geometry.Rect.Companion); + method public static long getVisibilityThreshold(androidx.compose.ui.geometry.Size.Companion); + method public static float getVisibilityThreshold(androidx.compose.ui.unit.Dp.Companion); + method public static long getVisibilityThreshold(androidx.compose.ui.unit.DpOffset.Companion); + method public static long getVisibilityThreshold(androidx.compose.ui.unit.IntOffset.Companion); + method public static long getVisibilityThreshold(androidx.compose.ui.unit.IntSize.Companion); + method public static int getVisibilityThreshold(kotlin.jvm.internal.IntCompanionObject); + } + +} + diff --git a/compose/animation/animation-core/api/res-1.7.0-beta07.txt b/compose/animation/animation-core/api/res-1.7.0-beta07.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/compose/animation/animation-core/api/restricted_1.7.0-beta07.txt b/compose/animation/animation-core/api/restricted_1.7.0-beta07.txt new file mode 100644 index 0000000000000..6e1c2589bc55a --- /dev/null +++ b/compose/animation/animation-core/api/restricted_1.7.0-beta07.txt @@ -0,0 +1,859 @@ +// Signature format: 4.0 +package androidx.compose.animation.core { + + public final class Animatable { + ctor @Deprecated public Animatable(T initialValue, androidx.compose.animation.core.TwoWayConverter typeConverter, optional T? visibilityThreshold); + ctor public Animatable(T initialValue, androidx.compose.animation.core.TwoWayConverter typeConverter, optional T? visibilityThreshold, optional String label); + method public suspend Object? animateDecay(T initialVelocity, androidx.compose.animation.core.DecayAnimationSpec animationSpec, optional kotlin.jvm.functions.Function1,kotlin.Unit>? block, kotlin.coroutines.Continuation>); + method public suspend Object? animateTo(T targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional T initialVelocity, optional kotlin.jvm.functions.Function1,kotlin.Unit>? block, kotlin.coroutines.Continuation>); + method public androidx.compose.runtime.State asState(); + method public String getLabel(); + method public T? getLowerBound(); + method public T getTargetValue(); + method public androidx.compose.animation.core.TwoWayConverter getTypeConverter(); + method public T? getUpperBound(); + method public T getValue(); + method public T getVelocity(); + method public V getVelocityVector(); + method public boolean isRunning(); + method public suspend Object? snapTo(T targetValue, kotlin.coroutines.Continuation); + method public suspend Object? stop(kotlin.coroutines.Continuation); + method public void updateBounds(optional T? lowerBound, optional T? upperBound); + property public final boolean isRunning; + property public final String label; + property public final T? lowerBound; + property public final T targetValue; + property public final androidx.compose.animation.core.TwoWayConverter typeConverter; + property public final T? upperBound; + property public final T value; + property public final T velocity; + property public final V velocityVector; + } + + public final class AnimatableKt { + method public static androidx.compose.animation.core.Animatable Animatable(float initialValue, optional float visibilityThreshold); + } + + public final class AnimateAsStateKt { + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateDpAsState(float targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional String label, optional kotlin.jvm.functions.Function1? finishedListener); + method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateDpAsState(float targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional kotlin.jvm.functions.Function1? finishedListener); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateFloatAsState(float targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional float visibilityThreshold, optional String label, optional kotlin.jvm.functions.Function1? finishedListener); + method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateFloatAsState(float targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional float visibilityThreshold, optional kotlin.jvm.functions.Function1? finishedListener); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateIntAsState(int targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional String label, optional kotlin.jvm.functions.Function1? finishedListener); + method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateIntAsState(int targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional kotlin.jvm.functions.Function1? finishedListener); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateIntOffsetAsState(long targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional String label, optional kotlin.jvm.functions.Function1? finishedListener); + method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateIntOffsetAsState(long targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional kotlin.jvm.functions.Function1? finishedListener); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateIntSizeAsState(long targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional String label, optional kotlin.jvm.functions.Function1? finishedListener); + method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateIntSizeAsState(long targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional kotlin.jvm.functions.Function1? finishedListener); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateOffsetAsState(long targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional String label, optional kotlin.jvm.functions.Function1? finishedListener); + method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateOffsetAsState(long targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional kotlin.jvm.functions.Function1? finishedListener); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateRectAsState(androidx.compose.ui.geometry.Rect targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional String label, optional kotlin.jvm.functions.Function1? finishedListener); + method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateRectAsState(androidx.compose.ui.geometry.Rect targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional kotlin.jvm.functions.Function1? finishedListener); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateSizeAsState(long targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional String label, optional kotlin.jvm.functions.Function1? finishedListener); + method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateSizeAsState(long targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional kotlin.jvm.functions.Function1? finishedListener); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateValueAsState(T targetValue, androidx.compose.animation.core.TwoWayConverter typeConverter, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional T? visibilityThreshold, optional String label, optional kotlin.jvm.functions.Function1? finishedListener); + method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateValueAsState(T targetValue, androidx.compose.animation.core.TwoWayConverter typeConverter, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional T? visibilityThreshold, optional kotlin.jvm.functions.Function1? finishedListener); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface Animation { + method public long getDurationNanos(); + method public T getTargetValue(); + method public androidx.compose.animation.core.TwoWayConverter getTypeConverter(); + method public T getValueFromNanos(long playTimeNanos); + method public V getVelocityVectorFromNanos(long playTimeNanos); + method public default boolean isFinishedFromNanos(long playTimeNanos); + method public boolean isInfinite(); + property public abstract long durationNanos; + property public abstract boolean isInfinite; + property public abstract T targetValue; + property public abstract androidx.compose.animation.core.TwoWayConverter typeConverter; + } + + public final class AnimationConstants { + field public static final int DefaultDurationMillis = 300; // 0x12c + field public static final androidx.compose.animation.core.AnimationConstants INSTANCE; + field public static final long UnspecifiedTime = -9223372036854775808L; // 0x8000000000000000L + } + + public enum AnimationEndReason { + enum_constant public static final androidx.compose.animation.core.AnimationEndReason BoundReached; + enum_constant public static final androidx.compose.animation.core.AnimationEndReason Finished; + } + + public final class AnimationKt { + method public static androidx.compose.animation.core.DecayAnimation DecayAnimation(androidx.compose.animation.core.FloatDecayAnimationSpec animationSpec, float initialValue, optional float initialVelocity); + method public static androidx.compose.animation.core.TargetBasedAnimation TargetBasedAnimation(androidx.compose.animation.core.AnimationSpec animationSpec, androidx.compose.animation.core.TwoWayConverter typeConverter, T initialValue, T targetValue, T initialVelocity); + method public static T getVelocityFromNanos(androidx.compose.animation.core.Animation, long playTimeNanos); + } + + public final class AnimationResult { + ctor public AnimationResult(androidx.compose.animation.core.AnimationState endState, androidx.compose.animation.core.AnimationEndReason endReason); + method public androidx.compose.animation.core.AnimationEndReason getEndReason(); + method public androidx.compose.animation.core.AnimationState getEndState(); + property public final androidx.compose.animation.core.AnimationEndReason endReason; + property public final androidx.compose.animation.core.AnimationState endState; + } + + public final class AnimationScope { + method public void cancelAnimation(); + method public long getFinishedTimeNanos(); + method public long getLastFrameTimeNanos(); + method public long getStartTimeNanos(); + method public T getTargetValue(); + method public androidx.compose.animation.core.TwoWayConverter getTypeConverter(); + method public T getValue(); + method public T getVelocity(); + method public V getVelocityVector(); + method public boolean isRunning(); + method public androidx.compose.animation.core.AnimationState toAnimationState(); + property public final long finishedTimeNanos; + property public final boolean isRunning; + property public final long lastFrameTimeNanos; + property public final long startTimeNanos; + property public final T targetValue; + property public final androidx.compose.animation.core.TwoWayConverter typeConverter; + property public final T value; + property public final T velocity; + property public final V velocityVector; + } + + public interface AnimationSpec { + method public androidx.compose.animation.core.VectorizedAnimationSpec vectorize(androidx.compose.animation.core.TwoWayConverter converter); + } + + public final class AnimationSpecKt { + method @Deprecated @androidx.compose.runtime.Stable public static androidx.compose.animation.core.InfiniteRepeatableSpec infiniteRepeatable(androidx.compose.animation.core.DurationBasedAnimationSpec animation, optional androidx.compose.animation.core.RepeatMode repeatMode); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.core.InfiniteRepeatableSpec infiniteRepeatable(androidx.compose.animation.core.DurationBasedAnimationSpec animation, optional androidx.compose.animation.core.RepeatMode repeatMode, optional long initialStartOffset); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.core.KeyframesSpec keyframes(kotlin.jvm.functions.Function1,kotlin.Unit> init); + method @SuppressCompatibility @androidx.compose.animation.core.ExperimentalAnimationSpecApi public static androidx.compose.animation.core.KeyframesWithSplineSpec keyframesWithSpline(@FloatRange(from=0.0, to=1.0) float periodicBias, kotlin.jvm.functions.Function1,kotlin.Unit> init); + method @SuppressCompatibility @androidx.compose.animation.core.ExperimentalAnimationSpecApi public static androidx.compose.animation.core.KeyframesWithSplineSpec keyframesWithSpline(kotlin.jvm.functions.Function1,kotlin.Unit> init); + method @Deprecated @androidx.compose.runtime.Stable public static androidx.compose.animation.core.RepeatableSpec repeatable(int iterations, androidx.compose.animation.core.DurationBasedAnimationSpec animation, optional androidx.compose.animation.core.RepeatMode repeatMode); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.core.RepeatableSpec repeatable(int iterations, androidx.compose.animation.core.DurationBasedAnimationSpec animation, optional androidx.compose.animation.core.RepeatMode repeatMode, optional long initialStartOffset); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.core.SnapSpec snap(optional int delayMillis); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.core.SpringSpec spring(optional float dampingRatio, optional float stiffness, optional T? visibilityThreshold); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.core.TweenSpec tween(optional int durationMillis, optional int delayMillis, optional androidx.compose.animation.core.Easing easing); + } + + public final class AnimationState implements androidx.compose.runtime.State { + ctor public AnimationState(androidx.compose.animation.core.TwoWayConverter typeConverter, T initialValue, optional V? initialVelocityVector, optional long lastFrameTimeNanos, optional long finishedTimeNanos, optional boolean isRunning); + method public long getFinishedTimeNanos(); + method public long getLastFrameTimeNanos(); + method public androidx.compose.animation.core.TwoWayConverter getTypeConverter(); + method public T getValue(); + method public T getVelocity(); + method public V getVelocityVector(); + method public boolean isRunning(); + property public final long finishedTimeNanos; + property public final boolean isRunning; + property public final long lastFrameTimeNanos; + property public final androidx.compose.animation.core.TwoWayConverter typeConverter; + property public T value; + property public final T velocity; + property public final V velocityVector; + } + + public final class AnimationStateKt { + method public static androidx.compose.animation.core.AnimationState AnimationState(androidx.compose.animation.core.TwoWayConverter typeConverter, T initialValue, T initialVelocity, optional long lastFrameTimeNanos, optional long finishedTimeNanos, optional boolean isRunning); + method public static androidx.compose.animation.core.AnimationState AnimationState(float initialValue, optional float initialVelocity, optional long lastFrameTimeNanos, optional long finishedTimeNanos, optional boolean isRunning); + method public static androidx.compose.animation.core.AnimationState copy(androidx.compose.animation.core.AnimationState, optional float value, optional float velocity, optional long lastFrameTimeNanos, optional long finishedTimeNanos, optional boolean isRunning); + method public static androidx.compose.animation.core.AnimationState copy(androidx.compose.animation.core.AnimationState, optional T value, optional V? velocityVector, optional long lastFrameTimeNanos, optional long finishedTimeNanos, optional boolean isRunning); + method public static V createZeroVectorFrom(androidx.compose.animation.core.TwoWayConverter, T value); + method public static boolean isFinished(androidx.compose.animation.core.AnimationState); + } + + public abstract sealed class AnimationVector { + } + + public final class AnimationVector1D extends androidx.compose.animation.core.AnimationVector { + ctor public AnimationVector1D(float initVal); + method public float getValue(); + property public final float value; + } + + public final class AnimationVector2D extends androidx.compose.animation.core.AnimationVector { + ctor public AnimationVector2D(float v1, float v2); + method public float getV1(); + method public float getV2(); + property public final float v1; + property public final float v2; + } + + public final class AnimationVector3D extends androidx.compose.animation.core.AnimationVector { + ctor public AnimationVector3D(float v1, float v2, float v3); + method public float getV1(); + method public float getV2(); + method public float getV3(); + property public final float v1; + property public final float v2; + property public final float v3; + } + + public final class AnimationVector4D extends androidx.compose.animation.core.AnimationVector { + ctor public AnimationVector4D(float v1, float v2, float v3, float v4); + method public float getV1(); + method public float getV2(); + method public float getV3(); + method public float getV4(); + property public final float v1; + property public final float v2; + property public final float v3; + property public final float v4; + } + + public final class AnimationVectorsKt { + method public static androidx.compose.animation.core.AnimationVector1D AnimationVector(float v1); + method public static androidx.compose.animation.core.AnimationVector2D AnimationVector(float v1, float v2); + method public static androidx.compose.animation.core.AnimationVector3D AnimationVector(float v1, float v2, float v3); + method public static androidx.compose.animation.core.AnimationVector4D AnimationVector(float v1, float v2, float v3, float v4); + } + + @SuppressCompatibility @androidx.compose.animation.core.ExperimentalAnimationSpecApi @androidx.compose.runtime.Immutable public final class ArcAnimationSpec implements androidx.compose.animation.core.DurationBasedAnimationSpec { + ctor public ArcAnimationSpec(optional int mode, optional int durationMillis, optional int delayMillis, optional androidx.compose.animation.core.Easing easing); + method public int getDelayMillis(); + method public int getDurationMillis(); + method public androidx.compose.animation.core.Easing getEasing(); + method public int getMode(); + method public androidx.compose.animation.core.VectorizedDurationBasedAnimationSpec vectorize(androidx.compose.animation.core.TwoWayConverter converter); + property public final int delayMillis; + property public final int durationMillis; + property public final androidx.compose.animation.core.Easing easing; + property public final int mode; + } + + @SuppressCompatibility @androidx.compose.animation.core.ExperimentalAnimationSpecApi @kotlin.jvm.JvmInline public final value class ArcMode { + field public static final androidx.compose.animation.core.ArcMode.Companion Companion; + } + + public static final class ArcMode.Companion { + method public int getArcAbove(); + method public int getArcBelow(); + method public int getArcLinear(); + property public final int ArcAbove; + property public final int ArcBelow; + property public final int ArcLinear; + } + + @androidx.compose.runtime.Immutable public final class CubicBezierEasing implements androidx.compose.animation.core.Easing { + ctor public CubicBezierEasing(float a, float b, float c, float d); + method public float transform(float fraction); + } + + public final class DecayAnimation implements androidx.compose.animation.core.Animation { + ctor public DecayAnimation(androidx.compose.animation.core.DecayAnimationSpec animationSpec, androidx.compose.animation.core.TwoWayConverter typeConverter, T initialValue, T initialVelocity); + ctor public DecayAnimation(androidx.compose.animation.core.DecayAnimationSpec animationSpec, androidx.compose.animation.core.TwoWayConverter typeConverter, T initialValue, V initialVelocityVector); + ctor public DecayAnimation(androidx.compose.animation.core.VectorizedDecayAnimationSpec animationSpec, androidx.compose.animation.core.TwoWayConverter typeConverter, T initialValue, V initialVelocityVector); + method public long getDurationNanos(); + method public T getInitialValue(); + method public V getInitialVelocityVector(); + method public T getTargetValue(); + method public androidx.compose.animation.core.TwoWayConverter getTypeConverter(); + method public T getValueFromNanos(long playTimeNanos); + method public V getVelocityVectorFromNanos(long playTimeNanos); + method public boolean isInfinite(); + property public long durationNanos; + property public final T initialValue; + property public final V initialVelocityVector; + property public boolean isInfinite; + property public T targetValue; + property public androidx.compose.animation.core.TwoWayConverter typeConverter; + } + + public interface DecayAnimationSpec { + method public androidx.compose.animation.core.VectorizedDecayAnimationSpec vectorize(androidx.compose.animation.core.TwoWayConverter typeConverter); + } + + public final class DecayAnimationSpecKt { + method public static float calculateTargetValue(androidx.compose.animation.core.DecayAnimationSpec, float initialValue, float initialVelocity); + method public static T calculateTargetValue(androidx.compose.animation.core.DecayAnimationSpec, androidx.compose.animation.core.TwoWayConverter typeConverter, T initialValue, T initialVelocity); + method public static androidx.compose.animation.core.DecayAnimationSpec exponentialDecay(optional @FloatRange(from=0.0, fromInclusive=false) float frictionMultiplier, optional @FloatRange(from=0.0, fromInclusive=false) float absVelocityThreshold); + method public static androidx.compose.animation.core.DecayAnimationSpec generateDecayAnimationSpec(androidx.compose.animation.core.FloatDecayAnimationSpec); + } + + @SuppressCompatibility @androidx.compose.animation.core.ExperimentalAnimatableApi public final class DeferredTargetAnimation { + ctor public DeferredTargetAnimation(androidx.compose.animation.core.TwoWayConverter vectorConverter); + method public T? getPendingTarget(); + method public boolean isIdle(); + method public T updateTarget(T target, kotlinx.coroutines.CoroutineScope coroutineScope, optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec); + property public final boolean isIdle; + property public final T? pendingTarget; + } + + public interface DurationBasedAnimationSpec extends androidx.compose.animation.core.FiniteAnimationSpec { + method public androidx.compose.animation.core.VectorizedDurationBasedAnimationSpec vectorize(androidx.compose.animation.core.TwoWayConverter converter); + } + + @androidx.compose.runtime.Stable public fun interface Easing { + method public float transform(float fraction); + } + + public final class EasingFunctionsKt { + method public static androidx.compose.animation.core.Easing getEase(); + method public static androidx.compose.animation.core.Easing getEaseIn(); + method public static androidx.compose.animation.core.Easing getEaseInBack(); + method public static androidx.compose.animation.core.Easing getEaseInBounce(); + method public static androidx.compose.animation.core.Easing getEaseInCirc(); + method public static androidx.compose.animation.core.Easing getEaseInCubic(); + method public static androidx.compose.animation.core.Easing getEaseInElastic(); + method public static androidx.compose.animation.core.Easing getEaseInExpo(); + method public static androidx.compose.animation.core.Easing getEaseInOut(); + method public static androidx.compose.animation.core.Easing getEaseInOutBack(); + method public static androidx.compose.animation.core.Easing getEaseInOutBounce(); + method public static androidx.compose.animation.core.Easing getEaseInOutCirc(); + method public static androidx.compose.animation.core.Easing getEaseInOutCubic(); + method public static androidx.compose.animation.core.Easing getEaseInOutElastic(); + method public static androidx.compose.animation.core.Easing getEaseInOutExpo(); + method public static androidx.compose.animation.core.Easing getEaseInOutQuad(); + method public static androidx.compose.animation.core.Easing getEaseInOutQuart(); + method public static androidx.compose.animation.core.Easing getEaseInOutQuint(); + method public static androidx.compose.animation.core.Easing getEaseInOutSine(); + method public static androidx.compose.animation.core.Easing getEaseInQuad(); + method public static androidx.compose.animation.core.Easing getEaseInQuart(); + method public static androidx.compose.animation.core.Easing getEaseInQuint(); + method public static androidx.compose.animation.core.Easing getEaseInSine(); + method public static androidx.compose.animation.core.Easing getEaseOut(); + method public static androidx.compose.animation.core.Easing getEaseOutBack(); + method public static androidx.compose.animation.core.Easing getEaseOutBounce(); + method public static androidx.compose.animation.core.Easing getEaseOutCirc(); + method public static androidx.compose.animation.core.Easing getEaseOutCubic(); + method public static androidx.compose.animation.core.Easing getEaseOutElastic(); + method public static androidx.compose.animation.core.Easing getEaseOutExpo(); + method public static androidx.compose.animation.core.Easing getEaseOutQuad(); + method public static androidx.compose.animation.core.Easing getEaseOutQuart(); + method public static androidx.compose.animation.core.Easing getEaseOutQuint(); + method public static androidx.compose.animation.core.Easing getEaseOutSine(); + property public static final androidx.compose.animation.core.Easing Ease; + property public static final androidx.compose.animation.core.Easing EaseIn; + property public static final androidx.compose.animation.core.Easing EaseInBack; + property public static final androidx.compose.animation.core.Easing EaseInBounce; + property public static final androidx.compose.animation.core.Easing EaseInCirc; + property public static final androidx.compose.animation.core.Easing EaseInCubic; + property public static final androidx.compose.animation.core.Easing EaseInElastic; + property public static final androidx.compose.animation.core.Easing EaseInExpo; + property public static final androidx.compose.animation.core.Easing EaseInOut; + property public static final androidx.compose.animation.core.Easing EaseInOutBack; + property public static final androidx.compose.animation.core.Easing EaseInOutBounce; + property public static final androidx.compose.animation.core.Easing EaseInOutCirc; + property public static final androidx.compose.animation.core.Easing EaseInOutCubic; + property public static final androidx.compose.animation.core.Easing EaseInOutElastic; + property public static final androidx.compose.animation.core.Easing EaseInOutExpo; + property public static final androidx.compose.animation.core.Easing EaseInOutQuad; + property public static final androidx.compose.animation.core.Easing EaseInOutQuart; + property public static final androidx.compose.animation.core.Easing EaseInOutQuint; + property public static final androidx.compose.animation.core.Easing EaseInOutSine; + property public static final androidx.compose.animation.core.Easing EaseInQuad; + property public static final androidx.compose.animation.core.Easing EaseInQuart; + property public static final androidx.compose.animation.core.Easing EaseInQuint; + property public static final androidx.compose.animation.core.Easing EaseInSine; + property public static final androidx.compose.animation.core.Easing EaseOut; + property public static final androidx.compose.animation.core.Easing EaseOutBack; + property public static final androidx.compose.animation.core.Easing EaseOutBounce; + property public static final androidx.compose.animation.core.Easing EaseOutCirc; + property public static final androidx.compose.animation.core.Easing EaseOutCubic; + property public static final androidx.compose.animation.core.Easing EaseOutElastic; + property public static final androidx.compose.animation.core.Easing EaseOutExpo; + property public static final androidx.compose.animation.core.Easing EaseOutQuad; + property public static final androidx.compose.animation.core.Easing EaseOutQuart; + property public static final androidx.compose.animation.core.Easing EaseOutQuint; + property public static final androidx.compose.animation.core.Easing EaseOutSine; + } + + public final class EasingKt { + method public static androidx.compose.animation.core.Easing getFastOutLinearInEasing(); + method public static androidx.compose.animation.core.Easing getFastOutSlowInEasing(); + method public static androidx.compose.animation.core.Easing getLinearEasing(); + method public static androidx.compose.animation.core.Easing getLinearOutSlowInEasing(); + property public static final androidx.compose.animation.core.Easing FastOutLinearInEasing; + property public static final androidx.compose.animation.core.Easing FastOutSlowInEasing; + property public static final androidx.compose.animation.core.Easing LinearEasing; + property public static final androidx.compose.animation.core.Easing LinearOutSlowInEasing; + } + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This is an experimental animation API for Transition. It may change in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalAnimatableApi { + } + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This is an experimental animation API for AnimationSpec. " + "It may change in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalAnimationSpecApi { + } + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This is an experimental animation API for Transition. It may change in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalTransitionApi { + } + + public interface FiniteAnimationSpec extends androidx.compose.animation.core.AnimationSpec { + method public androidx.compose.animation.core.VectorizedFiniteAnimationSpec vectorize(androidx.compose.animation.core.TwoWayConverter converter); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface FloatAnimationSpec extends androidx.compose.animation.core.AnimationSpec { + method public long getDurationNanos(float initialValue, float targetValue, float initialVelocity); + method public default float getEndVelocity(float initialValue, float targetValue, float initialVelocity); + method public float getValueFromNanos(long playTimeNanos, float initialValue, float targetValue, float initialVelocity); + method public float getVelocityFromNanos(long playTimeNanos, float initialValue, float targetValue, float initialVelocity); + method public default androidx.compose.animation.core.VectorizedFloatAnimationSpec vectorize(androidx.compose.animation.core.TwoWayConverter converter); + } + + public interface FloatDecayAnimationSpec { + method public float getAbsVelocityThreshold(); + method public long getDurationNanos(float initialValue, float initialVelocity); + method public float getTargetValue(float initialValue, float initialVelocity); + method public float getValueFromNanos(long playTimeNanos, float initialValue, float initialVelocity); + method public float getVelocityFromNanos(long playTimeNanos, float initialValue, float initialVelocity); + property public abstract float absVelocityThreshold; + } + + public final class FloatExponentialDecaySpec implements androidx.compose.animation.core.FloatDecayAnimationSpec { + ctor public FloatExponentialDecaySpec(optional @FloatRange(from=0.0, fromInclusive=false) float frictionMultiplier, optional @FloatRange(from=0.0, fromInclusive=false) float absVelocityThreshold); + method public float getAbsVelocityThreshold(); + method public long getDurationNanos(float initialValue, float initialVelocity); + method public float getTargetValue(float initialValue, float initialVelocity); + method public float getValueFromNanos(long playTimeNanos, float initialValue, float initialVelocity); + method public float getVelocityFromNanos(long playTimeNanos, float initialValue, float initialVelocity); + property public float absVelocityThreshold; + } + + public final class FloatSpringSpec implements androidx.compose.animation.core.FloatAnimationSpec { + ctor public FloatSpringSpec(optional float dampingRatio, optional float stiffness, optional float visibilityThreshold); + method public float getDampingRatio(); + method public long getDurationNanos(float initialValue, float targetValue, float initialVelocity); + method public float getStiffness(); + method public float getValueFromNanos(long playTimeNanos, float initialValue, float targetValue, float initialVelocity); + method public float getVelocityFromNanos(long playTimeNanos, float initialValue, float targetValue, float initialVelocity); + property public final float dampingRatio; + property public final float stiffness; + } + + public final class FloatTweenSpec implements androidx.compose.animation.core.FloatAnimationSpec { + ctor public FloatTweenSpec(optional int duration, optional int delay, optional androidx.compose.animation.core.Easing easing); + method public int getDelay(); + method public int getDuration(); + method public long getDurationNanos(float initialValue, float targetValue, float initialVelocity); + method public float getValueFromNanos(long playTimeNanos, float initialValue, float targetValue, float initialVelocity); + method public float getVelocityFromNanos(long playTimeNanos, float initialValue, float targetValue, float initialVelocity); + property public final int delay; + property public final int duration; + } + + public final class InfiniteAnimationPolicyKt { + method public static suspend inline Object? withInfiniteAnimationFrameMillis(kotlin.jvm.functions.Function1 onFrame, kotlin.coroutines.Continuation); + method public static suspend Object? withInfiniteAnimationFrameNanos(kotlin.jvm.functions.Function1 onFrame, kotlin.coroutines.Continuation); + } + + public final class InfiniteRepeatableSpec implements androidx.compose.animation.core.AnimationSpec { + ctor @Deprecated public InfiniteRepeatableSpec(androidx.compose.animation.core.DurationBasedAnimationSpec animation, optional androidx.compose.animation.core.RepeatMode repeatMode); + ctor public InfiniteRepeatableSpec(androidx.compose.animation.core.DurationBasedAnimationSpec animation, optional androidx.compose.animation.core.RepeatMode repeatMode, optional long initialStartOffset); + method public androidx.compose.animation.core.DurationBasedAnimationSpec getAnimation(); + method public long getInitialStartOffset(); + method public androidx.compose.animation.core.RepeatMode getRepeatMode(); + method public androidx.compose.animation.core.VectorizedAnimationSpec vectorize(androidx.compose.animation.core.TwoWayConverter converter); + property public final androidx.compose.animation.core.DurationBasedAnimationSpec animation; + property public final long initialStartOffset; + property public final androidx.compose.animation.core.RepeatMode repeatMode; + } + + public final class InfiniteTransition { + method public java.util.List> getAnimations(); + method public String getLabel(); + property public final java.util.List> animations; + property public final String label; + } + + public final class InfiniteTransition.TransitionAnimationState implements androidx.compose.runtime.State { + method public androidx.compose.animation.core.TargetBasedAnimation getAnimation(); + method public androidx.compose.animation.core.AnimationSpec getAnimationSpec(); + method public String getLabel(); + method public androidx.compose.animation.core.TwoWayConverter getTypeConverter(); + method public T getValue(); + property public final androidx.compose.animation.core.TargetBasedAnimation animation; + property public final androidx.compose.animation.core.AnimationSpec animationSpec; + property public final String label; + property public final androidx.compose.animation.core.TwoWayConverter typeConverter; + property public T value; + } + + public final class InfiniteTransitionKt { + method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateFloat(androidx.compose.animation.core.InfiniteTransition, float initialValue, float targetValue, androidx.compose.animation.core.InfiniteRepeatableSpec animationSpec); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateFloat(androidx.compose.animation.core.InfiniteTransition, float initialValue, float targetValue, androidx.compose.animation.core.InfiniteRepeatableSpec animationSpec, optional String label); + method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateValue(androidx.compose.animation.core.InfiniteTransition, T initialValue, T targetValue, androidx.compose.animation.core.TwoWayConverter typeConverter, androidx.compose.animation.core.InfiniteRepeatableSpec animationSpec); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateValue(androidx.compose.animation.core.InfiniteTransition, T initialValue, T targetValue, androidx.compose.animation.core.TwoWayConverter typeConverter, androidx.compose.animation.core.InfiniteRepeatableSpec animationSpec, optional String label); + method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.animation.core.InfiniteTransition rememberInfiniteTransition(); + method @androidx.compose.runtime.Composable public static androidx.compose.animation.core.InfiniteTransition rememberInfiniteTransition(optional String label); + } + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This API is internal to library.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY, kotlin.annotation.AnnotationTarget.FIELD, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface InternalAnimationApi { + } + + public abstract sealed class KeyframeBaseEntity { + } + + @androidx.compose.runtime.Immutable public final class KeyframesSpec implements androidx.compose.animation.core.DurationBasedAnimationSpec { + ctor public KeyframesSpec(androidx.compose.animation.core.KeyframesSpec.KeyframesSpecConfig config); + method public androidx.compose.animation.core.KeyframesSpec.KeyframesSpecConfig getConfig(); + method public androidx.compose.animation.core.VectorizedKeyframesSpec vectorize(androidx.compose.animation.core.TwoWayConverter converter); + property public final androidx.compose.animation.core.KeyframesSpec.KeyframesSpecConfig config; + } + + public static final class KeyframesSpec.KeyframeEntity extends androidx.compose.animation.core.KeyframeBaseEntity { + } + + public static final class KeyframesSpec.KeyframesSpecConfig extends androidx.compose.animation.core.KeyframesSpecBaseConfig> { + ctor public KeyframesSpec.KeyframesSpecConfig(); + method public infix androidx.compose.animation.core.KeyframesSpec.KeyframeEntity at(T, @IntRange(from=0L) int timeStamp); + method public infix androidx.compose.animation.core.KeyframesSpec.KeyframeEntity atFraction(T, @FloatRange(from=0.0, to=1.0) float fraction); + method @SuppressCompatibility @androidx.compose.animation.core.ExperimentalAnimationSpecApi public infix androidx.compose.animation.core.KeyframesSpec.KeyframeEntity using(androidx.compose.animation.core.KeyframesSpec.KeyframeEntity, int arcMode); + method @Deprecated public infix void with(androidx.compose.animation.core.KeyframesSpec.KeyframeEntity, androidx.compose.animation.core.Easing easing); + } + + public abstract sealed class KeyframesSpecBaseConfig> { + method public infix E at(T, @IntRange(from=0L) int timeStamp); + method public infix E atFraction(T, @FloatRange(from=0.0, to=1.0) float fraction); + method @IntRange(from=0L) public final int getDelayMillis(); + method @IntRange(from=0L) public final int getDurationMillis(); + method public final void setDelayMillis(@IntRange(from=0L) int); + method public final void setDurationMillis(@IntRange(from=0L) int); + method public final infix E using(E, androidx.compose.animation.core.Easing easing); + property @IntRange(from=0L) public final int delayMillis; + property @IntRange(from=0L) public final int durationMillis; + } + + @SuppressCompatibility @androidx.compose.animation.core.ExperimentalAnimationSpecApi @androidx.compose.runtime.Immutable public final class KeyframesWithSplineSpec implements androidx.compose.animation.core.DurationBasedAnimationSpec { + ctor public KeyframesWithSplineSpec(androidx.compose.animation.core.KeyframesWithSplineSpec.KeyframesWithSplineSpecConfig config); + ctor public KeyframesWithSplineSpec(androidx.compose.animation.core.KeyframesWithSplineSpec.KeyframesWithSplineSpecConfig config, @FloatRange(from=0.0, to=1.0) float periodicBias); + method public androidx.compose.animation.core.KeyframesWithSplineSpec.KeyframesWithSplineSpecConfig getConfig(); + method public androidx.compose.animation.core.VectorizedDurationBasedAnimationSpec vectorize(androidx.compose.animation.core.TwoWayConverter converter); + property public final androidx.compose.animation.core.KeyframesWithSplineSpec.KeyframesWithSplineSpecConfig config; + } + + @SuppressCompatibility @androidx.compose.animation.core.ExperimentalAnimationSpecApi public static final class KeyframesWithSplineSpec.KeyframesWithSplineSpecConfig extends androidx.compose.animation.core.KeyframesSpecBaseConfig> { + ctor public KeyframesWithSplineSpec.KeyframesWithSplineSpecConfig(); + } + + public final class MutableTransitionState extends androidx.compose.animation.core.TransitionState { + ctor public MutableTransitionState(S initialState); + method public S getCurrentState(); + method public S getTargetState(); + method public boolean isIdle(); + method public void setTargetState(S); + property public S currentState; + property public final boolean isIdle; + property public S targetState; + } + + @androidx.compose.runtime.Immutable public final class PathEasing implements androidx.compose.animation.core.Easing { + ctor public PathEasing(androidx.compose.ui.graphics.Path path); + method public float transform(float fraction); + } + + public enum RepeatMode { + enum_constant public static final androidx.compose.animation.core.RepeatMode Restart; + enum_constant public static final androidx.compose.animation.core.RepeatMode Reverse; + } + + @androidx.compose.runtime.Immutable public final class RepeatableSpec implements androidx.compose.animation.core.FiniteAnimationSpec { + ctor @Deprecated public RepeatableSpec(int iterations, androidx.compose.animation.core.DurationBasedAnimationSpec animation, optional androidx.compose.animation.core.RepeatMode repeatMode); + ctor public RepeatableSpec(int iterations, androidx.compose.animation.core.DurationBasedAnimationSpec animation, optional androidx.compose.animation.core.RepeatMode repeatMode, optional long initialStartOffset); + method public androidx.compose.animation.core.DurationBasedAnimationSpec getAnimation(); + method public long getInitialStartOffset(); + method public int getIterations(); + method public androidx.compose.animation.core.RepeatMode getRepeatMode(); + method public androidx.compose.animation.core.VectorizedFiniteAnimationSpec vectorize(androidx.compose.animation.core.TwoWayConverter converter); + property public final androidx.compose.animation.core.DurationBasedAnimationSpec animation; + property public final long initialStartOffset; + property public final int iterations; + property public final androidx.compose.animation.core.RepeatMode repeatMode; + } + + public final class SeekableTransitionState extends androidx.compose.animation.core.TransitionState { + ctor public SeekableTransitionState(S initialState); + method public suspend Object? animateTo(optional S targetState, optional androidx.compose.animation.core.FiniteAnimationSpec? animationSpec, kotlin.coroutines.Continuation); + method public S getCurrentState(); + method @FloatRange(from=0.0, to=1.0) public float getFraction(); + method public S getTargetState(); + method public suspend Object? seekTo(@FloatRange(from=0.0, to=1.0) float fraction, optional S targetState, kotlin.coroutines.Continuation); + method public suspend Object? snapTo(S targetState, kotlin.coroutines.Continuation); + property public S currentState; + property @FloatRange(from=0.0, to=1.0) public final float fraction; + property public S targetState; + } + + @androidx.compose.runtime.Immutable public final class SnapSpec implements androidx.compose.animation.core.DurationBasedAnimationSpec { + ctor public SnapSpec(optional int delay); + method public int getDelay(); + method public androidx.compose.animation.core.VectorizedDurationBasedAnimationSpec vectorize(androidx.compose.animation.core.TwoWayConverter converter); + property public final int delay; + } + + public final class Spring { + field public static final float DampingRatioHighBouncy = 0.2f; + field public static final float DampingRatioLowBouncy = 0.75f; + field public static final float DampingRatioMediumBouncy = 0.5f; + field public static final float DampingRatioNoBouncy = 1.0f; + field public static final float DefaultDisplacementThreshold = 0.01f; + field public static final androidx.compose.animation.core.Spring INSTANCE; + field public static final float StiffnessHigh = 10000.0f; + field public static final float StiffnessLow = 200.0f; + field public static final float StiffnessMedium = 1500.0f; + field public static final float StiffnessMediumLow = 400.0f; + field public static final float StiffnessVeryLow = 50.0f; + } + + @androidx.compose.runtime.Immutable public final class SpringSpec implements androidx.compose.animation.core.FiniteAnimationSpec { + ctor public SpringSpec(optional float dampingRatio, optional float stiffness, optional T? visibilityThreshold); + method public float getDampingRatio(); + method public float getStiffness(); + method public T? getVisibilityThreshold(); + method public androidx.compose.animation.core.VectorizedSpringSpec vectorize(androidx.compose.animation.core.TwoWayConverter converter); + property public final float dampingRatio; + property public final float stiffness; + property public final T? visibilityThreshold; + } + + @kotlin.jvm.JvmInline public final value class StartOffset { + ctor public StartOffset(int offsetMillis, optional int offsetType); + method public int getOffsetMillis(); + method public int getOffsetType(); + property public final int offsetMillis; + property public final int offsetType; + } + + @kotlin.jvm.JvmInline public final value class StartOffsetType { + field public static final androidx.compose.animation.core.StartOffsetType.Companion Companion; + } + + public static final class StartOffsetType.Companion { + method public int getDelay(); + method public int getFastForward(); + property public final int Delay; + property public final int FastForward; + } + + public final class SuspendAnimationKt { + method public static suspend Object? animate(androidx.compose.animation.core.TwoWayConverter typeConverter, T initialValue, T targetValue, optional T? initialVelocity, optional androidx.compose.animation.core.AnimationSpec animationSpec, kotlin.jvm.functions.Function2 block, kotlin.coroutines.Continuation); + method public static suspend Object? animate(float initialValue, float targetValue, optional float initialVelocity, optional androidx.compose.animation.core.AnimationSpec animationSpec, kotlin.jvm.functions.Function2 block, kotlin.coroutines.Continuation); + method public static suspend Object? animateDecay(androidx.compose.animation.core.AnimationState, androidx.compose.animation.core.DecayAnimationSpec animationSpec, optional boolean sequentialAnimation, optional kotlin.jvm.functions.Function1,kotlin.Unit> block, kotlin.coroutines.Continuation); + method public static suspend Object? animateDecay(float initialValue, float initialVelocity, androidx.compose.animation.core.FloatDecayAnimationSpec animationSpec, kotlin.jvm.functions.Function2 block, kotlin.coroutines.Continuation); + method public static suspend Object? animateTo(androidx.compose.animation.core.AnimationState, T targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional boolean sequentialAnimation, optional kotlin.jvm.functions.Function1,kotlin.Unit> block, kotlin.coroutines.Continuation); + } + + public final class TargetBasedAnimation implements androidx.compose.animation.core.Animation { + ctor public TargetBasedAnimation(androidx.compose.animation.core.AnimationSpec animationSpec, androidx.compose.animation.core.TwoWayConverter typeConverter, T initialValue, T targetValue, optional V? initialVelocityVector); + method public long getDurationNanos(); + method public T getInitialValue(); + method public T getTargetValue(); + method public androidx.compose.animation.core.TwoWayConverter getTypeConverter(); + method public T getValueFromNanos(long playTimeNanos); + method public V getVelocityVectorFromNanos(long playTimeNanos); + method public boolean isInfinite(); + property public long durationNanos; + property public final T initialValue; + property public boolean isInfinite; + property public T targetValue; + property public androidx.compose.animation.core.TwoWayConverter typeConverter; + } + + @androidx.compose.runtime.Stable public final class Transition { + ctor @kotlin.PublishedApi internal Transition(androidx.compose.animation.core.MutableTransitionState transitionState, optional String? label); + ctor @kotlin.PublishedApi internal Transition(androidx.compose.animation.core.TransitionState transitionState, optional String? label); + method public java.util.List.TransitionAnimationState> getAnimations(); + method public S getCurrentState(); + method @SuppressCompatibility @androidx.compose.animation.core.InternalAnimationApi public boolean getHasInitialValueAnimations(); + method public String? getLabel(); + method public androidx.compose.animation.core.Transition.Segment getSegment(); + method public S getTargetState(); + method public long getTotalDurationNanos(); + method public java.util.List> getTransitions(); + method public boolean isRunning(); + method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void seek(S initialState, S targetState, long playTimeNanos); + property public final java.util.List.TransitionAnimationState> animations; + property public final S currentState; + property @SuppressCompatibility @androidx.compose.animation.core.InternalAnimationApi public final boolean hasInitialValueAnimations; + property public final boolean isRunning; + property public final String? label; + property public final androidx.compose.animation.core.Transition.Segment segment; + property public final S targetState; + property public final long totalDurationNanos; + property public final java.util.List> transitions; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public static interface Transition.Segment { + method public S getInitialState(); + method public S getTargetState(); + method public default infix boolean isTransitioningTo(S, S targetState); + property public abstract S initialState; + property public abstract S targetState; + } + + @androidx.compose.runtime.Stable public final class Transition.TransitionAnimationState implements androidx.compose.runtime.State { + method public androidx.compose.animation.core.TargetBasedAnimation getAnimation(); + method public androidx.compose.animation.core.FiniteAnimationSpec getAnimationSpec(); + method public String getLabel(); + method public androidx.compose.animation.core.TwoWayConverter getTypeConverter(); + method public T getValue(); + property public final androidx.compose.animation.core.TargetBasedAnimation animation; + property public final androidx.compose.animation.core.FiniteAnimationSpec animationSpec; + property public final String label; + property public final androidx.compose.animation.core.TwoWayConverter typeConverter; + property public T value; + } + + public final class TransitionKt { + method @androidx.compose.runtime.Composable public static inline androidx.compose.runtime.State animateDp(androidx.compose.animation.core.Transition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.core.FiniteAnimationSpec> transitionSpec, optional String label, kotlin.jvm.functions.Function1 targetValueByState); + method @androidx.compose.runtime.Composable public static inline androidx.compose.runtime.State animateFloat(androidx.compose.animation.core.Transition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.core.FiniteAnimationSpec> transitionSpec, optional String label, kotlin.jvm.functions.Function1 targetValueByState); + method @androidx.compose.runtime.Composable public static inline androidx.compose.runtime.State animateInt(androidx.compose.animation.core.Transition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.core.FiniteAnimationSpec> transitionSpec, optional String label, kotlin.jvm.functions.Function1 targetValueByState); + method @androidx.compose.runtime.Composable public static inline androidx.compose.runtime.State animateIntOffset(androidx.compose.animation.core.Transition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.core.FiniteAnimationSpec> transitionSpec, optional String label, kotlin.jvm.functions.Function1 targetValueByState); + method @androidx.compose.runtime.Composable public static inline androidx.compose.runtime.State animateIntSize(androidx.compose.animation.core.Transition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.core.FiniteAnimationSpec> transitionSpec, optional String label, kotlin.jvm.functions.Function1 targetValueByState); + method @androidx.compose.runtime.Composable public static inline androidx.compose.runtime.State animateOffset(androidx.compose.animation.core.Transition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.core.FiniteAnimationSpec> transitionSpec, optional String label, kotlin.jvm.functions.Function1 targetValueByState); + method @androidx.compose.runtime.Composable public static inline androidx.compose.runtime.State animateRect(androidx.compose.animation.core.Transition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.core.FiniteAnimationSpec> transitionSpec, optional String label, kotlin.jvm.functions.Function1 targetValueByState); + method @androidx.compose.runtime.Composable public static inline androidx.compose.runtime.State animateSize(androidx.compose.animation.core.Transition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.core.FiniteAnimationSpec> transitionSpec, optional String label, kotlin.jvm.functions.Function1 targetValueByState); + method @androidx.compose.runtime.Composable public static inline androidx.compose.runtime.State animateValue(androidx.compose.animation.core.Transition, androidx.compose.animation.core.TwoWayConverter typeConverter, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.core.FiniteAnimationSpec> transitionSpec, optional String label, kotlin.jvm.functions.Function1 targetValueByState); + method @SuppressCompatibility @androidx.compose.animation.core.ExperimentalTransitionApi @androidx.compose.runtime.Composable public static inline androidx.compose.animation.core.Transition createChildTransition(androidx.compose.animation.core.Transition, optional String label, kotlin.jvm.functions.Function1 transformToChildState); + method @androidx.compose.runtime.Composable @kotlin.PublishedApi internal static androidx.compose.animation.core.Transition createChildTransitionInternal(androidx.compose.animation.core.Transition, T initialState, T targetState, String childLabel); + method @androidx.compose.runtime.Composable @kotlin.PublishedApi internal static androidx.compose.runtime.State createTransitionAnimation(androidx.compose.animation.core.Transition, T initialValue, T targetValue, androidx.compose.animation.core.FiniteAnimationSpec animationSpec, androidx.compose.animation.core.TwoWayConverter typeConverter, String label); + method @androidx.compose.runtime.Composable public static androidx.compose.animation.core.Transition rememberTransition(androidx.compose.animation.core.TransitionState transitionState, optional String? label); + method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.animation.core.Transition updateTransition(androidx.compose.animation.core.MutableTransitionState transitionState, optional String? label); + method @androidx.compose.runtime.Composable public static androidx.compose.animation.core.Transition updateTransition(T targetState, optional String? label); + } + + public abstract sealed class TransitionState { + method public abstract S getCurrentState(); + method public abstract S getTargetState(); + property public abstract S currentState; + property public abstract S targetState; + } + + @androidx.compose.runtime.Immutable public final class TweenSpec implements androidx.compose.animation.core.DurationBasedAnimationSpec { + ctor public TweenSpec(optional int durationMillis, optional int delay, optional androidx.compose.animation.core.Easing easing); + method public int getDelay(); + method public int getDurationMillis(); + method public androidx.compose.animation.core.Easing getEasing(); + method public androidx.compose.animation.core.VectorizedTweenSpec vectorize(androidx.compose.animation.core.TwoWayConverter converter); + property public final int delay; + property public final int durationMillis; + property public final androidx.compose.animation.core.Easing easing; + } + + public interface TwoWayConverter { + method public kotlin.jvm.functions.Function1 getConvertFromVector(); + method public kotlin.jvm.functions.Function1 getConvertToVector(); + property public abstract kotlin.jvm.functions.Function1 convertFromVector; + property public abstract kotlin.jvm.functions.Function1 convertToVector; + } + + public final class VectorConvertersKt { + method public static androidx.compose.animation.core.TwoWayConverter TwoWayConverter(kotlin.jvm.functions.Function1 convertToVector, kotlin.jvm.functions.Function1 convertFromVector); + method public static androidx.compose.animation.core.TwoWayConverter getVectorConverter(androidx.compose.ui.geometry.Offset.Companion); + method public static androidx.compose.animation.core.TwoWayConverter getVectorConverter(androidx.compose.ui.geometry.Rect.Companion); + method public static androidx.compose.animation.core.TwoWayConverter getVectorConverter(androidx.compose.ui.geometry.Size.Companion); + method public static androidx.compose.animation.core.TwoWayConverter getVectorConverter(androidx.compose.ui.unit.Dp.Companion); + method public static androidx.compose.animation.core.TwoWayConverter getVectorConverter(androidx.compose.ui.unit.DpOffset.Companion); + method public static androidx.compose.animation.core.TwoWayConverter getVectorConverter(androidx.compose.ui.unit.IntOffset.Companion); + method public static androidx.compose.animation.core.TwoWayConverter getVectorConverter(androidx.compose.ui.unit.IntSize.Companion); + method public static androidx.compose.animation.core.TwoWayConverter getVectorConverter(kotlin.jvm.internal.FloatCompanionObject); + method public static androidx.compose.animation.core.TwoWayConverter getVectorConverter(kotlin.jvm.internal.IntCompanionObject); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface VectorizedAnimationSpec { + method public long getDurationNanos(V initialValue, V targetValue, V initialVelocity); + method public default V getEndVelocity(V initialValue, V targetValue, V initialVelocity); + method public V getValueFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity); + method public V getVelocityFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity); + method public boolean isInfinite(); + property public abstract boolean isInfinite; + } + + public interface VectorizedDecayAnimationSpec { + method public float getAbsVelocityThreshold(); + method public long getDurationNanos(V initialValue, V initialVelocity); + method public V getTargetValue(V initialValue, V initialVelocity); + method public V getValueFromNanos(long playTimeNanos, V initialValue, V initialVelocity); + method public V getVelocityFromNanos(long playTimeNanos, V initialValue, V initialVelocity); + property public abstract float absVelocityThreshold; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface VectorizedDurationBasedAnimationSpec extends androidx.compose.animation.core.VectorizedFiniteAnimationSpec { + method public int getDelayMillis(); + method public int getDurationMillis(); + method public default long getDurationNanos(V initialValue, V targetValue, V initialVelocity); + property public abstract int delayMillis; + property public abstract int durationMillis; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface VectorizedFiniteAnimationSpec extends androidx.compose.animation.core.VectorizedAnimationSpec { + method public default boolean isInfinite(); + property public default boolean isInfinite; + } + + public final class VectorizedFloatAnimationSpec implements androidx.compose.animation.core.VectorizedFiniteAnimationSpec { + ctor public VectorizedFloatAnimationSpec(androidx.compose.animation.core.FloatAnimationSpec anim); + method public long getDurationNanos(V initialValue, V targetValue, V initialVelocity); + method public V getValueFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity); + method public V getVelocityFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity); + } + + public final class VectorizedInfiniteRepeatableSpec implements androidx.compose.animation.core.VectorizedAnimationSpec { + ctor @Deprecated public VectorizedInfiniteRepeatableSpec(androidx.compose.animation.core.VectorizedDurationBasedAnimationSpec animation, optional androidx.compose.animation.core.RepeatMode repeatMode); + ctor public VectorizedInfiniteRepeatableSpec(androidx.compose.animation.core.VectorizedDurationBasedAnimationSpec animation, optional androidx.compose.animation.core.RepeatMode repeatMode, optional long initialStartOffset); + method public long getDurationNanos(V initialValue, V targetValue, V initialVelocity); + method public V getValueFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity); + method public V getVelocityFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity); + method public boolean isInfinite(); + property public boolean isInfinite; + } + + public final class VectorizedKeyframesSpec implements androidx.compose.animation.core.VectorizedDurationBasedAnimationSpec { + ctor public VectorizedKeyframesSpec(java.util.Map> keyframes, int durationMillis, optional int delayMillis); + method public int getDelayMillis(); + method public int getDurationMillis(); + method public V getValueFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity); + method public V getVelocityFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity); + property public int delayMillis; + property public int durationMillis; + } + + public final class VectorizedRepeatableSpec implements androidx.compose.animation.core.VectorizedFiniteAnimationSpec { + ctor @Deprecated public VectorizedRepeatableSpec(int iterations, androidx.compose.animation.core.VectorizedDurationBasedAnimationSpec animation, optional androidx.compose.animation.core.RepeatMode repeatMode); + ctor public VectorizedRepeatableSpec(int iterations, androidx.compose.animation.core.VectorizedDurationBasedAnimationSpec animation, optional androidx.compose.animation.core.RepeatMode repeatMode, optional long initialStartOffset); + method public long getDurationNanos(V initialValue, V targetValue, V initialVelocity); + method public V getValueFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity); + method public V getVelocityFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity); + } + + public final class VectorizedSnapSpec implements androidx.compose.animation.core.VectorizedDurationBasedAnimationSpec { + ctor public VectorizedSnapSpec(optional int delayMillis); + method public int getDelayMillis(); + method public int getDurationMillis(); + method public V getValueFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity); + method public V getVelocityFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity); + property public int delayMillis; + property public int durationMillis; + } + + public final class VectorizedSpringSpec implements androidx.compose.animation.core.VectorizedFiniteAnimationSpec { + ctor public VectorizedSpringSpec(optional float dampingRatio, optional float stiffness, optional V? visibilityThreshold); + method public float getDampingRatio(); + method public float getStiffness(); + property public final float dampingRatio; + property public final float stiffness; + } + + public final class VectorizedTweenSpec implements androidx.compose.animation.core.VectorizedDurationBasedAnimationSpec { + ctor public VectorizedTweenSpec(optional int durationMillis, optional int delayMillis, optional androidx.compose.animation.core.Easing easing); + method public int getDelayMillis(); + method public int getDurationMillis(); + method public androidx.compose.animation.core.Easing getEasing(); + method public V getValueFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity); + method public V getVelocityFromNanos(long playTimeNanos, V initialValue, V targetValue, V initialVelocity); + property public int delayMillis; + property public int durationMillis; + property public final androidx.compose.animation.core.Easing easing; + } + + public final class VisibilityThresholdsKt { + method public static long getVisibilityThreshold(androidx.compose.ui.geometry.Offset.Companion); + method public static androidx.compose.ui.geometry.Rect getVisibilityThreshold(androidx.compose.ui.geometry.Rect.Companion); + method public static long getVisibilityThreshold(androidx.compose.ui.geometry.Size.Companion); + method public static float getVisibilityThreshold(androidx.compose.ui.unit.Dp.Companion); + method public static long getVisibilityThreshold(androidx.compose.ui.unit.DpOffset.Companion); + method public static long getVisibilityThreshold(androidx.compose.ui.unit.IntOffset.Companion); + method public static long getVisibilityThreshold(androidx.compose.ui.unit.IntSize.Companion); + method public static int getVisibilityThreshold(kotlin.jvm.internal.IntCompanionObject); + } + +} + diff --git a/compose/animation/animation-graphics/api/1.7.0-beta07.txt b/compose/animation/animation-graphics/api/1.7.0-beta07.txt new file mode 100644 index 0000000000000..a2ccbd2882e8d --- /dev/null +++ b/compose/animation/animation-graphics/api/1.7.0-beta07.txt @@ -0,0 +1,35 @@ +// Signature format: 4.0 +package androidx.compose.animation.graphics { + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This is an experimental animation graphics API.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY}) public @interface ExperimentalAnimationGraphicsApi { + } + +} + +package androidx.compose.animation.graphics.res { + + public final class AnimatedVectorPainterResources_androidKt { + method @SuppressCompatibility @androidx.compose.animation.graphics.ExperimentalAnimationGraphicsApi @androidx.compose.runtime.Composable public static androidx.compose.ui.graphics.painter.Painter rememberAnimatedVectorPainter(androidx.compose.animation.graphics.vector.AnimatedImageVector animatedImageVector, boolean atEnd); + } + + public final class AnimatedVectorResources_androidKt { + method @SuppressCompatibility @androidx.compose.animation.graphics.ExperimentalAnimationGraphicsApi @androidx.compose.runtime.Composable public static androidx.compose.animation.graphics.vector.AnimatedImageVector animatedVectorResource(androidx.compose.animation.graphics.vector.AnimatedImageVector.Companion, @DrawableRes int id); + } + +} + +package androidx.compose.animation.graphics.vector { + + @SuppressCompatibility @androidx.compose.animation.graphics.ExperimentalAnimationGraphicsApi @androidx.compose.runtime.Immutable public final class AnimatedImageVector { + method public androidx.compose.ui.graphics.vector.ImageVector getImageVector(); + method public int getTotalDuration(); + property public final androidx.compose.ui.graphics.vector.ImageVector imageVector; + property public final int totalDuration; + field public static final androidx.compose.animation.graphics.vector.AnimatedImageVector.Companion Companion; + } + + public static final class AnimatedImageVector.Companion { + } + +} + diff --git a/compose/animation/animation-graphics/api/res-1.7.0-beta07.txt b/compose/animation/animation-graphics/api/res-1.7.0-beta07.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/compose/animation/animation-graphics/api/restricted_1.7.0-beta07.txt b/compose/animation/animation-graphics/api/restricted_1.7.0-beta07.txt new file mode 100644 index 0000000000000..a2ccbd2882e8d --- /dev/null +++ b/compose/animation/animation-graphics/api/restricted_1.7.0-beta07.txt @@ -0,0 +1,35 @@ +// Signature format: 4.0 +package androidx.compose.animation.graphics { + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This is an experimental animation graphics API.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY}) public @interface ExperimentalAnimationGraphicsApi { + } + +} + +package androidx.compose.animation.graphics.res { + + public final class AnimatedVectorPainterResources_androidKt { + method @SuppressCompatibility @androidx.compose.animation.graphics.ExperimentalAnimationGraphicsApi @androidx.compose.runtime.Composable public static androidx.compose.ui.graphics.painter.Painter rememberAnimatedVectorPainter(androidx.compose.animation.graphics.vector.AnimatedImageVector animatedImageVector, boolean atEnd); + } + + public final class AnimatedVectorResources_androidKt { + method @SuppressCompatibility @androidx.compose.animation.graphics.ExperimentalAnimationGraphicsApi @androidx.compose.runtime.Composable public static androidx.compose.animation.graphics.vector.AnimatedImageVector animatedVectorResource(androidx.compose.animation.graphics.vector.AnimatedImageVector.Companion, @DrawableRes int id); + } + +} + +package androidx.compose.animation.graphics.vector { + + @SuppressCompatibility @androidx.compose.animation.graphics.ExperimentalAnimationGraphicsApi @androidx.compose.runtime.Immutable public final class AnimatedImageVector { + method public androidx.compose.ui.graphics.vector.ImageVector getImageVector(); + method public int getTotalDuration(); + property public final androidx.compose.ui.graphics.vector.ImageVector imageVector; + property public final int totalDuration; + field public static final androidx.compose.animation.graphics.vector.AnimatedImageVector.Companion Companion; + } + + public static final class AnimatedImageVector.Companion { + } + +} + diff --git a/compose/animation/animation-tooling-internal/api/1.7.0-beta07.txt b/compose/animation/animation-tooling-internal/api/1.7.0-beta07.txt new file mode 100644 index 0000000000000..97dbd65248a02 --- /dev/null +++ b/compose/animation/animation-tooling-internal/api/1.7.0-beta07.txt @@ -0,0 +1,55 @@ +// Signature format: 4.0 +package androidx.compose.animation.tooling { + + public final class ComposeAnimatedProperty { + ctor public ComposeAnimatedProperty(String label, Object value); + method public String component1(); + method public Object component2(); + method public androidx.compose.animation.tooling.ComposeAnimatedProperty copy(String label, Object value); + method public String getLabel(); + method public Object getValue(); + property public final String label; + property public final Object value; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface ComposeAnimation { + method public Object getAnimationObject(); + method public default String? getLabel(); + method public default java.util.Set getStates(); + method public androidx.compose.animation.tooling.ComposeAnimationType getType(); + property public abstract Object animationObject; + property public default String? label; + property public default java.util.Set states; + property public abstract androidx.compose.animation.tooling.ComposeAnimationType type; + } + + public enum ComposeAnimationType { + enum_constant public static final androidx.compose.animation.tooling.ComposeAnimationType ANIMATABLE; + enum_constant public static final androidx.compose.animation.tooling.ComposeAnimationType ANIMATED_CONTENT; + enum_constant public static final androidx.compose.animation.tooling.ComposeAnimationType ANIMATED_VALUE; + enum_constant public static final androidx.compose.animation.tooling.ComposeAnimationType ANIMATED_VISIBILITY; + enum_constant public static final androidx.compose.animation.tooling.ComposeAnimationType ANIMATE_CONTENT_SIZE; + enum_constant public static final androidx.compose.animation.tooling.ComposeAnimationType ANIMATE_X_AS_STATE; + enum_constant public static final androidx.compose.animation.tooling.ComposeAnimationType DECAY_ANIMATION; + enum_constant public static final androidx.compose.animation.tooling.ComposeAnimationType INFINITE_TRANSITION; + enum_constant public static final androidx.compose.animation.tooling.ComposeAnimationType TARGET_BASED_ANIMATION; + enum_constant public static final androidx.compose.animation.tooling.ComposeAnimationType TRANSITION_ANIMATION; + enum_constant public static final androidx.compose.animation.tooling.ComposeAnimationType UNSUPPORTED; + } + + public final class TransitionInfo { + ctor public TransitionInfo(String label, String specType, long startTimeMillis, long endTimeMillis, java.util.Map values); + method public long getEndTimeMillis(); + method public String getLabel(); + method public String getSpecType(); + method public long getStartTimeMillis(); + method public java.util.Map getValues(); + property public final long endTimeMillis; + property public final String label; + property public final String specType; + property public final long startTimeMillis; + property public final java.util.Map values; + } + +} + diff --git a/compose/animation/animation-tooling-internal/api/restricted_1.7.0-beta07.txt b/compose/animation/animation-tooling-internal/api/restricted_1.7.0-beta07.txt new file mode 100644 index 0000000000000..97dbd65248a02 --- /dev/null +++ b/compose/animation/animation-tooling-internal/api/restricted_1.7.0-beta07.txt @@ -0,0 +1,55 @@ +// Signature format: 4.0 +package androidx.compose.animation.tooling { + + public final class ComposeAnimatedProperty { + ctor public ComposeAnimatedProperty(String label, Object value); + method public String component1(); + method public Object component2(); + method public androidx.compose.animation.tooling.ComposeAnimatedProperty copy(String label, Object value); + method public String getLabel(); + method public Object getValue(); + property public final String label; + property public final Object value; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface ComposeAnimation { + method public Object getAnimationObject(); + method public default String? getLabel(); + method public default java.util.Set getStates(); + method public androidx.compose.animation.tooling.ComposeAnimationType getType(); + property public abstract Object animationObject; + property public default String? label; + property public default java.util.Set states; + property public abstract androidx.compose.animation.tooling.ComposeAnimationType type; + } + + public enum ComposeAnimationType { + enum_constant public static final androidx.compose.animation.tooling.ComposeAnimationType ANIMATABLE; + enum_constant public static final androidx.compose.animation.tooling.ComposeAnimationType ANIMATED_CONTENT; + enum_constant public static final androidx.compose.animation.tooling.ComposeAnimationType ANIMATED_VALUE; + enum_constant public static final androidx.compose.animation.tooling.ComposeAnimationType ANIMATED_VISIBILITY; + enum_constant public static final androidx.compose.animation.tooling.ComposeAnimationType ANIMATE_CONTENT_SIZE; + enum_constant public static final androidx.compose.animation.tooling.ComposeAnimationType ANIMATE_X_AS_STATE; + enum_constant public static final androidx.compose.animation.tooling.ComposeAnimationType DECAY_ANIMATION; + enum_constant public static final androidx.compose.animation.tooling.ComposeAnimationType INFINITE_TRANSITION; + enum_constant public static final androidx.compose.animation.tooling.ComposeAnimationType TARGET_BASED_ANIMATION; + enum_constant public static final androidx.compose.animation.tooling.ComposeAnimationType TRANSITION_ANIMATION; + enum_constant public static final androidx.compose.animation.tooling.ComposeAnimationType UNSUPPORTED; + } + + public final class TransitionInfo { + ctor public TransitionInfo(String label, String specType, long startTimeMillis, long endTimeMillis, java.util.Map values); + method public long getEndTimeMillis(); + method public String getLabel(); + method public String getSpecType(); + method public long getStartTimeMillis(); + method public java.util.Map getValues(); + property public final long endTimeMillis; + property public final String label; + property public final String specType; + property public final long startTimeMillis; + property public final java.util.Map values; + } + +} + diff --git a/compose/animation/animation/api/1.7.0-beta07.txt b/compose/animation/animation/api/1.7.0-beta07.txt new file mode 100644 index 0000000000000..e3b1efcf0938e --- /dev/null +++ b/compose/animation/animation/api/1.7.0-beta07.txt @@ -0,0 +1,240 @@ +// Signature format: 4.0 +package androidx.compose.animation { + + public final class AndroidActualDefaultDecayAnimationSpec_androidKt { + method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.animation.core.DecayAnimationSpec defaultDecayAnimationSpec(); + } + + public final class AnimatedContentKt { + method @androidx.compose.runtime.Composable public static void AnimatedContent(androidx.compose.animation.core.Transition, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ContentTransform> transitionSpec, optional androidx.compose.ui.Alignment contentAlignment, optional kotlin.jvm.functions.Function1 contentKey, kotlin.jvm.functions.Function2 content); + method @androidx.compose.runtime.Composable public static void AnimatedContent(S targetState, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ContentTransform> transitionSpec, optional androidx.compose.ui.Alignment contentAlignment, optional String label, optional kotlin.jvm.functions.Function1 contentKey, kotlin.jvm.functions.Function2 content); + method public static androidx.compose.animation.SizeTransform SizeTransform(optional boolean clip, optional kotlin.jvm.functions.Function2> sizeAnimationSpec); + method public static infix androidx.compose.animation.ContentTransform togetherWith(androidx.compose.animation.EnterTransition, androidx.compose.animation.ExitTransition exit); + method @Deprecated @SuppressCompatibility @androidx.compose.animation.ExperimentalAnimationApi public static infix androidx.compose.animation.ContentTransform with(androidx.compose.animation.EnterTransition, androidx.compose.animation.ExitTransition exit); + } + + public sealed interface AnimatedContentScope extends androidx.compose.animation.AnimatedVisibilityScope { + } + + public sealed interface AnimatedContentTransitionScope extends androidx.compose.animation.core.Transition.Segment { + method public androidx.compose.ui.Alignment getContentAlignment(); + method public default androidx.compose.animation.ExitTransition getKeepUntilTransitionsFinished(androidx.compose.animation.ExitTransition.Companion); + method public androidx.compose.animation.EnterTransition slideIntoContainer(int towards, optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional kotlin.jvm.functions.Function1 initialOffset); + method public androidx.compose.animation.ExitTransition slideOutOfContainer(int towards, optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional kotlin.jvm.functions.Function1 targetOffset); + method public infix androidx.compose.animation.ContentTransform using(androidx.compose.animation.ContentTransform, androidx.compose.animation.SizeTransform? sizeTransform); + property public abstract androidx.compose.ui.Alignment contentAlignment; + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public static final value class AnimatedContentTransitionScope.SlideDirection { + field public static final androidx.compose.animation.AnimatedContentTransitionScope.SlideDirection.Companion Companion; + } + + public static final class AnimatedContentTransitionScope.SlideDirection.Companion { + method public int getDown(); + method public int getEnd(); + method public int getLeft(); + method public int getRight(); + method public int getStart(); + method public int getUp(); + property public final int Down; + property public final int End; + property public final int Left; + property public final int Right; + property public final int Start; + property public final int Up; + } + + public final class AnimatedVisibilityKt { + method @androidx.compose.runtime.Composable public static void AnimatedVisibility(androidx.compose.animation.core.MutableTransitionState visibleState, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.EnterTransition enter, optional androidx.compose.animation.ExitTransition exit, optional String label, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void AnimatedVisibility(androidx.compose.animation.core.Transition, kotlin.jvm.functions.Function1 visible, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.EnterTransition enter, optional androidx.compose.animation.ExitTransition exit, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void AnimatedVisibility(androidx.compose.foundation.layout.ColumnScope, androidx.compose.animation.core.MutableTransitionState visibleState, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.EnterTransition enter, optional androidx.compose.animation.ExitTransition exit, optional String label, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void AnimatedVisibility(androidx.compose.foundation.layout.ColumnScope, boolean visible, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.EnterTransition enter, optional androidx.compose.animation.ExitTransition exit, optional String label, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void AnimatedVisibility(androidx.compose.foundation.layout.RowScope, androidx.compose.animation.core.MutableTransitionState visibleState, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.EnterTransition enter, optional androidx.compose.animation.ExitTransition exit, optional String label, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void AnimatedVisibility(androidx.compose.foundation.layout.RowScope, boolean visible, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.EnterTransition enter, optional androidx.compose.animation.ExitTransition exit, optional String label, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void AnimatedVisibility(boolean visible, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.EnterTransition enter, optional androidx.compose.animation.ExitTransition exit, optional String label, kotlin.jvm.functions.Function1 content); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface AnimatedVisibilityScope { + method public default androidx.compose.ui.Modifier animateEnterExit(androidx.compose.ui.Modifier, optional androidx.compose.animation.EnterTransition enter, optional androidx.compose.animation.ExitTransition exit, optional String label); + method public androidx.compose.animation.core.Transition getTransition(); + property public abstract androidx.compose.animation.core.Transition transition; + } + + public final class AnimationModifierKt { + method public static androidx.compose.ui.Modifier animateContentSize(androidx.compose.ui.Modifier, optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional androidx.compose.ui.Alignment alignment, optional kotlin.jvm.functions.Function2? finishedListener); + method public static androidx.compose.ui.Modifier animateContentSize(androidx.compose.ui.Modifier, optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional kotlin.jvm.functions.Function2? finishedListener); + } + + @SuppressCompatibility @androidx.compose.animation.ExperimentalSharedTransitionApi public fun interface BoundsTransform { + method public androidx.compose.animation.core.FiniteAnimationSpec transform(androidx.compose.ui.geometry.Rect initialBounds, androidx.compose.ui.geometry.Rect targetBounds); + } + + public final class ColorVectorConverterKt { + method public static kotlin.jvm.functions.Function1> getVectorConverter(androidx.compose.ui.graphics.Color.Companion); + } + + public final class ContentTransform { + ctor public ContentTransform(androidx.compose.animation.EnterTransition targetContentEnter, androidx.compose.animation.ExitTransition initialContentExit, optional float targetContentZIndex, optional androidx.compose.animation.SizeTransform? sizeTransform); + method public androidx.compose.animation.ExitTransition getInitialContentExit(); + method public androidx.compose.animation.SizeTransform? getSizeTransform(); + method public androidx.compose.animation.EnterTransition getTargetContentEnter(); + method public float getTargetContentZIndex(); + method public void setTargetContentZIndex(float); + property public final androidx.compose.animation.ExitTransition initialContentExit; + property public final androidx.compose.animation.SizeTransform? sizeTransform; + property public final androidx.compose.animation.EnterTransition targetContentEnter; + property public final float targetContentZIndex; + } + + public final class CrossfadeKt { + method @SuppressCompatibility @androidx.compose.animation.ExperimentalAnimationApi @androidx.compose.runtime.Composable public static void Crossfade(androidx.compose.animation.core.Transition, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional kotlin.jvm.functions.Function1 contentKey, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void Crossfade(T targetState, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional String label, kotlin.jvm.functions.Function1 content); + method @Deprecated @androidx.compose.runtime.Composable public static void Crossfade(T targetState, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, kotlin.jvm.functions.Function1 content); + } + + public enum EnterExitState { + enum_constant public static final androidx.compose.animation.EnterExitState PostExit; + enum_constant public static final androidx.compose.animation.EnterExitState PreEnter; + enum_constant public static final androidx.compose.animation.EnterExitState Visible; + } + + public final class EnterExitTransitionKt { + method @androidx.compose.runtime.Stable public static androidx.compose.animation.EnterTransition expandHorizontally(optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional androidx.compose.ui.Alignment.Horizontal expandFrom, optional boolean clip, optional kotlin.jvm.functions.Function1 initialWidth); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.EnterTransition expandIn(optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional androidx.compose.ui.Alignment expandFrom, optional boolean clip, optional kotlin.jvm.functions.Function1 initialSize); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.EnterTransition expandVertically(optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional androidx.compose.ui.Alignment.Vertical expandFrom, optional boolean clip, optional kotlin.jvm.functions.Function1 initialHeight); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.EnterTransition fadeIn(optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional float initialAlpha); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.ExitTransition fadeOut(optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional float targetAlpha); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.EnterTransition scaleIn(optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional float initialScale, optional long transformOrigin); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.ExitTransition scaleOut(optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional float targetScale, optional long transformOrigin); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.ExitTransition shrinkHorizontally(optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional androidx.compose.ui.Alignment.Horizontal shrinkTowards, optional boolean clip, optional kotlin.jvm.functions.Function1 targetWidth); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.ExitTransition shrinkOut(optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional androidx.compose.ui.Alignment shrinkTowards, optional boolean clip, optional kotlin.jvm.functions.Function1 targetSize); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.ExitTransition shrinkVertically(optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional androidx.compose.ui.Alignment.Vertical shrinkTowards, optional boolean clip, optional kotlin.jvm.functions.Function1 targetHeight); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.EnterTransition slideIn(optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, kotlin.jvm.functions.Function1 initialOffset); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.EnterTransition slideInHorizontally(optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional kotlin.jvm.functions.Function1 initialOffsetX); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.EnterTransition slideInVertically(optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional kotlin.jvm.functions.Function1 initialOffsetY); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.ExitTransition slideOut(optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, kotlin.jvm.functions.Function1 targetOffset); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.ExitTransition slideOutHorizontally(optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional kotlin.jvm.functions.Function1 targetOffsetX); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.ExitTransition slideOutVertically(optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional kotlin.jvm.functions.Function1 targetOffsetY); + } + + @androidx.compose.runtime.Immutable public abstract sealed class EnterTransition { + method @androidx.compose.runtime.Stable public final operator androidx.compose.animation.EnterTransition plus(androidx.compose.animation.EnterTransition enter); + field public static final androidx.compose.animation.EnterTransition.Companion Companion; + } + + public static final class EnterTransition.Companion { + method public androidx.compose.animation.EnterTransition getNone(); + property public final androidx.compose.animation.EnterTransition None; + } + + @androidx.compose.runtime.Immutable public abstract sealed class ExitTransition { + method @androidx.compose.runtime.Stable public final operator androidx.compose.animation.ExitTransition plus(androidx.compose.animation.ExitTransition exit); + field public static final androidx.compose.animation.ExitTransition.Companion Companion; + } + + public static final class ExitTransition.Companion { + method public androidx.compose.animation.ExitTransition getNone(); + property public final androidx.compose.animation.ExitTransition None; + } + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This is an experimental animation API.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY, kotlin.annotation.AnnotationTarget.FIELD, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface ExperimentalAnimationApi { + } + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This is an experimental shared transition API.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY, kotlin.annotation.AnnotationTarget.FIELD, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface ExperimentalSharedTransitionApi { + } + + @SuppressCompatibility @androidx.compose.animation.ExperimentalSharedTransitionApi @androidx.compose.runtime.Stable public interface SharedTransitionScope extends androidx.compose.ui.layout.LookaheadScope { + method public androidx.compose.animation.SharedTransitionScope.OverlayClip OverlayClip(androidx.compose.ui.graphics.Shape clipShape); + method public boolean isTransitionActive(); + method @androidx.compose.runtime.Composable public androidx.compose.animation.SharedTransitionScope.SharedContentState rememberSharedContentState(Object key); + method public androidx.compose.ui.Modifier renderInSharedTransitionScopeOverlay(androidx.compose.ui.Modifier, optional kotlin.jvm.functions.Function0 renderInOverlay, optional float zIndexInOverlay, optional kotlin.jvm.functions.Function2 clipInOverlayDuringTransition); + method @Deprecated public default androidx.compose.animation.EnterTransition scaleInSharedContentToBounds(optional androidx.compose.ui.layout.ContentScale contentScale, optional androidx.compose.ui.Alignment alignment); + method @Deprecated public default androidx.compose.animation.ExitTransition scaleOutSharedContentToBounds(optional androidx.compose.ui.layout.ContentScale contentScale, optional androidx.compose.ui.Alignment alignment); + method public androidx.compose.ui.Modifier sharedBounds(androidx.compose.ui.Modifier, androidx.compose.animation.SharedTransitionScope.SharedContentState sharedContentState, androidx.compose.animation.AnimatedVisibilityScope animatedVisibilityScope, optional androidx.compose.animation.EnterTransition enter, optional androidx.compose.animation.ExitTransition exit, optional androidx.compose.animation.BoundsTransform boundsTransform, optional androidx.compose.animation.SharedTransitionScope.ResizeMode resizeMode, optional androidx.compose.animation.SharedTransitionScope.PlaceHolderSize placeHolderSize, optional boolean renderInOverlayDuringTransition, optional float zIndexInOverlay, optional androidx.compose.animation.SharedTransitionScope.OverlayClip clipInOverlayDuringTransition); + method public androidx.compose.ui.Modifier sharedElement(androidx.compose.ui.Modifier, androidx.compose.animation.SharedTransitionScope.SharedContentState state, androidx.compose.animation.AnimatedVisibilityScope animatedVisibilityScope, optional androidx.compose.animation.BoundsTransform boundsTransform, optional androidx.compose.animation.SharedTransitionScope.PlaceHolderSize placeHolderSize, optional boolean renderInOverlayDuringTransition, optional float zIndexInOverlay, optional androidx.compose.animation.SharedTransitionScope.OverlayClip clipInOverlayDuringTransition); + method public androidx.compose.ui.Modifier sharedElementWithCallerManagedVisibility(androidx.compose.ui.Modifier, androidx.compose.animation.SharedTransitionScope.SharedContentState sharedContentState, boolean visible, optional androidx.compose.animation.BoundsTransform boundsTransform, optional androidx.compose.animation.SharedTransitionScope.PlaceHolderSize placeHolderSize, optional boolean renderInOverlayDuringTransition, optional float zIndexInOverlay, optional androidx.compose.animation.SharedTransitionScope.OverlayClip clipInOverlayDuringTransition); + method public androidx.compose.ui.Modifier skipToLookaheadSize(androidx.compose.ui.Modifier); + property public abstract boolean isTransitionActive; + } + + public static interface SharedTransitionScope.OverlayClip { + method public androidx.compose.ui.graphics.Path? getClipPath(androidx.compose.animation.SharedTransitionScope.SharedContentState state, androidx.compose.ui.geometry.Rect bounds, androidx.compose.ui.unit.LayoutDirection layoutDirection, androidx.compose.ui.unit.Density density); + } + + public static fun interface SharedTransitionScope.PlaceHolderSize { + method public long calculateSize(long contentSize, long animatedSize); + field public static final androidx.compose.animation.SharedTransitionScope.PlaceHolderSize.Companion Companion; + } + + public static final class SharedTransitionScope.PlaceHolderSize.Companion { + method public androidx.compose.animation.SharedTransitionScope.PlaceHolderSize getAnimatedSize(); + method public androidx.compose.animation.SharedTransitionScope.PlaceHolderSize getContentSize(); + property public final androidx.compose.animation.SharedTransitionScope.PlaceHolderSize animatedSize; + property public final androidx.compose.animation.SharedTransitionScope.PlaceHolderSize contentSize; + } + + public static sealed interface SharedTransitionScope.ResizeMode { + field public static final androidx.compose.animation.SharedTransitionScope.ResizeMode.Companion Companion; + } + + public static final class SharedTransitionScope.ResizeMode.Companion { + method public androidx.compose.animation.SharedTransitionScope.ResizeMode ScaleToBounds(optional androidx.compose.ui.layout.ContentScale contentScale, optional androidx.compose.ui.Alignment alignment); + method public androidx.compose.animation.SharedTransitionScope.ResizeMode getRemeasureToBounds(); + property public final androidx.compose.animation.SharedTransitionScope.ResizeMode RemeasureToBounds; + } + + public static final class SharedTransitionScope.SharedContentState { + method public androidx.compose.ui.graphics.Path? getClipPathInOverlay(); + method public Object getKey(); + method public androidx.compose.animation.SharedTransitionScope.SharedContentState? getParentSharedContentState(); + method public boolean isMatchFound(); + property public final androidx.compose.ui.graphics.Path? clipPathInOverlay; + property public final boolean isMatchFound; + property public final Object key; + property public final androidx.compose.animation.SharedTransitionScope.SharedContentState? parentSharedContentState; + } + + public final class SharedTransitionScopeKt { + method @SuppressCompatibility @androidx.compose.animation.ExperimentalSharedTransitionApi @androidx.compose.runtime.Composable public static void SharedTransitionLayout(optional androidx.compose.ui.Modifier modifier, kotlin.jvm.functions.Function1 content); + method @SuppressCompatibility @androidx.compose.animation.ExperimentalSharedTransitionApi @androidx.compose.runtime.Composable public static void SharedTransitionScope(kotlin.jvm.functions.Function2 content); + } + + public final class SingleValueAnimationKt { + method public static androidx.compose.animation.core.Animatable Animatable(long initialValue); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateColorAsState(long targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional String label, optional kotlin.jvm.functions.Function1? finishedListener); + method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateColorAsState(long targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional kotlin.jvm.functions.Function1? finishedListener); + } + + public interface SizeTransform { + method public androidx.compose.animation.core.FiniteAnimationSpec createAnimationSpec(long initialSize, long targetSize); + method public boolean getClip(); + property public abstract boolean clip; + } + + public final class SplineBasedDecayKt { + method public static androidx.compose.animation.core.DecayAnimationSpec splineBasedDecay(androidx.compose.ui.unit.Density density); + } + + public final class SplineBasedFloatDecayAnimationSpec implements androidx.compose.animation.core.FloatDecayAnimationSpec { + ctor public SplineBasedFloatDecayAnimationSpec(androidx.compose.ui.unit.Density density); + method public float getAbsVelocityThreshold(); + method public long getDurationNanos(float initialValue, float initialVelocity); + method public float getTargetValue(float initialValue, float initialVelocity); + method public float getValueFromNanos(long playTimeNanos, float initialValue, float initialVelocity); + method public float getVelocityFromNanos(long playTimeNanos, float initialValue, float initialVelocity); + property public float absVelocityThreshold; + } + + public final class SplineBasedFloatDecayAnimationSpec_androidKt { + method @androidx.compose.runtime.Composable public static androidx.compose.animation.core.DecayAnimationSpec rememberSplineBasedDecay(); + method @Deprecated public static androidx.compose.animation.core.DecayAnimationSpec splineBasedDecay(androidx.compose.ui.unit.Density density); + } + + public final class TransitionKt { + method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateColor(androidx.compose.animation.core.InfiniteTransition, long initialValue, long targetValue, androidx.compose.animation.core.InfiniteRepeatableSpec animationSpec); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateColor(androidx.compose.animation.core.InfiniteTransition, long initialValue, long targetValue, androidx.compose.animation.core.InfiniteRepeatableSpec animationSpec, optional String label); + method @androidx.compose.runtime.Composable public static inline androidx.compose.runtime.State animateColor(androidx.compose.animation.core.Transition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.core.FiniteAnimationSpec> transitionSpec, optional String label, kotlin.jvm.functions.Function1 targetValueByState); + } + +} + diff --git a/compose/animation/animation/api/res-1.7.0-beta07.txt b/compose/animation/animation/api/res-1.7.0-beta07.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/compose/animation/animation/api/restricted_1.7.0-beta07.txt b/compose/animation/animation/api/restricted_1.7.0-beta07.txt new file mode 100644 index 0000000000000..e3b1efcf0938e --- /dev/null +++ b/compose/animation/animation/api/restricted_1.7.0-beta07.txt @@ -0,0 +1,240 @@ +// Signature format: 4.0 +package androidx.compose.animation { + + public final class AndroidActualDefaultDecayAnimationSpec_androidKt { + method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.animation.core.DecayAnimationSpec defaultDecayAnimationSpec(); + } + + public final class AnimatedContentKt { + method @androidx.compose.runtime.Composable public static void AnimatedContent(androidx.compose.animation.core.Transition, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ContentTransform> transitionSpec, optional androidx.compose.ui.Alignment contentAlignment, optional kotlin.jvm.functions.Function1 contentKey, kotlin.jvm.functions.Function2 content); + method @androidx.compose.runtime.Composable public static void AnimatedContent(S targetState, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ContentTransform> transitionSpec, optional androidx.compose.ui.Alignment contentAlignment, optional String label, optional kotlin.jvm.functions.Function1 contentKey, kotlin.jvm.functions.Function2 content); + method public static androidx.compose.animation.SizeTransform SizeTransform(optional boolean clip, optional kotlin.jvm.functions.Function2> sizeAnimationSpec); + method public static infix androidx.compose.animation.ContentTransform togetherWith(androidx.compose.animation.EnterTransition, androidx.compose.animation.ExitTransition exit); + method @Deprecated @SuppressCompatibility @androidx.compose.animation.ExperimentalAnimationApi public static infix androidx.compose.animation.ContentTransform with(androidx.compose.animation.EnterTransition, androidx.compose.animation.ExitTransition exit); + } + + public sealed interface AnimatedContentScope extends androidx.compose.animation.AnimatedVisibilityScope { + } + + public sealed interface AnimatedContentTransitionScope extends androidx.compose.animation.core.Transition.Segment { + method public androidx.compose.ui.Alignment getContentAlignment(); + method public default androidx.compose.animation.ExitTransition getKeepUntilTransitionsFinished(androidx.compose.animation.ExitTransition.Companion); + method public androidx.compose.animation.EnterTransition slideIntoContainer(int towards, optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional kotlin.jvm.functions.Function1 initialOffset); + method public androidx.compose.animation.ExitTransition slideOutOfContainer(int towards, optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional kotlin.jvm.functions.Function1 targetOffset); + method public infix androidx.compose.animation.ContentTransform using(androidx.compose.animation.ContentTransform, androidx.compose.animation.SizeTransform? sizeTransform); + property public abstract androidx.compose.ui.Alignment contentAlignment; + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public static final value class AnimatedContentTransitionScope.SlideDirection { + field public static final androidx.compose.animation.AnimatedContentTransitionScope.SlideDirection.Companion Companion; + } + + public static final class AnimatedContentTransitionScope.SlideDirection.Companion { + method public int getDown(); + method public int getEnd(); + method public int getLeft(); + method public int getRight(); + method public int getStart(); + method public int getUp(); + property public final int Down; + property public final int End; + property public final int Left; + property public final int Right; + property public final int Start; + property public final int Up; + } + + public final class AnimatedVisibilityKt { + method @androidx.compose.runtime.Composable public static void AnimatedVisibility(androidx.compose.animation.core.MutableTransitionState visibleState, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.EnterTransition enter, optional androidx.compose.animation.ExitTransition exit, optional String label, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void AnimatedVisibility(androidx.compose.animation.core.Transition, kotlin.jvm.functions.Function1 visible, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.EnterTransition enter, optional androidx.compose.animation.ExitTransition exit, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void AnimatedVisibility(androidx.compose.foundation.layout.ColumnScope, androidx.compose.animation.core.MutableTransitionState visibleState, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.EnterTransition enter, optional androidx.compose.animation.ExitTransition exit, optional String label, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void AnimatedVisibility(androidx.compose.foundation.layout.ColumnScope, boolean visible, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.EnterTransition enter, optional androidx.compose.animation.ExitTransition exit, optional String label, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void AnimatedVisibility(androidx.compose.foundation.layout.RowScope, androidx.compose.animation.core.MutableTransitionState visibleState, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.EnterTransition enter, optional androidx.compose.animation.ExitTransition exit, optional String label, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void AnimatedVisibility(androidx.compose.foundation.layout.RowScope, boolean visible, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.EnterTransition enter, optional androidx.compose.animation.ExitTransition exit, optional String label, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void AnimatedVisibility(boolean visible, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.EnterTransition enter, optional androidx.compose.animation.ExitTransition exit, optional String label, kotlin.jvm.functions.Function1 content); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface AnimatedVisibilityScope { + method public default androidx.compose.ui.Modifier animateEnterExit(androidx.compose.ui.Modifier, optional androidx.compose.animation.EnterTransition enter, optional androidx.compose.animation.ExitTransition exit, optional String label); + method public androidx.compose.animation.core.Transition getTransition(); + property public abstract androidx.compose.animation.core.Transition transition; + } + + public final class AnimationModifierKt { + method public static androidx.compose.ui.Modifier animateContentSize(androidx.compose.ui.Modifier, optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional androidx.compose.ui.Alignment alignment, optional kotlin.jvm.functions.Function2? finishedListener); + method public static androidx.compose.ui.Modifier animateContentSize(androidx.compose.ui.Modifier, optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional kotlin.jvm.functions.Function2? finishedListener); + } + + @SuppressCompatibility @androidx.compose.animation.ExperimentalSharedTransitionApi public fun interface BoundsTransform { + method public androidx.compose.animation.core.FiniteAnimationSpec transform(androidx.compose.ui.geometry.Rect initialBounds, androidx.compose.ui.geometry.Rect targetBounds); + } + + public final class ColorVectorConverterKt { + method public static kotlin.jvm.functions.Function1> getVectorConverter(androidx.compose.ui.graphics.Color.Companion); + } + + public final class ContentTransform { + ctor public ContentTransform(androidx.compose.animation.EnterTransition targetContentEnter, androidx.compose.animation.ExitTransition initialContentExit, optional float targetContentZIndex, optional androidx.compose.animation.SizeTransform? sizeTransform); + method public androidx.compose.animation.ExitTransition getInitialContentExit(); + method public androidx.compose.animation.SizeTransform? getSizeTransform(); + method public androidx.compose.animation.EnterTransition getTargetContentEnter(); + method public float getTargetContentZIndex(); + method public void setTargetContentZIndex(float); + property public final androidx.compose.animation.ExitTransition initialContentExit; + property public final androidx.compose.animation.SizeTransform? sizeTransform; + property public final androidx.compose.animation.EnterTransition targetContentEnter; + property public final float targetContentZIndex; + } + + public final class CrossfadeKt { + method @SuppressCompatibility @androidx.compose.animation.ExperimentalAnimationApi @androidx.compose.runtime.Composable public static void Crossfade(androidx.compose.animation.core.Transition, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional kotlin.jvm.functions.Function1 contentKey, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void Crossfade(T targetState, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional String label, kotlin.jvm.functions.Function1 content); + method @Deprecated @androidx.compose.runtime.Composable public static void Crossfade(T targetState, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, kotlin.jvm.functions.Function1 content); + } + + public enum EnterExitState { + enum_constant public static final androidx.compose.animation.EnterExitState PostExit; + enum_constant public static final androidx.compose.animation.EnterExitState PreEnter; + enum_constant public static final androidx.compose.animation.EnterExitState Visible; + } + + public final class EnterExitTransitionKt { + method @androidx.compose.runtime.Stable public static androidx.compose.animation.EnterTransition expandHorizontally(optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional androidx.compose.ui.Alignment.Horizontal expandFrom, optional boolean clip, optional kotlin.jvm.functions.Function1 initialWidth); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.EnterTransition expandIn(optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional androidx.compose.ui.Alignment expandFrom, optional boolean clip, optional kotlin.jvm.functions.Function1 initialSize); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.EnterTransition expandVertically(optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional androidx.compose.ui.Alignment.Vertical expandFrom, optional boolean clip, optional kotlin.jvm.functions.Function1 initialHeight); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.EnterTransition fadeIn(optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional float initialAlpha); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.ExitTransition fadeOut(optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional float targetAlpha); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.EnterTransition scaleIn(optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional float initialScale, optional long transformOrigin); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.ExitTransition scaleOut(optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional float targetScale, optional long transformOrigin); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.ExitTransition shrinkHorizontally(optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional androidx.compose.ui.Alignment.Horizontal shrinkTowards, optional boolean clip, optional kotlin.jvm.functions.Function1 targetWidth); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.ExitTransition shrinkOut(optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional androidx.compose.ui.Alignment shrinkTowards, optional boolean clip, optional kotlin.jvm.functions.Function1 targetSize); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.ExitTransition shrinkVertically(optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional androidx.compose.ui.Alignment.Vertical shrinkTowards, optional boolean clip, optional kotlin.jvm.functions.Function1 targetHeight); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.EnterTransition slideIn(optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, kotlin.jvm.functions.Function1 initialOffset); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.EnterTransition slideInHorizontally(optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional kotlin.jvm.functions.Function1 initialOffsetX); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.EnterTransition slideInVertically(optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional kotlin.jvm.functions.Function1 initialOffsetY); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.ExitTransition slideOut(optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, kotlin.jvm.functions.Function1 targetOffset); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.ExitTransition slideOutHorizontally(optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional kotlin.jvm.functions.Function1 targetOffsetX); + method @androidx.compose.runtime.Stable public static androidx.compose.animation.ExitTransition slideOutVertically(optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec, optional kotlin.jvm.functions.Function1 targetOffsetY); + } + + @androidx.compose.runtime.Immutable public abstract sealed class EnterTransition { + method @androidx.compose.runtime.Stable public final operator androidx.compose.animation.EnterTransition plus(androidx.compose.animation.EnterTransition enter); + field public static final androidx.compose.animation.EnterTransition.Companion Companion; + } + + public static final class EnterTransition.Companion { + method public androidx.compose.animation.EnterTransition getNone(); + property public final androidx.compose.animation.EnterTransition None; + } + + @androidx.compose.runtime.Immutable public abstract sealed class ExitTransition { + method @androidx.compose.runtime.Stable public final operator androidx.compose.animation.ExitTransition plus(androidx.compose.animation.ExitTransition exit); + field public static final androidx.compose.animation.ExitTransition.Companion Companion; + } + + public static final class ExitTransition.Companion { + method public androidx.compose.animation.ExitTransition getNone(); + property public final androidx.compose.animation.ExitTransition None; + } + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This is an experimental animation API.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY, kotlin.annotation.AnnotationTarget.FIELD, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface ExperimentalAnimationApi { + } + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This is an experimental shared transition API.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY, kotlin.annotation.AnnotationTarget.FIELD, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface ExperimentalSharedTransitionApi { + } + + @SuppressCompatibility @androidx.compose.animation.ExperimentalSharedTransitionApi @androidx.compose.runtime.Stable public interface SharedTransitionScope extends androidx.compose.ui.layout.LookaheadScope { + method public androidx.compose.animation.SharedTransitionScope.OverlayClip OverlayClip(androidx.compose.ui.graphics.Shape clipShape); + method public boolean isTransitionActive(); + method @androidx.compose.runtime.Composable public androidx.compose.animation.SharedTransitionScope.SharedContentState rememberSharedContentState(Object key); + method public androidx.compose.ui.Modifier renderInSharedTransitionScopeOverlay(androidx.compose.ui.Modifier, optional kotlin.jvm.functions.Function0 renderInOverlay, optional float zIndexInOverlay, optional kotlin.jvm.functions.Function2 clipInOverlayDuringTransition); + method @Deprecated public default androidx.compose.animation.EnterTransition scaleInSharedContentToBounds(optional androidx.compose.ui.layout.ContentScale contentScale, optional androidx.compose.ui.Alignment alignment); + method @Deprecated public default androidx.compose.animation.ExitTransition scaleOutSharedContentToBounds(optional androidx.compose.ui.layout.ContentScale contentScale, optional androidx.compose.ui.Alignment alignment); + method public androidx.compose.ui.Modifier sharedBounds(androidx.compose.ui.Modifier, androidx.compose.animation.SharedTransitionScope.SharedContentState sharedContentState, androidx.compose.animation.AnimatedVisibilityScope animatedVisibilityScope, optional androidx.compose.animation.EnterTransition enter, optional androidx.compose.animation.ExitTransition exit, optional androidx.compose.animation.BoundsTransform boundsTransform, optional androidx.compose.animation.SharedTransitionScope.ResizeMode resizeMode, optional androidx.compose.animation.SharedTransitionScope.PlaceHolderSize placeHolderSize, optional boolean renderInOverlayDuringTransition, optional float zIndexInOverlay, optional androidx.compose.animation.SharedTransitionScope.OverlayClip clipInOverlayDuringTransition); + method public androidx.compose.ui.Modifier sharedElement(androidx.compose.ui.Modifier, androidx.compose.animation.SharedTransitionScope.SharedContentState state, androidx.compose.animation.AnimatedVisibilityScope animatedVisibilityScope, optional androidx.compose.animation.BoundsTransform boundsTransform, optional androidx.compose.animation.SharedTransitionScope.PlaceHolderSize placeHolderSize, optional boolean renderInOverlayDuringTransition, optional float zIndexInOverlay, optional androidx.compose.animation.SharedTransitionScope.OverlayClip clipInOverlayDuringTransition); + method public androidx.compose.ui.Modifier sharedElementWithCallerManagedVisibility(androidx.compose.ui.Modifier, androidx.compose.animation.SharedTransitionScope.SharedContentState sharedContentState, boolean visible, optional androidx.compose.animation.BoundsTransform boundsTransform, optional androidx.compose.animation.SharedTransitionScope.PlaceHolderSize placeHolderSize, optional boolean renderInOverlayDuringTransition, optional float zIndexInOverlay, optional androidx.compose.animation.SharedTransitionScope.OverlayClip clipInOverlayDuringTransition); + method public androidx.compose.ui.Modifier skipToLookaheadSize(androidx.compose.ui.Modifier); + property public abstract boolean isTransitionActive; + } + + public static interface SharedTransitionScope.OverlayClip { + method public androidx.compose.ui.graphics.Path? getClipPath(androidx.compose.animation.SharedTransitionScope.SharedContentState state, androidx.compose.ui.geometry.Rect bounds, androidx.compose.ui.unit.LayoutDirection layoutDirection, androidx.compose.ui.unit.Density density); + } + + public static fun interface SharedTransitionScope.PlaceHolderSize { + method public long calculateSize(long contentSize, long animatedSize); + field public static final androidx.compose.animation.SharedTransitionScope.PlaceHolderSize.Companion Companion; + } + + public static final class SharedTransitionScope.PlaceHolderSize.Companion { + method public androidx.compose.animation.SharedTransitionScope.PlaceHolderSize getAnimatedSize(); + method public androidx.compose.animation.SharedTransitionScope.PlaceHolderSize getContentSize(); + property public final androidx.compose.animation.SharedTransitionScope.PlaceHolderSize animatedSize; + property public final androidx.compose.animation.SharedTransitionScope.PlaceHolderSize contentSize; + } + + public static sealed interface SharedTransitionScope.ResizeMode { + field public static final androidx.compose.animation.SharedTransitionScope.ResizeMode.Companion Companion; + } + + public static final class SharedTransitionScope.ResizeMode.Companion { + method public androidx.compose.animation.SharedTransitionScope.ResizeMode ScaleToBounds(optional androidx.compose.ui.layout.ContentScale contentScale, optional androidx.compose.ui.Alignment alignment); + method public androidx.compose.animation.SharedTransitionScope.ResizeMode getRemeasureToBounds(); + property public final androidx.compose.animation.SharedTransitionScope.ResizeMode RemeasureToBounds; + } + + public static final class SharedTransitionScope.SharedContentState { + method public androidx.compose.ui.graphics.Path? getClipPathInOverlay(); + method public Object getKey(); + method public androidx.compose.animation.SharedTransitionScope.SharedContentState? getParentSharedContentState(); + method public boolean isMatchFound(); + property public final androidx.compose.ui.graphics.Path? clipPathInOverlay; + property public final boolean isMatchFound; + property public final Object key; + property public final androidx.compose.animation.SharedTransitionScope.SharedContentState? parentSharedContentState; + } + + public final class SharedTransitionScopeKt { + method @SuppressCompatibility @androidx.compose.animation.ExperimentalSharedTransitionApi @androidx.compose.runtime.Composable public static void SharedTransitionLayout(optional androidx.compose.ui.Modifier modifier, kotlin.jvm.functions.Function1 content); + method @SuppressCompatibility @androidx.compose.animation.ExperimentalSharedTransitionApi @androidx.compose.runtime.Composable public static void SharedTransitionScope(kotlin.jvm.functions.Function2 content); + } + + public final class SingleValueAnimationKt { + method public static androidx.compose.animation.core.Animatable Animatable(long initialValue); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateColorAsState(long targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional String label, optional kotlin.jvm.functions.Function1? finishedListener); + method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateColorAsState(long targetValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional kotlin.jvm.functions.Function1? finishedListener); + } + + public interface SizeTransform { + method public androidx.compose.animation.core.FiniteAnimationSpec createAnimationSpec(long initialSize, long targetSize); + method public boolean getClip(); + property public abstract boolean clip; + } + + public final class SplineBasedDecayKt { + method public static androidx.compose.animation.core.DecayAnimationSpec splineBasedDecay(androidx.compose.ui.unit.Density density); + } + + public final class SplineBasedFloatDecayAnimationSpec implements androidx.compose.animation.core.FloatDecayAnimationSpec { + ctor public SplineBasedFloatDecayAnimationSpec(androidx.compose.ui.unit.Density density); + method public float getAbsVelocityThreshold(); + method public long getDurationNanos(float initialValue, float initialVelocity); + method public float getTargetValue(float initialValue, float initialVelocity); + method public float getValueFromNanos(long playTimeNanos, float initialValue, float initialVelocity); + method public float getVelocityFromNanos(long playTimeNanos, float initialValue, float initialVelocity); + property public float absVelocityThreshold; + } + + public final class SplineBasedFloatDecayAnimationSpec_androidKt { + method @androidx.compose.runtime.Composable public static androidx.compose.animation.core.DecayAnimationSpec rememberSplineBasedDecay(); + method @Deprecated public static androidx.compose.animation.core.DecayAnimationSpec splineBasedDecay(androidx.compose.ui.unit.Density density); + } + + public final class TransitionKt { + method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateColor(androidx.compose.animation.core.InfiniteTransition, long initialValue, long targetValue, androidx.compose.animation.core.InfiniteRepeatableSpec animationSpec); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State animateColor(androidx.compose.animation.core.InfiniteTransition, long initialValue, long targetValue, androidx.compose.animation.core.InfiniteRepeatableSpec animationSpec, optional String label); + method @androidx.compose.runtime.Composable public static inline androidx.compose.runtime.State animateColor(androidx.compose.animation.core.Transition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.core.FiniteAnimationSpec> transitionSpec, optional String label, kotlin.jvm.functions.Function1 targetValueByState); + } + +} + diff --git a/compose/animation/animation/src/androidInstrumentedTest/kotlin/androidx/compose/animation/SharedTransitionTest.kt b/compose/animation/animation/src/androidInstrumentedTest/kotlin/androidx/compose/animation/SharedTransitionTest.kt index e12e0c041008d..8fd30bb448d6a 100644 --- a/compose/animation/animation/src/androidInstrumentedTest/kotlin/androidx/compose/animation/SharedTransitionTest.kt +++ b/compose/animation/animation/src/androidInstrumentedTest/kotlin/androidx/compose/animation/SharedTransitionTest.kt @@ -25,9 +25,12 @@ import androidx.compose.animation.core.LinearEasing import androidx.compose.animation.core.SeekableTransitionState import androidx.compose.animation.core.Transition import androidx.compose.animation.core.rememberTransition +import androidx.compose.animation.core.snap import androidx.compose.animation.core.spring import androidx.compose.animation.core.tween import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row @@ -52,6 +55,7 @@ import androidx.compose.runtime.mutableIntStateOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue +import androidx.compose.testutils.assertContainsColor import androidx.compose.testutils.assertPixels import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment.Companion.BottomCenter @@ -81,6 +85,7 @@ import androidx.compose.ui.platform.testTag import androidx.compose.ui.test.captureToImage import androidx.compose.ui.test.junit4.createComposeRule import androidx.compose.ui.test.onNodeWithTag +import androidx.compose.ui.test.performClick import androidx.compose.ui.unit.Density import androidx.compose.ui.unit.IntOffset import androidx.compose.ui.unit.IntSize @@ -2880,6 +2885,106 @@ class SharedTransitionTest { ScaleToBounds(alignment = customAlignment) ) } + + // Regression test for b/347520198, SharedTransitionLayout onDraw would not get invalidated + // in some cases. + @SdkSuppress(minSdkVersion = 26) + @Test + fun testSharedTransitionScopeIsInvalidated() { + var state by mutableIntStateOf(0) + + val animDurationMillis = 500 + + val parentTag = "STL" + val clickTarget = "click-target" + + rule.setContent { + SharedTransitionLayout(Modifier.size(100.dp).testTag(parentTag)) { + // This outer AnimatedContent doesn't do anything, and the issue only triggers + // when it's present + AnimatedContent(targetState = true) { + @Suppress("UNUSED_EXPRESSION") + it // Need to reference the unused outer AnimatedContent's target state + + AnimatedContent( + targetState = state, + transitionSpec = { + // Add a delay to the animation just so that it takes a known time to + // complete + fadeIn(snap()).togetherWith(fadeOut(snap(animDurationMillis))) + } + ) { currentState -> + val innerAnimatedContentScope = this + Box( + // This will cycle from Green -> Blue -> Red -> Blue -> Red... + Modifier.testTag(clickTarget) + .clickable( + // Don't let the clickable paint anything, it may interfere with + // the test. + interactionSource = remember { MutableInteractionSource() }, + indication = null + ) { + state = + when (currentState) { + 0 -> 2 + 1 -> 2 + else -> 1 + } + } + .fillMaxSize() + ) { + val color = + when (currentState) { + 0 -> Color.Green + 1 -> Color.Red + else -> Color.Blue + } + Box( + Modifier + // Using shared bounds so that we control when the item enters + // and leaves in every case. Particularly, we want the target to + // show immediately + .sharedBounds( + rememberSharedContentState( + key = + if (currentState == 0) "no match" + else "matching key" + ), + animatedVisibilityScope = innerAnimatedContentScope, + enter = fadeIn(snap()), + exit = fadeOut(snap()) + ) + .background(color) + .fillMaxSize() + ) + } + } + } + } + } + rule.waitForIdle() + // Start off with a Green box + rule.onNodeWithTag(parentTag).captureToImage().assertContainsColor(Color.Green) + + fun clickAndAssertColorDuringTransition(color: Color) { + rule.mainClock.autoAdvance = false + rule.onNodeWithTag(clickTarget).performClick() + + rule.mainClock.advanceTimeByFrame() + rule.mainClock.advanceTimeBy(animDurationMillis / 2L) + + rule.onNodeWithTag(parentTag).captureToImage().assertContainsColor(color) + + rule.mainClock.autoAdvance = true + rule.waitForIdle() + } + + // Transition into a Blue box + clickAndAssertColorDuringTransition(Color.Blue) + + // Transition into a Red box + clickAndAssertColorDuringTransition(Color.Red) + } } private fun assertEquals(a: IntSize, b: IntSize, delta: IntSize) { diff --git a/compose/animation/animation/src/commonMain/kotlin/androidx/compose/animation/SharedTransitionScope.kt b/compose/animation/animation/src/commonMain/kotlin/androidx/compose/animation/SharedTransitionScope.kt index 7106ccb588e09..621cd4c4382f3 100644 --- a/compose/animation/animation/src/commonMain/kotlin/androidx/compose/animation/SharedTransitionScope.kt +++ b/compose/animation/animation/src/commonMain/kotlin/androidx/compose/animation/SharedTransitionScope.kt @@ -43,6 +43,7 @@ import androidx.compose.runtime.Immutable import androidx.compose.runtime.Stable import androidx.compose.runtime.getValue import androidx.compose.runtime.key +import androidx.compose.runtime.mutableStateListOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope @@ -1064,7 +1065,7 @@ internal class SharedTransitionScopeImpl internal constructor( internal var nullableLookaheadRoot: LayoutCoordinates? = null // TODO: Use MutableObjectList and impl sort - private val renderers = mutableListOf() + private val renderers = mutableStateListOf() private val sharedElements = MutableScatterMap() diff --git a/compose/foundation/foundation-layout/api/1.7.0-beta07.txt b/compose/foundation/foundation-layout/api/1.7.0-beta07.txt new file mode 100644 index 0000000000000..dea6c5f7fd433 --- /dev/null +++ b/compose/foundation/foundation-layout/api/1.7.0-beta07.txt @@ -0,0 +1,449 @@ +// Signature format: 4.0 +package androidx.compose.foundation.layout { + + public final class AlignmentLineKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier paddingFrom(androidx.compose.ui.Modifier, androidx.compose.ui.layout.AlignmentLine alignmentLine, optional float before, optional float after); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier paddingFrom(androidx.compose.ui.Modifier, androidx.compose.ui.layout.AlignmentLine alignmentLine, optional long before, optional long after); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier paddingFromBaseline(androidx.compose.ui.Modifier, optional float top, optional float bottom); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier paddingFromBaseline(androidx.compose.ui.Modifier, optional long top, optional long bottom); + } + + @androidx.compose.runtime.Immutable public final class Arrangement { + method @androidx.compose.runtime.Stable public androidx.compose.foundation.layout.Arrangement.Horizontal aligned(androidx.compose.ui.Alignment.Horizontal alignment); + method @androidx.compose.runtime.Stable public androidx.compose.foundation.layout.Arrangement.Vertical aligned(androidx.compose.ui.Alignment.Vertical alignment); + method public androidx.compose.foundation.layout.Arrangement.Vertical getBottom(); + method public androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical getCenter(); + method public androidx.compose.foundation.layout.Arrangement.Horizontal getEnd(); + method public androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical getSpaceAround(); + method public androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical getSpaceBetween(); + method public androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical getSpaceEvenly(); + method public androidx.compose.foundation.layout.Arrangement.Horizontal getStart(); + method public androidx.compose.foundation.layout.Arrangement.Vertical getTop(); + method @androidx.compose.runtime.Stable public androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical spacedBy(float space); + method @androidx.compose.runtime.Stable public androidx.compose.foundation.layout.Arrangement.Horizontal spacedBy(float space, androidx.compose.ui.Alignment.Horizontal alignment); + method @androidx.compose.runtime.Stable public androidx.compose.foundation.layout.Arrangement.Vertical spacedBy(float space, androidx.compose.ui.Alignment.Vertical alignment); + property public final androidx.compose.foundation.layout.Arrangement.Vertical Bottom; + property public final androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical Center; + property public final androidx.compose.foundation.layout.Arrangement.Horizontal End; + property public final androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical SpaceAround; + property public final androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical SpaceBetween; + property public final androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical SpaceEvenly; + property public final androidx.compose.foundation.layout.Arrangement.Horizontal Start; + property public final androidx.compose.foundation.layout.Arrangement.Vertical Top; + field public static final androidx.compose.foundation.layout.Arrangement INSTANCE; + } + + @androidx.compose.runtime.Immutable public static final class Arrangement.Absolute { + method @androidx.compose.runtime.Stable public androidx.compose.foundation.layout.Arrangement.Horizontal aligned(androidx.compose.ui.Alignment.Horizontal alignment); + method public androidx.compose.foundation.layout.Arrangement.Horizontal getCenter(); + method public androidx.compose.foundation.layout.Arrangement.Horizontal getLeft(); + method public androidx.compose.foundation.layout.Arrangement.Horizontal getRight(); + method public androidx.compose.foundation.layout.Arrangement.Horizontal getSpaceAround(); + method public androidx.compose.foundation.layout.Arrangement.Horizontal getSpaceBetween(); + method public androidx.compose.foundation.layout.Arrangement.Horizontal getSpaceEvenly(); + method @androidx.compose.runtime.Stable public androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical spacedBy(float space); + method @androidx.compose.runtime.Stable public androidx.compose.foundation.layout.Arrangement.Horizontal spacedBy(float space, androidx.compose.ui.Alignment.Horizontal alignment); + method @androidx.compose.runtime.Stable public androidx.compose.foundation.layout.Arrangement.Vertical spacedBy(float space, androidx.compose.ui.Alignment.Vertical alignment); + property public final androidx.compose.foundation.layout.Arrangement.Horizontal Center; + property public final androidx.compose.foundation.layout.Arrangement.Horizontal Left; + property public final androidx.compose.foundation.layout.Arrangement.Horizontal Right; + property public final androidx.compose.foundation.layout.Arrangement.Horizontal SpaceAround; + property public final androidx.compose.foundation.layout.Arrangement.Horizontal SpaceBetween; + property public final androidx.compose.foundation.layout.Arrangement.Horizontal SpaceEvenly; + field public static final androidx.compose.foundation.layout.Arrangement.Absolute INSTANCE; + } + + @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public static interface Arrangement.Horizontal { + method public void arrange(androidx.compose.ui.unit.Density, int totalSize, int[] sizes, androidx.compose.ui.unit.LayoutDirection layoutDirection, int[] outPositions); + method public default float getSpacing(); + property public default float spacing; + } + + @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public static interface Arrangement.HorizontalOrVertical extends androidx.compose.foundation.layout.Arrangement.Horizontal androidx.compose.foundation.layout.Arrangement.Vertical { + property public default float spacing; + } + + @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public static interface Arrangement.Vertical { + method public void arrange(androidx.compose.ui.unit.Density, int totalSize, int[] sizes, int[] outPositions); + method public default float getSpacing(); + property public default float spacing; + } + + public final class AspectRatioKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier aspectRatio(androidx.compose.ui.Modifier, @FloatRange(from=0.0, fromInclusive=false) float ratio, optional boolean matchHeightConstraintsFirst); + } + + public final class BoxKt { + method @androidx.compose.runtime.Composable public static void Box(androidx.compose.ui.Modifier modifier); + method @androidx.compose.runtime.Composable public static inline void Box(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.Alignment contentAlignment, optional boolean propagateMinConstraints, kotlin.jvm.functions.Function1 content); + } + + @androidx.compose.foundation.layout.LayoutScopeMarker @androidx.compose.runtime.Immutable public interface BoxScope { + method @androidx.compose.runtime.Stable public androidx.compose.ui.Modifier align(androidx.compose.ui.Modifier, androidx.compose.ui.Alignment alignment); + method @androidx.compose.runtime.Stable public androidx.compose.ui.Modifier matchParentSize(androidx.compose.ui.Modifier); + } + + public final class BoxWithConstraintsKt { + method @androidx.compose.runtime.Composable @androidx.compose.ui.UiComposable public static void BoxWithConstraints(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.Alignment contentAlignment, optional boolean propagateMinConstraints, kotlin.jvm.functions.Function1 content); + } + + @androidx.compose.runtime.Stable public interface BoxWithConstraintsScope extends androidx.compose.foundation.layout.BoxScope { + method public long getConstraints(); + method public float getMaxHeight(); + method public float getMaxWidth(); + method public float getMinHeight(); + method public float getMinWidth(); + property public abstract long constraints; + property public abstract float maxHeight; + property public abstract float maxWidth; + property public abstract float minHeight; + property public abstract float minWidth; + } + + public final class ColumnKt { + method @androidx.compose.runtime.Composable public static inline void Column(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional androidx.compose.ui.Alignment.Horizontal horizontalAlignment, kotlin.jvm.functions.Function1 content); + } + + @androidx.compose.foundation.layout.LayoutScopeMarker @androidx.compose.runtime.Immutable @kotlin.jvm.JvmDefaultWithCompatibility public interface ColumnScope { + method @androidx.compose.runtime.Stable public androidx.compose.ui.Modifier align(androidx.compose.ui.Modifier, androidx.compose.ui.Alignment.Horizontal alignment); + method @androidx.compose.runtime.Stable public androidx.compose.ui.Modifier alignBy(androidx.compose.ui.Modifier, androidx.compose.ui.layout.VerticalAlignmentLine alignmentLine); + method @androidx.compose.runtime.Stable public androidx.compose.ui.Modifier alignBy(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 alignmentLineBlock); + method @androidx.compose.runtime.Stable public androidx.compose.ui.Modifier weight(androidx.compose.ui.Modifier, @FloatRange(from=0.0, fromInclusive=false) float weight, optional boolean fill); + } + + @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public final class ContextualFlowColumnOverflow extends androidx.compose.foundation.layout.FlowLayoutOverflow { + field public static final androidx.compose.foundation.layout.ContextualFlowColumnOverflow.Companion Companion; + } + + public static final class ContextualFlowColumnOverflow.Companion { + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public androidx.compose.foundation.layout.ContextualFlowColumnOverflow expandIndicator(kotlin.jvm.functions.Function1 content); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable public androidx.compose.foundation.layout.ContextualFlowColumnOverflow expandOrCollapseIndicator(kotlin.jvm.functions.Function1 expandIndicator, kotlin.jvm.functions.Function1 collapseIndicator, optional int minColumnsToShowCollapse, optional float minWidthToShowCollapse); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public androidx.compose.foundation.layout.ContextualFlowColumnOverflow getClip(); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public androidx.compose.foundation.layout.ContextualFlowColumnOverflow getVisible(); + property @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public final androidx.compose.foundation.layout.ContextualFlowColumnOverflow Clip; + property @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public final androidx.compose.foundation.layout.ContextualFlowColumnOverflow Visible; + } + + @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.foundation.layout.LayoutScopeMarker @androidx.compose.runtime.Immutable public interface ContextualFlowColumnOverflowScope extends androidx.compose.foundation.layout.FlowColumnOverflowScope { + } + + @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.foundation.layout.LayoutScopeMarker @androidx.compose.runtime.Immutable public interface ContextualFlowColumnScope extends androidx.compose.foundation.layout.FlowColumnScope { + method public int getIndexInLine(); + method public int getLineIndex(); + method public float getMaxHeightInLine(); + method public float getMaxWidth(); + property public abstract int indexInLine; + property public abstract int lineIndex; + property public abstract float maxHeightInLine; + property public abstract float maxWidth; + } + + public final class ContextualFlowLayoutKt { + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable public static void ContextualFlowColumn(int itemCount, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional androidx.compose.foundation.layout.Arrangement.Horizontal horizontalArrangement, optional int maxItemsInEachColumn, optional int maxLines, optional androidx.compose.foundation.layout.ContextualFlowColumnOverflow overflow, kotlin.jvm.functions.Function2 content); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable public static void ContextualFlowRow(int itemCount, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.layout.Arrangement.Horizontal horizontalArrangement, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional int maxItemsInEachRow, optional int maxLines, optional androidx.compose.foundation.layout.ContextualFlowRowOverflow overflow, kotlin.jvm.functions.Function2 content); + } + + @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public final class ContextualFlowRowOverflow extends androidx.compose.foundation.layout.FlowLayoutOverflow { + field public static final androidx.compose.foundation.layout.ContextualFlowRowOverflow.Companion Companion; + } + + public static final class ContextualFlowRowOverflow.Companion { + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public androidx.compose.foundation.layout.ContextualFlowRowOverflow expandIndicator(kotlin.jvm.functions.Function1 content); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable public androidx.compose.foundation.layout.ContextualFlowRowOverflow expandOrCollapseIndicator(kotlin.jvm.functions.Function1 expandIndicator, kotlin.jvm.functions.Function1 collapseIndicator, optional int minRowsToShowCollapse, optional float minHeightToShowCollapse); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public androidx.compose.foundation.layout.ContextualFlowRowOverflow getClip(); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public androidx.compose.foundation.layout.ContextualFlowRowOverflow getVisible(); + property @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public final androidx.compose.foundation.layout.ContextualFlowRowOverflow Clip; + property @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public final androidx.compose.foundation.layout.ContextualFlowRowOverflow Visible; + } + + @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.foundation.layout.LayoutScopeMarker @androidx.compose.runtime.Immutable public interface ContextualFlowRowOverflowScope extends androidx.compose.foundation.layout.FlowRowOverflowScope { + } + + @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.foundation.layout.LayoutScopeMarker @androidx.compose.runtime.Immutable public interface ContextualFlowRowScope extends androidx.compose.foundation.layout.FlowRowScope { + method public int getIndexInLine(); + method public int getLineIndex(); + method public float getMaxHeight(); + method public float getMaxWidthInLine(); + property public abstract int indexInLine; + property public abstract int lineIndex; + property public abstract float maxHeight; + property public abstract float maxWidthInLine; + } + + @SuppressCompatibility @kotlin.RequiresOptIn(message="The API of this layout is experimental and is likely to change in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalLayoutApi { + } + + @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public final class FlowColumnOverflow extends androidx.compose.foundation.layout.FlowLayoutOverflow { + field public static final androidx.compose.foundation.layout.FlowColumnOverflow.Companion Companion; + } + + public static final class FlowColumnOverflow.Companion { + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public androidx.compose.foundation.layout.FlowColumnOverflow expandIndicator(kotlin.jvm.functions.Function1 content); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable public androidx.compose.foundation.layout.FlowColumnOverflow expandOrCollapseIndicator(kotlin.jvm.functions.Function1 expandIndicator, kotlin.jvm.functions.Function1 collapseIndicator, optional int minColumnsToShowCollapse, optional float minWidthToShowCollapse); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public androidx.compose.foundation.layout.FlowColumnOverflow getClip(); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public androidx.compose.foundation.layout.FlowColumnOverflow getVisible(); + property @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public final androidx.compose.foundation.layout.FlowColumnOverflow Clip; + property @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public final androidx.compose.foundation.layout.FlowColumnOverflow Visible; + } + + @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.foundation.layout.LayoutScopeMarker @androidx.compose.runtime.Immutable public interface FlowColumnOverflowScope extends androidx.compose.foundation.layout.FlowColumnScope { + method public int getShownItemCount(); + method public int getTotalItemCount(); + property public abstract int shownItemCount; + property public abstract int totalItemCount; + } + + @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.foundation.layout.LayoutScopeMarker @androidx.compose.runtime.Immutable public interface FlowColumnScope extends androidx.compose.foundation.layout.ColumnScope { + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public androidx.compose.ui.Modifier fillMaxColumnWidth(androidx.compose.ui.Modifier, optional @FloatRange(from=0.0, to=1.0) float fraction); + } + + public final class FlowLayoutKt { + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable public static void FlowColumn(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional androidx.compose.foundation.layout.Arrangement.Horizontal horizontalArrangement, optional int maxItemsInEachColumn, optional int maxLines, optional androidx.compose.foundation.layout.FlowColumnOverflow overflow, kotlin.jvm.functions.Function1 content); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable public static void FlowRow(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.layout.Arrangement.Horizontal horizontalArrangement, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional int maxItemsInEachRow, optional int maxLines, optional androidx.compose.foundation.layout.FlowRowOverflow overflow, kotlin.jvm.functions.Function1 content); + } + + @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public abstract sealed class FlowLayoutOverflow { + } + + @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public final class FlowRowOverflow extends androidx.compose.foundation.layout.FlowLayoutOverflow { + field public static final androidx.compose.foundation.layout.FlowRowOverflow.Companion Companion; + } + + public static final class FlowRowOverflow.Companion { + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public androidx.compose.foundation.layout.FlowRowOverflow expandIndicator(kotlin.jvm.functions.Function1 content); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable public androidx.compose.foundation.layout.FlowRowOverflow expandOrCollapseIndicator(kotlin.jvm.functions.Function1 expandIndicator, kotlin.jvm.functions.Function1 collapseIndicator, optional int minRowsToShowCollapse, optional float minHeightToShowCollapse); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public androidx.compose.foundation.layout.FlowRowOverflow getClip(); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public androidx.compose.foundation.layout.FlowRowOverflow getVisible(); + property @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public final androidx.compose.foundation.layout.FlowRowOverflow Clip; + property @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public final androidx.compose.foundation.layout.FlowRowOverflow Visible; + } + + @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.foundation.layout.LayoutScopeMarker @androidx.compose.runtime.Immutable public interface FlowRowOverflowScope extends androidx.compose.foundation.layout.FlowRowScope { + method public int getShownItemCount(); + method public int getTotalItemCount(); + property public abstract int shownItemCount; + property public abstract int totalItemCount; + } + + @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.foundation.layout.LayoutScopeMarker @androidx.compose.runtime.Immutable public interface FlowRowScope extends androidx.compose.foundation.layout.RowScope { + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public androidx.compose.ui.Modifier fillMaxRowHeight(androidx.compose.ui.Modifier, optional @FloatRange(from=0.0, to=1.0) float fraction); + } + + public final class IntrinsicKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier height(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.IntrinsicSize intrinsicSize); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier requiredHeight(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.IntrinsicSize intrinsicSize); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier requiredWidth(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.IntrinsicSize intrinsicSize); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier width(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.IntrinsicSize intrinsicSize); + } + + public enum IntrinsicSize { + enum_constant public static final androidx.compose.foundation.layout.IntrinsicSize Max; + enum_constant public static final androidx.compose.foundation.layout.IntrinsicSize Min; + } + + @kotlin.DslMarker public @interface LayoutScopeMarker { + } + + @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public final class MutableWindowInsets implements androidx.compose.foundation.layout.WindowInsets { + ctor public MutableWindowInsets(optional androidx.compose.foundation.layout.WindowInsets initialInsets); + method public int getBottom(androidx.compose.ui.unit.Density density); + method public androidx.compose.foundation.layout.WindowInsets getInsets(); + method public int getLeft(androidx.compose.ui.unit.Density density, androidx.compose.ui.unit.LayoutDirection layoutDirection); + method public int getRight(androidx.compose.ui.unit.Density density, androidx.compose.ui.unit.LayoutDirection layoutDirection); + method public int getTop(androidx.compose.ui.unit.Density density); + method public void setInsets(androidx.compose.foundation.layout.WindowInsets); + property public final androidx.compose.foundation.layout.WindowInsets insets; + } + + public final class OffsetKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier absoluteOffset(androidx.compose.ui.Modifier, optional float x, optional float y); + method public static androidx.compose.ui.Modifier absoluteOffset(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 offset); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier offset(androidx.compose.ui.Modifier, optional float x, optional float y); + method public static androidx.compose.ui.Modifier offset(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 offset); + } + + public final class PaddingKt { + method @androidx.compose.runtime.Stable public static androidx.compose.foundation.layout.PaddingValues PaddingValues(float all); + method @androidx.compose.runtime.Stable public static androidx.compose.foundation.layout.PaddingValues PaddingValues(optional float horizontal, optional float vertical); + method @androidx.compose.runtime.Stable public static androidx.compose.foundation.layout.PaddingValues PaddingValues(optional float start, optional float top, optional float end, optional float bottom); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier absolutePadding(androidx.compose.ui.Modifier, optional float left, optional float top, optional float right, optional float bottom); + method @androidx.compose.runtime.Stable public static float calculateEndPadding(androidx.compose.foundation.layout.PaddingValues, androidx.compose.ui.unit.LayoutDirection layoutDirection); + method @androidx.compose.runtime.Stable public static float calculateStartPadding(androidx.compose.foundation.layout.PaddingValues, androidx.compose.ui.unit.LayoutDirection layoutDirection); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier padding(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.PaddingValues paddingValues); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier padding(androidx.compose.ui.Modifier, float all); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier padding(androidx.compose.ui.Modifier, optional float horizontal, optional float vertical); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier padding(androidx.compose.ui.Modifier, optional float start, optional float top, optional float end, optional float bottom); + } + + @androidx.compose.runtime.Stable public interface PaddingValues { + method public float calculateBottomPadding(); + method public float calculateLeftPadding(androidx.compose.ui.unit.LayoutDirection layoutDirection); + method public float calculateRightPadding(androidx.compose.ui.unit.LayoutDirection layoutDirection); + method public float calculateTopPadding(); + } + + @androidx.compose.runtime.Immutable public static final class PaddingValues.Absolute implements androidx.compose.foundation.layout.PaddingValues { + ctor public PaddingValues.Absolute(optional @androidx.compose.runtime.Stable float left, optional @androidx.compose.runtime.Stable float top, optional @androidx.compose.runtime.Stable float right, optional @androidx.compose.runtime.Stable float bottom); + method public float calculateBottomPadding(); + method public float calculateLeftPadding(androidx.compose.ui.unit.LayoutDirection layoutDirection); + method public float calculateRightPadding(androidx.compose.ui.unit.LayoutDirection layoutDirection); + method public float calculateTopPadding(); + } + + public final class RowKt { + method @androidx.compose.runtime.Composable public static inline void Row(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.layout.Arrangement.Horizontal horizontalArrangement, optional androidx.compose.ui.Alignment.Vertical verticalAlignment, kotlin.jvm.functions.Function1 content); + } + + @androidx.compose.foundation.layout.LayoutScopeMarker @androidx.compose.runtime.Immutable @kotlin.jvm.JvmDefaultWithCompatibility public interface RowScope { + method @androidx.compose.runtime.Stable public androidx.compose.ui.Modifier align(androidx.compose.ui.Modifier, androidx.compose.ui.Alignment.Vertical alignment); + method @androidx.compose.runtime.Stable public androidx.compose.ui.Modifier alignBy(androidx.compose.ui.Modifier, androidx.compose.ui.layout.HorizontalAlignmentLine alignmentLine); + method @androidx.compose.runtime.Stable public androidx.compose.ui.Modifier alignBy(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 alignmentLineBlock); + method @androidx.compose.runtime.Stable public androidx.compose.ui.Modifier alignByBaseline(androidx.compose.ui.Modifier); + method @androidx.compose.runtime.Stable public androidx.compose.ui.Modifier weight(androidx.compose.ui.Modifier, @FloatRange(from=0.0, fromInclusive=false) float weight, optional boolean fill); + } + + public final class SizeKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier defaultMinSize(androidx.compose.ui.Modifier, optional float minWidth, optional float minHeight); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier fillMaxHeight(androidx.compose.ui.Modifier, optional @FloatRange(from=0.0, to=1.0) float fraction); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier fillMaxSize(androidx.compose.ui.Modifier, optional @FloatRange(from=0.0, to=1.0) float fraction); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier fillMaxWidth(androidx.compose.ui.Modifier, optional @FloatRange(from=0.0, to=1.0) float fraction); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier height(androidx.compose.ui.Modifier, float height); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier heightIn(androidx.compose.ui.Modifier, optional float min, optional float max); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier requiredHeight(androidx.compose.ui.Modifier, float height); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier requiredHeightIn(androidx.compose.ui.Modifier, optional float min, optional float max); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier requiredSize(androidx.compose.ui.Modifier, float size); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier requiredSize(androidx.compose.ui.Modifier, float width, float height); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier requiredSize(androidx.compose.ui.Modifier, long size); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier requiredSizeIn(androidx.compose.ui.Modifier, optional float minWidth, optional float minHeight, optional float maxWidth, optional float maxHeight); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier requiredWidth(androidx.compose.ui.Modifier, float width); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier requiredWidthIn(androidx.compose.ui.Modifier, optional float min, optional float max); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier size(androidx.compose.ui.Modifier, float size); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier size(androidx.compose.ui.Modifier, float width, float height); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier size(androidx.compose.ui.Modifier, long size); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier sizeIn(androidx.compose.ui.Modifier, optional float minWidth, optional float minHeight, optional float maxWidth, optional float maxHeight); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier width(androidx.compose.ui.Modifier, float width); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier widthIn(androidx.compose.ui.Modifier, optional float min, optional float max); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier wrapContentHeight(androidx.compose.ui.Modifier, optional androidx.compose.ui.Alignment.Vertical align, optional boolean unbounded); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier wrapContentSize(androidx.compose.ui.Modifier, optional androidx.compose.ui.Alignment align, optional boolean unbounded); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier wrapContentWidth(androidx.compose.ui.Modifier, optional androidx.compose.ui.Alignment.Horizontal align, optional boolean unbounded); + } + + public final class SpacerKt { + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void Spacer(androidx.compose.ui.Modifier modifier); + } + + @androidx.compose.runtime.Stable public interface WindowInsets { + method public int getBottom(androidx.compose.ui.unit.Density density); + method public int getLeft(androidx.compose.ui.unit.Density density, androidx.compose.ui.unit.LayoutDirection layoutDirection); + method public int getRight(androidx.compose.ui.unit.Density density, androidx.compose.ui.unit.LayoutDirection layoutDirection); + method public int getTop(androidx.compose.ui.unit.Density density); + field public static final androidx.compose.foundation.layout.WindowInsets.Companion Companion; + } + + public static final class WindowInsets.Companion { + } + + public final class WindowInsetsConnection_androidKt { + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public static androidx.compose.ui.Modifier imeNestedScroll(androidx.compose.ui.Modifier); + } + + public final class WindowInsetsKt { + method public static androidx.compose.foundation.layout.WindowInsets WindowInsets(optional float left, optional float top, optional float right, optional float bottom); + method public static androidx.compose.foundation.layout.WindowInsets WindowInsets(optional int left, optional int top, optional int right, optional int bottom); + method public static androidx.compose.foundation.layout.WindowInsets add(androidx.compose.foundation.layout.WindowInsets, androidx.compose.foundation.layout.WindowInsets insets); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static androidx.compose.foundation.layout.PaddingValues asPaddingValues(androidx.compose.foundation.layout.WindowInsets); + method public static androidx.compose.foundation.layout.PaddingValues asPaddingValues(androidx.compose.foundation.layout.WindowInsets, androidx.compose.ui.unit.Density density); + method public static androidx.compose.foundation.layout.WindowInsets exclude(androidx.compose.foundation.layout.WindowInsets, androidx.compose.foundation.layout.WindowInsets insets); + method public static androidx.compose.foundation.layout.WindowInsets only(androidx.compose.foundation.layout.WindowInsets, int sides); + method public static androidx.compose.foundation.layout.WindowInsets union(androidx.compose.foundation.layout.WindowInsets, androidx.compose.foundation.layout.WindowInsets insets); + } + + public final class WindowInsetsPaddingKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier consumeWindowInsets(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.PaddingValues paddingValues); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier consumeWindowInsets(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.WindowInsets insets); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier onConsumedWindowInsetsChanged(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 block); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier windowInsetsPadding(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.WindowInsets insets); + } + + public final class WindowInsetsPadding_androidKt { + method public static androidx.compose.ui.Modifier captionBarPadding(androidx.compose.ui.Modifier); + method public static androidx.compose.ui.Modifier displayCutoutPadding(androidx.compose.ui.Modifier); + method public static androidx.compose.ui.Modifier imePadding(androidx.compose.ui.Modifier); + method public static androidx.compose.ui.Modifier mandatorySystemGesturesPadding(androidx.compose.ui.Modifier); + method public static androidx.compose.ui.Modifier navigationBarsPadding(androidx.compose.ui.Modifier); + method public static androidx.compose.ui.Modifier safeContentPadding(androidx.compose.ui.Modifier); + method public static androidx.compose.ui.Modifier safeDrawingPadding(androidx.compose.ui.Modifier); + method public static androidx.compose.ui.Modifier safeGesturesPadding(androidx.compose.ui.Modifier); + method public static androidx.compose.ui.Modifier statusBarsPadding(androidx.compose.ui.Modifier); + method public static androidx.compose.ui.Modifier systemBarsPadding(androidx.compose.ui.Modifier); + method public static androidx.compose.ui.Modifier systemGesturesPadding(androidx.compose.ui.Modifier); + method public static androidx.compose.ui.Modifier waterfallPadding(androidx.compose.ui.Modifier); + } + + @kotlin.jvm.JvmInline public final value class WindowInsetsSides { + method public operator int plus(int sides); + field public static final androidx.compose.foundation.layout.WindowInsetsSides.Companion Companion; + } + + public static final class WindowInsetsSides.Companion { + method public int getBottom(); + method public int getEnd(); + method public int getHorizontal(); + method public int getLeft(); + method public int getRight(); + method public int getStart(); + method public int getTop(); + method public int getVertical(); + property public final int Bottom; + property public final int End; + property public final int Horizontal; + property public final int Left; + property public final int Right; + property public final int Start; + property public final int Top; + property public final int Vertical; + } + + public final class WindowInsetsSizeKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier windowInsetsBottomHeight(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.WindowInsets insets); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier windowInsetsEndWidth(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.WindowInsets insets); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier windowInsetsStartWidth(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.WindowInsets insets); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier windowInsetsTopHeight(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.WindowInsets insets); + } + + public final class WindowInsets_androidKt { + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static boolean getAreNavigationBarsVisible(androidx.compose.foundation.layout.WindowInsets.Companion); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static boolean getAreStatusBarsVisible(androidx.compose.foundation.layout.WindowInsets.Companion); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static boolean getAreSystemBarsVisible(androidx.compose.foundation.layout.WindowInsets.Companion); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getCaptionBar(androidx.compose.foundation.layout.WindowInsets.Companion); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getCaptionBarIgnoringVisibility(androidx.compose.foundation.layout.WindowInsets.Companion); + method public boolean getConsumeWindowInsets(); + method public static boolean getConsumeWindowInsets(androidx.compose.ui.platform.AbstractComposeView); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getDisplayCutout(androidx.compose.foundation.layout.WindowInsets.Companion); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getIme(androidx.compose.foundation.layout.WindowInsets.Companion); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getImeAnimationSource(androidx.compose.foundation.layout.WindowInsets.Companion); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getImeAnimationTarget(androidx.compose.foundation.layout.WindowInsets.Companion); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getMandatorySystemGestures(androidx.compose.foundation.layout.WindowInsets.Companion); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getNavigationBars(androidx.compose.foundation.layout.WindowInsets.Companion); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getNavigationBarsIgnoringVisibility(androidx.compose.foundation.layout.WindowInsets.Companion); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getSafeContent(androidx.compose.foundation.layout.WindowInsets.Companion); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getSafeDrawing(androidx.compose.foundation.layout.WindowInsets.Companion); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getSafeGestures(androidx.compose.foundation.layout.WindowInsets.Companion); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getStatusBars(androidx.compose.foundation.layout.WindowInsets.Companion); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getStatusBarsIgnoringVisibility(androidx.compose.foundation.layout.WindowInsets.Companion); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getSystemBars(androidx.compose.foundation.layout.WindowInsets.Companion); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getSystemBarsIgnoringVisibility(androidx.compose.foundation.layout.WindowInsets.Companion); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getSystemGestures(androidx.compose.foundation.layout.WindowInsets.Companion); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getTappableElement(androidx.compose.foundation.layout.WindowInsets.Companion); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getTappableElementIgnoringVisibility(androidx.compose.foundation.layout.WindowInsets.Companion); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getWaterfall(androidx.compose.foundation.layout.WindowInsets.Companion); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static boolean isCaptionBarVisible(androidx.compose.foundation.layout.WindowInsets.Companion); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static boolean isImeVisible(androidx.compose.foundation.layout.WindowInsets.Companion); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static boolean isTappableElementVisible(androidx.compose.foundation.layout.WindowInsets.Companion); + method public static void setConsumeWindowInsets(androidx.compose.ui.platform.AbstractComposeView, boolean); + method public void setConsumeWindowInsets(boolean); + property public boolean consumeWindowInsets; + } + +} + diff --git a/compose/foundation/foundation-layout/api/res-1.7.0-beta07.txt b/compose/foundation/foundation-layout/api/res-1.7.0-beta07.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/compose/foundation/foundation-layout/api/restricted_1.7.0-beta07.txt b/compose/foundation/foundation-layout/api/restricted_1.7.0-beta07.txt new file mode 100644 index 0000000000000..f0f519b9292e0 --- /dev/null +++ b/compose/foundation/foundation-layout/api/restricted_1.7.0-beta07.txt @@ -0,0 +1,457 @@ +// Signature format: 4.0 +package androidx.compose.foundation.layout { + + public final class AlignmentLineKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier paddingFrom(androidx.compose.ui.Modifier, androidx.compose.ui.layout.AlignmentLine alignmentLine, optional float before, optional float after); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier paddingFrom(androidx.compose.ui.Modifier, androidx.compose.ui.layout.AlignmentLine alignmentLine, optional long before, optional long after); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier paddingFromBaseline(androidx.compose.ui.Modifier, optional float top, optional float bottom); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier paddingFromBaseline(androidx.compose.ui.Modifier, optional long top, optional long bottom); + } + + @androidx.compose.runtime.Immutable public final class Arrangement { + method @androidx.compose.runtime.Stable public androidx.compose.foundation.layout.Arrangement.Horizontal aligned(androidx.compose.ui.Alignment.Horizontal alignment); + method @androidx.compose.runtime.Stable public androidx.compose.foundation.layout.Arrangement.Vertical aligned(androidx.compose.ui.Alignment.Vertical alignment); + method public androidx.compose.foundation.layout.Arrangement.Vertical getBottom(); + method public androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical getCenter(); + method public androidx.compose.foundation.layout.Arrangement.Horizontal getEnd(); + method public androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical getSpaceAround(); + method public androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical getSpaceBetween(); + method public androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical getSpaceEvenly(); + method public androidx.compose.foundation.layout.Arrangement.Horizontal getStart(); + method public androidx.compose.foundation.layout.Arrangement.Vertical getTop(); + method @androidx.compose.runtime.Stable public androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical spacedBy(float space); + method @androidx.compose.runtime.Stable public androidx.compose.foundation.layout.Arrangement.Horizontal spacedBy(float space, androidx.compose.ui.Alignment.Horizontal alignment); + method @androidx.compose.runtime.Stable public androidx.compose.foundation.layout.Arrangement.Vertical spacedBy(float space, androidx.compose.ui.Alignment.Vertical alignment); + property public final androidx.compose.foundation.layout.Arrangement.Vertical Bottom; + property public final androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical Center; + property public final androidx.compose.foundation.layout.Arrangement.Horizontal End; + property public final androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical SpaceAround; + property public final androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical SpaceBetween; + property public final androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical SpaceEvenly; + property public final androidx.compose.foundation.layout.Arrangement.Horizontal Start; + property public final androidx.compose.foundation.layout.Arrangement.Vertical Top; + field public static final androidx.compose.foundation.layout.Arrangement INSTANCE; + } + + @androidx.compose.runtime.Immutable public static final class Arrangement.Absolute { + method @androidx.compose.runtime.Stable public androidx.compose.foundation.layout.Arrangement.Horizontal aligned(androidx.compose.ui.Alignment.Horizontal alignment); + method public androidx.compose.foundation.layout.Arrangement.Horizontal getCenter(); + method public androidx.compose.foundation.layout.Arrangement.Horizontal getLeft(); + method public androidx.compose.foundation.layout.Arrangement.Horizontal getRight(); + method public androidx.compose.foundation.layout.Arrangement.Horizontal getSpaceAround(); + method public androidx.compose.foundation.layout.Arrangement.Horizontal getSpaceBetween(); + method public androidx.compose.foundation.layout.Arrangement.Horizontal getSpaceEvenly(); + method @androidx.compose.runtime.Stable public androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical spacedBy(float space); + method @androidx.compose.runtime.Stable public androidx.compose.foundation.layout.Arrangement.Horizontal spacedBy(float space, androidx.compose.ui.Alignment.Horizontal alignment); + method @androidx.compose.runtime.Stable public androidx.compose.foundation.layout.Arrangement.Vertical spacedBy(float space, androidx.compose.ui.Alignment.Vertical alignment); + property public final androidx.compose.foundation.layout.Arrangement.Horizontal Center; + property public final androidx.compose.foundation.layout.Arrangement.Horizontal Left; + property public final androidx.compose.foundation.layout.Arrangement.Horizontal Right; + property public final androidx.compose.foundation.layout.Arrangement.Horizontal SpaceAround; + property public final androidx.compose.foundation.layout.Arrangement.Horizontal SpaceBetween; + property public final androidx.compose.foundation.layout.Arrangement.Horizontal SpaceEvenly; + field public static final androidx.compose.foundation.layout.Arrangement.Absolute INSTANCE; + } + + @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public static interface Arrangement.Horizontal { + method public void arrange(androidx.compose.ui.unit.Density, int totalSize, int[] sizes, androidx.compose.ui.unit.LayoutDirection layoutDirection, int[] outPositions); + method public default float getSpacing(); + property public default float spacing; + } + + @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public static interface Arrangement.HorizontalOrVertical extends androidx.compose.foundation.layout.Arrangement.Horizontal androidx.compose.foundation.layout.Arrangement.Vertical { + property public default float spacing; + } + + @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public static interface Arrangement.Vertical { + method public void arrange(androidx.compose.ui.unit.Density, int totalSize, int[] sizes, int[] outPositions); + method public default float getSpacing(); + property public default float spacing; + } + + public final class AspectRatioKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier aspectRatio(androidx.compose.ui.Modifier, @FloatRange(from=0.0, fromInclusive=false) float ratio, optional boolean matchHeightConstraintsFirst); + } + + public final class BoxKt { + method @androidx.compose.runtime.Composable public static void Box(androidx.compose.ui.Modifier modifier); + method @androidx.compose.runtime.Composable public static inline void Box(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.Alignment contentAlignment, optional boolean propagateMinConstraints, kotlin.jvm.functions.Function1 content); + method @kotlin.PublishedApi internal static androidx.compose.ui.layout.MeasurePolicy maybeCachedBoxMeasurePolicy(androidx.compose.ui.Alignment alignment, boolean propagateMinConstraints); + method @androidx.compose.runtime.Composable @kotlin.PublishedApi internal static androidx.compose.ui.layout.MeasurePolicy rememberBoxMeasurePolicy(androidx.compose.ui.Alignment alignment, boolean propagateMinConstraints); + } + + @androidx.compose.foundation.layout.LayoutScopeMarker @androidx.compose.runtime.Immutable public interface BoxScope { + method @androidx.compose.runtime.Stable public androidx.compose.ui.Modifier align(androidx.compose.ui.Modifier, androidx.compose.ui.Alignment alignment); + method @androidx.compose.runtime.Stable public androidx.compose.ui.Modifier matchParentSize(androidx.compose.ui.Modifier); + } + + public final class BoxWithConstraintsKt { + method @androidx.compose.runtime.Composable @androidx.compose.ui.UiComposable public static void BoxWithConstraints(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.Alignment contentAlignment, optional boolean propagateMinConstraints, kotlin.jvm.functions.Function1 content); + } + + @androidx.compose.runtime.Stable public interface BoxWithConstraintsScope extends androidx.compose.foundation.layout.BoxScope { + method public long getConstraints(); + method public float getMaxHeight(); + method public float getMaxWidth(); + method public float getMinHeight(); + method public float getMinWidth(); + property public abstract long constraints; + property public abstract float maxHeight; + property public abstract float maxWidth; + property public abstract float minHeight; + property public abstract float minWidth; + } + + public final class ColumnKt { + method @androidx.compose.runtime.Composable public static inline void Column(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional androidx.compose.ui.Alignment.Horizontal horizontalAlignment, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable @kotlin.PublishedApi internal static androidx.compose.ui.layout.MeasurePolicy columnMeasurePolicy(androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, androidx.compose.ui.Alignment.Horizontal horizontalAlignment); + field @kotlin.PublishedApi internal static final androidx.compose.ui.layout.MeasurePolicy DefaultColumnMeasurePolicy; + } + + @androidx.compose.foundation.layout.LayoutScopeMarker @androidx.compose.runtime.Immutable @kotlin.jvm.JvmDefaultWithCompatibility public interface ColumnScope { + method @androidx.compose.runtime.Stable public androidx.compose.ui.Modifier align(androidx.compose.ui.Modifier, androidx.compose.ui.Alignment.Horizontal alignment); + method @androidx.compose.runtime.Stable public androidx.compose.ui.Modifier alignBy(androidx.compose.ui.Modifier, androidx.compose.ui.layout.VerticalAlignmentLine alignmentLine); + method @androidx.compose.runtime.Stable public androidx.compose.ui.Modifier alignBy(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 alignmentLineBlock); + method @androidx.compose.runtime.Stable public androidx.compose.ui.Modifier weight(androidx.compose.ui.Modifier, @FloatRange(from=0.0, fromInclusive=false) float weight, optional boolean fill); + } + + @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public final class ContextualFlowColumnOverflow extends androidx.compose.foundation.layout.FlowLayoutOverflow { + field public static final androidx.compose.foundation.layout.ContextualFlowColumnOverflow.Companion Companion; + } + + public static final class ContextualFlowColumnOverflow.Companion { + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public androidx.compose.foundation.layout.ContextualFlowColumnOverflow expandIndicator(kotlin.jvm.functions.Function1 content); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable public androidx.compose.foundation.layout.ContextualFlowColumnOverflow expandOrCollapseIndicator(kotlin.jvm.functions.Function1 expandIndicator, kotlin.jvm.functions.Function1 collapseIndicator, optional int minColumnsToShowCollapse, optional float minWidthToShowCollapse); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public androidx.compose.foundation.layout.ContextualFlowColumnOverflow getClip(); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public androidx.compose.foundation.layout.ContextualFlowColumnOverflow getVisible(); + property @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public final androidx.compose.foundation.layout.ContextualFlowColumnOverflow Clip; + property @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public final androidx.compose.foundation.layout.ContextualFlowColumnOverflow Visible; + } + + @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.foundation.layout.LayoutScopeMarker @androidx.compose.runtime.Immutable public interface ContextualFlowColumnOverflowScope extends androidx.compose.foundation.layout.FlowColumnOverflowScope { + } + + @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.foundation.layout.LayoutScopeMarker @androidx.compose.runtime.Immutable public interface ContextualFlowColumnScope extends androidx.compose.foundation.layout.FlowColumnScope { + method public int getIndexInLine(); + method public int getLineIndex(); + method public float getMaxHeightInLine(); + method public float getMaxWidth(); + property public abstract int indexInLine; + property public abstract int lineIndex; + property public abstract float maxHeightInLine; + property public abstract float maxWidth; + } + + public final class ContextualFlowLayoutKt { + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable public static void ContextualFlowColumn(int itemCount, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional androidx.compose.foundation.layout.Arrangement.Horizontal horizontalArrangement, optional int maxItemsInEachColumn, optional int maxLines, optional androidx.compose.foundation.layout.ContextualFlowColumnOverflow overflow, kotlin.jvm.functions.Function2 content); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable public static void ContextualFlowRow(int itemCount, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.layout.Arrangement.Horizontal horizontalArrangement, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional int maxItemsInEachRow, optional int maxLines, optional androidx.compose.foundation.layout.ContextualFlowRowOverflow overflow, kotlin.jvm.functions.Function2 content); + } + + @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public final class ContextualFlowRowOverflow extends androidx.compose.foundation.layout.FlowLayoutOverflow { + field public static final androidx.compose.foundation.layout.ContextualFlowRowOverflow.Companion Companion; + } + + public static final class ContextualFlowRowOverflow.Companion { + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public androidx.compose.foundation.layout.ContextualFlowRowOverflow expandIndicator(kotlin.jvm.functions.Function1 content); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable public androidx.compose.foundation.layout.ContextualFlowRowOverflow expandOrCollapseIndicator(kotlin.jvm.functions.Function1 expandIndicator, kotlin.jvm.functions.Function1 collapseIndicator, optional int minRowsToShowCollapse, optional float minHeightToShowCollapse); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public androidx.compose.foundation.layout.ContextualFlowRowOverflow getClip(); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public androidx.compose.foundation.layout.ContextualFlowRowOverflow getVisible(); + property @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public final androidx.compose.foundation.layout.ContextualFlowRowOverflow Clip; + property @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public final androidx.compose.foundation.layout.ContextualFlowRowOverflow Visible; + } + + @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.foundation.layout.LayoutScopeMarker @androidx.compose.runtime.Immutable public interface ContextualFlowRowOverflowScope extends androidx.compose.foundation.layout.FlowRowOverflowScope { + } + + @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.foundation.layout.LayoutScopeMarker @androidx.compose.runtime.Immutable public interface ContextualFlowRowScope extends androidx.compose.foundation.layout.FlowRowScope { + method public int getIndexInLine(); + method public int getLineIndex(); + method public float getMaxHeight(); + method public float getMaxWidthInLine(); + property public abstract int indexInLine; + property public abstract int lineIndex; + property public abstract float maxHeight; + property public abstract float maxWidthInLine; + } + + @SuppressCompatibility @kotlin.RequiresOptIn(message="The API of this layout is experimental and is likely to change in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalLayoutApi { + } + + @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public final class FlowColumnOverflow extends androidx.compose.foundation.layout.FlowLayoutOverflow { + field public static final androidx.compose.foundation.layout.FlowColumnOverflow.Companion Companion; + } + + public static final class FlowColumnOverflow.Companion { + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public androidx.compose.foundation.layout.FlowColumnOverflow expandIndicator(kotlin.jvm.functions.Function1 content); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable public androidx.compose.foundation.layout.FlowColumnOverflow expandOrCollapseIndicator(kotlin.jvm.functions.Function1 expandIndicator, kotlin.jvm.functions.Function1 collapseIndicator, optional int minColumnsToShowCollapse, optional float minWidthToShowCollapse); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public androidx.compose.foundation.layout.FlowColumnOverflow getClip(); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public androidx.compose.foundation.layout.FlowColumnOverflow getVisible(); + property @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public final androidx.compose.foundation.layout.FlowColumnOverflow Clip; + property @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public final androidx.compose.foundation.layout.FlowColumnOverflow Visible; + } + + @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.foundation.layout.LayoutScopeMarker @androidx.compose.runtime.Immutable public interface FlowColumnOverflowScope extends androidx.compose.foundation.layout.FlowColumnScope { + method public int getShownItemCount(); + method public int getTotalItemCount(); + property public abstract int shownItemCount; + property public abstract int totalItemCount; + } + + @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.foundation.layout.LayoutScopeMarker @androidx.compose.runtime.Immutable public interface FlowColumnScope extends androidx.compose.foundation.layout.ColumnScope { + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public androidx.compose.ui.Modifier fillMaxColumnWidth(androidx.compose.ui.Modifier, optional @FloatRange(from=0.0, to=1.0) float fraction); + } + + public final class FlowLayoutKt { + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable public static void FlowColumn(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional androidx.compose.foundation.layout.Arrangement.Horizontal horizontalArrangement, optional int maxItemsInEachColumn, optional int maxLines, optional androidx.compose.foundation.layout.FlowColumnOverflow overflow, kotlin.jvm.functions.Function1 content); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable public static void FlowRow(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.layout.Arrangement.Horizontal horizontalArrangement, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional int maxItemsInEachRow, optional int maxLines, optional androidx.compose.foundation.layout.FlowRowOverflow overflow, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable @kotlin.PublishedApi internal static androidx.compose.ui.layout.MeasurePolicy columnMeasurementHelper(androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, androidx.compose.foundation.layout.Arrangement.Horizontal horizontalArrangement, int maxItemsInMainAxis); + method @androidx.compose.runtime.Composable @kotlin.PublishedApi internal static androidx.compose.ui.layout.MeasurePolicy rowMeasurementHelper(androidx.compose.foundation.layout.Arrangement.Horizontal horizontalArrangement, androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, int maxItemsInMainAxis); + } + + @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public abstract sealed class FlowLayoutOverflow { + } + + @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public final class FlowRowOverflow extends androidx.compose.foundation.layout.FlowLayoutOverflow { + field public static final androidx.compose.foundation.layout.FlowRowOverflow.Companion Companion; + } + + public static final class FlowRowOverflow.Companion { + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public androidx.compose.foundation.layout.FlowRowOverflow expandIndicator(kotlin.jvm.functions.Function1 content); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable public androidx.compose.foundation.layout.FlowRowOverflow expandOrCollapseIndicator(kotlin.jvm.functions.Function1 expandIndicator, kotlin.jvm.functions.Function1 collapseIndicator, optional int minRowsToShowCollapse, optional float minHeightToShowCollapse); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public androidx.compose.foundation.layout.FlowRowOverflow getClip(); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public androidx.compose.foundation.layout.FlowRowOverflow getVisible(); + property @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public final androidx.compose.foundation.layout.FlowRowOverflow Clip; + property @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public final androidx.compose.foundation.layout.FlowRowOverflow Visible; + } + + @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.foundation.layout.LayoutScopeMarker @androidx.compose.runtime.Immutable public interface FlowRowOverflowScope extends androidx.compose.foundation.layout.FlowRowScope { + method public int getShownItemCount(); + method public int getTotalItemCount(); + property public abstract int shownItemCount; + property public abstract int totalItemCount; + } + + @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.foundation.layout.LayoutScopeMarker @androidx.compose.runtime.Immutable public interface FlowRowScope extends androidx.compose.foundation.layout.RowScope { + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public androidx.compose.ui.Modifier fillMaxRowHeight(androidx.compose.ui.Modifier, optional @FloatRange(from=0.0, to=1.0) float fraction); + } + + public final class IntrinsicKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier height(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.IntrinsicSize intrinsicSize); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier requiredHeight(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.IntrinsicSize intrinsicSize); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier requiredWidth(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.IntrinsicSize intrinsicSize); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier width(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.IntrinsicSize intrinsicSize); + } + + public enum IntrinsicSize { + enum_constant public static final androidx.compose.foundation.layout.IntrinsicSize Max; + enum_constant public static final androidx.compose.foundation.layout.IntrinsicSize Min; + } + + @kotlin.DslMarker public @interface LayoutScopeMarker { + } + + @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public final class MutableWindowInsets implements androidx.compose.foundation.layout.WindowInsets { + ctor public MutableWindowInsets(optional androidx.compose.foundation.layout.WindowInsets initialInsets); + method public int getBottom(androidx.compose.ui.unit.Density density); + method public androidx.compose.foundation.layout.WindowInsets getInsets(); + method public int getLeft(androidx.compose.ui.unit.Density density, androidx.compose.ui.unit.LayoutDirection layoutDirection); + method public int getRight(androidx.compose.ui.unit.Density density, androidx.compose.ui.unit.LayoutDirection layoutDirection); + method public int getTop(androidx.compose.ui.unit.Density density); + method public void setInsets(androidx.compose.foundation.layout.WindowInsets); + property public final androidx.compose.foundation.layout.WindowInsets insets; + } + + public final class OffsetKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier absoluteOffset(androidx.compose.ui.Modifier, optional float x, optional float y); + method public static androidx.compose.ui.Modifier absoluteOffset(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 offset); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier offset(androidx.compose.ui.Modifier, optional float x, optional float y); + method public static androidx.compose.ui.Modifier offset(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 offset); + } + + public final class PaddingKt { + method @androidx.compose.runtime.Stable public static androidx.compose.foundation.layout.PaddingValues PaddingValues(float all); + method @androidx.compose.runtime.Stable public static androidx.compose.foundation.layout.PaddingValues PaddingValues(optional float horizontal, optional float vertical); + method @androidx.compose.runtime.Stable public static androidx.compose.foundation.layout.PaddingValues PaddingValues(optional float start, optional float top, optional float end, optional float bottom); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier absolutePadding(androidx.compose.ui.Modifier, optional float left, optional float top, optional float right, optional float bottom); + method @androidx.compose.runtime.Stable public static float calculateEndPadding(androidx.compose.foundation.layout.PaddingValues, androidx.compose.ui.unit.LayoutDirection layoutDirection); + method @androidx.compose.runtime.Stable public static float calculateStartPadding(androidx.compose.foundation.layout.PaddingValues, androidx.compose.ui.unit.LayoutDirection layoutDirection); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier padding(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.PaddingValues paddingValues); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier padding(androidx.compose.ui.Modifier, float all); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier padding(androidx.compose.ui.Modifier, optional float horizontal, optional float vertical); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier padding(androidx.compose.ui.Modifier, optional float start, optional float top, optional float end, optional float bottom); + } + + @androidx.compose.runtime.Stable public interface PaddingValues { + method public float calculateBottomPadding(); + method public float calculateLeftPadding(androidx.compose.ui.unit.LayoutDirection layoutDirection); + method public float calculateRightPadding(androidx.compose.ui.unit.LayoutDirection layoutDirection); + method public float calculateTopPadding(); + } + + @androidx.compose.runtime.Immutable public static final class PaddingValues.Absolute implements androidx.compose.foundation.layout.PaddingValues { + ctor public PaddingValues.Absolute(optional @androidx.compose.runtime.Stable float left, optional @androidx.compose.runtime.Stable float top, optional @androidx.compose.runtime.Stable float right, optional @androidx.compose.runtime.Stable float bottom); + method public float calculateBottomPadding(); + method public float calculateLeftPadding(androidx.compose.ui.unit.LayoutDirection layoutDirection); + method public float calculateRightPadding(androidx.compose.ui.unit.LayoutDirection layoutDirection); + method public float calculateTopPadding(); + } + + public final class RowKt { + method @androidx.compose.runtime.Composable public static inline void Row(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.layout.Arrangement.Horizontal horizontalArrangement, optional androidx.compose.ui.Alignment.Vertical verticalAlignment, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable @kotlin.PublishedApi internal static androidx.compose.ui.layout.MeasurePolicy rowMeasurePolicy(androidx.compose.foundation.layout.Arrangement.Horizontal horizontalArrangement, androidx.compose.ui.Alignment.Vertical verticalAlignment); + field @kotlin.PublishedApi internal static final androidx.compose.ui.layout.MeasurePolicy DefaultRowMeasurePolicy; + } + + @androidx.compose.foundation.layout.LayoutScopeMarker @androidx.compose.runtime.Immutable @kotlin.jvm.JvmDefaultWithCompatibility public interface RowScope { + method @androidx.compose.runtime.Stable public androidx.compose.ui.Modifier align(androidx.compose.ui.Modifier, androidx.compose.ui.Alignment.Vertical alignment); + method @androidx.compose.runtime.Stable public androidx.compose.ui.Modifier alignBy(androidx.compose.ui.Modifier, androidx.compose.ui.layout.HorizontalAlignmentLine alignmentLine); + method @androidx.compose.runtime.Stable public androidx.compose.ui.Modifier alignBy(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 alignmentLineBlock); + method @androidx.compose.runtime.Stable public androidx.compose.ui.Modifier alignByBaseline(androidx.compose.ui.Modifier); + method @androidx.compose.runtime.Stable public androidx.compose.ui.Modifier weight(androidx.compose.ui.Modifier, @FloatRange(from=0.0, fromInclusive=false) float weight, optional boolean fill); + } + + public final class SizeKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier defaultMinSize(androidx.compose.ui.Modifier, optional float minWidth, optional float minHeight); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier fillMaxHeight(androidx.compose.ui.Modifier, optional @FloatRange(from=0.0, to=1.0) float fraction); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier fillMaxSize(androidx.compose.ui.Modifier, optional @FloatRange(from=0.0, to=1.0) float fraction); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier fillMaxWidth(androidx.compose.ui.Modifier, optional @FloatRange(from=0.0, to=1.0) float fraction); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier height(androidx.compose.ui.Modifier, float height); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier heightIn(androidx.compose.ui.Modifier, optional float min, optional float max); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier requiredHeight(androidx.compose.ui.Modifier, float height); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier requiredHeightIn(androidx.compose.ui.Modifier, optional float min, optional float max); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier requiredSize(androidx.compose.ui.Modifier, float size); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier requiredSize(androidx.compose.ui.Modifier, float width, float height); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier requiredSize(androidx.compose.ui.Modifier, long size); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier requiredSizeIn(androidx.compose.ui.Modifier, optional float minWidth, optional float minHeight, optional float maxWidth, optional float maxHeight); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier requiredWidth(androidx.compose.ui.Modifier, float width); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier requiredWidthIn(androidx.compose.ui.Modifier, optional float min, optional float max); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier size(androidx.compose.ui.Modifier, float size); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier size(androidx.compose.ui.Modifier, float width, float height); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier size(androidx.compose.ui.Modifier, long size); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier sizeIn(androidx.compose.ui.Modifier, optional float minWidth, optional float minHeight, optional float maxWidth, optional float maxHeight); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier width(androidx.compose.ui.Modifier, float width); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier widthIn(androidx.compose.ui.Modifier, optional float min, optional float max); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier wrapContentHeight(androidx.compose.ui.Modifier, optional androidx.compose.ui.Alignment.Vertical align, optional boolean unbounded); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier wrapContentSize(androidx.compose.ui.Modifier, optional androidx.compose.ui.Alignment align, optional boolean unbounded); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier wrapContentWidth(androidx.compose.ui.Modifier, optional androidx.compose.ui.Alignment.Horizontal align, optional boolean unbounded); + } + + public final class SpacerKt { + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void Spacer(androidx.compose.ui.Modifier modifier); + } + + @androidx.compose.runtime.Stable public interface WindowInsets { + method public int getBottom(androidx.compose.ui.unit.Density density); + method public int getLeft(androidx.compose.ui.unit.Density density, androidx.compose.ui.unit.LayoutDirection layoutDirection); + method public int getRight(androidx.compose.ui.unit.Density density, androidx.compose.ui.unit.LayoutDirection layoutDirection); + method public int getTop(androidx.compose.ui.unit.Density density); + field public static final androidx.compose.foundation.layout.WindowInsets.Companion Companion; + } + + public static final class WindowInsets.Companion { + } + + public final class WindowInsetsConnection_androidKt { + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi public static androidx.compose.ui.Modifier imeNestedScroll(androidx.compose.ui.Modifier); + } + + public final class WindowInsetsKt { + method public static androidx.compose.foundation.layout.WindowInsets WindowInsets(optional float left, optional float top, optional float right, optional float bottom); + method public static androidx.compose.foundation.layout.WindowInsets WindowInsets(optional int left, optional int top, optional int right, optional int bottom); + method public static androidx.compose.foundation.layout.WindowInsets add(androidx.compose.foundation.layout.WindowInsets, androidx.compose.foundation.layout.WindowInsets insets); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static androidx.compose.foundation.layout.PaddingValues asPaddingValues(androidx.compose.foundation.layout.WindowInsets); + method public static androidx.compose.foundation.layout.PaddingValues asPaddingValues(androidx.compose.foundation.layout.WindowInsets, androidx.compose.ui.unit.Density density); + method public static androidx.compose.foundation.layout.WindowInsets exclude(androidx.compose.foundation.layout.WindowInsets, androidx.compose.foundation.layout.WindowInsets insets); + method public static androidx.compose.foundation.layout.WindowInsets only(androidx.compose.foundation.layout.WindowInsets, int sides); + method public static androidx.compose.foundation.layout.WindowInsets union(androidx.compose.foundation.layout.WindowInsets, androidx.compose.foundation.layout.WindowInsets insets); + } + + public final class WindowInsetsPaddingKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier consumeWindowInsets(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.PaddingValues paddingValues); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier consumeWindowInsets(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.WindowInsets insets); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier onConsumedWindowInsetsChanged(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 block); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier windowInsetsPadding(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.WindowInsets insets); + } + + public final class WindowInsetsPadding_androidKt { + method public static androidx.compose.ui.Modifier captionBarPadding(androidx.compose.ui.Modifier); + method public static androidx.compose.ui.Modifier displayCutoutPadding(androidx.compose.ui.Modifier); + method public static androidx.compose.ui.Modifier imePadding(androidx.compose.ui.Modifier); + method public static androidx.compose.ui.Modifier mandatorySystemGesturesPadding(androidx.compose.ui.Modifier); + method public static androidx.compose.ui.Modifier navigationBarsPadding(androidx.compose.ui.Modifier); + method public static androidx.compose.ui.Modifier safeContentPadding(androidx.compose.ui.Modifier); + method public static androidx.compose.ui.Modifier safeDrawingPadding(androidx.compose.ui.Modifier); + method public static androidx.compose.ui.Modifier safeGesturesPadding(androidx.compose.ui.Modifier); + method public static androidx.compose.ui.Modifier statusBarsPadding(androidx.compose.ui.Modifier); + method public static androidx.compose.ui.Modifier systemBarsPadding(androidx.compose.ui.Modifier); + method public static androidx.compose.ui.Modifier systemGesturesPadding(androidx.compose.ui.Modifier); + method public static androidx.compose.ui.Modifier waterfallPadding(androidx.compose.ui.Modifier); + } + + @kotlin.jvm.JvmInline public final value class WindowInsetsSides { + method public operator int plus(int sides); + field public static final androidx.compose.foundation.layout.WindowInsetsSides.Companion Companion; + } + + public static final class WindowInsetsSides.Companion { + method public int getBottom(); + method public int getEnd(); + method public int getHorizontal(); + method public int getLeft(); + method public int getRight(); + method public int getStart(); + method public int getTop(); + method public int getVertical(); + property public final int Bottom; + property public final int End; + property public final int Horizontal; + property public final int Left; + property public final int Right; + property public final int Start; + property public final int Top; + property public final int Vertical; + } + + public final class WindowInsetsSizeKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier windowInsetsBottomHeight(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.WindowInsets insets); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier windowInsetsEndWidth(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.WindowInsets insets); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier windowInsetsStartWidth(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.WindowInsets insets); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier windowInsetsTopHeight(androidx.compose.ui.Modifier, androidx.compose.foundation.layout.WindowInsets insets); + } + + public final class WindowInsets_androidKt { + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static boolean getAreNavigationBarsVisible(androidx.compose.foundation.layout.WindowInsets.Companion); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static boolean getAreStatusBarsVisible(androidx.compose.foundation.layout.WindowInsets.Companion); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static boolean getAreSystemBarsVisible(androidx.compose.foundation.layout.WindowInsets.Companion); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getCaptionBar(androidx.compose.foundation.layout.WindowInsets.Companion); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getCaptionBarIgnoringVisibility(androidx.compose.foundation.layout.WindowInsets.Companion); + method public boolean getConsumeWindowInsets(); + method public static boolean getConsumeWindowInsets(androidx.compose.ui.platform.AbstractComposeView); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getDisplayCutout(androidx.compose.foundation.layout.WindowInsets.Companion); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getIme(androidx.compose.foundation.layout.WindowInsets.Companion); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getImeAnimationSource(androidx.compose.foundation.layout.WindowInsets.Companion); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getImeAnimationTarget(androidx.compose.foundation.layout.WindowInsets.Companion); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getMandatorySystemGestures(androidx.compose.foundation.layout.WindowInsets.Companion); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getNavigationBars(androidx.compose.foundation.layout.WindowInsets.Companion); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getNavigationBarsIgnoringVisibility(androidx.compose.foundation.layout.WindowInsets.Companion); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getSafeContent(androidx.compose.foundation.layout.WindowInsets.Companion); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getSafeDrawing(androidx.compose.foundation.layout.WindowInsets.Companion); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getSafeGestures(androidx.compose.foundation.layout.WindowInsets.Companion); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getStatusBars(androidx.compose.foundation.layout.WindowInsets.Companion); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getStatusBarsIgnoringVisibility(androidx.compose.foundation.layout.WindowInsets.Companion); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getSystemBars(androidx.compose.foundation.layout.WindowInsets.Companion); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getSystemBarsIgnoringVisibility(androidx.compose.foundation.layout.WindowInsets.Companion); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getSystemGestures(androidx.compose.foundation.layout.WindowInsets.Companion); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getTappableElement(androidx.compose.foundation.layout.WindowInsets.Companion); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getTappableElementIgnoringVisibility(androidx.compose.foundation.layout.WindowInsets.Companion); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static androidx.compose.foundation.layout.WindowInsets getWaterfall(androidx.compose.foundation.layout.WindowInsets.Companion); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static boolean isCaptionBarVisible(androidx.compose.foundation.layout.WindowInsets.Companion); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static boolean isImeVisible(androidx.compose.foundation.layout.WindowInsets.Companion); + method @SuppressCompatibility @androidx.compose.foundation.layout.ExperimentalLayoutApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static boolean isTappableElementVisible(androidx.compose.foundation.layout.WindowInsets.Companion); + method public static void setConsumeWindowInsets(androidx.compose.ui.platform.AbstractComposeView, boolean); + method public void setConsumeWindowInsets(boolean); + property public boolean consumeWindowInsets; + } + +} + diff --git a/compose/foundation/foundation/api/1.7.0-beta07.txt b/compose/foundation/foundation/api/1.7.0-beta07.txt new file mode 100644 index 0000000000000..736c735f30156 --- /dev/null +++ b/compose/foundation/foundation/api/1.7.0-beta07.txt @@ -0,0 +1,1871 @@ +// Signature format: 4.0 +package androidx.compose.foundation { + + public interface AndroidExternalSurfaceScope { + method public void onSurface(kotlin.jvm.functions.Function5,? extends java.lang.Object?> onSurface); + } + + @kotlin.jvm.JvmInline public final value class AndroidExternalSurfaceZOrder { + method public int getZOrder(); + property public final int zOrder; + field public static final androidx.compose.foundation.AndroidExternalSurfaceZOrder.Companion Companion; + } + + public static final class AndroidExternalSurfaceZOrder.Companion { + method public int getBehind(); + method public int getMediaOverlay(); + method public int getOnTop(); + property public final int Behind; + property public final int MediaOverlay; + property public final int OnTop; + } + + public final class AndroidExternalSurface_androidKt { + method @androidx.compose.runtime.Composable public static void AndroidEmbeddedExternalSurface(optional androidx.compose.ui.Modifier modifier, optional boolean isOpaque, optional long surfaceSize, optional float[]? transform, kotlin.jvm.functions.Function1 onInit); + method @androidx.compose.runtime.Composable public static void AndroidExternalSurface(optional androidx.compose.ui.Modifier modifier, optional boolean isOpaque, optional long surfaceSize, optional int zOrder, optional boolean isSecure, kotlin.jvm.functions.Function1 onInit); + } + + public final class BackgroundKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier background(androidx.compose.ui.Modifier, androidx.compose.ui.graphics.Brush brush, optional androidx.compose.ui.graphics.Shape shape, optional @FloatRange(from=0.0, to=1.0) float alpha); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier background(androidx.compose.ui.Modifier, long color, optional androidx.compose.ui.graphics.Shape shape); + } + + public final class BasicMarqueeKt { + method public static androidx.compose.foundation.MarqueeSpacing MarqueeSpacing(float spacing); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier basicMarquee(androidx.compose.ui.Modifier, optional int iterations, optional int animationMode, optional int repeatDelayMillis, optional int initialDelayMillis, optional androidx.compose.foundation.MarqueeSpacing spacing, optional float velocity); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public final class BasicTooltipDefaults { + method public androidx.compose.foundation.MutatorMutex getGlobalMutatorMutex(); + property public final androidx.compose.foundation.MutatorMutex GlobalMutatorMutex; + field public static final androidx.compose.foundation.BasicTooltipDefaults INSTANCE; + field public static final long TooltipDuration = 1500L; // 0x5dcL + } + + public final class BasicTooltipKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public static androidx.compose.foundation.BasicTooltipState BasicTooltipState(optional boolean initialIsVisible, optional boolean isPersistent, optional androidx.compose.foundation.MutatorMutex mutatorMutex); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static androidx.compose.foundation.BasicTooltipState rememberBasicTooltipState(optional boolean initialIsVisible, optional boolean isPersistent, optional androidx.compose.foundation.MutatorMutex mutatorMutex); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public interface BasicTooltipState { + method public void dismiss(); + method public boolean isPersistent(); + method public boolean isVisible(); + method public void onDispose(); + method public suspend Object? show(optional androidx.compose.foundation.MutatePriority mutatePriority, kotlin.coroutines.Continuation); + property public abstract boolean isPersistent; + property public abstract boolean isVisible; + } + + public final class BasicTooltip_androidKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static void BasicTooltipBox(androidx.compose.ui.window.PopupPositionProvider positionProvider, kotlin.jvm.functions.Function0 tooltip, androidx.compose.foundation.BasicTooltipState state, optional androidx.compose.ui.Modifier modifier, optional boolean focusable, optional boolean enableUserInput, kotlin.jvm.functions.Function0 content); + } + + public final class BorderKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier border(androidx.compose.ui.Modifier, androidx.compose.foundation.BorderStroke border, optional androidx.compose.ui.graphics.Shape shape); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier border(androidx.compose.ui.Modifier, float width, androidx.compose.ui.graphics.Brush brush, androidx.compose.ui.graphics.Shape shape); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier border(androidx.compose.ui.Modifier, float width, long color, optional androidx.compose.ui.graphics.Shape shape); + } + + @androidx.compose.runtime.Immutable public final class BorderStroke { + ctor public BorderStroke(float width, androidx.compose.ui.graphics.Brush brush); + method public androidx.compose.foundation.BorderStroke copy(optional float width, optional androidx.compose.ui.graphics.Brush brush); + method public androidx.compose.ui.graphics.Brush getBrush(); + method public float getWidth(); + property public final androidx.compose.ui.graphics.Brush brush; + property public final float width; + } + + public final class BorderStrokeKt { + method @androidx.compose.runtime.Stable public static androidx.compose.foundation.BorderStroke BorderStroke(float width, long color); + } + + public final class CanvasKt { + method @androidx.compose.runtime.Composable public static void Canvas(androidx.compose.ui.Modifier modifier, String contentDescription, kotlin.jvm.functions.Function1 onDraw); + method @androidx.compose.runtime.Composable public static void Canvas(androidx.compose.ui.Modifier modifier, kotlin.jvm.functions.Function1 onDraw); + } + + public final class CheckScrollableContainerConstraintsKt { + method public static void checkScrollableContainerConstraints(long constraints, androidx.compose.foundation.gestures.Orientation orientation); + } + + public final class ClickableKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.foundation.CombinedClickableNode CombinedClickableNode(kotlin.jvm.functions.Function0 onClick, String? onLongClickLabel, kotlin.jvm.functions.Function0? onLongClick, kotlin.jvm.functions.Function0? onDoubleClick, androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, androidx.compose.foundation.IndicationNodeFactory? indicationNodeFactory, boolean enabled, String? onClickLabel, androidx.compose.ui.semantics.Role? role); + method public static androidx.compose.ui.Modifier clickable(androidx.compose.ui.Modifier, androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, androidx.compose.foundation.Indication? indication, optional boolean enabled, optional String? onClickLabel, optional androidx.compose.ui.semantics.Role? role, kotlin.jvm.functions.Function0 onClick); + method public static androidx.compose.ui.Modifier clickable(androidx.compose.ui.Modifier, optional boolean enabled, optional String? onClickLabel, optional androidx.compose.ui.semantics.Role? role, kotlin.jvm.functions.Function0 onClick); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier combinedClickable(androidx.compose.ui.Modifier, androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, androidx.compose.foundation.Indication? indication, optional boolean enabled, optional String? onClickLabel, optional androidx.compose.ui.semantics.Role? role, optional String? onLongClickLabel, optional kotlin.jvm.functions.Function0? onLongClick, optional kotlin.jvm.functions.Function0? onDoubleClick, kotlin.jvm.functions.Function0 onClick); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier combinedClickable(androidx.compose.ui.Modifier, optional boolean enabled, optional String? onClickLabel, optional androidx.compose.ui.semantics.Role? role, optional String? onLongClickLabel, optional kotlin.jvm.functions.Function0? onLongClick, optional kotlin.jvm.functions.Function0? onDoubleClick, kotlin.jvm.functions.Function0 onClick); + } + + public final class ClipScrollableContainerKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier clipScrollableContainer(androidx.compose.ui.Modifier, androidx.compose.foundation.gestures.Orientation orientation); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public sealed interface CombinedClickableNode extends androidx.compose.ui.node.PointerInputModifierNode { + method public void update(kotlin.jvm.functions.Function0 onClick, String? onLongClickLabel, kotlin.jvm.functions.Function0? onLongClick, kotlin.jvm.functions.Function0? onDoubleClick, androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, androidx.compose.foundation.IndicationNodeFactory? indicationNodeFactory, boolean enabled, String? onClickLabel, androidx.compose.ui.semantics.Role? role); + } + + public final class DarkThemeKt { + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static boolean isSystemInDarkTheme(); + } + + public final class ExcludeFromSystemGestureKt { + method @Deprecated public static androidx.compose.ui.Modifier excludeFromSystemGesture(androidx.compose.ui.Modifier); + method @Deprecated public static androidx.compose.ui.Modifier excludeFromSystemGesture(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 exclusion); + } + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This foundation API is experimental and is likely to change or be removed in the " + "future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalFoundationApi { + } + + public final class FocusableKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier focusGroup(androidx.compose.ui.Modifier); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier focusable(androidx.compose.ui.Modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource); + } + + public final class FocusedBoundsKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier onFocusedBoundsChanged(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 onPositioned); + } + + public final class HoverableKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier hoverable(androidx.compose.ui.Modifier, androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional boolean enabled); + } + + public final class ImageKt { + method @Deprecated @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void Image(androidx.compose.ui.graphics.ImageBitmap bitmap, String? contentDescription, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.Alignment alignment, optional androidx.compose.ui.layout.ContentScale contentScale, optional float alpha, optional androidx.compose.ui.graphics.ColorFilter? colorFilter); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void Image(androidx.compose.ui.graphics.ImageBitmap bitmap, String? contentDescription, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.Alignment alignment, optional androidx.compose.ui.layout.ContentScale contentScale, optional float alpha, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int filterQuality); + method @androidx.compose.runtime.Composable public static void Image(androidx.compose.ui.graphics.painter.Painter painter, String? contentDescription, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.Alignment alignment, optional androidx.compose.ui.layout.ContentScale contentScale, optional float alpha, optional androidx.compose.ui.graphics.ColorFilter? colorFilter); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void Image(androidx.compose.ui.graphics.vector.ImageVector imageVector, String? contentDescription, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.Alignment alignment, optional androidx.compose.ui.layout.ContentScale contentScale, optional float alpha, optional androidx.compose.ui.graphics.ColorFilter? colorFilter); + } + + @androidx.compose.runtime.Stable public interface Indication { + method @Deprecated @androidx.compose.runtime.Composable public default androidx.compose.foundation.IndicationInstance rememberUpdatedInstance(androidx.compose.foundation.interaction.InteractionSource interactionSource); + } + + @Deprecated public interface IndicationInstance { + method @Deprecated public void drawIndication(androidx.compose.ui.graphics.drawscope.ContentDrawScope); + } + + public final class IndicationKt { + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalIndication(); + method public static androidx.compose.ui.Modifier indication(androidx.compose.ui.Modifier, androidx.compose.foundation.interaction.InteractionSource interactionSource, androidx.compose.foundation.Indication? indication); + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalIndication; + } + + @androidx.compose.runtime.Stable public interface IndicationNodeFactory extends androidx.compose.foundation.Indication { + method public androidx.compose.ui.node.DelegatableNode create(androidx.compose.foundation.interaction.InteractionSource interactionSource); + method public boolean equals(Object? other); + method public int hashCode(); + } + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This API is internal to library.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER, kotlin.annotation.AnnotationTarget.PROPERTY_SETTER}) public @interface InternalFoundationApi { + } + + public final class Magnifier_androidKt { + method public static androidx.compose.ui.Modifier magnifier(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 sourceCenter, optional kotlin.jvm.functions.Function1? magnifierCenter, optional kotlin.jvm.functions.Function1? onSizeChanged, optional float zoom, optional long size, optional float cornerRadius, optional float elevation, optional boolean clip); + } + + @kotlin.jvm.JvmInline public final value class MarqueeAnimationMode { + field public static final androidx.compose.foundation.MarqueeAnimationMode.Companion Companion; + } + + public static final class MarqueeAnimationMode.Companion { + method public int getImmediately(); + method public int getWhileFocused(); + property public final int Immediately; + property public final int WhileFocused; + } + + public final class MarqueeDefaults { + method public int getIterations(); + method public int getRepeatDelayMillis(); + method public androidx.compose.foundation.MarqueeSpacing getSpacing(); + method public float getVelocity(); + property public final int Iterations; + property public final int RepeatDelayMillis; + property public final androidx.compose.foundation.MarqueeSpacing Spacing; + property public final float Velocity; + field public static final androidx.compose.foundation.MarqueeDefaults INSTANCE; + } + + @androidx.compose.runtime.Stable public fun interface MarqueeSpacing { + method public int calculateSpacing(androidx.compose.ui.unit.Density, int contentWidth, int containerWidth); + field public static final androidx.compose.foundation.MarqueeSpacing.Companion Companion; + } + + public static final class MarqueeSpacing.Companion { + method public androidx.compose.foundation.MarqueeSpacing fractionOfContainer(float fraction); + } + + public enum MutatePriority { + enum_constant public static final androidx.compose.foundation.MutatePriority Default; + enum_constant public static final androidx.compose.foundation.MutatePriority PreventUserInput; + enum_constant public static final androidx.compose.foundation.MutatePriority UserInput; + } + + @androidx.compose.runtime.Stable public final class MutatorMutex { + ctor public MutatorMutex(); + method public suspend Object? mutate(optional androidx.compose.foundation.MutatePriority priority, kotlin.jvm.functions.Function1,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + method public suspend Object? mutateWith(T receiver, optional androidx.compose.foundation.MutatePriority priority, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + method public inline boolean tryMutate(kotlin.jvm.functions.Function0 block); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public final class OverscrollConfiguration { + ctor public OverscrollConfiguration(optional long glowColor, optional androidx.compose.foundation.layout.PaddingValues drawPadding); + method public androidx.compose.foundation.layout.PaddingValues getDrawPadding(); + method public long getGlowColor(); + property public final androidx.compose.foundation.layout.PaddingValues drawPadding; + property public final long glowColor; + } + + public final class OverscrollConfiguration_androidKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.runtime.ProvidableCompositionLocal getLocalOverscrollConfiguration(); + property @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static final androidx.compose.runtime.ProvidableCompositionLocal LocalOverscrollConfiguration; + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public interface OverscrollEffect { + method public suspend Object? applyToFling(long velocity, kotlin.jvm.functions.Function2,? extends java.lang.Object?> performFling, kotlin.coroutines.Continuation); + method public long applyToScroll(long delta, int source, kotlin.jvm.functions.Function1 performScroll); + method public androidx.compose.ui.Modifier getEffectModifier(); + method public boolean isInProgress(); + property public abstract androidx.compose.ui.Modifier effectModifier; + property public abstract boolean isInProgress; + } + + public final class OverscrollKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier overscroll(androidx.compose.ui.Modifier, androidx.compose.foundation.OverscrollEffect overscrollEffect); + } + + public final class PreferKeepClear_androidKt { + method public static androidx.compose.ui.Modifier preferKeepClear(androidx.compose.ui.Modifier); + method public static androidx.compose.ui.Modifier preferKeepClear(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 rectProvider); + } + + public final class ProgressSemanticsKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier progressSemantics(androidx.compose.ui.Modifier); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier progressSemantics(androidx.compose.ui.Modifier, float value, optional kotlin.ranges.ClosedFloatingPointRange valueRange, optional @IntRange(from=0L) int steps); + } + + public final class ScrollKt { + method public static androidx.compose.ui.Modifier horizontalScroll(androidx.compose.ui.Modifier, androidx.compose.foundation.ScrollState state, optional boolean enabled, optional androidx.compose.foundation.gestures.FlingBehavior? flingBehavior, optional boolean reverseScrolling); + method @androidx.compose.runtime.Composable public static androidx.compose.foundation.ScrollState rememberScrollState(optional int initial); + method public static androidx.compose.ui.Modifier verticalScroll(androidx.compose.ui.Modifier, androidx.compose.foundation.ScrollState state, optional boolean enabled, optional androidx.compose.foundation.gestures.FlingBehavior? flingBehavior, optional boolean reverseScrolling); + } + + @androidx.compose.runtime.Stable public final class ScrollState implements androidx.compose.foundation.gestures.ScrollableState { + ctor public ScrollState(int initial); + method public suspend Object? animateScrollTo(int value, optional androidx.compose.animation.core.AnimationSpec animationSpec, kotlin.coroutines.Continuation); + method public float dispatchRawDelta(float delta); + method public androidx.compose.foundation.interaction.InteractionSource getInteractionSource(); + method public int getMaxValue(); + method public int getValue(); + method public int getViewportSize(); + method public boolean isScrollInProgress(); + method public suspend Object? scroll(androidx.compose.foundation.MutatePriority scrollPriority, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + method public suspend Object? scrollTo(int value, kotlin.coroutines.Continuation); + property public boolean canScrollBackward; + property public boolean canScrollForward; + property public final androidx.compose.foundation.interaction.InteractionSource interactionSource; + property public boolean isScrollInProgress; + property public boolean lastScrolledBackward; + property public boolean lastScrolledForward; + property public final int maxValue; + property public final int value; + property public final int viewportSize; + field public static final androidx.compose.foundation.ScrollState.Companion Companion; + } + + public static final class ScrollState.Companion { + method public androidx.compose.runtime.saveable.Saver getSaver(); + property public final androidx.compose.runtime.saveable.Saver Saver; + } + + public interface SurfaceCoroutineScope extends androidx.compose.foundation.SurfaceScope kotlinx.coroutines.CoroutineScope { + } + + public interface SurfaceScope { + method public void onChanged(android.view.Surface, kotlin.jvm.functions.Function3 onChanged); + method public void onDestroyed(android.view.Surface, kotlin.jvm.functions.Function1 onDestroyed); + } + + public final class SystemGestureExclusionKt { + method public static androidx.compose.ui.Modifier systemGestureExclusion(androidx.compose.ui.Modifier); + method public static androidx.compose.ui.Modifier systemGestureExclusion(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 exclusion); + } + +} + +package androidx.compose.foundation.content { + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public final class MediaType { + ctor public MediaType(String representation); + method public String getRepresentation(); + property public final String representation; + field public static final androidx.compose.foundation.content.MediaType.Companion Companion; + } + + public static final class MediaType.Companion { + method public androidx.compose.foundation.content.MediaType getAll(); + method public androidx.compose.foundation.content.MediaType getHtmlText(); + method public androidx.compose.foundation.content.MediaType getImage(); + method public androidx.compose.foundation.content.MediaType getPlainText(); + method public androidx.compose.foundation.content.MediaType getText(); + property public final androidx.compose.foundation.content.MediaType All; + property public final androidx.compose.foundation.content.MediaType HtmlText; + property public final androidx.compose.foundation.content.MediaType Image; + property public final androidx.compose.foundation.content.MediaType PlainText; + property public final androidx.compose.foundation.content.MediaType Text; + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public final class PlatformTransferableContent { + method public android.os.Bundle getExtras(); + method public android.net.Uri? getLinkUri(); + property public final android.os.Bundle extras; + property public final android.net.Uri? linkUri; + } + + public final class ReceiveContentKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier contentReceiver(androidx.compose.ui.Modifier, androidx.compose.foundation.content.ReceiveContentListener receiveContentListener); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public fun interface ReceiveContentListener { + method public default void onDragEnd(); + method public default void onDragEnter(); + method public default void onDragExit(); + method public default void onDragStart(); + method public androidx.compose.foundation.content.TransferableContent? onReceive(androidx.compose.foundation.content.TransferableContent transferableContent); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public final class TransferableContent { + method public androidx.compose.ui.platform.ClipEntry getClipEntry(); + method public androidx.compose.ui.platform.ClipMetadata getClipMetadata(); + method public androidx.compose.foundation.content.PlatformTransferableContent? getPlatformTransferableContent(); + method public int getSource(); + property public final androidx.compose.ui.platform.ClipEntry clipEntry; + property public final androidx.compose.ui.platform.ClipMetadata clipMetadata; + property public final androidx.compose.foundation.content.PlatformTransferableContent? platformTransferableContent; + property public final int source; + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @kotlin.jvm.JvmInline public static final value class TransferableContent.Source { + field public static final androidx.compose.foundation.content.TransferableContent.Source.Companion Companion; + } + + public static final class TransferableContent.Source.Companion { + method public int getClipboard(); + method public int getDragAndDrop(); + method public int getKeyboard(); + property public final int Clipboard; + property public final int DragAndDrop; + property public final int Keyboard; + } + + public final class TransferableContent_androidKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.foundation.content.TransferableContent? consume(androidx.compose.foundation.content.TransferableContent, kotlin.jvm.functions.Function1 predicate); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static boolean hasMediaType(androidx.compose.foundation.content.TransferableContent, androidx.compose.foundation.content.MediaType mediaType); + } + +} + +package androidx.compose.foundation.draganddrop { + + public final class AndroidDragAndDropSource_androidKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier dragAndDropSource(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block); + } + + public final class DragAndDropSourceKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier dragAndDropSource(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 drawDragDecoration, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public interface DragAndDropSourceScope extends androidx.compose.ui.input.pointer.PointerInputScope { + method public void startTransfer(androidx.compose.ui.draganddrop.DragAndDropTransferData transferData); + } + + public final class DragAndDropTargetKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier dragAndDropTarget(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 shouldStartDragAndDrop, androidx.compose.ui.draganddrop.DragAndDropTarget target); + } + +} + +package androidx.compose.foundation.gestures { + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public interface AnchoredDragScope { + method public void dragTo(float newOffset, optional float lastKnownVelocity); + } + + public final class AnchoredDraggableKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.foundation.gestures.DraggableAnchors DraggableAnchors(kotlin.jvm.functions.Function1,kotlin.Unit> builder); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier anchoredDraggable(androidx.compose.ui.Modifier, androidx.compose.foundation.gestures.AnchoredDraggableState state, androidx.compose.foundation.gestures.Orientation orientation, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.foundation.OverscrollEffect? overscrollEffect, optional boolean startDragImmediately); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier anchoredDraggable(androidx.compose.ui.Modifier, androidx.compose.foundation.gestures.AnchoredDraggableState state, boolean reverseDirection, androidx.compose.foundation.gestures.Orientation orientation, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.foundation.OverscrollEffect? overscrollEffect, optional boolean startDragImmediately); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static suspend Object? animateTo(androidx.compose.foundation.gestures.AnchoredDraggableState, T targetValue, kotlin.coroutines.Continuation); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static suspend Object? animateToWithDecay(androidx.compose.foundation.gestures.AnchoredDraggableState, T targetValue, float velocity, kotlin.coroutines.Continuation); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static suspend Object? snapTo(androidx.compose.foundation.gestures.AnchoredDraggableState, T targetValue, kotlin.coroutines.Continuation); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public final class AnchoredDraggableState { + ctor @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public AnchoredDraggableState(T initialValue, androidx.compose.foundation.gestures.DraggableAnchors anchors, kotlin.jvm.functions.Function1 positionalThreshold, kotlin.jvm.functions.Function0 velocityThreshold, androidx.compose.animation.core.AnimationSpec snapAnimationSpec, androidx.compose.animation.core.DecayAnimationSpec decayAnimationSpec, optional kotlin.jvm.functions.Function1 confirmValueChange); + ctor public AnchoredDraggableState(T initialValue, kotlin.jvm.functions.Function1 positionalThreshold, kotlin.jvm.functions.Function0 velocityThreshold, androidx.compose.animation.core.AnimationSpec snapAnimationSpec, androidx.compose.animation.core.DecayAnimationSpec decayAnimationSpec, optional kotlin.jvm.functions.Function1 confirmValueChange); + method public suspend Object? anchoredDrag(optional androidx.compose.foundation.MutatePriority dragPriority, kotlin.jvm.functions.Function3,? super kotlin.coroutines.Continuation,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + method public suspend Object? anchoredDrag(T targetValue, optional androidx.compose.foundation.MutatePriority dragPriority, kotlin.jvm.functions.Function4,? super T,? super kotlin.coroutines.Continuation,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + method public float dispatchRawDelta(float delta); + method public androidx.compose.foundation.gestures.DraggableAnchors getAnchors(); + method public T getCurrentValue(); + method public androidx.compose.animation.core.DecayAnimationSpec getDecayAnimationSpec(); + method public float getLastVelocity(); + method public float getOffset(); + method @Deprecated @FloatRange(from=0.0, to=1.0) public float getProgress(); + method public T getSettledValue(); + method public androidx.compose.animation.core.AnimationSpec getSnapAnimationSpec(); + method public T getTargetValue(); + method public boolean isAnimationRunning(); + method @FloatRange(from=0.0, to=1.0) public float progress(T from, T to); + method public float requireOffset(); + method public suspend Object? settle(float velocity, kotlin.coroutines.Continuation); + method public void updateAnchors(androidx.compose.foundation.gestures.DraggableAnchors newAnchors, optional T newTarget); + property public final androidx.compose.foundation.gestures.DraggableAnchors anchors; + property public final T currentValue; + property public final androidx.compose.animation.core.DecayAnimationSpec decayAnimationSpec; + property public final boolean isAnimationRunning; + property public final float lastVelocity; + property public final float offset; + property @Deprecated @FloatRange(from=0.0, to=1.0) public final float progress; + property public final T settledValue; + property public final androidx.compose.animation.core.AnimationSpec snapAnimationSpec; + property public final T targetValue; + field public static final androidx.compose.foundation.gestures.AnchoredDraggableState.Companion Companion; + } + + public static final class AnchoredDraggableState.Companion { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public androidx.compose.runtime.saveable.Saver,T> Saver(androidx.compose.animation.core.AnimationSpec snapAnimationSpec, androidx.compose.animation.core.DecayAnimationSpec decayAnimationSpec, kotlin.jvm.functions.Function1 positionalThreshold, kotlin.jvm.functions.Function0 velocityThreshold, optional kotlin.jvm.functions.Function1 confirmValueChange); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public interface BringIntoViewSpec { + method public default float calculateScrollDistance(float offset, float size, float containerSize); + method public default androidx.compose.animation.core.AnimationSpec getScrollAnimationSpec(); + property public default androidx.compose.animation.core.AnimationSpec scrollAnimationSpec; + field public static final androidx.compose.foundation.gestures.BringIntoViewSpec.Companion Companion; + } + + public static final class BringIntoViewSpec.Companion { + method public androidx.compose.animation.core.AnimationSpec getDefaultScrollAnimationSpec(); + property public final androidx.compose.animation.core.AnimationSpec DefaultScrollAnimationSpec; + } + + public final class BringIntoViewSpec_androidKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.runtime.ProvidableCompositionLocal getLocalBringIntoViewSpec(); + property @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static final androidx.compose.runtime.ProvidableCompositionLocal LocalBringIntoViewSpec; + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public interface Drag2DScope { + method public void dragBy(long pixels); + } + + public final class DragGestureDetectorKt { + method public static suspend Object? awaitDragOrCancellation(androidx.compose.ui.input.pointer.AwaitPointerEventScope, long pointerId, kotlin.coroutines.Continuation); + method public static suspend Object? awaitHorizontalDragOrCancellation(androidx.compose.ui.input.pointer.AwaitPointerEventScope, long pointerId, kotlin.coroutines.Continuation); + method public static suspend Object? awaitHorizontalTouchSlopOrCancellation(androidx.compose.ui.input.pointer.AwaitPointerEventScope, long pointerId, kotlin.jvm.functions.Function2 onTouchSlopReached, kotlin.coroutines.Continuation); + method public static suspend Object? awaitLongPressOrCancellation(androidx.compose.ui.input.pointer.AwaitPointerEventScope, long pointerId, kotlin.coroutines.Continuation); + method public static suspend Object? awaitTouchSlopOrCancellation(androidx.compose.ui.input.pointer.AwaitPointerEventScope, long pointerId, kotlin.jvm.functions.Function2 onTouchSlopReached, kotlin.coroutines.Continuation); + method public static suspend Object? awaitVerticalDragOrCancellation(androidx.compose.ui.input.pointer.AwaitPointerEventScope, long pointerId, kotlin.coroutines.Continuation); + method public static suspend Object? awaitVerticalTouchSlopOrCancellation(androidx.compose.ui.input.pointer.AwaitPointerEventScope, long pointerId, kotlin.jvm.functions.Function2 onTouchSlopReached, kotlin.coroutines.Continuation); + method public static suspend Object? detectDragGestures(androidx.compose.ui.input.pointer.PointerInputScope, optional kotlin.jvm.functions.Function1 onDragStart, optional kotlin.jvm.functions.Function0 onDragEnd, optional kotlin.jvm.functions.Function0 onDragCancel, kotlin.jvm.functions.Function2 onDrag, kotlin.coroutines.Continuation); + method public static suspend Object? detectDragGesturesAfterLongPress(androidx.compose.ui.input.pointer.PointerInputScope, optional kotlin.jvm.functions.Function1 onDragStart, optional kotlin.jvm.functions.Function0 onDragEnd, optional kotlin.jvm.functions.Function0 onDragCancel, kotlin.jvm.functions.Function2 onDrag, kotlin.coroutines.Continuation); + method public static suspend Object? detectHorizontalDragGestures(androidx.compose.ui.input.pointer.PointerInputScope, optional kotlin.jvm.functions.Function1 onDragStart, optional kotlin.jvm.functions.Function0 onDragEnd, optional kotlin.jvm.functions.Function0 onDragCancel, kotlin.jvm.functions.Function2 onHorizontalDrag, kotlin.coroutines.Continuation); + method public static suspend Object? detectVerticalDragGestures(androidx.compose.ui.input.pointer.PointerInputScope, optional kotlin.jvm.functions.Function1 onDragStart, optional kotlin.jvm.functions.Function0 onDragEnd, optional kotlin.jvm.functions.Function0 onDragCancel, kotlin.jvm.functions.Function2 onVerticalDrag, kotlin.coroutines.Continuation); + method public static suspend Object? drag(androidx.compose.ui.input.pointer.AwaitPointerEventScope, long pointerId, kotlin.jvm.functions.Function1 onDrag, kotlin.coroutines.Continuation); + method public static suspend Object? horizontalDrag(androidx.compose.ui.input.pointer.AwaitPointerEventScope, long pointerId, kotlin.jvm.functions.Function1 onDrag, kotlin.coroutines.Continuation); + method public static suspend Object? verticalDrag(androidx.compose.ui.input.pointer.AwaitPointerEventScope, long pointerId, kotlin.jvm.functions.Function1 onDrag, kotlin.coroutines.Continuation); + } + + public interface DragScope { + method public void dragBy(float pixels); + } + + public final class Draggable2DKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.foundation.gestures.Draggable2DState Draggable2DState(kotlin.jvm.functions.Function1 onDelta); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier draggable2D(androidx.compose.ui.Modifier, androidx.compose.foundation.gestures.Draggable2DState state, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional boolean startDragImmediately, optional kotlin.jvm.functions.Function1 onDragStarted, optional kotlin.jvm.functions.Function1 onDragStopped, optional boolean reverseDirection); + method @Deprecated @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier draggable2D(androidx.compose.ui.Modifier, androidx.compose.foundation.gestures.Draggable2DState state, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional boolean startDragImmediately, optional kotlin.jvm.functions.Function3,? extends java.lang.Object?> onDragStarted, optional kotlin.jvm.functions.Function3,? extends java.lang.Object?> onDragStopped, optional boolean reverseDirection); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static androidx.compose.foundation.gestures.Draggable2DState rememberDraggable2DState(kotlin.jvm.functions.Function1 onDelta); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public interface Draggable2DState { + method public void dispatchRawDelta(long delta); + method public suspend Object? drag(optional androidx.compose.foundation.MutatePriority dragPriority, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public interface DraggableAnchors { + method public T? closestAnchor(float position); + method public T? closestAnchor(float position, boolean searchUpwards); + method public void forEach(kotlin.jvm.functions.Function2 block); + method public int getSize(); + method public boolean hasAnchorFor(T value); + method public float maxAnchor(); + method public float minAnchor(); + method public float positionOf(T value); + property public abstract int size; + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public final class DraggableAnchorsConfig { + ctor public DraggableAnchorsConfig(); + method public infix void at(T, float position); + } + + public final class DraggableKt { + method public static androidx.compose.foundation.gestures.DraggableState DraggableState(kotlin.jvm.functions.Function1 onDelta); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier draggable(androidx.compose.ui.Modifier, androidx.compose.foundation.gestures.DraggableState state, androidx.compose.foundation.gestures.Orientation orientation, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional boolean startDragImmediately, optional kotlin.jvm.functions.Function3,? extends java.lang.Object?> onDragStarted, optional kotlin.jvm.functions.Function3,? extends java.lang.Object?> onDragStopped, optional boolean reverseDirection); + method @androidx.compose.runtime.Composable public static androidx.compose.foundation.gestures.DraggableState rememberDraggableState(kotlin.jvm.functions.Function1 onDelta); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface DraggableState { + method public void dispatchRawDelta(float delta); + method public suspend Object? drag(optional androidx.compose.foundation.MutatePriority dragPriority, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + } + + @androidx.compose.runtime.Stable public interface FlingBehavior { + method public suspend Object? performFling(androidx.compose.foundation.gestures.ScrollScope, float initialVelocity, kotlin.coroutines.Continuation); + } + + public final class ForEachGestureKt { + method public static suspend Object? awaitEachGesture(androidx.compose.ui.input.pointer.PointerInputScope, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + method @Deprecated public static suspend Object? forEachGesture(androidx.compose.ui.input.pointer.PointerInputScope, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + } + + public final class GestureCancellationException extends java.util.concurrent.CancellationException { + ctor public GestureCancellationException(optional String? message); + } + + public enum Orientation { + enum_constant public static final androidx.compose.foundation.gestures.Orientation Horizontal; + enum_constant public static final androidx.compose.foundation.gestures.Orientation Vertical; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface PressGestureScope extends androidx.compose.ui.unit.Density { + method public suspend Object? awaitRelease(kotlin.coroutines.Continuation); + method public suspend Object? tryAwaitRelease(kotlin.coroutines.Continuation); + } + + public final class ScrollExtensionsKt { + method public static suspend Object? animateScrollBy(androidx.compose.foundation.gestures.ScrollableState, float value, optional androidx.compose.animation.core.AnimationSpec animationSpec, kotlin.coroutines.Continuation); + method public static suspend Object? scrollBy(androidx.compose.foundation.gestures.ScrollableState, float value, kotlin.coroutines.Continuation); + method public static suspend Object? stopScroll(androidx.compose.foundation.gestures.ScrollableState, optional androidx.compose.foundation.MutatePriority scrollPriority, kotlin.coroutines.Continuation); + } + + public interface ScrollScope { + method public float scrollBy(float pixels); + } + + public final class ScrollableDefaults { + method @Deprecated @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public androidx.compose.foundation.gestures.BringIntoViewSpec bringIntoViewSpec(); + method @androidx.compose.runtime.Composable public androidx.compose.foundation.gestures.FlingBehavior flingBehavior(); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public androidx.compose.foundation.OverscrollEffect overscrollEffect(); + method public boolean reverseDirection(androidx.compose.ui.unit.LayoutDirection layoutDirection, androidx.compose.foundation.gestures.Orientation orientation, boolean reverseScrolling); + field public static final androidx.compose.foundation.gestures.ScrollableDefaults INSTANCE; + } + + public final class ScrollableKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier scrollable(androidx.compose.ui.Modifier, androidx.compose.foundation.gestures.ScrollableState state, androidx.compose.foundation.gestures.Orientation orientation, androidx.compose.foundation.OverscrollEffect? overscrollEffect, optional boolean enabled, optional boolean reverseDirection, optional androidx.compose.foundation.gestures.FlingBehavior? flingBehavior, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.foundation.gestures.BringIntoViewSpec? bringIntoViewSpec); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier scrollable(androidx.compose.ui.Modifier, androidx.compose.foundation.gestures.ScrollableState state, androidx.compose.foundation.gestures.Orientation orientation, optional boolean enabled, optional boolean reverseDirection, optional androidx.compose.foundation.gestures.FlingBehavior? flingBehavior, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface ScrollableState { + method public float dispatchRawDelta(float delta); + method public default boolean getCanScrollBackward(); + method public default boolean getCanScrollForward(); + method public default boolean getLastScrolledBackward(); + method public default boolean getLastScrolledForward(); + method public boolean isScrollInProgress(); + method public suspend Object? scroll(optional androidx.compose.foundation.MutatePriority scrollPriority, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + property public default boolean canScrollBackward; + property public default boolean canScrollForward; + property public abstract boolean isScrollInProgress; + property public default boolean lastScrolledBackward; + property public default boolean lastScrolledForward; + } + + public final class ScrollableStateKt { + method public static androidx.compose.foundation.gestures.ScrollableState ScrollableState(kotlin.jvm.functions.Function1 consumeScrollDelta); + method @androidx.compose.runtime.Composable public static androidx.compose.foundation.gestures.ScrollableState rememberScrollableState(kotlin.jvm.functions.Function1 consumeScrollDelta); + } + + public final class TapGestureDetectorKt { + method public static suspend Object? awaitFirstDown(androidx.compose.ui.input.pointer.AwaitPointerEventScope, optional boolean requireUnconsumed, optional androidx.compose.ui.input.pointer.PointerEventPass pass, kotlin.coroutines.Continuation); + method @Deprecated public static suspend Object? awaitFirstDown(androidx.compose.ui.input.pointer.AwaitPointerEventScope, optional boolean requireUnconsumed, kotlin.coroutines.Continuation); + method public static suspend Object? detectTapGestures(androidx.compose.ui.input.pointer.PointerInputScope, optional kotlin.jvm.functions.Function1? onDoubleTap, optional kotlin.jvm.functions.Function1? onLongPress, optional kotlin.jvm.functions.Function3,? extends java.lang.Object?> onPress, optional kotlin.jvm.functions.Function1? onTap, kotlin.coroutines.Continuation); + method public static suspend Object? waitForUpOrCancellation(androidx.compose.ui.input.pointer.AwaitPointerEventScope, optional androidx.compose.ui.input.pointer.PointerEventPass pass, kotlin.coroutines.Continuation); + method @Deprecated public static suspend Object? waitForUpOrCancellation(androidx.compose.ui.input.pointer.AwaitPointerEventScope, kotlin.coroutines.Continuation); + } + + @androidx.compose.runtime.Stable public interface TargetedFlingBehavior extends androidx.compose.foundation.gestures.FlingBehavior { + method public default suspend Object? performFling(androidx.compose.foundation.gestures.ScrollScope, float initialVelocity, kotlin.coroutines.Continuation); + method public suspend Object? performFling(androidx.compose.foundation.gestures.ScrollScope, float initialVelocity, kotlin.jvm.functions.Function1 onRemainingDistanceUpdated, kotlin.coroutines.Continuation); + } + + public final class TransformGestureDetectorKt { + method public static long calculateCentroid(androidx.compose.ui.input.pointer.PointerEvent, optional boolean useCurrent); + method public static float calculateCentroidSize(androidx.compose.ui.input.pointer.PointerEvent, optional boolean useCurrent); + method public static long calculatePan(androidx.compose.ui.input.pointer.PointerEvent); + method public static float calculateRotation(androidx.compose.ui.input.pointer.PointerEvent); + method public static float calculateZoom(androidx.compose.ui.input.pointer.PointerEvent); + method public static suspend Object? detectTransformGestures(androidx.compose.ui.input.pointer.PointerInputScope, optional boolean panZoomLock, kotlin.jvm.functions.Function4 onGesture, kotlin.coroutines.Continuation); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface TransformScope { + method public void transformBy(optional float zoomChange, optional long panChange, optional float rotationChange); + } + + public final class TransformableKt { + method public static androidx.compose.ui.Modifier transformable(androidx.compose.ui.Modifier, androidx.compose.foundation.gestures.TransformableState state, optional boolean lockRotationOnZoomPan, optional boolean enabled); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier transformable(androidx.compose.ui.Modifier, androidx.compose.foundation.gestures.TransformableState state, kotlin.jvm.functions.Function1 canPan, optional boolean lockRotationOnZoomPan, optional boolean enabled); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface TransformableState { + method public boolean isTransformInProgress(); + method public suspend Object? transform(optional androidx.compose.foundation.MutatePriority transformPriority, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + property public abstract boolean isTransformInProgress; + } + + public final class TransformableStateKt { + method public static androidx.compose.foundation.gestures.TransformableState TransformableState(kotlin.jvm.functions.Function3 onTransformation); + method public static suspend Object? animatePanBy(androidx.compose.foundation.gestures.TransformableState, long offset, optional androidx.compose.animation.core.AnimationSpec animationSpec, kotlin.coroutines.Continuation); + method public static suspend Object? animateRotateBy(androidx.compose.foundation.gestures.TransformableState, float degrees, optional androidx.compose.animation.core.AnimationSpec animationSpec, kotlin.coroutines.Continuation); + method public static suspend Object? animateZoomBy(androidx.compose.foundation.gestures.TransformableState, float zoomFactor, optional androidx.compose.animation.core.AnimationSpec animationSpec, kotlin.coroutines.Continuation); + method public static suspend Object? panBy(androidx.compose.foundation.gestures.TransformableState, long offset, kotlin.coroutines.Continuation); + method @androidx.compose.runtime.Composable public static androidx.compose.foundation.gestures.TransformableState rememberTransformableState(kotlin.jvm.functions.Function3 onTransformation); + method public static suspend Object? rotateBy(androidx.compose.foundation.gestures.TransformableState, float degrees, kotlin.coroutines.Continuation); + method public static suspend Object? stopTransformation(androidx.compose.foundation.gestures.TransformableState, optional androidx.compose.foundation.MutatePriority terminationPriority, kotlin.coroutines.Continuation); + method public static suspend Object? zoomBy(androidx.compose.foundation.gestures.TransformableState, float zoomFactor, kotlin.coroutines.Continuation); + } + +} + +package androidx.compose.foundation.gestures.snapping { + + public final class LazyGridSnapLayoutInfoProviderKt { + method public static androidx.compose.foundation.gestures.snapping.SnapLayoutInfoProvider SnapLayoutInfoProvider(androidx.compose.foundation.lazy.grid.LazyGridState lazyGridState, optional androidx.compose.foundation.gestures.snapping.SnapPosition snapPosition); + method @androidx.compose.runtime.Composable public static androidx.compose.foundation.gestures.FlingBehavior rememberSnapFlingBehavior(androidx.compose.foundation.lazy.grid.LazyGridState lazyGridState, optional androidx.compose.foundation.gestures.snapping.SnapPosition snapPosition); + } + + public final class LazyListSnapLayoutInfoProviderKt { + method public static androidx.compose.foundation.gestures.snapping.SnapLayoutInfoProvider SnapLayoutInfoProvider(androidx.compose.foundation.lazy.LazyListState lazyListState, optional androidx.compose.foundation.gestures.snapping.SnapPosition snapPosition); + method @androidx.compose.runtime.Composable public static androidx.compose.foundation.gestures.FlingBehavior rememberSnapFlingBehavior(androidx.compose.foundation.lazy.LazyListState lazyListState, optional androidx.compose.foundation.gestures.snapping.SnapPosition snapPosition); + } + + @Deprecated @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public final class SnapFlingBehavior implements androidx.compose.foundation.gestures.TargetedFlingBehavior { + ctor @Deprecated public SnapFlingBehavior(androidx.compose.foundation.gestures.snapping.SnapLayoutInfoProvider snapLayoutInfoProvider, androidx.compose.animation.core.DecayAnimationSpec decayAnimationSpec, androidx.compose.animation.core.AnimationSpec snapAnimationSpec); + method @Deprecated public suspend Object? performFling(androidx.compose.foundation.gestures.ScrollScope, float initialVelocity, kotlin.jvm.functions.Function1 onRemainingDistanceUpdated, kotlin.coroutines.Continuation); + } + + public final class SnapFlingBehaviorKt { + method @androidx.compose.runtime.Composable public static androidx.compose.foundation.gestures.TargetedFlingBehavior rememberSnapFlingBehavior(androidx.compose.foundation.gestures.snapping.SnapLayoutInfoProvider snapLayoutInfoProvider); + method public static androidx.compose.foundation.gestures.TargetedFlingBehavior snapFlingBehavior(androidx.compose.foundation.gestures.snapping.SnapLayoutInfoProvider snapLayoutInfoProvider, androidx.compose.animation.core.DecayAnimationSpec decayAnimationSpec, androidx.compose.animation.core.AnimationSpec snapAnimationSpec); + } + + public interface SnapLayoutInfoProvider { + method public default float calculateApproachOffset(float velocity, float decayOffset); + method public float calculateSnapOffset(float velocity); + } + + @androidx.compose.runtime.Stable public interface SnapPosition { + method public int position(int layoutSize, int itemSize, int beforeContentPadding, int afterContentPadding, int itemIndex, int itemCount); + } + + public static final class SnapPosition.Center implements androidx.compose.foundation.gestures.snapping.SnapPosition { + method public int position(int layoutSize, int itemSize, int beforeContentPadding, int afterContentPadding, int itemIndex, int itemCount); + field public static final androidx.compose.foundation.gestures.snapping.SnapPosition.Center INSTANCE; + } + + public static final class SnapPosition.End implements androidx.compose.foundation.gestures.snapping.SnapPosition { + method public int position(int layoutSize, int itemSize, int beforeContentPadding, int afterContentPadding, int itemIndex, int itemCount); + field public static final androidx.compose.foundation.gestures.snapping.SnapPosition.End INSTANCE; + } + + public static final class SnapPosition.Start implements androidx.compose.foundation.gestures.snapping.SnapPosition { + method public int position(int layoutSize, int itemSize, int beforeContentPadding, int afterContentPadding, int itemIndex, int itemCount); + field public static final androidx.compose.foundation.gestures.snapping.SnapPosition.Start INSTANCE; + } + +} + +package androidx.compose.foundation.interaction { + + public interface DragInteraction extends androidx.compose.foundation.interaction.Interaction { + } + + public static final class DragInteraction.Cancel implements androidx.compose.foundation.interaction.DragInteraction { + ctor public DragInteraction.Cancel(androidx.compose.foundation.interaction.DragInteraction.Start start); + method public androidx.compose.foundation.interaction.DragInteraction.Start getStart(); + property public final androidx.compose.foundation.interaction.DragInteraction.Start start; + } + + public static final class DragInteraction.Start implements androidx.compose.foundation.interaction.DragInteraction { + ctor public DragInteraction.Start(); + } + + public static final class DragInteraction.Stop implements androidx.compose.foundation.interaction.DragInteraction { + ctor public DragInteraction.Stop(androidx.compose.foundation.interaction.DragInteraction.Start start); + method public androidx.compose.foundation.interaction.DragInteraction.Start getStart(); + property public final androidx.compose.foundation.interaction.DragInteraction.Start start; + } + + public final class DragInteractionKt { + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State collectIsDraggedAsState(androidx.compose.foundation.interaction.InteractionSource); + } + + public interface FocusInteraction extends androidx.compose.foundation.interaction.Interaction { + } + + public static final class FocusInteraction.Focus implements androidx.compose.foundation.interaction.FocusInteraction { + ctor public FocusInteraction.Focus(); + } + + public static final class FocusInteraction.Unfocus implements androidx.compose.foundation.interaction.FocusInteraction { + ctor public FocusInteraction.Unfocus(androidx.compose.foundation.interaction.FocusInteraction.Focus focus); + method public androidx.compose.foundation.interaction.FocusInteraction.Focus getFocus(); + property public final androidx.compose.foundation.interaction.FocusInteraction.Focus focus; + } + + public final class FocusInteractionKt { + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State collectIsFocusedAsState(androidx.compose.foundation.interaction.InteractionSource); + } + + public interface HoverInteraction extends androidx.compose.foundation.interaction.Interaction { + } + + public static final class HoverInteraction.Enter implements androidx.compose.foundation.interaction.HoverInteraction { + ctor public HoverInteraction.Enter(); + } + + public static final class HoverInteraction.Exit implements androidx.compose.foundation.interaction.HoverInteraction { + ctor public HoverInteraction.Exit(androidx.compose.foundation.interaction.HoverInteraction.Enter enter); + method public androidx.compose.foundation.interaction.HoverInteraction.Enter getEnter(); + property public final androidx.compose.foundation.interaction.HoverInteraction.Enter enter; + } + + public final class HoverInteractionKt { + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State collectIsHoveredAsState(androidx.compose.foundation.interaction.InteractionSource); + } + + public interface Interaction { + } + + @androidx.compose.runtime.Stable public interface InteractionSource { + method public kotlinx.coroutines.flow.Flow getInteractions(); + property public abstract kotlinx.coroutines.flow.Flow interactions; + } + + public final class InteractionSourceKt { + method public static androidx.compose.foundation.interaction.MutableInteractionSource MutableInteractionSource(); + } + + @androidx.compose.runtime.Stable public interface MutableInteractionSource extends androidx.compose.foundation.interaction.InteractionSource { + method public suspend Object? emit(androidx.compose.foundation.interaction.Interaction interaction, kotlin.coroutines.Continuation); + method public boolean tryEmit(androidx.compose.foundation.interaction.Interaction interaction); + } + + public interface PressInteraction extends androidx.compose.foundation.interaction.Interaction { + } + + public static final class PressInteraction.Cancel implements androidx.compose.foundation.interaction.PressInteraction { + ctor public PressInteraction.Cancel(androidx.compose.foundation.interaction.PressInteraction.Press press); + method public androidx.compose.foundation.interaction.PressInteraction.Press getPress(); + property public final androidx.compose.foundation.interaction.PressInteraction.Press press; + } + + public static final class PressInteraction.Press implements androidx.compose.foundation.interaction.PressInteraction { + ctor public PressInteraction.Press(long pressPosition); + method public long getPressPosition(); + property public final long pressPosition; + } + + public static final class PressInteraction.Release implements androidx.compose.foundation.interaction.PressInteraction { + ctor public PressInteraction.Release(androidx.compose.foundation.interaction.PressInteraction.Press press); + method public androidx.compose.foundation.interaction.PressInteraction.Press getPress(); + property public final androidx.compose.foundation.interaction.PressInteraction.Press press; + } + + public final class PressInteractionKt { + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State collectIsPressedAsState(androidx.compose.foundation.interaction.InteractionSource); + } + +} + +package androidx.compose.foundation.lazy { + + public final class LazyDslKt { + method @androidx.compose.runtime.Composable public static void LazyColumn(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.lazy.LazyListState state, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional boolean reverseLayout, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional androidx.compose.ui.Alignment.Horizontal horizontalAlignment, optional androidx.compose.foundation.gestures.FlingBehavior flingBehavior, optional boolean userScrollEnabled, kotlin.jvm.functions.Function1 content); + method @Deprecated @androidx.compose.runtime.Composable public static void LazyColumn(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.lazy.LazyListState state, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional boolean reverseLayout, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional androidx.compose.ui.Alignment.Horizontal horizontalAlignment, optional androidx.compose.foundation.gestures.FlingBehavior flingBehavior, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void LazyRow(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.lazy.LazyListState state, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional boolean reverseLayout, optional androidx.compose.foundation.layout.Arrangement.Horizontal horizontalArrangement, optional androidx.compose.ui.Alignment.Vertical verticalAlignment, optional androidx.compose.foundation.gestures.FlingBehavior flingBehavior, optional boolean userScrollEnabled, kotlin.jvm.functions.Function1 content); + method @Deprecated @androidx.compose.runtime.Composable public static void LazyRow(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.lazy.LazyListState state, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional boolean reverseLayout, optional androidx.compose.foundation.layout.Arrangement.Horizontal horizontalArrangement, optional androidx.compose.ui.Alignment.Vertical verticalAlignment, optional androidx.compose.foundation.gestures.FlingBehavior flingBehavior, kotlin.jvm.functions.Function1 content); + method public static inline void items(androidx.compose.foundation.lazy.LazyListScope, java.util.List items, optional kotlin.jvm.functions.Function1? key, optional kotlin.jvm.functions.Function1 contentType, kotlin.jvm.functions.Function2 itemContent); + method @Deprecated public static inline void items(androidx.compose.foundation.lazy.LazyListScope, java.util.List items, optional kotlin.jvm.functions.Function1? key, kotlin.jvm.functions.Function2 itemContent); + method public static inline void items(androidx.compose.foundation.lazy.LazyListScope, T[] items, optional kotlin.jvm.functions.Function1? key, optional kotlin.jvm.functions.Function1 contentType, kotlin.jvm.functions.Function2 itemContent); + method @Deprecated public static inline void items(androidx.compose.foundation.lazy.LazyListScope, T[] items, optional kotlin.jvm.functions.Function1? key, kotlin.jvm.functions.Function2 itemContent); + method public static inline void itemsIndexed(androidx.compose.foundation.lazy.LazyListScope, java.util.List items, optional kotlin.jvm.functions.Function2? key, optional kotlin.jvm.functions.Function2 contentType, kotlin.jvm.functions.Function3 itemContent); + method @Deprecated public static inline void itemsIndexed(androidx.compose.foundation.lazy.LazyListScope, java.util.List items, optional kotlin.jvm.functions.Function2? key, kotlin.jvm.functions.Function3 itemContent); + method public static inline void itemsIndexed(androidx.compose.foundation.lazy.LazyListScope, T[] items, optional kotlin.jvm.functions.Function2? key, optional kotlin.jvm.functions.Function2 contentType, kotlin.jvm.functions.Function3 itemContent); + method @Deprecated public static inline void itemsIndexed(androidx.compose.foundation.lazy.LazyListScope, T[] items, optional kotlin.jvm.functions.Function2? key, kotlin.jvm.functions.Function3 itemContent); + } + + @androidx.compose.foundation.lazy.LazyScopeMarker @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface LazyItemScope { + method public default androidx.compose.ui.Modifier animateItem(androidx.compose.ui.Modifier, optional androidx.compose.animation.core.FiniteAnimationSpec? fadeInSpec, optional androidx.compose.animation.core.FiniteAnimationSpec? placementSpec, optional androidx.compose.animation.core.FiniteAnimationSpec? fadeOutSpec); + method @Deprecated @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public default androidx.compose.ui.Modifier animateItemPlacement(androidx.compose.ui.Modifier, optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec); + method public androidx.compose.ui.Modifier fillParentMaxHeight(androidx.compose.ui.Modifier, optional @FloatRange(from=0.0, to=1.0) float fraction); + method public androidx.compose.ui.Modifier fillParentMaxSize(androidx.compose.ui.Modifier, optional @FloatRange(from=0.0, to=1.0) float fraction); + method public androidx.compose.ui.Modifier fillParentMaxWidth(androidx.compose.ui.Modifier, optional @FloatRange(from=0.0, to=1.0) float fraction); + } + + public interface LazyListItemInfo { + method public default Object? getContentType(); + method public int getIndex(); + method public Object getKey(); + method public int getOffset(); + method public int getSize(); + property public default Object? contentType; + property public abstract int index; + property public abstract Object key; + property public abstract int offset; + property public abstract int size; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface LazyListLayoutInfo { + method public default int getAfterContentPadding(); + method public default int getBeforeContentPadding(); + method public default int getMainAxisItemSpacing(); + method public default androidx.compose.foundation.gestures.Orientation getOrientation(); + method public default boolean getReverseLayout(); + method public int getTotalItemsCount(); + method public int getViewportEndOffset(); + method public default long getViewportSize(); + method public int getViewportStartOffset(); + method public java.util.List getVisibleItemsInfo(); + property public default int afterContentPadding; + property public default int beforeContentPadding; + property public default int mainAxisItemSpacing; + property public default androidx.compose.foundation.gestures.Orientation orientation; + property public default boolean reverseLayout; + property public abstract int totalItemsCount; + property public abstract int viewportEndOffset; + property public default long viewportSize; + property public abstract int viewportStartOffset; + property public abstract java.util.List visibleItemsInfo; + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public interface LazyListPrefetchScope { + method public androidx.compose.foundation.lazy.layout.LazyLayoutPrefetchState.PrefetchHandle schedulePrefetch(int index); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public interface LazyListPrefetchStrategy { + method public default androidx.compose.foundation.lazy.layout.PrefetchScheduler? getPrefetchScheduler(); + method public void onNestedPrefetch(androidx.compose.foundation.lazy.layout.NestedPrefetchScope, int firstVisibleItemIndex); + method public void onScroll(androidx.compose.foundation.lazy.LazyListPrefetchScope, float delta, androidx.compose.foundation.lazy.LazyListLayoutInfo layoutInfo); + method public void onVisibleItemsUpdated(androidx.compose.foundation.lazy.LazyListPrefetchScope, androidx.compose.foundation.lazy.LazyListLayoutInfo layoutInfo); + property public default androidx.compose.foundation.lazy.layout.PrefetchScheduler? prefetchScheduler; + } + + public final class LazyListPrefetchStrategyKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.foundation.lazy.LazyListPrefetchStrategy LazyListPrefetchStrategy(optional int nestedPrefetchItemCount); + } + + @androidx.compose.foundation.lazy.LazyScopeMarker @kotlin.jvm.JvmDefaultWithCompatibility public interface LazyListScope { + method public default void item(optional Object? key, optional Object? contentType, kotlin.jvm.functions.Function1 content); + method @Deprecated public void item(optional Object? key, kotlin.jvm.functions.Function1 content); + method public default void items(int count, optional kotlin.jvm.functions.Function1? key, optional kotlin.jvm.functions.Function1 contentType, kotlin.jvm.functions.Function2 itemContent); + method @Deprecated public void items(int count, optional kotlin.jvm.functions.Function1? key, kotlin.jvm.functions.Function2 itemContent); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public void stickyHeader(optional Object? key, optional Object? contentType, kotlin.jvm.functions.Function1 content); + } + + @androidx.compose.runtime.Stable public final class LazyListState implements androidx.compose.foundation.gestures.ScrollableState { + ctor public LazyListState(optional int firstVisibleItemIndex, optional int firstVisibleItemScrollOffset); + ctor @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public LazyListState(optional int firstVisibleItemIndex, optional int firstVisibleItemScrollOffset, optional androidx.compose.foundation.lazy.LazyListPrefetchStrategy prefetchStrategy); + method public suspend Object? animateScrollToItem(@IntRange(from=0L) int index, optional int scrollOffset, kotlin.coroutines.Continuation); + method public float dispatchRawDelta(float delta); + method public int getFirstVisibleItemIndex(); + method public int getFirstVisibleItemScrollOffset(); + method public androidx.compose.foundation.interaction.InteractionSource getInteractionSource(); + method public androidx.compose.foundation.lazy.LazyListLayoutInfo getLayoutInfo(); + method public boolean isScrollInProgress(); + method public void requestScrollToItem(@IntRange(from=0L) int index, optional int scrollOffset); + method public suspend Object? scroll(androidx.compose.foundation.MutatePriority scrollPriority, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + method public suspend Object? scrollToItem(@IntRange(from=0L) int index, optional int scrollOffset, kotlin.coroutines.Continuation); + property public boolean canScrollBackward; + property public boolean canScrollForward; + property public final int firstVisibleItemIndex; + property public final int firstVisibleItemScrollOffset; + property public final androidx.compose.foundation.interaction.InteractionSource interactionSource; + property public boolean isScrollInProgress; + property public boolean lastScrolledBackward; + property public boolean lastScrolledForward; + property public final androidx.compose.foundation.lazy.LazyListLayoutInfo layoutInfo; + field public static final androidx.compose.foundation.lazy.LazyListState.Companion Companion; + } + + public static final class LazyListState.Companion { + method public androidx.compose.runtime.saveable.Saver getSaver(); + property public final androidx.compose.runtime.saveable.Saver Saver; + } + + public final class LazyListStateKt { + method @androidx.compose.runtime.Composable public static androidx.compose.foundation.lazy.LazyListState rememberLazyListState(optional int initialFirstVisibleItemIndex, optional int initialFirstVisibleItemScrollOffset); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static androidx.compose.foundation.lazy.LazyListState rememberLazyListState(optional int initialFirstVisibleItemIndex, optional int initialFirstVisibleItemScrollOffset, optional androidx.compose.foundation.lazy.LazyListPrefetchStrategy prefetchStrategy); + } + + @kotlin.DslMarker public @interface LazyScopeMarker { + } + +} + +package androidx.compose.foundation.lazy.grid { + + @androidx.compose.runtime.Stable public interface GridCells { + method public java.util.List calculateCrossAxisCellSizes(androidx.compose.ui.unit.Density, int availableSize, int spacing); + } + + public static final class GridCells.Adaptive implements androidx.compose.foundation.lazy.grid.GridCells { + ctor public GridCells.Adaptive(float minSize); + method public java.util.List calculateCrossAxisCellSizes(androidx.compose.ui.unit.Density, int availableSize, int spacing); + } + + public static final class GridCells.Fixed implements androidx.compose.foundation.lazy.grid.GridCells { + ctor public GridCells.Fixed(int count); + method public java.util.List calculateCrossAxisCellSizes(androidx.compose.ui.unit.Density, int availableSize, int spacing); + } + + public static final class GridCells.FixedSize implements androidx.compose.foundation.lazy.grid.GridCells { + ctor public GridCells.FixedSize(float size); + method public java.util.List calculateCrossAxisCellSizes(androidx.compose.ui.unit.Density, int availableSize, int spacing); + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class GridItemSpan { + method public int getCurrentLineSpan(); + property public final int currentLineSpan; + } + + public final class LazyGridDslKt { + method @androidx.compose.runtime.Composable public static void LazyHorizontalGrid(androidx.compose.foundation.lazy.grid.GridCells rows, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.lazy.grid.LazyGridState state, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional boolean reverseLayout, optional androidx.compose.foundation.layout.Arrangement.Horizontal horizontalArrangement, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional androidx.compose.foundation.gestures.FlingBehavior flingBehavior, optional boolean userScrollEnabled, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void LazyVerticalGrid(androidx.compose.foundation.lazy.grid.GridCells columns, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.lazy.grid.LazyGridState state, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional boolean reverseLayout, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional androidx.compose.foundation.layout.Arrangement.Horizontal horizontalArrangement, optional androidx.compose.foundation.gestures.FlingBehavior flingBehavior, optional boolean userScrollEnabled, kotlin.jvm.functions.Function1 content); + method public static inline void items(androidx.compose.foundation.lazy.grid.LazyGridScope, java.util.List items, optional kotlin.jvm.functions.Function1? key, optional kotlin.jvm.functions.Function2? span, optional kotlin.jvm.functions.Function1 contentType, kotlin.jvm.functions.Function2 itemContent); + method public static inline void items(androidx.compose.foundation.lazy.grid.LazyGridScope, T[] items, optional kotlin.jvm.functions.Function1? key, optional kotlin.jvm.functions.Function2? span, optional kotlin.jvm.functions.Function1 contentType, kotlin.jvm.functions.Function2 itemContent); + method public static inline void itemsIndexed(androidx.compose.foundation.lazy.grid.LazyGridScope, java.util.List items, optional kotlin.jvm.functions.Function2? key, optional kotlin.jvm.functions.Function3? span, optional kotlin.jvm.functions.Function2 contentType, kotlin.jvm.functions.Function3 itemContent); + method public static inline void itemsIndexed(androidx.compose.foundation.lazy.grid.LazyGridScope, T[] items, optional kotlin.jvm.functions.Function2? key, optional kotlin.jvm.functions.Function3? span, optional kotlin.jvm.functions.Function2 contentType, kotlin.jvm.functions.Function3 itemContent); + } + + public sealed interface LazyGridItemInfo { + method public int getColumn(); + method public Object? getContentType(); + method public int getIndex(); + method public Object getKey(); + method public long getOffset(); + method public int getRow(); + method public long getSize(); + property public abstract int column; + property public abstract Object? contentType; + property public abstract int index; + property public abstract Object key; + property public abstract long offset; + property public abstract int row; + property public abstract long size; + field public static final androidx.compose.foundation.lazy.grid.LazyGridItemInfo.Companion Companion; + field public static final int UnknownColumn = -1; // 0xffffffff + field public static final int UnknownRow = -1; // 0xffffffff + } + + public static final class LazyGridItemInfo.Companion { + field public static final int UnknownColumn = -1; // 0xffffffff + field public static final int UnknownRow = -1; // 0xffffffff + } + + @androidx.compose.foundation.lazy.grid.LazyGridScopeMarker @androidx.compose.runtime.Stable public sealed interface LazyGridItemScope { + method public androidx.compose.ui.Modifier animateItem(androidx.compose.ui.Modifier, optional androidx.compose.animation.core.FiniteAnimationSpec? fadeInSpec, optional androidx.compose.animation.core.FiniteAnimationSpec? placementSpec, optional androidx.compose.animation.core.FiniteAnimationSpec? fadeOutSpec); + method @Deprecated @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public default androidx.compose.ui.Modifier animateItemPlacement(androidx.compose.ui.Modifier, optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec); + } + + @androidx.compose.foundation.lazy.grid.LazyGridScopeMarker public sealed interface LazyGridItemSpanScope { + method public int getMaxCurrentLineSpan(); + method public int getMaxLineSpan(); + property public abstract int maxCurrentLineSpan; + property public abstract int maxLineSpan; + } + + public sealed interface LazyGridLayoutInfo { + method public int getAfterContentPadding(); + method public int getBeforeContentPadding(); + method public int getMainAxisItemSpacing(); + method public androidx.compose.foundation.gestures.Orientation getOrientation(); + method public boolean getReverseLayout(); + method public int getTotalItemsCount(); + method public int getViewportEndOffset(); + method public long getViewportSize(); + method public int getViewportStartOffset(); + method public java.util.List getVisibleItemsInfo(); + property public abstract int afterContentPadding; + property public abstract int beforeContentPadding; + property public abstract int mainAxisItemSpacing; + property public abstract androidx.compose.foundation.gestures.Orientation orientation; + property public abstract boolean reverseLayout; + property public abstract int totalItemsCount; + property public abstract int viewportEndOffset; + property public abstract long viewportSize; + property public abstract int viewportStartOffset; + property public abstract java.util.List visibleItemsInfo; + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public interface LazyGridPrefetchScope { + method public java.util.List scheduleLinePrefetch(int lineIndex); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public interface LazyGridPrefetchStrategy { + method public default androidx.compose.foundation.lazy.layout.PrefetchScheduler? getPrefetchScheduler(); + method public void onNestedPrefetch(androidx.compose.foundation.lazy.layout.NestedPrefetchScope, int firstVisibleItemIndex); + method public void onScroll(androidx.compose.foundation.lazy.grid.LazyGridPrefetchScope, float delta, androidx.compose.foundation.lazy.grid.LazyGridLayoutInfo layoutInfo); + method public void onVisibleItemsUpdated(androidx.compose.foundation.lazy.grid.LazyGridPrefetchScope, androidx.compose.foundation.lazy.grid.LazyGridLayoutInfo layoutInfo); + property public default androidx.compose.foundation.lazy.layout.PrefetchScheduler? prefetchScheduler; + } + + public final class LazyGridPrefetchStrategyKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.foundation.lazy.grid.LazyGridPrefetchStrategy LazyGridPrefetchStrategy(optional int nestedPrefetchItemCount); + } + + @androidx.compose.foundation.lazy.grid.LazyGridScopeMarker public sealed interface LazyGridScope { + method public void item(optional Object? key, optional kotlin.jvm.functions.Function1? span, optional Object? contentType, kotlin.jvm.functions.Function1 content); + method public void items(int count, optional kotlin.jvm.functions.Function1? key, optional kotlin.jvm.functions.Function2? span, optional kotlin.jvm.functions.Function1 contentType, kotlin.jvm.functions.Function2 itemContent); + } + + @kotlin.DslMarker public @interface LazyGridScopeMarker { + } + + public final class LazyGridSpanKt { + method public static long GridItemSpan(@IntRange(from=1L) int currentLineSpan); + } + + @androidx.compose.runtime.Stable public final class LazyGridState implements androidx.compose.foundation.gestures.ScrollableState { + ctor public LazyGridState(optional int firstVisibleItemIndex, optional int firstVisibleItemScrollOffset); + ctor @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public LazyGridState(optional int firstVisibleItemIndex, optional int firstVisibleItemScrollOffset, optional androidx.compose.foundation.lazy.grid.LazyGridPrefetchStrategy prefetchStrategy); + method public suspend Object? animateScrollToItem(@IntRange(from=0L) int index, optional int scrollOffset, kotlin.coroutines.Continuation); + method public float dispatchRawDelta(float delta); + method public int getFirstVisibleItemIndex(); + method public int getFirstVisibleItemScrollOffset(); + method public androidx.compose.foundation.interaction.InteractionSource getInteractionSource(); + method public androidx.compose.foundation.lazy.grid.LazyGridLayoutInfo getLayoutInfo(); + method public boolean isScrollInProgress(); + method public void requestScrollToItem(@IntRange(from=0L) int index, optional int scrollOffset); + method public suspend Object? scroll(androidx.compose.foundation.MutatePriority scrollPriority, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + method public suspend Object? scrollToItem(@IntRange(from=0L) int index, optional int scrollOffset, kotlin.coroutines.Continuation); + property public boolean canScrollBackward; + property public boolean canScrollForward; + property public final int firstVisibleItemIndex; + property public final int firstVisibleItemScrollOffset; + property public final androidx.compose.foundation.interaction.InteractionSource interactionSource; + property public boolean isScrollInProgress; + property public boolean lastScrolledBackward; + property public boolean lastScrolledForward; + property public final androidx.compose.foundation.lazy.grid.LazyGridLayoutInfo layoutInfo; + field public static final androidx.compose.foundation.lazy.grid.LazyGridState.Companion Companion; + } + + public static final class LazyGridState.Companion { + method public androidx.compose.runtime.saveable.Saver getSaver(); + property public final androidx.compose.runtime.saveable.Saver Saver; + } + + public final class LazyGridStateKt { + method @androidx.compose.runtime.Composable public static androidx.compose.foundation.lazy.grid.LazyGridState rememberLazyGridState(optional int initialFirstVisibleItemIndex, optional int initialFirstVisibleItemScrollOffset); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static androidx.compose.foundation.lazy.grid.LazyGridState rememberLazyGridState(optional int initialFirstVisibleItemIndex, optional int initialFirstVisibleItemScrollOffset, optional androidx.compose.foundation.lazy.grid.LazyGridPrefetchStrategy prefetchStrategy); + } + +} + +package androidx.compose.foundation.lazy.layout { + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public sealed interface IntervalList { + method public void forEach(optional int fromIndex, optional int toIndex, kotlin.jvm.functions.Function1,kotlin.Unit> block); + method public operator androidx.compose.foundation.lazy.layout.IntervalList.Interval get(int index); + method public int getSize(); + property public abstract int size; + } + + public static final class IntervalList.Interval { + method public int getSize(); + method public int getStartIndex(); + method public T getValue(); + property public final int size; + property public final int startIndex; + property public final T value; + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public abstract class LazyLayoutIntervalContent { + ctor public LazyLayoutIntervalContent(); + method public final Object? getContentType(int index); + method public abstract androidx.compose.foundation.lazy.layout.IntervalList getIntervals(); + method public final int getItemCount(); + method public final Object getKey(int index); + method public final inline T withInterval(int globalIndex, kotlin.jvm.functions.Function2 block); + property public abstract androidx.compose.foundation.lazy.layout.IntervalList intervals; + property public final int itemCount; + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static interface LazyLayoutIntervalContent.Interval { + method public default kotlin.jvm.functions.Function1? getKey(); + method public default kotlin.jvm.functions.Function1 getType(); + property public default kotlin.jvm.functions.Function1? key; + property public default kotlin.jvm.functions.Function1 type; + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public interface LazyLayoutItemProvider { + method @androidx.compose.runtime.Composable public void Item(int index, Object key); + method public default Object? getContentType(int index); + method public default int getIndex(Object key); + method public int getItemCount(); + method public default Object getKey(int index); + property public abstract int itemCount; + } + + public final class LazyLayoutKt { + method @Deprecated @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static void LazyLayout(androidx.compose.foundation.lazy.layout.LazyLayoutItemProvider itemProvider, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.lazy.layout.LazyLayoutPrefetchState? prefetchState, kotlin.jvm.functions.Function2 measurePolicy); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static void LazyLayout(kotlin.jvm.functions.Function0 itemProvider, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.lazy.layout.LazyLayoutPrefetchState? prefetchState, kotlin.jvm.functions.Function2 measurePolicy); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public sealed interface LazyLayoutMeasureScope extends androidx.compose.ui.layout.MeasureScope { + method public java.util.List measure(int index, long constraints); + method @androidx.compose.runtime.Stable public default float toDp(float); + method @androidx.compose.runtime.Stable public default float toDp(int); + method @androidx.compose.runtime.Stable public default float toDp(long); + method @androidx.compose.runtime.Stable public default long toDpSize(long); + method @androidx.compose.runtime.Stable public default long toSize(long); + method @androidx.compose.runtime.Stable public default long toSp(float); + method @androidx.compose.runtime.Stable public default long toSp(float); + method @androidx.compose.runtime.Stable public default long toSp(int); + } + + public final class LazyLayoutPinnableItemKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static void LazyLayoutPinnableItem(Object? key, int index, androidx.compose.foundation.lazy.layout.LazyLayoutPinnedItemList pinnedItemList, kotlin.jvm.functions.Function0 content); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public final class LazyLayoutPinnedItemList implements kotlin.jvm.internal.markers.KMappedMarker java.util.List { + ctor public LazyLayoutPinnedItemList(); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static sealed interface LazyLayoutPinnedItemList.PinnedItem { + method public int getIndex(); + method public Object? getKey(); + property public abstract int index; + property public abstract Object? key; + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public final class LazyLayoutPrefetchState { + ctor public LazyLayoutPrefetchState(optional androidx.compose.foundation.lazy.layout.PrefetchScheduler? prefetchScheduler, optional kotlin.jvm.functions.Function1? onNestedPrefetch); + method public androidx.compose.foundation.lazy.layout.LazyLayoutPrefetchState.PrefetchHandle schedulePrefetch(int index); + method public androidx.compose.foundation.lazy.layout.LazyLayoutPrefetchState.PrefetchHandle schedulePrefetch(int index, long constraints); + } + + public static sealed interface LazyLayoutPrefetchState.PrefetchHandle { + method public void cancel(); + method public void markAsUrgent(); + } + + public final class Lazy_androidKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static Object getDefaultLazyLayoutKey(int index); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public final class MutableIntervalList implements androidx.compose.foundation.lazy.layout.IntervalList { + ctor public MutableIntervalList(); + method public void addInterval(int size, T value); + method public void forEach(int fromIndex, int toIndex, kotlin.jvm.functions.Function1,kotlin.Unit> block); + method public androidx.compose.foundation.lazy.layout.IntervalList.Interval get(int index); + method public int getSize(); + property public int size; + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public sealed interface NestedPrefetchScope { + method public void schedulePrefetch(int index); + method public void schedulePrefetch(int index, long constraints); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public sealed interface PrefetchRequest { + method public boolean execute(androidx.compose.foundation.lazy.layout.PrefetchRequestScope); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public interface PrefetchRequestScope { + method public long availableTimeNanos(); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public interface PrefetchScheduler { + method public void schedulePrefetch(androidx.compose.foundation.lazy.layout.PrefetchRequest prefetchRequest); + } + +} + +package androidx.compose.foundation.lazy.staggeredgrid { + + public final class LazyStaggeredGridDslKt { + method @androidx.compose.runtime.Composable public static void LazyHorizontalStaggeredGrid(androidx.compose.foundation.lazy.staggeredgrid.StaggeredGridCells rows, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.lazy.staggeredgrid.LazyStaggeredGridState state, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional boolean reverseLayout, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional float horizontalItemSpacing, optional androidx.compose.foundation.gestures.FlingBehavior flingBehavior, optional boolean userScrollEnabled, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void LazyVerticalStaggeredGrid(androidx.compose.foundation.lazy.staggeredgrid.StaggeredGridCells columns, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.lazy.staggeredgrid.LazyStaggeredGridState state, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional boolean reverseLayout, optional float verticalItemSpacing, optional androidx.compose.foundation.layout.Arrangement.Horizontal horizontalArrangement, optional androidx.compose.foundation.gestures.FlingBehavior flingBehavior, optional boolean userScrollEnabled, kotlin.jvm.functions.Function1 content); + method public static inline void items(androidx.compose.foundation.lazy.staggeredgrid.LazyStaggeredGridScope, java.util.List items, optional kotlin.jvm.functions.Function1? key, optional kotlin.jvm.functions.Function1 contentType, optional kotlin.jvm.functions.Function1? span, kotlin.jvm.functions.Function2 itemContent); + method public static inline void items(androidx.compose.foundation.lazy.staggeredgrid.LazyStaggeredGridScope, T[] items, optional kotlin.jvm.functions.Function1? key, optional kotlin.jvm.functions.Function1 contentType, optional kotlin.jvm.functions.Function1? span, kotlin.jvm.functions.Function2 itemContent); + method public static inline void itemsIndexed(androidx.compose.foundation.lazy.staggeredgrid.LazyStaggeredGridScope, java.util.List items, optional kotlin.jvm.functions.Function2? key, optional kotlin.jvm.functions.Function2 contentType, optional kotlin.jvm.functions.Function2? span, kotlin.jvm.functions.Function3 itemContent); + method public static inline void itemsIndexed(androidx.compose.foundation.lazy.staggeredgrid.LazyStaggeredGridScope, T[] items, optional kotlin.jvm.functions.Function2? key, optional kotlin.jvm.functions.Function2 contentType, optional kotlin.jvm.functions.Function2? span, kotlin.jvm.functions.Function3 itemContent); + } + + public sealed interface LazyStaggeredGridItemInfo { + method public Object? getContentType(); + method public int getIndex(); + method public Object getKey(); + method public int getLane(); + method public long getOffset(); + method public long getSize(); + property public abstract Object? contentType; + property public abstract int index; + property public abstract Object key; + property public abstract int lane; + property public abstract long offset; + property public abstract long size; + } + + @androidx.compose.runtime.Stable public sealed interface LazyStaggeredGridItemScope { + method public androidx.compose.ui.Modifier animateItem(androidx.compose.ui.Modifier, optional androidx.compose.animation.core.FiniteAnimationSpec? fadeInSpec, optional androidx.compose.animation.core.FiniteAnimationSpec? placementSpec, optional androidx.compose.animation.core.FiniteAnimationSpec? fadeOutSpec); + method @Deprecated @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public default androidx.compose.ui.Modifier animateItemPlacement(androidx.compose.ui.Modifier, optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec); + } + + public sealed interface LazyStaggeredGridLayoutInfo { + method public int getAfterContentPadding(); + method public int getBeforeContentPadding(); + method public int getMainAxisItemSpacing(); + method public androidx.compose.foundation.gestures.Orientation getOrientation(); + method public int getTotalItemsCount(); + method public int getViewportEndOffset(); + method public long getViewportSize(); + method public int getViewportStartOffset(); + method public java.util.List getVisibleItemsInfo(); + property public abstract int afterContentPadding; + property public abstract int beforeContentPadding; + property public abstract int mainAxisItemSpacing; + property public abstract androidx.compose.foundation.gestures.Orientation orientation; + property public abstract int totalItemsCount; + property public abstract int viewportEndOffset; + property public abstract long viewportSize; + property public abstract int viewportStartOffset; + property public abstract java.util.List visibleItemsInfo; + } + + public sealed interface LazyStaggeredGridScope { + method public void item(optional Object? key, optional Object? contentType, optional androidx.compose.foundation.lazy.staggeredgrid.StaggeredGridItemSpan? span, kotlin.jvm.functions.Function1 content); + method public void items(int count, optional kotlin.jvm.functions.Function1? key, optional kotlin.jvm.functions.Function1 contentType, optional kotlin.jvm.functions.Function1? span, kotlin.jvm.functions.Function2 itemContent); + } + + public final class LazyStaggeredGridState implements androidx.compose.foundation.gestures.ScrollableState { + ctor public LazyStaggeredGridState(optional int initialFirstVisibleItemIndex, optional int initialFirstVisibleItemOffset); + method public suspend Object? animateScrollToItem(int index, optional int scrollOffset, kotlin.coroutines.Continuation); + method public float dispatchRawDelta(float delta); + method public int getFirstVisibleItemIndex(); + method public int getFirstVisibleItemScrollOffset(); + method public androidx.compose.foundation.interaction.InteractionSource getInteractionSource(); + method public androidx.compose.foundation.lazy.staggeredgrid.LazyStaggeredGridLayoutInfo getLayoutInfo(); + method public boolean isScrollInProgress(); + method public void requestScrollToItem(@IntRange(from=0L) int index, optional int scrollOffset); + method public suspend Object? scroll(androidx.compose.foundation.MutatePriority scrollPriority, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + method public suspend Object? scrollToItem(int index, optional int scrollOffset, kotlin.coroutines.Continuation); + property public boolean canScrollBackward; + property public boolean canScrollForward; + property public final int firstVisibleItemIndex; + property public final int firstVisibleItemScrollOffset; + property public final androidx.compose.foundation.interaction.InteractionSource interactionSource; + property public boolean isScrollInProgress; + property public boolean lastScrolledBackward; + property public boolean lastScrolledForward; + property public final androidx.compose.foundation.lazy.staggeredgrid.LazyStaggeredGridLayoutInfo layoutInfo; + field public static final androidx.compose.foundation.lazy.staggeredgrid.LazyStaggeredGridState.Companion Companion; + } + + public static final class LazyStaggeredGridState.Companion { + method public androidx.compose.runtime.saveable.Saver getSaver(); + property public final androidx.compose.runtime.saveable.Saver Saver; + } + + public final class LazyStaggeredGridStateKt { + method @androidx.compose.runtime.Composable public static androidx.compose.foundation.lazy.staggeredgrid.LazyStaggeredGridState rememberLazyStaggeredGridState(optional int initialFirstVisibleItemIndex, optional int initialFirstVisibleItemScrollOffset); + } + + @androidx.compose.runtime.Stable public interface StaggeredGridCells { + method public int[] calculateCrossAxisCellSizes(androidx.compose.ui.unit.Density, int availableSize, int spacing); + } + + public static final class StaggeredGridCells.Adaptive implements androidx.compose.foundation.lazy.staggeredgrid.StaggeredGridCells { + ctor public StaggeredGridCells.Adaptive(float minSize); + method public int[] calculateCrossAxisCellSizes(androidx.compose.ui.unit.Density, int availableSize, int spacing); + } + + public static final class StaggeredGridCells.Fixed implements androidx.compose.foundation.lazy.staggeredgrid.StaggeredGridCells { + ctor public StaggeredGridCells.Fixed(int count); + method public int[] calculateCrossAxisCellSizes(androidx.compose.ui.unit.Density, int availableSize, int spacing); + } + + public static final class StaggeredGridCells.FixedSize implements androidx.compose.foundation.lazy.staggeredgrid.StaggeredGridCells { + ctor public StaggeredGridCells.FixedSize(float size); + method public int[] calculateCrossAxisCellSizes(androidx.compose.ui.unit.Density, int availableSize, int spacing); + } + + public final class StaggeredGridItemSpan { + field public static final androidx.compose.foundation.lazy.staggeredgrid.StaggeredGridItemSpan.Companion Companion; + } + + public static final class StaggeredGridItemSpan.Companion { + method public androidx.compose.foundation.lazy.staggeredgrid.StaggeredGridItemSpan getFullLine(); + method public androidx.compose.foundation.lazy.staggeredgrid.StaggeredGridItemSpan getSingleLane(); + property public final androidx.compose.foundation.lazy.staggeredgrid.StaggeredGridItemSpan FullLine; + property public final androidx.compose.foundation.lazy.staggeredgrid.StaggeredGridItemSpan SingleLane; + } + +} + +package androidx.compose.foundation.pager { + + public sealed interface PageInfo { + method public int getIndex(); + method public Object getKey(); + method public int getOffset(); + property public abstract int index; + property public abstract Object key; + property public abstract int offset; + } + + @androidx.compose.runtime.Stable public interface PageSize { + method public int calculateMainAxisPageSize(androidx.compose.ui.unit.Density, int availableSpace, int pageSpacing); + } + + public static final class PageSize.Fill implements androidx.compose.foundation.pager.PageSize { + method public int calculateMainAxisPageSize(androidx.compose.ui.unit.Density, int availableSpace, int pageSpacing); + field public static final androidx.compose.foundation.pager.PageSize.Fill INSTANCE; + } + + public static final class PageSize.Fixed implements androidx.compose.foundation.pager.PageSize { + ctor public PageSize.Fixed(float pageSize); + method public int calculateMainAxisPageSize(androidx.compose.ui.unit.Density, int availableSpace, int pageSpacing); + method public float getPageSize(); + property public final float pageSize; + } + + public final class PagerDefaults { + method @androidx.compose.runtime.Composable public androidx.compose.foundation.gestures.TargetedFlingBehavior flingBehavior(androidx.compose.foundation.pager.PagerState state, optional androidx.compose.foundation.pager.PagerSnapDistance pagerSnapDistance, optional androidx.compose.animation.core.DecayAnimationSpec decayAnimationSpec, optional androidx.compose.animation.core.AnimationSpec snapAnimationSpec, optional @FloatRange(from=0.0, to=1.0) float snapPositionalThreshold); + method @androidx.compose.runtime.Composable public androidx.compose.ui.input.nestedscroll.NestedScrollConnection pageNestedScrollConnection(androidx.compose.foundation.pager.PagerState state, androidx.compose.foundation.gestures.Orientation orientation); + field public static final int BeyondViewportPageCount = 0; // 0x0 + field public static final androidx.compose.foundation.pager.PagerDefaults INSTANCE; + } + + public final class PagerKt { + method @androidx.compose.runtime.Composable public static void HorizontalPager(androidx.compose.foundation.pager.PagerState state, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.foundation.pager.PageSize pageSize, optional int beyondViewportPageCount, optional float pageSpacing, optional androidx.compose.ui.Alignment.Vertical verticalAlignment, optional androidx.compose.foundation.gestures.TargetedFlingBehavior flingBehavior, optional boolean userScrollEnabled, optional boolean reverseLayout, optional kotlin.jvm.functions.Function1? key, optional androidx.compose.ui.input.nestedscroll.NestedScrollConnection pageNestedScrollConnection, optional androidx.compose.foundation.gestures.snapping.SnapPosition snapPosition, kotlin.jvm.functions.Function2 pageContent); + method @androidx.compose.runtime.Composable public static void VerticalPager(androidx.compose.foundation.pager.PagerState state, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.foundation.pager.PageSize pageSize, optional int beyondViewportPageCount, optional float pageSpacing, optional androidx.compose.ui.Alignment.Horizontal horizontalAlignment, optional androidx.compose.foundation.gestures.TargetedFlingBehavior flingBehavior, optional boolean userScrollEnabled, optional boolean reverseLayout, optional kotlin.jvm.functions.Function1? key, optional androidx.compose.ui.input.nestedscroll.NestedScrollConnection pageNestedScrollConnection, optional androidx.compose.foundation.gestures.snapping.SnapPosition snapPosition, kotlin.jvm.functions.Function2 pageContent); + } + + public sealed interface PagerLayoutInfo { + method public int getAfterContentPadding(); + method public int getBeforeContentPadding(); + method public int getBeyondViewportPageCount(); + method public androidx.compose.foundation.gestures.Orientation getOrientation(); + method public int getPageSize(); + method public int getPageSpacing(); + method public boolean getReverseLayout(); + method public androidx.compose.foundation.gestures.snapping.SnapPosition getSnapPosition(); + method public int getViewportEndOffset(); + method public long getViewportSize(); + method public int getViewportStartOffset(); + method public java.util.List getVisiblePagesInfo(); + property public abstract int afterContentPadding; + property public abstract int beforeContentPadding; + property public abstract int beyondViewportPageCount; + property public abstract androidx.compose.foundation.gestures.Orientation orientation; + property public abstract int pageSize; + property public abstract int pageSpacing; + property public abstract boolean reverseLayout; + property public abstract androidx.compose.foundation.gestures.snapping.SnapPosition snapPosition; + property public abstract int viewportEndOffset; + property public abstract long viewportSize; + property public abstract int viewportStartOffset; + property public abstract java.util.List visiblePagesInfo; + } + + public sealed interface PagerScope { + } + + @androidx.compose.runtime.Stable public interface PagerSnapDistance { + method public int calculateTargetPage(int startPage, int suggestedTargetPage, float velocity, int pageSize, int pageSpacing); + field public static final androidx.compose.foundation.pager.PagerSnapDistance.Companion Companion; + } + + public static final class PagerSnapDistance.Companion { + method public androidx.compose.foundation.pager.PagerSnapDistance atMost(int pages); + } + + @androidx.compose.runtime.Stable public abstract class PagerState implements androidx.compose.foundation.gestures.ScrollableState { + ctor public PagerState(optional int currentPage, optional @FloatRange(from=-0.5, to=0.5) float currentPageOffsetFraction); + method public final suspend Object? animateScrollToPage(int page, optional @FloatRange(from=-0.5, to=0.5) float pageOffsetFraction, optional androidx.compose.animation.core.AnimationSpec animationSpec, kotlin.coroutines.Continuation); + method public float dispatchRawDelta(float delta); + method public final boolean getCanScrollBackward(); + method public final boolean getCanScrollForward(); + method public final int getCurrentPage(); + method public final float getCurrentPageOffsetFraction(); + method public final androidx.compose.foundation.interaction.InteractionSource getInteractionSource(); + method public final androidx.compose.foundation.pager.PagerLayoutInfo getLayoutInfo(); + method public final float getOffsetDistanceInPages(int page); + method public abstract int getPageCount(); + method public final int getSettledPage(); + method public final int getTargetPage(); + method public boolean isScrollInProgress(); + method public final void requestScrollToPage(@IntRange(from=0L) int page, optional @FloatRange(from=-0.5, to=0.5) float pageOffsetFraction); + method public suspend Object? scroll(androidx.compose.foundation.MutatePriority scrollPriority, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + method public final suspend Object? scrollToPage(int page, optional @FloatRange(from=-0.5, to=0.5) float pageOffsetFraction, kotlin.coroutines.Continuation); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public final void updateCurrentPage(androidx.compose.foundation.gestures.ScrollScope, int page, optional @FloatRange(from=-0.5, to=0.5) float pageOffsetFraction); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public final void updateTargetPage(androidx.compose.foundation.gestures.ScrollScope, int targetPage); + property public final boolean canScrollBackward; + property public final boolean canScrollForward; + property public final int currentPage; + property public final float currentPageOffsetFraction; + property public final androidx.compose.foundation.interaction.InteractionSource interactionSource; + property public boolean isScrollInProgress; + property public boolean lastScrolledBackward; + property public boolean lastScrolledForward; + property public final androidx.compose.foundation.pager.PagerLayoutInfo layoutInfo; + property public abstract int pageCount; + property public final int settledPage; + property public final int targetPage; + } + + public final class PagerStateKt { + method public static androidx.compose.foundation.pager.PagerState PagerState(optional int currentPage, optional @FloatRange(from=-0.5, to=0.5) float currentPageOffsetFraction, kotlin.jvm.functions.Function0 pageCount); + method @androidx.compose.runtime.Composable public static androidx.compose.foundation.pager.PagerState rememberPagerState(optional int initialPage, optional @FloatRange(from=-0.5, to=0.5) float initialPageOffsetFraction, kotlin.jvm.functions.Function0 pageCount); + } + +} + +package androidx.compose.foundation.relocation { + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public sealed interface BringIntoViewRequester { + method public suspend Object? bringIntoView(optional androidx.compose.ui.geometry.Rect? rect, kotlin.coroutines.Continuation); + } + + public final class BringIntoViewRequesterKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.foundation.relocation.BringIntoViewRequester BringIntoViewRequester(); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier bringIntoViewRequester(androidx.compose.ui.Modifier, androidx.compose.foundation.relocation.BringIntoViewRequester bringIntoViewRequester); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier bringIntoViewResponder(androidx.compose.ui.Modifier, androidx.compose.foundation.relocation.BringIntoViewResponder responder); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public interface BringIntoViewResponder { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public suspend Object? bringChildIntoView(kotlin.jvm.functions.Function0 localRect, kotlin.coroutines.Continuation); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public androidx.compose.ui.geometry.Rect calculateRectForParent(androidx.compose.ui.geometry.Rect localRect); + } + +} + +package androidx.compose.foundation.selection { + + public final class SelectableGroupKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier selectableGroup(androidx.compose.ui.Modifier); + } + + public final class SelectableKt { + method public static androidx.compose.ui.Modifier selectable(androidx.compose.ui.Modifier, boolean selected, androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, androidx.compose.foundation.Indication? indication, optional boolean enabled, optional androidx.compose.ui.semantics.Role? role, kotlin.jvm.functions.Function0 onClick); + method public static androidx.compose.ui.Modifier selectable(androidx.compose.ui.Modifier, boolean selected, optional boolean enabled, optional androidx.compose.ui.semantics.Role? role, kotlin.jvm.functions.Function0 onClick); + } + + public final class ToggleableKt { + method public static androidx.compose.ui.Modifier toggleable(androidx.compose.ui.Modifier, boolean value, androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, androidx.compose.foundation.Indication? indication, optional boolean enabled, optional androidx.compose.ui.semantics.Role? role, kotlin.jvm.functions.Function1 onValueChange); + method public static androidx.compose.ui.Modifier toggleable(androidx.compose.ui.Modifier, boolean value, optional boolean enabled, optional androidx.compose.ui.semantics.Role? role, kotlin.jvm.functions.Function1 onValueChange); + method public static androidx.compose.ui.Modifier triStateToggleable(androidx.compose.ui.Modifier, androidx.compose.ui.state.ToggleableState state, androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, androidx.compose.foundation.Indication? indication, optional boolean enabled, optional androidx.compose.ui.semantics.Role? role, kotlin.jvm.functions.Function0 onClick); + method public static androidx.compose.ui.Modifier triStateToggleable(androidx.compose.ui.Modifier, androidx.compose.ui.state.ToggleableState state, optional boolean enabled, optional androidx.compose.ui.semantics.Role? role, kotlin.jvm.functions.Function0 onClick); + } + +} + +package androidx.compose.foundation.shape { + + public final class AbsoluteCutCornerShape extends androidx.compose.foundation.shape.CornerBasedShape { + ctor public AbsoluteCutCornerShape(androidx.compose.foundation.shape.CornerSize topLeft, androidx.compose.foundation.shape.CornerSize topRight, androidx.compose.foundation.shape.CornerSize bottomRight, androidx.compose.foundation.shape.CornerSize bottomLeft); + method public androidx.compose.foundation.shape.AbsoluteCutCornerShape copy(androidx.compose.foundation.shape.CornerSize topStart, androidx.compose.foundation.shape.CornerSize topEnd, androidx.compose.foundation.shape.CornerSize bottomEnd, androidx.compose.foundation.shape.CornerSize bottomStart); + method public androidx.compose.ui.graphics.Outline createOutline(long size, float topStart, float topEnd, float bottomEnd, float bottomStart, androidx.compose.ui.unit.LayoutDirection layoutDirection); + } + + public final class AbsoluteCutCornerShapeKt { + method public static androidx.compose.foundation.shape.AbsoluteCutCornerShape AbsoluteCutCornerShape(androidx.compose.foundation.shape.CornerSize corner); + method public static androidx.compose.foundation.shape.AbsoluteCutCornerShape AbsoluteCutCornerShape(float size); + method public static androidx.compose.foundation.shape.AbsoluteCutCornerShape AbsoluteCutCornerShape(float size); + method public static androidx.compose.foundation.shape.AbsoluteCutCornerShape AbsoluteCutCornerShape(optional float topLeft, optional float topRight, optional float bottomRight, optional float bottomLeft); + method public static androidx.compose.foundation.shape.AbsoluteCutCornerShape AbsoluteCutCornerShape(optional float topLeft, optional float topRight, optional float bottomRight, optional float bottomLeft); + method public static androidx.compose.foundation.shape.AbsoluteCutCornerShape AbsoluteCutCornerShape(int percent); + method public static androidx.compose.foundation.shape.AbsoluteCutCornerShape AbsoluteCutCornerShape(optional @IntRange(from=0L, to=100L) int topLeftPercent, optional @IntRange(from=0L, to=100L) int topRightPercent, optional @IntRange(from=0L, to=100L) int bottomRightPercent, optional @IntRange(from=0L, to=100L) int bottomLeftPercent); + } + + public final class AbsoluteRoundedCornerShape extends androidx.compose.foundation.shape.CornerBasedShape { + ctor public AbsoluteRoundedCornerShape(androidx.compose.foundation.shape.CornerSize topLeft, androidx.compose.foundation.shape.CornerSize topRight, androidx.compose.foundation.shape.CornerSize bottomRight, androidx.compose.foundation.shape.CornerSize bottomLeft); + method public androidx.compose.foundation.shape.AbsoluteRoundedCornerShape copy(androidx.compose.foundation.shape.CornerSize topStart, androidx.compose.foundation.shape.CornerSize topEnd, androidx.compose.foundation.shape.CornerSize bottomEnd, androidx.compose.foundation.shape.CornerSize bottomStart); + method public androidx.compose.ui.graphics.Outline createOutline(long size, float topStart, float topEnd, float bottomEnd, float bottomStart, androidx.compose.ui.unit.LayoutDirection layoutDirection); + } + + public final class AbsoluteRoundedCornerShapeKt { + method public static androidx.compose.foundation.shape.AbsoluteRoundedCornerShape AbsoluteRoundedCornerShape(androidx.compose.foundation.shape.CornerSize corner); + method public static androidx.compose.foundation.shape.AbsoluteRoundedCornerShape AbsoluteRoundedCornerShape(float size); + method public static androidx.compose.foundation.shape.AbsoluteRoundedCornerShape AbsoluteRoundedCornerShape(float size); + method public static androidx.compose.foundation.shape.AbsoluteRoundedCornerShape AbsoluteRoundedCornerShape(optional float topLeft, optional float topRight, optional float bottomRight, optional float bottomLeft); + method public static androidx.compose.foundation.shape.AbsoluteRoundedCornerShape AbsoluteRoundedCornerShape(optional float topLeft, optional float topRight, optional float bottomRight, optional float bottomLeft); + method public static androidx.compose.foundation.shape.AbsoluteRoundedCornerShape AbsoluteRoundedCornerShape(int percent); + method public static androidx.compose.foundation.shape.AbsoluteRoundedCornerShape AbsoluteRoundedCornerShape(optional @IntRange(from=0L, to=100L) int topLeftPercent, optional @IntRange(from=0L, to=100L) int topRightPercent, optional @IntRange(from=0L, to=100L) int bottomRightPercent, optional @IntRange(from=0L, to=100L) int bottomLeftPercent); + } + + public abstract class CornerBasedShape implements androidx.compose.ui.graphics.Shape { + ctor public CornerBasedShape(androidx.compose.foundation.shape.CornerSize topStart, androidx.compose.foundation.shape.CornerSize topEnd, androidx.compose.foundation.shape.CornerSize bottomEnd, androidx.compose.foundation.shape.CornerSize bottomStart); + method public final androidx.compose.foundation.shape.CornerBasedShape copy(androidx.compose.foundation.shape.CornerSize all); + method public abstract androidx.compose.foundation.shape.CornerBasedShape copy(optional androidx.compose.foundation.shape.CornerSize topStart, optional androidx.compose.foundation.shape.CornerSize topEnd, optional androidx.compose.foundation.shape.CornerSize bottomEnd, optional androidx.compose.foundation.shape.CornerSize bottomStart); + method public final androidx.compose.ui.graphics.Outline createOutline(long size, androidx.compose.ui.unit.LayoutDirection layoutDirection, androidx.compose.ui.unit.Density density); + method public abstract androidx.compose.ui.graphics.Outline createOutline(long size, float topStart, float topEnd, float bottomEnd, float bottomStart, androidx.compose.ui.unit.LayoutDirection layoutDirection); + method public final androidx.compose.foundation.shape.CornerSize getBottomEnd(); + method public final androidx.compose.foundation.shape.CornerSize getBottomStart(); + method public final androidx.compose.foundation.shape.CornerSize getTopEnd(); + method public final androidx.compose.foundation.shape.CornerSize getTopStart(); + property public final androidx.compose.foundation.shape.CornerSize bottomEnd; + property public final androidx.compose.foundation.shape.CornerSize bottomStart; + property public final androidx.compose.foundation.shape.CornerSize topEnd; + property public final androidx.compose.foundation.shape.CornerSize topStart; + } + + @androidx.compose.runtime.Immutable public interface CornerSize { + method public float toPx(long shapeSize, androidx.compose.ui.unit.Density density); + } + + public final class CornerSizeKt { + method @androidx.compose.runtime.Stable public static androidx.compose.foundation.shape.CornerSize CornerSize(float size); + method @androidx.compose.runtime.Stable public static androidx.compose.foundation.shape.CornerSize CornerSize(float size); + method @androidx.compose.runtime.Stable public static androidx.compose.foundation.shape.CornerSize CornerSize(@IntRange(from=0L, to=100L) int percent); + method public static androidx.compose.foundation.shape.CornerSize getZeroCornerSize(); + property public static final androidx.compose.foundation.shape.CornerSize ZeroCornerSize; + } + + public final class CutCornerShape extends androidx.compose.foundation.shape.CornerBasedShape { + ctor public CutCornerShape(androidx.compose.foundation.shape.CornerSize topStart, androidx.compose.foundation.shape.CornerSize topEnd, androidx.compose.foundation.shape.CornerSize bottomEnd, androidx.compose.foundation.shape.CornerSize bottomStart); + method public androidx.compose.foundation.shape.CutCornerShape copy(androidx.compose.foundation.shape.CornerSize topStart, androidx.compose.foundation.shape.CornerSize topEnd, androidx.compose.foundation.shape.CornerSize bottomEnd, androidx.compose.foundation.shape.CornerSize bottomStart); + method public androidx.compose.ui.graphics.Outline createOutline(long size, float topStart, float topEnd, float bottomEnd, float bottomStart, androidx.compose.ui.unit.LayoutDirection layoutDirection); + } + + public final class CutCornerShapeKt { + method public static androidx.compose.foundation.shape.CutCornerShape CutCornerShape(androidx.compose.foundation.shape.CornerSize corner); + method public static androidx.compose.foundation.shape.CutCornerShape CutCornerShape(float size); + method public static androidx.compose.foundation.shape.CutCornerShape CutCornerShape(float size); + method public static androidx.compose.foundation.shape.CutCornerShape CutCornerShape(optional float topStart, optional float topEnd, optional float bottomEnd, optional float bottomStart); + method public static androidx.compose.foundation.shape.CutCornerShape CutCornerShape(optional float topStart, optional float topEnd, optional float bottomEnd, optional float bottomStart); + method public static androidx.compose.foundation.shape.CutCornerShape CutCornerShape(int percent); + method public static androidx.compose.foundation.shape.CutCornerShape CutCornerShape(optional @IntRange(from=0L, to=100L) int topStartPercent, optional @IntRange(from=0L, to=100L) int topEndPercent, optional @IntRange(from=0L, to=100L) int bottomEndPercent, optional @IntRange(from=0L, to=100L) int bottomStartPercent); + } + + public final class GenericShape implements androidx.compose.ui.graphics.Shape { + ctor public GenericShape(kotlin.jvm.functions.Function3 builder); + method public androidx.compose.ui.graphics.Outline createOutline(long size, androidx.compose.ui.unit.LayoutDirection layoutDirection, androidx.compose.ui.unit.Density density); + } + + public final class RoundedCornerShape extends androidx.compose.foundation.shape.CornerBasedShape { + ctor public RoundedCornerShape(androidx.compose.foundation.shape.CornerSize topStart, androidx.compose.foundation.shape.CornerSize topEnd, androidx.compose.foundation.shape.CornerSize bottomEnd, androidx.compose.foundation.shape.CornerSize bottomStart); + method public androidx.compose.foundation.shape.RoundedCornerShape copy(androidx.compose.foundation.shape.CornerSize topStart, androidx.compose.foundation.shape.CornerSize topEnd, androidx.compose.foundation.shape.CornerSize bottomEnd, androidx.compose.foundation.shape.CornerSize bottomStart); + method public androidx.compose.ui.graphics.Outline createOutline(long size, float topStart, float topEnd, float bottomEnd, float bottomStart, androidx.compose.ui.unit.LayoutDirection layoutDirection); + } + + public final class RoundedCornerShapeKt { + method public static androidx.compose.foundation.shape.RoundedCornerShape RoundedCornerShape(androidx.compose.foundation.shape.CornerSize corner); + method public static androidx.compose.foundation.shape.RoundedCornerShape RoundedCornerShape(float size); + method public static androidx.compose.foundation.shape.RoundedCornerShape RoundedCornerShape(float size); + method public static androidx.compose.foundation.shape.RoundedCornerShape RoundedCornerShape(optional float topStart, optional float topEnd, optional float bottomEnd, optional float bottomStart); + method public static androidx.compose.foundation.shape.RoundedCornerShape RoundedCornerShape(optional float topStart, optional float topEnd, optional float bottomEnd, optional float bottomStart); + method public static androidx.compose.foundation.shape.RoundedCornerShape RoundedCornerShape(int percent); + method public static androidx.compose.foundation.shape.RoundedCornerShape RoundedCornerShape(optional @IntRange(from=0L, to=100L) int topStartPercent, optional @IntRange(from=0L, to=100L) int topEndPercent, optional @IntRange(from=0L, to=100L) int bottomEndPercent, optional @IntRange(from=0L, to=100L) int bottomStartPercent); + method public static androidx.compose.foundation.shape.RoundedCornerShape getCircleShape(); + property public static final androidx.compose.foundation.shape.RoundedCornerShape CircleShape; + } + +} + +package androidx.compose.foundation.text { + + public final class BasicSecureTextFieldKt { + method @androidx.compose.runtime.Composable public static void BasicSecureTextField(androidx.compose.foundation.text.input.TextFieldState state, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.text.input.InputTransformation? inputTransformation, optional androidx.compose.ui.text.TextStyle textStyle, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.input.KeyboardActionHandler? onKeyboardAction, optional kotlin.jvm.functions.Function2,kotlin.Unit>? onTextLayout, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.ui.graphics.Brush cursorBrush, optional androidx.compose.foundation.text.input.TextFieldDecorator? decorator, optional int textObfuscationMode, optional char textObfuscationCharacter); + } + + public final class BasicTextFieldKt { + method @androidx.compose.runtime.Composable public static void BasicTextField(androidx.compose.foundation.text.input.TextFieldState state, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.foundation.text.input.InputTransformation? inputTransformation, optional androidx.compose.ui.text.TextStyle textStyle, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.input.KeyboardActionHandler? onKeyboardAction, optional androidx.compose.foundation.text.input.TextFieldLineLimits lineLimits, optional kotlin.jvm.functions.Function2,kotlin.Unit>? onTextLayout, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.ui.graphics.Brush cursorBrush, optional androidx.compose.foundation.text.input.OutputTransformation? outputTransformation, optional androidx.compose.foundation.text.input.TextFieldDecorator? decorator, optional androidx.compose.foundation.ScrollState scrollState); + method @Deprecated @androidx.compose.runtime.Composable public static void BasicTextField(androidx.compose.ui.text.input.TextFieldValue value, kotlin.jvm.functions.Function1 onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional kotlin.jvm.functions.Function1 onTextLayout, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Brush cursorBrush, optional kotlin.jvm.functions.Function1,kotlin.Unit> decorationBox); + method @androidx.compose.runtime.Composable public static void BasicTextField(androidx.compose.ui.text.input.TextFieldValue value, kotlin.jvm.functions.Function1 onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional int minLines, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional kotlin.jvm.functions.Function1 onTextLayout, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.ui.graphics.Brush cursorBrush, optional kotlin.jvm.functions.Function1,kotlin.Unit> decorationBox); + method @Deprecated @androidx.compose.runtime.Composable public static void BasicTextField(String value, kotlin.jvm.functions.Function1 onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional kotlin.jvm.functions.Function1 onTextLayout, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Brush cursorBrush, optional kotlin.jvm.functions.Function1,kotlin.Unit> decorationBox); + method @androidx.compose.runtime.Composable public static void BasicTextField(String value, kotlin.jvm.functions.Function1 onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional int minLines, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional kotlin.jvm.functions.Function1 onTextLayout, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.ui.graphics.Brush cursorBrush, optional kotlin.jvm.functions.Function1,kotlin.Unit> decorationBox); + } + + public final class BasicTextKt { + method @Deprecated @androidx.compose.runtime.Composable public static void BasicText(androidx.compose.ui.text.AnnotatedString text, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.text.TextStyle style, optional kotlin.jvm.functions.Function1? onTextLayout, optional int overflow, optional boolean softWrap, optional int maxLines, optional int minLines, optional java.util.Map inlineContent); + method @androidx.compose.runtime.Composable public static void BasicText(androidx.compose.ui.text.AnnotatedString text, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.text.TextStyle style, optional kotlin.jvm.functions.Function1? onTextLayout, optional int overflow, optional boolean softWrap, optional int maxLines, optional int minLines, optional java.util.Map inlineContent, optional androidx.compose.ui.graphics.ColorProducer? color); + method @Deprecated @androidx.compose.runtime.Composable public static void BasicText(androidx.compose.ui.text.AnnotatedString text, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.text.TextStyle style, optional kotlin.jvm.functions.Function1? onTextLayout, optional int overflow, optional boolean softWrap, optional int maxLines, optional java.util.Map inlineContent); + method @Deprecated @androidx.compose.runtime.Composable public static void BasicText(String text, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.text.TextStyle style, optional kotlin.jvm.functions.Function1? onTextLayout, optional int overflow, optional boolean softWrap, optional int maxLines); + method @Deprecated @androidx.compose.runtime.Composable public static void BasicText(String text, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.text.TextStyle style, optional kotlin.jvm.functions.Function1? onTextLayout, optional int overflow, optional boolean softWrap, optional int maxLines, optional int minLines); + method @androidx.compose.runtime.Composable public static void BasicText(String text, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.text.TextStyle style, optional kotlin.jvm.functions.Function1? onTextLayout, optional int overflow, optional boolean softWrap, optional int maxLines, optional int minLines, optional androidx.compose.ui.graphics.ColorProducer? color); + } + + public final class ClickableTextKt { + method @Deprecated @androidx.compose.runtime.Composable public static void ClickableText(androidx.compose.ui.text.AnnotatedString text, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.text.TextStyle style, optional boolean softWrap, optional int overflow, optional int maxLines, optional kotlin.jvm.functions.Function1 onTextLayout, kotlin.jvm.functions.Function1 onClick); + method @Deprecated @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static void ClickableText(androidx.compose.ui.text.AnnotatedString text, kotlin.jvm.functions.Function1 onHover, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.text.TextStyle style, optional boolean softWrap, optional int overflow, optional int maxLines, optional kotlin.jvm.functions.Function1 onTextLayout, kotlin.jvm.functions.Function1 onClick); + } + + @androidx.compose.runtime.Immutable public final class InlineTextContent { + ctor public InlineTextContent(androidx.compose.ui.text.Placeholder placeholder, kotlin.jvm.functions.Function1 children); + method public kotlin.jvm.functions.Function1 getChildren(); + method public androidx.compose.ui.text.Placeholder getPlaceholder(); + property public final kotlin.jvm.functions.Function1 children; + property public final androidx.compose.ui.text.Placeholder placeholder; + } + + public final class InlineTextContentKt { + method public static void appendInlineContent(androidx.compose.ui.text.AnnotatedString.Builder, String id, optional String alternateText); + } + + @SuppressCompatibility @kotlin.RequiresOptIn(message="Internal/Unstable API for use only between foundation modules sharing " + "the same exact version, subject to change without notice.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER, kotlin.annotation.AnnotationTarget.PROPERTY_SETTER}) public @interface InternalFoundationTextApi { + } + + public interface KeyboardActionScope { + method public void defaultKeyboardAction(int imeAction); + } + + @androidx.compose.runtime.Stable public final class KeyboardActions { + ctor public KeyboardActions(optional kotlin.jvm.functions.Function1? onDone, optional kotlin.jvm.functions.Function1? onGo, optional kotlin.jvm.functions.Function1? onNext, optional kotlin.jvm.functions.Function1? onPrevious, optional kotlin.jvm.functions.Function1? onSearch, optional kotlin.jvm.functions.Function1? onSend); + method public kotlin.jvm.functions.Function1? getOnDone(); + method public kotlin.jvm.functions.Function1? getOnGo(); + method public kotlin.jvm.functions.Function1? getOnNext(); + method public kotlin.jvm.functions.Function1? getOnPrevious(); + method public kotlin.jvm.functions.Function1? getOnSearch(); + method public kotlin.jvm.functions.Function1? getOnSend(); + property public final kotlin.jvm.functions.Function1? onDone; + property public final kotlin.jvm.functions.Function1? onGo; + property public final kotlin.jvm.functions.Function1? onNext; + property public final kotlin.jvm.functions.Function1? onPrevious; + property public final kotlin.jvm.functions.Function1? onSearch; + property public final kotlin.jvm.functions.Function1? onSend; + field public static final androidx.compose.foundation.text.KeyboardActions.Companion Companion; + } + + public static final class KeyboardActions.Companion { + method public androidx.compose.foundation.text.KeyboardActions getDefault(); + property public final androidx.compose.foundation.text.KeyboardActions Default; + } + + public final class KeyboardActionsKt { + method public static androidx.compose.foundation.text.KeyboardActions KeyboardActions(kotlin.jvm.functions.Function1 onAny); + } + + @androidx.compose.runtime.Immutable public final class KeyboardOptions { + ctor @Deprecated public KeyboardOptions(optional int capitalization, optional boolean autoCorrect, optional int keyboardType, optional int imeAction); + ctor @Deprecated public KeyboardOptions(optional int capitalization, optional boolean autoCorrect, optional int keyboardType, optional int imeAction, optional androidx.compose.ui.text.input.PlatformImeOptions? platformImeOptions); + ctor @Deprecated public KeyboardOptions(optional int capitalization, boolean autoCorrect, optional int keyboardType, optional int imeAction, optional androidx.compose.ui.text.input.PlatformImeOptions? platformImeOptions, optional Boolean? showKeyboardOnFocus, optional androidx.compose.ui.text.intl.LocaleList? hintLocales); + ctor public KeyboardOptions(optional int capitalization, optional Boolean? autoCorrectEnabled, optional int keyboardType, optional int imeAction, optional androidx.compose.ui.text.input.PlatformImeOptions? platformImeOptions, optional Boolean? showKeyboardOnFocus, optional androidx.compose.ui.text.intl.LocaleList? hintLocales); + method @Deprecated public androidx.compose.foundation.text.KeyboardOptions copy(optional int capitalization, optional boolean autoCorrect, optional int keyboardType, optional int imeAction); + method @Deprecated public androidx.compose.foundation.text.KeyboardOptions copy(optional int capitalization, optional boolean autoCorrect, optional int keyboardType, optional int imeAction, optional androidx.compose.ui.text.input.PlatformImeOptions? platformImeOptions); + method @Deprecated public androidx.compose.foundation.text.KeyboardOptions copy(optional int capitalization, optional boolean autoCorrect, optional int keyboardType, optional int imeAction, optional androidx.compose.ui.text.input.PlatformImeOptions? platformImeOptions, optional Boolean? showKeyboardOnFocus, optional androidx.compose.ui.text.intl.LocaleList? hintLocales); + method public androidx.compose.foundation.text.KeyboardOptions copy(optional int capitalization, optional Boolean? autoCorrectEnabled, optional int keyboardType, optional int imeAction, optional androidx.compose.ui.text.input.PlatformImeOptions? platformImeOptions, optional Boolean? showKeyboardOnFocus, optional androidx.compose.ui.text.intl.LocaleList? hintLocales); + method @Deprecated public boolean getAutoCorrect(); + method public Boolean? getAutoCorrectEnabled(); + method public int getCapitalization(); + method public androidx.compose.ui.text.intl.LocaleList? getHintLocales(); + method public int getImeAction(); + method public int getKeyboardType(); + method public androidx.compose.ui.text.input.PlatformImeOptions? getPlatformImeOptions(); + method public boolean getShouldShowKeyboardOnFocus(); + method public Boolean? getShowKeyboardOnFocus(); + method public androidx.compose.foundation.text.KeyboardOptions merge(androidx.compose.foundation.text.KeyboardOptions? other); + property @Deprecated public final boolean autoCorrect; + property public final Boolean? autoCorrectEnabled; + property public final int capitalization; + property public final androidx.compose.ui.text.intl.LocaleList? hintLocales; + property public final int imeAction; + property public final int keyboardType; + property public final androidx.compose.ui.text.input.PlatformImeOptions? platformImeOptions; + property public boolean shouldShowKeyboardOnFocus; + property public final Boolean? showKeyboardOnFocus; + field public static final androidx.compose.foundation.text.KeyboardOptions.Companion Companion; + } + + public static final class KeyboardOptions.Companion { + method public androidx.compose.foundation.text.KeyboardOptions getDefault(); + property public final androidx.compose.foundation.text.KeyboardOptions Default; + } + +} + +package androidx.compose.foundation.text.handwriting { + + public final class HandwritingDetector_androidKt { + method public static androidx.compose.ui.Modifier handwritingDetector(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function0 callback); + } + + public final class HandwritingHandler_androidKt { + method public static androidx.compose.ui.Modifier handwritingHandler(androidx.compose.ui.Modifier); + } + +} + +package androidx.compose.foundation.text.input { + + @androidx.compose.runtime.Stable public fun interface InputTransformation { + method public default void applySemantics(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public default androidx.compose.foundation.text.KeyboardOptions? getKeyboardOptions(); + method public void transformInput(androidx.compose.foundation.text.input.TextFieldBuffer); + property public default androidx.compose.foundation.text.KeyboardOptions? keyboardOptions; + field public static final androidx.compose.foundation.text.input.InputTransformation.Companion Companion; + } + + public static final class InputTransformation.Companion implements androidx.compose.foundation.text.input.InputTransformation { + method public void transformInput(androidx.compose.foundation.text.input.TextFieldBuffer); + } + + public final class InputTransformationKt { + method @androidx.compose.runtime.Stable public static androidx.compose.foundation.text.input.InputTransformation allCaps(androidx.compose.foundation.text.input.InputTransformation, androidx.compose.ui.text.intl.Locale locale); + method @androidx.compose.runtime.Stable public static androidx.compose.foundation.text.input.InputTransformation byValue(androidx.compose.foundation.text.input.InputTransformation, kotlin.jvm.functions.Function2 transformation); + method @androidx.compose.runtime.Stable public static androidx.compose.foundation.text.input.InputTransformation maxLength(androidx.compose.foundation.text.input.InputTransformation, int maxLength); + method @androidx.compose.runtime.Stable public static androidx.compose.foundation.text.input.InputTransformation then(androidx.compose.foundation.text.input.InputTransformation, androidx.compose.foundation.text.input.InputTransformation next); + } + + @androidx.compose.runtime.Stable public fun interface KeyboardActionHandler { + method public void onKeyboardAction(kotlin.jvm.functions.Function0 performDefaultAction); + } + + @androidx.compose.runtime.Stable public fun interface OutputTransformation { + method public void transformOutput(androidx.compose.foundation.text.input.TextFieldBuffer); + } + + public final class TextFieldBuffer implements java.lang.Appendable { + method public Appendable append(char char); + method public Appendable append(CharSequence? text); + method public Appendable append(CharSequence? text, int start, int end); + method public CharSequence asCharSequence(); + method public char charAt(int index); + method public androidx.compose.foundation.text.input.TextFieldBuffer.ChangeList getChanges(); + method public int getLength(); + method public long getOriginalSelection(); + method public CharSequence getOriginalText(); + method public long getSelection(); + method public boolean hasSelection(); + method public void placeCursorAfterCharAt(int index); + method public void placeCursorBeforeCharAt(int index); + method public void replace(int start, int end, CharSequence text); + method public void revertAllChanges(); + method public void setSelection(long); + property @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public final androidx.compose.foundation.text.input.TextFieldBuffer.ChangeList changes; + property public final boolean hasSelection; + property public final int length; + property public final long originalSelection; + property public final CharSequence originalText; + property public final long selection; + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static interface TextFieldBuffer.ChangeList { + method public int getChangeCount(); + method public long getOriginalRange(int changeIndex); + method public long getRange(int changeIndex); + property public abstract int changeCount; + } + + public final class TextFieldBufferKt { + method public static void delete(androidx.compose.foundation.text.input.TextFieldBuffer, int start, int end); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static inline void forEachChange(androidx.compose.foundation.text.input.TextFieldBuffer.ChangeList, kotlin.jvm.functions.Function2 block); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static inline void forEachChangeReversed(androidx.compose.foundation.text.input.TextFieldBuffer.ChangeList, kotlin.jvm.functions.Function2 block); + method public static void insert(androidx.compose.foundation.text.input.TextFieldBuffer, int index, String text); + method public static void placeCursorAtEnd(androidx.compose.foundation.text.input.TextFieldBuffer); + method public static void selectAll(androidx.compose.foundation.text.input.TextFieldBuffer); + } + + public fun interface TextFieldDecorator { + method @androidx.compose.runtime.Composable public void Decoration(kotlin.jvm.functions.Function0 innerTextField); + } + + @androidx.compose.runtime.Stable public sealed interface TextFieldLineLimits { + field public static final androidx.compose.foundation.text.input.TextFieldLineLimits.Companion Companion; + } + + public static final class TextFieldLineLimits.Companion { + method public androidx.compose.foundation.text.input.TextFieldLineLimits getDefault(); + property public final androidx.compose.foundation.text.input.TextFieldLineLimits Default; + } + + @androidx.compose.runtime.Immutable public static final class TextFieldLineLimits.MultiLine implements androidx.compose.foundation.text.input.TextFieldLineLimits { + ctor public TextFieldLineLimits.MultiLine(optional int minHeightInLines, optional int maxHeightInLines); + method public int getMaxHeightInLines(); + method public int getMinHeightInLines(); + property public final int maxHeightInLines; + property public final int minHeightInLines; + } + + public static final class TextFieldLineLimits.SingleLine implements androidx.compose.foundation.text.input.TextFieldLineLimits { + field public static final androidx.compose.foundation.text.input.TextFieldLineLimits.SingleLine INSTANCE; + } + + @androidx.compose.runtime.Stable public final class TextFieldState { + ctor public TextFieldState(optional String initialText, optional long initialSelection); + method public inline void edit(kotlin.jvm.functions.Function1 block); + method public androidx.compose.ui.text.TextRange? getComposition(); + method public long getSelection(); + method public CharSequence getText(); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public androidx.compose.foundation.text.input.UndoState getUndoState(); + property public final androidx.compose.ui.text.TextRange? composition; + property public final long selection; + property public final CharSequence text; + property @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public final androidx.compose.foundation.text.input.UndoState undoState; + } + + public static final class TextFieldState.Saver implements androidx.compose.runtime.saveable.Saver { + method public androidx.compose.foundation.text.input.TextFieldState? restore(Object value); + method public Object? save(androidx.compose.runtime.saveable.SaverScope, androidx.compose.foundation.text.input.TextFieldState value); + field public static final androidx.compose.foundation.text.input.TextFieldState.Saver INSTANCE; + } + + public final class TextFieldStateKt { + method public static void clearText(androidx.compose.foundation.text.input.TextFieldState); + method @androidx.compose.runtime.Composable public static androidx.compose.foundation.text.input.TextFieldState rememberTextFieldState(optional String initialText, optional long initialSelection); + method public static void setTextAndPlaceCursorAtEnd(androidx.compose.foundation.text.input.TextFieldState, String text); + method public static void setTextAndSelectAll(androidx.compose.foundation.text.input.TextFieldState, String text); + } + + @kotlin.jvm.JvmInline public final value class TextObfuscationMode { + method public int getValue(); + property public final int value; + field public static final androidx.compose.foundation.text.input.TextObfuscationMode.Companion Companion; + } + + public static final class TextObfuscationMode.Companion { + method public int getHidden(); + method public int getRevealLastTyped(); + method public int getVisible(); + property public final int Hidden; + property public final int RevealLastTyped; + property public final int Visible; + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public final class UndoState { + method public void clearHistory(); + method public boolean getCanRedo(); + method public boolean getCanUndo(); + method public void redo(); + method public void undo(); + property public final boolean canRedo; + property public final boolean canUndo; + } + +} + +package androidx.compose.foundation.text.selection { + + public final class SelectionContainerKt { + method @androidx.compose.runtime.Composable public static void DisableSelection(kotlin.jvm.functions.Function0 content); + method @androidx.compose.runtime.Composable public static void SelectionContainer(optional androidx.compose.ui.Modifier modifier, kotlin.jvm.functions.Function0 content); + } + + @androidx.compose.runtime.Immutable public final class TextSelectionColors { + ctor public TextSelectionColors(long handleColor, long backgroundColor); + method public long getBackgroundColor(); + method public long getHandleColor(); + property public final long backgroundColor; + property public final long handleColor; + } + + public final class TextSelectionColorsKt { + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalTextSelectionColors(); + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalTextSelectionColors; + } + +} + diff --git a/compose/foundation/foundation/api/res-1.7.0-beta07.txt b/compose/foundation/foundation/api/res-1.7.0-beta07.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/compose/foundation/foundation/api/restricted_1.7.0-beta07.txt b/compose/foundation/foundation/api/restricted_1.7.0-beta07.txt new file mode 100644 index 0000000000000..1cdeea085e633 --- /dev/null +++ b/compose/foundation/foundation/api/restricted_1.7.0-beta07.txt @@ -0,0 +1,1876 @@ +// Signature format: 4.0 +package androidx.compose.foundation { + + public interface AndroidExternalSurfaceScope { + method public void onSurface(kotlin.jvm.functions.Function5,? extends java.lang.Object?> onSurface); + } + + @kotlin.jvm.JvmInline public final value class AndroidExternalSurfaceZOrder { + method public int getZOrder(); + property public final int zOrder; + field public static final androidx.compose.foundation.AndroidExternalSurfaceZOrder.Companion Companion; + } + + public static final class AndroidExternalSurfaceZOrder.Companion { + method public int getBehind(); + method public int getMediaOverlay(); + method public int getOnTop(); + property public final int Behind; + property public final int MediaOverlay; + property public final int OnTop; + } + + public final class AndroidExternalSurface_androidKt { + method @androidx.compose.runtime.Composable public static void AndroidEmbeddedExternalSurface(optional androidx.compose.ui.Modifier modifier, optional boolean isOpaque, optional long surfaceSize, optional float[]? transform, kotlin.jvm.functions.Function1 onInit); + method @androidx.compose.runtime.Composable public static void AndroidExternalSurface(optional androidx.compose.ui.Modifier modifier, optional boolean isOpaque, optional long surfaceSize, optional int zOrder, optional boolean isSecure, kotlin.jvm.functions.Function1 onInit); + } + + public final class BackgroundKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier background(androidx.compose.ui.Modifier, androidx.compose.ui.graphics.Brush brush, optional androidx.compose.ui.graphics.Shape shape, optional @FloatRange(from=0.0, to=1.0) float alpha); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier background(androidx.compose.ui.Modifier, long color, optional androidx.compose.ui.graphics.Shape shape); + } + + public final class BasicMarqueeKt { + method public static androidx.compose.foundation.MarqueeSpacing MarqueeSpacing(float spacing); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier basicMarquee(androidx.compose.ui.Modifier, optional int iterations, optional int animationMode, optional int repeatDelayMillis, optional int initialDelayMillis, optional androidx.compose.foundation.MarqueeSpacing spacing, optional float velocity); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public final class BasicTooltipDefaults { + method public androidx.compose.foundation.MutatorMutex getGlobalMutatorMutex(); + property public final androidx.compose.foundation.MutatorMutex GlobalMutatorMutex; + field public static final androidx.compose.foundation.BasicTooltipDefaults INSTANCE; + field public static final long TooltipDuration = 1500L; // 0x5dcL + } + + public final class BasicTooltipKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public static androidx.compose.foundation.BasicTooltipState BasicTooltipState(optional boolean initialIsVisible, optional boolean isPersistent, optional androidx.compose.foundation.MutatorMutex mutatorMutex); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static androidx.compose.foundation.BasicTooltipState rememberBasicTooltipState(optional boolean initialIsVisible, optional boolean isPersistent, optional androidx.compose.foundation.MutatorMutex mutatorMutex); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public interface BasicTooltipState { + method public void dismiss(); + method public boolean isPersistent(); + method public boolean isVisible(); + method public void onDispose(); + method public suspend Object? show(optional androidx.compose.foundation.MutatePriority mutatePriority, kotlin.coroutines.Continuation); + property public abstract boolean isPersistent; + property public abstract boolean isVisible; + } + + public final class BasicTooltip_androidKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static void BasicTooltipBox(androidx.compose.ui.window.PopupPositionProvider positionProvider, kotlin.jvm.functions.Function0 tooltip, androidx.compose.foundation.BasicTooltipState state, optional androidx.compose.ui.Modifier modifier, optional boolean focusable, optional boolean enableUserInput, kotlin.jvm.functions.Function0 content); + } + + public final class BorderKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier border(androidx.compose.ui.Modifier, androidx.compose.foundation.BorderStroke border, optional androidx.compose.ui.graphics.Shape shape); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier border(androidx.compose.ui.Modifier, float width, androidx.compose.ui.graphics.Brush brush, androidx.compose.ui.graphics.Shape shape); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier border(androidx.compose.ui.Modifier, float width, long color, optional androidx.compose.ui.graphics.Shape shape); + } + + @androidx.compose.runtime.Immutable public final class BorderStroke { + ctor public BorderStroke(float width, androidx.compose.ui.graphics.Brush brush); + method public androidx.compose.foundation.BorderStroke copy(optional float width, optional androidx.compose.ui.graphics.Brush brush); + method public androidx.compose.ui.graphics.Brush getBrush(); + method public float getWidth(); + property public final androidx.compose.ui.graphics.Brush brush; + property public final float width; + } + + public final class BorderStrokeKt { + method @androidx.compose.runtime.Stable public static androidx.compose.foundation.BorderStroke BorderStroke(float width, long color); + } + + public final class CanvasKt { + method @androidx.compose.runtime.Composable public static void Canvas(androidx.compose.ui.Modifier modifier, String contentDescription, kotlin.jvm.functions.Function1 onDraw); + method @androidx.compose.runtime.Composable public static void Canvas(androidx.compose.ui.Modifier modifier, kotlin.jvm.functions.Function1 onDraw); + } + + public final class CheckScrollableContainerConstraintsKt { + method public static void checkScrollableContainerConstraints(long constraints, androidx.compose.foundation.gestures.Orientation orientation); + } + + public final class ClickableKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.foundation.CombinedClickableNode CombinedClickableNode(kotlin.jvm.functions.Function0 onClick, String? onLongClickLabel, kotlin.jvm.functions.Function0? onLongClick, kotlin.jvm.functions.Function0? onDoubleClick, androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, androidx.compose.foundation.IndicationNodeFactory? indicationNodeFactory, boolean enabled, String? onClickLabel, androidx.compose.ui.semantics.Role? role); + method public static androidx.compose.ui.Modifier clickable(androidx.compose.ui.Modifier, androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, androidx.compose.foundation.Indication? indication, optional boolean enabled, optional String? onClickLabel, optional androidx.compose.ui.semantics.Role? role, kotlin.jvm.functions.Function0 onClick); + method public static androidx.compose.ui.Modifier clickable(androidx.compose.ui.Modifier, optional boolean enabled, optional String? onClickLabel, optional androidx.compose.ui.semantics.Role? role, kotlin.jvm.functions.Function0 onClick); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier combinedClickable(androidx.compose.ui.Modifier, androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, androidx.compose.foundation.Indication? indication, optional boolean enabled, optional String? onClickLabel, optional androidx.compose.ui.semantics.Role? role, optional String? onLongClickLabel, optional kotlin.jvm.functions.Function0? onLongClick, optional kotlin.jvm.functions.Function0? onDoubleClick, kotlin.jvm.functions.Function0 onClick); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier combinedClickable(androidx.compose.ui.Modifier, optional boolean enabled, optional String? onClickLabel, optional androidx.compose.ui.semantics.Role? role, optional String? onLongClickLabel, optional kotlin.jvm.functions.Function0? onLongClick, optional kotlin.jvm.functions.Function0? onDoubleClick, kotlin.jvm.functions.Function0 onClick); + } + + public final class ClipScrollableContainerKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier clipScrollableContainer(androidx.compose.ui.Modifier, androidx.compose.foundation.gestures.Orientation orientation); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public sealed interface CombinedClickableNode extends androidx.compose.ui.node.PointerInputModifierNode { + method public void update(kotlin.jvm.functions.Function0 onClick, String? onLongClickLabel, kotlin.jvm.functions.Function0? onLongClick, kotlin.jvm.functions.Function0? onDoubleClick, androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, androidx.compose.foundation.IndicationNodeFactory? indicationNodeFactory, boolean enabled, String? onClickLabel, androidx.compose.ui.semantics.Role? role); + } + + public final class DarkThemeKt { + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static boolean isSystemInDarkTheme(); + } + + public final class ExcludeFromSystemGestureKt { + method @Deprecated public static androidx.compose.ui.Modifier excludeFromSystemGesture(androidx.compose.ui.Modifier); + method @Deprecated public static androidx.compose.ui.Modifier excludeFromSystemGesture(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 exclusion); + } + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This foundation API is experimental and is likely to change or be removed in the " + "future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalFoundationApi { + } + + public final class FocusableKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier focusGroup(androidx.compose.ui.Modifier); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier focusable(androidx.compose.ui.Modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource); + } + + public final class FocusedBoundsKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier onFocusedBoundsChanged(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 onPositioned); + } + + public final class HoverableKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier hoverable(androidx.compose.ui.Modifier, androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional boolean enabled); + } + + public final class ImageKt { + method @Deprecated @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void Image(androidx.compose.ui.graphics.ImageBitmap bitmap, String? contentDescription, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.Alignment alignment, optional androidx.compose.ui.layout.ContentScale contentScale, optional float alpha, optional androidx.compose.ui.graphics.ColorFilter? colorFilter); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void Image(androidx.compose.ui.graphics.ImageBitmap bitmap, String? contentDescription, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.Alignment alignment, optional androidx.compose.ui.layout.ContentScale contentScale, optional float alpha, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int filterQuality); + method @androidx.compose.runtime.Composable public static void Image(androidx.compose.ui.graphics.painter.Painter painter, String? contentDescription, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.Alignment alignment, optional androidx.compose.ui.layout.ContentScale contentScale, optional float alpha, optional androidx.compose.ui.graphics.ColorFilter? colorFilter); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void Image(androidx.compose.ui.graphics.vector.ImageVector imageVector, String? contentDescription, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.Alignment alignment, optional androidx.compose.ui.layout.ContentScale contentScale, optional float alpha, optional androidx.compose.ui.graphics.ColorFilter? colorFilter); + } + + @androidx.compose.runtime.Stable public interface Indication { + method @Deprecated @androidx.compose.runtime.Composable public default androidx.compose.foundation.IndicationInstance rememberUpdatedInstance(androidx.compose.foundation.interaction.InteractionSource interactionSource); + } + + @Deprecated public interface IndicationInstance { + method @Deprecated public void drawIndication(androidx.compose.ui.graphics.drawscope.ContentDrawScope); + } + + public final class IndicationKt { + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalIndication(); + method public static androidx.compose.ui.Modifier indication(androidx.compose.ui.Modifier, androidx.compose.foundation.interaction.InteractionSource interactionSource, androidx.compose.foundation.Indication? indication); + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalIndication; + } + + @androidx.compose.runtime.Stable public interface IndicationNodeFactory extends androidx.compose.foundation.Indication { + method public androidx.compose.ui.node.DelegatableNode create(androidx.compose.foundation.interaction.InteractionSource interactionSource); + method public boolean equals(Object? other); + method public int hashCode(); + } + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This API is internal to library.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER, kotlin.annotation.AnnotationTarget.PROPERTY_SETTER}) public @interface InternalFoundationApi { + } + + public final class Magnifier_androidKt { + method public static androidx.compose.ui.Modifier magnifier(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 sourceCenter, optional kotlin.jvm.functions.Function1? magnifierCenter, optional kotlin.jvm.functions.Function1? onSizeChanged, optional float zoom, optional long size, optional float cornerRadius, optional float elevation, optional boolean clip); + } + + @kotlin.jvm.JvmInline public final value class MarqueeAnimationMode { + field public static final androidx.compose.foundation.MarqueeAnimationMode.Companion Companion; + } + + public static final class MarqueeAnimationMode.Companion { + method public int getImmediately(); + method public int getWhileFocused(); + property public final int Immediately; + property public final int WhileFocused; + } + + public final class MarqueeDefaults { + method public int getIterations(); + method public int getRepeatDelayMillis(); + method public androidx.compose.foundation.MarqueeSpacing getSpacing(); + method public float getVelocity(); + property public final int Iterations; + property public final int RepeatDelayMillis; + property public final androidx.compose.foundation.MarqueeSpacing Spacing; + property public final float Velocity; + field public static final androidx.compose.foundation.MarqueeDefaults INSTANCE; + } + + @androidx.compose.runtime.Stable public fun interface MarqueeSpacing { + method public int calculateSpacing(androidx.compose.ui.unit.Density, int contentWidth, int containerWidth); + field public static final androidx.compose.foundation.MarqueeSpacing.Companion Companion; + } + + public static final class MarqueeSpacing.Companion { + method public androidx.compose.foundation.MarqueeSpacing fractionOfContainer(float fraction); + } + + public enum MutatePriority { + enum_constant public static final androidx.compose.foundation.MutatePriority Default; + enum_constant public static final androidx.compose.foundation.MutatePriority PreventUserInput; + enum_constant public static final androidx.compose.foundation.MutatePriority UserInput; + } + + @androidx.compose.runtime.Stable public final class MutatorMutex { + ctor public MutatorMutex(); + method public suspend Object? mutate(optional androidx.compose.foundation.MutatePriority priority, kotlin.jvm.functions.Function1,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + method public suspend Object? mutateWith(T receiver, optional androidx.compose.foundation.MutatePriority priority, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + method @kotlin.PublishedApi internal boolean tryLock(); + method public inline boolean tryMutate(kotlin.jvm.functions.Function0 block); + method @kotlin.PublishedApi internal void unlock(); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public final class OverscrollConfiguration { + ctor public OverscrollConfiguration(optional long glowColor, optional androidx.compose.foundation.layout.PaddingValues drawPadding); + method public androidx.compose.foundation.layout.PaddingValues getDrawPadding(); + method public long getGlowColor(); + property public final androidx.compose.foundation.layout.PaddingValues drawPadding; + property public final long glowColor; + } + + public final class OverscrollConfiguration_androidKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.runtime.ProvidableCompositionLocal getLocalOverscrollConfiguration(); + property @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static final androidx.compose.runtime.ProvidableCompositionLocal LocalOverscrollConfiguration; + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public interface OverscrollEffect { + method public suspend Object? applyToFling(long velocity, kotlin.jvm.functions.Function2,? extends java.lang.Object?> performFling, kotlin.coroutines.Continuation); + method public long applyToScroll(long delta, int source, kotlin.jvm.functions.Function1 performScroll); + method public androidx.compose.ui.Modifier getEffectModifier(); + method public boolean isInProgress(); + property public abstract androidx.compose.ui.Modifier effectModifier; + property public abstract boolean isInProgress; + } + + public final class OverscrollKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier overscroll(androidx.compose.ui.Modifier, androidx.compose.foundation.OverscrollEffect overscrollEffect); + } + + public final class PreferKeepClear_androidKt { + method public static androidx.compose.ui.Modifier preferKeepClear(androidx.compose.ui.Modifier); + method public static androidx.compose.ui.Modifier preferKeepClear(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 rectProvider); + } + + public final class ProgressSemanticsKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier progressSemantics(androidx.compose.ui.Modifier); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier progressSemantics(androidx.compose.ui.Modifier, float value, optional kotlin.ranges.ClosedFloatingPointRange valueRange, optional @IntRange(from=0L) int steps); + } + + public final class ScrollKt { + method public static androidx.compose.ui.Modifier horizontalScroll(androidx.compose.ui.Modifier, androidx.compose.foundation.ScrollState state, optional boolean enabled, optional androidx.compose.foundation.gestures.FlingBehavior? flingBehavior, optional boolean reverseScrolling); + method @androidx.compose.runtime.Composable public static androidx.compose.foundation.ScrollState rememberScrollState(optional int initial); + method public static androidx.compose.ui.Modifier verticalScroll(androidx.compose.ui.Modifier, androidx.compose.foundation.ScrollState state, optional boolean enabled, optional androidx.compose.foundation.gestures.FlingBehavior? flingBehavior, optional boolean reverseScrolling); + } + + @androidx.compose.runtime.Stable public final class ScrollState implements androidx.compose.foundation.gestures.ScrollableState { + ctor public ScrollState(int initial); + method public suspend Object? animateScrollTo(int value, optional androidx.compose.animation.core.AnimationSpec animationSpec, kotlin.coroutines.Continuation); + method public float dispatchRawDelta(float delta); + method public androidx.compose.foundation.interaction.InteractionSource getInteractionSource(); + method public int getMaxValue(); + method public int getValue(); + method public int getViewportSize(); + method public boolean isScrollInProgress(); + method public suspend Object? scroll(androidx.compose.foundation.MutatePriority scrollPriority, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + method public suspend Object? scrollTo(int value, kotlin.coroutines.Continuation); + property public boolean canScrollBackward; + property public boolean canScrollForward; + property public final androidx.compose.foundation.interaction.InteractionSource interactionSource; + property public boolean isScrollInProgress; + property public boolean lastScrolledBackward; + property public boolean lastScrolledForward; + property public final int maxValue; + property public final int value; + property public final int viewportSize; + field public static final androidx.compose.foundation.ScrollState.Companion Companion; + } + + public static final class ScrollState.Companion { + method public androidx.compose.runtime.saveable.Saver getSaver(); + property public final androidx.compose.runtime.saveable.Saver Saver; + } + + public interface SurfaceCoroutineScope extends androidx.compose.foundation.SurfaceScope kotlinx.coroutines.CoroutineScope { + } + + public interface SurfaceScope { + method public void onChanged(android.view.Surface, kotlin.jvm.functions.Function3 onChanged); + method public void onDestroyed(android.view.Surface, kotlin.jvm.functions.Function1 onDestroyed); + } + + public final class SystemGestureExclusionKt { + method public static androidx.compose.ui.Modifier systemGestureExclusion(androidx.compose.ui.Modifier); + method public static androidx.compose.ui.Modifier systemGestureExclusion(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 exclusion); + } + +} + +package androidx.compose.foundation.content { + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public final class MediaType { + ctor public MediaType(String representation); + method public String getRepresentation(); + property public final String representation; + field public static final androidx.compose.foundation.content.MediaType.Companion Companion; + } + + public static final class MediaType.Companion { + method public androidx.compose.foundation.content.MediaType getAll(); + method public androidx.compose.foundation.content.MediaType getHtmlText(); + method public androidx.compose.foundation.content.MediaType getImage(); + method public androidx.compose.foundation.content.MediaType getPlainText(); + method public androidx.compose.foundation.content.MediaType getText(); + property public final androidx.compose.foundation.content.MediaType All; + property public final androidx.compose.foundation.content.MediaType HtmlText; + property public final androidx.compose.foundation.content.MediaType Image; + property public final androidx.compose.foundation.content.MediaType PlainText; + property public final androidx.compose.foundation.content.MediaType Text; + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public final class PlatformTransferableContent { + method public android.os.Bundle getExtras(); + method public android.net.Uri? getLinkUri(); + property public final android.os.Bundle extras; + property public final android.net.Uri? linkUri; + } + + public final class ReceiveContentKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier contentReceiver(androidx.compose.ui.Modifier, androidx.compose.foundation.content.ReceiveContentListener receiveContentListener); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public fun interface ReceiveContentListener { + method public default void onDragEnd(); + method public default void onDragEnter(); + method public default void onDragExit(); + method public default void onDragStart(); + method public androidx.compose.foundation.content.TransferableContent? onReceive(androidx.compose.foundation.content.TransferableContent transferableContent); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public final class TransferableContent { + method public androidx.compose.ui.platform.ClipEntry getClipEntry(); + method public androidx.compose.ui.platform.ClipMetadata getClipMetadata(); + method public androidx.compose.foundation.content.PlatformTransferableContent? getPlatformTransferableContent(); + method public int getSource(); + property public final androidx.compose.ui.platform.ClipEntry clipEntry; + property public final androidx.compose.ui.platform.ClipMetadata clipMetadata; + property public final androidx.compose.foundation.content.PlatformTransferableContent? platformTransferableContent; + property public final int source; + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @kotlin.jvm.JvmInline public static final value class TransferableContent.Source { + field public static final androidx.compose.foundation.content.TransferableContent.Source.Companion Companion; + } + + public static final class TransferableContent.Source.Companion { + method public int getClipboard(); + method public int getDragAndDrop(); + method public int getKeyboard(); + property public final int Clipboard; + property public final int DragAndDrop; + property public final int Keyboard; + } + + public final class TransferableContent_androidKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.foundation.content.TransferableContent? consume(androidx.compose.foundation.content.TransferableContent, kotlin.jvm.functions.Function1 predicate); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static boolean hasMediaType(androidx.compose.foundation.content.TransferableContent, androidx.compose.foundation.content.MediaType mediaType); + } + +} + +package androidx.compose.foundation.draganddrop { + + public final class AndroidDragAndDropSource_androidKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier dragAndDropSource(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block); + } + + public final class DragAndDropSourceKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier dragAndDropSource(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 drawDragDecoration, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public interface DragAndDropSourceScope extends androidx.compose.ui.input.pointer.PointerInputScope { + method public void startTransfer(androidx.compose.ui.draganddrop.DragAndDropTransferData transferData); + } + + public final class DragAndDropTargetKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier dragAndDropTarget(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 shouldStartDragAndDrop, androidx.compose.ui.draganddrop.DragAndDropTarget target); + } + +} + +package androidx.compose.foundation.gestures { + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public interface AnchoredDragScope { + method public void dragTo(float newOffset, optional float lastKnownVelocity); + } + + public final class AnchoredDraggableKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.foundation.gestures.DraggableAnchors DraggableAnchors(kotlin.jvm.functions.Function1,kotlin.Unit> builder); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier anchoredDraggable(androidx.compose.ui.Modifier, androidx.compose.foundation.gestures.AnchoredDraggableState state, androidx.compose.foundation.gestures.Orientation orientation, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.foundation.OverscrollEffect? overscrollEffect, optional boolean startDragImmediately); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier anchoredDraggable(androidx.compose.ui.Modifier, androidx.compose.foundation.gestures.AnchoredDraggableState state, boolean reverseDirection, androidx.compose.foundation.gestures.Orientation orientation, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.foundation.OverscrollEffect? overscrollEffect, optional boolean startDragImmediately); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static suspend Object? animateTo(androidx.compose.foundation.gestures.AnchoredDraggableState, T targetValue, kotlin.coroutines.Continuation); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static suspend Object? animateToWithDecay(androidx.compose.foundation.gestures.AnchoredDraggableState, T targetValue, float velocity, kotlin.coroutines.Continuation); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static suspend Object? snapTo(androidx.compose.foundation.gestures.AnchoredDraggableState, T targetValue, kotlin.coroutines.Continuation); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public final class AnchoredDraggableState { + ctor @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public AnchoredDraggableState(T initialValue, androidx.compose.foundation.gestures.DraggableAnchors anchors, kotlin.jvm.functions.Function1 positionalThreshold, kotlin.jvm.functions.Function0 velocityThreshold, androidx.compose.animation.core.AnimationSpec snapAnimationSpec, androidx.compose.animation.core.DecayAnimationSpec decayAnimationSpec, optional kotlin.jvm.functions.Function1 confirmValueChange); + ctor public AnchoredDraggableState(T initialValue, kotlin.jvm.functions.Function1 positionalThreshold, kotlin.jvm.functions.Function0 velocityThreshold, androidx.compose.animation.core.AnimationSpec snapAnimationSpec, androidx.compose.animation.core.DecayAnimationSpec decayAnimationSpec, optional kotlin.jvm.functions.Function1 confirmValueChange); + method public suspend Object? anchoredDrag(optional androidx.compose.foundation.MutatePriority dragPriority, kotlin.jvm.functions.Function3,? super kotlin.coroutines.Continuation,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + method public suspend Object? anchoredDrag(T targetValue, optional androidx.compose.foundation.MutatePriority dragPriority, kotlin.jvm.functions.Function4,? super T,? super kotlin.coroutines.Continuation,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + method public float dispatchRawDelta(float delta); + method public androidx.compose.foundation.gestures.DraggableAnchors getAnchors(); + method public T getCurrentValue(); + method public androidx.compose.animation.core.DecayAnimationSpec getDecayAnimationSpec(); + method public float getLastVelocity(); + method public float getOffset(); + method @Deprecated @FloatRange(from=0.0, to=1.0) public float getProgress(); + method public T getSettledValue(); + method public androidx.compose.animation.core.AnimationSpec getSnapAnimationSpec(); + method public T getTargetValue(); + method public boolean isAnimationRunning(); + method @FloatRange(from=0.0, to=1.0) public float progress(T from, T to); + method public float requireOffset(); + method public suspend Object? settle(float velocity, kotlin.coroutines.Continuation); + method public void updateAnchors(androidx.compose.foundation.gestures.DraggableAnchors newAnchors, optional T newTarget); + property public final androidx.compose.foundation.gestures.DraggableAnchors anchors; + property public final T currentValue; + property public final androidx.compose.animation.core.DecayAnimationSpec decayAnimationSpec; + property public final boolean isAnimationRunning; + property public final float lastVelocity; + property public final float offset; + property @Deprecated @FloatRange(from=0.0, to=1.0) public final float progress; + property public final T settledValue; + property public final androidx.compose.animation.core.AnimationSpec snapAnimationSpec; + property public final T targetValue; + field public static final androidx.compose.foundation.gestures.AnchoredDraggableState.Companion Companion; + } + + public static final class AnchoredDraggableState.Companion { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public androidx.compose.runtime.saveable.Saver,T> Saver(androidx.compose.animation.core.AnimationSpec snapAnimationSpec, androidx.compose.animation.core.DecayAnimationSpec decayAnimationSpec, kotlin.jvm.functions.Function1 positionalThreshold, kotlin.jvm.functions.Function0 velocityThreshold, optional kotlin.jvm.functions.Function1 confirmValueChange); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public interface BringIntoViewSpec { + method public default float calculateScrollDistance(float offset, float size, float containerSize); + method public default androidx.compose.animation.core.AnimationSpec getScrollAnimationSpec(); + property public default androidx.compose.animation.core.AnimationSpec scrollAnimationSpec; + field public static final androidx.compose.foundation.gestures.BringIntoViewSpec.Companion Companion; + } + + public static final class BringIntoViewSpec.Companion { + method public androidx.compose.animation.core.AnimationSpec getDefaultScrollAnimationSpec(); + property public final androidx.compose.animation.core.AnimationSpec DefaultScrollAnimationSpec; + } + + public final class BringIntoViewSpec_androidKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.runtime.ProvidableCompositionLocal getLocalBringIntoViewSpec(); + property @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static final androidx.compose.runtime.ProvidableCompositionLocal LocalBringIntoViewSpec; + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public interface Drag2DScope { + method public void dragBy(long pixels); + } + + public final class DragGestureDetectorKt { + method public static suspend Object? awaitDragOrCancellation(androidx.compose.ui.input.pointer.AwaitPointerEventScope, long pointerId, kotlin.coroutines.Continuation); + method public static suspend Object? awaitHorizontalDragOrCancellation(androidx.compose.ui.input.pointer.AwaitPointerEventScope, long pointerId, kotlin.coroutines.Continuation); + method public static suspend Object? awaitHorizontalTouchSlopOrCancellation(androidx.compose.ui.input.pointer.AwaitPointerEventScope, long pointerId, kotlin.jvm.functions.Function2 onTouchSlopReached, kotlin.coroutines.Continuation); + method public static suspend Object? awaitLongPressOrCancellation(androidx.compose.ui.input.pointer.AwaitPointerEventScope, long pointerId, kotlin.coroutines.Continuation); + method public static suspend Object? awaitTouchSlopOrCancellation(androidx.compose.ui.input.pointer.AwaitPointerEventScope, long pointerId, kotlin.jvm.functions.Function2 onTouchSlopReached, kotlin.coroutines.Continuation); + method public static suspend Object? awaitVerticalDragOrCancellation(androidx.compose.ui.input.pointer.AwaitPointerEventScope, long pointerId, kotlin.coroutines.Continuation); + method public static suspend Object? awaitVerticalTouchSlopOrCancellation(androidx.compose.ui.input.pointer.AwaitPointerEventScope, long pointerId, kotlin.jvm.functions.Function2 onTouchSlopReached, kotlin.coroutines.Continuation); + method public static suspend Object? detectDragGestures(androidx.compose.ui.input.pointer.PointerInputScope, optional kotlin.jvm.functions.Function1 onDragStart, optional kotlin.jvm.functions.Function0 onDragEnd, optional kotlin.jvm.functions.Function0 onDragCancel, kotlin.jvm.functions.Function2 onDrag, kotlin.coroutines.Continuation); + method public static suspend Object? detectDragGesturesAfterLongPress(androidx.compose.ui.input.pointer.PointerInputScope, optional kotlin.jvm.functions.Function1 onDragStart, optional kotlin.jvm.functions.Function0 onDragEnd, optional kotlin.jvm.functions.Function0 onDragCancel, kotlin.jvm.functions.Function2 onDrag, kotlin.coroutines.Continuation); + method public static suspend Object? detectHorizontalDragGestures(androidx.compose.ui.input.pointer.PointerInputScope, optional kotlin.jvm.functions.Function1 onDragStart, optional kotlin.jvm.functions.Function0 onDragEnd, optional kotlin.jvm.functions.Function0 onDragCancel, kotlin.jvm.functions.Function2 onHorizontalDrag, kotlin.coroutines.Continuation); + method public static suspend Object? detectVerticalDragGestures(androidx.compose.ui.input.pointer.PointerInputScope, optional kotlin.jvm.functions.Function1 onDragStart, optional kotlin.jvm.functions.Function0 onDragEnd, optional kotlin.jvm.functions.Function0 onDragCancel, kotlin.jvm.functions.Function2 onVerticalDrag, kotlin.coroutines.Continuation); + method public static suspend Object? drag(androidx.compose.ui.input.pointer.AwaitPointerEventScope, long pointerId, kotlin.jvm.functions.Function1 onDrag, kotlin.coroutines.Continuation); + method public static suspend Object? horizontalDrag(androidx.compose.ui.input.pointer.AwaitPointerEventScope, long pointerId, kotlin.jvm.functions.Function1 onDrag, kotlin.coroutines.Continuation); + method public static suspend Object? verticalDrag(androidx.compose.ui.input.pointer.AwaitPointerEventScope, long pointerId, kotlin.jvm.functions.Function1 onDrag, kotlin.coroutines.Continuation); + } + + public interface DragScope { + method public void dragBy(float pixels); + } + + public final class Draggable2DKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.foundation.gestures.Draggable2DState Draggable2DState(kotlin.jvm.functions.Function1 onDelta); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier draggable2D(androidx.compose.ui.Modifier, androidx.compose.foundation.gestures.Draggable2DState state, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional boolean startDragImmediately, optional kotlin.jvm.functions.Function1 onDragStarted, optional kotlin.jvm.functions.Function1 onDragStopped, optional boolean reverseDirection); + method @Deprecated @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier draggable2D(androidx.compose.ui.Modifier, androidx.compose.foundation.gestures.Draggable2DState state, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional boolean startDragImmediately, optional kotlin.jvm.functions.Function3,? extends java.lang.Object?> onDragStarted, optional kotlin.jvm.functions.Function3,? extends java.lang.Object?> onDragStopped, optional boolean reverseDirection); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static androidx.compose.foundation.gestures.Draggable2DState rememberDraggable2DState(kotlin.jvm.functions.Function1 onDelta); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public interface Draggable2DState { + method public void dispatchRawDelta(long delta); + method public suspend Object? drag(optional androidx.compose.foundation.MutatePriority dragPriority, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public interface DraggableAnchors { + method public T? closestAnchor(float position); + method public T? closestAnchor(float position, boolean searchUpwards); + method public void forEach(kotlin.jvm.functions.Function2 block); + method public int getSize(); + method public boolean hasAnchorFor(T value); + method public float maxAnchor(); + method public float minAnchor(); + method public float positionOf(T value); + property public abstract int size; + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public final class DraggableAnchorsConfig { + ctor public DraggableAnchorsConfig(); + method public infix void at(T, float position); + } + + public final class DraggableKt { + method public static androidx.compose.foundation.gestures.DraggableState DraggableState(kotlin.jvm.functions.Function1 onDelta); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier draggable(androidx.compose.ui.Modifier, androidx.compose.foundation.gestures.DraggableState state, androidx.compose.foundation.gestures.Orientation orientation, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional boolean startDragImmediately, optional kotlin.jvm.functions.Function3,? extends java.lang.Object?> onDragStarted, optional kotlin.jvm.functions.Function3,? extends java.lang.Object?> onDragStopped, optional boolean reverseDirection); + method @androidx.compose.runtime.Composable public static androidx.compose.foundation.gestures.DraggableState rememberDraggableState(kotlin.jvm.functions.Function1 onDelta); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface DraggableState { + method public void dispatchRawDelta(float delta); + method public suspend Object? drag(optional androidx.compose.foundation.MutatePriority dragPriority, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + } + + @androidx.compose.runtime.Stable public interface FlingBehavior { + method public suspend Object? performFling(androidx.compose.foundation.gestures.ScrollScope, float initialVelocity, kotlin.coroutines.Continuation); + } + + public final class ForEachGestureKt { + method public static suspend Object? awaitEachGesture(androidx.compose.ui.input.pointer.PointerInputScope, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + method @Deprecated public static suspend Object? forEachGesture(androidx.compose.ui.input.pointer.PointerInputScope, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + } + + public final class GestureCancellationException extends java.util.concurrent.CancellationException { + ctor public GestureCancellationException(optional String? message); + } + + public enum Orientation { + enum_constant public static final androidx.compose.foundation.gestures.Orientation Horizontal; + enum_constant public static final androidx.compose.foundation.gestures.Orientation Vertical; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface PressGestureScope extends androidx.compose.ui.unit.Density { + method public suspend Object? awaitRelease(kotlin.coroutines.Continuation); + method public suspend Object? tryAwaitRelease(kotlin.coroutines.Continuation); + } + + public final class ScrollExtensionsKt { + method public static suspend Object? animateScrollBy(androidx.compose.foundation.gestures.ScrollableState, float value, optional androidx.compose.animation.core.AnimationSpec animationSpec, kotlin.coroutines.Continuation); + method public static suspend Object? scrollBy(androidx.compose.foundation.gestures.ScrollableState, float value, kotlin.coroutines.Continuation); + method public static suspend Object? stopScroll(androidx.compose.foundation.gestures.ScrollableState, optional androidx.compose.foundation.MutatePriority scrollPriority, kotlin.coroutines.Continuation); + } + + public interface ScrollScope { + method public float scrollBy(float pixels); + } + + public final class ScrollableDefaults { + method @Deprecated @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public androidx.compose.foundation.gestures.BringIntoViewSpec bringIntoViewSpec(); + method @androidx.compose.runtime.Composable public androidx.compose.foundation.gestures.FlingBehavior flingBehavior(); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public androidx.compose.foundation.OverscrollEffect overscrollEffect(); + method public boolean reverseDirection(androidx.compose.ui.unit.LayoutDirection layoutDirection, androidx.compose.foundation.gestures.Orientation orientation, boolean reverseScrolling); + field public static final androidx.compose.foundation.gestures.ScrollableDefaults INSTANCE; + } + + public final class ScrollableKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier scrollable(androidx.compose.ui.Modifier, androidx.compose.foundation.gestures.ScrollableState state, androidx.compose.foundation.gestures.Orientation orientation, androidx.compose.foundation.OverscrollEffect? overscrollEffect, optional boolean enabled, optional boolean reverseDirection, optional androidx.compose.foundation.gestures.FlingBehavior? flingBehavior, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.foundation.gestures.BringIntoViewSpec? bringIntoViewSpec); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier scrollable(androidx.compose.ui.Modifier, androidx.compose.foundation.gestures.ScrollableState state, androidx.compose.foundation.gestures.Orientation orientation, optional boolean enabled, optional boolean reverseDirection, optional androidx.compose.foundation.gestures.FlingBehavior? flingBehavior, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface ScrollableState { + method public float dispatchRawDelta(float delta); + method public default boolean getCanScrollBackward(); + method public default boolean getCanScrollForward(); + method public default boolean getLastScrolledBackward(); + method public default boolean getLastScrolledForward(); + method public boolean isScrollInProgress(); + method public suspend Object? scroll(optional androidx.compose.foundation.MutatePriority scrollPriority, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + property public default boolean canScrollBackward; + property public default boolean canScrollForward; + property public abstract boolean isScrollInProgress; + property public default boolean lastScrolledBackward; + property public default boolean lastScrolledForward; + } + + public final class ScrollableStateKt { + method public static androidx.compose.foundation.gestures.ScrollableState ScrollableState(kotlin.jvm.functions.Function1 consumeScrollDelta); + method @androidx.compose.runtime.Composable public static androidx.compose.foundation.gestures.ScrollableState rememberScrollableState(kotlin.jvm.functions.Function1 consumeScrollDelta); + } + + public final class TapGestureDetectorKt { + method public static suspend Object? awaitFirstDown(androidx.compose.ui.input.pointer.AwaitPointerEventScope, optional boolean requireUnconsumed, optional androidx.compose.ui.input.pointer.PointerEventPass pass, kotlin.coroutines.Continuation); + method @Deprecated public static suspend Object? awaitFirstDown(androidx.compose.ui.input.pointer.AwaitPointerEventScope, optional boolean requireUnconsumed, kotlin.coroutines.Continuation); + method public static suspend Object? detectTapGestures(androidx.compose.ui.input.pointer.PointerInputScope, optional kotlin.jvm.functions.Function1? onDoubleTap, optional kotlin.jvm.functions.Function1? onLongPress, optional kotlin.jvm.functions.Function3,? extends java.lang.Object?> onPress, optional kotlin.jvm.functions.Function1? onTap, kotlin.coroutines.Continuation); + method public static suspend Object? waitForUpOrCancellation(androidx.compose.ui.input.pointer.AwaitPointerEventScope, optional androidx.compose.ui.input.pointer.PointerEventPass pass, kotlin.coroutines.Continuation); + method @Deprecated public static suspend Object? waitForUpOrCancellation(androidx.compose.ui.input.pointer.AwaitPointerEventScope, kotlin.coroutines.Continuation); + } + + @androidx.compose.runtime.Stable public interface TargetedFlingBehavior extends androidx.compose.foundation.gestures.FlingBehavior { + method public default suspend Object? performFling(androidx.compose.foundation.gestures.ScrollScope, float initialVelocity, kotlin.coroutines.Continuation); + method public suspend Object? performFling(androidx.compose.foundation.gestures.ScrollScope, float initialVelocity, kotlin.jvm.functions.Function1 onRemainingDistanceUpdated, kotlin.coroutines.Continuation); + } + + public final class TransformGestureDetectorKt { + method public static long calculateCentroid(androidx.compose.ui.input.pointer.PointerEvent, optional boolean useCurrent); + method public static float calculateCentroidSize(androidx.compose.ui.input.pointer.PointerEvent, optional boolean useCurrent); + method public static long calculatePan(androidx.compose.ui.input.pointer.PointerEvent); + method public static float calculateRotation(androidx.compose.ui.input.pointer.PointerEvent); + method public static float calculateZoom(androidx.compose.ui.input.pointer.PointerEvent); + method public static suspend Object? detectTransformGestures(androidx.compose.ui.input.pointer.PointerInputScope, optional boolean panZoomLock, kotlin.jvm.functions.Function4 onGesture, kotlin.coroutines.Continuation); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface TransformScope { + method public void transformBy(optional float zoomChange, optional long panChange, optional float rotationChange); + } + + public final class TransformableKt { + method public static androidx.compose.ui.Modifier transformable(androidx.compose.ui.Modifier, androidx.compose.foundation.gestures.TransformableState state, optional boolean lockRotationOnZoomPan, optional boolean enabled); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier transformable(androidx.compose.ui.Modifier, androidx.compose.foundation.gestures.TransformableState state, kotlin.jvm.functions.Function1 canPan, optional boolean lockRotationOnZoomPan, optional boolean enabled); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface TransformableState { + method public boolean isTransformInProgress(); + method public suspend Object? transform(optional androidx.compose.foundation.MutatePriority transformPriority, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + property public abstract boolean isTransformInProgress; + } + + public final class TransformableStateKt { + method public static androidx.compose.foundation.gestures.TransformableState TransformableState(kotlin.jvm.functions.Function3 onTransformation); + method public static suspend Object? animatePanBy(androidx.compose.foundation.gestures.TransformableState, long offset, optional androidx.compose.animation.core.AnimationSpec animationSpec, kotlin.coroutines.Continuation); + method public static suspend Object? animateRotateBy(androidx.compose.foundation.gestures.TransformableState, float degrees, optional androidx.compose.animation.core.AnimationSpec animationSpec, kotlin.coroutines.Continuation); + method public static suspend Object? animateZoomBy(androidx.compose.foundation.gestures.TransformableState, float zoomFactor, optional androidx.compose.animation.core.AnimationSpec animationSpec, kotlin.coroutines.Continuation); + method public static suspend Object? panBy(androidx.compose.foundation.gestures.TransformableState, long offset, kotlin.coroutines.Continuation); + method @androidx.compose.runtime.Composable public static androidx.compose.foundation.gestures.TransformableState rememberTransformableState(kotlin.jvm.functions.Function3 onTransformation); + method public static suspend Object? rotateBy(androidx.compose.foundation.gestures.TransformableState, float degrees, kotlin.coroutines.Continuation); + method public static suspend Object? stopTransformation(androidx.compose.foundation.gestures.TransformableState, optional androidx.compose.foundation.MutatePriority terminationPriority, kotlin.coroutines.Continuation); + method public static suspend Object? zoomBy(androidx.compose.foundation.gestures.TransformableState, float zoomFactor, kotlin.coroutines.Continuation); + } + +} + +package androidx.compose.foundation.gestures.snapping { + + public final class LazyGridSnapLayoutInfoProviderKt { + method public static androidx.compose.foundation.gestures.snapping.SnapLayoutInfoProvider SnapLayoutInfoProvider(androidx.compose.foundation.lazy.grid.LazyGridState lazyGridState, optional androidx.compose.foundation.gestures.snapping.SnapPosition snapPosition); + method @androidx.compose.runtime.Composable public static androidx.compose.foundation.gestures.FlingBehavior rememberSnapFlingBehavior(androidx.compose.foundation.lazy.grid.LazyGridState lazyGridState, optional androidx.compose.foundation.gestures.snapping.SnapPosition snapPosition); + } + + public final class LazyListSnapLayoutInfoProviderKt { + method public static androidx.compose.foundation.gestures.snapping.SnapLayoutInfoProvider SnapLayoutInfoProvider(androidx.compose.foundation.lazy.LazyListState lazyListState, optional androidx.compose.foundation.gestures.snapping.SnapPosition snapPosition); + method @androidx.compose.runtime.Composable public static androidx.compose.foundation.gestures.FlingBehavior rememberSnapFlingBehavior(androidx.compose.foundation.lazy.LazyListState lazyListState, optional androidx.compose.foundation.gestures.snapping.SnapPosition snapPosition); + } + + @Deprecated @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public final class SnapFlingBehavior implements androidx.compose.foundation.gestures.TargetedFlingBehavior { + ctor @Deprecated public SnapFlingBehavior(androidx.compose.foundation.gestures.snapping.SnapLayoutInfoProvider snapLayoutInfoProvider, androidx.compose.animation.core.DecayAnimationSpec decayAnimationSpec, androidx.compose.animation.core.AnimationSpec snapAnimationSpec); + method @Deprecated public suspend Object? performFling(androidx.compose.foundation.gestures.ScrollScope, float initialVelocity, kotlin.jvm.functions.Function1 onRemainingDistanceUpdated, kotlin.coroutines.Continuation); + } + + public final class SnapFlingBehaviorKt { + method @androidx.compose.runtime.Composable public static androidx.compose.foundation.gestures.TargetedFlingBehavior rememberSnapFlingBehavior(androidx.compose.foundation.gestures.snapping.SnapLayoutInfoProvider snapLayoutInfoProvider); + method public static androidx.compose.foundation.gestures.TargetedFlingBehavior snapFlingBehavior(androidx.compose.foundation.gestures.snapping.SnapLayoutInfoProvider snapLayoutInfoProvider, androidx.compose.animation.core.DecayAnimationSpec decayAnimationSpec, androidx.compose.animation.core.AnimationSpec snapAnimationSpec); + } + + public interface SnapLayoutInfoProvider { + method public default float calculateApproachOffset(float velocity, float decayOffset); + method public float calculateSnapOffset(float velocity); + } + + @androidx.compose.runtime.Stable public interface SnapPosition { + method public int position(int layoutSize, int itemSize, int beforeContentPadding, int afterContentPadding, int itemIndex, int itemCount); + } + + public static final class SnapPosition.Center implements androidx.compose.foundation.gestures.snapping.SnapPosition { + method public int position(int layoutSize, int itemSize, int beforeContentPadding, int afterContentPadding, int itemIndex, int itemCount); + field public static final androidx.compose.foundation.gestures.snapping.SnapPosition.Center INSTANCE; + } + + public static final class SnapPosition.End implements androidx.compose.foundation.gestures.snapping.SnapPosition { + method public int position(int layoutSize, int itemSize, int beforeContentPadding, int afterContentPadding, int itemIndex, int itemCount); + field public static final androidx.compose.foundation.gestures.snapping.SnapPosition.End INSTANCE; + } + + public static final class SnapPosition.Start implements androidx.compose.foundation.gestures.snapping.SnapPosition { + method public int position(int layoutSize, int itemSize, int beforeContentPadding, int afterContentPadding, int itemIndex, int itemCount); + field public static final androidx.compose.foundation.gestures.snapping.SnapPosition.Start INSTANCE; + } + +} + +package androidx.compose.foundation.interaction { + + public interface DragInteraction extends androidx.compose.foundation.interaction.Interaction { + } + + public static final class DragInteraction.Cancel implements androidx.compose.foundation.interaction.DragInteraction { + ctor public DragInteraction.Cancel(androidx.compose.foundation.interaction.DragInteraction.Start start); + method public androidx.compose.foundation.interaction.DragInteraction.Start getStart(); + property public final androidx.compose.foundation.interaction.DragInteraction.Start start; + } + + public static final class DragInteraction.Start implements androidx.compose.foundation.interaction.DragInteraction { + ctor public DragInteraction.Start(); + } + + public static final class DragInteraction.Stop implements androidx.compose.foundation.interaction.DragInteraction { + ctor public DragInteraction.Stop(androidx.compose.foundation.interaction.DragInteraction.Start start); + method public androidx.compose.foundation.interaction.DragInteraction.Start getStart(); + property public final androidx.compose.foundation.interaction.DragInteraction.Start start; + } + + public final class DragInteractionKt { + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State collectIsDraggedAsState(androidx.compose.foundation.interaction.InteractionSource); + } + + public interface FocusInteraction extends androidx.compose.foundation.interaction.Interaction { + } + + public static final class FocusInteraction.Focus implements androidx.compose.foundation.interaction.FocusInteraction { + ctor public FocusInteraction.Focus(); + } + + public static final class FocusInteraction.Unfocus implements androidx.compose.foundation.interaction.FocusInteraction { + ctor public FocusInteraction.Unfocus(androidx.compose.foundation.interaction.FocusInteraction.Focus focus); + method public androidx.compose.foundation.interaction.FocusInteraction.Focus getFocus(); + property public final androidx.compose.foundation.interaction.FocusInteraction.Focus focus; + } + + public final class FocusInteractionKt { + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State collectIsFocusedAsState(androidx.compose.foundation.interaction.InteractionSource); + } + + public interface HoverInteraction extends androidx.compose.foundation.interaction.Interaction { + } + + public static final class HoverInteraction.Enter implements androidx.compose.foundation.interaction.HoverInteraction { + ctor public HoverInteraction.Enter(); + } + + public static final class HoverInteraction.Exit implements androidx.compose.foundation.interaction.HoverInteraction { + ctor public HoverInteraction.Exit(androidx.compose.foundation.interaction.HoverInteraction.Enter enter); + method public androidx.compose.foundation.interaction.HoverInteraction.Enter getEnter(); + property public final androidx.compose.foundation.interaction.HoverInteraction.Enter enter; + } + + public final class HoverInteractionKt { + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State collectIsHoveredAsState(androidx.compose.foundation.interaction.InteractionSource); + } + + public interface Interaction { + } + + @androidx.compose.runtime.Stable public interface InteractionSource { + method public kotlinx.coroutines.flow.Flow getInteractions(); + property public abstract kotlinx.coroutines.flow.Flow interactions; + } + + public final class InteractionSourceKt { + method public static androidx.compose.foundation.interaction.MutableInteractionSource MutableInteractionSource(); + } + + @androidx.compose.runtime.Stable public interface MutableInteractionSource extends androidx.compose.foundation.interaction.InteractionSource { + method public suspend Object? emit(androidx.compose.foundation.interaction.Interaction interaction, kotlin.coroutines.Continuation); + method public boolean tryEmit(androidx.compose.foundation.interaction.Interaction interaction); + } + + public interface PressInteraction extends androidx.compose.foundation.interaction.Interaction { + } + + public static final class PressInteraction.Cancel implements androidx.compose.foundation.interaction.PressInteraction { + ctor public PressInteraction.Cancel(androidx.compose.foundation.interaction.PressInteraction.Press press); + method public androidx.compose.foundation.interaction.PressInteraction.Press getPress(); + property public final androidx.compose.foundation.interaction.PressInteraction.Press press; + } + + public static final class PressInteraction.Press implements androidx.compose.foundation.interaction.PressInteraction { + ctor public PressInteraction.Press(long pressPosition); + method public long getPressPosition(); + property public final long pressPosition; + } + + public static final class PressInteraction.Release implements androidx.compose.foundation.interaction.PressInteraction { + ctor public PressInteraction.Release(androidx.compose.foundation.interaction.PressInteraction.Press press); + method public androidx.compose.foundation.interaction.PressInteraction.Press getPress(); + property public final androidx.compose.foundation.interaction.PressInteraction.Press press; + } + + public final class PressInteractionKt { + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State collectIsPressedAsState(androidx.compose.foundation.interaction.InteractionSource); + } + +} + +package androidx.compose.foundation.lazy { + + public final class LazyDslKt { + method @androidx.compose.runtime.Composable public static void LazyColumn(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.lazy.LazyListState state, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional boolean reverseLayout, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional androidx.compose.ui.Alignment.Horizontal horizontalAlignment, optional androidx.compose.foundation.gestures.FlingBehavior flingBehavior, optional boolean userScrollEnabled, kotlin.jvm.functions.Function1 content); + method @Deprecated @androidx.compose.runtime.Composable public static void LazyColumn(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.lazy.LazyListState state, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional boolean reverseLayout, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional androidx.compose.ui.Alignment.Horizontal horizontalAlignment, optional androidx.compose.foundation.gestures.FlingBehavior flingBehavior, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void LazyRow(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.lazy.LazyListState state, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional boolean reverseLayout, optional androidx.compose.foundation.layout.Arrangement.Horizontal horizontalArrangement, optional androidx.compose.ui.Alignment.Vertical verticalAlignment, optional androidx.compose.foundation.gestures.FlingBehavior flingBehavior, optional boolean userScrollEnabled, kotlin.jvm.functions.Function1 content); + method @Deprecated @androidx.compose.runtime.Composable public static void LazyRow(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.lazy.LazyListState state, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional boolean reverseLayout, optional androidx.compose.foundation.layout.Arrangement.Horizontal horizontalArrangement, optional androidx.compose.ui.Alignment.Vertical verticalAlignment, optional androidx.compose.foundation.gestures.FlingBehavior flingBehavior, kotlin.jvm.functions.Function1 content); + method public static inline void items(androidx.compose.foundation.lazy.LazyListScope, java.util.List items, optional kotlin.jvm.functions.Function1? key, optional kotlin.jvm.functions.Function1 contentType, kotlin.jvm.functions.Function2 itemContent); + method @Deprecated public static inline void items(androidx.compose.foundation.lazy.LazyListScope, java.util.List items, optional kotlin.jvm.functions.Function1? key, kotlin.jvm.functions.Function2 itemContent); + method public static inline void items(androidx.compose.foundation.lazy.LazyListScope, T[] items, optional kotlin.jvm.functions.Function1? key, optional kotlin.jvm.functions.Function1 contentType, kotlin.jvm.functions.Function2 itemContent); + method @Deprecated public static inline void items(androidx.compose.foundation.lazy.LazyListScope, T[] items, optional kotlin.jvm.functions.Function1? key, kotlin.jvm.functions.Function2 itemContent); + method public static inline void itemsIndexed(androidx.compose.foundation.lazy.LazyListScope, java.util.List items, optional kotlin.jvm.functions.Function2? key, optional kotlin.jvm.functions.Function2 contentType, kotlin.jvm.functions.Function3 itemContent); + method @Deprecated public static inline void itemsIndexed(androidx.compose.foundation.lazy.LazyListScope, java.util.List items, optional kotlin.jvm.functions.Function2? key, kotlin.jvm.functions.Function3 itemContent); + method public static inline void itemsIndexed(androidx.compose.foundation.lazy.LazyListScope, T[] items, optional kotlin.jvm.functions.Function2? key, optional kotlin.jvm.functions.Function2 contentType, kotlin.jvm.functions.Function3 itemContent); + method @Deprecated public static inline void itemsIndexed(androidx.compose.foundation.lazy.LazyListScope, T[] items, optional kotlin.jvm.functions.Function2? key, kotlin.jvm.functions.Function3 itemContent); + } + + @androidx.compose.foundation.lazy.LazyScopeMarker @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface LazyItemScope { + method public default androidx.compose.ui.Modifier animateItem(androidx.compose.ui.Modifier, optional androidx.compose.animation.core.FiniteAnimationSpec? fadeInSpec, optional androidx.compose.animation.core.FiniteAnimationSpec? placementSpec, optional androidx.compose.animation.core.FiniteAnimationSpec? fadeOutSpec); + method @Deprecated @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public default androidx.compose.ui.Modifier animateItemPlacement(androidx.compose.ui.Modifier, optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec); + method public androidx.compose.ui.Modifier fillParentMaxHeight(androidx.compose.ui.Modifier, optional @FloatRange(from=0.0, to=1.0) float fraction); + method public androidx.compose.ui.Modifier fillParentMaxSize(androidx.compose.ui.Modifier, optional @FloatRange(from=0.0, to=1.0) float fraction); + method public androidx.compose.ui.Modifier fillParentMaxWidth(androidx.compose.ui.Modifier, optional @FloatRange(from=0.0, to=1.0) float fraction); + } + + public interface LazyListItemInfo { + method public default Object? getContentType(); + method public int getIndex(); + method public Object getKey(); + method public int getOffset(); + method public int getSize(); + property public default Object? contentType; + property public abstract int index; + property public abstract Object key; + property public abstract int offset; + property public abstract int size; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface LazyListLayoutInfo { + method public default int getAfterContentPadding(); + method public default int getBeforeContentPadding(); + method public default int getMainAxisItemSpacing(); + method public default androidx.compose.foundation.gestures.Orientation getOrientation(); + method public default boolean getReverseLayout(); + method public int getTotalItemsCount(); + method public int getViewportEndOffset(); + method public default long getViewportSize(); + method public int getViewportStartOffset(); + method public java.util.List getVisibleItemsInfo(); + property public default int afterContentPadding; + property public default int beforeContentPadding; + property public default int mainAxisItemSpacing; + property public default androidx.compose.foundation.gestures.Orientation orientation; + property public default boolean reverseLayout; + property public abstract int totalItemsCount; + property public abstract int viewportEndOffset; + property public default long viewportSize; + property public abstract int viewportStartOffset; + property public abstract java.util.List visibleItemsInfo; + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public interface LazyListPrefetchScope { + method public androidx.compose.foundation.lazy.layout.LazyLayoutPrefetchState.PrefetchHandle schedulePrefetch(int index); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public interface LazyListPrefetchStrategy { + method public default androidx.compose.foundation.lazy.layout.PrefetchScheduler? getPrefetchScheduler(); + method public void onNestedPrefetch(androidx.compose.foundation.lazy.layout.NestedPrefetchScope, int firstVisibleItemIndex); + method public void onScroll(androidx.compose.foundation.lazy.LazyListPrefetchScope, float delta, androidx.compose.foundation.lazy.LazyListLayoutInfo layoutInfo); + method public void onVisibleItemsUpdated(androidx.compose.foundation.lazy.LazyListPrefetchScope, androidx.compose.foundation.lazy.LazyListLayoutInfo layoutInfo); + property public default androidx.compose.foundation.lazy.layout.PrefetchScheduler? prefetchScheduler; + } + + public final class LazyListPrefetchStrategyKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.foundation.lazy.LazyListPrefetchStrategy LazyListPrefetchStrategy(optional int nestedPrefetchItemCount); + } + + @androidx.compose.foundation.lazy.LazyScopeMarker @kotlin.jvm.JvmDefaultWithCompatibility public interface LazyListScope { + method public default void item(optional Object? key, optional Object? contentType, kotlin.jvm.functions.Function1 content); + method @Deprecated public void item(optional Object? key, kotlin.jvm.functions.Function1 content); + method public default void items(int count, optional kotlin.jvm.functions.Function1? key, optional kotlin.jvm.functions.Function1 contentType, kotlin.jvm.functions.Function2 itemContent); + method @Deprecated public void items(int count, optional kotlin.jvm.functions.Function1? key, kotlin.jvm.functions.Function2 itemContent); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public void stickyHeader(optional Object? key, optional Object? contentType, kotlin.jvm.functions.Function1 content); + } + + @androidx.compose.runtime.Stable public final class LazyListState implements androidx.compose.foundation.gestures.ScrollableState { + ctor public LazyListState(optional int firstVisibleItemIndex, optional int firstVisibleItemScrollOffset); + ctor @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public LazyListState(optional int firstVisibleItemIndex, optional int firstVisibleItemScrollOffset, optional androidx.compose.foundation.lazy.LazyListPrefetchStrategy prefetchStrategy); + method public suspend Object? animateScrollToItem(@IntRange(from=0L) int index, optional int scrollOffset, kotlin.coroutines.Continuation); + method public float dispatchRawDelta(float delta); + method public int getFirstVisibleItemIndex(); + method public int getFirstVisibleItemScrollOffset(); + method public androidx.compose.foundation.interaction.InteractionSource getInteractionSource(); + method public androidx.compose.foundation.lazy.LazyListLayoutInfo getLayoutInfo(); + method public boolean isScrollInProgress(); + method public void requestScrollToItem(@IntRange(from=0L) int index, optional int scrollOffset); + method public suspend Object? scroll(androidx.compose.foundation.MutatePriority scrollPriority, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + method public suspend Object? scrollToItem(@IntRange(from=0L) int index, optional int scrollOffset, kotlin.coroutines.Continuation); + property public boolean canScrollBackward; + property public boolean canScrollForward; + property public final int firstVisibleItemIndex; + property public final int firstVisibleItemScrollOffset; + property public final androidx.compose.foundation.interaction.InteractionSource interactionSource; + property public boolean isScrollInProgress; + property public boolean lastScrolledBackward; + property public boolean lastScrolledForward; + property public final androidx.compose.foundation.lazy.LazyListLayoutInfo layoutInfo; + field public static final androidx.compose.foundation.lazy.LazyListState.Companion Companion; + } + + public static final class LazyListState.Companion { + method public androidx.compose.runtime.saveable.Saver getSaver(); + property public final androidx.compose.runtime.saveable.Saver Saver; + } + + public final class LazyListStateKt { + method @androidx.compose.runtime.Composable public static androidx.compose.foundation.lazy.LazyListState rememberLazyListState(optional int initialFirstVisibleItemIndex, optional int initialFirstVisibleItemScrollOffset); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static androidx.compose.foundation.lazy.LazyListState rememberLazyListState(optional int initialFirstVisibleItemIndex, optional int initialFirstVisibleItemScrollOffset, optional androidx.compose.foundation.lazy.LazyListPrefetchStrategy prefetchStrategy); + } + + @kotlin.DslMarker public @interface LazyScopeMarker { + } + +} + +package androidx.compose.foundation.lazy.grid { + + @androidx.compose.runtime.Stable public interface GridCells { + method public java.util.List calculateCrossAxisCellSizes(androidx.compose.ui.unit.Density, int availableSize, int spacing); + } + + public static final class GridCells.Adaptive implements androidx.compose.foundation.lazy.grid.GridCells { + ctor public GridCells.Adaptive(float minSize); + method public java.util.List calculateCrossAxisCellSizes(androidx.compose.ui.unit.Density, int availableSize, int spacing); + } + + public static final class GridCells.Fixed implements androidx.compose.foundation.lazy.grid.GridCells { + ctor public GridCells.Fixed(int count); + method public java.util.List calculateCrossAxisCellSizes(androidx.compose.ui.unit.Density, int availableSize, int spacing); + } + + public static final class GridCells.FixedSize implements androidx.compose.foundation.lazy.grid.GridCells { + ctor public GridCells.FixedSize(float size); + method public java.util.List calculateCrossAxisCellSizes(androidx.compose.ui.unit.Density, int availableSize, int spacing); + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class GridItemSpan { + method public int getCurrentLineSpan(); + property public final int currentLineSpan; + } + + public final class LazyGridDslKt { + method @androidx.compose.runtime.Composable public static void LazyHorizontalGrid(androidx.compose.foundation.lazy.grid.GridCells rows, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.lazy.grid.LazyGridState state, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional boolean reverseLayout, optional androidx.compose.foundation.layout.Arrangement.Horizontal horizontalArrangement, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional androidx.compose.foundation.gestures.FlingBehavior flingBehavior, optional boolean userScrollEnabled, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void LazyVerticalGrid(androidx.compose.foundation.lazy.grid.GridCells columns, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.lazy.grid.LazyGridState state, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional boolean reverseLayout, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional androidx.compose.foundation.layout.Arrangement.Horizontal horizontalArrangement, optional androidx.compose.foundation.gestures.FlingBehavior flingBehavior, optional boolean userScrollEnabled, kotlin.jvm.functions.Function1 content); + method public static inline void items(androidx.compose.foundation.lazy.grid.LazyGridScope, java.util.List items, optional kotlin.jvm.functions.Function1? key, optional kotlin.jvm.functions.Function2? span, optional kotlin.jvm.functions.Function1 contentType, kotlin.jvm.functions.Function2 itemContent); + method public static inline void items(androidx.compose.foundation.lazy.grid.LazyGridScope, T[] items, optional kotlin.jvm.functions.Function1? key, optional kotlin.jvm.functions.Function2? span, optional kotlin.jvm.functions.Function1 contentType, kotlin.jvm.functions.Function2 itemContent); + method public static inline void itemsIndexed(androidx.compose.foundation.lazy.grid.LazyGridScope, java.util.List items, optional kotlin.jvm.functions.Function2? key, optional kotlin.jvm.functions.Function3? span, optional kotlin.jvm.functions.Function2 contentType, kotlin.jvm.functions.Function3 itemContent); + method public static inline void itemsIndexed(androidx.compose.foundation.lazy.grid.LazyGridScope, T[] items, optional kotlin.jvm.functions.Function2? key, optional kotlin.jvm.functions.Function3? span, optional kotlin.jvm.functions.Function2 contentType, kotlin.jvm.functions.Function3 itemContent); + } + + public sealed interface LazyGridItemInfo { + method public int getColumn(); + method public Object? getContentType(); + method public int getIndex(); + method public Object getKey(); + method public long getOffset(); + method public int getRow(); + method public long getSize(); + property public abstract int column; + property public abstract Object? contentType; + property public abstract int index; + property public abstract Object key; + property public abstract long offset; + property public abstract int row; + property public abstract long size; + field public static final androidx.compose.foundation.lazy.grid.LazyGridItemInfo.Companion Companion; + field public static final int UnknownColumn = -1; // 0xffffffff + field public static final int UnknownRow = -1; // 0xffffffff + } + + public static final class LazyGridItemInfo.Companion { + field public static final int UnknownColumn = -1; // 0xffffffff + field public static final int UnknownRow = -1; // 0xffffffff + } + + @androidx.compose.foundation.lazy.grid.LazyGridScopeMarker @androidx.compose.runtime.Stable public sealed interface LazyGridItemScope { + method public androidx.compose.ui.Modifier animateItem(androidx.compose.ui.Modifier, optional androidx.compose.animation.core.FiniteAnimationSpec? fadeInSpec, optional androidx.compose.animation.core.FiniteAnimationSpec? placementSpec, optional androidx.compose.animation.core.FiniteAnimationSpec? fadeOutSpec); + method @Deprecated @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public default androidx.compose.ui.Modifier animateItemPlacement(androidx.compose.ui.Modifier, optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec); + } + + @androidx.compose.foundation.lazy.grid.LazyGridScopeMarker public sealed interface LazyGridItemSpanScope { + method public int getMaxCurrentLineSpan(); + method public int getMaxLineSpan(); + property public abstract int maxCurrentLineSpan; + property public abstract int maxLineSpan; + } + + public sealed interface LazyGridLayoutInfo { + method public int getAfterContentPadding(); + method public int getBeforeContentPadding(); + method public int getMainAxisItemSpacing(); + method public androidx.compose.foundation.gestures.Orientation getOrientation(); + method public boolean getReverseLayout(); + method public int getTotalItemsCount(); + method public int getViewportEndOffset(); + method public long getViewportSize(); + method public int getViewportStartOffset(); + method public java.util.List getVisibleItemsInfo(); + property public abstract int afterContentPadding; + property public abstract int beforeContentPadding; + property public abstract int mainAxisItemSpacing; + property public abstract androidx.compose.foundation.gestures.Orientation orientation; + property public abstract boolean reverseLayout; + property public abstract int totalItemsCount; + property public abstract int viewportEndOffset; + property public abstract long viewportSize; + property public abstract int viewportStartOffset; + property public abstract java.util.List visibleItemsInfo; + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public interface LazyGridPrefetchScope { + method public java.util.List scheduleLinePrefetch(int lineIndex); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public interface LazyGridPrefetchStrategy { + method public default androidx.compose.foundation.lazy.layout.PrefetchScheduler? getPrefetchScheduler(); + method public void onNestedPrefetch(androidx.compose.foundation.lazy.layout.NestedPrefetchScope, int firstVisibleItemIndex); + method public void onScroll(androidx.compose.foundation.lazy.grid.LazyGridPrefetchScope, float delta, androidx.compose.foundation.lazy.grid.LazyGridLayoutInfo layoutInfo); + method public void onVisibleItemsUpdated(androidx.compose.foundation.lazy.grid.LazyGridPrefetchScope, androidx.compose.foundation.lazy.grid.LazyGridLayoutInfo layoutInfo); + property public default androidx.compose.foundation.lazy.layout.PrefetchScheduler? prefetchScheduler; + } + + public final class LazyGridPrefetchStrategyKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.foundation.lazy.grid.LazyGridPrefetchStrategy LazyGridPrefetchStrategy(optional int nestedPrefetchItemCount); + } + + @androidx.compose.foundation.lazy.grid.LazyGridScopeMarker public sealed interface LazyGridScope { + method public void item(optional Object? key, optional kotlin.jvm.functions.Function1? span, optional Object? contentType, kotlin.jvm.functions.Function1 content); + method public void items(int count, optional kotlin.jvm.functions.Function1? key, optional kotlin.jvm.functions.Function2? span, optional kotlin.jvm.functions.Function1 contentType, kotlin.jvm.functions.Function2 itemContent); + } + + @kotlin.DslMarker public @interface LazyGridScopeMarker { + } + + public final class LazyGridSpanKt { + method public static long GridItemSpan(@IntRange(from=1L) int currentLineSpan); + } + + @androidx.compose.runtime.Stable public final class LazyGridState implements androidx.compose.foundation.gestures.ScrollableState { + ctor public LazyGridState(optional int firstVisibleItemIndex, optional int firstVisibleItemScrollOffset); + ctor @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public LazyGridState(optional int firstVisibleItemIndex, optional int firstVisibleItemScrollOffset, optional androidx.compose.foundation.lazy.grid.LazyGridPrefetchStrategy prefetchStrategy); + method public suspend Object? animateScrollToItem(@IntRange(from=0L) int index, optional int scrollOffset, kotlin.coroutines.Continuation); + method public float dispatchRawDelta(float delta); + method public int getFirstVisibleItemIndex(); + method public int getFirstVisibleItemScrollOffset(); + method public androidx.compose.foundation.interaction.InteractionSource getInteractionSource(); + method public androidx.compose.foundation.lazy.grid.LazyGridLayoutInfo getLayoutInfo(); + method public boolean isScrollInProgress(); + method public void requestScrollToItem(@IntRange(from=0L) int index, optional int scrollOffset); + method public suspend Object? scroll(androidx.compose.foundation.MutatePriority scrollPriority, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + method public suspend Object? scrollToItem(@IntRange(from=0L) int index, optional int scrollOffset, kotlin.coroutines.Continuation); + property public boolean canScrollBackward; + property public boolean canScrollForward; + property public final int firstVisibleItemIndex; + property public final int firstVisibleItemScrollOffset; + property public final androidx.compose.foundation.interaction.InteractionSource interactionSource; + property public boolean isScrollInProgress; + property public boolean lastScrolledBackward; + property public boolean lastScrolledForward; + property public final androidx.compose.foundation.lazy.grid.LazyGridLayoutInfo layoutInfo; + field public static final androidx.compose.foundation.lazy.grid.LazyGridState.Companion Companion; + } + + public static final class LazyGridState.Companion { + method public androidx.compose.runtime.saveable.Saver getSaver(); + property public final androidx.compose.runtime.saveable.Saver Saver; + } + + public final class LazyGridStateKt { + method @androidx.compose.runtime.Composable public static androidx.compose.foundation.lazy.grid.LazyGridState rememberLazyGridState(optional int initialFirstVisibleItemIndex, optional int initialFirstVisibleItemScrollOffset); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static androidx.compose.foundation.lazy.grid.LazyGridState rememberLazyGridState(optional int initialFirstVisibleItemIndex, optional int initialFirstVisibleItemScrollOffset, optional androidx.compose.foundation.lazy.grid.LazyGridPrefetchStrategy prefetchStrategy); + } + +} + +package androidx.compose.foundation.lazy.layout { + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public sealed interface IntervalList { + method public void forEach(optional int fromIndex, optional int toIndex, kotlin.jvm.functions.Function1,kotlin.Unit> block); + method public operator androidx.compose.foundation.lazy.layout.IntervalList.Interval get(int index); + method public int getSize(); + property public abstract int size; + } + + public static final class IntervalList.Interval { + method public int getSize(); + method public int getStartIndex(); + method public T getValue(); + property public final int size; + property public final int startIndex; + property public final T value; + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public abstract class LazyLayoutIntervalContent { + ctor public LazyLayoutIntervalContent(); + method public final Object? getContentType(int index); + method public abstract androidx.compose.foundation.lazy.layout.IntervalList getIntervals(); + method public final int getItemCount(); + method public final Object getKey(int index); + method public final inline T withInterval(int globalIndex, kotlin.jvm.functions.Function2 block); + property public abstract androidx.compose.foundation.lazy.layout.IntervalList intervals; + property public final int itemCount; + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static interface LazyLayoutIntervalContent.Interval { + method public default kotlin.jvm.functions.Function1? getKey(); + method public default kotlin.jvm.functions.Function1 getType(); + property public default kotlin.jvm.functions.Function1? key; + property public default kotlin.jvm.functions.Function1 type; + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public interface LazyLayoutItemProvider { + method @androidx.compose.runtime.Composable public void Item(int index, Object key); + method public default Object? getContentType(int index); + method public default int getIndex(Object key); + method public int getItemCount(); + method public default Object getKey(int index); + property public abstract int itemCount; + } + + public final class LazyLayoutKt { + method @Deprecated @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static void LazyLayout(androidx.compose.foundation.lazy.layout.LazyLayoutItemProvider itemProvider, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.lazy.layout.LazyLayoutPrefetchState? prefetchState, kotlin.jvm.functions.Function2 measurePolicy); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static void LazyLayout(kotlin.jvm.functions.Function0 itemProvider, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.lazy.layout.LazyLayoutPrefetchState? prefetchState, kotlin.jvm.functions.Function2 measurePolicy); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public sealed interface LazyLayoutMeasureScope extends androidx.compose.ui.layout.MeasureScope { + method public java.util.List measure(int index, long constraints); + method @androidx.compose.runtime.Stable public default float toDp(float); + method @androidx.compose.runtime.Stable public default float toDp(int); + method @androidx.compose.runtime.Stable public default float toDp(long); + method @androidx.compose.runtime.Stable public default long toDpSize(long); + method @androidx.compose.runtime.Stable public default long toSize(long); + method @androidx.compose.runtime.Stable public default long toSp(float); + method @androidx.compose.runtime.Stable public default long toSp(float); + method @androidx.compose.runtime.Stable public default long toSp(int); + } + + public final class LazyLayoutPinnableItemKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static void LazyLayoutPinnableItem(Object? key, int index, androidx.compose.foundation.lazy.layout.LazyLayoutPinnedItemList pinnedItemList, kotlin.jvm.functions.Function0 content); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public final class LazyLayoutPinnedItemList implements kotlin.jvm.internal.markers.KMappedMarker java.util.List { + ctor public LazyLayoutPinnedItemList(); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static sealed interface LazyLayoutPinnedItemList.PinnedItem { + method public int getIndex(); + method public Object? getKey(); + property public abstract int index; + property public abstract Object? key; + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Stable public final class LazyLayoutPrefetchState { + ctor public LazyLayoutPrefetchState(optional androidx.compose.foundation.lazy.layout.PrefetchScheduler? prefetchScheduler, optional kotlin.jvm.functions.Function1? onNestedPrefetch); + method public androidx.compose.foundation.lazy.layout.LazyLayoutPrefetchState.PrefetchHandle schedulePrefetch(int index); + method public androidx.compose.foundation.lazy.layout.LazyLayoutPrefetchState.PrefetchHandle schedulePrefetch(int index, long constraints); + } + + public static sealed interface LazyLayoutPrefetchState.PrefetchHandle { + method public void cancel(); + method public void markAsUrgent(); + } + + public final class Lazy_androidKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static Object getDefaultLazyLayoutKey(int index); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public final class MutableIntervalList implements androidx.compose.foundation.lazy.layout.IntervalList { + ctor public MutableIntervalList(); + method public void addInterval(int size, T value); + method public void forEach(int fromIndex, int toIndex, kotlin.jvm.functions.Function1,kotlin.Unit> block); + method public androidx.compose.foundation.lazy.layout.IntervalList.Interval get(int index); + method public int getSize(); + property public int size; + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public sealed interface NestedPrefetchScope { + method public void schedulePrefetch(int index); + method public void schedulePrefetch(int index, long constraints); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public sealed interface PrefetchRequest { + method public boolean execute(androidx.compose.foundation.lazy.layout.PrefetchRequestScope); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public interface PrefetchRequestScope { + method public long availableTimeNanos(); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public interface PrefetchScheduler { + method public void schedulePrefetch(androidx.compose.foundation.lazy.layout.PrefetchRequest prefetchRequest); + } + +} + +package androidx.compose.foundation.lazy.staggeredgrid { + + public final class LazyStaggeredGridDslKt { + method @androidx.compose.runtime.Composable public static void LazyHorizontalStaggeredGrid(androidx.compose.foundation.lazy.staggeredgrid.StaggeredGridCells rows, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.lazy.staggeredgrid.LazyStaggeredGridState state, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional boolean reverseLayout, optional androidx.compose.foundation.layout.Arrangement.Vertical verticalArrangement, optional float horizontalItemSpacing, optional androidx.compose.foundation.gestures.FlingBehavior flingBehavior, optional boolean userScrollEnabled, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void LazyVerticalStaggeredGrid(androidx.compose.foundation.lazy.staggeredgrid.StaggeredGridCells columns, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.lazy.staggeredgrid.LazyStaggeredGridState state, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional boolean reverseLayout, optional float verticalItemSpacing, optional androidx.compose.foundation.layout.Arrangement.Horizontal horizontalArrangement, optional androidx.compose.foundation.gestures.FlingBehavior flingBehavior, optional boolean userScrollEnabled, kotlin.jvm.functions.Function1 content); + method public static inline void items(androidx.compose.foundation.lazy.staggeredgrid.LazyStaggeredGridScope, java.util.List items, optional kotlin.jvm.functions.Function1? key, optional kotlin.jvm.functions.Function1 contentType, optional kotlin.jvm.functions.Function1? span, kotlin.jvm.functions.Function2 itemContent); + method public static inline void items(androidx.compose.foundation.lazy.staggeredgrid.LazyStaggeredGridScope, T[] items, optional kotlin.jvm.functions.Function1? key, optional kotlin.jvm.functions.Function1 contentType, optional kotlin.jvm.functions.Function1? span, kotlin.jvm.functions.Function2 itemContent); + method public static inline void itemsIndexed(androidx.compose.foundation.lazy.staggeredgrid.LazyStaggeredGridScope, java.util.List items, optional kotlin.jvm.functions.Function2? key, optional kotlin.jvm.functions.Function2 contentType, optional kotlin.jvm.functions.Function2? span, kotlin.jvm.functions.Function3 itemContent); + method public static inline void itemsIndexed(androidx.compose.foundation.lazy.staggeredgrid.LazyStaggeredGridScope, T[] items, optional kotlin.jvm.functions.Function2? key, optional kotlin.jvm.functions.Function2 contentType, optional kotlin.jvm.functions.Function2? span, kotlin.jvm.functions.Function3 itemContent); + } + + public sealed interface LazyStaggeredGridItemInfo { + method public Object? getContentType(); + method public int getIndex(); + method public Object getKey(); + method public int getLane(); + method public long getOffset(); + method public long getSize(); + property public abstract Object? contentType; + property public abstract int index; + property public abstract Object key; + property public abstract int lane; + property public abstract long offset; + property public abstract long size; + } + + @androidx.compose.runtime.Stable public sealed interface LazyStaggeredGridItemScope { + method public androidx.compose.ui.Modifier animateItem(androidx.compose.ui.Modifier, optional androidx.compose.animation.core.FiniteAnimationSpec? fadeInSpec, optional androidx.compose.animation.core.FiniteAnimationSpec? placementSpec, optional androidx.compose.animation.core.FiniteAnimationSpec? fadeOutSpec); + method @Deprecated @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public default androidx.compose.ui.Modifier animateItemPlacement(androidx.compose.ui.Modifier, optional androidx.compose.animation.core.FiniteAnimationSpec animationSpec); + } + + public sealed interface LazyStaggeredGridLayoutInfo { + method public int getAfterContentPadding(); + method public int getBeforeContentPadding(); + method public int getMainAxisItemSpacing(); + method public androidx.compose.foundation.gestures.Orientation getOrientation(); + method public int getTotalItemsCount(); + method public int getViewportEndOffset(); + method public long getViewportSize(); + method public int getViewportStartOffset(); + method public java.util.List getVisibleItemsInfo(); + property public abstract int afterContentPadding; + property public abstract int beforeContentPadding; + property public abstract int mainAxisItemSpacing; + property public abstract androidx.compose.foundation.gestures.Orientation orientation; + property public abstract int totalItemsCount; + property public abstract int viewportEndOffset; + property public abstract long viewportSize; + property public abstract int viewportStartOffset; + property public abstract java.util.List visibleItemsInfo; + } + + public sealed interface LazyStaggeredGridScope { + method public void item(optional Object? key, optional Object? contentType, optional androidx.compose.foundation.lazy.staggeredgrid.StaggeredGridItemSpan? span, kotlin.jvm.functions.Function1 content); + method public void items(int count, optional kotlin.jvm.functions.Function1? key, optional kotlin.jvm.functions.Function1 contentType, optional kotlin.jvm.functions.Function1? span, kotlin.jvm.functions.Function2 itemContent); + } + + public final class LazyStaggeredGridState implements androidx.compose.foundation.gestures.ScrollableState { + ctor public LazyStaggeredGridState(optional int initialFirstVisibleItemIndex, optional int initialFirstVisibleItemOffset); + method public suspend Object? animateScrollToItem(int index, optional int scrollOffset, kotlin.coroutines.Continuation); + method public float dispatchRawDelta(float delta); + method public int getFirstVisibleItemIndex(); + method public int getFirstVisibleItemScrollOffset(); + method public androidx.compose.foundation.interaction.InteractionSource getInteractionSource(); + method public androidx.compose.foundation.lazy.staggeredgrid.LazyStaggeredGridLayoutInfo getLayoutInfo(); + method public boolean isScrollInProgress(); + method public void requestScrollToItem(@IntRange(from=0L) int index, optional int scrollOffset); + method public suspend Object? scroll(androidx.compose.foundation.MutatePriority scrollPriority, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + method public suspend Object? scrollToItem(int index, optional int scrollOffset, kotlin.coroutines.Continuation); + property public boolean canScrollBackward; + property public boolean canScrollForward; + property public final int firstVisibleItemIndex; + property public final int firstVisibleItemScrollOffset; + property public final androidx.compose.foundation.interaction.InteractionSource interactionSource; + property public boolean isScrollInProgress; + property public boolean lastScrolledBackward; + property public boolean lastScrolledForward; + property public final androidx.compose.foundation.lazy.staggeredgrid.LazyStaggeredGridLayoutInfo layoutInfo; + field public static final androidx.compose.foundation.lazy.staggeredgrid.LazyStaggeredGridState.Companion Companion; + } + + public static final class LazyStaggeredGridState.Companion { + method public androidx.compose.runtime.saveable.Saver getSaver(); + property public final androidx.compose.runtime.saveable.Saver Saver; + } + + public final class LazyStaggeredGridStateKt { + method @androidx.compose.runtime.Composable public static androidx.compose.foundation.lazy.staggeredgrid.LazyStaggeredGridState rememberLazyStaggeredGridState(optional int initialFirstVisibleItemIndex, optional int initialFirstVisibleItemScrollOffset); + } + + @androidx.compose.runtime.Stable public interface StaggeredGridCells { + method public int[] calculateCrossAxisCellSizes(androidx.compose.ui.unit.Density, int availableSize, int spacing); + } + + public static final class StaggeredGridCells.Adaptive implements androidx.compose.foundation.lazy.staggeredgrid.StaggeredGridCells { + ctor public StaggeredGridCells.Adaptive(float minSize); + method public int[] calculateCrossAxisCellSizes(androidx.compose.ui.unit.Density, int availableSize, int spacing); + } + + public static final class StaggeredGridCells.Fixed implements androidx.compose.foundation.lazy.staggeredgrid.StaggeredGridCells { + ctor public StaggeredGridCells.Fixed(int count); + method public int[] calculateCrossAxisCellSizes(androidx.compose.ui.unit.Density, int availableSize, int spacing); + } + + public static final class StaggeredGridCells.FixedSize implements androidx.compose.foundation.lazy.staggeredgrid.StaggeredGridCells { + ctor public StaggeredGridCells.FixedSize(float size); + method public int[] calculateCrossAxisCellSizes(androidx.compose.ui.unit.Density, int availableSize, int spacing); + } + + public final class StaggeredGridItemSpan { + field public static final androidx.compose.foundation.lazy.staggeredgrid.StaggeredGridItemSpan.Companion Companion; + } + + public static final class StaggeredGridItemSpan.Companion { + method public androidx.compose.foundation.lazy.staggeredgrid.StaggeredGridItemSpan getFullLine(); + method public androidx.compose.foundation.lazy.staggeredgrid.StaggeredGridItemSpan getSingleLane(); + property public final androidx.compose.foundation.lazy.staggeredgrid.StaggeredGridItemSpan FullLine; + property public final androidx.compose.foundation.lazy.staggeredgrid.StaggeredGridItemSpan SingleLane; + } + +} + +package androidx.compose.foundation.pager { + + public sealed interface PageInfo { + method public int getIndex(); + method public Object getKey(); + method public int getOffset(); + property public abstract int index; + property public abstract Object key; + property public abstract int offset; + } + + @androidx.compose.runtime.Stable public interface PageSize { + method public int calculateMainAxisPageSize(androidx.compose.ui.unit.Density, int availableSpace, int pageSpacing); + } + + public static final class PageSize.Fill implements androidx.compose.foundation.pager.PageSize { + method public int calculateMainAxisPageSize(androidx.compose.ui.unit.Density, int availableSpace, int pageSpacing); + field public static final androidx.compose.foundation.pager.PageSize.Fill INSTANCE; + } + + public static final class PageSize.Fixed implements androidx.compose.foundation.pager.PageSize { + ctor public PageSize.Fixed(float pageSize); + method public int calculateMainAxisPageSize(androidx.compose.ui.unit.Density, int availableSpace, int pageSpacing); + method public float getPageSize(); + property public final float pageSize; + } + + public final class PagerDefaults { + method @androidx.compose.runtime.Composable public androidx.compose.foundation.gestures.TargetedFlingBehavior flingBehavior(androidx.compose.foundation.pager.PagerState state, optional androidx.compose.foundation.pager.PagerSnapDistance pagerSnapDistance, optional androidx.compose.animation.core.DecayAnimationSpec decayAnimationSpec, optional androidx.compose.animation.core.AnimationSpec snapAnimationSpec, optional @FloatRange(from=0.0, to=1.0) float snapPositionalThreshold); + method @androidx.compose.runtime.Composable public androidx.compose.ui.input.nestedscroll.NestedScrollConnection pageNestedScrollConnection(androidx.compose.foundation.pager.PagerState state, androidx.compose.foundation.gestures.Orientation orientation); + field public static final int BeyondViewportPageCount = 0; // 0x0 + field public static final androidx.compose.foundation.pager.PagerDefaults INSTANCE; + } + + public final class PagerKt { + method @androidx.compose.runtime.Composable public static void HorizontalPager(androidx.compose.foundation.pager.PagerState state, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.foundation.pager.PageSize pageSize, optional int beyondViewportPageCount, optional float pageSpacing, optional androidx.compose.ui.Alignment.Vertical verticalAlignment, optional androidx.compose.foundation.gestures.TargetedFlingBehavior flingBehavior, optional boolean userScrollEnabled, optional boolean reverseLayout, optional kotlin.jvm.functions.Function1? key, optional androidx.compose.ui.input.nestedscroll.NestedScrollConnection pageNestedScrollConnection, optional androidx.compose.foundation.gestures.snapping.SnapPosition snapPosition, kotlin.jvm.functions.Function2 pageContent); + method @androidx.compose.runtime.Composable public static void VerticalPager(androidx.compose.foundation.pager.PagerState state, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.foundation.pager.PageSize pageSize, optional int beyondViewportPageCount, optional float pageSpacing, optional androidx.compose.ui.Alignment.Horizontal horizontalAlignment, optional androidx.compose.foundation.gestures.TargetedFlingBehavior flingBehavior, optional boolean userScrollEnabled, optional boolean reverseLayout, optional kotlin.jvm.functions.Function1? key, optional androidx.compose.ui.input.nestedscroll.NestedScrollConnection pageNestedScrollConnection, optional androidx.compose.foundation.gestures.snapping.SnapPosition snapPosition, kotlin.jvm.functions.Function2 pageContent); + } + + public sealed interface PagerLayoutInfo { + method public int getAfterContentPadding(); + method public int getBeforeContentPadding(); + method public int getBeyondViewportPageCount(); + method public androidx.compose.foundation.gestures.Orientation getOrientation(); + method public int getPageSize(); + method public int getPageSpacing(); + method public boolean getReverseLayout(); + method public androidx.compose.foundation.gestures.snapping.SnapPosition getSnapPosition(); + method public int getViewportEndOffset(); + method public long getViewportSize(); + method public int getViewportStartOffset(); + method public java.util.List getVisiblePagesInfo(); + property public abstract int afterContentPadding; + property public abstract int beforeContentPadding; + property public abstract int beyondViewportPageCount; + property public abstract androidx.compose.foundation.gestures.Orientation orientation; + property public abstract int pageSize; + property public abstract int pageSpacing; + property public abstract boolean reverseLayout; + property public abstract androidx.compose.foundation.gestures.snapping.SnapPosition snapPosition; + property public abstract int viewportEndOffset; + property public abstract long viewportSize; + property public abstract int viewportStartOffset; + property public abstract java.util.List visiblePagesInfo; + } + + public sealed interface PagerScope { + } + + @androidx.compose.runtime.Stable public interface PagerSnapDistance { + method public int calculateTargetPage(int startPage, int suggestedTargetPage, float velocity, int pageSize, int pageSpacing); + field public static final androidx.compose.foundation.pager.PagerSnapDistance.Companion Companion; + } + + public static final class PagerSnapDistance.Companion { + method public androidx.compose.foundation.pager.PagerSnapDistance atMost(int pages); + } + + @androidx.compose.runtime.Stable public abstract class PagerState implements androidx.compose.foundation.gestures.ScrollableState { + ctor public PagerState(optional int currentPage, optional @FloatRange(from=-0.5, to=0.5) float currentPageOffsetFraction); + method public final suspend Object? animateScrollToPage(int page, optional @FloatRange(from=-0.5, to=0.5) float pageOffsetFraction, optional androidx.compose.animation.core.AnimationSpec animationSpec, kotlin.coroutines.Continuation); + method public float dispatchRawDelta(float delta); + method public final boolean getCanScrollBackward(); + method public final boolean getCanScrollForward(); + method public final int getCurrentPage(); + method public final float getCurrentPageOffsetFraction(); + method public final androidx.compose.foundation.interaction.InteractionSource getInteractionSource(); + method public final androidx.compose.foundation.pager.PagerLayoutInfo getLayoutInfo(); + method public final float getOffsetDistanceInPages(int page); + method public abstract int getPageCount(); + method public final int getSettledPage(); + method public final int getTargetPage(); + method public boolean isScrollInProgress(); + method public final void requestScrollToPage(@IntRange(from=0L) int page, optional @FloatRange(from=-0.5, to=0.5) float pageOffsetFraction); + method public suspend Object? scroll(androidx.compose.foundation.MutatePriority scrollPriority, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + method public final suspend Object? scrollToPage(int page, optional @FloatRange(from=-0.5, to=0.5) float pageOffsetFraction, kotlin.coroutines.Continuation); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public final void updateCurrentPage(androidx.compose.foundation.gestures.ScrollScope, int page, optional @FloatRange(from=-0.5, to=0.5) float pageOffsetFraction); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public final void updateTargetPage(androidx.compose.foundation.gestures.ScrollScope, int targetPage); + property public final boolean canScrollBackward; + property public final boolean canScrollForward; + property public final int currentPage; + property public final float currentPageOffsetFraction; + property public final androidx.compose.foundation.interaction.InteractionSource interactionSource; + property public boolean isScrollInProgress; + property public boolean lastScrolledBackward; + property public boolean lastScrolledForward; + property public final androidx.compose.foundation.pager.PagerLayoutInfo layoutInfo; + property public abstract int pageCount; + property public final int settledPage; + property public final int targetPage; + } + + public final class PagerStateKt { + method public static androidx.compose.foundation.pager.PagerState PagerState(optional int currentPage, optional @FloatRange(from=-0.5, to=0.5) float currentPageOffsetFraction, kotlin.jvm.functions.Function0 pageCount); + method @androidx.compose.runtime.Composable public static androidx.compose.foundation.pager.PagerState rememberPagerState(optional int initialPage, optional @FloatRange(from=-0.5, to=0.5) float initialPageOffsetFraction, kotlin.jvm.functions.Function0 pageCount); + } + +} + +package androidx.compose.foundation.relocation { + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public sealed interface BringIntoViewRequester { + method public suspend Object? bringIntoView(optional androidx.compose.ui.geometry.Rect? rect, kotlin.coroutines.Continuation); + } + + public final class BringIntoViewRequesterKt { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.foundation.relocation.BringIntoViewRequester BringIntoViewRequester(); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier bringIntoViewRequester(androidx.compose.ui.Modifier, androidx.compose.foundation.relocation.BringIntoViewRequester bringIntoViewRequester); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static androidx.compose.ui.Modifier bringIntoViewResponder(androidx.compose.ui.Modifier, androidx.compose.foundation.relocation.BringIntoViewResponder responder); + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public interface BringIntoViewResponder { + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public suspend Object? bringChildIntoView(kotlin.jvm.functions.Function0 localRect, kotlin.coroutines.Continuation); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public androidx.compose.ui.geometry.Rect calculateRectForParent(androidx.compose.ui.geometry.Rect localRect); + } + +} + +package androidx.compose.foundation.selection { + + public final class SelectableGroupKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier selectableGroup(androidx.compose.ui.Modifier); + } + + public final class SelectableKt { + method public static androidx.compose.ui.Modifier selectable(androidx.compose.ui.Modifier, boolean selected, androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, androidx.compose.foundation.Indication? indication, optional boolean enabled, optional androidx.compose.ui.semantics.Role? role, kotlin.jvm.functions.Function0 onClick); + method public static androidx.compose.ui.Modifier selectable(androidx.compose.ui.Modifier, boolean selected, optional boolean enabled, optional androidx.compose.ui.semantics.Role? role, kotlin.jvm.functions.Function0 onClick); + } + + public final class ToggleableKt { + method public static androidx.compose.ui.Modifier toggleable(androidx.compose.ui.Modifier, boolean value, androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, androidx.compose.foundation.Indication? indication, optional boolean enabled, optional androidx.compose.ui.semantics.Role? role, kotlin.jvm.functions.Function1 onValueChange); + method public static androidx.compose.ui.Modifier toggleable(androidx.compose.ui.Modifier, boolean value, optional boolean enabled, optional androidx.compose.ui.semantics.Role? role, kotlin.jvm.functions.Function1 onValueChange); + method public static androidx.compose.ui.Modifier triStateToggleable(androidx.compose.ui.Modifier, androidx.compose.ui.state.ToggleableState state, androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, androidx.compose.foundation.Indication? indication, optional boolean enabled, optional androidx.compose.ui.semantics.Role? role, kotlin.jvm.functions.Function0 onClick); + method public static androidx.compose.ui.Modifier triStateToggleable(androidx.compose.ui.Modifier, androidx.compose.ui.state.ToggleableState state, optional boolean enabled, optional androidx.compose.ui.semantics.Role? role, kotlin.jvm.functions.Function0 onClick); + } + +} + +package androidx.compose.foundation.shape { + + public final class AbsoluteCutCornerShape extends androidx.compose.foundation.shape.CornerBasedShape { + ctor public AbsoluteCutCornerShape(androidx.compose.foundation.shape.CornerSize topLeft, androidx.compose.foundation.shape.CornerSize topRight, androidx.compose.foundation.shape.CornerSize bottomRight, androidx.compose.foundation.shape.CornerSize bottomLeft); + method public androidx.compose.foundation.shape.AbsoluteCutCornerShape copy(androidx.compose.foundation.shape.CornerSize topStart, androidx.compose.foundation.shape.CornerSize topEnd, androidx.compose.foundation.shape.CornerSize bottomEnd, androidx.compose.foundation.shape.CornerSize bottomStart); + method public androidx.compose.ui.graphics.Outline createOutline(long size, float topStart, float topEnd, float bottomEnd, float bottomStart, androidx.compose.ui.unit.LayoutDirection layoutDirection); + } + + public final class AbsoluteCutCornerShapeKt { + method public static androidx.compose.foundation.shape.AbsoluteCutCornerShape AbsoluteCutCornerShape(androidx.compose.foundation.shape.CornerSize corner); + method public static androidx.compose.foundation.shape.AbsoluteCutCornerShape AbsoluteCutCornerShape(float size); + method public static androidx.compose.foundation.shape.AbsoluteCutCornerShape AbsoluteCutCornerShape(float size); + method public static androidx.compose.foundation.shape.AbsoluteCutCornerShape AbsoluteCutCornerShape(optional float topLeft, optional float topRight, optional float bottomRight, optional float bottomLeft); + method public static androidx.compose.foundation.shape.AbsoluteCutCornerShape AbsoluteCutCornerShape(optional float topLeft, optional float topRight, optional float bottomRight, optional float bottomLeft); + method public static androidx.compose.foundation.shape.AbsoluteCutCornerShape AbsoluteCutCornerShape(int percent); + method public static androidx.compose.foundation.shape.AbsoluteCutCornerShape AbsoluteCutCornerShape(optional @IntRange(from=0L, to=100L) int topLeftPercent, optional @IntRange(from=0L, to=100L) int topRightPercent, optional @IntRange(from=0L, to=100L) int bottomRightPercent, optional @IntRange(from=0L, to=100L) int bottomLeftPercent); + } + + public final class AbsoluteRoundedCornerShape extends androidx.compose.foundation.shape.CornerBasedShape { + ctor public AbsoluteRoundedCornerShape(androidx.compose.foundation.shape.CornerSize topLeft, androidx.compose.foundation.shape.CornerSize topRight, androidx.compose.foundation.shape.CornerSize bottomRight, androidx.compose.foundation.shape.CornerSize bottomLeft); + method public androidx.compose.foundation.shape.AbsoluteRoundedCornerShape copy(androidx.compose.foundation.shape.CornerSize topStart, androidx.compose.foundation.shape.CornerSize topEnd, androidx.compose.foundation.shape.CornerSize bottomEnd, androidx.compose.foundation.shape.CornerSize bottomStart); + method public androidx.compose.ui.graphics.Outline createOutline(long size, float topStart, float topEnd, float bottomEnd, float bottomStart, androidx.compose.ui.unit.LayoutDirection layoutDirection); + } + + public final class AbsoluteRoundedCornerShapeKt { + method public static androidx.compose.foundation.shape.AbsoluteRoundedCornerShape AbsoluteRoundedCornerShape(androidx.compose.foundation.shape.CornerSize corner); + method public static androidx.compose.foundation.shape.AbsoluteRoundedCornerShape AbsoluteRoundedCornerShape(float size); + method public static androidx.compose.foundation.shape.AbsoluteRoundedCornerShape AbsoluteRoundedCornerShape(float size); + method public static androidx.compose.foundation.shape.AbsoluteRoundedCornerShape AbsoluteRoundedCornerShape(optional float topLeft, optional float topRight, optional float bottomRight, optional float bottomLeft); + method public static androidx.compose.foundation.shape.AbsoluteRoundedCornerShape AbsoluteRoundedCornerShape(optional float topLeft, optional float topRight, optional float bottomRight, optional float bottomLeft); + method public static androidx.compose.foundation.shape.AbsoluteRoundedCornerShape AbsoluteRoundedCornerShape(int percent); + method public static androidx.compose.foundation.shape.AbsoluteRoundedCornerShape AbsoluteRoundedCornerShape(optional @IntRange(from=0L, to=100L) int topLeftPercent, optional @IntRange(from=0L, to=100L) int topRightPercent, optional @IntRange(from=0L, to=100L) int bottomRightPercent, optional @IntRange(from=0L, to=100L) int bottomLeftPercent); + } + + public abstract class CornerBasedShape implements androidx.compose.ui.graphics.Shape { + ctor public CornerBasedShape(androidx.compose.foundation.shape.CornerSize topStart, androidx.compose.foundation.shape.CornerSize topEnd, androidx.compose.foundation.shape.CornerSize bottomEnd, androidx.compose.foundation.shape.CornerSize bottomStart); + method public final androidx.compose.foundation.shape.CornerBasedShape copy(androidx.compose.foundation.shape.CornerSize all); + method public abstract androidx.compose.foundation.shape.CornerBasedShape copy(optional androidx.compose.foundation.shape.CornerSize topStart, optional androidx.compose.foundation.shape.CornerSize topEnd, optional androidx.compose.foundation.shape.CornerSize bottomEnd, optional androidx.compose.foundation.shape.CornerSize bottomStart); + method public final androidx.compose.ui.graphics.Outline createOutline(long size, androidx.compose.ui.unit.LayoutDirection layoutDirection, androidx.compose.ui.unit.Density density); + method public abstract androidx.compose.ui.graphics.Outline createOutline(long size, float topStart, float topEnd, float bottomEnd, float bottomStart, androidx.compose.ui.unit.LayoutDirection layoutDirection); + method public final androidx.compose.foundation.shape.CornerSize getBottomEnd(); + method public final androidx.compose.foundation.shape.CornerSize getBottomStart(); + method public final androidx.compose.foundation.shape.CornerSize getTopEnd(); + method public final androidx.compose.foundation.shape.CornerSize getTopStart(); + property public final androidx.compose.foundation.shape.CornerSize bottomEnd; + property public final androidx.compose.foundation.shape.CornerSize bottomStart; + property public final androidx.compose.foundation.shape.CornerSize topEnd; + property public final androidx.compose.foundation.shape.CornerSize topStart; + } + + @androidx.compose.runtime.Immutable public interface CornerSize { + method public float toPx(long shapeSize, androidx.compose.ui.unit.Density density); + } + + public final class CornerSizeKt { + method @androidx.compose.runtime.Stable public static androidx.compose.foundation.shape.CornerSize CornerSize(float size); + method @androidx.compose.runtime.Stable public static androidx.compose.foundation.shape.CornerSize CornerSize(float size); + method @androidx.compose.runtime.Stable public static androidx.compose.foundation.shape.CornerSize CornerSize(@IntRange(from=0L, to=100L) int percent); + method public static androidx.compose.foundation.shape.CornerSize getZeroCornerSize(); + property public static final androidx.compose.foundation.shape.CornerSize ZeroCornerSize; + } + + public final class CutCornerShape extends androidx.compose.foundation.shape.CornerBasedShape { + ctor public CutCornerShape(androidx.compose.foundation.shape.CornerSize topStart, androidx.compose.foundation.shape.CornerSize topEnd, androidx.compose.foundation.shape.CornerSize bottomEnd, androidx.compose.foundation.shape.CornerSize bottomStart); + method public androidx.compose.foundation.shape.CutCornerShape copy(androidx.compose.foundation.shape.CornerSize topStart, androidx.compose.foundation.shape.CornerSize topEnd, androidx.compose.foundation.shape.CornerSize bottomEnd, androidx.compose.foundation.shape.CornerSize bottomStart); + method public androidx.compose.ui.graphics.Outline createOutline(long size, float topStart, float topEnd, float bottomEnd, float bottomStart, androidx.compose.ui.unit.LayoutDirection layoutDirection); + } + + public final class CutCornerShapeKt { + method public static androidx.compose.foundation.shape.CutCornerShape CutCornerShape(androidx.compose.foundation.shape.CornerSize corner); + method public static androidx.compose.foundation.shape.CutCornerShape CutCornerShape(float size); + method public static androidx.compose.foundation.shape.CutCornerShape CutCornerShape(float size); + method public static androidx.compose.foundation.shape.CutCornerShape CutCornerShape(optional float topStart, optional float topEnd, optional float bottomEnd, optional float bottomStart); + method public static androidx.compose.foundation.shape.CutCornerShape CutCornerShape(optional float topStart, optional float topEnd, optional float bottomEnd, optional float bottomStart); + method public static androidx.compose.foundation.shape.CutCornerShape CutCornerShape(int percent); + method public static androidx.compose.foundation.shape.CutCornerShape CutCornerShape(optional @IntRange(from=0L, to=100L) int topStartPercent, optional @IntRange(from=0L, to=100L) int topEndPercent, optional @IntRange(from=0L, to=100L) int bottomEndPercent, optional @IntRange(from=0L, to=100L) int bottomStartPercent); + } + + public final class GenericShape implements androidx.compose.ui.graphics.Shape { + ctor public GenericShape(kotlin.jvm.functions.Function3 builder); + method public androidx.compose.ui.graphics.Outline createOutline(long size, androidx.compose.ui.unit.LayoutDirection layoutDirection, androidx.compose.ui.unit.Density density); + } + + public final class RoundedCornerShape extends androidx.compose.foundation.shape.CornerBasedShape { + ctor public RoundedCornerShape(androidx.compose.foundation.shape.CornerSize topStart, androidx.compose.foundation.shape.CornerSize topEnd, androidx.compose.foundation.shape.CornerSize bottomEnd, androidx.compose.foundation.shape.CornerSize bottomStart); + method public androidx.compose.foundation.shape.RoundedCornerShape copy(androidx.compose.foundation.shape.CornerSize topStart, androidx.compose.foundation.shape.CornerSize topEnd, androidx.compose.foundation.shape.CornerSize bottomEnd, androidx.compose.foundation.shape.CornerSize bottomStart); + method public androidx.compose.ui.graphics.Outline createOutline(long size, float topStart, float topEnd, float bottomEnd, float bottomStart, androidx.compose.ui.unit.LayoutDirection layoutDirection); + } + + public final class RoundedCornerShapeKt { + method public static androidx.compose.foundation.shape.RoundedCornerShape RoundedCornerShape(androidx.compose.foundation.shape.CornerSize corner); + method public static androidx.compose.foundation.shape.RoundedCornerShape RoundedCornerShape(float size); + method public static androidx.compose.foundation.shape.RoundedCornerShape RoundedCornerShape(float size); + method public static androidx.compose.foundation.shape.RoundedCornerShape RoundedCornerShape(optional float topStart, optional float topEnd, optional float bottomEnd, optional float bottomStart); + method public static androidx.compose.foundation.shape.RoundedCornerShape RoundedCornerShape(optional float topStart, optional float topEnd, optional float bottomEnd, optional float bottomStart); + method public static androidx.compose.foundation.shape.RoundedCornerShape RoundedCornerShape(int percent); + method public static androidx.compose.foundation.shape.RoundedCornerShape RoundedCornerShape(optional @IntRange(from=0L, to=100L) int topStartPercent, optional @IntRange(from=0L, to=100L) int topEndPercent, optional @IntRange(from=0L, to=100L) int bottomEndPercent, optional @IntRange(from=0L, to=100L) int bottomStartPercent); + method public static androidx.compose.foundation.shape.RoundedCornerShape getCircleShape(); + property public static final androidx.compose.foundation.shape.RoundedCornerShape CircleShape; + } + +} + +package androidx.compose.foundation.text { + + public final class BasicSecureTextFieldKt { + method @androidx.compose.runtime.Composable public static void BasicSecureTextField(androidx.compose.foundation.text.input.TextFieldState state, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.text.input.InputTransformation? inputTransformation, optional androidx.compose.ui.text.TextStyle textStyle, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.input.KeyboardActionHandler? onKeyboardAction, optional kotlin.jvm.functions.Function2,kotlin.Unit>? onTextLayout, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.ui.graphics.Brush cursorBrush, optional androidx.compose.foundation.text.input.TextFieldDecorator? decorator, optional int textObfuscationMode, optional char textObfuscationCharacter); + } + + public final class BasicTextFieldKt { + method @androidx.compose.runtime.Composable public static void BasicTextField(androidx.compose.foundation.text.input.TextFieldState state, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.foundation.text.input.InputTransformation? inputTransformation, optional androidx.compose.ui.text.TextStyle textStyle, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.input.KeyboardActionHandler? onKeyboardAction, optional androidx.compose.foundation.text.input.TextFieldLineLimits lineLimits, optional kotlin.jvm.functions.Function2,kotlin.Unit>? onTextLayout, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.ui.graphics.Brush cursorBrush, optional androidx.compose.foundation.text.input.OutputTransformation? outputTransformation, optional androidx.compose.foundation.text.input.TextFieldDecorator? decorator, optional androidx.compose.foundation.ScrollState scrollState); + method @Deprecated @androidx.compose.runtime.Composable public static void BasicTextField(androidx.compose.ui.text.input.TextFieldValue value, kotlin.jvm.functions.Function1 onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional kotlin.jvm.functions.Function1 onTextLayout, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Brush cursorBrush, optional kotlin.jvm.functions.Function1,kotlin.Unit> decorationBox); + method @androidx.compose.runtime.Composable public static void BasicTextField(androidx.compose.ui.text.input.TextFieldValue value, kotlin.jvm.functions.Function1 onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional int minLines, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional kotlin.jvm.functions.Function1 onTextLayout, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.ui.graphics.Brush cursorBrush, optional kotlin.jvm.functions.Function1,kotlin.Unit> decorationBox); + method @Deprecated @androidx.compose.runtime.Composable public static void BasicTextField(String value, kotlin.jvm.functions.Function1 onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional kotlin.jvm.functions.Function1 onTextLayout, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Brush cursorBrush, optional kotlin.jvm.functions.Function1,kotlin.Unit> decorationBox); + method @androidx.compose.runtime.Composable public static void BasicTextField(String value, kotlin.jvm.functions.Function1 onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional int minLines, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional kotlin.jvm.functions.Function1 onTextLayout, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.ui.graphics.Brush cursorBrush, optional kotlin.jvm.functions.Function1,kotlin.Unit> decorationBox); + } + + public final class BasicTextKt { + method @Deprecated @androidx.compose.runtime.Composable public static void BasicText(androidx.compose.ui.text.AnnotatedString text, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.text.TextStyle style, optional kotlin.jvm.functions.Function1? onTextLayout, optional int overflow, optional boolean softWrap, optional int maxLines, optional int minLines, optional java.util.Map inlineContent); + method @androidx.compose.runtime.Composable public static void BasicText(androidx.compose.ui.text.AnnotatedString text, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.text.TextStyle style, optional kotlin.jvm.functions.Function1? onTextLayout, optional int overflow, optional boolean softWrap, optional int maxLines, optional int minLines, optional java.util.Map inlineContent, optional androidx.compose.ui.graphics.ColorProducer? color); + method @Deprecated @androidx.compose.runtime.Composable public static void BasicText(androidx.compose.ui.text.AnnotatedString text, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.text.TextStyle style, optional kotlin.jvm.functions.Function1? onTextLayout, optional int overflow, optional boolean softWrap, optional int maxLines, optional java.util.Map inlineContent); + method @Deprecated @androidx.compose.runtime.Composable public static void BasicText(String text, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.text.TextStyle style, optional kotlin.jvm.functions.Function1? onTextLayout, optional int overflow, optional boolean softWrap, optional int maxLines); + method @Deprecated @androidx.compose.runtime.Composable public static void BasicText(String text, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.text.TextStyle style, optional kotlin.jvm.functions.Function1? onTextLayout, optional int overflow, optional boolean softWrap, optional int maxLines, optional int minLines); + method @androidx.compose.runtime.Composable public static void BasicText(String text, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.text.TextStyle style, optional kotlin.jvm.functions.Function1? onTextLayout, optional int overflow, optional boolean softWrap, optional int maxLines, optional int minLines, optional androidx.compose.ui.graphics.ColorProducer? color); + } + + public final class ClickableTextKt { + method @Deprecated @androidx.compose.runtime.Composable public static void ClickableText(androidx.compose.ui.text.AnnotatedString text, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.text.TextStyle style, optional boolean softWrap, optional int overflow, optional int maxLines, optional kotlin.jvm.functions.Function1 onTextLayout, kotlin.jvm.functions.Function1 onClick); + method @Deprecated @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi @androidx.compose.runtime.Composable public static void ClickableText(androidx.compose.ui.text.AnnotatedString text, kotlin.jvm.functions.Function1 onHover, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.text.TextStyle style, optional boolean softWrap, optional int overflow, optional int maxLines, optional kotlin.jvm.functions.Function1 onTextLayout, kotlin.jvm.functions.Function1 onClick); + } + + @androidx.compose.runtime.Immutable public final class InlineTextContent { + ctor public InlineTextContent(androidx.compose.ui.text.Placeholder placeholder, kotlin.jvm.functions.Function1 children); + method public kotlin.jvm.functions.Function1 getChildren(); + method public androidx.compose.ui.text.Placeholder getPlaceholder(); + property public final kotlin.jvm.functions.Function1 children; + property public final androidx.compose.ui.text.Placeholder placeholder; + } + + public final class InlineTextContentKt { + method public static void appendInlineContent(androidx.compose.ui.text.AnnotatedString.Builder, String id, optional String alternateText); + } + + @SuppressCompatibility @kotlin.RequiresOptIn(message="Internal/Unstable API for use only between foundation modules sharing " + "the same exact version, subject to change without notice.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER, kotlin.annotation.AnnotationTarget.PROPERTY_SETTER}) public @interface InternalFoundationTextApi { + } + + public interface KeyboardActionScope { + method public void defaultKeyboardAction(int imeAction); + } + + @androidx.compose.runtime.Stable public final class KeyboardActions { + ctor public KeyboardActions(optional kotlin.jvm.functions.Function1? onDone, optional kotlin.jvm.functions.Function1? onGo, optional kotlin.jvm.functions.Function1? onNext, optional kotlin.jvm.functions.Function1? onPrevious, optional kotlin.jvm.functions.Function1? onSearch, optional kotlin.jvm.functions.Function1? onSend); + method public kotlin.jvm.functions.Function1? getOnDone(); + method public kotlin.jvm.functions.Function1? getOnGo(); + method public kotlin.jvm.functions.Function1? getOnNext(); + method public kotlin.jvm.functions.Function1? getOnPrevious(); + method public kotlin.jvm.functions.Function1? getOnSearch(); + method public kotlin.jvm.functions.Function1? getOnSend(); + property public final kotlin.jvm.functions.Function1? onDone; + property public final kotlin.jvm.functions.Function1? onGo; + property public final kotlin.jvm.functions.Function1? onNext; + property public final kotlin.jvm.functions.Function1? onPrevious; + property public final kotlin.jvm.functions.Function1? onSearch; + property public final kotlin.jvm.functions.Function1? onSend; + field public static final androidx.compose.foundation.text.KeyboardActions.Companion Companion; + } + + public static final class KeyboardActions.Companion { + method public androidx.compose.foundation.text.KeyboardActions getDefault(); + property public final androidx.compose.foundation.text.KeyboardActions Default; + } + + public final class KeyboardActionsKt { + method public static androidx.compose.foundation.text.KeyboardActions KeyboardActions(kotlin.jvm.functions.Function1 onAny); + } + + @androidx.compose.runtime.Immutable public final class KeyboardOptions { + ctor @Deprecated public KeyboardOptions(optional int capitalization, optional boolean autoCorrect, optional int keyboardType, optional int imeAction); + ctor @Deprecated public KeyboardOptions(optional int capitalization, optional boolean autoCorrect, optional int keyboardType, optional int imeAction, optional androidx.compose.ui.text.input.PlatformImeOptions? platformImeOptions); + ctor @Deprecated public KeyboardOptions(optional int capitalization, boolean autoCorrect, optional int keyboardType, optional int imeAction, optional androidx.compose.ui.text.input.PlatformImeOptions? platformImeOptions, optional Boolean? showKeyboardOnFocus, optional androidx.compose.ui.text.intl.LocaleList? hintLocales); + ctor public KeyboardOptions(optional int capitalization, optional Boolean? autoCorrectEnabled, optional int keyboardType, optional int imeAction, optional androidx.compose.ui.text.input.PlatformImeOptions? platformImeOptions, optional Boolean? showKeyboardOnFocus, optional androidx.compose.ui.text.intl.LocaleList? hintLocales); + method @Deprecated public androidx.compose.foundation.text.KeyboardOptions copy(optional int capitalization, optional boolean autoCorrect, optional int keyboardType, optional int imeAction); + method @Deprecated public androidx.compose.foundation.text.KeyboardOptions copy(optional int capitalization, optional boolean autoCorrect, optional int keyboardType, optional int imeAction, optional androidx.compose.ui.text.input.PlatformImeOptions? platformImeOptions); + method @Deprecated public androidx.compose.foundation.text.KeyboardOptions copy(optional int capitalization, optional boolean autoCorrect, optional int keyboardType, optional int imeAction, optional androidx.compose.ui.text.input.PlatformImeOptions? platformImeOptions, optional Boolean? showKeyboardOnFocus, optional androidx.compose.ui.text.intl.LocaleList? hintLocales); + method public androidx.compose.foundation.text.KeyboardOptions copy(optional int capitalization, optional Boolean? autoCorrectEnabled, optional int keyboardType, optional int imeAction, optional androidx.compose.ui.text.input.PlatformImeOptions? platformImeOptions, optional Boolean? showKeyboardOnFocus, optional androidx.compose.ui.text.intl.LocaleList? hintLocales); + method @Deprecated public boolean getAutoCorrect(); + method public Boolean? getAutoCorrectEnabled(); + method public int getCapitalization(); + method public androidx.compose.ui.text.intl.LocaleList? getHintLocales(); + method public int getImeAction(); + method public int getKeyboardType(); + method public androidx.compose.ui.text.input.PlatformImeOptions? getPlatformImeOptions(); + method public boolean getShouldShowKeyboardOnFocus(); + method public Boolean? getShowKeyboardOnFocus(); + method public androidx.compose.foundation.text.KeyboardOptions merge(androidx.compose.foundation.text.KeyboardOptions? other); + property @Deprecated public final boolean autoCorrect; + property public final Boolean? autoCorrectEnabled; + property public final int capitalization; + property public final androidx.compose.ui.text.intl.LocaleList? hintLocales; + property public final int imeAction; + property public final int keyboardType; + property public final androidx.compose.ui.text.input.PlatformImeOptions? platformImeOptions; + property public boolean shouldShowKeyboardOnFocus; + property public final Boolean? showKeyboardOnFocus; + field public static final androidx.compose.foundation.text.KeyboardOptions.Companion Companion; + } + + public static final class KeyboardOptions.Companion { + method public androidx.compose.foundation.text.KeyboardOptions getDefault(); + property public final androidx.compose.foundation.text.KeyboardOptions Default; + } + +} + +package androidx.compose.foundation.text.handwriting { + + public final class HandwritingDetector_androidKt { + method public static androidx.compose.ui.Modifier handwritingDetector(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function0 callback); + } + + public final class HandwritingHandler_androidKt { + method public static androidx.compose.ui.Modifier handwritingHandler(androidx.compose.ui.Modifier); + } + +} + +package androidx.compose.foundation.text.input { + + @androidx.compose.runtime.Stable public fun interface InputTransformation { + method public default void applySemantics(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public default androidx.compose.foundation.text.KeyboardOptions? getKeyboardOptions(); + method public void transformInput(androidx.compose.foundation.text.input.TextFieldBuffer); + property public default androidx.compose.foundation.text.KeyboardOptions? keyboardOptions; + field public static final androidx.compose.foundation.text.input.InputTransformation.Companion Companion; + } + + public static final class InputTransformation.Companion implements androidx.compose.foundation.text.input.InputTransformation { + method public void transformInput(androidx.compose.foundation.text.input.TextFieldBuffer); + } + + public final class InputTransformationKt { + method @androidx.compose.runtime.Stable public static androidx.compose.foundation.text.input.InputTransformation allCaps(androidx.compose.foundation.text.input.InputTransformation, androidx.compose.ui.text.intl.Locale locale); + method @androidx.compose.runtime.Stable public static androidx.compose.foundation.text.input.InputTransformation byValue(androidx.compose.foundation.text.input.InputTransformation, kotlin.jvm.functions.Function2 transformation); + method @androidx.compose.runtime.Stable public static androidx.compose.foundation.text.input.InputTransformation maxLength(androidx.compose.foundation.text.input.InputTransformation, int maxLength); + method @androidx.compose.runtime.Stable public static androidx.compose.foundation.text.input.InputTransformation then(androidx.compose.foundation.text.input.InputTransformation, androidx.compose.foundation.text.input.InputTransformation next); + } + + @androidx.compose.runtime.Stable public fun interface KeyboardActionHandler { + method public void onKeyboardAction(kotlin.jvm.functions.Function0 performDefaultAction); + } + + @androidx.compose.runtime.Stable public fun interface OutputTransformation { + method public void transformOutput(androidx.compose.foundation.text.input.TextFieldBuffer); + } + + public final class TextFieldBuffer implements java.lang.Appendable { + method public Appendable append(char char); + method public Appendable append(CharSequence? text); + method public Appendable append(CharSequence? text, int start, int end); + method public CharSequence asCharSequence(); + method public char charAt(int index); + method public androidx.compose.foundation.text.input.TextFieldBuffer.ChangeList getChanges(); + method public int getLength(); + method public long getOriginalSelection(); + method public CharSequence getOriginalText(); + method public long getSelection(); + method public boolean hasSelection(); + method public void placeCursorAfterCharAt(int index); + method public void placeCursorBeforeCharAt(int index); + method public void replace(int start, int end, CharSequence text); + method public void revertAllChanges(); + method public void setSelection(long); + property @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public final androidx.compose.foundation.text.input.TextFieldBuffer.ChangeList changes; + property public final boolean hasSelection; + property public final int length; + property public final long originalSelection; + property public final CharSequence originalText; + property public final long selection; + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static interface TextFieldBuffer.ChangeList { + method public int getChangeCount(); + method public long getOriginalRange(int changeIndex); + method public long getRange(int changeIndex); + property public abstract int changeCount; + } + + public final class TextFieldBufferKt { + method public static void delete(androidx.compose.foundation.text.input.TextFieldBuffer, int start, int end); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static inline void forEachChange(androidx.compose.foundation.text.input.TextFieldBuffer.ChangeList, kotlin.jvm.functions.Function2 block); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public static inline void forEachChangeReversed(androidx.compose.foundation.text.input.TextFieldBuffer.ChangeList, kotlin.jvm.functions.Function2 block); + method public static void insert(androidx.compose.foundation.text.input.TextFieldBuffer, int index, String text); + method public static void placeCursorAtEnd(androidx.compose.foundation.text.input.TextFieldBuffer); + method public static void selectAll(androidx.compose.foundation.text.input.TextFieldBuffer); + } + + public fun interface TextFieldDecorator { + method @androidx.compose.runtime.Composable public void Decoration(kotlin.jvm.functions.Function0 innerTextField); + } + + @androidx.compose.runtime.Stable public sealed interface TextFieldLineLimits { + field public static final androidx.compose.foundation.text.input.TextFieldLineLimits.Companion Companion; + } + + public static final class TextFieldLineLimits.Companion { + method public androidx.compose.foundation.text.input.TextFieldLineLimits getDefault(); + property public final androidx.compose.foundation.text.input.TextFieldLineLimits Default; + } + + @androidx.compose.runtime.Immutable public static final class TextFieldLineLimits.MultiLine implements androidx.compose.foundation.text.input.TextFieldLineLimits { + ctor public TextFieldLineLimits.MultiLine(optional int minHeightInLines, optional int maxHeightInLines); + method public int getMaxHeightInLines(); + method public int getMinHeightInLines(); + property public final int maxHeightInLines; + property public final int minHeightInLines; + } + + public static final class TextFieldLineLimits.SingleLine implements androidx.compose.foundation.text.input.TextFieldLineLimits { + field public static final androidx.compose.foundation.text.input.TextFieldLineLimits.SingleLine INSTANCE; + } + + @androidx.compose.runtime.Stable public final class TextFieldState { + ctor public TextFieldState(optional String initialText, optional long initialSelection); + method @kotlin.PublishedApi internal void commitEdit(androidx.compose.foundation.text.input.TextFieldBuffer newValue); + method public inline void edit(kotlin.jvm.functions.Function1 block); + method @kotlin.PublishedApi internal void finishEditing(); + method public androidx.compose.ui.text.TextRange? getComposition(); + method public long getSelection(); + method public CharSequence getText(); + method @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public androidx.compose.foundation.text.input.UndoState getUndoState(); + method @kotlin.PublishedApi internal androidx.compose.foundation.text.input.TextFieldBuffer startEdit(); + property public final androidx.compose.ui.text.TextRange? composition; + property public final long selection; + property public final CharSequence text; + property @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public final androidx.compose.foundation.text.input.UndoState undoState; + } + + public static final class TextFieldState.Saver implements androidx.compose.runtime.saveable.Saver { + method public androidx.compose.foundation.text.input.TextFieldState? restore(Object value); + method public Object? save(androidx.compose.runtime.saveable.SaverScope, androidx.compose.foundation.text.input.TextFieldState value); + field public static final androidx.compose.foundation.text.input.TextFieldState.Saver INSTANCE; + } + + public final class TextFieldStateKt { + method public static void clearText(androidx.compose.foundation.text.input.TextFieldState); + method @androidx.compose.runtime.Composable public static androidx.compose.foundation.text.input.TextFieldState rememberTextFieldState(optional String initialText, optional long initialSelection); + method public static void setTextAndPlaceCursorAtEnd(androidx.compose.foundation.text.input.TextFieldState, String text); + method public static void setTextAndSelectAll(androidx.compose.foundation.text.input.TextFieldState, String text); + } + + @kotlin.jvm.JvmInline public final value class TextObfuscationMode { + method public int getValue(); + property public final int value; + field public static final androidx.compose.foundation.text.input.TextObfuscationMode.Companion Companion; + } + + public static final class TextObfuscationMode.Companion { + method public int getHidden(); + method public int getRevealLastTyped(); + method public int getVisible(); + property public final int Hidden; + property public final int RevealLastTyped; + property public final int Visible; + } + + @SuppressCompatibility @androidx.compose.foundation.ExperimentalFoundationApi public final class UndoState { + method public void clearHistory(); + method public boolean getCanRedo(); + method public boolean getCanUndo(); + method public void redo(); + method public void undo(); + property public final boolean canRedo; + property public final boolean canUndo; + } + +} + +package androidx.compose.foundation.text.selection { + + public final class SelectionContainerKt { + method @androidx.compose.runtime.Composable public static void DisableSelection(kotlin.jvm.functions.Function0 content); + method @androidx.compose.runtime.Composable public static void SelectionContainer(optional androidx.compose.ui.Modifier modifier, kotlin.jvm.functions.Function0 content); + } + + @androidx.compose.runtime.Immutable public final class TextSelectionColors { + ctor public TextSelectionColors(long handleColor, long backgroundColor); + method public long getBackgroundColor(); + method public long getHandleColor(); + property public final long backgroundColor; + property public final long handleColor; + } + + public final class TextSelectionColorsKt { + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalTextSelectionColors(); + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalTextSelectionColors; + } + +} + diff --git a/compose/foundation/foundation/integration-tests/lazy-tests/src/androidTest/kotlin/androidx/compose/foundation/ScrollableUtils.kt b/compose/foundation/foundation/integration-tests/lazy-tests/src/androidTest/kotlin/androidx/compose/foundation/ScrollableUtils.kt index f09cbd5961346..18eedb5056b70 100644 --- a/compose/foundation/foundation/integration-tests/lazy-tests/src/androidTest/kotlin/androidx/compose/foundation/ScrollableUtils.kt +++ b/compose/foundation/foundation/integration-tests/lazy-tests/src/androidTest/kotlin/androidx/compose/foundation/ScrollableUtils.kt @@ -22,6 +22,7 @@ import androidx.compose.ui.input.pointer.PointerInputChange import androidx.compose.ui.input.pointer.PointerInputScope import androidx.compose.ui.input.pointer.changedToUpIgnoreConsumed import androidx.compose.ui.input.pointer.util.VelocityTracker +import androidx.compose.ui.input.pointer.util.VelocityTrackerAddPointsFix import androidx.compose.ui.platform.AbstractComposeView import androidx.compose.ui.util.fastForEach import androidx.test.espresso.Espresso @@ -41,7 +42,11 @@ internal suspend fun savePointerInputEvents( tracker: VelocityTracker, pointerInputScope: PointerInputScope ) { - savePointerInputEventsWithFix(tracker, pointerInputScope) + if (VelocityTrackerAddPointsFix) { + savePointerInputEventsWithFix(tracker, pointerInputScope) + } else { + savePointerInputEventsLegacy(tracker, pointerInputScope) + } } @OptIn(ExperimentalComposeUiApi::class) diff --git a/compose/foundation/foundation/integration-tests/lazy-tests/src/androidTest/kotlin/androidx/compose/foundation/lazy/list/LazyListItemPlacementAnimationTest.kt b/compose/foundation/foundation/integration-tests/lazy-tests/src/androidTest/kotlin/androidx/compose/foundation/lazy/list/LazyListItemPlacementAnimationTest.kt index 47420471aa065..79a76be6a1508 100644 --- a/compose/foundation/foundation/integration-tests/lazy-tests/src/androidTest/kotlin/androidx/compose/foundation/lazy/list/LazyListItemPlacementAnimationTest.kt +++ b/compose/foundation/foundation/integration-tests/lazy-tests/src/androidTest/kotlin/androidx/compose/foundation/lazy/list/LazyListItemPlacementAnimationTest.kt @@ -637,6 +637,39 @@ class LazyListAnimateItemPlacementTest(private val config: Config) { } } + @Test + fun movingAwayItem_itemWithMoreChildren_crossAxisAlignmentDefined_shouldNotCrash() { + var list by mutableStateOf(listOf(0, 1, 2, 3, 4, 5)) + val listSize = itemSize * 3 + val listSizeDp = with(rule.density) { listSize.toDp() } + rule.setContent { + LazyList( + maxSize = listSizeDp, + startIndex = 3, + crossAxisAlignment = CrossAxisAlignment.Center + ) { + items(list, key = { it }) { + Item(it) + if (it != list.last()) { + Box(modifier = Modifier) + } + } + } + } + + assertPositions(3 to 0f, 4 to itemSize, 5 to itemSize * 2) + + // move item 5 out of bounds + rule.runOnUiThread { list = listOf(5, 0, 1, 2, 3, 4) } + + // should not crash + onAnimationFrame { fraction -> + if (fraction == 1.0f) { + assertPositions(2 to 0f, 3 to itemSize, 4 to itemSize * 2) + } + } + } + @Test fun moveItemToTheBottomOutsideOfBounds_withSpacing() { var list by mutableStateOf(listOf(0, 1, 2, 3, 4, 5)) diff --git a/compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/ClickableTest.kt b/compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/ClickableTest.kt index ff03888ef5e12..d60548e5c72f2 100644 --- a/compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/ClickableTest.kt +++ b/compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/ClickableTest.kt @@ -29,6 +29,8 @@ import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.interaction.PressInteraction import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.BoxWithConstraints +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.requiredHeight @@ -5947,6 +5949,119 @@ class ClickableTest { .assert(SemanticsMatcher.expectValue(SemanticsProperties.Role, Role.Button)) .assertOnClickLabelMatches("true") } + + @OptIn(ExperimentalTestApi::class) + @Test // https://youtrack.jetbrains.com/issue/CMP-5069 + fun clickableInScrollContainerWithMouse() { + var isClicked = false + rule.setContent { + Row(modifier = Modifier.testTag("container")) { + Column(modifier = Modifier.verticalScroll(rememberScrollState())) { + Box(modifier = Modifier.size(100.dp).clickable { isClicked = true }) + } + } + } + + rule.onNodeWithTag("container").performMouseInput { + moveBy(Offset(10f, 10f)) + press() + moveBy(Offset(50f, 50f)) + release() + } + + rule.runOnIdle { + assertTrue(isClicked, "The Box is expected to receive a click when using Mouse") + } + } + + @Test // https://youtrack.jetbrains.com/issue/CMP-5069 + fun clickableInScrollContainerWithTouch() { + var isClicked = false + rule.setContent { + Row(modifier = Modifier.testTag("container")) { + Column(modifier = Modifier.verticalScroll(rememberScrollState())) { + Box(modifier = Modifier.size(100.dp).clickable { isClicked = true }) + } + } + } + + rule.onNodeWithTag("container").performTouchInput { + down(Offset(10f, 10f)) + // drag a bit + moveBy(Offset(50f, 50f)) + up() + } + + rule.runOnIdle { + assertFalse( + isClicked, + "The Box is NOT expected to receive a Click while dragging using touch" + ) + } + + rule.onNodeWithTag("container").performTouchInput { + down(Offset(50f, 50f)) + // no drag + up() + } + + rule.runOnIdle { + assertTrue( + isClicked, + "The Box is expected to receive a Click, there was no dragging using touch" + ) + } + } + + /** + * Regression test for b/358572550 + */ + @OptIn(ExperimentalComposeUiApi::class) + @Test + fun disabledParentClickable_doesNotCrashOnFocusEvent() { + val tag = "testClickable" + val focusRequester = FocusRequester() + lateinit var inputModeManager: InputModeManager + rule.setContent { + inputModeManager = LocalInputModeManager.current + Box(Modifier.size(100.dp).clickable(enabled = false, onClick = {})) { + // Any focus target inside would work, but because clickable merges descendants it + // prevents itself from being merged into the parent node so it is easier to test + Box(Modifier.size(10.dp).focusRequester(focusRequester).testTag(tag).clickable {}) + } + } + rule.runOnIdle { inputModeManager.requestInputMode(Keyboard) } + + // Should not crash + rule.runOnIdle { focusRequester.requestFocus() } + + rule.onNodeWithTag(tag).assertIsFocused() + } + + /** + * Regression test for b/358572550 + */ + @OptIn(ExperimentalComposeUiApi::class) + @Test + fun disabledParentClickable_doesNotCrashOnFocusEvent() { + val tag = "testClickable" + val focusRequester = FocusRequester() + lateinit var inputModeManager: InputModeManager + rule.setContent { + inputModeManager = LocalInputModeManager.current + Box(Modifier.size(100.dp).clickable(enabled = false, onClick = {})) { + // Any focus target inside would work, but because clickable merges descendants it + // prevents itself from being merged into the parent node so it is easier to test + Box(Modifier.size(10.dp).focusRequester(focusRequester).testTag(tag).clickable {}) + } + } + rule.runOnIdle { inputModeManager.requestInputMode(Keyboard) } + + // Should not crash + rule.runOnIdle { focusRequester.requestFocus() } + + rule.onNodeWithTag(tag).assertIsFocused() + } } /** diff --git a/compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/DraggableTest.kt b/compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/DraggableTest.kt index ffdc1b1ba2afa..c7d83f9dda05b 100644 --- a/compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/DraggableTest.kt +++ b/compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/DraggableTest.kt @@ -1124,6 +1124,26 @@ class DraggableTest { } } + @Test // b/355160589 + fun onDragStopped_withSameTimeStamps_shouldNotPropagateNanVelocity() { + setDraggableContent { + Modifier.draggable( + Orientation.Horizontal, + onDragStopped = { assertThat(it).isNotNaN() } + ) {} + } + + rule.onNodeWithTag(draggableBoxTag).performTouchInput { + down(center) + moveBy(Offset(100f, 0f), 0L) + moveBy(Offset(100f, 0f), 0L) + moveBy(Offset(100f, 0f), 0L) + up() + } + + rule.waitForIdle() + } + @Test fun equalInputs_shouldResolveToEquals() { val state = DraggableState { } diff --git a/compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/ScrollableTest.kt b/compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/ScrollableTest.kt index 33e55b0a59f7d..81d4afd1d7450 100644 --- a/compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/ScrollableTest.kt +++ b/compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/ScrollableTest.kt @@ -80,6 +80,7 @@ import androidx.compose.ui.input.pointer.PointerInputScope import androidx.compose.ui.input.pointer.changedToUpIgnoreConsumed import androidx.compose.ui.input.pointer.pointerInput import androidx.compose.ui.input.pointer.util.VelocityTracker +import androidx.compose.ui.input.pointer.util.VelocityTrackerAddPointsFix import androidx.compose.ui.materialize import androidx.compose.ui.node.ModifierNodeElement import androidx.compose.ui.node.TraversableNode @@ -3353,7 +3354,11 @@ internal suspend fun savePointerInputEvents( tracker: VelocityTracker, pointerInputScope: PointerInputScope ) { - savePointerInputEventsWithFix(tracker, pointerInputScope) + if (VelocityTrackerAddPointsFix) { + savePointerInputEventsWithFix(tracker, pointerInputScope) + } else { + savePointerInputEventsLegacy(tracker, pointerInputScope) + } } @OptIn(ExperimentalComposeUiApi::class) diff --git a/compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/text/BasicTextLinkTest.kt b/compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/text/BasicTextLinkTest.kt index 72f24651e1815..bc248a283a353 100644 --- a/compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/text/BasicTextLinkTest.kt +++ b/compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/text/BasicTextLinkTest.kt @@ -862,6 +862,44 @@ class BasicTextLinkTest { } } + @Test + fun links_displayedWithCorrectStyle_onFirstFrame() { + val checked = mutableStateOf(false) + var calledAfterChecked = false + + rule.setContent { + calledAfterChecked = checked.value + BasicText( + buildAnnotatedString { + withLink( + LinkAnnotation.Clickable( + "tag", + TextLinkStyles(SpanStyle(color = Color.Green)) + ) {} + ) { + append("Link") + } + }, + style = TextStyle(Color.Red), + onTextLayout = { + // When the flicker happens, the BasicText is first composed and drawn + // with the empty span styles. Only after the recomposition the link + // style is applied. After the fix the first composition happens with + // the correct link color and therefore the span styles will contain it + val colors = it.layoutInput.text.spanStyles.map { it.item.color } + assertThat(colors).isNotEmpty() + assertThat(colors.first()).isEqualTo(Color.Green) + } + ) + } + + checked.value = true + rule.runOnIdle { + // ensures that recomposition happened after a `checked` change + assertThat(calledAfterChecked).isTrue() + } + } + @Composable private fun TextWithLinks() = with(rule.density) { Column { diff --git a/compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/text/input/BasicTextFieldSemanticsTest.kt b/compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/text/input/BasicTextFieldSemanticsTest.kt index b15a8c3c430a9..1dd57ebc2c5a1 100644 --- a/compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/text/input/BasicTextFieldSemanticsTest.kt +++ b/compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/text/input/BasicTextFieldSemanticsTest.kt @@ -32,6 +32,7 @@ import androidx.compose.runtime.mutableIntStateOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue +import androidx.compose.testutils.expectError import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalClipboardManager import androidx.compose.ui.platform.testTag @@ -174,8 +175,9 @@ class BasicTextFieldSemanticsTest : FocusedWindowTest { ) } - rule.onNodeWithTag(Tag) - .performTextReplacement("hello") + expectError(expectedMessage = "Failed to perform text input.*") { + rule.onNodeWithTag(Tag).performTextReplacement("hello") + } assertThat(state.text.toString()).isEqualTo("") } @@ -237,8 +239,9 @@ class BasicTextFieldSemanticsTest : FocusedWindowTest { ) } - rule.onNodeWithTag(Tag) - .performTextInput("hello") + expectError(expectedMessage = "Failed to perform text input.*") { + rule.onNodeWithTag(Tag).performTextInput("hello") + } assertThat(state.text.toString()).isEqualTo("") } diff --git a/compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/text/input/TextFieldCursorTest.kt b/compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/text/input/TextFieldCursorTest.kt index 31b246401d0a0..48bcf4f4e7d19 100644 --- a/compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/text/input/TextFieldCursorTest.kt +++ b/compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/text/input/TextFieldCursorTest.kt @@ -64,6 +64,7 @@ import androidx.compose.ui.platform.testTag import androidx.compose.ui.test.ExperimentalTestApi import androidx.compose.ui.test.assertTextEquals import androidx.compose.ui.test.captureToImage +import androidx.compose.ui.test.hasPerformImeAction import androidx.compose.ui.test.hasSetTextAction import androidx.compose.ui.test.junit4.ComposeContentTestRule import androidx.compose.ui.test.junit4.createComposeRule @@ -734,9 +735,8 @@ class TextFieldCursorTest : FocusedWindowTest { rule.mainClock.advanceTimeBy(100) rule.mainClock.advanceTimeByFrame() - rule.onNode(hasSetTextAction()) - .captureToImage() - .assertDoesNotContainColor(cursorColor) + // readonly fields do not have setText action + rule.onNode(hasPerformImeAction()).captureToImage().assertDoesNotContainColor(cursorColor) } @Test @@ -760,16 +760,13 @@ class TextFieldCursorTest : FocusedWindowTest { rule.mainClock.advanceTimeBy(100) rule.mainClock.advanceTimeByFrame() - rule.onNode(hasSetTextAction()) - .captureToImage() - .assertDoesNotContainColor(cursorColor) + // readonly fields do not have setText action + rule.onNode(hasPerformImeAction()).captureToImage().assertDoesNotContainColor(cursorColor) readOnly = false rule.mainClock.advanceTimeByFrame() - rule.onNode(hasSetTextAction()) - .captureToImage() - .assertCursor(cursorTopCenterInLtr) + rule.onNode(hasPerformImeAction()).captureToImage().assertCursor(cursorTopCenterInLtr) } @Test @@ -1077,7 +1074,7 @@ class TextFieldCursorTest : FocusedWindowTest { } private fun focusAndWait() { - rule.onNode(hasSetTextAction()).requestFocus() + rule.onNode(hasPerformImeAction()).requestFocus() rule.mainClock.advanceTimeUntil { isFocused } } diff --git a/compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/text/input/TextFieldReceiveContentTest.kt b/compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/text/input/TextFieldReceiveContentTest.kt index 777350e765301..fc9109810bb0a 100644 --- a/compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/text/input/TextFieldReceiveContentTest.kt +++ b/compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/text/input/TextFieldReceiveContentTest.kt @@ -125,7 +125,7 @@ class TextFieldReceiveContentTest { rule.onNodeWithTag(tag).requestFocus() inputMethodInterceptor.withEditorInfo { val contentMimeTypes = EditorInfoCompat.getContentMimeTypes(this) - assertThat(contentMimeTypes).isEqualTo(arrayOf("*/*")) + assertThat(contentMimeTypes).asList().containsAtLeastElementsIn(arrayOf("*/*")) } } diff --git a/compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/text/input/internal/selection/TextFieldCursorHandleTest.kt b/compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/text/input/internal/selection/TextFieldCursorHandleTest.kt index 59adeb8dcdd90..09ffcc0735346 100644 --- a/compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/text/input/internal/selection/TextFieldCursorHandleTest.kt +++ b/compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/text/input/internal/selection/TextFieldCursorHandleTest.kt @@ -47,7 +47,7 @@ import androidx.compose.ui.platform.WindowInfo import androidx.compose.ui.platform.testTag import androidx.compose.ui.test.assertIsDisplayed import androidx.compose.ui.test.click -import androidx.compose.ui.test.hasSetTextAction +import androidx.compose.ui.test.hasPerformImeAction import androidx.compose.ui.test.isDisplayed import androidx.compose.ui.test.isNotDisplayed import androidx.compose.ui.test.junit4.createComposeRule @@ -1009,7 +1009,7 @@ class TextFieldCursorHandleTest : FocusedWindowTest { } private fun focusAndWait() { - rule.onNode(hasSetTextAction()).requestFocus() + rule.onNode(hasPerformImeAction()).requestFocus() } private fun swipeToLeft(swipeDistance: Float, durationMillis: Long = 1000) = diff --git a/compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/textfield/TextFieldTest.kt b/compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/textfield/TextFieldTest.kt index 02487b3c34150..0bdf66766e53a 100644 --- a/compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/textfield/TextFieldTest.kt +++ b/compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/textfield/TextFieldTest.kt @@ -58,6 +58,7 @@ import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.testutils.assertPixelColor import androidx.compose.testutils.assertShape +import androidx.compose.testutils.expectError import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.drawBehind @@ -479,7 +480,7 @@ class TextFieldTest : FocusedWindowTest { } @Test - fun semantics_setTextAction_doesNothingWhenReadOnly() { + fun semantics_setTextAction_throwsAssertionErrorWhenReadOnly() { rule.setContent { var value by remember { mutableStateOf("") } BasicTextField( @@ -490,10 +491,10 @@ class TextFieldTest : FocusedWindowTest { ) } - rule.onNodeWithTag(Tag) - .performTextReplacement("hello") - rule.onNodeWithTag(Tag) - .assertEditableTextEquals("") + expectError(expectedMessage = "Failed to perform text input.*") { + rule.onNodeWithTag(Tag).performTextReplacement("hello") + } + rule.onNodeWithTag(Tag).assertEditableTextEquals("") } @Test @@ -515,7 +516,7 @@ class TextFieldTest : FocusedWindowTest { } @Test - fun semantics_insertTextAction_doesNothingWhenReadOnly() { + fun semantics_insertTextAction_throwsAssertionErrorWhenReadOnly() { rule.setContent { var value by remember { mutableStateOf("") } BasicTextField( @@ -526,10 +527,11 @@ class TextFieldTest : FocusedWindowTest { ) } - rule.onNodeWithTag(Tag) - .performTextInput("hello") - rule.onNodeWithTag(Tag) - .assertEditableTextEquals("") + expectError(expectedMessage = "Failed to perform text input.*") { + rule.onNodeWithTag(Tag).performTextInput("hello") + } + + rule.onNodeWithTag(Tag).assertEditableTextEquals("") } @Test diff --git a/compose/foundation/foundation/src/androidMain/kotlin/androidx/compose/foundation/text/input/internal/AndroidTextInputSession.android.kt b/compose/foundation/foundation/src/androidMain/kotlin/androidx/compose/foundation/text/input/internal/AndroidTextInputSession.android.kt index af1dd92a6e107..e348bf063e7a7 100644 --- a/compose/foundation/foundation/src/androidMain/kotlin/androidx/compose/foundation/text/input/internal/AndroidTextInputSession.android.kt +++ b/compose/foundation/foundation/src/androidMain/kotlin/androidx/compose/foundation/text/input/internal/AndroidTextInputSession.android.kt @@ -195,7 +195,13 @@ internal suspend fun PlatformTextInputSession.platformSpecificTextInputSession( } } -private val ALL_MIME_TYPES = arrayOf("*/*") +/** + * Even though [star/star] should be enough to cover all cases, some IMEs do not like when it's the + * only mime type that's declared as supported. IMEs claim that they do not have the necessary + * explicit information that the editor will support image or video content. Instead we also add + * those types specifically to make sure that IMEs can send everything. + */ +private val ALL_MIME_TYPES = arrayOf("*/*", "image/*", "video/*") private fun logDebug(tag: String = TIA_TAG, content: () -> String) { if (TIA_DEBUG) { diff --git a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/Clickable.kt b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/Clickable.kt index d4109cb4b3290..fbb6ae7011352 100644 --- a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/Clickable.kt +++ b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/Clickable.kt @@ -1102,7 +1102,9 @@ internal abstract class AbstractClickableNode( if (focusState.isFocused) { initializeIndicationAndInteractionSourceIfNeeded() } - focusableNode.onFocusEvent(focusState) + if (enabled) { + focusableNode.onFocusEvent(focusState) + } } final override val shouldMergeDescendantSemantics: Boolean diff --git a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/Draggable.kt b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/Draggable.kt index cea9c2fe72a40..da4d8e6d7d221 100644 --- a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/Draggable.kt +++ b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/Draggable.kt @@ -501,7 +501,7 @@ internal abstract class DragGestureNode( Velocity(maximumVelocity, maximumVelocity) ) velocityTracker.resetTracking() - channel?.trySend(DragStopped(velocity)) + channel?.trySend(DragStopped(velocity.toValidVelocity())) } val onDragCancel: () -> Unit = { @@ -641,5 +641,8 @@ private fun Offset.toFloat(orientation: Orientation) = private fun Velocity.toFloat(orientation: Orientation) = if (orientation == Orientation.Vertical) this.y else this.x +private fun Velocity.toValidVelocity() = + Velocity(if (this.x.isNaN()) 0f else this.x, if (this.y.isNaN()) 0f else this.y) + private val NoOpOnDragStarted: suspend CoroutineScope.(startedPosition: Offset) -> Unit = {} private val NoOpOnDragStopped: suspend CoroutineScope.(velocity: Float) -> Unit = {} diff --git a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/Scrollable.kt b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/Scrollable.kt index 4de7546c128d9..b4298b554ed4c 100644 --- a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/Scrollable.kt +++ b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/Scrollable.kt @@ -74,6 +74,9 @@ import androidx.compose.ui.unit.Density import androidx.compose.ui.unit.IntSize import androidx.compose.ui.unit.LayoutDirection import androidx.compose.ui.unit.Velocity +import androidx.compose.ui.util.fastAll +import androidx.compose.ui.util.fastAny +import androidx.compose.ui.util.fastForEach import kotlin.math.abs import kotlinx.coroutines.CancellationException import kotlinx.coroutines.CoroutineScope diff --git a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyListMeasuredItem.kt b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyListMeasuredItem.kt index c52f78b995d46..55191abe2b2b6 100644 --- a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyListMeasuredItem.kt +++ b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyListMeasuredItem.kt @@ -118,10 +118,6 @@ internal class LazyListMeasuredItem @ExperimentalFoundationApi constructor( layoutWidth: Int, layoutHeight: Int ) { - require(crossAxisOffset == 0) { - "positioning a list item with non zero crossAxisOffset is not supported." + - "$crossAxisOffset was passed." - } position(mainAxisOffset, layoutWidth, layoutHeight) } diff --git a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/CoreTextField.kt b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/CoreTextField.kt index 7f8a1181d4678..71290e091c27b 100644 --- a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/CoreTextField.kt +++ b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/CoreTextField.kt @@ -455,141 +455,157 @@ internal fun CoreTextField( } val isPassword = visualTransformation is PasswordVisualTransformation - val semanticsModifier = Modifier.semantics(true) { - // focused semantics are handled by Modifier.focusable() - this.editableText = transformedText.text - this.textSelectionRange = value.selection - if (!enabled) this.disabled() - if (isPassword) this.password() - isEditable = enabled && !readOnly - getTextLayoutResult { - if (state.layoutResult != null) { - it.add(state.layoutResult!!.value) - true - } else { - false - } - } - setText { text -> - if (readOnly || !enabled) return@setText false - - // If the action is performed while in an active text editing session, treat this like - // an IME command and update the text by going through the buffer. This keeps the buffer - // state consistent if other IME commands are performed before the next recomposition, - // and is used for the testing code path. - state.inputSession?.let { session -> - TextFieldDelegate.onEditCommand( - ops = listOf(DeleteAllCommand(), CommitTextCommand(text, 1)), - editProcessor = state.processor, - state.onValueChange, - session - ) - } ?: run { - state.onValueChange(TextFieldValue(text.text, TextRange(text.text.length))) - } - true - } - insertTextAtCursor { text -> - if (readOnly || !enabled) return@insertTextAtCursor false - - // If the action is performed while in an active text editing session, treat this like - // an IME command and update the text by going through the buffer. This keeps the buffer - // state consistent if other IME commands are performed before the next recomposition, - // and is used for the testing code path. - state.inputSession?.let { session -> - TextFieldDelegate.onEditCommand( - // Finish composing text first because when the field is focused the IME might - // set composition. - ops = listOf(FinishComposingTextCommand(), CommitTextCommand(text, 1)), - editProcessor = state.processor, - state.onValueChange, - session - ) - } ?: run { - val newText = - value.text.replaceRange(value.selection.start, value.selection.end, text) - val newCursor = TextRange(value.selection.start + text.length) - state.onValueChange(TextFieldValue(newText, newCursor)) - } - true - } - setSelection { selectionStart, selectionEnd, relativeToOriginalText -> - // in traversal mode we get selection from the `textSelectionRange` semantics which is - // selection in original text. In non-traversal mode selection comes from the Talkback - // and indices are relative to the transformed text - val start = if (relativeToOriginalText) { - selectionStart - } else { - offsetMapping.transformedToOriginal(selectionStart) + val semanticsModifier = + Modifier.semantics(true) { + // focused semantics are handled by Modifier.focusable() + this.editableText = transformedText.text + this.textSelectionRange = value.selection + if (!enabled) this.disabled() + if (isPassword) this.password() + val editable = enabled && !readOnly + isEditable = editable + getTextLayoutResult { + if (state.layoutResult != null) { + it.add(state.layoutResult!!.value) + true + } else { + false + } } - val end = if (relativeToOriginalText) { - selectionEnd - } else { - offsetMapping.transformedToOriginal(selectionEnd) + if (editable) { + setText { text -> + // If the action is performed while in an active text editing session, treat + // this like an IME command and update the text by going through the buffer. + // This keeps the buffer state consistent if other IME commands are performed + // before the next recomposition, and is used for the testing code path. + state.inputSession?.let { session -> + TextFieldDelegate.onEditCommand( + ops = listOf(DeleteAllCommand(), CommitTextCommand(text, 1)), + editProcessor = state.processor, + state.onValueChange, + session + ) + } + ?: run { + state.onValueChange( + TextFieldValue(text.text, TextRange(text.text.length)) + ) + } + true + } + + insertTextAtCursor { text -> + if (readOnly || !enabled) return@insertTextAtCursor false + + // If the action is performed while in an active text editing session, treat + // this like an IME command and update the text by going through the buffer. + // This keeps the buffer state consistent if other IME commands are performed + // before the next recomposition, and is used for the testing code path. + state.inputSession?.let { session -> + TextFieldDelegate.onEditCommand( + // Finish composing text first because when the field is focused the IME + // might + // set composition. + ops = listOf(FinishComposingTextCommand(), CommitTextCommand(text, 1)), + editProcessor = state.processor, + state.onValueChange, + session + ) + } + ?: run { + val newText = + value.text.replaceRange( + value.selection.start, + value.selection.end, + text + ) + val newCursor = TextRange(value.selection.start + text.length) + state.onValueChange(TextFieldValue(newText, newCursor)) + } + true + } } - if (!enabled) { - false - } else if (start == value.selection.start && end == value.selection.end) { - false - } else if (minOf(start, end) >= 0 && - maxOf(start, end) <= value.annotatedString.length - ) { - // Do not show toolbar if it's a traversal mode (with the volume keys), or - // if the cursor just moved to beginning or end. - if (relativeToOriginalText || start == end) { - manager.exitSelectionMode() + setSelection { selectionStart, selectionEnd, relativeToOriginalText -> + // in traversal mode we get selection from the `textSelectionRange` semantics which + // is + // selection in original text. In non-traversal mode selection comes from the + // Talkback + // and indices are relative to the transformed text + val start = + if (relativeToOriginalText) { + selectionStart + } else { + offsetMapping.transformedToOriginal(selectionStart) + } + val end = + if (relativeToOriginalText) { + selectionEnd + } else { + offsetMapping.transformedToOriginal(selectionEnd) + } + + if (!enabled) { + false + } else if (start == value.selection.start && end == value.selection.end) { + false + } else if ( + minOf(start, end) >= 0 && maxOf(start, end) <= value.annotatedString.length + ) { + // Do not show toolbar if it's a traversal mode (with the volume keys), or + // if the cursor just moved to beginning or end. + if (relativeToOriginalText || start == end) { + manager.exitSelectionMode() + } else { + manager.enterSelectionMode() + } + state.onValueChange( + TextFieldValue(value.annotatedString, TextRange(start, end)) + ) + true } else { - manager.enterSelectionMode() + manager.exitSelectionMode() + false } - state.onValueChange( - TextFieldValue( - value.annotatedString, - TextRange(start, end) - ) - ) + } + onImeAction(imeOptions.imeAction) { + // This will perform the appropriate default action if no handler has been + // specified, so + // as far as the platform is concerned, we always handle the action and never want + // to + // defer to the default _platform_ implementation. + state.onImeActionPerformed(imeOptions.imeAction) true - } else { - manager.exitSelectionMode() - false } - } - onImeAction(imeOptions.imeAction) { - // This will perform the appropriate default action if no handler has been specified, so - // as far as the platform is concerned, we always handle the action and never want to - // defer to the default _platform_ implementation. - state.onImeActionPerformed(imeOptions.imeAction) - true - } - onClick { - // according to the documentation, we still need to provide proper semantics actions - // even if the state is 'disabled' - requestFocusAndShowKeyboardIfNeeded(state, focusRequester, !readOnly) - true - } - onLongClick { - manager.enterSelectionMode() - true - } - if (!value.selection.collapsed && !isPassword) { - copyText { - manager.copy() + onClick { + // according to the documentation, we still need to provide proper semantics actions + // even if the state is 'disabled' + requestFocusAndShowKeyboardIfNeeded(state, focusRequester, !readOnly) true } - if (enabled && !readOnly) { - cutText { - manager.cut() + onLongClick { + manager.enterSelectionMode() + true + } + if (!value.selection.collapsed && !isPassword) { + copyText { + manager.copy() true } + if (enabled && !readOnly) { + cutText { + manager.cut() + true + } + } } - } - if (enabled && !readOnly) { - pasteText { - manager.paste() - true + if (enabled && !readOnly) { + pasteText { + manager.paste() + true + } } } - } val showCursor = enabled && !readOnly && windowInfo.isWindowFocused && !state.hasHighlight() val cursorModifier = Modifier.cursor(state, value, offsetMapping, cursorBrush, showCursor) diff --git a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/TextFieldDelegate.kt b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/TextFieldDelegate.kt index eabeb8e9861dc..2331f91ed551d 100644 --- a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/TextFieldDelegate.kt +++ b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/TextFieldDelegate.kt @@ -254,8 +254,11 @@ internal class TextFieldDelegate { offsetMapping, textLayoutResult.value, { matrix -> - innerTextFieldCoordinates.findRootCoordinates() - .transformFrom(innerTextFieldCoordinates, matrix) + if (innerTextFieldCoordinates.isAttached) { + innerTextFieldCoordinates + .findRootCoordinates() + .transformFrom(innerTextFieldCoordinates, matrix) + } }, innerTextFieldCoordinates.visibleBounds(), innerTextFieldCoordinates.localBoundingBoxOf( diff --git a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/TextLinkScope.kt b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/TextLinkScope.kt index 191e3a39bc0aa..b1268af4a209a 100644 --- a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/TextLinkScope.kt +++ b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/TextLinkScope.kt @@ -69,7 +69,13 @@ internal class TextLinkScope(internal val initialText: AnnotatedString) { /** * [initialText] with applied links styling to it from [LinkAnnotation.styles] */ - internal var text: AnnotatedString = initialText + internal var text: AnnotatedString = AnnotatedString.Builder(initialText).also { builder -> + initialText.getLinkAnnotations(0, initialText.length).fastForEach { link -> + link.item.styles?.style?.let { style -> + builder.addStyle(style, link.start, link.end) + } + } + }.toAnnotatedString() // Additional span style annotations applied to the AnnotatedString. These SpanStyles are coming // from LinkAnnotation's style arguments diff --git a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/input/internal/TextFieldDecoratorModifier.kt b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/input/internal/TextFieldDecoratorModifier.kt index 80d661658eaf9..e9e513143ac9d 100644 --- a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/input/internal/TextFieldDecoratorModifier.kt +++ b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/input/internal/TextFieldDecoratorModifier.kt @@ -495,11 +495,21 @@ internal class TextFieldDecoratorModifierNode( getTextLayoutResult { textLayoutState.layoutResult?.let { result -> it.add(result) } ?: false } - setText { newText -> - if (!editable) return@setText false + if (editable) { + setText { newText -> + if (!editable) return@setText false - textFieldState.replaceAll(newText) - true + textFieldState.replaceAll(newText) + true + } + insertTextAtCursor { newText -> + if (!editable) return@insertTextAtCursor false + + // Finish composing text first because when the field is focused the IME + // might set composition. + textFieldState.replaceSelectedText(newText, clearComposition = true) + true + } } @Suppress("NAME_SHADOWING") setSelection { start, end, relativeToOriginal -> @@ -541,14 +551,6 @@ internal class TextFieldDecoratorModifierNode( } return@setSelection true } - insertTextAtCursor { newText -> - if (!editable) return@insertTextAtCursor false - - // Finish composing text first because when the field is focused the IME - // might set composition. - textFieldState.replaceSelectedText(newText, clearComposition = true) - true - } val effectiveImeAction = keyboardOptions.imeActionOrDefault onImeAction(effectiveImeAction) { diff --git a/compose/foundation/foundation/src/skikoMain/kotlin/androidx/compose/foundation/text/input/internal/TextInputSession.skiko.kt b/compose/foundation/foundation/src/skikoMain/kotlin/androidx/compose/foundation/text/input/internal/TextInputSession.skiko.kt index 78354b043269c..74d6633474978 100644 --- a/compose/foundation/foundation/src/skikoMain/kotlin/androidx/compose/foundation/text/input/internal/TextInputSession.skiko.kt +++ b/compose/foundation/foundation/src/skikoMain/kotlin/androidx/compose/foundation/text/input/internal/TextInputSession.skiko.kt @@ -1,5 +1,5 @@ /* - * Copyright 2024 The Android Open Source Project + * Copyright 2023 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,14 +17,17 @@ package androidx.compose.foundation.text.input.internal import androidx.compose.foundation.content.internal.ReceiveContentConfiguration +import androidx.compose.ui.ExperimentalComposeUiApi +import androidx.compose.ui.platform.PlatformTextInputMethodRequest import androidx.compose.ui.platform.PlatformTextInputSession import androidx.compose.ui.platform.ViewConfiguration +import androidx.compose.ui.text.input.EditCommand +import androidx.compose.ui.text.input.EditProcessor import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.text.input.ImeOptions -import kotlinx.coroutines.awaitCancellation +import androidx.compose.ui.text.input.TextFieldValue import kotlinx.coroutines.flow.MutableSharedFlow -// TODO(https://youtrack.jetbrains.com/issue/COMPOSE-733/Merge-1.6.-Apply-changes-for-the-new-text-input) implement internal actual suspend fun PlatformTextInputSession.platformSpecificTextInputSession( state: TransformedTextFieldState, layoutState: TextLayoutState, @@ -34,5 +37,54 @@ internal actual suspend fun PlatformTextInputSession.platformSpecificTextInputSe stylusHandwritingTrigger: MutableSharedFlow?, viewConfiguration: ViewConfiguration? ): Nothing { - awaitCancellation() -} \ No newline at end of file + val editProcessor = EditProcessor() + fun onEditCommand(commands: List) { + editProcessor.reset( + value = with(state.visualText) { + TextFieldValue( + text = toString(), + selection = selection, + composition = composition + ) + }, + textInputSession = null + ) + + val newValue = editProcessor.apply(commands) + + state.replaceAll(newValue.text) + state.editUntransformedTextAsUser { + val untransformedSelection = state.mapFromTransformed(newValue.selection) + setSelection(untransformedSelection.start, untransformedSelection.end) + + val composition = newValue.composition + if (composition == null) { + commitComposition() + } else { + val untransformedComposition = state.mapFromTransformed(composition) + setComposition(untransformedComposition.start, untransformedComposition.end) + } + } + } + + startInputMethod( + SkikoPlatformTextInputMethodRequest( + state = TextFieldValue( + state.visualText.toString(), + state.visualText.selection, + state.visualText.composition, + ), + imeOptions = imeOptions, + onEditCommand = ::onEditCommand, + onImeAction = onImeAction + ) + ) +} + +@OptIn(ExperimentalComposeUiApi::class) +private data class SkikoPlatformTextInputMethodRequest( + override val state: TextFieldValue, + override val imeOptions: ImeOptions, + override val onEditCommand: (List) -> Unit, + override val onImeAction: ((ImeAction) -> Unit)? +): PlatformTextInputMethodRequest \ No newline at end of file diff --git a/compose/material/material-icons-core/api/1.7.0-beta07.txt b/compose/material/material-icons-core/api/1.7.0-beta07.txt new file mode 100644 index 0000000000000..c80a502830402 --- /dev/null +++ b/compose/material/material-icons-core/api/1.7.0-beta07.txt @@ -0,0 +1,1223 @@ +// Signature format: 4.0 +package androidx.compose.material.icons { + + public final class Icons { + method public androidx.compose.material.icons.Icons.Filled getDefault(); + property public final androidx.compose.material.icons.Icons.Filled Default; + field public static final androidx.compose.material.icons.Icons INSTANCE; + } + + public static final class Icons.AutoMirrored { + method public androidx.compose.material.icons.Icons.AutoMirrored.Filled getDefault(); + property public final androidx.compose.material.icons.Icons.AutoMirrored.Filled Default; + field public static final androidx.compose.material.icons.Icons.AutoMirrored INSTANCE; + } + + public static final class Icons.AutoMirrored.Filled { + field public static final androidx.compose.material.icons.Icons.AutoMirrored.Filled INSTANCE; + } + + public static final class Icons.AutoMirrored.Outlined { + field public static final androidx.compose.material.icons.Icons.AutoMirrored.Outlined INSTANCE; + } + + public static final class Icons.AutoMirrored.Rounded { + field public static final androidx.compose.material.icons.Icons.AutoMirrored.Rounded INSTANCE; + } + + public static final class Icons.AutoMirrored.Sharp { + field public static final androidx.compose.material.icons.Icons.AutoMirrored.Sharp INSTANCE; + } + + public static final class Icons.AutoMirrored.TwoTone { + field public static final androidx.compose.material.icons.Icons.AutoMirrored.TwoTone INSTANCE; + } + + public static final class Icons.Filled { + field public static final androidx.compose.material.icons.Icons.Filled INSTANCE; + } + + public static final class Icons.Outlined { + field public static final androidx.compose.material.icons.Icons.Outlined INSTANCE; + } + + public static final class Icons.Rounded { + field public static final androidx.compose.material.icons.Icons.Rounded INSTANCE; + } + + public static final class Icons.Sharp { + field public static final androidx.compose.material.icons.Icons.Sharp INSTANCE; + } + + public static final class Icons.TwoTone { + field public static final androidx.compose.material.icons.Icons.TwoTone INSTANCE; + } + + public final class IconsKt { + method public static inline androidx.compose.ui.graphics.vector.ImageVector materialIcon(String name, optional boolean autoMirror, kotlin.jvm.functions.Function1 block); + method @Deprecated public static inline androidx.compose.ui.graphics.vector.ImageVector materialIcon(String name, kotlin.jvm.functions.Function1 block); + method public static inline androidx.compose.ui.graphics.vector.ImageVector.Builder materialPath(androidx.compose.ui.graphics.vector.ImageVector.Builder, optional float fillAlpha, optional float strokeAlpha, optional int pathFillType, kotlin.jvm.functions.Function1 pathBuilder); + } + +} + +package androidx.compose.material.icons.automirrored.filled { + + public final class ArrowBackKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getArrowBack(androidx.compose.material.icons.Icons.AutoMirrored.Filled); + } + + public final class ArrowForwardKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getArrowForward(androidx.compose.material.icons.Icons.AutoMirrored.Filled); + } + + public final class ExitToAppKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getExitToApp(androidx.compose.material.icons.Icons.AutoMirrored.Filled); + } + + public final class KeyboardArrowLeftKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowLeft(androidx.compose.material.icons.Icons.AutoMirrored.Filled); + } + + public final class KeyboardArrowRightKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowRight(androidx.compose.material.icons.Icons.AutoMirrored.Filled); + } + + public final class ListKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getList(androidx.compose.material.icons.Icons.AutoMirrored.Filled); + } + + public final class SendKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getSend(androidx.compose.material.icons.Icons.AutoMirrored.Filled); + } + +} + +package androidx.compose.material.icons.automirrored.outlined { + + public final class ArrowBackKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getArrowBack(androidx.compose.material.icons.Icons.AutoMirrored.Outlined); + } + + public final class ArrowForwardKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getArrowForward(androidx.compose.material.icons.Icons.AutoMirrored.Outlined); + } + + public final class ExitToAppKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getExitToApp(androidx.compose.material.icons.Icons.AutoMirrored.Outlined); + } + + public final class KeyboardArrowLeftKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowLeft(androidx.compose.material.icons.Icons.AutoMirrored.Outlined); + } + + public final class KeyboardArrowRightKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowRight(androidx.compose.material.icons.Icons.AutoMirrored.Outlined); + } + + public final class ListKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getList(androidx.compose.material.icons.Icons.AutoMirrored.Outlined); + } + + public final class SendKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getSend(androidx.compose.material.icons.Icons.AutoMirrored.Outlined); + } + +} + +package androidx.compose.material.icons.automirrored.rounded { + + public final class ArrowBackKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getArrowBack(androidx.compose.material.icons.Icons.AutoMirrored.Rounded); + } + + public final class ArrowForwardKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getArrowForward(androidx.compose.material.icons.Icons.AutoMirrored.Rounded); + } + + public final class ExitToAppKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getExitToApp(androidx.compose.material.icons.Icons.AutoMirrored.Rounded); + } + + public final class KeyboardArrowLeftKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowLeft(androidx.compose.material.icons.Icons.AutoMirrored.Rounded); + } + + public final class KeyboardArrowRightKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowRight(androidx.compose.material.icons.Icons.AutoMirrored.Rounded); + } + + public final class ListKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getList(androidx.compose.material.icons.Icons.AutoMirrored.Rounded); + } + + public final class SendKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getSend(androidx.compose.material.icons.Icons.AutoMirrored.Rounded); + } + +} + +package androidx.compose.material.icons.automirrored.sharp { + + public final class ArrowBackKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getArrowBack(androidx.compose.material.icons.Icons.AutoMirrored.Sharp); + } + + public final class ArrowForwardKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getArrowForward(androidx.compose.material.icons.Icons.AutoMirrored.Sharp); + } + + public final class ExitToAppKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getExitToApp(androidx.compose.material.icons.Icons.AutoMirrored.Sharp); + } + + public final class KeyboardArrowLeftKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowLeft(androidx.compose.material.icons.Icons.AutoMirrored.Sharp); + } + + public final class KeyboardArrowRightKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowRight(androidx.compose.material.icons.Icons.AutoMirrored.Sharp); + } + + public final class ListKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getList(androidx.compose.material.icons.Icons.AutoMirrored.Sharp); + } + + public final class SendKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getSend(androidx.compose.material.icons.Icons.AutoMirrored.Sharp); + } + +} + +package androidx.compose.material.icons.automirrored.twotone { + + public final class ArrowBackKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getArrowBack(androidx.compose.material.icons.Icons.AutoMirrored.TwoTone); + } + + public final class ArrowForwardKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getArrowForward(androidx.compose.material.icons.Icons.AutoMirrored.TwoTone); + } + + public final class ExitToAppKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getExitToApp(androidx.compose.material.icons.Icons.AutoMirrored.TwoTone); + } + + public final class KeyboardArrowLeftKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowLeft(androidx.compose.material.icons.Icons.AutoMirrored.TwoTone); + } + + public final class KeyboardArrowRightKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowRight(androidx.compose.material.icons.Icons.AutoMirrored.TwoTone); + } + + public final class ListKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getList(androidx.compose.material.icons.Icons.AutoMirrored.TwoTone); + } + + public final class SendKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getSend(androidx.compose.material.icons.Icons.AutoMirrored.TwoTone); + } + +} + +package androidx.compose.material.icons.filled { + + public final class AccountBoxKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAccountBox(androidx.compose.material.icons.Icons.Filled); + } + + public final class AccountCircleKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAccountCircle(androidx.compose.material.icons.Icons.Filled); + } + + public final class AddCircleKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAddCircle(androidx.compose.material.icons.Icons.Filled); + } + + public final class AddKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAdd(androidx.compose.material.icons.Icons.Filled); + } + + public final class ArrowBackKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getArrowBack(androidx.compose.material.icons.Icons.Filled); + } + + public final class ArrowDropDownKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getArrowDropDown(androidx.compose.material.icons.Icons.Filled); + } + + public final class ArrowForwardKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getArrowForward(androidx.compose.material.icons.Icons.Filled); + } + + public final class BuildKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getBuild(androidx.compose.material.icons.Icons.Filled); + } + + public final class CallKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCall(androidx.compose.material.icons.Icons.Filled); + } + + public final class CheckCircleKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCheckCircle(androidx.compose.material.icons.Icons.Filled); + } + + public final class CheckKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCheck(androidx.compose.material.icons.Icons.Filled); + } + + public final class ClearKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getClear(androidx.compose.material.icons.Icons.Filled); + } + + public final class CloseKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getClose(androidx.compose.material.icons.Icons.Filled); + } + + public final class CreateKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCreate(androidx.compose.material.icons.Icons.Filled); + } + + public final class DateRangeKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getDateRange(androidx.compose.material.icons.Icons.Filled); + } + + public final class DeleteKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getDelete(androidx.compose.material.icons.Icons.Filled); + } + + public final class DoneKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getDone(androidx.compose.material.icons.Icons.Filled); + } + + public final class EditKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getEdit(androidx.compose.material.icons.Icons.Filled); + } + + public final class EmailKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getEmail(androidx.compose.material.icons.Icons.Filled); + } + + public final class ExitToAppKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getExitToApp(androidx.compose.material.icons.Icons.Filled); + } + + public final class FaceKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getFace(androidx.compose.material.icons.Icons.Filled); + } + + public final class FavoriteBorderKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getFavoriteBorder(androidx.compose.material.icons.Icons.Filled); + } + + public final class FavoriteKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getFavorite(androidx.compose.material.icons.Icons.Filled); + } + + public final class HomeKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getHome(androidx.compose.material.icons.Icons.Filled); + } + + public final class InfoKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getInfo(androidx.compose.material.icons.Icons.Filled); + } + + public final class KeyboardArrowDownKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowDown(androidx.compose.material.icons.Icons.Filled); + } + + public final class KeyboardArrowLeftKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowLeft(androidx.compose.material.icons.Icons.Filled); + } + + public final class KeyboardArrowRightKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowRight(androidx.compose.material.icons.Icons.Filled); + } + + public final class KeyboardArrowUpKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowUp(androidx.compose.material.icons.Icons.Filled); + } + + public final class ListKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getList(androidx.compose.material.icons.Icons.Filled); + } + + public final class LocationOnKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getLocationOn(androidx.compose.material.icons.Icons.Filled); + } + + public final class LockKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getLock(androidx.compose.material.icons.Icons.Filled); + } + + public final class MailOutlineKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getMailOutline(androidx.compose.material.icons.Icons.Filled); + } + + public final class MenuKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getMenu(androidx.compose.material.icons.Icons.Filled); + } + + public final class MoreVertKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getMoreVert(androidx.compose.material.icons.Icons.Filled); + } + + public final class NotificationsKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getNotifications(androidx.compose.material.icons.Icons.Filled); + } + + public final class PersonKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPerson(androidx.compose.material.icons.Icons.Filled); + } + + public final class PhoneKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPhone(androidx.compose.material.icons.Icons.Filled); + } + + public final class PlaceKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPlace(androidx.compose.material.icons.Icons.Filled); + } + + public final class PlayArrowKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPlayArrow(androidx.compose.material.icons.Icons.Filled); + } + + public final class RefreshKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getRefresh(androidx.compose.material.icons.Icons.Filled); + } + + public final class SearchKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getSearch(androidx.compose.material.icons.Icons.Filled); + } + + public final class SendKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getSend(androidx.compose.material.icons.Icons.Filled); + } + + public final class SettingsKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getSettings(androidx.compose.material.icons.Icons.Filled); + } + + public final class ShareKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getShare(androidx.compose.material.icons.Icons.Filled); + } + + public final class ShoppingCartKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getShoppingCart(androidx.compose.material.icons.Icons.Filled); + } + + public final class StarKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getStar(androidx.compose.material.icons.Icons.Filled); + } + + public final class ThumbUpKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getThumbUp(androidx.compose.material.icons.Icons.Filled); + } + + public final class WarningKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getWarning(androidx.compose.material.icons.Icons.Filled); + } + +} + +package androidx.compose.material.icons.outlined { + + public final class AccountBoxKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAccountBox(androidx.compose.material.icons.Icons.Outlined); + } + + public final class AccountCircleKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAccountCircle(androidx.compose.material.icons.Icons.Outlined); + } + + public final class AddCircleKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAddCircle(androidx.compose.material.icons.Icons.Outlined); + } + + public final class AddKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAdd(androidx.compose.material.icons.Icons.Outlined); + } + + public final class ArrowBackKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getArrowBack(androidx.compose.material.icons.Icons.Outlined); + } + + public final class ArrowDropDownKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getArrowDropDown(androidx.compose.material.icons.Icons.Outlined); + } + + public final class ArrowForwardKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getArrowForward(androidx.compose.material.icons.Icons.Outlined); + } + + public final class BuildKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getBuild(androidx.compose.material.icons.Icons.Outlined); + } + + public final class CallKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCall(androidx.compose.material.icons.Icons.Outlined); + } + + public final class CheckCircleKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCheckCircle(androidx.compose.material.icons.Icons.Outlined); + } + + public final class CheckKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCheck(androidx.compose.material.icons.Icons.Outlined); + } + + public final class ClearKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getClear(androidx.compose.material.icons.Icons.Outlined); + } + + public final class CloseKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getClose(androidx.compose.material.icons.Icons.Outlined); + } + + public final class CreateKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCreate(androidx.compose.material.icons.Icons.Outlined); + } + + public final class DateRangeKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getDateRange(androidx.compose.material.icons.Icons.Outlined); + } + + public final class DeleteKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getDelete(androidx.compose.material.icons.Icons.Outlined); + } + + public final class DoneKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getDone(androidx.compose.material.icons.Icons.Outlined); + } + + public final class EditKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getEdit(androidx.compose.material.icons.Icons.Outlined); + } + + public final class EmailKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getEmail(androidx.compose.material.icons.Icons.Outlined); + } + + public final class ExitToAppKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getExitToApp(androidx.compose.material.icons.Icons.Outlined); + } + + public final class FaceKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getFace(androidx.compose.material.icons.Icons.Outlined); + } + + public final class FavoriteBorderKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getFavoriteBorder(androidx.compose.material.icons.Icons.Outlined); + } + + public final class FavoriteKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getFavorite(androidx.compose.material.icons.Icons.Outlined); + } + + public final class HomeKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getHome(androidx.compose.material.icons.Icons.Outlined); + } + + public final class InfoKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getInfo(androidx.compose.material.icons.Icons.Outlined); + } + + public final class KeyboardArrowDownKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowDown(androidx.compose.material.icons.Icons.Outlined); + } + + public final class KeyboardArrowLeftKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowLeft(androidx.compose.material.icons.Icons.Outlined); + } + + public final class KeyboardArrowRightKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowRight(androidx.compose.material.icons.Icons.Outlined); + } + + public final class KeyboardArrowUpKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowUp(androidx.compose.material.icons.Icons.Outlined); + } + + public final class ListKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getList(androidx.compose.material.icons.Icons.Outlined); + } + + public final class LocationOnKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getLocationOn(androidx.compose.material.icons.Icons.Outlined); + } + + public final class LockKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getLock(androidx.compose.material.icons.Icons.Outlined); + } + + public final class MailOutlineKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getMailOutline(androidx.compose.material.icons.Icons.Outlined); + } + + public final class MenuKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getMenu(androidx.compose.material.icons.Icons.Outlined); + } + + public final class MoreVertKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getMoreVert(androidx.compose.material.icons.Icons.Outlined); + } + + public final class NotificationsKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getNotifications(androidx.compose.material.icons.Icons.Outlined); + } + + public final class PersonKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPerson(androidx.compose.material.icons.Icons.Outlined); + } + + public final class PhoneKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPhone(androidx.compose.material.icons.Icons.Outlined); + } + + public final class PlaceKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPlace(androidx.compose.material.icons.Icons.Outlined); + } + + public final class PlayArrowKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPlayArrow(androidx.compose.material.icons.Icons.Outlined); + } + + public final class RefreshKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getRefresh(androidx.compose.material.icons.Icons.Outlined); + } + + public final class SearchKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getSearch(androidx.compose.material.icons.Icons.Outlined); + } + + public final class SendKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getSend(androidx.compose.material.icons.Icons.Outlined); + } + + public final class SettingsKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getSettings(androidx.compose.material.icons.Icons.Outlined); + } + + public final class ShareKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getShare(androidx.compose.material.icons.Icons.Outlined); + } + + public final class ShoppingCartKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getShoppingCart(androidx.compose.material.icons.Icons.Outlined); + } + + public final class StarKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getStar(androidx.compose.material.icons.Icons.Outlined); + } + + public final class ThumbUpKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getThumbUp(androidx.compose.material.icons.Icons.Outlined); + } + + public final class WarningKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getWarning(androidx.compose.material.icons.Icons.Outlined); + } + +} + +package androidx.compose.material.icons.rounded { + + public final class AccountBoxKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAccountBox(androidx.compose.material.icons.Icons.Rounded); + } + + public final class AccountCircleKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAccountCircle(androidx.compose.material.icons.Icons.Rounded); + } + + public final class AddCircleKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAddCircle(androidx.compose.material.icons.Icons.Rounded); + } + + public final class AddKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAdd(androidx.compose.material.icons.Icons.Rounded); + } + + public final class ArrowBackKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getArrowBack(androidx.compose.material.icons.Icons.Rounded); + } + + public final class ArrowDropDownKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getArrowDropDown(androidx.compose.material.icons.Icons.Rounded); + } + + public final class ArrowForwardKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getArrowForward(androidx.compose.material.icons.Icons.Rounded); + } + + public final class BuildKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getBuild(androidx.compose.material.icons.Icons.Rounded); + } + + public final class CallKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCall(androidx.compose.material.icons.Icons.Rounded); + } + + public final class CheckCircleKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCheckCircle(androidx.compose.material.icons.Icons.Rounded); + } + + public final class CheckKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCheck(androidx.compose.material.icons.Icons.Rounded); + } + + public final class ClearKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getClear(androidx.compose.material.icons.Icons.Rounded); + } + + public final class CloseKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getClose(androidx.compose.material.icons.Icons.Rounded); + } + + public final class CreateKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCreate(androidx.compose.material.icons.Icons.Rounded); + } + + public final class DateRangeKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getDateRange(androidx.compose.material.icons.Icons.Rounded); + } + + public final class DeleteKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getDelete(androidx.compose.material.icons.Icons.Rounded); + } + + public final class DoneKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getDone(androidx.compose.material.icons.Icons.Rounded); + } + + public final class EditKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getEdit(androidx.compose.material.icons.Icons.Rounded); + } + + public final class EmailKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getEmail(androidx.compose.material.icons.Icons.Rounded); + } + + public final class ExitToAppKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getExitToApp(androidx.compose.material.icons.Icons.Rounded); + } + + public final class FaceKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getFace(androidx.compose.material.icons.Icons.Rounded); + } + + public final class FavoriteBorderKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getFavoriteBorder(androidx.compose.material.icons.Icons.Rounded); + } + + public final class FavoriteKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getFavorite(androidx.compose.material.icons.Icons.Rounded); + } + + public final class HomeKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getHome(androidx.compose.material.icons.Icons.Rounded); + } + + public final class InfoKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getInfo(androidx.compose.material.icons.Icons.Rounded); + } + + public final class KeyboardArrowDownKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowDown(androidx.compose.material.icons.Icons.Rounded); + } + + public final class KeyboardArrowLeftKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowLeft(androidx.compose.material.icons.Icons.Rounded); + } + + public final class KeyboardArrowRightKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowRight(androidx.compose.material.icons.Icons.Rounded); + } + + public final class KeyboardArrowUpKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowUp(androidx.compose.material.icons.Icons.Rounded); + } + + public final class ListKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getList(androidx.compose.material.icons.Icons.Rounded); + } + + public final class LocationOnKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getLocationOn(androidx.compose.material.icons.Icons.Rounded); + } + + public final class LockKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getLock(androidx.compose.material.icons.Icons.Rounded); + } + + public final class MailOutlineKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getMailOutline(androidx.compose.material.icons.Icons.Rounded); + } + + public final class MenuKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getMenu(androidx.compose.material.icons.Icons.Rounded); + } + + public final class MoreVertKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getMoreVert(androidx.compose.material.icons.Icons.Rounded); + } + + public final class NotificationsKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getNotifications(androidx.compose.material.icons.Icons.Rounded); + } + + public final class PersonKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPerson(androidx.compose.material.icons.Icons.Rounded); + } + + public final class PhoneKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPhone(androidx.compose.material.icons.Icons.Rounded); + } + + public final class PlaceKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPlace(androidx.compose.material.icons.Icons.Rounded); + } + + public final class PlayArrowKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPlayArrow(androidx.compose.material.icons.Icons.Rounded); + } + + public final class RefreshKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getRefresh(androidx.compose.material.icons.Icons.Rounded); + } + + public final class SearchKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getSearch(androidx.compose.material.icons.Icons.Rounded); + } + + public final class SendKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getSend(androidx.compose.material.icons.Icons.Rounded); + } + + public final class SettingsKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getSettings(androidx.compose.material.icons.Icons.Rounded); + } + + public final class ShareKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getShare(androidx.compose.material.icons.Icons.Rounded); + } + + public final class ShoppingCartKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getShoppingCart(androidx.compose.material.icons.Icons.Rounded); + } + + public final class StarKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getStar(androidx.compose.material.icons.Icons.Rounded); + } + + public final class ThumbUpKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getThumbUp(androidx.compose.material.icons.Icons.Rounded); + } + + public final class WarningKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getWarning(androidx.compose.material.icons.Icons.Rounded); + } + +} + +package androidx.compose.material.icons.sharp { + + public final class AccountBoxKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAccountBox(androidx.compose.material.icons.Icons.Sharp); + } + + public final class AccountCircleKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAccountCircle(androidx.compose.material.icons.Icons.Sharp); + } + + public final class AddCircleKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAddCircle(androidx.compose.material.icons.Icons.Sharp); + } + + public final class AddKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAdd(androidx.compose.material.icons.Icons.Sharp); + } + + public final class ArrowBackKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getArrowBack(androidx.compose.material.icons.Icons.Sharp); + } + + public final class ArrowDropDownKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getArrowDropDown(androidx.compose.material.icons.Icons.Sharp); + } + + public final class ArrowForwardKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getArrowForward(androidx.compose.material.icons.Icons.Sharp); + } + + public final class BuildKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getBuild(androidx.compose.material.icons.Icons.Sharp); + } + + public final class CallKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCall(androidx.compose.material.icons.Icons.Sharp); + } + + public final class CheckCircleKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCheckCircle(androidx.compose.material.icons.Icons.Sharp); + } + + public final class CheckKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCheck(androidx.compose.material.icons.Icons.Sharp); + } + + public final class ClearKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getClear(androidx.compose.material.icons.Icons.Sharp); + } + + public final class CloseKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getClose(androidx.compose.material.icons.Icons.Sharp); + } + + public final class CreateKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCreate(androidx.compose.material.icons.Icons.Sharp); + } + + public final class DateRangeKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getDateRange(androidx.compose.material.icons.Icons.Sharp); + } + + public final class DeleteKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getDelete(androidx.compose.material.icons.Icons.Sharp); + } + + public final class DoneKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getDone(androidx.compose.material.icons.Icons.Sharp); + } + + public final class EditKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getEdit(androidx.compose.material.icons.Icons.Sharp); + } + + public final class EmailKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getEmail(androidx.compose.material.icons.Icons.Sharp); + } + + public final class ExitToAppKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getExitToApp(androidx.compose.material.icons.Icons.Sharp); + } + + public final class FaceKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getFace(androidx.compose.material.icons.Icons.Sharp); + } + + public final class FavoriteBorderKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getFavoriteBorder(androidx.compose.material.icons.Icons.Sharp); + } + + public final class FavoriteKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getFavorite(androidx.compose.material.icons.Icons.Sharp); + } + + public final class HomeKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getHome(androidx.compose.material.icons.Icons.Sharp); + } + + public final class InfoKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getInfo(androidx.compose.material.icons.Icons.Sharp); + } + + public final class KeyboardArrowDownKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowDown(androidx.compose.material.icons.Icons.Sharp); + } + + public final class KeyboardArrowLeftKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowLeft(androidx.compose.material.icons.Icons.Sharp); + } + + public final class KeyboardArrowRightKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowRight(androidx.compose.material.icons.Icons.Sharp); + } + + public final class KeyboardArrowUpKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowUp(androidx.compose.material.icons.Icons.Sharp); + } + + public final class ListKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getList(androidx.compose.material.icons.Icons.Sharp); + } + + public final class LocationOnKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getLocationOn(androidx.compose.material.icons.Icons.Sharp); + } + + public final class LockKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getLock(androidx.compose.material.icons.Icons.Sharp); + } + + public final class MailOutlineKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getMailOutline(androidx.compose.material.icons.Icons.Sharp); + } + + public final class MenuKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getMenu(androidx.compose.material.icons.Icons.Sharp); + } + + public final class MoreVertKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getMoreVert(androidx.compose.material.icons.Icons.Sharp); + } + + public final class NotificationsKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getNotifications(androidx.compose.material.icons.Icons.Sharp); + } + + public final class PersonKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPerson(androidx.compose.material.icons.Icons.Sharp); + } + + public final class PhoneKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPhone(androidx.compose.material.icons.Icons.Sharp); + } + + public final class PlaceKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPlace(androidx.compose.material.icons.Icons.Sharp); + } + + public final class PlayArrowKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPlayArrow(androidx.compose.material.icons.Icons.Sharp); + } + + public final class RefreshKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getRefresh(androidx.compose.material.icons.Icons.Sharp); + } + + public final class SearchKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getSearch(androidx.compose.material.icons.Icons.Sharp); + } + + public final class SendKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getSend(androidx.compose.material.icons.Icons.Sharp); + } + + public final class SettingsKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getSettings(androidx.compose.material.icons.Icons.Sharp); + } + + public final class ShareKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getShare(androidx.compose.material.icons.Icons.Sharp); + } + + public final class ShoppingCartKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getShoppingCart(androidx.compose.material.icons.Icons.Sharp); + } + + public final class StarKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getStar(androidx.compose.material.icons.Icons.Sharp); + } + + public final class ThumbUpKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getThumbUp(androidx.compose.material.icons.Icons.Sharp); + } + + public final class WarningKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getWarning(androidx.compose.material.icons.Icons.Sharp); + } + +} + +package androidx.compose.material.icons.twotone { + + public final class AccountBoxKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAccountBox(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class AccountCircleKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAccountCircle(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class AddCircleKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAddCircle(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class AddKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAdd(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class ArrowBackKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getArrowBack(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class ArrowDropDownKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getArrowDropDown(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class ArrowForwardKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getArrowForward(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class BuildKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getBuild(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class CallKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCall(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class CheckCircleKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCheckCircle(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class CheckKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCheck(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class ClearKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getClear(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class CloseKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getClose(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class CreateKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCreate(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class DateRangeKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getDateRange(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class DeleteKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getDelete(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class DoneKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getDone(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class EditKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getEdit(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class EmailKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getEmail(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class ExitToAppKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getExitToApp(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class FaceKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getFace(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class FavoriteBorderKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getFavoriteBorder(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class FavoriteKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getFavorite(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class HomeKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getHome(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class InfoKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getInfo(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class KeyboardArrowDownKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowDown(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class KeyboardArrowLeftKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowLeft(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class KeyboardArrowRightKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowRight(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class KeyboardArrowUpKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowUp(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class ListKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getList(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class LocationOnKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getLocationOn(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class LockKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getLock(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class MailOutlineKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getMailOutline(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class MenuKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getMenu(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class MoreVertKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getMoreVert(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class NotificationsKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getNotifications(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class PersonKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPerson(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class PhoneKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPhone(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class PlaceKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPlace(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class PlayArrowKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPlayArrow(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class RefreshKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getRefresh(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class SearchKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getSearch(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class SendKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getSend(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class SettingsKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getSettings(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class ShareKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getShare(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class ShoppingCartKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getShoppingCart(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class StarKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getStar(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class ThumbUpKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getThumbUp(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class WarningKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getWarning(androidx.compose.material.icons.Icons.TwoTone); + } + +} + diff --git a/compose/material/material-icons-core/api/res-1.7.0-beta07.txt b/compose/material/material-icons-core/api/res-1.7.0-beta07.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/compose/material/material-icons-core/api/restricted_1.7.0-beta07.txt b/compose/material/material-icons-core/api/restricted_1.7.0-beta07.txt new file mode 100644 index 0000000000000..06acb8eaf32b9 --- /dev/null +++ b/compose/material/material-icons-core/api/restricted_1.7.0-beta07.txt @@ -0,0 +1,1224 @@ +// Signature format: 4.0 +package androidx.compose.material.icons { + + public final class Icons { + method public androidx.compose.material.icons.Icons.Filled getDefault(); + property public final androidx.compose.material.icons.Icons.Filled Default; + field public static final androidx.compose.material.icons.Icons INSTANCE; + } + + public static final class Icons.AutoMirrored { + method public androidx.compose.material.icons.Icons.AutoMirrored.Filled getDefault(); + property public final androidx.compose.material.icons.Icons.AutoMirrored.Filled Default; + field public static final androidx.compose.material.icons.Icons.AutoMirrored INSTANCE; + } + + public static final class Icons.AutoMirrored.Filled { + field public static final androidx.compose.material.icons.Icons.AutoMirrored.Filled INSTANCE; + } + + public static final class Icons.AutoMirrored.Outlined { + field public static final androidx.compose.material.icons.Icons.AutoMirrored.Outlined INSTANCE; + } + + public static final class Icons.AutoMirrored.Rounded { + field public static final androidx.compose.material.icons.Icons.AutoMirrored.Rounded INSTANCE; + } + + public static final class Icons.AutoMirrored.Sharp { + field public static final androidx.compose.material.icons.Icons.AutoMirrored.Sharp INSTANCE; + } + + public static final class Icons.AutoMirrored.TwoTone { + field public static final androidx.compose.material.icons.Icons.AutoMirrored.TwoTone INSTANCE; + } + + public static final class Icons.Filled { + field public static final androidx.compose.material.icons.Icons.Filled INSTANCE; + } + + public static final class Icons.Outlined { + field public static final androidx.compose.material.icons.Icons.Outlined INSTANCE; + } + + public static final class Icons.Rounded { + field public static final androidx.compose.material.icons.Icons.Rounded INSTANCE; + } + + public static final class Icons.Sharp { + field public static final androidx.compose.material.icons.Icons.Sharp INSTANCE; + } + + public static final class Icons.TwoTone { + field public static final androidx.compose.material.icons.Icons.TwoTone INSTANCE; + } + + public final class IconsKt { + method public static inline androidx.compose.ui.graphics.vector.ImageVector materialIcon(String name, optional boolean autoMirror, kotlin.jvm.functions.Function1 block); + method @Deprecated public static inline androidx.compose.ui.graphics.vector.ImageVector materialIcon(String name, kotlin.jvm.functions.Function1 block); + method public static inline androidx.compose.ui.graphics.vector.ImageVector.Builder materialPath(androidx.compose.ui.graphics.vector.ImageVector.Builder, optional float fillAlpha, optional float strokeAlpha, optional int pathFillType, kotlin.jvm.functions.Function1 pathBuilder); + field @kotlin.PublishedApi internal static final float MaterialIconDimension = 24.0f; + } + +} + +package androidx.compose.material.icons.automirrored.filled { + + public final class ArrowBackKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getArrowBack(androidx.compose.material.icons.Icons.AutoMirrored.Filled); + } + + public final class ArrowForwardKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getArrowForward(androidx.compose.material.icons.Icons.AutoMirrored.Filled); + } + + public final class ExitToAppKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getExitToApp(androidx.compose.material.icons.Icons.AutoMirrored.Filled); + } + + public final class KeyboardArrowLeftKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowLeft(androidx.compose.material.icons.Icons.AutoMirrored.Filled); + } + + public final class KeyboardArrowRightKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowRight(androidx.compose.material.icons.Icons.AutoMirrored.Filled); + } + + public final class ListKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getList(androidx.compose.material.icons.Icons.AutoMirrored.Filled); + } + + public final class SendKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getSend(androidx.compose.material.icons.Icons.AutoMirrored.Filled); + } + +} + +package androidx.compose.material.icons.automirrored.outlined { + + public final class ArrowBackKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getArrowBack(androidx.compose.material.icons.Icons.AutoMirrored.Outlined); + } + + public final class ArrowForwardKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getArrowForward(androidx.compose.material.icons.Icons.AutoMirrored.Outlined); + } + + public final class ExitToAppKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getExitToApp(androidx.compose.material.icons.Icons.AutoMirrored.Outlined); + } + + public final class KeyboardArrowLeftKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowLeft(androidx.compose.material.icons.Icons.AutoMirrored.Outlined); + } + + public final class KeyboardArrowRightKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowRight(androidx.compose.material.icons.Icons.AutoMirrored.Outlined); + } + + public final class ListKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getList(androidx.compose.material.icons.Icons.AutoMirrored.Outlined); + } + + public final class SendKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getSend(androidx.compose.material.icons.Icons.AutoMirrored.Outlined); + } + +} + +package androidx.compose.material.icons.automirrored.rounded { + + public final class ArrowBackKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getArrowBack(androidx.compose.material.icons.Icons.AutoMirrored.Rounded); + } + + public final class ArrowForwardKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getArrowForward(androidx.compose.material.icons.Icons.AutoMirrored.Rounded); + } + + public final class ExitToAppKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getExitToApp(androidx.compose.material.icons.Icons.AutoMirrored.Rounded); + } + + public final class KeyboardArrowLeftKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowLeft(androidx.compose.material.icons.Icons.AutoMirrored.Rounded); + } + + public final class KeyboardArrowRightKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowRight(androidx.compose.material.icons.Icons.AutoMirrored.Rounded); + } + + public final class ListKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getList(androidx.compose.material.icons.Icons.AutoMirrored.Rounded); + } + + public final class SendKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getSend(androidx.compose.material.icons.Icons.AutoMirrored.Rounded); + } + +} + +package androidx.compose.material.icons.automirrored.sharp { + + public final class ArrowBackKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getArrowBack(androidx.compose.material.icons.Icons.AutoMirrored.Sharp); + } + + public final class ArrowForwardKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getArrowForward(androidx.compose.material.icons.Icons.AutoMirrored.Sharp); + } + + public final class ExitToAppKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getExitToApp(androidx.compose.material.icons.Icons.AutoMirrored.Sharp); + } + + public final class KeyboardArrowLeftKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowLeft(androidx.compose.material.icons.Icons.AutoMirrored.Sharp); + } + + public final class KeyboardArrowRightKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowRight(androidx.compose.material.icons.Icons.AutoMirrored.Sharp); + } + + public final class ListKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getList(androidx.compose.material.icons.Icons.AutoMirrored.Sharp); + } + + public final class SendKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getSend(androidx.compose.material.icons.Icons.AutoMirrored.Sharp); + } + +} + +package androidx.compose.material.icons.automirrored.twotone { + + public final class ArrowBackKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getArrowBack(androidx.compose.material.icons.Icons.AutoMirrored.TwoTone); + } + + public final class ArrowForwardKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getArrowForward(androidx.compose.material.icons.Icons.AutoMirrored.TwoTone); + } + + public final class ExitToAppKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getExitToApp(androidx.compose.material.icons.Icons.AutoMirrored.TwoTone); + } + + public final class KeyboardArrowLeftKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowLeft(androidx.compose.material.icons.Icons.AutoMirrored.TwoTone); + } + + public final class KeyboardArrowRightKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowRight(androidx.compose.material.icons.Icons.AutoMirrored.TwoTone); + } + + public final class ListKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getList(androidx.compose.material.icons.Icons.AutoMirrored.TwoTone); + } + + public final class SendKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getSend(androidx.compose.material.icons.Icons.AutoMirrored.TwoTone); + } + +} + +package androidx.compose.material.icons.filled { + + public final class AccountBoxKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAccountBox(androidx.compose.material.icons.Icons.Filled); + } + + public final class AccountCircleKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAccountCircle(androidx.compose.material.icons.Icons.Filled); + } + + public final class AddCircleKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAddCircle(androidx.compose.material.icons.Icons.Filled); + } + + public final class AddKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAdd(androidx.compose.material.icons.Icons.Filled); + } + + public final class ArrowBackKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getArrowBack(androidx.compose.material.icons.Icons.Filled); + } + + public final class ArrowDropDownKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getArrowDropDown(androidx.compose.material.icons.Icons.Filled); + } + + public final class ArrowForwardKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getArrowForward(androidx.compose.material.icons.Icons.Filled); + } + + public final class BuildKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getBuild(androidx.compose.material.icons.Icons.Filled); + } + + public final class CallKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCall(androidx.compose.material.icons.Icons.Filled); + } + + public final class CheckCircleKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCheckCircle(androidx.compose.material.icons.Icons.Filled); + } + + public final class CheckKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCheck(androidx.compose.material.icons.Icons.Filled); + } + + public final class ClearKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getClear(androidx.compose.material.icons.Icons.Filled); + } + + public final class CloseKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getClose(androidx.compose.material.icons.Icons.Filled); + } + + public final class CreateKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCreate(androidx.compose.material.icons.Icons.Filled); + } + + public final class DateRangeKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getDateRange(androidx.compose.material.icons.Icons.Filled); + } + + public final class DeleteKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getDelete(androidx.compose.material.icons.Icons.Filled); + } + + public final class DoneKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getDone(androidx.compose.material.icons.Icons.Filled); + } + + public final class EditKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getEdit(androidx.compose.material.icons.Icons.Filled); + } + + public final class EmailKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getEmail(androidx.compose.material.icons.Icons.Filled); + } + + public final class ExitToAppKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getExitToApp(androidx.compose.material.icons.Icons.Filled); + } + + public final class FaceKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getFace(androidx.compose.material.icons.Icons.Filled); + } + + public final class FavoriteBorderKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getFavoriteBorder(androidx.compose.material.icons.Icons.Filled); + } + + public final class FavoriteKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getFavorite(androidx.compose.material.icons.Icons.Filled); + } + + public final class HomeKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getHome(androidx.compose.material.icons.Icons.Filled); + } + + public final class InfoKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getInfo(androidx.compose.material.icons.Icons.Filled); + } + + public final class KeyboardArrowDownKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowDown(androidx.compose.material.icons.Icons.Filled); + } + + public final class KeyboardArrowLeftKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowLeft(androidx.compose.material.icons.Icons.Filled); + } + + public final class KeyboardArrowRightKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowRight(androidx.compose.material.icons.Icons.Filled); + } + + public final class KeyboardArrowUpKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowUp(androidx.compose.material.icons.Icons.Filled); + } + + public final class ListKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getList(androidx.compose.material.icons.Icons.Filled); + } + + public final class LocationOnKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getLocationOn(androidx.compose.material.icons.Icons.Filled); + } + + public final class LockKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getLock(androidx.compose.material.icons.Icons.Filled); + } + + public final class MailOutlineKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getMailOutline(androidx.compose.material.icons.Icons.Filled); + } + + public final class MenuKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getMenu(androidx.compose.material.icons.Icons.Filled); + } + + public final class MoreVertKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getMoreVert(androidx.compose.material.icons.Icons.Filled); + } + + public final class NotificationsKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getNotifications(androidx.compose.material.icons.Icons.Filled); + } + + public final class PersonKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPerson(androidx.compose.material.icons.Icons.Filled); + } + + public final class PhoneKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPhone(androidx.compose.material.icons.Icons.Filled); + } + + public final class PlaceKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPlace(androidx.compose.material.icons.Icons.Filled); + } + + public final class PlayArrowKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPlayArrow(androidx.compose.material.icons.Icons.Filled); + } + + public final class RefreshKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getRefresh(androidx.compose.material.icons.Icons.Filled); + } + + public final class SearchKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getSearch(androidx.compose.material.icons.Icons.Filled); + } + + public final class SendKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getSend(androidx.compose.material.icons.Icons.Filled); + } + + public final class SettingsKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getSettings(androidx.compose.material.icons.Icons.Filled); + } + + public final class ShareKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getShare(androidx.compose.material.icons.Icons.Filled); + } + + public final class ShoppingCartKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getShoppingCart(androidx.compose.material.icons.Icons.Filled); + } + + public final class StarKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getStar(androidx.compose.material.icons.Icons.Filled); + } + + public final class ThumbUpKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getThumbUp(androidx.compose.material.icons.Icons.Filled); + } + + public final class WarningKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getWarning(androidx.compose.material.icons.Icons.Filled); + } + +} + +package androidx.compose.material.icons.outlined { + + public final class AccountBoxKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAccountBox(androidx.compose.material.icons.Icons.Outlined); + } + + public final class AccountCircleKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAccountCircle(androidx.compose.material.icons.Icons.Outlined); + } + + public final class AddCircleKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAddCircle(androidx.compose.material.icons.Icons.Outlined); + } + + public final class AddKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAdd(androidx.compose.material.icons.Icons.Outlined); + } + + public final class ArrowBackKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getArrowBack(androidx.compose.material.icons.Icons.Outlined); + } + + public final class ArrowDropDownKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getArrowDropDown(androidx.compose.material.icons.Icons.Outlined); + } + + public final class ArrowForwardKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getArrowForward(androidx.compose.material.icons.Icons.Outlined); + } + + public final class BuildKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getBuild(androidx.compose.material.icons.Icons.Outlined); + } + + public final class CallKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCall(androidx.compose.material.icons.Icons.Outlined); + } + + public final class CheckCircleKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCheckCircle(androidx.compose.material.icons.Icons.Outlined); + } + + public final class CheckKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCheck(androidx.compose.material.icons.Icons.Outlined); + } + + public final class ClearKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getClear(androidx.compose.material.icons.Icons.Outlined); + } + + public final class CloseKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getClose(androidx.compose.material.icons.Icons.Outlined); + } + + public final class CreateKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCreate(androidx.compose.material.icons.Icons.Outlined); + } + + public final class DateRangeKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getDateRange(androidx.compose.material.icons.Icons.Outlined); + } + + public final class DeleteKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getDelete(androidx.compose.material.icons.Icons.Outlined); + } + + public final class DoneKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getDone(androidx.compose.material.icons.Icons.Outlined); + } + + public final class EditKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getEdit(androidx.compose.material.icons.Icons.Outlined); + } + + public final class EmailKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getEmail(androidx.compose.material.icons.Icons.Outlined); + } + + public final class ExitToAppKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getExitToApp(androidx.compose.material.icons.Icons.Outlined); + } + + public final class FaceKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getFace(androidx.compose.material.icons.Icons.Outlined); + } + + public final class FavoriteBorderKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getFavoriteBorder(androidx.compose.material.icons.Icons.Outlined); + } + + public final class FavoriteKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getFavorite(androidx.compose.material.icons.Icons.Outlined); + } + + public final class HomeKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getHome(androidx.compose.material.icons.Icons.Outlined); + } + + public final class InfoKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getInfo(androidx.compose.material.icons.Icons.Outlined); + } + + public final class KeyboardArrowDownKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowDown(androidx.compose.material.icons.Icons.Outlined); + } + + public final class KeyboardArrowLeftKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowLeft(androidx.compose.material.icons.Icons.Outlined); + } + + public final class KeyboardArrowRightKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowRight(androidx.compose.material.icons.Icons.Outlined); + } + + public final class KeyboardArrowUpKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowUp(androidx.compose.material.icons.Icons.Outlined); + } + + public final class ListKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getList(androidx.compose.material.icons.Icons.Outlined); + } + + public final class LocationOnKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getLocationOn(androidx.compose.material.icons.Icons.Outlined); + } + + public final class LockKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getLock(androidx.compose.material.icons.Icons.Outlined); + } + + public final class MailOutlineKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getMailOutline(androidx.compose.material.icons.Icons.Outlined); + } + + public final class MenuKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getMenu(androidx.compose.material.icons.Icons.Outlined); + } + + public final class MoreVertKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getMoreVert(androidx.compose.material.icons.Icons.Outlined); + } + + public final class NotificationsKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getNotifications(androidx.compose.material.icons.Icons.Outlined); + } + + public final class PersonKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPerson(androidx.compose.material.icons.Icons.Outlined); + } + + public final class PhoneKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPhone(androidx.compose.material.icons.Icons.Outlined); + } + + public final class PlaceKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPlace(androidx.compose.material.icons.Icons.Outlined); + } + + public final class PlayArrowKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPlayArrow(androidx.compose.material.icons.Icons.Outlined); + } + + public final class RefreshKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getRefresh(androidx.compose.material.icons.Icons.Outlined); + } + + public final class SearchKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getSearch(androidx.compose.material.icons.Icons.Outlined); + } + + public final class SendKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getSend(androidx.compose.material.icons.Icons.Outlined); + } + + public final class SettingsKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getSettings(androidx.compose.material.icons.Icons.Outlined); + } + + public final class ShareKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getShare(androidx.compose.material.icons.Icons.Outlined); + } + + public final class ShoppingCartKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getShoppingCart(androidx.compose.material.icons.Icons.Outlined); + } + + public final class StarKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getStar(androidx.compose.material.icons.Icons.Outlined); + } + + public final class ThumbUpKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getThumbUp(androidx.compose.material.icons.Icons.Outlined); + } + + public final class WarningKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getWarning(androidx.compose.material.icons.Icons.Outlined); + } + +} + +package androidx.compose.material.icons.rounded { + + public final class AccountBoxKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAccountBox(androidx.compose.material.icons.Icons.Rounded); + } + + public final class AccountCircleKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAccountCircle(androidx.compose.material.icons.Icons.Rounded); + } + + public final class AddCircleKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAddCircle(androidx.compose.material.icons.Icons.Rounded); + } + + public final class AddKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAdd(androidx.compose.material.icons.Icons.Rounded); + } + + public final class ArrowBackKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getArrowBack(androidx.compose.material.icons.Icons.Rounded); + } + + public final class ArrowDropDownKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getArrowDropDown(androidx.compose.material.icons.Icons.Rounded); + } + + public final class ArrowForwardKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getArrowForward(androidx.compose.material.icons.Icons.Rounded); + } + + public final class BuildKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getBuild(androidx.compose.material.icons.Icons.Rounded); + } + + public final class CallKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCall(androidx.compose.material.icons.Icons.Rounded); + } + + public final class CheckCircleKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCheckCircle(androidx.compose.material.icons.Icons.Rounded); + } + + public final class CheckKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCheck(androidx.compose.material.icons.Icons.Rounded); + } + + public final class ClearKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getClear(androidx.compose.material.icons.Icons.Rounded); + } + + public final class CloseKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getClose(androidx.compose.material.icons.Icons.Rounded); + } + + public final class CreateKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCreate(androidx.compose.material.icons.Icons.Rounded); + } + + public final class DateRangeKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getDateRange(androidx.compose.material.icons.Icons.Rounded); + } + + public final class DeleteKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getDelete(androidx.compose.material.icons.Icons.Rounded); + } + + public final class DoneKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getDone(androidx.compose.material.icons.Icons.Rounded); + } + + public final class EditKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getEdit(androidx.compose.material.icons.Icons.Rounded); + } + + public final class EmailKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getEmail(androidx.compose.material.icons.Icons.Rounded); + } + + public final class ExitToAppKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getExitToApp(androidx.compose.material.icons.Icons.Rounded); + } + + public final class FaceKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getFace(androidx.compose.material.icons.Icons.Rounded); + } + + public final class FavoriteBorderKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getFavoriteBorder(androidx.compose.material.icons.Icons.Rounded); + } + + public final class FavoriteKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getFavorite(androidx.compose.material.icons.Icons.Rounded); + } + + public final class HomeKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getHome(androidx.compose.material.icons.Icons.Rounded); + } + + public final class InfoKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getInfo(androidx.compose.material.icons.Icons.Rounded); + } + + public final class KeyboardArrowDownKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowDown(androidx.compose.material.icons.Icons.Rounded); + } + + public final class KeyboardArrowLeftKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowLeft(androidx.compose.material.icons.Icons.Rounded); + } + + public final class KeyboardArrowRightKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowRight(androidx.compose.material.icons.Icons.Rounded); + } + + public final class KeyboardArrowUpKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowUp(androidx.compose.material.icons.Icons.Rounded); + } + + public final class ListKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getList(androidx.compose.material.icons.Icons.Rounded); + } + + public final class LocationOnKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getLocationOn(androidx.compose.material.icons.Icons.Rounded); + } + + public final class LockKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getLock(androidx.compose.material.icons.Icons.Rounded); + } + + public final class MailOutlineKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getMailOutline(androidx.compose.material.icons.Icons.Rounded); + } + + public final class MenuKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getMenu(androidx.compose.material.icons.Icons.Rounded); + } + + public final class MoreVertKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getMoreVert(androidx.compose.material.icons.Icons.Rounded); + } + + public final class NotificationsKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getNotifications(androidx.compose.material.icons.Icons.Rounded); + } + + public final class PersonKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPerson(androidx.compose.material.icons.Icons.Rounded); + } + + public final class PhoneKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPhone(androidx.compose.material.icons.Icons.Rounded); + } + + public final class PlaceKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPlace(androidx.compose.material.icons.Icons.Rounded); + } + + public final class PlayArrowKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPlayArrow(androidx.compose.material.icons.Icons.Rounded); + } + + public final class RefreshKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getRefresh(androidx.compose.material.icons.Icons.Rounded); + } + + public final class SearchKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getSearch(androidx.compose.material.icons.Icons.Rounded); + } + + public final class SendKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getSend(androidx.compose.material.icons.Icons.Rounded); + } + + public final class SettingsKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getSettings(androidx.compose.material.icons.Icons.Rounded); + } + + public final class ShareKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getShare(androidx.compose.material.icons.Icons.Rounded); + } + + public final class ShoppingCartKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getShoppingCart(androidx.compose.material.icons.Icons.Rounded); + } + + public final class StarKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getStar(androidx.compose.material.icons.Icons.Rounded); + } + + public final class ThumbUpKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getThumbUp(androidx.compose.material.icons.Icons.Rounded); + } + + public final class WarningKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getWarning(androidx.compose.material.icons.Icons.Rounded); + } + +} + +package androidx.compose.material.icons.sharp { + + public final class AccountBoxKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAccountBox(androidx.compose.material.icons.Icons.Sharp); + } + + public final class AccountCircleKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAccountCircle(androidx.compose.material.icons.Icons.Sharp); + } + + public final class AddCircleKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAddCircle(androidx.compose.material.icons.Icons.Sharp); + } + + public final class AddKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAdd(androidx.compose.material.icons.Icons.Sharp); + } + + public final class ArrowBackKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getArrowBack(androidx.compose.material.icons.Icons.Sharp); + } + + public final class ArrowDropDownKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getArrowDropDown(androidx.compose.material.icons.Icons.Sharp); + } + + public final class ArrowForwardKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getArrowForward(androidx.compose.material.icons.Icons.Sharp); + } + + public final class BuildKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getBuild(androidx.compose.material.icons.Icons.Sharp); + } + + public final class CallKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCall(androidx.compose.material.icons.Icons.Sharp); + } + + public final class CheckCircleKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCheckCircle(androidx.compose.material.icons.Icons.Sharp); + } + + public final class CheckKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCheck(androidx.compose.material.icons.Icons.Sharp); + } + + public final class ClearKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getClear(androidx.compose.material.icons.Icons.Sharp); + } + + public final class CloseKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getClose(androidx.compose.material.icons.Icons.Sharp); + } + + public final class CreateKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCreate(androidx.compose.material.icons.Icons.Sharp); + } + + public final class DateRangeKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getDateRange(androidx.compose.material.icons.Icons.Sharp); + } + + public final class DeleteKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getDelete(androidx.compose.material.icons.Icons.Sharp); + } + + public final class DoneKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getDone(androidx.compose.material.icons.Icons.Sharp); + } + + public final class EditKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getEdit(androidx.compose.material.icons.Icons.Sharp); + } + + public final class EmailKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getEmail(androidx.compose.material.icons.Icons.Sharp); + } + + public final class ExitToAppKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getExitToApp(androidx.compose.material.icons.Icons.Sharp); + } + + public final class FaceKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getFace(androidx.compose.material.icons.Icons.Sharp); + } + + public final class FavoriteBorderKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getFavoriteBorder(androidx.compose.material.icons.Icons.Sharp); + } + + public final class FavoriteKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getFavorite(androidx.compose.material.icons.Icons.Sharp); + } + + public final class HomeKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getHome(androidx.compose.material.icons.Icons.Sharp); + } + + public final class InfoKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getInfo(androidx.compose.material.icons.Icons.Sharp); + } + + public final class KeyboardArrowDownKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowDown(androidx.compose.material.icons.Icons.Sharp); + } + + public final class KeyboardArrowLeftKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowLeft(androidx.compose.material.icons.Icons.Sharp); + } + + public final class KeyboardArrowRightKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowRight(androidx.compose.material.icons.Icons.Sharp); + } + + public final class KeyboardArrowUpKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowUp(androidx.compose.material.icons.Icons.Sharp); + } + + public final class ListKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getList(androidx.compose.material.icons.Icons.Sharp); + } + + public final class LocationOnKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getLocationOn(androidx.compose.material.icons.Icons.Sharp); + } + + public final class LockKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getLock(androidx.compose.material.icons.Icons.Sharp); + } + + public final class MailOutlineKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getMailOutline(androidx.compose.material.icons.Icons.Sharp); + } + + public final class MenuKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getMenu(androidx.compose.material.icons.Icons.Sharp); + } + + public final class MoreVertKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getMoreVert(androidx.compose.material.icons.Icons.Sharp); + } + + public final class NotificationsKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getNotifications(androidx.compose.material.icons.Icons.Sharp); + } + + public final class PersonKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPerson(androidx.compose.material.icons.Icons.Sharp); + } + + public final class PhoneKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPhone(androidx.compose.material.icons.Icons.Sharp); + } + + public final class PlaceKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPlace(androidx.compose.material.icons.Icons.Sharp); + } + + public final class PlayArrowKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPlayArrow(androidx.compose.material.icons.Icons.Sharp); + } + + public final class RefreshKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getRefresh(androidx.compose.material.icons.Icons.Sharp); + } + + public final class SearchKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getSearch(androidx.compose.material.icons.Icons.Sharp); + } + + public final class SendKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getSend(androidx.compose.material.icons.Icons.Sharp); + } + + public final class SettingsKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getSettings(androidx.compose.material.icons.Icons.Sharp); + } + + public final class ShareKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getShare(androidx.compose.material.icons.Icons.Sharp); + } + + public final class ShoppingCartKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getShoppingCart(androidx.compose.material.icons.Icons.Sharp); + } + + public final class StarKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getStar(androidx.compose.material.icons.Icons.Sharp); + } + + public final class ThumbUpKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getThumbUp(androidx.compose.material.icons.Icons.Sharp); + } + + public final class WarningKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getWarning(androidx.compose.material.icons.Icons.Sharp); + } + +} + +package androidx.compose.material.icons.twotone { + + public final class AccountBoxKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAccountBox(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class AccountCircleKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAccountCircle(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class AddCircleKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAddCircle(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class AddKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getAdd(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class ArrowBackKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getArrowBack(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class ArrowDropDownKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getArrowDropDown(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class ArrowForwardKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getArrowForward(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class BuildKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getBuild(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class CallKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCall(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class CheckCircleKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCheckCircle(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class CheckKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCheck(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class ClearKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getClear(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class CloseKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getClose(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class CreateKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getCreate(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class DateRangeKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getDateRange(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class DeleteKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getDelete(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class DoneKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getDone(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class EditKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getEdit(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class EmailKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getEmail(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class ExitToAppKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getExitToApp(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class FaceKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getFace(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class FavoriteBorderKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getFavoriteBorder(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class FavoriteKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getFavorite(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class HomeKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getHome(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class InfoKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getInfo(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class KeyboardArrowDownKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowDown(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class KeyboardArrowLeftKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowLeft(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class KeyboardArrowRightKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowRight(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class KeyboardArrowUpKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getKeyboardArrowUp(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class ListKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getList(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class LocationOnKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getLocationOn(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class LockKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getLock(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class MailOutlineKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getMailOutline(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class MenuKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getMenu(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class MoreVertKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getMoreVert(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class NotificationsKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getNotifications(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class PersonKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPerson(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class PhoneKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPhone(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class PlaceKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPlace(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class PlayArrowKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getPlayArrow(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class RefreshKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getRefresh(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class SearchKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getSearch(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class SendKt { + method @Deprecated public static androidx.compose.ui.graphics.vector.ImageVector getSend(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class SettingsKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getSettings(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class ShareKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getShare(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class ShoppingCartKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getShoppingCart(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class StarKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getStar(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class ThumbUpKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getThumbUp(androidx.compose.material.icons.Icons.TwoTone); + } + + public final class WarningKt { + method public static androidx.compose.ui.graphics.vector.ImageVector getWarning(androidx.compose.material.icons.Icons.TwoTone); + } + +} + diff --git a/compose/material/material-navigation/api/1.7.0-beta07.txt b/compose/material/material-navigation/api/1.7.0-beta07.txt new file mode 100644 index 0000000000000..8255b2388c3dc --- /dev/null +++ b/compose/material/material-navigation/api/1.7.0-beta07.txt @@ -0,0 +1,38 @@ +// Signature format: 4.0 +package androidx.compose.material.navigation { + + public final class BottomSheetKt { + method @androidx.compose.runtime.Composable public static void ModalBottomSheetLayout(androidx.compose.material.navigation.BottomSheetNavigator bottomSheetNavigator, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.graphics.Shape sheetShape, optional float sheetElevation, optional long sheetBackgroundColor, optional long sheetContentColor, optional long scrimColor, kotlin.jvm.functions.Function0 content); + } + + @androidx.navigation.Navigator.Name("bottomSheet") public final class BottomSheetNavigator extends androidx.navigation.Navigator { + ctor public BottomSheetNavigator(androidx.compose.material.ModalBottomSheetState sheetState); + method public androidx.compose.material.navigation.BottomSheetNavigator.Destination createDestination(); + method public androidx.compose.material.navigation.BottomSheetNavigatorSheetState getNavigatorSheetState(); + property public final androidx.compose.material.navigation.BottomSheetNavigatorSheetState navigatorSheetState; + } + + @androidx.navigation.NavDestination.ClassType(Composable::class) public static final class BottomSheetNavigator.Destination extends androidx.navigation.NavDestination implements androidx.navigation.FloatingWindow { + ctor public BottomSheetNavigator.Destination(androidx.compose.material.navigation.BottomSheetNavigator navigator, kotlin.jvm.functions.Function2 content); + } + + public final class BottomSheetNavigatorKt { + method @androidx.compose.runtime.Composable public static androidx.compose.material.navigation.BottomSheetNavigator rememberBottomSheetNavigator(optional androidx.compose.animation.core.AnimationSpec animationSpec); + } + + public final class BottomSheetNavigatorSheetState { + ctor public BottomSheetNavigatorSheetState(androidx.compose.material.ModalBottomSheetState sheetState); + method public androidx.compose.material.ModalBottomSheetValue getCurrentValue(); + method public androidx.compose.material.ModalBottomSheetValue getTargetValue(); + method public boolean isVisible(); + property public final androidx.compose.material.ModalBottomSheetValue currentValue; + property public final boolean isVisible; + property public final androidx.compose.material.ModalBottomSheetValue targetValue; + } + + public final class NavGraphBuilderKt { + method public static void bottomSheet(androidx.navigation.NavGraphBuilder, String route, optional java.util.List arguments, optional java.util.List deepLinks, kotlin.jvm.functions.Function2 content); + } + +} + diff --git a/compose/material/material-navigation/api/res-1.7.0-beta07.txt b/compose/material/material-navigation/api/res-1.7.0-beta07.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/compose/material/material-navigation/api/restricted_1.7.0-beta07.txt b/compose/material/material-navigation/api/restricted_1.7.0-beta07.txt new file mode 100644 index 0000000000000..8255b2388c3dc --- /dev/null +++ b/compose/material/material-navigation/api/restricted_1.7.0-beta07.txt @@ -0,0 +1,38 @@ +// Signature format: 4.0 +package androidx.compose.material.navigation { + + public final class BottomSheetKt { + method @androidx.compose.runtime.Composable public static void ModalBottomSheetLayout(androidx.compose.material.navigation.BottomSheetNavigator bottomSheetNavigator, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.graphics.Shape sheetShape, optional float sheetElevation, optional long sheetBackgroundColor, optional long sheetContentColor, optional long scrimColor, kotlin.jvm.functions.Function0 content); + } + + @androidx.navigation.Navigator.Name("bottomSheet") public final class BottomSheetNavigator extends androidx.navigation.Navigator { + ctor public BottomSheetNavigator(androidx.compose.material.ModalBottomSheetState sheetState); + method public androidx.compose.material.navigation.BottomSheetNavigator.Destination createDestination(); + method public androidx.compose.material.navigation.BottomSheetNavigatorSheetState getNavigatorSheetState(); + property public final androidx.compose.material.navigation.BottomSheetNavigatorSheetState navigatorSheetState; + } + + @androidx.navigation.NavDestination.ClassType(Composable::class) public static final class BottomSheetNavigator.Destination extends androidx.navigation.NavDestination implements androidx.navigation.FloatingWindow { + ctor public BottomSheetNavigator.Destination(androidx.compose.material.navigation.BottomSheetNavigator navigator, kotlin.jvm.functions.Function2 content); + } + + public final class BottomSheetNavigatorKt { + method @androidx.compose.runtime.Composable public static androidx.compose.material.navigation.BottomSheetNavigator rememberBottomSheetNavigator(optional androidx.compose.animation.core.AnimationSpec animationSpec); + } + + public final class BottomSheetNavigatorSheetState { + ctor public BottomSheetNavigatorSheetState(androidx.compose.material.ModalBottomSheetState sheetState); + method public androidx.compose.material.ModalBottomSheetValue getCurrentValue(); + method public androidx.compose.material.ModalBottomSheetValue getTargetValue(); + method public boolean isVisible(); + property public final androidx.compose.material.ModalBottomSheetValue currentValue; + property public final boolean isVisible; + property public final androidx.compose.material.ModalBottomSheetValue targetValue; + } + + public final class NavGraphBuilderKt { + method public static void bottomSheet(androidx.navigation.NavGraphBuilder, String route, optional java.util.List arguments, optional java.util.List deepLinks, kotlin.jvm.functions.Function2 content); + } + +} + diff --git a/compose/material/material-ripple/api/1.7.0-beta07.txt b/compose/material/material-ripple/api/1.7.0-beta07.txt new file mode 100644 index 0000000000000..273c7324c5f81 --- /dev/null +++ b/compose/material/material-ripple/api/1.7.0-beta07.txt @@ -0,0 +1,38 @@ +// Signature format: 4.0 +package androidx.compose.material.ripple { + + @androidx.compose.runtime.Immutable public final class RippleAlpha { + ctor public RippleAlpha(float draggedAlpha, float focusedAlpha, float hoveredAlpha, float pressedAlpha); + method public float getDraggedAlpha(); + method public float getFocusedAlpha(); + method public float getHoveredAlpha(); + method public float getPressedAlpha(); + property public final float draggedAlpha; + property public final float focusedAlpha; + property public final float hoveredAlpha; + property public final float pressedAlpha; + } + + public final class RippleKt { + method public static androidx.compose.ui.node.DelegatableNode createRippleModifierNode(androidx.compose.foundation.interaction.InteractionSource interactionSource, boolean bounded, float radius, androidx.compose.ui.graphics.ColorProducer color, kotlin.jvm.functions.Function0 rippleAlpha); + method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.foundation.Indication rememberRipple(optional boolean bounded, optional float radius, optional long color); + } + + @Deprecated public interface RippleTheme { + method @Deprecated @androidx.compose.runtime.Composable public long defaultColor(); + method @Deprecated @androidx.compose.runtime.Composable public androidx.compose.material.ripple.RippleAlpha rippleAlpha(); + field @Deprecated public static final androidx.compose.material.ripple.RippleTheme.Companion Companion; + } + + @Deprecated public static final class RippleTheme.Companion { + method @Deprecated public androidx.compose.material.ripple.RippleAlpha defaultRippleAlpha(long contentColor, boolean lightTheme); + method @Deprecated public long defaultRippleColor(long contentColor, boolean lightTheme); + } + + public final class RippleThemeKt { + method @Deprecated public static androidx.compose.runtime.ProvidableCompositionLocal getLocalRippleTheme(); + property @Deprecated public static final androidx.compose.runtime.ProvidableCompositionLocal LocalRippleTheme; + } + +} + diff --git a/compose/material/material-ripple/api/res-1.7.0-beta07.txt b/compose/material/material-ripple/api/res-1.7.0-beta07.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/compose/material/material-ripple/api/restricted_1.7.0-beta07.txt b/compose/material/material-ripple/api/restricted_1.7.0-beta07.txt new file mode 100644 index 0000000000000..273c7324c5f81 --- /dev/null +++ b/compose/material/material-ripple/api/restricted_1.7.0-beta07.txt @@ -0,0 +1,38 @@ +// Signature format: 4.0 +package androidx.compose.material.ripple { + + @androidx.compose.runtime.Immutable public final class RippleAlpha { + ctor public RippleAlpha(float draggedAlpha, float focusedAlpha, float hoveredAlpha, float pressedAlpha); + method public float getDraggedAlpha(); + method public float getFocusedAlpha(); + method public float getHoveredAlpha(); + method public float getPressedAlpha(); + property public final float draggedAlpha; + property public final float focusedAlpha; + property public final float hoveredAlpha; + property public final float pressedAlpha; + } + + public final class RippleKt { + method public static androidx.compose.ui.node.DelegatableNode createRippleModifierNode(androidx.compose.foundation.interaction.InteractionSource interactionSource, boolean bounded, float radius, androidx.compose.ui.graphics.ColorProducer color, kotlin.jvm.functions.Function0 rippleAlpha); + method @Deprecated @androidx.compose.runtime.Composable public static androidx.compose.foundation.Indication rememberRipple(optional boolean bounded, optional float radius, optional long color); + } + + @Deprecated public interface RippleTheme { + method @Deprecated @androidx.compose.runtime.Composable public long defaultColor(); + method @Deprecated @androidx.compose.runtime.Composable public androidx.compose.material.ripple.RippleAlpha rippleAlpha(); + field @Deprecated public static final androidx.compose.material.ripple.RippleTheme.Companion Companion; + } + + @Deprecated public static final class RippleTheme.Companion { + method @Deprecated public androidx.compose.material.ripple.RippleAlpha defaultRippleAlpha(long contentColor, boolean lightTheme); + method @Deprecated public long defaultRippleColor(long contentColor, boolean lightTheme); + } + + public final class RippleThemeKt { + method @Deprecated public static androidx.compose.runtime.ProvidableCompositionLocal getLocalRippleTheme(); + property @Deprecated public static final androidx.compose.runtime.ProvidableCompositionLocal LocalRippleTheme; + } + +} + diff --git a/compose/material/material/api/1.7.0-beta07.txt b/compose/material/material/api/1.7.0-beta07.txt new file mode 100644 index 0000000000000..1bd3768cae385 --- /dev/null +++ b/compose/material/material/api/1.7.0-beta07.txt @@ -0,0 +1,1021 @@ +// Signature format: 4.0 +package androidx.compose.material { + + public final class AndroidAlertDialog_androidKt { + method @androidx.compose.runtime.Composable public static void AlertDialog(kotlin.jvm.functions.Function0 onDismissRequest, kotlin.jvm.functions.Function0 buttons, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0? title, optional kotlin.jvm.functions.Function0? text, optional androidx.compose.ui.graphics.Shape shape, optional long backgroundColor, optional long contentColor, optional androidx.compose.ui.window.DialogProperties properties); + method @androidx.compose.runtime.Composable public static void AlertDialog(kotlin.jvm.functions.Function0 onDismissRequest, kotlin.jvm.functions.Function0 confirmButton, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0? dismissButton, optional kotlin.jvm.functions.Function0? title, optional kotlin.jvm.functions.Function0? text, optional androidx.compose.ui.graphics.Shape shape, optional long backgroundColor, optional long contentColor, optional androidx.compose.ui.window.DialogProperties properties); + } + + public final class AndroidMenu_androidKt { + method @androidx.compose.runtime.Composable public static void DropdownMenu(boolean expanded, kotlin.jvm.functions.Function0 onDismissRequest, optional androidx.compose.ui.Modifier modifier, optional long offset, optional androidx.compose.foundation.ScrollState scrollState, optional androidx.compose.ui.window.PopupProperties properties, kotlin.jvm.functions.Function1 content); + method @Deprecated @androidx.compose.runtime.Composable public static void DropdownMenu(boolean expanded, kotlin.jvm.functions.Function0 onDismissRequest, optional androidx.compose.ui.Modifier modifier, optional long offset, optional androidx.compose.ui.window.PopupProperties properties, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void DropdownMenuItem(kotlin.jvm.functions.Function0 onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, kotlin.jvm.functions.Function1 content); + } + + public final class AppBarDefaults { + method public float getBottomAppBarElevation(); + method @androidx.compose.runtime.Composable public androidx.compose.foundation.layout.WindowInsets getBottomAppBarWindowInsets(); + method public androidx.compose.foundation.layout.PaddingValues getContentPadding(); + method public float getTopAppBarElevation(); + method @androidx.compose.runtime.Composable public androidx.compose.foundation.layout.WindowInsets getTopAppBarWindowInsets(); + property public final float BottomAppBarElevation; + property public final androidx.compose.foundation.layout.PaddingValues ContentPadding; + property public final float TopAppBarElevation; + property @androidx.compose.runtime.Composable public final androidx.compose.foundation.layout.WindowInsets bottomAppBarWindowInsets; + property @androidx.compose.runtime.Composable public final androidx.compose.foundation.layout.WindowInsets topAppBarWindowInsets; + field public static final androidx.compose.material.AppBarDefaults INSTANCE; + } + + public final class AppBarKt { + method @androidx.compose.runtime.Composable public static void BottomAppBar(androidx.compose.foundation.layout.WindowInsets windowInsets, optional androidx.compose.ui.Modifier modifier, optional long backgroundColor, optional long contentColor, optional androidx.compose.ui.graphics.Shape? cutoutShape, optional float elevation, optional androidx.compose.foundation.layout.PaddingValues contentPadding, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void BottomAppBar(optional androidx.compose.ui.Modifier modifier, optional long backgroundColor, optional long contentColor, optional androidx.compose.ui.graphics.Shape? cutoutShape, optional float elevation, optional androidx.compose.foundation.layout.PaddingValues contentPadding, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void TopAppBar(androidx.compose.foundation.layout.WindowInsets windowInsets, optional androidx.compose.ui.Modifier modifier, optional long backgroundColor, optional long contentColor, optional float elevation, optional androidx.compose.foundation.layout.PaddingValues contentPadding, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void TopAppBar(optional androidx.compose.ui.Modifier modifier, optional long backgroundColor, optional long contentColor, optional float elevation, optional androidx.compose.foundation.layout.PaddingValues contentPadding, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void TopAppBar(kotlin.jvm.functions.Function0 title, androidx.compose.foundation.layout.WindowInsets windowInsets, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0? navigationIcon, optional kotlin.jvm.functions.Function1 actions, optional long backgroundColor, optional long contentColor, optional float elevation); + method @androidx.compose.runtime.Composable public static void TopAppBar(kotlin.jvm.functions.Function0 title, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0? navigationIcon, optional kotlin.jvm.functions.Function1 actions, optional long backgroundColor, optional long contentColor, optional float elevation); + } + + public final class BackdropScaffoldDefaults { + method public androidx.compose.animation.core.AnimationSpec getAnimationSpec(); + method public float getFrontLayerElevation(); + method @androidx.compose.runtime.Composable public long getFrontLayerScrimColor(); + method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getFrontLayerShape(); + method public float getHeaderHeight(); + method public float getPeekHeight(); + property public final androidx.compose.animation.core.AnimationSpec AnimationSpec; + property public final float FrontLayerElevation; + property public final float HeaderHeight; + property public final float PeekHeight; + property @androidx.compose.runtime.Composable public final long frontLayerScrimColor; + property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape frontLayerShape; + field public static final androidx.compose.material.BackdropScaffoldDefaults INSTANCE; + } + + public final class BackdropScaffoldKt { + method @androidx.compose.runtime.Composable public static void BackdropScaffold(kotlin.jvm.functions.Function0 appBar, kotlin.jvm.functions.Function0 backLayerContent, kotlin.jvm.functions.Function0 frontLayerContent, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material.BackdropScaffoldState scaffoldState, optional kotlin.jvm.functions.Function1 snackbarHost, optional boolean gesturesEnabled, optional float peekHeight, optional float headerHeight, optional boolean persistentAppBar, optional boolean stickyFrontLayer, optional long backLayerBackgroundColor, optional long backLayerContentColor, optional androidx.compose.ui.graphics.Shape frontLayerShape, optional float frontLayerElevation, optional long frontLayerBackgroundColor, optional long frontLayerContentColor, optional long frontLayerScrimColor); + method @androidx.compose.runtime.Stable public static androidx.compose.material.BackdropScaffoldState BackdropScaffoldState(androidx.compose.material.BackdropValue initialValue, androidx.compose.ui.unit.Density density, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional kotlin.jvm.functions.Function1 confirmValueChange, optional androidx.compose.material.SnackbarHostState snackbarHostState); + method @androidx.compose.runtime.Composable public static androidx.compose.material.BackdropScaffoldState rememberBackdropScaffoldState(androidx.compose.material.BackdropValue initialValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional kotlin.jvm.functions.Function1 confirmStateChange, optional androidx.compose.material.SnackbarHostState snackbarHostState); + } + + @androidx.compose.runtime.Stable public final class BackdropScaffoldState { + ctor @Deprecated public BackdropScaffoldState(androidx.compose.material.BackdropValue initialValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional kotlin.jvm.functions.Function1 confirmValueChange, optional androidx.compose.material.SnackbarHostState snackbarHostState); + method public suspend Object? conceal(kotlin.coroutines.Continuation); + method public kotlin.jvm.functions.Function1 getConfirmValueChange(); + method public androidx.compose.material.BackdropValue getCurrentValue(); + method public androidx.compose.material.SnackbarHostState getSnackbarHostState(); + method public androidx.compose.material.BackdropValue getTargetValue(); + method public boolean isConcealed(); + method public boolean isRevealed(); + method @FloatRange(from=0.0, to=1.0) public float progress(androidx.compose.material.BackdropValue from, androidx.compose.material.BackdropValue to); + method public float requireOffset(); + method public suspend Object? reveal(kotlin.coroutines.Continuation); + property public final kotlin.jvm.functions.Function1 confirmValueChange; + property public final androidx.compose.material.BackdropValue currentValue; + property public final boolean isConcealed; + property public final boolean isRevealed; + property public final androidx.compose.material.SnackbarHostState snackbarHostState; + property public final androidx.compose.material.BackdropValue targetValue; + field public static final androidx.compose.material.BackdropScaffoldState.Companion Companion; + } + + public static final class BackdropScaffoldState.Companion { + method public androidx.compose.runtime.saveable.Saver Saver(androidx.compose.animation.core.AnimationSpec animationSpec, kotlin.jvm.functions.Function1 confirmStateChange, androidx.compose.material.SnackbarHostState snackbarHostState, androidx.compose.ui.unit.Density density); + } + + public enum BackdropValue { + enum_constant public static final androidx.compose.material.BackdropValue Concealed; + enum_constant public static final androidx.compose.material.BackdropValue Revealed; + } + + public final class BadgeKt { + method @androidx.compose.runtime.Composable public static void Badge(optional androidx.compose.ui.Modifier modifier, optional long backgroundColor, optional long contentColor, optional kotlin.jvm.functions.Function1? content); + method @androidx.compose.runtime.Composable public static void BadgedBox(kotlin.jvm.functions.Function1 badge, optional androidx.compose.ui.Modifier modifier, kotlin.jvm.functions.Function1 content); + } + + public final class BottomDrawerState { + ctor public BottomDrawerState(androidx.compose.material.BottomDrawerValue initialValue, androidx.compose.ui.unit.Density density, optional kotlin.jvm.functions.Function1 confirmStateChange, optional androidx.compose.animation.core.AnimationSpec animationSpec); + method public suspend Object? close(kotlin.coroutines.Continuation); + method public suspend Object? expand(kotlin.coroutines.Continuation); + method public androidx.compose.material.BottomDrawerValue getCurrentValue(); + method public float getOffset(); + method @Deprecated @FloatRange(from=0.0, to=1.0) public float getProgress(); + method public androidx.compose.material.BottomDrawerValue getTargetValue(); + method public boolean isClosed(); + method public boolean isExpanded(); + method public boolean isOpen(); + method public suspend Object? open(kotlin.coroutines.Continuation); + method @FloatRange(from=0.0, to=1.0) public float progress(androidx.compose.material.BottomDrawerValue from, androidx.compose.material.BottomDrawerValue to); + property public final androidx.compose.material.BottomDrawerValue currentValue; + property public final boolean isClosed; + property public final boolean isExpanded; + property public final boolean isOpen; + property public final float offset; + property @Deprecated @SuppressCompatibility @FloatRange(from=0.0, to=1.0) @androidx.compose.material.ExperimentalMaterialApi public final float progress; + property public final androidx.compose.material.BottomDrawerValue targetValue; + field public static final androidx.compose.material.BottomDrawerState.Companion Companion; + } + + public static final class BottomDrawerState.Companion { + method public androidx.compose.runtime.saveable.Saver Saver(androidx.compose.ui.unit.Density density, kotlin.jvm.functions.Function1 confirmStateChange, androidx.compose.animation.core.AnimationSpec animationSpec); + } + + public enum BottomDrawerValue { + enum_constant public static final androidx.compose.material.BottomDrawerValue Closed; + enum_constant public static final androidx.compose.material.BottomDrawerValue Expanded; + enum_constant public static final androidx.compose.material.BottomDrawerValue Open; + } + + public final class BottomNavigationDefaults { + method public float getElevation(); + method @androidx.compose.runtime.Composable public androidx.compose.foundation.layout.WindowInsets getWindowInsets(); + property public final float Elevation; + property @androidx.compose.runtime.Composable public final androidx.compose.foundation.layout.WindowInsets windowInsets; + field public static final androidx.compose.material.BottomNavigationDefaults INSTANCE; + } + + public final class BottomNavigationKt { + method @androidx.compose.runtime.Composable public static void BottomNavigation(androidx.compose.foundation.layout.WindowInsets windowInsets, optional androidx.compose.ui.Modifier modifier, optional long backgroundColor, optional long contentColor, optional float elevation, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void BottomNavigation(optional androidx.compose.ui.Modifier modifier, optional long backgroundColor, optional long contentColor, optional float elevation, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void BottomNavigationItem(androidx.compose.foundation.layout.RowScope, boolean selected, kotlin.jvm.functions.Function0 onClick, kotlin.jvm.functions.Function0 icon, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0? label, optional boolean alwaysShowLabel, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional long selectedContentColor, optional long unselectedContentColor); + } + + public final class BottomSheetScaffoldDefaults { + method public androidx.compose.animation.core.AnimationSpec getAnimationSpec(); + method public float getSheetElevation(); + method public float getSheetPeekHeight(); + property public final androidx.compose.animation.core.AnimationSpec AnimationSpec; + property public final float SheetElevation; + property public final float SheetPeekHeight; + field public static final androidx.compose.material.BottomSheetScaffoldDefaults INSTANCE; + } + + public final class BottomSheetScaffoldKt { + method @androidx.compose.runtime.Composable public static void BottomSheetScaffold(kotlin.jvm.functions.Function1 sheetContent, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material.BottomSheetScaffoldState scaffoldState, optional kotlin.jvm.functions.Function0? topBar, optional kotlin.jvm.functions.Function1 snackbarHost, optional kotlin.jvm.functions.Function0? floatingActionButton, optional int floatingActionButtonPosition, optional boolean sheetGesturesEnabled, optional androidx.compose.ui.graphics.Shape sheetShape, optional float sheetElevation, optional long sheetBackgroundColor, optional long sheetContentColor, optional float sheetPeekHeight, optional long backgroundColor, optional long contentColor, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static androidx.compose.material.BottomSheetScaffoldState rememberBottomSheetScaffoldState(optional androidx.compose.material.BottomSheetState bottomSheetState, optional androidx.compose.material.SnackbarHostState snackbarHostState); + method @androidx.compose.runtime.Composable public static androidx.compose.material.BottomSheetState rememberBottomSheetState(androidx.compose.material.BottomSheetValue initialValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional kotlin.jvm.functions.Function1 confirmStateChange); + } + + @androidx.compose.runtime.Stable public final class BottomSheetScaffoldState { + ctor public BottomSheetScaffoldState(androidx.compose.material.BottomSheetState bottomSheetState, androidx.compose.material.SnackbarHostState snackbarHostState); + method public androidx.compose.material.BottomSheetState getBottomSheetState(); + method public androidx.compose.material.SnackbarHostState getSnackbarHostState(); + property public final androidx.compose.material.BottomSheetState bottomSheetState; + property public final androidx.compose.material.SnackbarHostState snackbarHostState; + } + + @androidx.compose.runtime.Stable public final class BottomSheetState { + ctor public BottomSheetState(androidx.compose.material.BottomSheetValue initialValue, androidx.compose.ui.unit.Density density, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional kotlin.jvm.functions.Function1 confirmValueChange); + method public suspend Object? collapse(kotlin.coroutines.Continuation); + method public suspend Object? expand(kotlin.coroutines.Continuation); + method public androidx.compose.material.BottomSheetValue getCurrentValue(); + method @Deprecated @FloatRange(from=0.0, to=1.0) public float getProgress(); + method public androidx.compose.material.BottomSheetValue getTargetValue(); + method public boolean isCollapsed(); + method public boolean isExpanded(); + method @FloatRange(from=0.0, to=1.0) public float progress(androidx.compose.material.BottomSheetValue from, androidx.compose.material.BottomSheetValue to); + method public float requireOffset(); + property public final androidx.compose.material.BottomSheetValue currentValue; + property public final boolean isCollapsed; + property public final boolean isExpanded; + property @Deprecated @SuppressCompatibility @FloatRange(from=0.0, to=1.0) @androidx.compose.material.ExperimentalMaterialApi public final float progress; + property public final androidx.compose.material.BottomSheetValue targetValue; + field public static final androidx.compose.material.BottomSheetState.Companion Companion; + } + + public static final class BottomSheetState.Companion { + method public androidx.compose.runtime.saveable.Saver Saver(androidx.compose.animation.core.AnimationSpec animationSpec, kotlin.jvm.functions.Function1 confirmStateChange, androidx.compose.ui.unit.Density density); + } + + public enum BottomSheetValue { + enum_constant public static final androidx.compose.material.BottomSheetValue Collapsed; + enum_constant public static final androidx.compose.material.BottomSheetValue Expanded; + } + + @androidx.compose.runtime.Stable public interface ButtonColors { + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State backgroundColor(boolean enabled); + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State contentColor(boolean enabled); + } + + public final class ButtonDefaults { + method @androidx.compose.runtime.Composable public androidx.compose.material.ButtonColors buttonColors(optional long backgroundColor, optional long contentColor, optional long disabledBackgroundColor, optional long disabledContentColor); + method @Deprecated @androidx.compose.runtime.Composable public androidx.compose.material.ButtonElevation elevation(optional float defaultElevation, optional float pressedElevation, optional float disabledElevation); + method @androidx.compose.runtime.Composable public androidx.compose.material.ButtonElevation elevation(optional float defaultElevation, optional float pressedElevation, optional float disabledElevation, optional float hoveredElevation, optional float focusedElevation); + method public androidx.compose.foundation.layout.PaddingValues getContentPadding(); + method public float getIconSize(); + method public float getIconSpacing(); + method public float getMinHeight(); + method public float getMinWidth(); + method @androidx.compose.runtime.Composable public androidx.compose.foundation.BorderStroke getOutlinedBorder(); + method public float getOutlinedBorderSize(); + method public androidx.compose.foundation.layout.PaddingValues getTextButtonContentPadding(); + method @androidx.compose.runtime.Composable public androidx.compose.material.ButtonColors outlinedButtonColors(optional long backgroundColor, optional long contentColor, optional long disabledContentColor); + method @androidx.compose.runtime.Composable public androidx.compose.material.ButtonColors textButtonColors(optional long backgroundColor, optional long contentColor, optional long disabledContentColor); + property public final androidx.compose.foundation.layout.PaddingValues ContentPadding; + property public final float IconSize; + property public final float IconSpacing; + property public final float MinHeight; + property public final float MinWidth; + property public final float OutlinedBorderSize; + property public final androidx.compose.foundation.layout.PaddingValues TextButtonContentPadding; + property @androidx.compose.runtime.Composable public final androidx.compose.foundation.BorderStroke outlinedBorder; + field public static final androidx.compose.material.ButtonDefaults INSTANCE; + field public static final float OutlinedBorderOpacity = 0.12f; + } + + @androidx.compose.runtime.Stable public interface ButtonElevation { + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State elevation(boolean enabled, androidx.compose.foundation.interaction.InteractionSource interactionSource); + } + + public final class ButtonKt { + method @androidx.compose.runtime.Composable public static void Button(kotlin.jvm.functions.Function0 onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.material.ButtonElevation? elevation, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.foundation.BorderStroke? border, optional androidx.compose.material.ButtonColors colors, optional androidx.compose.foundation.layout.PaddingValues contentPadding, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void OutlinedButton(kotlin.jvm.functions.Function0 onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.material.ButtonElevation? elevation, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.foundation.BorderStroke? border, optional androidx.compose.material.ButtonColors colors, optional androidx.compose.foundation.layout.PaddingValues contentPadding, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void TextButton(kotlin.jvm.functions.Function0 onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.material.ButtonElevation? elevation, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.foundation.BorderStroke? border, optional androidx.compose.material.ButtonColors colors, optional androidx.compose.foundation.layout.PaddingValues contentPadding, kotlin.jvm.functions.Function1 content); + } + + public final class CardKt { + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void Card(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.graphics.Shape shape, optional long backgroundColor, optional long contentColor, optional androidx.compose.foundation.BorderStroke? border, optional float elevation, kotlin.jvm.functions.Function0 content); + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void Card(kotlin.jvm.functions.Function0 onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional long backgroundColor, optional long contentColor, optional androidx.compose.foundation.BorderStroke? border, optional float elevation, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, kotlin.jvm.functions.Function0 content); + } + + @androidx.compose.runtime.Stable public interface CheckboxColors { + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State borderColor(boolean enabled, androidx.compose.ui.state.ToggleableState state); + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State boxColor(boolean enabled, androidx.compose.ui.state.ToggleableState state); + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State checkmarkColor(androidx.compose.ui.state.ToggleableState state); + } + + public final class CheckboxDefaults { + method @androidx.compose.runtime.Composable public androidx.compose.material.CheckboxColors colors(optional long checkedColor, optional long uncheckedColor, optional long checkmarkColor, optional long disabledColor, optional long disabledIndeterminateColor); + field public static final androidx.compose.material.CheckboxDefaults INSTANCE; + } + + public final class CheckboxKt { + method @androidx.compose.runtime.Composable public static void Checkbox(boolean checked, kotlin.jvm.functions.Function1? onCheckedChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.material.CheckboxColors colors); + method @androidx.compose.runtime.Composable public static void TriStateCheckbox(androidx.compose.ui.state.ToggleableState state, kotlin.jvm.functions.Function0? onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.material.CheckboxColors colors); + } + + @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Stable public interface ChipColors { + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State backgroundColor(boolean enabled); + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State contentColor(boolean enabled); + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State leadingIconContentColor(boolean enabled); + } + + @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public final class ChipDefaults { + method @androidx.compose.runtime.Composable public androidx.compose.material.ChipColors chipColors(optional long backgroundColor, optional long contentColor, optional long leadingIconContentColor, optional long disabledBackgroundColor, optional long disabledContentColor, optional long disabledLeadingIconContentColor); + method @androidx.compose.runtime.Composable public androidx.compose.material.SelectableChipColors filterChipColors(optional long backgroundColor, optional long contentColor, optional long leadingIconColor, optional long disabledBackgroundColor, optional long disabledContentColor, optional long disabledLeadingIconColor, optional long selectedBackgroundColor, optional long selectedContentColor, optional long selectedLeadingIconColor); + method public float getLeadingIconSize(); + method public float getMinHeight(); + method @androidx.compose.runtime.Composable public androidx.compose.foundation.BorderStroke getOutlinedBorder(); + method public float getOutlinedBorderSize(); + method public float getSelectedIconSize(); + method @androidx.compose.runtime.Composable public androidx.compose.material.ChipColors outlinedChipColors(optional long backgroundColor, optional long contentColor, optional long leadingIconContentColor, optional long disabledBackgroundColor, optional long disabledContentColor, optional long disabledLeadingIconContentColor); + method @androidx.compose.runtime.Composable public androidx.compose.material.SelectableChipColors outlinedFilterChipColors(optional long backgroundColor, optional long contentColor, optional long leadingIconColor, optional long disabledBackgroundColor, optional long disabledContentColor, optional long disabledLeadingIconColor, optional long selectedBackgroundColor, optional long selectedContentColor, optional long selectedLeadingIconColor); + property public final float LeadingIconSize; + property public final float MinHeight; + property public final float OutlinedBorderSize; + property public final float SelectedIconSize; + property @androidx.compose.runtime.Composable public final androidx.compose.foundation.BorderStroke outlinedBorder; + field public static final float ContentOpacity = 0.87f; + field public static final androidx.compose.material.ChipDefaults INSTANCE; + field public static final float LeadingIconOpacity = 0.54f; + field public static final float OutlinedBorderOpacity = 0.12f; + } + + public final class ChipKt { + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void Chip(kotlin.jvm.functions.Function0 onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.foundation.BorderStroke? border, optional androidx.compose.material.ChipColors colors, optional kotlin.jvm.functions.Function0? leadingIcon, kotlin.jvm.functions.Function1 content); + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void FilterChip(boolean selected, kotlin.jvm.functions.Function0 onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.foundation.BorderStroke? border, optional androidx.compose.material.SelectableChipColors colors, optional kotlin.jvm.functions.Function0? leadingIcon, optional kotlin.jvm.functions.Function0? selectedIcon, optional kotlin.jvm.functions.Function0? trailingIcon, kotlin.jvm.functions.Function1 content); + } + + @androidx.compose.runtime.Stable public final class Colors { + ctor public Colors(long primary, long primaryVariant, long secondary, long secondaryVariant, long background, long surface, long error, long onPrimary, long onSecondary, long onBackground, long onSurface, long onError, boolean isLight); + method public androidx.compose.material.Colors copy(optional long primary, optional long primaryVariant, optional long secondary, optional long secondaryVariant, optional long background, optional long surface, optional long error, optional long onPrimary, optional long onSecondary, optional long onBackground, optional long onSurface, optional long onError, optional boolean isLight); + method public long getBackground(); + method public long getError(); + method public long getOnBackground(); + method public long getOnError(); + method public long getOnPrimary(); + method public long getOnSecondary(); + method public long getOnSurface(); + method public long getPrimary(); + method public long getPrimaryVariant(); + method public long getSecondary(); + method public long getSecondaryVariant(); + method public long getSurface(); + method public boolean isLight(); + property public final long background; + property public final long error; + property public final boolean isLight; + property public final long onBackground; + property public final long onError; + property public final long onPrimary; + property public final long onSecondary; + property public final long onSurface; + property public final long primary; + property public final long primaryVariant; + property public final long secondary; + property public final long secondaryVariant; + property public final long surface; + } + + public final class ColorsKt { + method public static long contentColorFor(androidx.compose.material.Colors, long backgroundColor); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static long contentColorFor(long backgroundColor); + method public static androidx.compose.material.Colors darkColors(optional long primary, optional long primaryVariant, optional long secondary, optional long secondaryVariant, optional long background, optional long surface, optional long error, optional long onPrimary, optional long onSecondary, optional long onBackground, optional long onSurface, optional long onError); + method public static long getPrimarySurface(androidx.compose.material.Colors); + method public static androidx.compose.material.Colors lightColors(optional long primary, optional long primaryVariant, optional long secondary, optional long secondaryVariant, optional long background, optional long surface, optional long error, optional long onPrimary, optional long onSecondary, optional long onBackground, optional long onSurface, optional long onError); + } + + public final class ContentAlpha { + method @androidx.compose.runtime.Composable public float getDisabled(); + method @androidx.compose.runtime.Composable public float getHigh(); + method @androidx.compose.runtime.Composable public float getMedium(); + property @androidx.compose.runtime.Composable public final float disabled; + property @androidx.compose.runtime.Composable public final float high; + property @androidx.compose.runtime.Composable public final float medium; + field public static final androidx.compose.material.ContentAlpha INSTANCE; + } + + public final class ContentAlphaKt { + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalContentAlpha(); + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalContentAlpha; + } + + public final class ContentColorKt { + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalContentColor(); + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalContentColor; + } + + public enum DismissDirection { + enum_constant public static final androidx.compose.material.DismissDirection EndToStart; + enum_constant public static final androidx.compose.material.DismissDirection StartToEnd; + } + + @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public final class DismissState extends androidx.compose.material.SwipeableState { + ctor public DismissState(androidx.compose.material.DismissValue initialValue, optional kotlin.jvm.functions.Function1 confirmStateChange); + method public suspend Object? dismiss(androidx.compose.material.DismissDirection direction, kotlin.coroutines.Continuation); + method public androidx.compose.material.DismissDirection? getDismissDirection(); + method public boolean isDismissed(androidx.compose.material.DismissDirection direction); + method public suspend Object? reset(kotlin.coroutines.Continuation); + property public final androidx.compose.material.DismissDirection? dismissDirection; + field public static final androidx.compose.material.DismissState.Companion Companion; + } + + public static final class DismissState.Companion { + method public androidx.compose.runtime.saveable.Saver Saver(kotlin.jvm.functions.Function1 confirmStateChange); + } + + public enum DismissValue { + enum_constant public static final androidx.compose.material.DismissValue Default; + enum_constant public static final androidx.compose.material.DismissValue DismissedToEnd; + enum_constant public static final androidx.compose.material.DismissValue DismissedToStart; + } + + public final class DividerKt { + method @androidx.compose.runtime.Composable public static void Divider(optional androidx.compose.ui.Modifier modifier, optional long color, optional float thickness, optional float startIndent); + } + + public final class DrawerDefaults { + method public androidx.compose.animation.core.TweenSpec getAnimationSpec(); + method @androidx.compose.runtime.Composable public long getBackgroundColor(); + method public float getElevation(); + method @androidx.compose.runtime.Composable public long getScrimColor(); + method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getShape(); + property public final androidx.compose.animation.core.TweenSpec AnimationSpec; + property public final float Elevation; + property @androidx.compose.runtime.Composable public final long backgroundColor; + property @androidx.compose.runtime.Composable public final long scrimColor; + property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape shape; + field public static final androidx.compose.material.DrawerDefaults INSTANCE; + field public static final float ScrimOpacity = 0.32f; + } + + public final class DrawerKt { + method @androidx.compose.runtime.Composable public static void BottomDrawer(kotlin.jvm.functions.Function1 drawerContent, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material.BottomDrawerState drawerState, optional boolean gesturesEnabled, optional androidx.compose.ui.graphics.Shape drawerShape, optional float drawerElevation, optional long drawerBackgroundColor, optional long drawerContentColor, optional long scrimColor, kotlin.jvm.functions.Function0 content); + method @androidx.compose.runtime.Composable public static void ModalDrawer(kotlin.jvm.functions.Function1 drawerContent, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material.DrawerState drawerState, optional boolean gesturesEnabled, optional androidx.compose.ui.graphics.Shape drawerShape, optional float drawerElevation, optional long drawerBackgroundColor, optional long drawerContentColor, optional long scrimColor, kotlin.jvm.functions.Function0 content); + method @androidx.compose.runtime.Composable public static androidx.compose.material.BottomDrawerState rememberBottomDrawerState(androidx.compose.material.BottomDrawerValue initialValue, optional kotlin.jvm.functions.Function1 confirmStateChange, optional androidx.compose.animation.core.AnimationSpec animationSpec); + method @androidx.compose.runtime.Composable public static androidx.compose.material.DrawerState rememberDrawerState(androidx.compose.material.DrawerValue initialValue, optional kotlin.jvm.functions.Function1 confirmStateChange); + } + + @androidx.compose.runtime.Stable public final class DrawerState { + ctor public DrawerState(androidx.compose.material.DrawerValue initialValue, optional kotlin.jvm.functions.Function1 confirmStateChange); + method @Deprecated @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public suspend Object? animateTo(androidx.compose.material.DrawerValue targetValue, androidx.compose.animation.core.AnimationSpec anim, kotlin.coroutines.Continuation); + method public suspend Object? close(kotlin.coroutines.Continuation); + method public androidx.compose.material.DrawerValue getCurrentValue(); + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public float getOffset(); + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public androidx.compose.material.DrawerValue getTargetValue(); + method public boolean isAnimationRunning(); + method public boolean isClosed(); + method public boolean isOpen(); + method public suspend Object? open(kotlin.coroutines.Continuation); + method public suspend Object? snapTo(androidx.compose.material.DrawerValue targetValue, kotlin.coroutines.Continuation); + property public final androidx.compose.material.DrawerValue currentValue; + property public final boolean isAnimationRunning; + property public final boolean isClosed; + property public final boolean isOpen; + property @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public final float offset; + property @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public final androidx.compose.material.DrawerValue targetValue; + field public static final androidx.compose.material.DrawerState.Companion Companion; + } + + public static final class DrawerState.Companion { + method public androidx.compose.runtime.saveable.Saver Saver(kotlin.jvm.functions.Function1 confirmStateChange); + } + + public enum DrawerValue { + enum_constant public static final androidx.compose.material.DrawerValue Closed; + enum_constant public static final androidx.compose.material.DrawerValue Open; + } + + public interface ElevationOverlay { + method @androidx.compose.runtime.Composable public long apply(long color, float elevation); + } + + public final class ElevationOverlayKt { + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalAbsoluteElevation(); + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalElevationOverlay(); + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalAbsoluteElevation; + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalElevationOverlay; + } + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This material API is experimental and is likely to change or to be removed in" + " the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalMaterialApi { + } + + @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public abstract class ExposedDropdownMenuBoxScope { + ctor public ExposedDropdownMenuBoxScope(); + method @androidx.compose.runtime.Composable public final void ExposedDropdownMenu(boolean expanded, kotlin.jvm.functions.Function0 onDismissRequest, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.ScrollState scrollState, kotlin.jvm.functions.Function1 content); + method public abstract androidx.compose.ui.Modifier exposedDropdownSize(androidx.compose.ui.Modifier, optional boolean matchTextFieldWidth); + } + + @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public final class ExposedDropdownMenuDefaults { + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public void TrailingIcon(boolean expanded, optional kotlin.jvm.functions.Function0 onIconClick); + method @androidx.compose.runtime.Composable public androidx.compose.material.TextFieldColors outlinedTextFieldColors(optional long textColor, optional long disabledTextColor, optional long backgroundColor, optional long cursorColor, optional long errorCursorColor, optional long focusedBorderColor, optional long unfocusedBorderColor, optional long disabledBorderColor, optional long errorBorderColor, optional long leadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long trailingIconColor, optional long focusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long placeholderColor, optional long disabledPlaceholderColor); + method @androidx.compose.runtime.Composable public androidx.compose.material.TextFieldColors textFieldColors(optional long textColor, optional long disabledTextColor, optional long backgroundColor, optional long cursorColor, optional long errorCursorColor, optional long focusedIndicatorColor, optional long unfocusedIndicatorColor, optional long disabledIndicatorColor, optional long errorIndicatorColor, optional long leadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long trailingIconColor, optional long focusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long placeholderColor, optional long disabledPlaceholderColor); + field public static final androidx.compose.material.ExposedDropdownMenuDefaults INSTANCE; + } + + public final class ExposedDropdownMenu_androidKt { + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void ExposedDropdownMenuBox(boolean expanded, kotlin.jvm.functions.Function1 onExpandedChange, optional androidx.compose.ui.Modifier modifier, kotlin.jvm.functions.Function1 content); + } + + @kotlin.jvm.JvmInline public final value class FabPosition { + field public static final androidx.compose.material.FabPosition.Companion Companion; + } + + public static final class FabPosition.Companion { + method public int getCenter(); + method public int getEnd(); + method public int getStart(); + property public final int Center; + property public final int End; + property public final int Start; + } + + @Deprecated @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Immutable public final class FixedThreshold implements androidx.compose.material.ThresholdConfig { + ctor @Deprecated public FixedThreshold(float offset); + method @Deprecated public float computeThreshold(androidx.compose.ui.unit.Density, float fromValue, float toValue); + method @Deprecated public androidx.compose.material.FixedThreshold copy-0680j_4(float offset); + } + + public final class FloatingActionButtonDefaults { + method @Deprecated @androidx.compose.runtime.Composable public androidx.compose.material.FloatingActionButtonElevation elevation(optional float defaultElevation, optional float pressedElevation); + method @androidx.compose.runtime.Composable public androidx.compose.material.FloatingActionButtonElevation elevation(optional float defaultElevation, optional float pressedElevation, optional float hoveredElevation, optional float focusedElevation); + field public static final androidx.compose.material.FloatingActionButtonDefaults INSTANCE; + } + + @androidx.compose.runtime.Stable public interface FloatingActionButtonElevation { + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State elevation(androidx.compose.foundation.interaction.InteractionSource interactionSource); + } + + public final class FloatingActionButtonKt { + method @androidx.compose.runtime.Composable public static void ExtendedFloatingActionButton(kotlin.jvm.functions.Function0 text, kotlin.jvm.functions.Function0 onClick, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0? icon, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional long backgroundColor, optional long contentColor, optional androidx.compose.material.FloatingActionButtonElevation elevation); + method @androidx.compose.runtime.Composable public static void FloatingActionButton(kotlin.jvm.functions.Function0 onClick, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional long backgroundColor, optional long contentColor, optional androidx.compose.material.FloatingActionButtonElevation elevation, kotlin.jvm.functions.Function0 content); + } + + @Deprecated @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Immutable public final class FractionalThreshold implements androidx.compose.material.ThresholdConfig { + ctor @Deprecated public FractionalThreshold(float fraction); + method @Deprecated public float computeThreshold(androidx.compose.ui.unit.Density, float fromValue, float toValue); + method @Deprecated public androidx.compose.material.FractionalThreshold copy(float fraction); + } + + public final class IconButtonKt { + method @androidx.compose.runtime.Composable public static void IconButton(kotlin.jvm.functions.Function0 onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, kotlin.jvm.functions.Function0 content); + method @androidx.compose.runtime.Composable public static void IconToggleButton(boolean checked, kotlin.jvm.functions.Function1 onCheckedChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, kotlin.jvm.functions.Function0 content); + } + + public final class IconKt { + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void Icon(androidx.compose.ui.graphics.ImageBitmap bitmap, String? contentDescription, optional androidx.compose.ui.Modifier modifier, optional long tint); + method @androidx.compose.runtime.Composable public static void Icon(androidx.compose.ui.graphics.painter.Painter painter, String? contentDescription, optional androidx.compose.ui.Modifier modifier, optional long tint); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void Icon(androidx.compose.ui.graphics.vector.ImageVector imageVector, String? contentDescription, optional androidx.compose.ui.Modifier modifier, optional long tint); + } + + public final class InteractiveComponentSizeKt { + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public static androidx.compose.runtime.ProvidableCompositionLocal getLocalMinimumInteractiveComponentEnforcement(); + method @Deprecated @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public static androidx.compose.runtime.ProvidableCompositionLocal getLocalMinimumTouchTargetEnforcement(); + method public static androidx.compose.ui.Modifier minimumInteractiveComponentSize(androidx.compose.ui.Modifier); + property @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public static final androidx.compose.runtime.ProvidableCompositionLocal LocalMinimumInteractiveComponentEnforcement; + property @Deprecated @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public static final androidx.compose.runtime.ProvidableCompositionLocal LocalMinimumTouchTargetEnforcement; + } + + public final class ListItemKt { + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void ListItem(optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0? icon, optional kotlin.jvm.functions.Function0? secondaryText, optional boolean singleLineSecondaryText, optional kotlin.jvm.functions.Function0? overlineText, optional kotlin.jvm.functions.Function0? trailing, kotlin.jvm.functions.Function0 text); + } + + public final class MaterialTheme { + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public androidx.compose.material.Colors getColors(); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public androidx.compose.material.Shapes getShapes(); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public androidx.compose.material.Typography getTypography(); + property @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public final androidx.compose.material.Colors colors; + property @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public final androidx.compose.material.Shapes shapes; + property @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public final androidx.compose.material.Typography typography; + field public static final androidx.compose.material.MaterialTheme INSTANCE; + } + + public final class MaterialThemeKt { + method @androidx.compose.runtime.Composable public static void MaterialTheme(optional androidx.compose.material.Colors colors, optional androidx.compose.material.Typography typography, optional androidx.compose.material.Shapes shapes, kotlin.jvm.functions.Function0 content); + } + + public final class MenuDefaults { + method public androidx.compose.foundation.layout.PaddingValues getDropdownMenuItemContentPadding(); + property public final androidx.compose.foundation.layout.PaddingValues DropdownMenuItemContentPadding; + field public static final androidx.compose.material.MenuDefaults INSTANCE; + } + + public final class ModalBottomSheetDefaults { + method public androidx.compose.animation.core.AnimationSpec getAnimationSpec(); + method public float getElevation(); + method @androidx.compose.runtime.Composable public long getScrimColor(); + property public final androidx.compose.animation.core.AnimationSpec AnimationSpec; + property public final float Elevation; + property @androidx.compose.runtime.Composable public final long scrimColor; + field public static final androidx.compose.material.ModalBottomSheetDefaults INSTANCE; + } + + public final class ModalBottomSheetKt { + method @androidx.compose.runtime.Composable public static void ModalBottomSheetLayout(kotlin.jvm.functions.Function1 sheetContent, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material.ModalBottomSheetState sheetState, optional boolean sheetGesturesEnabled, optional androidx.compose.ui.graphics.Shape sheetShape, optional float sheetElevation, optional long sheetBackgroundColor, optional long sheetContentColor, optional long scrimColor, kotlin.jvm.functions.Function0 content); + method @androidx.compose.runtime.Composable public static androidx.compose.material.ModalBottomSheetState rememberModalBottomSheetState(androidx.compose.material.ModalBottomSheetValue initialValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional kotlin.jvm.functions.Function1 confirmValueChange, optional boolean skipHalfExpanded); + } + + public final class ModalBottomSheetState { + ctor public ModalBottomSheetState(androidx.compose.material.ModalBottomSheetValue initialValue, androidx.compose.ui.unit.Density density, optional kotlin.jvm.functions.Function1 confirmValueChange, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional boolean isSkipHalfExpanded); + method public androidx.compose.material.ModalBottomSheetValue getCurrentValue(); + method @Deprecated @FloatRange(from=0.0, to=1.0) public float getProgress(); + method public androidx.compose.material.ModalBottomSheetValue getTargetValue(); + method public suspend Object? hide(kotlin.coroutines.Continuation); + method public boolean isVisible(); + method @FloatRange(from=0.0, to=1.0) public float progress(androidx.compose.material.ModalBottomSheetValue from, androidx.compose.material.ModalBottomSheetValue to); + method public suspend Object? show(kotlin.coroutines.Continuation); + property public final androidx.compose.material.ModalBottomSheetValue currentValue; + property public final boolean isVisible; + property @Deprecated @SuppressCompatibility @FloatRange(from=0.0, to=1.0) @androidx.compose.material.ExperimentalMaterialApi public final float progress; + property public final androidx.compose.material.ModalBottomSheetValue targetValue; + field public static final androidx.compose.material.ModalBottomSheetState.Companion Companion; + } + + public static final class ModalBottomSheetState.Companion { + method public androidx.compose.runtime.saveable.Saver Saver(androidx.compose.animation.core.AnimationSpec animationSpec, kotlin.jvm.functions.Function1 confirmValueChange, boolean skipHalfExpanded, androidx.compose.ui.unit.Density density); + } + + public enum ModalBottomSheetValue { + enum_constant public static final androidx.compose.material.ModalBottomSheetValue Expanded; + enum_constant public static final androidx.compose.material.ModalBottomSheetValue HalfExpanded; + enum_constant public static final androidx.compose.material.ModalBottomSheetValue Hidden; + } + + public final class NavigationRailDefaults { + method public float getElevation(); + method @androidx.compose.runtime.Composable public androidx.compose.foundation.layout.WindowInsets getWindowInsets(); + property public final float Elevation; + property @androidx.compose.runtime.Composable public final androidx.compose.foundation.layout.WindowInsets windowInsets; + field public static final androidx.compose.material.NavigationRailDefaults INSTANCE; + } + + public final class NavigationRailKt { + method @androidx.compose.runtime.Composable public static void NavigationRail(androidx.compose.foundation.layout.WindowInsets windowInsets, optional androidx.compose.ui.Modifier modifier, optional long backgroundColor, optional long contentColor, optional float elevation, optional kotlin.jvm.functions.Function1? header, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void NavigationRail(optional androidx.compose.ui.Modifier modifier, optional long backgroundColor, optional long contentColor, optional float elevation, optional kotlin.jvm.functions.Function1? header, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void NavigationRailItem(boolean selected, kotlin.jvm.functions.Function0 onClick, kotlin.jvm.functions.Function0 icon, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0? label, optional boolean alwaysShowLabel, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional long selectedContentColor, optional long unselectedContentColor); + } + + public final class OutlinedTextFieldKt { + method @Deprecated @androidx.compose.runtime.Composable public static void OutlinedTextField(androidx.compose.ui.text.input.TextFieldValue value, kotlin.jvm.functions.Function1 onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0? label, optional kotlin.jvm.functions.Function0? placeholder, optional kotlin.jvm.functions.Function0? leadingIcon, optional kotlin.jvm.functions.Function0? trailingIcon, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material.TextFieldColors colors); + method @androidx.compose.runtime.Composable public static void OutlinedTextField(androidx.compose.ui.text.input.TextFieldValue value, kotlin.jvm.functions.Function1 onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0? label, optional kotlin.jvm.functions.Function0? placeholder, optional kotlin.jvm.functions.Function0? leadingIcon, optional kotlin.jvm.functions.Function0? trailingIcon, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional int minLines, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material.TextFieldColors colors); + method @Deprecated @androidx.compose.runtime.Composable public static void OutlinedTextField(String value, kotlin.jvm.functions.Function1 onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0? label, optional kotlin.jvm.functions.Function0? placeholder, optional kotlin.jvm.functions.Function0? leadingIcon, optional kotlin.jvm.functions.Function0? trailingIcon, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material.TextFieldColors colors); + method @androidx.compose.runtime.Composable public static void OutlinedTextField(String value, kotlin.jvm.functions.Function1 onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0? label, optional kotlin.jvm.functions.Function0? placeholder, optional kotlin.jvm.functions.Function0? leadingIcon, optional kotlin.jvm.functions.Function0? trailingIcon, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional int minLines, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material.TextFieldColors colors); + } + + public final class ProgressIndicatorDefaults { + method public androidx.compose.animation.core.SpringSpec getProgressAnimationSpec(); + method public float getStrokeWidth(); + property public final androidx.compose.animation.core.SpringSpec ProgressAnimationSpec; + property public final float StrokeWidth; + field public static final androidx.compose.material.ProgressIndicatorDefaults INSTANCE; + field public static final float IndicatorBackgroundOpacity = 0.24f; + } + + public final class ProgressIndicatorKt { + method @Deprecated @androidx.compose.runtime.Composable public static void CircularProgressIndicator(optional androidx.compose.ui.Modifier modifier, optional long color, optional float strokeWidth); + method @androidx.compose.runtime.Composable public static void CircularProgressIndicator(optional androidx.compose.ui.Modifier modifier, optional long color, optional float strokeWidth, optional long backgroundColor, optional int strokeCap); + method @Deprecated @androidx.compose.runtime.Composable public static void CircularProgressIndicator(float progress, optional androidx.compose.ui.Modifier modifier, optional long color, optional float strokeWidth); + method @androidx.compose.runtime.Composable public static void CircularProgressIndicator(@FloatRange(from=0.0, to=1.0) float progress, optional androidx.compose.ui.Modifier modifier, optional long color, optional float strokeWidth, optional long backgroundColor, optional int strokeCap); + method @Deprecated @androidx.compose.runtime.Composable public static void LinearProgressIndicator(optional androidx.compose.ui.Modifier modifier, optional long color, optional long backgroundColor); + method @androidx.compose.runtime.Composable public static void LinearProgressIndicator(optional androidx.compose.ui.Modifier modifier, optional long color, optional long backgroundColor, optional int strokeCap); + method @Deprecated @androidx.compose.runtime.Composable public static void LinearProgressIndicator(float progress, optional androidx.compose.ui.Modifier modifier, optional long color, optional long backgroundColor); + method @androidx.compose.runtime.Composable public static void LinearProgressIndicator(@FloatRange(from=0.0, to=1.0) float progress, optional androidx.compose.ui.Modifier modifier, optional long color, optional long backgroundColor, optional int strokeCap); + } + + @androidx.compose.runtime.Stable public interface RadioButtonColors { + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State radioColor(boolean enabled, boolean selected); + } + + public final class RadioButtonDefaults { + method @androidx.compose.runtime.Composable public androidx.compose.material.RadioButtonColors colors(optional long selectedColor, optional long unselectedColor, optional long disabledColor); + field public static final androidx.compose.material.RadioButtonDefaults INSTANCE; + } + + public final class RadioButtonKt { + method @androidx.compose.runtime.Composable public static void RadioButton(boolean selected, kotlin.jvm.functions.Function0? onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.material.RadioButtonColors colors); + } + + @Deprecated @androidx.compose.runtime.Immutable public final class ResistanceConfig { + ctor @Deprecated public ResistanceConfig(float basis, optional float factorAtMin, optional float factorAtMax); + method @Deprecated public float computeResistance(float overflow); + method @Deprecated public float getBasis(); + method @Deprecated public float getFactorAtMax(); + method @Deprecated public float getFactorAtMin(); + property @Deprecated public final float basis; + property @Deprecated public final float factorAtMax; + property @Deprecated public final float factorAtMin; + } + + @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Immutable public final class RippleConfiguration { + ctor public RippleConfiguration(optional long color, optional androidx.compose.material.ripple.RippleAlpha? rippleAlpha); + method public long getColor(); + method public androidx.compose.material.ripple.RippleAlpha? getRippleAlpha(); + property public final long color; + property public final androidx.compose.material.ripple.RippleAlpha? rippleAlpha; + } + + public final class RippleDefaults { + method public androidx.compose.material.ripple.RippleAlpha rippleAlpha(long contentColor, boolean lightTheme); + method public long rippleColor(long contentColor, boolean lightTheme); + field public static final androidx.compose.material.RippleDefaults INSTANCE; + } + + public final class RippleKt { + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public static androidx.compose.runtime.ProvidableCompositionLocal getLocalRippleConfiguration(); + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public static androidx.compose.runtime.ProvidableCompositionLocal getLocalUseFallbackRippleImplementation(); + method @androidx.compose.runtime.Stable public static androidx.compose.foundation.IndicationNodeFactory ripple(androidx.compose.ui.graphics.ColorProducer color, optional boolean bounded, optional float radius); + method @androidx.compose.runtime.Stable public static androidx.compose.foundation.IndicationNodeFactory ripple(optional boolean bounded, optional float radius, optional long color); + property @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public static final androidx.compose.runtime.ProvidableCompositionLocal LocalRippleConfiguration; + property @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public static final androidx.compose.runtime.ProvidableCompositionLocal LocalUseFallbackRippleImplementation; + } + + public final class ScaffoldDefaults { + method @androidx.compose.runtime.Composable public androidx.compose.foundation.layout.WindowInsets getContentWindowInsets(); + property @androidx.compose.runtime.Composable public final androidx.compose.foundation.layout.WindowInsets contentWindowInsets; + field public static final androidx.compose.material.ScaffoldDefaults INSTANCE; + } + + public final class ScaffoldKt { + method @androidx.compose.runtime.Composable public static void Scaffold(androidx.compose.foundation.layout.WindowInsets contentWindowInsets, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material.ScaffoldState scaffoldState, optional kotlin.jvm.functions.Function0 topBar, optional kotlin.jvm.functions.Function0 bottomBar, optional kotlin.jvm.functions.Function1 snackbarHost, optional kotlin.jvm.functions.Function0 floatingActionButton, optional int floatingActionButtonPosition, optional boolean isFloatingActionButtonDocked, optional kotlin.jvm.functions.Function1? drawerContent, optional boolean drawerGesturesEnabled, optional androidx.compose.ui.graphics.Shape drawerShape, optional float drawerElevation, optional long drawerBackgroundColor, optional long drawerContentColor, optional long drawerScrimColor, optional long backgroundColor, optional long contentColor, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void Scaffold(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material.ScaffoldState scaffoldState, optional kotlin.jvm.functions.Function0 topBar, optional kotlin.jvm.functions.Function0 bottomBar, optional kotlin.jvm.functions.Function1 snackbarHost, optional kotlin.jvm.functions.Function0 floatingActionButton, optional int floatingActionButtonPosition, optional boolean isFloatingActionButtonDocked, optional kotlin.jvm.functions.Function1? drawerContent, optional boolean drawerGesturesEnabled, optional androidx.compose.ui.graphics.Shape drawerShape, optional float drawerElevation, optional long drawerBackgroundColor, optional long drawerContentColor, optional long drawerScrimColor, optional long backgroundColor, optional long contentColor, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static androidx.compose.material.ScaffoldState rememberScaffoldState(optional androidx.compose.material.DrawerState drawerState, optional androidx.compose.material.SnackbarHostState snackbarHostState); + } + + @androidx.compose.runtime.Stable public final class ScaffoldState { + ctor public ScaffoldState(androidx.compose.material.DrawerState drawerState, androidx.compose.material.SnackbarHostState snackbarHostState); + method public androidx.compose.material.DrawerState getDrawerState(); + method public androidx.compose.material.SnackbarHostState getSnackbarHostState(); + property public final androidx.compose.material.DrawerState drawerState; + property public final androidx.compose.material.SnackbarHostState snackbarHostState; + } + + @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public interface SelectableChipColors { + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State backgroundColor(boolean enabled, boolean selected); + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State contentColor(boolean enabled, boolean selected); + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State leadingIconColor(boolean enabled, boolean selected); + } + + @androidx.compose.runtime.Immutable public final class Shapes { + ctor public Shapes(optional androidx.compose.foundation.shape.CornerBasedShape small, optional androidx.compose.foundation.shape.CornerBasedShape medium, optional androidx.compose.foundation.shape.CornerBasedShape large); + method public androidx.compose.material.Shapes copy(optional androidx.compose.foundation.shape.CornerBasedShape small, optional androidx.compose.foundation.shape.CornerBasedShape medium, optional androidx.compose.foundation.shape.CornerBasedShape large); + method public androidx.compose.foundation.shape.CornerBasedShape getLarge(); + method public androidx.compose.foundation.shape.CornerBasedShape getMedium(); + method public androidx.compose.foundation.shape.CornerBasedShape getSmall(); + property public final androidx.compose.foundation.shape.CornerBasedShape large; + property public final androidx.compose.foundation.shape.CornerBasedShape medium; + property public final androidx.compose.foundation.shape.CornerBasedShape small; + } + + @androidx.compose.runtime.Stable public interface SliderColors { + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State thumbColor(boolean enabled); + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State tickColor(boolean enabled, boolean active); + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State trackColor(boolean enabled, boolean active); + } + + public final class SliderDefaults { + method @androidx.compose.runtime.Composable public androidx.compose.material.SliderColors colors(optional long thumbColor, optional long disabledThumbColor, optional long activeTrackColor, optional long inactiveTrackColor, optional long disabledActiveTrackColor, optional long disabledInactiveTrackColor, optional long activeTickColor, optional long inactiveTickColor, optional long disabledActiveTickColor, optional long disabledInactiveTickColor); + field public static final float DisabledActiveTrackAlpha = 0.32f; + field public static final float DisabledInactiveTrackAlpha = 0.12f; + field public static final float DisabledTickAlpha = 0.12f; + field public static final androidx.compose.material.SliderDefaults INSTANCE; + field public static final float InactiveTrackAlpha = 0.24f; + field public static final float TickAlpha = 0.54f; + } + + public final class SliderKt { + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void RangeSlider(kotlin.ranges.ClosedFloatingPointRange value, kotlin.jvm.functions.Function1,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.ranges.ClosedFloatingPointRange valueRange, optional @IntRange(from=0L) int steps, optional kotlin.jvm.functions.Function0? onValueChangeFinished, optional androidx.compose.material.SliderColors colors); + method @androidx.compose.runtime.Composable public static void Slider(float value, kotlin.jvm.functions.Function1 onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.ranges.ClosedFloatingPointRange valueRange, optional @IntRange(from=0L) int steps, optional kotlin.jvm.functions.Function0? onValueChangeFinished, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.material.SliderColors colors); + } + + public interface SnackbarData { + method public void dismiss(); + method public String? getActionLabel(); + method public androidx.compose.material.SnackbarDuration getDuration(); + method public String getMessage(); + method public void performAction(); + property public abstract String? actionLabel; + property public abstract androidx.compose.material.SnackbarDuration duration; + property public abstract String message; + } + + public final class SnackbarDefaults { + method @androidx.compose.runtime.Composable public long getBackgroundColor(); + method @androidx.compose.runtime.Composable public long getPrimaryActionColor(); + property @androidx.compose.runtime.Composable public final long backgroundColor; + property @androidx.compose.runtime.Composable public final long primaryActionColor; + field public static final androidx.compose.material.SnackbarDefaults INSTANCE; + } + + public enum SnackbarDuration { + enum_constant public static final androidx.compose.material.SnackbarDuration Indefinite; + enum_constant public static final androidx.compose.material.SnackbarDuration Long; + enum_constant public static final androidx.compose.material.SnackbarDuration Short; + } + + public final class SnackbarHostKt { + method @androidx.compose.runtime.Composable public static void SnackbarHost(androidx.compose.material.SnackbarHostState hostState, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1 snackbar); + } + + @androidx.compose.runtime.Stable public final class SnackbarHostState { + ctor public SnackbarHostState(); + method public androidx.compose.material.SnackbarData? getCurrentSnackbarData(); + method public suspend Object? showSnackbar(String message, optional String? actionLabel, optional androidx.compose.material.SnackbarDuration duration, kotlin.coroutines.Continuation); + property public final androidx.compose.material.SnackbarData? currentSnackbarData; + } + + public final class SnackbarKt { + method @androidx.compose.runtime.Composable public static void Snackbar(androidx.compose.material.SnackbarData snackbarData, optional androidx.compose.ui.Modifier modifier, optional boolean actionOnNewLine, optional androidx.compose.ui.graphics.Shape shape, optional long backgroundColor, optional long contentColor, optional long actionColor, optional float elevation); + method @androidx.compose.runtime.Composable public static void Snackbar(optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0? action, optional boolean actionOnNewLine, optional androidx.compose.ui.graphics.Shape shape, optional long backgroundColor, optional long contentColor, optional float elevation, kotlin.jvm.functions.Function0 content); + } + + public enum SnackbarResult { + enum_constant public static final androidx.compose.material.SnackbarResult ActionPerformed; + enum_constant public static final androidx.compose.material.SnackbarResult Dismissed; + } + + public final class SurfaceKt { + method @androidx.compose.runtime.Composable public static void Surface(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.graphics.Shape shape, optional long color, optional long contentColor, optional androidx.compose.foundation.BorderStroke? border, optional float elevation, kotlin.jvm.functions.Function0 content); + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void Surface(boolean selected, kotlin.jvm.functions.Function0 onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional long color, optional long contentColor, optional androidx.compose.foundation.BorderStroke? border, optional float elevation, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, kotlin.jvm.functions.Function0 content); + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void Surface(boolean checked, kotlin.jvm.functions.Function1 onCheckedChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional long color, optional long contentColor, optional androidx.compose.foundation.BorderStroke? border, optional float elevation, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, kotlin.jvm.functions.Function0 content); + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void Surface(kotlin.jvm.functions.Function0 onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional long color, optional long contentColor, optional androidx.compose.foundation.BorderStroke? border, optional float elevation, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, kotlin.jvm.functions.Function0 content); + } + + @Deprecated @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Immutable public final class SwipeProgress { + ctor @Deprecated public SwipeProgress(T from, T to, float fraction); + method @Deprecated public float getFraction(); + method @Deprecated public T getFrom(); + method @Deprecated public T getTo(); + property @Deprecated public final float fraction; + property @Deprecated public final T from; + property @Deprecated public final T to; + } + + public final class SwipeToDismissKt { + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void SwipeToDismiss(androidx.compose.material.DismissState state, optional androidx.compose.ui.Modifier modifier, optional java.util.Set directions, optional kotlin.jvm.functions.Function1 dismissThresholds, kotlin.jvm.functions.Function1 background, kotlin.jvm.functions.Function1 dismissContent); + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static androidx.compose.material.DismissState rememberDismissState(optional androidx.compose.material.DismissValue initialValue, optional kotlin.jvm.functions.Function1 confirmStateChange); + } + + @Deprecated public final class SwipeableDefaults { + method @Deprecated public androidx.compose.animation.core.SpringSpec getAnimationSpec(); + method @Deprecated public float getVelocityThreshold(); + method @Deprecated public androidx.compose.material.ResistanceConfig? resistanceConfig(java.util.Set anchors, optional float factorAtMin, optional float factorAtMax); + property @Deprecated public final androidx.compose.animation.core.SpringSpec AnimationSpec; + property @Deprecated public final float VelocityThreshold; + field @Deprecated public static final androidx.compose.material.SwipeableDefaults INSTANCE; + field @Deprecated public static final float StandardResistanceFactor = 10.0f; + field @Deprecated public static final float StiffResistanceFactor = 20.0f; + } + + public final class SwipeableKt { + method @Deprecated @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static androidx.compose.material.SwipeableState rememberSwipeableState(T initialValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional kotlin.jvm.functions.Function1 confirmStateChange); + method @Deprecated @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public static androidx.compose.ui.Modifier swipeable(androidx.compose.ui.Modifier, androidx.compose.material.SwipeableState state, java.util.Map anchors, androidx.compose.foundation.gestures.Orientation orientation, optional boolean enabled, optional boolean reverseDirection, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional kotlin.jvm.functions.Function2 thresholds, optional androidx.compose.material.ResistanceConfig? resistance, optional float velocityThreshold); + } + + @Deprecated @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Stable public class SwipeableState { + ctor @Deprecated public SwipeableState(T initialValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional kotlin.jvm.functions.Function1 confirmStateChange); + method @Deprecated @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public final suspend Object? animateTo(T targetValue, optional androidx.compose.animation.core.AnimationSpec anim, kotlin.coroutines.Continuation); + method @Deprecated public final T getCurrentValue(); + method @Deprecated public final float getDirection(); + method @Deprecated public final androidx.compose.runtime.State getOffset(); + method @Deprecated public final androidx.compose.runtime.State getOverflow(); + method @Deprecated public final androidx.compose.material.SwipeProgress getProgress(); + method @Deprecated public final T getTargetValue(); + method @Deprecated public final boolean isAnimationRunning(); + method @Deprecated public final float performDrag(float delta); + method @Deprecated public final suspend Object? performFling(float velocity, kotlin.coroutines.Continuation); + method @Deprecated @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public final suspend Object? snapTo(T targetValue, kotlin.coroutines.Continuation); + property @Deprecated public final T currentValue; + property @Deprecated @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public final float direction; + property @Deprecated public final boolean isAnimationRunning; + property @Deprecated public final androidx.compose.runtime.State offset; + property @Deprecated public final androidx.compose.runtime.State overflow; + property @Deprecated @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public final androidx.compose.material.SwipeProgress progress; + property @Deprecated @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public final T targetValue; + field @Deprecated public static final androidx.compose.material.SwipeableState.Companion Companion; + } + + @Deprecated public static final class SwipeableState.Companion { + method @Deprecated public androidx.compose.runtime.saveable.Saver,T> Saver(androidx.compose.animation.core.AnimationSpec animationSpec, kotlin.jvm.functions.Function1 confirmStateChange); + } + + @androidx.compose.runtime.Stable public interface SwitchColors { + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State thumbColor(boolean enabled, boolean checked); + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State trackColor(boolean enabled, boolean checked); + } + + public final class SwitchDefaults { + method @androidx.compose.runtime.Composable public androidx.compose.material.SwitchColors colors(optional long checkedThumbColor, optional long checkedTrackColor, optional float checkedTrackAlpha, optional long uncheckedThumbColor, optional long uncheckedTrackColor, optional float uncheckedTrackAlpha, optional long disabledCheckedThumbColor, optional long disabledCheckedTrackColor, optional long disabledUncheckedThumbColor, optional long disabledUncheckedTrackColor); + field public static final androidx.compose.material.SwitchDefaults INSTANCE; + } + + public final class SwitchKt { + method @androidx.compose.runtime.Composable public static void Switch(boolean checked, kotlin.jvm.functions.Function1? onCheckedChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.material.SwitchColors colors); + } + + public final class TabKt { + method @androidx.compose.runtime.Composable public static void LeadingIconTab(boolean selected, kotlin.jvm.functions.Function0 onClick, kotlin.jvm.functions.Function0 text, kotlin.jvm.functions.Function0 icon, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional long selectedContentColor, optional long unselectedContentColor); + method @androidx.compose.runtime.Composable public static void Tab(boolean selected, kotlin.jvm.functions.Function0 onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional long selectedContentColor, optional long unselectedContentColor, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void Tab(boolean selected, kotlin.jvm.functions.Function0 onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0? text, optional kotlin.jvm.functions.Function0? icon, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional long selectedContentColor, optional long unselectedContentColor); + } + + @androidx.compose.runtime.Immutable public final class TabPosition { + method public float getLeft(); + method public float getRight(); + method public float getWidth(); + property public final float left; + property public final float right; + property public final float width; + } + + public final class TabRowDefaults { + method @androidx.compose.runtime.Composable public void Divider(optional androidx.compose.ui.Modifier modifier, optional float thickness, optional long color); + method @androidx.compose.runtime.Composable public void Indicator(optional androidx.compose.ui.Modifier modifier, optional float height, optional long color); + method public float getDividerThickness(); + method public float getIndicatorHeight(); + method public float getScrollableTabRowPadding(); + method public androidx.compose.ui.Modifier tabIndicatorOffset(androidx.compose.ui.Modifier, androidx.compose.material.TabPosition currentTabPosition); + property public final float DividerThickness; + property public final float IndicatorHeight; + property public final float ScrollableTabRowPadding; + field public static final float DividerOpacity = 0.12f; + field public static final androidx.compose.material.TabRowDefaults INSTANCE; + } + + public final class TabRowKt { + method @androidx.compose.runtime.Composable @androidx.compose.ui.UiComposable public static void ScrollableTabRow(int selectedTabIndex, optional androidx.compose.ui.Modifier modifier, optional long backgroundColor, optional long contentColor, optional float edgePadding, optional kotlin.jvm.functions.Function1,kotlin.Unit> indicator, optional kotlin.jvm.functions.Function0 divider, kotlin.jvm.functions.Function0 tabs); + method @androidx.compose.runtime.Composable @androidx.compose.ui.UiComposable public static void TabRow(int selectedTabIndex, optional androidx.compose.ui.Modifier modifier, optional long backgroundColor, optional long contentColor, optional kotlin.jvm.functions.Function1,kotlin.Unit> indicator, optional kotlin.jvm.functions.Function0 divider, kotlin.jvm.functions.Function0 tabs); + } + + @androidx.compose.runtime.Stable public interface TextFieldColors { + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State backgroundColor(boolean enabled); + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State cursorColor(boolean isError); + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State indicatorColor(boolean enabled, boolean isError, androidx.compose.foundation.interaction.InteractionSource interactionSource); + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State labelColor(boolean enabled, boolean error, androidx.compose.foundation.interaction.InteractionSource interactionSource); + method @Deprecated @androidx.compose.runtime.Composable public androidx.compose.runtime.State leadingIconColor(boolean enabled, boolean isError); + method @androidx.compose.runtime.Composable public default androidx.compose.runtime.State leadingIconColor(boolean enabled, boolean isError, androidx.compose.foundation.interaction.InteractionSource interactionSource); + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State placeholderColor(boolean enabled); + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State textColor(boolean enabled); + method @Deprecated @androidx.compose.runtime.Composable public androidx.compose.runtime.State trailingIconColor(boolean enabled, boolean isError); + method @androidx.compose.runtime.Composable public default androidx.compose.runtime.State trailingIconColor(boolean enabled, boolean isError, androidx.compose.foundation.interaction.InteractionSource interactionSource); + } + + @Deprecated @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public interface TextFieldColorsWithIcons extends androidx.compose.material.TextFieldColors { + } + + @androidx.compose.runtime.Immutable public final class TextFieldDefaults { + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public void BorderBox(boolean enabled, boolean isError, androidx.compose.foundation.interaction.InteractionSource interactionSource, androidx.compose.material.TextFieldColors colors, optional androidx.compose.ui.graphics.Shape shape, optional float focusedBorderThickness, optional float unfocusedBorderThickness); + method @Deprecated @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public void OutlinedTextFieldDecorationBox(String value, kotlin.jvm.functions.Function0 innerTextField, boolean enabled, boolean singleLine, androidx.compose.ui.text.input.VisualTransformation visualTransformation, androidx.compose.foundation.interaction.InteractionSource interactionSource, optional boolean isError, optional kotlin.jvm.functions.Function0? label, optional kotlin.jvm.functions.Function0? placeholder, optional kotlin.jvm.functions.Function0? leadingIcon, optional kotlin.jvm.functions.Function0? trailingIcon, optional androidx.compose.material.TextFieldColors colors, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional kotlin.jvm.functions.Function0 border); + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public void OutlinedTextFieldDecorationBox(String value, kotlin.jvm.functions.Function0 innerTextField, boolean enabled, boolean singleLine, androidx.compose.ui.text.input.VisualTransformation visualTransformation, androidx.compose.foundation.interaction.InteractionSource interactionSource, optional boolean isError, optional kotlin.jvm.functions.Function0? label, optional kotlin.jvm.functions.Function0? placeholder, optional kotlin.jvm.functions.Function0? leadingIcon, optional kotlin.jvm.functions.Function0? trailingIcon, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material.TextFieldColors colors, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional kotlin.jvm.functions.Function0 border); + method @Deprecated @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public void TextFieldDecorationBox(String value, kotlin.jvm.functions.Function0 innerTextField, boolean enabled, boolean singleLine, androidx.compose.ui.text.input.VisualTransformation visualTransformation, androidx.compose.foundation.interaction.InteractionSource interactionSource, optional boolean isError, optional kotlin.jvm.functions.Function0? label, optional kotlin.jvm.functions.Function0? placeholder, optional kotlin.jvm.functions.Function0? leadingIcon, optional kotlin.jvm.functions.Function0? trailingIcon, optional androidx.compose.material.TextFieldColors colors, optional androidx.compose.foundation.layout.PaddingValues contentPadding); + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public void TextFieldDecorationBox(String value, kotlin.jvm.functions.Function0 innerTextField, boolean enabled, boolean singleLine, androidx.compose.ui.text.input.VisualTransformation visualTransformation, androidx.compose.foundation.interaction.InteractionSource interactionSource, optional boolean isError, optional kotlin.jvm.functions.Function0? label, optional kotlin.jvm.functions.Function0? placeholder, optional kotlin.jvm.functions.Function0? leadingIcon, optional kotlin.jvm.functions.Function0? trailingIcon, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material.TextFieldColors colors, optional androidx.compose.foundation.layout.PaddingValues contentPadding); + method public float getFocusedBorderThickness(); + method public float getMinHeight(); + method public float getMinWidth(); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public androidx.compose.ui.graphics.Shape getOutlinedTextFieldShape(); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public androidx.compose.ui.graphics.Shape getTextFieldShape(); + method public float getUnfocusedBorderThickness(); + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public androidx.compose.ui.Modifier indicatorLine(androidx.compose.ui.Modifier, boolean enabled, boolean isError, androidx.compose.foundation.interaction.InteractionSource interactionSource, androidx.compose.material.TextFieldColors colors, optional float focusedIndicatorLineThickness, optional float unfocusedIndicatorLineThickness); + method @androidx.compose.runtime.Composable public androidx.compose.material.TextFieldColors outlinedTextFieldColors(optional long textColor, optional long disabledTextColor, optional long backgroundColor, optional long cursorColor, optional long errorCursorColor, optional long focusedBorderColor, optional long unfocusedBorderColor, optional long disabledBorderColor, optional long errorBorderColor, optional long leadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long trailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long placeholderColor, optional long disabledPlaceholderColor); + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public androidx.compose.foundation.layout.PaddingValues outlinedTextFieldPadding(optional float start, optional float top, optional float end, optional float bottom); + method @androidx.compose.runtime.Composable public androidx.compose.material.TextFieldColors textFieldColors(optional long textColor, optional long disabledTextColor, optional long backgroundColor, optional long cursorColor, optional long errorCursorColor, optional long focusedIndicatorColor, optional long unfocusedIndicatorColor, optional long disabledIndicatorColor, optional long errorIndicatorColor, optional long leadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long trailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long placeholderColor, optional long disabledPlaceholderColor); + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public androidx.compose.foundation.layout.PaddingValues textFieldWithLabelPadding(optional float start, optional float end, optional float top, optional float bottom); + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public androidx.compose.foundation.layout.PaddingValues textFieldWithoutLabelPadding(optional float start, optional float top, optional float end, optional float bottom); + property public final float FocusedBorderThickness; + property public final float MinHeight; + property public final float MinWidth; + property @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public final androidx.compose.ui.graphics.Shape OutlinedTextFieldShape; + property @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public final androidx.compose.ui.graphics.Shape TextFieldShape; + property public final float UnfocusedBorderThickness; + field public static final float BackgroundOpacity = 0.12f; + field public static final androidx.compose.material.TextFieldDefaults INSTANCE; + field public static final float IconOpacity = 0.54f; + field public static final float UnfocusedIndicatorLineOpacity = 0.42f; + } + + public final class TextFieldKt { + method @Deprecated @androidx.compose.runtime.Composable public static void TextField(androidx.compose.ui.text.input.TextFieldValue value, kotlin.jvm.functions.Function1 onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0? label, optional kotlin.jvm.functions.Function0? placeholder, optional kotlin.jvm.functions.Function0? leadingIcon, optional kotlin.jvm.functions.Function0? trailingIcon, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material.TextFieldColors colors); + method @androidx.compose.runtime.Composable public static void TextField(androidx.compose.ui.text.input.TextFieldValue value, kotlin.jvm.functions.Function1 onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0? label, optional kotlin.jvm.functions.Function0? placeholder, optional kotlin.jvm.functions.Function0? leadingIcon, optional kotlin.jvm.functions.Function0? trailingIcon, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional int minLines, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material.TextFieldColors colors); + method @Deprecated @androidx.compose.runtime.Composable public static void TextField(String value, kotlin.jvm.functions.Function1 onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0? label, optional kotlin.jvm.functions.Function0? placeholder, optional kotlin.jvm.functions.Function0? leadingIcon, optional kotlin.jvm.functions.Function0? trailingIcon, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material.TextFieldColors colors); + method @androidx.compose.runtime.Composable public static void TextField(String value, kotlin.jvm.functions.Function1 onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0? label, optional kotlin.jvm.functions.Function0? placeholder, optional kotlin.jvm.functions.Function0? leadingIcon, optional kotlin.jvm.functions.Function0? trailingIcon, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional int minLines, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material.TextFieldColors colors); + } + + public final class TextKt { + method @androidx.compose.runtime.Composable public static void ProvideTextStyle(androidx.compose.ui.text.TextStyle value, kotlin.jvm.functions.Function0 content); + method @androidx.compose.runtime.Composable public static void Text(androidx.compose.ui.text.AnnotatedString text, optional androidx.compose.ui.Modifier modifier, optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional long letterSpacing, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional long lineHeight, optional int overflow, optional boolean softWrap, optional int maxLines, optional int minLines, optional java.util.Map inlineContent, optional kotlin.jvm.functions.Function1 onTextLayout, optional androidx.compose.ui.text.TextStyle style); + method @Deprecated @androidx.compose.runtime.Composable public static void Text(androidx.compose.ui.text.AnnotatedString text, optional androidx.compose.ui.Modifier modifier, optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional long letterSpacing, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional long lineHeight, optional int overflow, optional boolean softWrap, optional int maxLines, optional java.util.Map inlineContent, optional kotlin.jvm.functions.Function1 onTextLayout, optional androidx.compose.ui.text.TextStyle style); + method @androidx.compose.runtime.Composable public static void Text(String text, optional androidx.compose.ui.Modifier modifier, optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional long letterSpacing, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional long lineHeight, optional int overflow, optional boolean softWrap, optional int maxLines, optional int minLines, optional kotlin.jvm.functions.Function1? onTextLayout, optional androidx.compose.ui.text.TextStyle style); + method @Deprecated @androidx.compose.runtime.Composable public static void Text(String text, optional androidx.compose.ui.Modifier modifier, optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional long letterSpacing, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional long lineHeight, optional int overflow, optional boolean softWrap, optional int maxLines, optional kotlin.jvm.functions.Function1 onTextLayout, optional androidx.compose.ui.text.TextStyle style); + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalTextStyle(); + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalTextStyle; + } + + @Deprecated @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Stable public interface ThresholdConfig { + method @Deprecated public float computeThreshold(androidx.compose.ui.unit.Density, float fromValue, float toValue); + } + + @androidx.compose.runtime.Immutable public final class Typography { + ctor public Typography(optional androidx.compose.ui.text.font.FontFamily defaultFontFamily, optional androidx.compose.ui.text.TextStyle h1, optional androidx.compose.ui.text.TextStyle h2, optional androidx.compose.ui.text.TextStyle h3, optional androidx.compose.ui.text.TextStyle h4, optional androidx.compose.ui.text.TextStyle h5, optional androidx.compose.ui.text.TextStyle h6, optional androidx.compose.ui.text.TextStyle subtitle1, optional androidx.compose.ui.text.TextStyle subtitle2, optional androidx.compose.ui.text.TextStyle body1, optional androidx.compose.ui.text.TextStyle body2, optional androidx.compose.ui.text.TextStyle button, optional androidx.compose.ui.text.TextStyle caption, optional androidx.compose.ui.text.TextStyle overline); + method public androidx.compose.material.Typography copy(optional androidx.compose.ui.text.TextStyle h1, optional androidx.compose.ui.text.TextStyle h2, optional androidx.compose.ui.text.TextStyle h3, optional androidx.compose.ui.text.TextStyle h4, optional androidx.compose.ui.text.TextStyle h5, optional androidx.compose.ui.text.TextStyle h6, optional androidx.compose.ui.text.TextStyle subtitle1, optional androidx.compose.ui.text.TextStyle subtitle2, optional androidx.compose.ui.text.TextStyle body1, optional androidx.compose.ui.text.TextStyle body2, optional androidx.compose.ui.text.TextStyle button, optional androidx.compose.ui.text.TextStyle caption, optional androidx.compose.ui.text.TextStyle overline); + method public androidx.compose.ui.text.TextStyle getBody1(); + method public androidx.compose.ui.text.TextStyle getBody2(); + method public androidx.compose.ui.text.TextStyle getButton(); + method public androidx.compose.ui.text.TextStyle getCaption(); + method public androidx.compose.ui.text.TextStyle getH1(); + method public androidx.compose.ui.text.TextStyle getH2(); + method public androidx.compose.ui.text.TextStyle getH3(); + method public androidx.compose.ui.text.TextStyle getH4(); + method public androidx.compose.ui.text.TextStyle getH5(); + method public androidx.compose.ui.text.TextStyle getH6(); + method public androidx.compose.ui.text.TextStyle getOverline(); + method public androidx.compose.ui.text.TextStyle getSubtitle1(); + method public androidx.compose.ui.text.TextStyle getSubtitle2(); + property public final androidx.compose.ui.text.TextStyle body1; + property public final androidx.compose.ui.text.TextStyle body2; + property public final androidx.compose.ui.text.TextStyle button; + property public final androidx.compose.ui.text.TextStyle caption; + property public final androidx.compose.ui.text.TextStyle h1; + property public final androidx.compose.ui.text.TextStyle h2; + property public final androidx.compose.ui.text.TextStyle h3; + property public final androidx.compose.ui.text.TextStyle h4; + property public final androidx.compose.ui.text.TextStyle h5; + property public final androidx.compose.ui.text.TextStyle h6; + property public final androidx.compose.ui.text.TextStyle overline; + property public final androidx.compose.ui.text.TextStyle subtitle1; + property public final androidx.compose.ui.text.TextStyle subtitle2; + } + +} + +package androidx.compose.material.pullrefresh { + + @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public final class PullRefreshDefaults { + method public float getRefreshThreshold(); + method public float getRefreshingOffset(); + property public final float RefreshThreshold; + property public final float RefreshingOffset; + field public static final androidx.compose.material.pullrefresh.PullRefreshDefaults INSTANCE; + } + + public final class PullRefreshIndicatorKt { + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void PullRefreshIndicator(boolean refreshing, androidx.compose.material.pullrefresh.PullRefreshState state, optional androidx.compose.ui.Modifier modifier, optional long backgroundColor, optional long contentColor, optional boolean scale); + } + + public final class PullRefreshIndicatorTransformKt { + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public static androidx.compose.ui.Modifier pullRefreshIndicatorTransform(androidx.compose.ui.Modifier, androidx.compose.material.pullrefresh.PullRefreshState state, optional boolean scale); + } + + public final class PullRefreshKt { + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public static androidx.compose.ui.Modifier pullRefresh(androidx.compose.ui.Modifier, androidx.compose.material.pullrefresh.PullRefreshState state, optional boolean enabled); + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public static androidx.compose.ui.Modifier pullRefresh(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 onPull, kotlin.jvm.functions.Function2,? extends java.lang.Object?> onRelease, optional boolean enabled); + } + + @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public final class PullRefreshState { + method public float getProgress(); + property public final float progress; + } + + public final class PullRefreshStateKt { + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static androidx.compose.material.pullrefresh.PullRefreshState rememberPullRefreshState(boolean refreshing, kotlin.jvm.functions.Function0 onRefresh, optional float refreshThreshold, optional float refreshingOffset); + } + +} + diff --git a/compose/material/material/api/res-1.7.0-beta07.txt b/compose/material/material/api/res-1.7.0-beta07.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/compose/material/material/api/restricted_1.7.0-beta07.txt b/compose/material/material/api/restricted_1.7.0-beta07.txt new file mode 100644 index 0000000000000..1bd3768cae385 --- /dev/null +++ b/compose/material/material/api/restricted_1.7.0-beta07.txt @@ -0,0 +1,1021 @@ +// Signature format: 4.0 +package androidx.compose.material { + + public final class AndroidAlertDialog_androidKt { + method @androidx.compose.runtime.Composable public static void AlertDialog(kotlin.jvm.functions.Function0 onDismissRequest, kotlin.jvm.functions.Function0 buttons, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0? title, optional kotlin.jvm.functions.Function0? text, optional androidx.compose.ui.graphics.Shape shape, optional long backgroundColor, optional long contentColor, optional androidx.compose.ui.window.DialogProperties properties); + method @androidx.compose.runtime.Composable public static void AlertDialog(kotlin.jvm.functions.Function0 onDismissRequest, kotlin.jvm.functions.Function0 confirmButton, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0? dismissButton, optional kotlin.jvm.functions.Function0? title, optional kotlin.jvm.functions.Function0? text, optional androidx.compose.ui.graphics.Shape shape, optional long backgroundColor, optional long contentColor, optional androidx.compose.ui.window.DialogProperties properties); + } + + public final class AndroidMenu_androidKt { + method @androidx.compose.runtime.Composable public static void DropdownMenu(boolean expanded, kotlin.jvm.functions.Function0 onDismissRequest, optional androidx.compose.ui.Modifier modifier, optional long offset, optional androidx.compose.foundation.ScrollState scrollState, optional androidx.compose.ui.window.PopupProperties properties, kotlin.jvm.functions.Function1 content); + method @Deprecated @androidx.compose.runtime.Composable public static void DropdownMenu(boolean expanded, kotlin.jvm.functions.Function0 onDismissRequest, optional androidx.compose.ui.Modifier modifier, optional long offset, optional androidx.compose.ui.window.PopupProperties properties, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void DropdownMenuItem(kotlin.jvm.functions.Function0 onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, kotlin.jvm.functions.Function1 content); + } + + public final class AppBarDefaults { + method public float getBottomAppBarElevation(); + method @androidx.compose.runtime.Composable public androidx.compose.foundation.layout.WindowInsets getBottomAppBarWindowInsets(); + method public androidx.compose.foundation.layout.PaddingValues getContentPadding(); + method public float getTopAppBarElevation(); + method @androidx.compose.runtime.Composable public androidx.compose.foundation.layout.WindowInsets getTopAppBarWindowInsets(); + property public final float BottomAppBarElevation; + property public final androidx.compose.foundation.layout.PaddingValues ContentPadding; + property public final float TopAppBarElevation; + property @androidx.compose.runtime.Composable public final androidx.compose.foundation.layout.WindowInsets bottomAppBarWindowInsets; + property @androidx.compose.runtime.Composable public final androidx.compose.foundation.layout.WindowInsets topAppBarWindowInsets; + field public static final androidx.compose.material.AppBarDefaults INSTANCE; + } + + public final class AppBarKt { + method @androidx.compose.runtime.Composable public static void BottomAppBar(androidx.compose.foundation.layout.WindowInsets windowInsets, optional androidx.compose.ui.Modifier modifier, optional long backgroundColor, optional long contentColor, optional androidx.compose.ui.graphics.Shape? cutoutShape, optional float elevation, optional androidx.compose.foundation.layout.PaddingValues contentPadding, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void BottomAppBar(optional androidx.compose.ui.Modifier modifier, optional long backgroundColor, optional long contentColor, optional androidx.compose.ui.graphics.Shape? cutoutShape, optional float elevation, optional androidx.compose.foundation.layout.PaddingValues contentPadding, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void TopAppBar(androidx.compose.foundation.layout.WindowInsets windowInsets, optional androidx.compose.ui.Modifier modifier, optional long backgroundColor, optional long contentColor, optional float elevation, optional androidx.compose.foundation.layout.PaddingValues contentPadding, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void TopAppBar(optional androidx.compose.ui.Modifier modifier, optional long backgroundColor, optional long contentColor, optional float elevation, optional androidx.compose.foundation.layout.PaddingValues contentPadding, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void TopAppBar(kotlin.jvm.functions.Function0 title, androidx.compose.foundation.layout.WindowInsets windowInsets, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0? navigationIcon, optional kotlin.jvm.functions.Function1 actions, optional long backgroundColor, optional long contentColor, optional float elevation); + method @androidx.compose.runtime.Composable public static void TopAppBar(kotlin.jvm.functions.Function0 title, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0? navigationIcon, optional kotlin.jvm.functions.Function1 actions, optional long backgroundColor, optional long contentColor, optional float elevation); + } + + public final class BackdropScaffoldDefaults { + method public androidx.compose.animation.core.AnimationSpec getAnimationSpec(); + method public float getFrontLayerElevation(); + method @androidx.compose.runtime.Composable public long getFrontLayerScrimColor(); + method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getFrontLayerShape(); + method public float getHeaderHeight(); + method public float getPeekHeight(); + property public final androidx.compose.animation.core.AnimationSpec AnimationSpec; + property public final float FrontLayerElevation; + property public final float HeaderHeight; + property public final float PeekHeight; + property @androidx.compose.runtime.Composable public final long frontLayerScrimColor; + property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape frontLayerShape; + field public static final androidx.compose.material.BackdropScaffoldDefaults INSTANCE; + } + + public final class BackdropScaffoldKt { + method @androidx.compose.runtime.Composable public static void BackdropScaffold(kotlin.jvm.functions.Function0 appBar, kotlin.jvm.functions.Function0 backLayerContent, kotlin.jvm.functions.Function0 frontLayerContent, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material.BackdropScaffoldState scaffoldState, optional kotlin.jvm.functions.Function1 snackbarHost, optional boolean gesturesEnabled, optional float peekHeight, optional float headerHeight, optional boolean persistentAppBar, optional boolean stickyFrontLayer, optional long backLayerBackgroundColor, optional long backLayerContentColor, optional androidx.compose.ui.graphics.Shape frontLayerShape, optional float frontLayerElevation, optional long frontLayerBackgroundColor, optional long frontLayerContentColor, optional long frontLayerScrimColor); + method @androidx.compose.runtime.Stable public static androidx.compose.material.BackdropScaffoldState BackdropScaffoldState(androidx.compose.material.BackdropValue initialValue, androidx.compose.ui.unit.Density density, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional kotlin.jvm.functions.Function1 confirmValueChange, optional androidx.compose.material.SnackbarHostState snackbarHostState); + method @androidx.compose.runtime.Composable public static androidx.compose.material.BackdropScaffoldState rememberBackdropScaffoldState(androidx.compose.material.BackdropValue initialValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional kotlin.jvm.functions.Function1 confirmStateChange, optional androidx.compose.material.SnackbarHostState snackbarHostState); + } + + @androidx.compose.runtime.Stable public final class BackdropScaffoldState { + ctor @Deprecated public BackdropScaffoldState(androidx.compose.material.BackdropValue initialValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional kotlin.jvm.functions.Function1 confirmValueChange, optional androidx.compose.material.SnackbarHostState snackbarHostState); + method public suspend Object? conceal(kotlin.coroutines.Continuation); + method public kotlin.jvm.functions.Function1 getConfirmValueChange(); + method public androidx.compose.material.BackdropValue getCurrentValue(); + method public androidx.compose.material.SnackbarHostState getSnackbarHostState(); + method public androidx.compose.material.BackdropValue getTargetValue(); + method public boolean isConcealed(); + method public boolean isRevealed(); + method @FloatRange(from=0.0, to=1.0) public float progress(androidx.compose.material.BackdropValue from, androidx.compose.material.BackdropValue to); + method public float requireOffset(); + method public suspend Object? reveal(kotlin.coroutines.Continuation); + property public final kotlin.jvm.functions.Function1 confirmValueChange; + property public final androidx.compose.material.BackdropValue currentValue; + property public final boolean isConcealed; + property public final boolean isRevealed; + property public final androidx.compose.material.SnackbarHostState snackbarHostState; + property public final androidx.compose.material.BackdropValue targetValue; + field public static final androidx.compose.material.BackdropScaffoldState.Companion Companion; + } + + public static final class BackdropScaffoldState.Companion { + method public androidx.compose.runtime.saveable.Saver Saver(androidx.compose.animation.core.AnimationSpec animationSpec, kotlin.jvm.functions.Function1 confirmStateChange, androidx.compose.material.SnackbarHostState snackbarHostState, androidx.compose.ui.unit.Density density); + } + + public enum BackdropValue { + enum_constant public static final androidx.compose.material.BackdropValue Concealed; + enum_constant public static final androidx.compose.material.BackdropValue Revealed; + } + + public final class BadgeKt { + method @androidx.compose.runtime.Composable public static void Badge(optional androidx.compose.ui.Modifier modifier, optional long backgroundColor, optional long contentColor, optional kotlin.jvm.functions.Function1? content); + method @androidx.compose.runtime.Composable public static void BadgedBox(kotlin.jvm.functions.Function1 badge, optional androidx.compose.ui.Modifier modifier, kotlin.jvm.functions.Function1 content); + } + + public final class BottomDrawerState { + ctor public BottomDrawerState(androidx.compose.material.BottomDrawerValue initialValue, androidx.compose.ui.unit.Density density, optional kotlin.jvm.functions.Function1 confirmStateChange, optional androidx.compose.animation.core.AnimationSpec animationSpec); + method public suspend Object? close(kotlin.coroutines.Continuation); + method public suspend Object? expand(kotlin.coroutines.Continuation); + method public androidx.compose.material.BottomDrawerValue getCurrentValue(); + method public float getOffset(); + method @Deprecated @FloatRange(from=0.0, to=1.0) public float getProgress(); + method public androidx.compose.material.BottomDrawerValue getTargetValue(); + method public boolean isClosed(); + method public boolean isExpanded(); + method public boolean isOpen(); + method public suspend Object? open(kotlin.coroutines.Continuation); + method @FloatRange(from=0.0, to=1.0) public float progress(androidx.compose.material.BottomDrawerValue from, androidx.compose.material.BottomDrawerValue to); + property public final androidx.compose.material.BottomDrawerValue currentValue; + property public final boolean isClosed; + property public final boolean isExpanded; + property public final boolean isOpen; + property public final float offset; + property @Deprecated @SuppressCompatibility @FloatRange(from=0.0, to=1.0) @androidx.compose.material.ExperimentalMaterialApi public final float progress; + property public final androidx.compose.material.BottomDrawerValue targetValue; + field public static final androidx.compose.material.BottomDrawerState.Companion Companion; + } + + public static final class BottomDrawerState.Companion { + method public androidx.compose.runtime.saveable.Saver Saver(androidx.compose.ui.unit.Density density, kotlin.jvm.functions.Function1 confirmStateChange, androidx.compose.animation.core.AnimationSpec animationSpec); + } + + public enum BottomDrawerValue { + enum_constant public static final androidx.compose.material.BottomDrawerValue Closed; + enum_constant public static final androidx.compose.material.BottomDrawerValue Expanded; + enum_constant public static final androidx.compose.material.BottomDrawerValue Open; + } + + public final class BottomNavigationDefaults { + method public float getElevation(); + method @androidx.compose.runtime.Composable public androidx.compose.foundation.layout.WindowInsets getWindowInsets(); + property public final float Elevation; + property @androidx.compose.runtime.Composable public final androidx.compose.foundation.layout.WindowInsets windowInsets; + field public static final androidx.compose.material.BottomNavigationDefaults INSTANCE; + } + + public final class BottomNavigationKt { + method @androidx.compose.runtime.Composable public static void BottomNavigation(androidx.compose.foundation.layout.WindowInsets windowInsets, optional androidx.compose.ui.Modifier modifier, optional long backgroundColor, optional long contentColor, optional float elevation, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void BottomNavigation(optional androidx.compose.ui.Modifier modifier, optional long backgroundColor, optional long contentColor, optional float elevation, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void BottomNavigationItem(androidx.compose.foundation.layout.RowScope, boolean selected, kotlin.jvm.functions.Function0 onClick, kotlin.jvm.functions.Function0 icon, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0? label, optional boolean alwaysShowLabel, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional long selectedContentColor, optional long unselectedContentColor); + } + + public final class BottomSheetScaffoldDefaults { + method public androidx.compose.animation.core.AnimationSpec getAnimationSpec(); + method public float getSheetElevation(); + method public float getSheetPeekHeight(); + property public final androidx.compose.animation.core.AnimationSpec AnimationSpec; + property public final float SheetElevation; + property public final float SheetPeekHeight; + field public static final androidx.compose.material.BottomSheetScaffoldDefaults INSTANCE; + } + + public final class BottomSheetScaffoldKt { + method @androidx.compose.runtime.Composable public static void BottomSheetScaffold(kotlin.jvm.functions.Function1 sheetContent, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material.BottomSheetScaffoldState scaffoldState, optional kotlin.jvm.functions.Function0? topBar, optional kotlin.jvm.functions.Function1 snackbarHost, optional kotlin.jvm.functions.Function0? floatingActionButton, optional int floatingActionButtonPosition, optional boolean sheetGesturesEnabled, optional androidx.compose.ui.graphics.Shape sheetShape, optional float sheetElevation, optional long sheetBackgroundColor, optional long sheetContentColor, optional float sheetPeekHeight, optional long backgroundColor, optional long contentColor, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static androidx.compose.material.BottomSheetScaffoldState rememberBottomSheetScaffoldState(optional androidx.compose.material.BottomSheetState bottomSheetState, optional androidx.compose.material.SnackbarHostState snackbarHostState); + method @androidx.compose.runtime.Composable public static androidx.compose.material.BottomSheetState rememberBottomSheetState(androidx.compose.material.BottomSheetValue initialValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional kotlin.jvm.functions.Function1 confirmStateChange); + } + + @androidx.compose.runtime.Stable public final class BottomSheetScaffoldState { + ctor public BottomSheetScaffoldState(androidx.compose.material.BottomSheetState bottomSheetState, androidx.compose.material.SnackbarHostState snackbarHostState); + method public androidx.compose.material.BottomSheetState getBottomSheetState(); + method public androidx.compose.material.SnackbarHostState getSnackbarHostState(); + property public final androidx.compose.material.BottomSheetState bottomSheetState; + property public final androidx.compose.material.SnackbarHostState snackbarHostState; + } + + @androidx.compose.runtime.Stable public final class BottomSheetState { + ctor public BottomSheetState(androidx.compose.material.BottomSheetValue initialValue, androidx.compose.ui.unit.Density density, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional kotlin.jvm.functions.Function1 confirmValueChange); + method public suspend Object? collapse(kotlin.coroutines.Continuation); + method public suspend Object? expand(kotlin.coroutines.Continuation); + method public androidx.compose.material.BottomSheetValue getCurrentValue(); + method @Deprecated @FloatRange(from=0.0, to=1.0) public float getProgress(); + method public androidx.compose.material.BottomSheetValue getTargetValue(); + method public boolean isCollapsed(); + method public boolean isExpanded(); + method @FloatRange(from=0.0, to=1.0) public float progress(androidx.compose.material.BottomSheetValue from, androidx.compose.material.BottomSheetValue to); + method public float requireOffset(); + property public final androidx.compose.material.BottomSheetValue currentValue; + property public final boolean isCollapsed; + property public final boolean isExpanded; + property @Deprecated @SuppressCompatibility @FloatRange(from=0.0, to=1.0) @androidx.compose.material.ExperimentalMaterialApi public final float progress; + property public final androidx.compose.material.BottomSheetValue targetValue; + field public static final androidx.compose.material.BottomSheetState.Companion Companion; + } + + public static final class BottomSheetState.Companion { + method public androidx.compose.runtime.saveable.Saver Saver(androidx.compose.animation.core.AnimationSpec animationSpec, kotlin.jvm.functions.Function1 confirmStateChange, androidx.compose.ui.unit.Density density); + } + + public enum BottomSheetValue { + enum_constant public static final androidx.compose.material.BottomSheetValue Collapsed; + enum_constant public static final androidx.compose.material.BottomSheetValue Expanded; + } + + @androidx.compose.runtime.Stable public interface ButtonColors { + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State backgroundColor(boolean enabled); + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State contentColor(boolean enabled); + } + + public final class ButtonDefaults { + method @androidx.compose.runtime.Composable public androidx.compose.material.ButtonColors buttonColors(optional long backgroundColor, optional long contentColor, optional long disabledBackgroundColor, optional long disabledContentColor); + method @Deprecated @androidx.compose.runtime.Composable public androidx.compose.material.ButtonElevation elevation(optional float defaultElevation, optional float pressedElevation, optional float disabledElevation); + method @androidx.compose.runtime.Composable public androidx.compose.material.ButtonElevation elevation(optional float defaultElevation, optional float pressedElevation, optional float disabledElevation, optional float hoveredElevation, optional float focusedElevation); + method public androidx.compose.foundation.layout.PaddingValues getContentPadding(); + method public float getIconSize(); + method public float getIconSpacing(); + method public float getMinHeight(); + method public float getMinWidth(); + method @androidx.compose.runtime.Composable public androidx.compose.foundation.BorderStroke getOutlinedBorder(); + method public float getOutlinedBorderSize(); + method public androidx.compose.foundation.layout.PaddingValues getTextButtonContentPadding(); + method @androidx.compose.runtime.Composable public androidx.compose.material.ButtonColors outlinedButtonColors(optional long backgroundColor, optional long contentColor, optional long disabledContentColor); + method @androidx.compose.runtime.Composable public androidx.compose.material.ButtonColors textButtonColors(optional long backgroundColor, optional long contentColor, optional long disabledContentColor); + property public final androidx.compose.foundation.layout.PaddingValues ContentPadding; + property public final float IconSize; + property public final float IconSpacing; + property public final float MinHeight; + property public final float MinWidth; + property public final float OutlinedBorderSize; + property public final androidx.compose.foundation.layout.PaddingValues TextButtonContentPadding; + property @androidx.compose.runtime.Composable public final androidx.compose.foundation.BorderStroke outlinedBorder; + field public static final androidx.compose.material.ButtonDefaults INSTANCE; + field public static final float OutlinedBorderOpacity = 0.12f; + } + + @androidx.compose.runtime.Stable public interface ButtonElevation { + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State elevation(boolean enabled, androidx.compose.foundation.interaction.InteractionSource interactionSource); + } + + public final class ButtonKt { + method @androidx.compose.runtime.Composable public static void Button(kotlin.jvm.functions.Function0 onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.material.ButtonElevation? elevation, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.foundation.BorderStroke? border, optional androidx.compose.material.ButtonColors colors, optional androidx.compose.foundation.layout.PaddingValues contentPadding, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void OutlinedButton(kotlin.jvm.functions.Function0 onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.material.ButtonElevation? elevation, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.foundation.BorderStroke? border, optional androidx.compose.material.ButtonColors colors, optional androidx.compose.foundation.layout.PaddingValues contentPadding, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void TextButton(kotlin.jvm.functions.Function0 onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.material.ButtonElevation? elevation, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.foundation.BorderStroke? border, optional androidx.compose.material.ButtonColors colors, optional androidx.compose.foundation.layout.PaddingValues contentPadding, kotlin.jvm.functions.Function1 content); + } + + public final class CardKt { + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void Card(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.graphics.Shape shape, optional long backgroundColor, optional long contentColor, optional androidx.compose.foundation.BorderStroke? border, optional float elevation, kotlin.jvm.functions.Function0 content); + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void Card(kotlin.jvm.functions.Function0 onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional long backgroundColor, optional long contentColor, optional androidx.compose.foundation.BorderStroke? border, optional float elevation, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, kotlin.jvm.functions.Function0 content); + } + + @androidx.compose.runtime.Stable public interface CheckboxColors { + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State borderColor(boolean enabled, androidx.compose.ui.state.ToggleableState state); + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State boxColor(boolean enabled, androidx.compose.ui.state.ToggleableState state); + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State checkmarkColor(androidx.compose.ui.state.ToggleableState state); + } + + public final class CheckboxDefaults { + method @androidx.compose.runtime.Composable public androidx.compose.material.CheckboxColors colors(optional long checkedColor, optional long uncheckedColor, optional long checkmarkColor, optional long disabledColor, optional long disabledIndeterminateColor); + field public static final androidx.compose.material.CheckboxDefaults INSTANCE; + } + + public final class CheckboxKt { + method @androidx.compose.runtime.Composable public static void Checkbox(boolean checked, kotlin.jvm.functions.Function1? onCheckedChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.material.CheckboxColors colors); + method @androidx.compose.runtime.Composable public static void TriStateCheckbox(androidx.compose.ui.state.ToggleableState state, kotlin.jvm.functions.Function0? onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.material.CheckboxColors colors); + } + + @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Stable public interface ChipColors { + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State backgroundColor(boolean enabled); + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State contentColor(boolean enabled); + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State leadingIconContentColor(boolean enabled); + } + + @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public final class ChipDefaults { + method @androidx.compose.runtime.Composable public androidx.compose.material.ChipColors chipColors(optional long backgroundColor, optional long contentColor, optional long leadingIconContentColor, optional long disabledBackgroundColor, optional long disabledContentColor, optional long disabledLeadingIconContentColor); + method @androidx.compose.runtime.Composable public androidx.compose.material.SelectableChipColors filterChipColors(optional long backgroundColor, optional long contentColor, optional long leadingIconColor, optional long disabledBackgroundColor, optional long disabledContentColor, optional long disabledLeadingIconColor, optional long selectedBackgroundColor, optional long selectedContentColor, optional long selectedLeadingIconColor); + method public float getLeadingIconSize(); + method public float getMinHeight(); + method @androidx.compose.runtime.Composable public androidx.compose.foundation.BorderStroke getOutlinedBorder(); + method public float getOutlinedBorderSize(); + method public float getSelectedIconSize(); + method @androidx.compose.runtime.Composable public androidx.compose.material.ChipColors outlinedChipColors(optional long backgroundColor, optional long contentColor, optional long leadingIconContentColor, optional long disabledBackgroundColor, optional long disabledContentColor, optional long disabledLeadingIconContentColor); + method @androidx.compose.runtime.Composable public androidx.compose.material.SelectableChipColors outlinedFilterChipColors(optional long backgroundColor, optional long contentColor, optional long leadingIconColor, optional long disabledBackgroundColor, optional long disabledContentColor, optional long disabledLeadingIconColor, optional long selectedBackgroundColor, optional long selectedContentColor, optional long selectedLeadingIconColor); + property public final float LeadingIconSize; + property public final float MinHeight; + property public final float OutlinedBorderSize; + property public final float SelectedIconSize; + property @androidx.compose.runtime.Composable public final androidx.compose.foundation.BorderStroke outlinedBorder; + field public static final float ContentOpacity = 0.87f; + field public static final androidx.compose.material.ChipDefaults INSTANCE; + field public static final float LeadingIconOpacity = 0.54f; + field public static final float OutlinedBorderOpacity = 0.12f; + } + + public final class ChipKt { + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void Chip(kotlin.jvm.functions.Function0 onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.foundation.BorderStroke? border, optional androidx.compose.material.ChipColors colors, optional kotlin.jvm.functions.Function0? leadingIcon, kotlin.jvm.functions.Function1 content); + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void FilterChip(boolean selected, kotlin.jvm.functions.Function0 onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.foundation.BorderStroke? border, optional androidx.compose.material.SelectableChipColors colors, optional kotlin.jvm.functions.Function0? leadingIcon, optional kotlin.jvm.functions.Function0? selectedIcon, optional kotlin.jvm.functions.Function0? trailingIcon, kotlin.jvm.functions.Function1 content); + } + + @androidx.compose.runtime.Stable public final class Colors { + ctor public Colors(long primary, long primaryVariant, long secondary, long secondaryVariant, long background, long surface, long error, long onPrimary, long onSecondary, long onBackground, long onSurface, long onError, boolean isLight); + method public androidx.compose.material.Colors copy(optional long primary, optional long primaryVariant, optional long secondary, optional long secondaryVariant, optional long background, optional long surface, optional long error, optional long onPrimary, optional long onSecondary, optional long onBackground, optional long onSurface, optional long onError, optional boolean isLight); + method public long getBackground(); + method public long getError(); + method public long getOnBackground(); + method public long getOnError(); + method public long getOnPrimary(); + method public long getOnSecondary(); + method public long getOnSurface(); + method public long getPrimary(); + method public long getPrimaryVariant(); + method public long getSecondary(); + method public long getSecondaryVariant(); + method public long getSurface(); + method public boolean isLight(); + property public final long background; + property public final long error; + property public final boolean isLight; + property public final long onBackground; + property public final long onError; + property public final long onPrimary; + property public final long onSecondary; + property public final long onSurface; + property public final long primary; + property public final long primaryVariant; + property public final long secondary; + property public final long secondaryVariant; + property public final long surface; + } + + public final class ColorsKt { + method public static long contentColorFor(androidx.compose.material.Colors, long backgroundColor); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static long contentColorFor(long backgroundColor); + method public static androidx.compose.material.Colors darkColors(optional long primary, optional long primaryVariant, optional long secondary, optional long secondaryVariant, optional long background, optional long surface, optional long error, optional long onPrimary, optional long onSecondary, optional long onBackground, optional long onSurface, optional long onError); + method public static long getPrimarySurface(androidx.compose.material.Colors); + method public static androidx.compose.material.Colors lightColors(optional long primary, optional long primaryVariant, optional long secondary, optional long secondaryVariant, optional long background, optional long surface, optional long error, optional long onPrimary, optional long onSecondary, optional long onBackground, optional long onSurface, optional long onError); + } + + public final class ContentAlpha { + method @androidx.compose.runtime.Composable public float getDisabled(); + method @androidx.compose.runtime.Composable public float getHigh(); + method @androidx.compose.runtime.Composable public float getMedium(); + property @androidx.compose.runtime.Composable public final float disabled; + property @androidx.compose.runtime.Composable public final float high; + property @androidx.compose.runtime.Composable public final float medium; + field public static final androidx.compose.material.ContentAlpha INSTANCE; + } + + public final class ContentAlphaKt { + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalContentAlpha(); + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalContentAlpha; + } + + public final class ContentColorKt { + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalContentColor(); + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalContentColor; + } + + public enum DismissDirection { + enum_constant public static final androidx.compose.material.DismissDirection EndToStart; + enum_constant public static final androidx.compose.material.DismissDirection StartToEnd; + } + + @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public final class DismissState extends androidx.compose.material.SwipeableState { + ctor public DismissState(androidx.compose.material.DismissValue initialValue, optional kotlin.jvm.functions.Function1 confirmStateChange); + method public suspend Object? dismiss(androidx.compose.material.DismissDirection direction, kotlin.coroutines.Continuation); + method public androidx.compose.material.DismissDirection? getDismissDirection(); + method public boolean isDismissed(androidx.compose.material.DismissDirection direction); + method public suspend Object? reset(kotlin.coroutines.Continuation); + property public final androidx.compose.material.DismissDirection? dismissDirection; + field public static final androidx.compose.material.DismissState.Companion Companion; + } + + public static final class DismissState.Companion { + method public androidx.compose.runtime.saveable.Saver Saver(kotlin.jvm.functions.Function1 confirmStateChange); + } + + public enum DismissValue { + enum_constant public static final androidx.compose.material.DismissValue Default; + enum_constant public static final androidx.compose.material.DismissValue DismissedToEnd; + enum_constant public static final androidx.compose.material.DismissValue DismissedToStart; + } + + public final class DividerKt { + method @androidx.compose.runtime.Composable public static void Divider(optional androidx.compose.ui.Modifier modifier, optional long color, optional float thickness, optional float startIndent); + } + + public final class DrawerDefaults { + method public androidx.compose.animation.core.TweenSpec getAnimationSpec(); + method @androidx.compose.runtime.Composable public long getBackgroundColor(); + method public float getElevation(); + method @androidx.compose.runtime.Composable public long getScrimColor(); + method @androidx.compose.runtime.Composable public androidx.compose.ui.graphics.Shape getShape(); + property public final androidx.compose.animation.core.TweenSpec AnimationSpec; + property public final float Elevation; + property @androidx.compose.runtime.Composable public final long backgroundColor; + property @androidx.compose.runtime.Composable public final long scrimColor; + property @androidx.compose.runtime.Composable public final androidx.compose.ui.graphics.Shape shape; + field public static final androidx.compose.material.DrawerDefaults INSTANCE; + field public static final float ScrimOpacity = 0.32f; + } + + public final class DrawerKt { + method @androidx.compose.runtime.Composable public static void BottomDrawer(kotlin.jvm.functions.Function1 drawerContent, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material.BottomDrawerState drawerState, optional boolean gesturesEnabled, optional androidx.compose.ui.graphics.Shape drawerShape, optional float drawerElevation, optional long drawerBackgroundColor, optional long drawerContentColor, optional long scrimColor, kotlin.jvm.functions.Function0 content); + method @androidx.compose.runtime.Composable public static void ModalDrawer(kotlin.jvm.functions.Function1 drawerContent, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material.DrawerState drawerState, optional boolean gesturesEnabled, optional androidx.compose.ui.graphics.Shape drawerShape, optional float drawerElevation, optional long drawerBackgroundColor, optional long drawerContentColor, optional long scrimColor, kotlin.jvm.functions.Function0 content); + method @androidx.compose.runtime.Composable public static androidx.compose.material.BottomDrawerState rememberBottomDrawerState(androidx.compose.material.BottomDrawerValue initialValue, optional kotlin.jvm.functions.Function1 confirmStateChange, optional androidx.compose.animation.core.AnimationSpec animationSpec); + method @androidx.compose.runtime.Composable public static androidx.compose.material.DrawerState rememberDrawerState(androidx.compose.material.DrawerValue initialValue, optional kotlin.jvm.functions.Function1 confirmStateChange); + } + + @androidx.compose.runtime.Stable public final class DrawerState { + ctor public DrawerState(androidx.compose.material.DrawerValue initialValue, optional kotlin.jvm.functions.Function1 confirmStateChange); + method @Deprecated @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public suspend Object? animateTo(androidx.compose.material.DrawerValue targetValue, androidx.compose.animation.core.AnimationSpec anim, kotlin.coroutines.Continuation); + method public suspend Object? close(kotlin.coroutines.Continuation); + method public androidx.compose.material.DrawerValue getCurrentValue(); + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public float getOffset(); + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public androidx.compose.material.DrawerValue getTargetValue(); + method public boolean isAnimationRunning(); + method public boolean isClosed(); + method public boolean isOpen(); + method public suspend Object? open(kotlin.coroutines.Continuation); + method public suspend Object? snapTo(androidx.compose.material.DrawerValue targetValue, kotlin.coroutines.Continuation); + property public final androidx.compose.material.DrawerValue currentValue; + property public final boolean isAnimationRunning; + property public final boolean isClosed; + property public final boolean isOpen; + property @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public final float offset; + property @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public final androidx.compose.material.DrawerValue targetValue; + field public static final androidx.compose.material.DrawerState.Companion Companion; + } + + public static final class DrawerState.Companion { + method public androidx.compose.runtime.saveable.Saver Saver(kotlin.jvm.functions.Function1 confirmStateChange); + } + + public enum DrawerValue { + enum_constant public static final androidx.compose.material.DrawerValue Closed; + enum_constant public static final androidx.compose.material.DrawerValue Open; + } + + public interface ElevationOverlay { + method @androidx.compose.runtime.Composable public long apply(long color, float elevation); + } + + public final class ElevationOverlayKt { + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalAbsoluteElevation(); + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalElevationOverlay(); + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalAbsoluteElevation; + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalElevationOverlay; + } + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This material API is experimental and is likely to change or to be removed in" + " the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalMaterialApi { + } + + @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public abstract class ExposedDropdownMenuBoxScope { + ctor public ExposedDropdownMenuBoxScope(); + method @androidx.compose.runtime.Composable public final void ExposedDropdownMenu(boolean expanded, kotlin.jvm.functions.Function0 onDismissRequest, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.ScrollState scrollState, kotlin.jvm.functions.Function1 content); + method public abstract androidx.compose.ui.Modifier exposedDropdownSize(androidx.compose.ui.Modifier, optional boolean matchTextFieldWidth); + } + + @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public final class ExposedDropdownMenuDefaults { + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public void TrailingIcon(boolean expanded, optional kotlin.jvm.functions.Function0 onIconClick); + method @androidx.compose.runtime.Composable public androidx.compose.material.TextFieldColors outlinedTextFieldColors(optional long textColor, optional long disabledTextColor, optional long backgroundColor, optional long cursorColor, optional long errorCursorColor, optional long focusedBorderColor, optional long unfocusedBorderColor, optional long disabledBorderColor, optional long errorBorderColor, optional long leadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long trailingIconColor, optional long focusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long placeholderColor, optional long disabledPlaceholderColor); + method @androidx.compose.runtime.Composable public androidx.compose.material.TextFieldColors textFieldColors(optional long textColor, optional long disabledTextColor, optional long backgroundColor, optional long cursorColor, optional long errorCursorColor, optional long focusedIndicatorColor, optional long unfocusedIndicatorColor, optional long disabledIndicatorColor, optional long errorIndicatorColor, optional long leadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long trailingIconColor, optional long focusedTrailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long placeholderColor, optional long disabledPlaceholderColor); + field public static final androidx.compose.material.ExposedDropdownMenuDefaults INSTANCE; + } + + public final class ExposedDropdownMenu_androidKt { + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void ExposedDropdownMenuBox(boolean expanded, kotlin.jvm.functions.Function1 onExpandedChange, optional androidx.compose.ui.Modifier modifier, kotlin.jvm.functions.Function1 content); + } + + @kotlin.jvm.JvmInline public final value class FabPosition { + field public static final androidx.compose.material.FabPosition.Companion Companion; + } + + public static final class FabPosition.Companion { + method public int getCenter(); + method public int getEnd(); + method public int getStart(); + property public final int Center; + property public final int End; + property public final int Start; + } + + @Deprecated @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Immutable public final class FixedThreshold implements androidx.compose.material.ThresholdConfig { + ctor @Deprecated public FixedThreshold(float offset); + method @Deprecated public float computeThreshold(androidx.compose.ui.unit.Density, float fromValue, float toValue); + method @Deprecated public androidx.compose.material.FixedThreshold copy-0680j_4(float offset); + } + + public final class FloatingActionButtonDefaults { + method @Deprecated @androidx.compose.runtime.Composable public androidx.compose.material.FloatingActionButtonElevation elevation(optional float defaultElevation, optional float pressedElevation); + method @androidx.compose.runtime.Composable public androidx.compose.material.FloatingActionButtonElevation elevation(optional float defaultElevation, optional float pressedElevation, optional float hoveredElevation, optional float focusedElevation); + field public static final androidx.compose.material.FloatingActionButtonDefaults INSTANCE; + } + + @androidx.compose.runtime.Stable public interface FloatingActionButtonElevation { + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State elevation(androidx.compose.foundation.interaction.InteractionSource interactionSource); + } + + public final class FloatingActionButtonKt { + method @androidx.compose.runtime.Composable public static void ExtendedFloatingActionButton(kotlin.jvm.functions.Function0 text, kotlin.jvm.functions.Function0 onClick, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0? icon, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional long backgroundColor, optional long contentColor, optional androidx.compose.material.FloatingActionButtonElevation elevation); + method @androidx.compose.runtime.Composable public static void FloatingActionButton(kotlin.jvm.functions.Function0 onClick, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional long backgroundColor, optional long contentColor, optional androidx.compose.material.FloatingActionButtonElevation elevation, kotlin.jvm.functions.Function0 content); + } + + @Deprecated @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Immutable public final class FractionalThreshold implements androidx.compose.material.ThresholdConfig { + ctor @Deprecated public FractionalThreshold(float fraction); + method @Deprecated public float computeThreshold(androidx.compose.ui.unit.Density, float fromValue, float toValue); + method @Deprecated public androidx.compose.material.FractionalThreshold copy(float fraction); + } + + public final class IconButtonKt { + method @androidx.compose.runtime.Composable public static void IconButton(kotlin.jvm.functions.Function0 onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, kotlin.jvm.functions.Function0 content); + method @androidx.compose.runtime.Composable public static void IconToggleButton(boolean checked, kotlin.jvm.functions.Function1 onCheckedChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, kotlin.jvm.functions.Function0 content); + } + + public final class IconKt { + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void Icon(androidx.compose.ui.graphics.ImageBitmap bitmap, String? contentDescription, optional androidx.compose.ui.Modifier modifier, optional long tint); + method @androidx.compose.runtime.Composable public static void Icon(androidx.compose.ui.graphics.painter.Painter painter, String? contentDescription, optional androidx.compose.ui.Modifier modifier, optional long tint); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void Icon(androidx.compose.ui.graphics.vector.ImageVector imageVector, String? contentDescription, optional androidx.compose.ui.Modifier modifier, optional long tint); + } + + public final class InteractiveComponentSizeKt { + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public static androidx.compose.runtime.ProvidableCompositionLocal getLocalMinimumInteractiveComponentEnforcement(); + method @Deprecated @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public static androidx.compose.runtime.ProvidableCompositionLocal getLocalMinimumTouchTargetEnforcement(); + method public static androidx.compose.ui.Modifier minimumInteractiveComponentSize(androidx.compose.ui.Modifier); + property @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public static final androidx.compose.runtime.ProvidableCompositionLocal LocalMinimumInteractiveComponentEnforcement; + property @Deprecated @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public static final androidx.compose.runtime.ProvidableCompositionLocal LocalMinimumTouchTargetEnforcement; + } + + public final class ListItemKt { + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void ListItem(optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0? icon, optional kotlin.jvm.functions.Function0? secondaryText, optional boolean singleLineSecondaryText, optional kotlin.jvm.functions.Function0? overlineText, optional kotlin.jvm.functions.Function0? trailing, kotlin.jvm.functions.Function0 text); + } + + public final class MaterialTheme { + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public androidx.compose.material.Colors getColors(); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public androidx.compose.material.Shapes getShapes(); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public androidx.compose.material.Typography getTypography(); + property @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public final androidx.compose.material.Colors colors; + property @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public final androidx.compose.material.Shapes shapes; + property @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public final androidx.compose.material.Typography typography; + field public static final androidx.compose.material.MaterialTheme INSTANCE; + } + + public final class MaterialThemeKt { + method @androidx.compose.runtime.Composable public static void MaterialTheme(optional androidx.compose.material.Colors colors, optional androidx.compose.material.Typography typography, optional androidx.compose.material.Shapes shapes, kotlin.jvm.functions.Function0 content); + } + + public final class MenuDefaults { + method public androidx.compose.foundation.layout.PaddingValues getDropdownMenuItemContentPadding(); + property public final androidx.compose.foundation.layout.PaddingValues DropdownMenuItemContentPadding; + field public static final androidx.compose.material.MenuDefaults INSTANCE; + } + + public final class ModalBottomSheetDefaults { + method public androidx.compose.animation.core.AnimationSpec getAnimationSpec(); + method public float getElevation(); + method @androidx.compose.runtime.Composable public long getScrimColor(); + property public final androidx.compose.animation.core.AnimationSpec AnimationSpec; + property public final float Elevation; + property @androidx.compose.runtime.Composable public final long scrimColor; + field public static final androidx.compose.material.ModalBottomSheetDefaults INSTANCE; + } + + public final class ModalBottomSheetKt { + method @androidx.compose.runtime.Composable public static void ModalBottomSheetLayout(kotlin.jvm.functions.Function1 sheetContent, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material.ModalBottomSheetState sheetState, optional boolean sheetGesturesEnabled, optional androidx.compose.ui.graphics.Shape sheetShape, optional float sheetElevation, optional long sheetBackgroundColor, optional long sheetContentColor, optional long scrimColor, kotlin.jvm.functions.Function0 content); + method @androidx.compose.runtime.Composable public static androidx.compose.material.ModalBottomSheetState rememberModalBottomSheetState(androidx.compose.material.ModalBottomSheetValue initialValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional kotlin.jvm.functions.Function1 confirmValueChange, optional boolean skipHalfExpanded); + } + + public final class ModalBottomSheetState { + ctor public ModalBottomSheetState(androidx.compose.material.ModalBottomSheetValue initialValue, androidx.compose.ui.unit.Density density, optional kotlin.jvm.functions.Function1 confirmValueChange, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional boolean isSkipHalfExpanded); + method public androidx.compose.material.ModalBottomSheetValue getCurrentValue(); + method @Deprecated @FloatRange(from=0.0, to=1.0) public float getProgress(); + method public androidx.compose.material.ModalBottomSheetValue getTargetValue(); + method public suspend Object? hide(kotlin.coroutines.Continuation); + method public boolean isVisible(); + method @FloatRange(from=0.0, to=1.0) public float progress(androidx.compose.material.ModalBottomSheetValue from, androidx.compose.material.ModalBottomSheetValue to); + method public suspend Object? show(kotlin.coroutines.Continuation); + property public final androidx.compose.material.ModalBottomSheetValue currentValue; + property public final boolean isVisible; + property @Deprecated @SuppressCompatibility @FloatRange(from=0.0, to=1.0) @androidx.compose.material.ExperimentalMaterialApi public final float progress; + property public final androidx.compose.material.ModalBottomSheetValue targetValue; + field public static final androidx.compose.material.ModalBottomSheetState.Companion Companion; + } + + public static final class ModalBottomSheetState.Companion { + method public androidx.compose.runtime.saveable.Saver Saver(androidx.compose.animation.core.AnimationSpec animationSpec, kotlin.jvm.functions.Function1 confirmValueChange, boolean skipHalfExpanded, androidx.compose.ui.unit.Density density); + } + + public enum ModalBottomSheetValue { + enum_constant public static final androidx.compose.material.ModalBottomSheetValue Expanded; + enum_constant public static final androidx.compose.material.ModalBottomSheetValue HalfExpanded; + enum_constant public static final androidx.compose.material.ModalBottomSheetValue Hidden; + } + + public final class NavigationRailDefaults { + method public float getElevation(); + method @androidx.compose.runtime.Composable public androidx.compose.foundation.layout.WindowInsets getWindowInsets(); + property public final float Elevation; + property @androidx.compose.runtime.Composable public final androidx.compose.foundation.layout.WindowInsets windowInsets; + field public static final androidx.compose.material.NavigationRailDefaults INSTANCE; + } + + public final class NavigationRailKt { + method @androidx.compose.runtime.Composable public static void NavigationRail(androidx.compose.foundation.layout.WindowInsets windowInsets, optional androidx.compose.ui.Modifier modifier, optional long backgroundColor, optional long contentColor, optional float elevation, optional kotlin.jvm.functions.Function1? header, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void NavigationRail(optional androidx.compose.ui.Modifier modifier, optional long backgroundColor, optional long contentColor, optional float elevation, optional kotlin.jvm.functions.Function1? header, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void NavigationRailItem(boolean selected, kotlin.jvm.functions.Function0 onClick, kotlin.jvm.functions.Function0 icon, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0? label, optional boolean alwaysShowLabel, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional long selectedContentColor, optional long unselectedContentColor); + } + + public final class OutlinedTextFieldKt { + method @Deprecated @androidx.compose.runtime.Composable public static void OutlinedTextField(androidx.compose.ui.text.input.TextFieldValue value, kotlin.jvm.functions.Function1 onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0? label, optional kotlin.jvm.functions.Function0? placeholder, optional kotlin.jvm.functions.Function0? leadingIcon, optional kotlin.jvm.functions.Function0? trailingIcon, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material.TextFieldColors colors); + method @androidx.compose.runtime.Composable public static void OutlinedTextField(androidx.compose.ui.text.input.TextFieldValue value, kotlin.jvm.functions.Function1 onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0? label, optional kotlin.jvm.functions.Function0? placeholder, optional kotlin.jvm.functions.Function0? leadingIcon, optional kotlin.jvm.functions.Function0? trailingIcon, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional int minLines, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material.TextFieldColors colors); + method @Deprecated @androidx.compose.runtime.Composable public static void OutlinedTextField(String value, kotlin.jvm.functions.Function1 onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0? label, optional kotlin.jvm.functions.Function0? placeholder, optional kotlin.jvm.functions.Function0? leadingIcon, optional kotlin.jvm.functions.Function0? trailingIcon, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material.TextFieldColors colors); + method @androidx.compose.runtime.Composable public static void OutlinedTextField(String value, kotlin.jvm.functions.Function1 onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0? label, optional kotlin.jvm.functions.Function0? placeholder, optional kotlin.jvm.functions.Function0? leadingIcon, optional kotlin.jvm.functions.Function0? trailingIcon, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional int minLines, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material.TextFieldColors colors); + } + + public final class ProgressIndicatorDefaults { + method public androidx.compose.animation.core.SpringSpec getProgressAnimationSpec(); + method public float getStrokeWidth(); + property public final androidx.compose.animation.core.SpringSpec ProgressAnimationSpec; + property public final float StrokeWidth; + field public static final androidx.compose.material.ProgressIndicatorDefaults INSTANCE; + field public static final float IndicatorBackgroundOpacity = 0.24f; + } + + public final class ProgressIndicatorKt { + method @Deprecated @androidx.compose.runtime.Composable public static void CircularProgressIndicator(optional androidx.compose.ui.Modifier modifier, optional long color, optional float strokeWidth); + method @androidx.compose.runtime.Composable public static void CircularProgressIndicator(optional androidx.compose.ui.Modifier modifier, optional long color, optional float strokeWidth, optional long backgroundColor, optional int strokeCap); + method @Deprecated @androidx.compose.runtime.Composable public static void CircularProgressIndicator(float progress, optional androidx.compose.ui.Modifier modifier, optional long color, optional float strokeWidth); + method @androidx.compose.runtime.Composable public static void CircularProgressIndicator(@FloatRange(from=0.0, to=1.0) float progress, optional androidx.compose.ui.Modifier modifier, optional long color, optional float strokeWidth, optional long backgroundColor, optional int strokeCap); + method @Deprecated @androidx.compose.runtime.Composable public static void LinearProgressIndicator(optional androidx.compose.ui.Modifier modifier, optional long color, optional long backgroundColor); + method @androidx.compose.runtime.Composable public static void LinearProgressIndicator(optional androidx.compose.ui.Modifier modifier, optional long color, optional long backgroundColor, optional int strokeCap); + method @Deprecated @androidx.compose.runtime.Composable public static void LinearProgressIndicator(float progress, optional androidx.compose.ui.Modifier modifier, optional long color, optional long backgroundColor); + method @androidx.compose.runtime.Composable public static void LinearProgressIndicator(@FloatRange(from=0.0, to=1.0) float progress, optional androidx.compose.ui.Modifier modifier, optional long color, optional long backgroundColor, optional int strokeCap); + } + + @androidx.compose.runtime.Stable public interface RadioButtonColors { + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State radioColor(boolean enabled, boolean selected); + } + + public final class RadioButtonDefaults { + method @androidx.compose.runtime.Composable public androidx.compose.material.RadioButtonColors colors(optional long selectedColor, optional long unselectedColor, optional long disabledColor); + field public static final androidx.compose.material.RadioButtonDefaults INSTANCE; + } + + public final class RadioButtonKt { + method @androidx.compose.runtime.Composable public static void RadioButton(boolean selected, kotlin.jvm.functions.Function0? onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.material.RadioButtonColors colors); + } + + @Deprecated @androidx.compose.runtime.Immutable public final class ResistanceConfig { + ctor @Deprecated public ResistanceConfig(float basis, optional float factorAtMin, optional float factorAtMax); + method @Deprecated public float computeResistance(float overflow); + method @Deprecated public float getBasis(); + method @Deprecated public float getFactorAtMax(); + method @Deprecated public float getFactorAtMin(); + property @Deprecated public final float basis; + property @Deprecated public final float factorAtMax; + property @Deprecated public final float factorAtMin; + } + + @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Immutable public final class RippleConfiguration { + ctor public RippleConfiguration(optional long color, optional androidx.compose.material.ripple.RippleAlpha? rippleAlpha); + method public long getColor(); + method public androidx.compose.material.ripple.RippleAlpha? getRippleAlpha(); + property public final long color; + property public final androidx.compose.material.ripple.RippleAlpha? rippleAlpha; + } + + public final class RippleDefaults { + method public androidx.compose.material.ripple.RippleAlpha rippleAlpha(long contentColor, boolean lightTheme); + method public long rippleColor(long contentColor, boolean lightTheme); + field public static final androidx.compose.material.RippleDefaults INSTANCE; + } + + public final class RippleKt { + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public static androidx.compose.runtime.ProvidableCompositionLocal getLocalRippleConfiguration(); + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public static androidx.compose.runtime.ProvidableCompositionLocal getLocalUseFallbackRippleImplementation(); + method @androidx.compose.runtime.Stable public static androidx.compose.foundation.IndicationNodeFactory ripple(androidx.compose.ui.graphics.ColorProducer color, optional boolean bounded, optional float radius); + method @androidx.compose.runtime.Stable public static androidx.compose.foundation.IndicationNodeFactory ripple(optional boolean bounded, optional float radius, optional long color); + property @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public static final androidx.compose.runtime.ProvidableCompositionLocal LocalRippleConfiguration; + property @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public static final androidx.compose.runtime.ProvidableCompositionLocal LocalUseFallbackRippleImplementation; + } + + public final class ScaffoldDefaults { + method @androidx.compose.runtime.Composable public androidx.compose.foundation.layout.WindowInsets getContentWindowInsets(); + property @androidx.compose.runtime.Composable public final androidx.compose.foundation.layout.WindowInsets contentWindowInsets; + field public static final androidx.compose.material.ScaffoldDefaults INSTANCE; + } + + public final class ScaffoldKt { + method @androidx.compose.runtime.Composable public static void Scaffold(androidx.compose.foundation.layout.WindowInsets contentWindowInsets, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material.ScaffoldState scaffoldState, optional kotlin.jvm.functions.Function0 topBar, optional kotlin.jvm.functions.Function0 bottomBar, optional kotlin.jvm.functions.Function1 snackbarHost, optional kotlin.jvm.functions.Function0 floatingActionButton, optional int floatingActionButtonPosition, optional boolean isFloatingActionButtonDocked, optional kotlin.jvm.functions.Function1? drawerContent, optional boolean drawerGesturesEnabled, optional androidx.compose.ui.graphics.Shape drawerShape, optional float drawerElevation, optional long drawerBackgroundColor, optional long drawerContentColor, optional long drawerScrimColor, optional long backgroundColor, optional long contentColor, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void Scaffold(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.material.ScaffoldState scaffoldState, optional kotlin.jvm.functions.Function0 topBar, optional kotlin.jvm.functions.Function0 bottomBar, optional kotlin.jvm.functions.Function1 snackbarHost, optional kotlin.jvm.functions.Function0 floatingActionButton, optional int floatingActionButtonPosition, optional boolean isFloatingActionButtonDocked, optional kotlin.jvm.functions.Function1? drawerContent, optional boolean drawerGesturesEnabled, optional androidx.compose.ui.graphics.Shape drawerShape, optional float drawerElevation, optional long drawerBackgroundColor, optional long drawerContentColor, optional long drawerScrimColor, optional long backgroundColor, optional long contentColor, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static androidx.compose.material.ScaffoldState rememberScaffoldState(optional androidx.compose.material.DrawerState drawerState, optional androidx.compose.material.SnackbarHostState snackbarHostState); + } + + @androidx.compose.runtime.Stable public final class ScaffoldState { + ctor public ScaffoldState(androidx.compose.material.DrawerState drawerState, androidx.compose.material.SnackbarHostState snackbarHostState); + method public androidx.compose.material.DrawerState getDrawerState(); + method public androidx.compose.material.SnackbarHostState getSnackbarHostState(); + property public final androidx.compose.material.DrawerState drawerState; + property public final androidx.compose.material.SnackbarHostState snackbarHostState; + } + + @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public interface SelectableChipColors { + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State backgroundColor(boolean enabled, boolean selected); + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State contentColor(boolean enabled, boolean selected); + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State leadingIconColor(boolean enabled, boolean selected); + } + + @androidx.compose.runtime.Immutable public final class Shapes { + ctor public Shapes(optional androidx.compose.foundation.shape.CornerBasedShape small, optional androidx.compose.foundation.shape.CornerBasedShape medium, optional androidx.compose.foundation.shape.CornerBasedShape large); + method public androidx.compose.material.Shapes copy(optional androidx.compose.foundation.shape.CornerBasedShape small, optional androidx.compose.foundation.shape.CornerBasedShape medium, optional androidx.compose.foundation.shape.CornerBasedShape large); + method public androidx.compose.foundation.shape.CornerBasedShape getLarge(); + method public androidx.compose.foundation.shape.CornerBasedShape getMedium(); + method public androidx.compose.foundation.shape.CornerBasedShape getSmall(); + property public final androidx.compose.foundation.shape.CornerBasedShape large; + property public final androidx.compose.foundation.shape.CornerBasedShape medium; + property public final androidx.compose.foundation.shape.CornerBasedShape small; + } + + @androidx.compose.runtime.Stable public interface SliderColors { + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State thumbColor(boolean enabled); + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State tickColor(boolean enabled, boolean active); + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State trackColor(boolean enabled, boolean active); + } + + public final class SliderDefaults { + method @androidx.compose.runtime.Composable public androidx.compose.material.SliderColors colors(optional long thumbColor, optional long disabledThumbColor, optional long activeTrackColor, optional long inactiveTrackColor, optional long disabledActiveTrackColor, optional long disabledInactiveTrackColor, optional long activeTickColor, optional long inactiveTickColor, optional long disabledActiveTickColor, optional long disabledInactiveTickColor); + field public static final float DisabledActiveTrackAlpha = 0.32f; + field public static final float DisabledInactiveTrackAlpha = 0.12f; + field public static final float DisabledTickAlpha = 0.12f; + field public static final androidx.compose.material.SliderDefaults INSTANCE; + field public static final float InactiveTrackAlpha = 0.24f; + field public static final float TickAlpha = 0.54f; + } + + public final class SliderKt { + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void RangeSlider(kotlin.ranges.ClosedFloatingPointRange value, kotlin.jvm.functions.Function1,kotlin.Unit> onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.ranges.ClosedFloatingPointRange valueRange, optional @IntRange(from=0L) int steps, optional kotlin.jvm.functions.Function0? onValueChangeFinished, optional androidx.compose.material.SliderColors colors); + method @androidx.compose.runtime.Composable public static void Slider(float value, kotlin.jvm.functions.Function1 onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.ranges.ClosedFloatingPointRange valueRange, optional @IntRange(from=0L) int steps, optional kotlin.jvm.functions.Function0? onValueChangeFinished, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.material.SliderColors colors); + } + + public interface SnackbarData { + method public void dismiss(); + method public String? getActionLabel(); + method public androidx.compose.material.SnackbarDuration getDuration(); + method public String getMessage(); + method public void performAction(); + property public abstract String? actionLabel; + property public abstract androidx.compose.material.SnackbarDuration duration; + property public abstract String message; + } + + public final class SnackbarDefaults { + method @androidx.compose.runtime.Composable public long getBackgroundColor(); + method @androidx.compose.runtime.Composable public long getPrimaryActionColor(); + property @androidx.compose.runtime.Composable public final long backgroundColor; + property @androidx.compose.runtime.Composable public final long primaryActionColor; + field public static final androidx.compose.material.SnackbarDefaults INSTANCE; + } + + public enum SnackbarDuration { + enum_constant public static final androidx.compose.material.SnackbarDuration Indefinite; + enum_constant public static final androidx.compose.material.SnackbarDuration Long; + enum_constant public static final androidx.compose.material.SnackbarDuration Short; + } + + public final class SnackbarHostKt { + method @androidx.compose.runtime.Composable public static void SnackbarHost(androidx.compose.material.SnackbarHostState hostState, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1 snackbar); + } + + @androidx.compose.runtime.Stable public final class SnackbarHostState { + ctor public SnackbarHostState(); + method public androidx.compose.material.SnackbarData? getCurrentSnackbarData(); + method public suspend Object? showSnackbar(String message, optional String? actionLabel, optional androidx.compose.material.SnackbarDuration duration, kotlin.coroutines.Continuation); + property public final androidx.compose.material.SnackbarData? currentSnackbarData; + } + + public final class SnackbarKt { + method @androidx.compose.runtime.Composable public static void Snackbar(androidx.compose.material.SnackbarData snackbarData, optional androidx.compose.ui.Modifier modifier, optional boolean actionOnNewLine, optional androidx.compose.ui.graphics.Shape shape, optional long backgroundColor, optional long contentColor, optional long actionColor, optional float elevation); + method @androidx.compose.runtime.Composable public static void Snackbar(optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0? action, optional boolean actionOnNewLine, optional androidx.compose.ui.graphics.Shape shape, optional long backgroundColor, optional long contentColor, optional float elevation, kotlin.jvm.functions.Function0 content); + } + + public enum SnackbarResult { + enum_constant public static final androidx.compose.material.SnackbarResult ActionPerformed; + enum_constant public static final androidx.compose.material.SnackbarResult Dismissed; + } + + public final class SurfaceKt { + method @androidx.compose.runtime.Composable public static void Surface(optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.graphics.Shape shape, optional long color, optional long contentColor, optional androidx.compose.foundation.BorderStroke? border, optional float elevation, kotlin.jvm.functions.Function0 content); + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void Surface(boolean selected, kotlin.jvm.functions.Function0 onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional long color, optional long contentColor, optional androidx.compose.foundation.BorderStroke? border, optional float elevation, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, kotlin.jvm.functions.Function0 content); + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void Surface(boolean checked, kotlin.jvm.functions.Function1 onCheckedChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional long color, optional long contentColor, optional androidx.compose.foundation.BorderStroke? border, optional float elevation, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, kotlin.jvm.functions.Function0 content); + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void Surface(kotlin.jvm.functions.Function0 onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.ui.graphics.Shape shape, optional long color, optional long contentColor, optional androidx.compose.foundation.BorderStroke? border, optional float elevation, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, kotlin.jvm.functions.Function0 content); + } + + @Deprecated @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Immutable public final class SwipeProgress { + ctor @Deprecated public SwipeProgress(T from, T to, float fraction); + method @Deprecated public float getFraction(); + method @Deprecated public T getFrom(); + method @Deprecated public T getTo(); + property @Deprecated public final float fraction; + property @Deprecated public final T from; + property @Deprecated public final T to; + } + + public final class SwipeToDismissKt { + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void SwipeToDismiss(androidx.compose.material.DismissState state, optional androidx.compose.ui.Modifier modifier, optional java.util.Set directions, optional kotlin.jvm.functions.Function1 dismissThresholds, kotlin.jvm.functions.Function1 background, kotlin.jvm.functions.Function1 dismissContent); + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static androidx.compose.material.DismissState rememberDismissState(optional androidx.compose.material.DismissValue initialValue, optional kotlin.jvm.functions.Function1 confirmStateChange); + } + + @Deprecated public final class SwipeableDefaults { + method @Deprecated public androidx.compose.animation.core.SpringSpec getAnimationSpec(); + method @Deprecated public float getVelocityThreshold(); + method @Deprecated public androidx.compose.material.ResistanceConfig? resistanceConfig(java.util.Set anchors, optional float factorAtMin, optional float factorAtMax); + property @Deprecated public final androidx.compose.animation.core.SpringSpec AnimationSpec; + property @Deprecated public final float VelocityThreshold; + field @Deprecated public static final androidx.compose.material.SwipeableDefaults INSTANCE; + field @Deprecated public static final float StandardResistanceFactor = 10.0f; + field @Deprecated public static final float StiffResistanceFactor = 20.0f; + } + + public final class SwipeableKt { + method @Deprecated @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static androidx.compose.material.SwipeableState rememberSwipeableState(T initialValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional kotlin.jvm.functions.Function1 confirmStateChange); + method @Deprecated @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public static androidx.compose.ui.Modifier swipeable(androidx.compose.ui.Modifier, androidx.compose.material.SwipeableState state, java.util.Map anchors, androidx.compose.foundation.gestures.Orientation orientation, optional boolean enabled, optional boolean reverseDirection, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional kotlin.jvm.functions.Function2 thresholds, optional androidx.compose.material.ResistanceConfig? resistance, optional float velocityThreshold); + } + + @Deprecated @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Stable public class SwipeableState { + ctor @Deprecated public SwipeableState(T initialValue, optional androidx.compose.animation.core.AnimationSpec animationSpec, optional kotlin.jvm.functions.Function1 confirmStateChange); + method @Deprecated @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public final suspend Object? animateTo(T targetValue, optional androidx.compose.animation.core.AnimationSpec anim, kotlin.coroutines.Continuation); + method @Deprecated public final T getCurrentValue(); + method @Deprecated public final float getDirection(); + method @Deprecated public final androidx.compose.runtime.State getOffset(); + method @Deprecated public final androidx.compose.runtime.State getOverflow(); + method @Deprecated public final androidx.compose.material.SwipeProgress getProgress(); + method @Deprecated public final T getTargetValue(); + method @Deprecated public final boolean isAnimationRunning(); + method @Deprecated public final float performDrag(float delta); + method @Deprecated public final suspend Object? performFling(float velocity, kotlin.coroutines.Continuation); + method @Deprecated @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public final suspend Object? snapTo(T targetValue, kotlin.coroutines.Continuation); + property @Deprecated public final T currentValue; + property @Deprecated @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public final float direction; + property @Deprecated public final boolean isAnimationRunning; + property @Deprecated public final androidx.compose.runtime.State offset; + property @Deprecated public final androidx.compose.runtime.State overflow; + property @Deprecated @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public final androidx.compose.material.SwipeProgress progress; + property @Deprecated @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public final T targetValue; + field @Deprecated public static final androidx.compose.material.SwipeableState.Companion Companion; + } + + @Deprecated public static final class SwipeableState.Companion { + method @Deprecated public androidx.compose.runtime.saveable.Saver,T> Saver(androidx.compose.animation.core.AnimationSpec animationSpec, kotlin.jvm.functions.Function1 confirmStateChange); + } + + @androidx.compose.runtime.Stable public interface SwitchColors { + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State thumbColor(boolean enabled, boolean checked); + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State trackColor(boolean enabled, boolean checked); + } + + public final class SwitchDefaults { + method @androidx.compose.runtime.Composable public androidx.compose.material.SwitchColors colors(optional long checkedThumbColor, optional long checkedTrackColor, optional float checkedTrackAlpha, optional long uncheckedThumbColor, optional long uncheckedTrackColor, optional float uncheckedTrackAlpha, optional long disabledCheckedThumbColor, optional long disabledCheckedTrackColor, optional long disabledUncheckedThumbColor, optional long disabledUncheckedTrackColor); + field public static final androidx.compose.material.SwitchDefaults INSTANCE; + } + + public final class SwitchKt { + method @androidx.compose.runtime.Composable public static void Switch(boolean checked, kotlin.jvm.functions.Function1? onCheckedChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.material.SwitchColors colors); + } + + public final class TabKt { + method @androidx.compose.runtime.Composable public static void LeadingIconTab(boolean selected, kotlin.jvm.functions.Function0 onClick, kotlin.jvm.functions.Function0 text, kotlin.jvm.functions.Function0 icon, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional long selectedContentColor, optional long unselectedContentColor); + method @androidx.compose.runtime.Composable public static void Tab(boolean selected, kotlin.jvm.functions.Function0 onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional long selectedContentColor, optional long unselectedContentColor, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void Tab(boolean selected, kotlin.jvm.functions.Function0 onClick, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0? text, optional kotlin.jvm.functions.Function0? icon, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional long selectedContentColor, optional long unselectedContentColor); + } + + @androidx.compose.runtime.Immutable public final class TabPosition { + method public float getLeft(); + method public float getRight(); + method public float getWidth(); + property public final float left; + property public final float right; + property public final float width; + } + + public final class TabRowDefaults { + method @androidx.compose.runtime.Composable public void Divider(optional androidx.compose.ui.Modifier modifier, optional float thickness, optional long color); + method @androidx.compose.runtime.Composable public void Indicator(optional androidx.compose.ui.Modifier modifier, optional float height, optional long color); + method public float getDividerThickness(); + method public float getIndicatorHeight(); + method public float getScrollableTabRowPadding(); + method public androidx.compose.ui.Modifier tabIndicatorOffset(androidx.compose.ui.Modifier, androidx.compose.material.TabPosition currentTabPosition); + property public final float DividerThickness; + property public final float IndicatorHeight; + property public final float ScrollableTabRowPadding; + field public static final float DividerOpacity = 0.12f; + field public static final androidx.compose.material.TabRowDefaults INSTANCE; + } + + public final class TabRowKt { + method @androidx.compose.runtime.Composable @androidx.compose.ui.UiComposable public static void ScrollableTabRow(int selectedTabIndex, optional androidx.compose.ui.Modifier modifier, optional long backgroundColor, optional long contentColor, optional float edgePadding, optional kotlin.jvm.functions.Function1,kotlin.Unit> indicator, optional kotlin.jvm.functions.Function0 divider, kotlin.jvm.functions.Function0 tabs); + method @androidx.compose.runtime.Composable @androidx.compose.ui.UiComposable public static void TabRow(int selectedTabIndex, optional androidx.compose.ui.Modifier modifier, optional long backgroundColor, optional long contentColor, optional kotlin.jvm.functions.Function1,kotlin.Unit> indicator, optional kotlin.jvm.functions.Function0 divider, kotlin.jvm.functions.Function0 tabs); + } + + @androidx.compose.runtime.Stable public interface TextFieldColors { + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State backgroundColor(boolean enabled); + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State cursorColor(boolean isError); + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State indicatorColor(boolean enabled, boolean isError, androidx.compose.foundation.interaction.InteractionSource interactionSource); + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State labelColor(boolean enabled, boolean error, androidx.compose.foundation.interaction.InteractionSource interactionSource); + method @Deprecated @androidx.compose.runtime.Composable public androidx.compose.runtime.State leadingIconColor(boolean enabled, boolean isError); + method @androidx.compose.runtime.Composable public default androidx.compose.runtime.State leadingIconColor(boolean enabled, boolean isError, androidx.compose.foundation.interaction.InteractionSource interactionSource); + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State placeholderColor(boolean enabled); + method @androidx.compose.runtime.Composable public androidx.compose.runtime.State textColor(boolean enabled); + method @Deprecated @androidx.compose.runtime.Composable public androidx.compose.runtime.State trailingIconColor(boolean enabled, boolean isError); + method @androidx.compose.runtime.Composable public default androidx.compose.runtime.State trailingIconColor(boolean enabled, boolean isError, androidx.compose.foundation.interaction.InteractionSource interactionSource); + } + + @Deprecated @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public interface TextFieldColorsWithIcons extends androidx.compose.material.TextFieldColors { + } + + @androidx.compose.runtime.Immutable public final class TextFieldDefaults { + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public void BorderBox(boolean enabled, boolean isError, androidx.compose.foundation.interaction.InteractionSource interactionSource, androidx.compose.material.TextFieldColors colors, optional androidx.compose.ui.graphics.Shape shape, optional float focusedBorderThickness, optional float unfocusedBorderThickness); + method @Deprecated @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public void OutlinedTextFieldDecorationBox(String value, kotlin.jvm.functions.Function0 innerTextField, boolean enabled, boolean singleLine, androidx.compose.ui.text.input.VisualTransformation visualTransformation, androidx.compose.foundation.interaction.InteractionSource interactionSource, optional boolean isError, optional kotlin.jvm.functions.Function0? label, optional kotlin.jvm.functions.Function0? placeholder, optional kotlin.jvm.functions.Function0? leadingIcon, optional kotlin.jvm.functions.Function0? trailingIcon, optional androidx.compose.material.TextFieldColors colors, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional kotlin.jvm.functions.Function0 border); + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public void OutlinedTextFieldDecorationBox(String value, kotlin.jvm.functions.Function0 innerTextField, boolean enabled, boolean singleLine, androidx.compose.ui.text.input.VisualTransformation visualTransformation, androidx.compose.foundation.interaction.InteractionSource interactionSource, optional boolean isError, optional kotlin.jvm.functions.Function0? label, optional kotlin.jvm.functions.Function0? placeholder, optional kotlin.jvm.functions.Function0? leadingIcon, optional kotlin.jvm.functions.Function0? trailingIcon, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material.TextFieldColors colors, optional androidx.compose.foundation.layout.PaddingValues contentPadding, optional kotlin.jvm.functions.Function0 border); + method @Deprecated @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public void TextFieldDecorationBox(String value, kotlin.jvm.functions.Function0 innerTextField, boolean enabled, boolean singleLine, androidx.compose.ui.text.input.VisualTransformation visualTransformation, androidx.compose.foundation.interaction.InteractionSource interactionSource, optional boolean isError, optional kotlin.jvm.functions.Function0? label, optional kotlin.jvm.functions.Function0? placeholder, optional kotlin.jvm.functions.Function0? leadingIcon, optional kotlin.jvm.functions.Function0? trailingIcon, optional androidx.compose.material.TextFieldColors colors, optional androidx.compose.foundation.layout.PaddingValues contentPadding); + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public void TextFieldDecorationBox(String value, kotlin.jvm.functions.Function0 innerTextField, boolean enabled, boolean singleLine, androidx.compose.ui.text.input.VisualTransformation visualTransformation, androidx.compose.foundation.interaction.InteractionSource interactionSource, optional boolean isError, optional kotlin.jvm.functions.Function0? label, optional kotlin.jvm.functions.Function0? placeholder, optional kotlin.jvm.functions.Function0? leadingIcon, optional kotlin.jvm.functions.Function0? trailingIcon, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material.TextFieldColors colors, optional androidx.compose.foundation.layout.PaddingValues contentPadding); + method public float getFocusedBorderThickness(); + method public float getMinHeight(); + method public float getMinWidth(); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public androidx.compose.ui.graphics.Shape getOutlinedTextFieldShape(); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public androidx.compose.ui.graphics.Shape getTextFieldShape(); + method public float getUnfocusedBorderThickness(); + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public androidx.compose.ui.Modifier indicatorLine(androidx.compose.ui.Modifier, boolean enabled, boolean isError, androidx.compose.foundation.interaction.InteractionSource interactionSource, androidx.compose.material.TextFieldColors colors, optional float focusedIndicatorLineThickness, optional float unfocusedIndicatorLineThickness); + method @androidx.compose.runtime.Composable public androidx.compose.material.TextFieldColors outlinedTextFieldColors(optional long textColor, optional long disabledTextColor, optional long backgroundColor, optional long cursorColor, optional long errorCursorColor, optional long focusedBorderColor, optional long unfocusedBorderColor, optional long disabledBorderColor, optional long errorBorderColor, optional long leadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long trailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long placeholderColor, optional long disabledPlaceholderColor); + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public androidx.compose.foundation.layout.PaddingValues outlinedTextFieldPadding(optional float start, optional float top, optional float end, optional float bottom); + method @androidx.compose.runtime.Composable public androidx.compose.material.TextFieldColors textFieldColors(optional long textColor, optional long disabledTextColor, optional long backgroundColor, optional long cursorColor, optional long errorCursorColor, optional long focusedIndicatorColor, optional long unfocusedIndicatorColor, optional long disabledIndicatorColor, optional long errorIndicatorColor, optional long leadingIconColor, optional long disabledLeadingIconColor, optional long errorLeadingIconColor, optional long trailingIconColor, optional long disabledTrailingIconColor, optional long errorTrailingIconColor, optional long focusedLabelColor, optional long unfocusedLabelColor, optional long disabledLabelColor, optional long errorLabelColor, optional long placeholderColor, optional long disabledPlaceholderColor); + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public androidx.compose.foundation.layout.PaddingValues textFieldWithLabelPadding(optional float start, optional float end, optional float top, optional float bottom); + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public androidx.compose.foundation.layout.PaddingValues textFieldWithoutLabelPadding(optional float start, optional float top, optional float end, optional float bottom); + property public final float FocusedBorderThickness; + property public final float MinHeight; + property public final float MinWidth; + property @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public final androidx.compose.ui.graphics.Shape OutlinedTextFieldShape; + property @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public final androidx.compose.ui.graphics.Shape TextFieldShape; + property public final float UnfocusedBorderThickness; + field public static final float BackgroundOpacity = 0.12f; + field public static final androidx.compose.material.TextFieldDefaults INSTANCE; + field public static final float IconOpacity = 0.54f; + field public static final float UnfocusedIndicatorLineOpacity = 0.42f; + } + + public final class TextFieldKt { + method @Deprecated @androidx.compose.runtime.Composable public static void TextField(androidx.compose.ui.text.input.TextFieldValue value, kotlin.jvm.functions.Function1 onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0? label, optional kotlin.jvm.functions.Function0? placeholder, optional kotlin.jvm.functions.Function0? leadingIcon, optional kotlin.jvm.functions.Function0? trailingIcon, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material.TextFieldColors colors); + method @androidx.compose.runtime.Composable public static void TextField(androidx.compose.ui.text.input.TextFieldValue value, kotlin.jvm.functions.Function1 onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0? label, optional kotlin.jvm.functions.Function0? placeholder, optional kotlin.jvm.functions.Function0? leadingIcon, optional kotlin.jvm.functions.Function0? trailingIcon, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional int minLines, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material.TextFieldColors colors); + method @Deprecated @androidx.compose.runtime.Composable public static void TextField(String value, kotlin.jvm.functions.Function1 onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0? label, optional kotlin.jvm.functions.Function0? placeholder, optional kotlin.jvm.functions.Function0? leadingIcon, optional kotlin.jvm.functions.Function0? trailingIcon, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material.TextFieldColors colors); + method @androidx.compose.runtime.Composable public static void TextField(String value, kotlin.jvm.functions.Function1 onValueChange, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional boolean readOnly, optional androidx.compose.ui.text.TextStyle textStyle, optional kotlin.jvm.functions.Function0? label, optional kotlin.jvm.functions.Function0? placeholder, optional kotlin.jvm.functions.Function0? leadingIcon, optional kotlin.jvm.functions.Function0? trailingIcon, optional boolean isError, optional androidx.compose.ui.text.input.VisualTransformation visualTransformation, optional androidx.compose.foundation.text.KeyboardOptions keyboardOptions, optional androidx.compose.foundation.text.KeyboardActions keyboardActions, optional boolean singleLine, optional int maxLines, optional int minLines, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource, optional androidx.compose.ui.graphics.Shape shape, optional androidx.compose.material.TextFieldColors colors); + } + + public final class TextKt { + method @androidx.compose.runtime.Composable public static void ProvideTextStyle(androidx.compose.ui.text.TextStyle value, kotlin.jvm.functions.Function0 content); + method @androidx.compose.runtime.Composable public static void Text(androidx.compose.ui.text.AnnotatedString text, optional androidx.compose.ui.Modifier modifier, optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional long letterSpacing, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional long lineHeight, optional int overflow, optional boolean softWrap, optional int maxLines, optional int minLines, optional java.util.Map inlineContent, optional kotlin.jvm.functions.Function1 onTextLayout, optional androidx.compose.ui.text.TextStyle style); + method @Deprecated @androidx.compose.runtime.Composable public static void Text(androidx.compose.ui.text.AnnotatedString text, optional androidx.compose.ui.Modifier modifier, optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional long letterSpacing, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional long lineHeight, optional int overflow, optional boolean softWrap, optional int maxLines, optional java.util.Map inlineContent, optional kotlin.jvm.functions.Function1 onTextLayout, optional androidx.compose.ui.text.TextStyle style); + method @androidx.compose.runtime.Composable public static void Text(String text, optional androidx.compose.ui.Modifier modifier, optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional long letterSpacing, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional long lineHeight, optional int overflow, optional boolean softWrap, optional int maxLines, optional int minLines, optional kotlin.jvm.functions.Function1? onTextLayout, optional androidx.compose.ui.text.TextStyle style); + method @Deprecated @androidx.compose.runtime.Composable public static void Text(String text, optional androidx.compose.ui.Modifier modifier, optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional long letterSpacing, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional long lineHeight, optional int overflow, optional boolean softWrap, optional int maxLines, optional kotlin.jvm.functions.Function1 onTextLayout, optional androidx.compose.ui.text.TextStyle style); + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalTextStyle(); + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalTextStyle; + } + + @Deprecated @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Stable public interface ThresholdConfig { + method @Deprecated public float computeThreshold(androidx.compose.ui.unit.Density, float fromValue, float toValue); + } + + @androidx.compose.runtime.Immutable public final class Typography { + ctor public Typography(optional androidx.compose.ui.text.font.FontFamily defaultFontFamily, optional androidx.compose.ui.text.TextStyle h1, optional androidx.compose.ui.text.TextStyle h2, optional androidx.compose.ui.text.TextStyle h3, optional androidx.compose.ui.text.TextStyle h4, optional androidx.compose.ui.text.TextStyle h5, optional androidx.compose.ui.text.TextStyle h6, optional androidx.compose.ui.text.TextStyle subtitle1, optional androidx.compose.ui.text.TextStyle subtitle2, optional androidx.compose.ui.text.TextStyle body1, optional androidx.compose.ui.text.TextStyle body2, optional androidx.compose.ui.text.TextStyle button, optional androidx.compose.ui.text.TextStyle caption, optional androidx.compose.ui.text.TextStyle overline); + method public androidx.compose.material.Typography copy(optional androidx.compose.ui.text.TextStyle h1, optional androidx.compose.ui.text.TextStyle h2, optional androidx.compose.ui.text.TextStyle h3, optional androidx.compose.ui.text.TextStyle h4, optional androidx.compose.ui.text.TextStyle h5, optional androidx.compose.ui.text.TextStyle h6, optional androidx.compose.ui.text.TextStyle subtitle1, optional androidx.compose.ui.text.TextStyle subtitle2, optional androidx.compose.ui.text.TextStyle body1, optional androidx.compose.ui.text.TextStyle body2, optional androidx.compose.ui.text.TextStyle button, optional androidx.compose.ui.text.TextStyle caption, optional androidx.compose.ui.text.TextStyle overline); + method public androidx.compose.ui.text.TextStyle getBody1(); + method public androidx.compose.ui.text.TextStyle getBody2(); + method public androidx.compose.ui.text.TextStyle getButton(); + method public androidx.compose.ui.text.TextStyle getCaption(); + method public androidx.compose.ui.text.TextStyle getH1(); + method public androidx.compose.ui.text.TextStyle getH2(); + method public androidx.compose.ui.text.TextStyle getH3(); + method public androidx.compose.ui.text.TextStyle getH4(); + method public androidx.compose.ui.text.TextStyle getH5(); + method public androidx.compose.ui.text.TextStyle getH6(); + method public androidx.compose.ui.text.TextStyle getOverline(); + method public androidx.compose.ui.text.TextStyle getSubtitle1(); + method public androidx.compose.ui.text.TextStyle getSubtitle2(); + property public final androidx.compose.ui.text.TextStyle body1; + property public final androidx.compose.ui.text.TextStyle body2; + property public final androidx.compose.ui.text.TextStyle button; + property public final androidx.compose.ui.text.TextStyle caption; + property public final androidx.compose.ui.text.TextStyle h1; + property public final androidx.compose.ui.text.TextStyle h2; + property public final androidx.compose.ui.text.TextStyle h3; + property public final androidx.compose.ui.text.TextStyle h4; + property public final androidx.compose.ui.text.TextStyle h5; + property public final androidx.compose.ui.text.TextStyle h6; + property public final androidx.compose.ui.text.TextStyle overline; + property public final androidx.compose.ui.text.TextStyle subtitle1; + property public final androidx.compose.ui.text.TextStyle subtitle2; + } + +} + +package androidx.compose.material.pullrefresh { + + @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public final class PullRefreshDefaults { + method public float getRefreshThreshold(); + method public float getRefreshingOffset(); + property public final float RefreshThreshold; + property public final float RefreshingOffset; + field public static final androidx.compose.material.pullrefresh.PullRefreshDefaults INSTANCE; + } + + public final class PullRefreshIndicatorKt { + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static void PullRefreshIndicator(boolean refreshing, androidx.compose.material.pullrefresh.PullRefreshState state, optional androidx.compose.ui.Modifier modifier, optional long backgroundColor, optional long contentColor, optional boolean scale); + } + + public final class PullRefreshIndicatorTransformKt { + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public static androidx.compose.ui.Modifier pullRefreshIndicatorTransform(androidx.compose.ui.Modifier, androidx.compose.material.pullrefresh.PullRefreshState state, optional boolean scale); + } + + public final class PullRefreshKt { + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public static androidx.compose.ui.Modifier pullRefresh(androidx.compose.ui.Modifier, androidx.compose.material.pullrefresh.PullRefreshState state, optional boolean enabled); + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public static androidx.compose.ui.Modifier pullRefresh(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 onPull, kotlin.jvm.functions.Function2,? extends java.lang.Object?> onRelease, optional boolean enabled); + } + + @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi public final class PullRefreshState { + method public float getProgress(); + property public final float progress; + } + + public final class PullRefreshStateKt { + method @SuppressCompatibility @androidx.compose.material.ExperimentalMaterialApi @androidx.compose.runtime.Composable public static androidx.compose.material.pullrefresh.PullRefreshState rememberPullRefreshState(boolean refreshing, kotlin.jvm.functions.Function0 onRefresh, optional float refreshThreshold, optional float refreshingOffset); + } + +} + diff --git a/compose/material3/adaptive/adaptive-layout/src/commonMain/kotlin/androidx/compose/material3/adaptive/layout/ThreePaneScaffold.kt b/compose/material3/adaptive/adaptive-layout/src/commonMain/kotlin/androidx/compose/material3/adaptive/layout/ThreePaneScaffold.kt index 3a88901ce0445..0ed8d911c3209 100644 --- a/compose/material3/adaptive/adaptive-layout/src/commonMain/kotlin/androidx/compose/material3/adaptive/layout/ThreePaneScaffold.kt +++ b/compose/material3/adaptive/adaptive-layout/src/commonMain/kotlin/androidx/compose/material3/adaptive/layout/ThreePaneScaffold.kt @@ -438,7 +438,7 @@ private class ThreePaneContentMeasurePolicy( layoutPhysicalPartitions.add( Rect(actualLeft, actualTop, hingeBound.left, actualBottom) ) - actualLeft += max(hingeBound.right, hingeBound.left + verticalSpacerSize) + actualLeft = max(hingeBound.right, hingeBound.left + verticalSpacerSize) } } if (actualLeft < actualRight) { diff --git a/compose/material3/material3-adaptive-navigation-suite/api/1.3.0-beta04.txt b/compose/material3/material3-adaptive-navigation-suite/api/1.3.0-beta04.txt new file mode 100644 index 0000000000000..83d23c0fd75c7 --- /dev/null +++ b/compose/material3/material3-adaptive-navigation-suite/api/1.3.0-beta04.txt @@ -0,0 +1,73 @@ +// Signature format: 4.0 +package androidx.compose.material3.adaptive.navigationsuite { + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This material3-adaptive-navigation-suite API is experimental and is likely to" + "change or to be removed in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalMaterial3AdaptiveNavigationSuiteApi { + } + + public final class NavigationSuiteColors { + method public long getNavigationBarContainerColor(); + method public long getNavigationBarContentColor(); + method public long getNavigationDrawerContainerColor(); + method public long getNavigationDrawerContentColor(); + method public long getNavigationRailContainerColor(); + method public long getNavigationRailContentColor(); + property public final long navigationBarContainerColor; + property public final long navigationBarContentColor; + property public final long navigationDrawerContainerColor; + property public final long navigationDrawerContentColor; + property public final long navigationRailContainerColor; + property public final long navigationRailContentColor; + } + + public final class NavigationSuiteDefaults { + method @androidx.compose.runtime.Composable public androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteColors colors(optional long navigationBarContainerColor, optional long navigationBarContentColor, optional long navigationRailContainerColor, optional long navigationRailContentColor, optional long navigationDrawerContainerColor, optional long navigationDrawerContentColor); + method @androidx.compose.runtime.Composable public androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteItemColors itemColors(optional androidx.compose.material3.NavigationBarItemColors navigationBarItemColors, optional androidx.compose.material3.NavigationRailItemColors navigationRailItemColors, optional androidx.compose.material3.NavigationDrawerItemColors navigationDrawerItemColors); + field public static final androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteDefaults INSTANCE; + } + + public final class NavigationSuiteItemColors { + ctor public NavigationSuiteItemColors(androidx.compose.material3.NavigationBarItemColors navigationBarItemColors, androidx.compose.material3.NavigationRailItemColors navigationRailItemColors, androidx.compose.material3.NavigationDrawerItemColors navigationDrawerItemColors); + method public androidx.compose.material3.NavigationBarItemColors getNavigationBarItemColors(); + method public androidx.compose.material3.NavigationDrawerItemColors getNavigationDrawerItemColors(); + method public androidx.compose.material3.NavigationRailItemColors getNavigationRailItemColors(); + property public final androidx.compose.material3.NavigationBarItemColors navigationBarItemColors; + property public final androidx.compose.material3.NavigationDrawerItemColors navigationDrawerItemColors; + property public final androidx.compose.material3.NavigationRailItemColors navigationRailItemColors; + } + + public final class NavigationSuiteScaffoldDefaults { + method public String calculateFromAdaptiveInfo(androidx.compose.material3.adaptive.WindowAdaptiveInfo adaptiveInfo); + method @androidx.compose.runtime.Composable public long getContainerColor(); + method @androidx.compose.runtime.Composable public long getContentColor(); + property @androidx.compose.runtime.Composable public final long containerColor; + property @androidx.compose.runtime.Composable public final long contentColor; + field public static final androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteScaffoldDefaults INSTANCE; + } + + public final class NavigationSuiteScaffoldKt { + method @androidx.compose.runtime.Composable public static void NavigationSuite(optional androidx.compose.ui.Modifier modifier, optional String layoutType, optional androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteColors colors, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void NavigationSuiteScaffold(kotlin.jvm.functions.Function1 navigationSuiteItems, optional androidx.compose.ui.Modifier modifier, optional String layoutType, optional androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteColors navigationSuiteColors, optional long containerColor, optional long contentColor, optional kotlin.jvm.functions.Function0 content); + method @androidx.compose.runtime.Composable public static void NavigationSuiteScaffoldLayout(kotlin.jvm.functions.Function0 navigationSuite, optional String layoutType, optional kotlin.jvm.functions.Function0 content); + } + + public sealed interface NavigationSuiteScope { + method public void item(boolean selected, kotlin.jvm.functions.Function0 onClick, kotlin.jvm.functions.Function0 icon, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0? label, optional boolean alwaysShowLabel, optional kotlin.jvm.functions.Function0? badge, optional androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteItemColors? colors, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource); + } + + @kotlin.jvm.JvmInline public final value class NavigationSuiteType { + field public static final androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteType.Companion Companion; + } + + public static final class NavigationSuiteType.Companion { + method public String getNavigationBar(); + method public String getNavigationDrawer(); + method public String getNavigationRail(); + method public String getNone(); + property public final String NavigationBar; + property public final String NavigationDrawer; + property public final String NavigationRail; + property public final String None; + } + +} + diff --git a/compose/material3/material3-adaptive-navigation-suite/api/1.3.0-beta05.txt b/compose/material3/material3-adaptive-navigation-suite/api/1.3.0-beta05.txt new file mode 100644 index 0000000000000..83d23c0fd75c7 --- /dev/null +++ b/compose/material3/material3-adaptive-navigation-suite/api/1.3.0-beta05.txt @@ -0,0 +1,73 @@ +// Signature format: 4.0 +package androidx.compose.material3.adaptive.navigationsuite { + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This material3-adaptive-navigation-suite API is experimental and is likely to" + "change or to be removed in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalMaterial3AdaptiveNavigationSuiteApi { + } + + public final class NavigationSuiteColors { + method public long getNavigationBarContainerColor(); + method public long getNavigationBarContentColor(); + method public long getNavigationDrawerContainerColor(); + method public long getNavigationDrawerContentColor(); + method public long getNavigationRailContainerColor(); + method public long getNavigationRailContentColor(); + property public final long navigationBarContainerColor; + property public final long navigationBarContentColor; + property public final long navigationDrawerContainerColor; + property public final long navigationDrawerContentColor; + property public final long navigationRailContainerColor; + property public final long navigationRailContentColor; + } + + public final class NavigationSuiteDefaults { + method @androidx.compose.runtime.Composable public androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteColors colors(optional long navigationBarContainerColor, optional long navigationBarContentColor, optional long navigationRailContainerColor, optional long navigationRailContentColor, optional long navigationDrawerContainerColor, optional long navigationDrawerContentColor); + method @androidx.compose.runtime.Composable public androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteItemColors itemColors(optional androidx.compose.material3.NavigationBarItemColors navigationBarItemColors, optional androidx.compose.material3.NavigationRailItemColors navigationRailItemColors, optional androidx.compose.material3.NavigationDrawerItemColors navigationDrawerItemColors); + field public static final androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteDefaults INSTANCE; + } + + public final class NavigationSuiteItemColors { + ctor public NavigationSuiteItemColors(androidx.compose.material3.NavigationBarItemColors navigationBarItemColors, androidx.compose.material3.NavigationRailItemColors navigationRailItemColors, androidx.compose.material3.NavigationDrawerItemColors navigationDrawerItemColors); + method public androidx.compose.material3.NavigationBarItemColors getNavigationBarItemColors(); + method public androidx.compose.material3.NavigationDrawerItemColors getNavigationDrawerItemColors(); + method public androidx.compose.material3.NavigationRailItemColors getNavigationRailItemColors(); + property public final androidx.compose.material3.NavigationBarItemColors navigationBarItemColors; + property public final androidx.compose.material3.NavigationDrawerItemColors navigationDrawerItemColors; + property public final androidx.compose.material3.NavigationRailItemColors navigationRailItemColors; + } + + public final class NavigationSuiteScaffoldDefaults { + method public String calculateFromAdaptiveInfo(androidx.compose.material3.adaptive.WindowAdaptiveInfo adaptiveInfo); + method @androidx.compose.runtime.Composable public long getContainerColor(); + method @androidx.compose.runtime.Composable public long getContentColor(); + property @androidx.compose.runtime.Composable public final long containerColor; + property @androidx.compose.runtime.Composable public final long contentColor; + field public static final androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteScaffoldDefaults INSTANCE; + } + + public final class NavigationSuiteScaffoldKt { + method @androidx.compose.runtime.Composable public static void NavigationSuite(optional androidx.compose.ui.Modifier modifier, optional String layoutType, optional androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteColors colors, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void NavigationSuiteScaffold(kotlin.jvm.functions.Function1 navigationSuiteItems, optional androidx.compose.ui.Modifier modifier, optional String layoutType, optional androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteColors navigationSuiteColors, optional long containerColor, optional long contentColor, optional kotlin.jvm.functions.Function0 content); + method @androidx.compose.runtime.Composable public static void NavigationSuiteScaffoldLayout(kotlin.jvm.functions.Function0 navigationSuite, optional String layoutType, optional kotlin.jvm.functions.Function0 content); + } + + public sealed interface NavigationSuiteScope { + method public void item(boolean selected, kotlin.jvm.functions.Function0 onClick, kotlin.jvm.functions.Function0 icon, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0? label, optional boolean alwaysShowLabel, optional kotlin.jvm.functions.Function0? badge, optional androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteItemColors? colors, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource); + } + + @kotlin.jvm.JvmInline public final value class NavigationSuiteType { + field public static final androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteType.Companion Companion; + } + + public static final class NavigationSuiteType.Companion { + method public String getNavigationBar(); + method public String getNavigationDrawer(); + method public String getNavigationRail(); + method public String getNone(); + property public final String NavigationBar; + property public final String NavigationDrawer; + property public final String NavigationRail; + property public final String None; + } + +} + diff --git a/compose/material3/material3-adaptive-navigation-suite/api/res-1.3.0-beta04.txt b/compose/material3/material3-adaptive-navigation-suite/api/res-1.3.0-beta04.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/compose/material3/material3-adaptive-navigation-suite/api/res-1.3.0-beta05.txt b/compose/material3/material3-adaptive-navigation-suite/api/res-1.3.0-beta05.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/compose/material3/material3-adaptive-navigation-suite/api/restricted_1.3.0-beta04.txt b/compose/material3/material3-adaptive-navigation-suite/api/restricted_1.3.0-beta04.txt new file mode 100644 index 0000000000000..83d23c0fd75c7 --- /dev/null +++ b/compose/material3/material3-adaptive-navigation-suite/api/restricted_1.3.0-beta04.txt @@ -0,0 +1,73 @@ +// Signature format: 4.0 +package androidx.compose.material3.adaptive.navigationsuite { + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This material3-adaptive-navigation-suite API is experimental and is likely to" + "change or to be removed in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalMaterial3AdaptiveNavigationSuiteApi { + } + + public final class NavigationSuiteColors { + method public long getNavigationBarContainerColor(); + method public long getNavigationBarContentColor(); + method public long getNavigationDrawerContainerColor(); + method public long getNavigationDrawerContentColor(); + method public long getNavigationRailContainerColor(); + method public long getNavigationRailContentColor(); + property public final long navigationBarContainerColor; + property public final long navigationBarContentColor; + property public final long navigationDrawerContainerColor; + property public final long navigationDrawerContentColor; + property public final long navigationRailContainerColor; + property public final long navigationRailContentColor; + } + + public final class NavigationSuiteDefaults { + method @androidx.compose.runtime.Composable public androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteColors colors(optional long navigationBarContainerColor, optional long navigationBarContentColor, optional long navigationRailContainerColor, optional long navigationRailContentColor, optional long navigationDrawerContainerColor, optional long navigationDrawerContentColor); + method @androidx.compose.runtime.Composable public androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteItemColors itemColors(optional androidx.compose.material3.NavigationBarItemColors navigationBarItemColors, optional androidx.compose.material3.NavigationRailItemColors navigationRailItemColors, optional androidx.compose.material3.NavigationDrawerItemColors navigationDrawerItemColors); + field public static final androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteDefaults INSTANCE; + } + + public final class NavigationSuiteItemColors { + ctor public NavigationSuiteItemColors(androidx.compose.material3.NavigationBarItemColors navigationBarItemColors, androidx.compose.material3.NavigationRailItemColors navigationRailItemColors, androidx.compose.material3.NavigationDrawerItemColors navigationDrawerItemColors); + method public androidx.compose.material3.NavigationBarItemColors getNavigationBarItemColors(); + method public androidx.compose.material3.NavigationDrawerItemColors getNavigationDrawerItemColors(); + method public androidx.compose.material3.NavigationRailItemColors getNavigationRailItemColors(); + property public final androidx.compose.material3.NavigationBarItemColors navigationBarItemColors; + property public final androidx.compose.material3.NavigationDrawerItemColors navigationDrawerItemColors; + property public final androidx.compose.material3.NavigationRailItemColors navigationRailItemColors; + } + + public final class NavigationSuiteScaffoldDefaults { + method public String calculateFromAdaptiveInfo(androidx.compose.material3.adaptive.WindowAdaptiveInfo adaptiveInfo); + method @androidx.compose.runtime.Composable public long getContainerColor(); + method @androidx.compose.runtime.Composable public long getContentColor(); + property @androidx.compose.runtime.Composable public final long containerColor; + property @androidx.compose.runtime.Composable public final long contentColor; + field public static final androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteScaffoldDefaults INSTANCE; + } + + public final class NavigationSuiteScaffoldKt { + method @androidx.compose.runtime.Composable public static void NavigationSuite(optional androidx.compose.ui.Modifier modifier, optional String layoutType, optional androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteColors colors, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void NavigationSuiteScaffold(kotlin.jvm.functions.Function1 navigationSuiteItems, optional androidx.compose.ui.Modifier modifier, optional String layoutType, optional androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteColors navigationSuiteColors, optional long containerColor, optional long contentColor, optional kotlin.jvm.functions.Function0 content); + method @androidx.compose.runtime.Composable public static void NavigationSuiteScaffoldLayout(kotlin.jvm.functions.Function0 navigationSuite, optional String layoutType, optional kotlin.jvm.functions.Function0 content); + } + + public sealed interface NavigationSuiteScope { + method public void item(boolean selected, kotlin.jvm.functions.Function0 onClick, kotlin.jvm.functions.Function0 icon, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0? label, optional boolean alwaysShowLabel, optional kotlin.jvm.functions.Function0? badge, optional androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteItemColors? colors, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource); + } + + @kotlin.jvm.JvmInline public final value class NavigationSuiteType { + field public static final androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteType.Companion Companion; + } + + public static final class NavigationSuiteType.Companion { + method public String getNavigationBar(); + method public String getNavigationDrawer(); + method public String getNavigationRail(); + method public String getNone(); + property public final String NavigationBar; + property public final String NavigationDrawer; + property public final String NavigationRail; + property public final String None; + } + +} + diff --git a/compose/material3/material3-adaptive-navigation-suite/api/restricted_1.3.0-beta05.txt b/compose/material3/material3-adaptive-navigation-suite/api/restricted_1.3.0-beta05.txt new file mode 100644 index 0000000000000..83d23c0fd75c7 --- /dev/null +++ b/compose/material3/material3-adaptive-navigation-suite/api/restricted_1.3.0-beta05.txt @@ -0,0 +1,73 @@ +// Signature format: 4.0 +package androidx.compose.material3.adaptive.navigationsuite { + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This material3-adaptive-navigation-suite API is experimental and is likely to" + "change or to be removed in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalMaterial3AdaptiveNavigationSuiteApi { + } + + public final class NavigationSuiteColors { + method public long getNavigationBarContainerColor(); + method public long getNavigationBarContentColor(); + method public long getNavigationDrawerContainerColor(); + method public long getNavigationDrawerContentColor(); + method public long getNavigationRailContainerColor(); + method public long getNavigationRailContentColor(); + property public final long navigationBarContainerColor; + property public final long navigationBarContentColor; + property public final long navigationDrawerContainerColor; + property public final long navigationDrawerContentColor; + property public final long navigationRailContainerColor; + property public final long navigationRailContentColor; + } + + public final class NavigationSuiteDefaults { + method @androidx.compose.runtime.Composable public androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteColors colors(optional long navigationBarContainerColor, optional long navigationBarContentColor, optional long navigationRailContainerColor, optional long navigationRailContentColor, optional long navigationDrawerContainerColor, optional long navigationDrawerContentColor); + method @androidx.compose.runtime.Composable public androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteItemColors itemColors(optional androidx.compose.material3.NavigationBarItemColors navigationBarItemColors, optional androidx.compose.material3.NavigationRailItemColors navigationRailItemColors, optional androidx.compose.material3.NavigationDrawerItemColors navigationDrawerItemColors); + field public static final androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteDefaults INSTANCE; + } + + public final class NavigationSuiteItemColors { + ctor public NavigationSuiteItemColors(androidx.compose.material3.NavigationBarItemColors navigationBarItemColors, androidx.compose.material3.NavigationRailItemColors navigationRailItemColors, androidx.compose.material3.NavigationDrawerItemColors navigationDrawerItemColors); + method public androidx.compose.material3.NavigationBarItemColors getNavigationBarItemColors(); + method public androidx.compose.material3.NavigationDrawerItemColors getNavigationDrawerItemColors(); + method public androidx.compose.material3.NavigationRailItemColors getNavigationRailItemColors(); + property public final androidx.compose.material3.NavigationBarItemColors navigationBarItemColors; + property public final androidx.compose.material3.NavigationDrawerItemColors navigationDrawerItemColors; + property public final androidx.compose.material3.NavigationRailItemColors navigationRailItemColors; + } + + public final class NavigationSuiteScaffoldDefaults { + method public String calculateFromAdaptiveInfo(androidx.compose.material3.adaptive.WindowAdaptiveInfo adaptiveInfo); + method @androidx.compose.runtime.Composable public long getContainerColor(); + method @androidx.compose.runtime.Composable public long getContentColor(); + property @androidx.compose.runtime.Composable public final long containerColor; + property @androidx.compose.runtime.Composable public final long contentColor; + field public static final androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteScaffoldDefaults INSTANCE; + } + + public final class NavigationSuiteScaffoldKt { + method @androidx.compose.runtime.Composable public static void NavigationSuite(optional androidx.compose.ui.Modifier modifier, optional String layoutType, optional androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteColors colors, kotlin.jvm.functions.Function1 content); + method @androidx.compose.runtime.Composable public static void NavigationSuiteScaffold(kotlin.jvm.functions.Function1 navigationSuiteItems, optional androidx.compose.ui.Modifier modifier, optional String layoutType, optional androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteColors navigationSuiteColors, optional long containerColor, optional long contentColor, optional kotlin.jvm.functions.Function0 content); + method @androidx.compose.runtime.Composable public static void NavigationSuiteScaffoldLayout(kotlin.jvm.functions.Function0 navigationSuite, optional String layoutType, optional kotlin.jvm.functions.Function0 content); + } + + public sealed interface NavigationSuiteScope { + method public void item(boolean selected, kotlin.jvm.functions.Function0 onClick, kotlin.jvm.functions.Function0 icon, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0? label, optional boolean alwaysShowLabel, optional kotlin.jvm.functions.Function0? badge, optional androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteItemColors? colors, optional androidx.compose.foundation.interaction.MutableInteractionSource? interactionSource); + } + + @kotlin.jvm.JvmInline public final value class NavigationSuiteType { + field public static final androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteType.Companion Companion; + } + + public static final class NavigationSuiteType.Companion { + method public String getNavigationBar(); + method public String getNavigationDrawer(); + method public String getNavigationRail(); + method public String getNone(); + property public final String NavigationBar; + property public final String NavigationDrawer; + property public final String NavigationRail; + property public final String None; + } + +} + diff --git a/compose/material3/material3/src/androidInstrumentedTest/kotlin/androidx/compose/material3/ModalBottomSheetTest.kt b/compose/material3/material3/src/androidInstrumentedTest/kotlin/androidx/compose/material3/ModalBottomSheetTest.kt index 5a06bfd748b68..6b803a5c26dd9 100644 --- a/compose/material3/material3/src/androidInstrumentedTest/kotlin/androidx/compose/material3/ModalBottomSheetTest.kt +++ b/compose/material3/material3/src/androidInstrumentedTest/kotlin/androidx/compose/material3/ModalBottomSheetTest.kt @@ -19,7 +19,10 @@ package androidx.compose.material3 import android.content.ComponentCallbacks2 import android.content.pm.ActivityInfo import android.content.res.Configuration +import android.os.Build import android.os.Build.VERSION.SDK_INT +import android.os.Bundle +import android.view.View import androidx.activity.ComponentActivity import androidx.activity.compose.LocalOnBackPressedDispatcherOwner import androidx.compose.foundation.ScrollState @@ -35,6 +38,8 @@ import androidx.compose.foundation.layout.size import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll +import androidx.compose.material3.internal.Strings +import androidx.compose.material3.internal.getString import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.MutableState import androidx.compose.runtime.derivedStateOf @@ -53,6 +58,7 @@ import androidx.compose.ui.layout.onSizeChanged import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.platform.LocalLayoutDirection +import androidx.compose.ui.platform.LocalView import androidx.compose.ui.platform.testTag import androidx.compose.ui.semantics.SemanticsActions import androidx.compose.ui.test.SemanticsMatcher @@ -65,6 +71,7 @@ import androidx.compose.ui.test.getUnclippedBoundsInRoot import androidx.compose.ui.test.isDialog import androidx.compose.ui.test.junit4.createAndroidComposeRule import androidx.compose.ui.test.onFirst +import androidx.compose.ui.test.onNodeWithContentDescription import androidx.compose.ui.test.onNodeWithTag import androidx.compose.ui.test.onParent import androidx.compose.ui.test.performClick @@ -82,6 +89,7 @@ import androidx.compose.ui.unit.height import androidx.compose.ui.unit.width import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.MediumTest +import androidx.test.filters.SdkSuppress import androidx.test.platform.app.InstrumentationRegistry import androidx.test.uiautomator.UiDevice import com.google.common.truth.Truth.assertThat @@ -1115,4 +1123,31 @@ class ModalBottomSheetTest { // Size entirely filled by padding provided by WindowInsetPadding rule.onNodeWithTag(sheetTag).onParent().assertHeightIsEqualTo(sheetHeight) } + + @SdkSuppress(minSdkVersion = Build.VERSION_CODES.O) + @Test + fun modalBottomSheet_assertSheetContentIsReadBeforeScrim() { + lateinit var composeView: View + var closeSheet = "" + rule.setContent { + closeSheet = getString(Strings.CloseSheet) + ModalBottomSheet(onDismissRequest = {}, modifier = Modifier.testTag(sheetTag)) { + composeView = LocalView.current + Box(Modifier.fillMaxWidth().height(sheetHeight)) + } + } + + val scrimViewId = rule.onNodeWithContentDescription(closeSheet).fetchSemanticsNode().id + val sheetViewId = rule.onNodeWithTag(sheetTag).fetchSemanticsNode().id + + rule.runOnUiThread { + val accessibilityNodeProvider = composeView.accessibilityNodeProvider + val sheetViewANI = accessibilityNodeProvider.createAccessibilityNodeInfo(sheetViewId) + // Ensure that sheet A11y info is read before scrim view. + assertThat(sheetViewANI?.extras?.traversalBefore).isAtMost(scrimViewId) + } + } + + private val Bundle.traversalBefore: Int + get() = getInt("android.view.accessibility.extra.EXTRA_DATA_TEST_TRAVERSALBEFORE_VAL") } diff --git a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/ModalBottomSheet.kt b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/ModalBottomSheet.kt index 6728495729d54..718e034f13f3b 100644 --- a/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/ModalBottomSheet.kt +++ b/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/ModalBottomSheet.kt @@ -62,9 +62,11 @@ import androidx.compose.ui.semantics.collapse import androidx.compose.ui.semantics.contentDescription import androidx.compose.ui.semantics.dismiss import androidx.compose.ui.semantics.expand +import androidx.compose.ui.semantics.isTraversalGroup import androidx.compose.ui.semantics.onClick import androidx.compose.ui.semantics.paneTitle import androidx.compose.ui.semantics.semantics +import androidx.compose.ui.semantics.traversalIndex import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.compose.ui.util.lerp @@ -164,11 +166,11 @@ fun ModalBottomSheet( }, predictiveBackProgress = predictiveBackProgress, ) { - Box(modifier = Modifier.fillMaxSize().imePadding()) { + Box(modifier = Modifier.fillMaxSize().imePadding().semantics { isTraversalGroup = true }) { Scrim( color = scrimColor, onDismissRequest = animateToDismiss, - visible = sheetState.targetValue != Hidden + visible = sheetState.targetValue != Hidden, ) ModalBottomSheetContent( predictiveBackProgress, @@ -265,7 +267,10 @@ internal fun BoxScope.ModalBottomSheetContent( startDragImmediately = sheetState.anchoredDraggableState.isAnimationRunning, onDragStopped = { settleToDismiss(it) } ) - .semantics { paneTitle = bottomSheetPaneTitle } + .semantics { + paneTitle = bottomSheetPaneTitle + traversalIndex = 0f + } .graphicsLayer { val sheetOffset = sheetState.anchoredDraggableState.offset val sheetHeight = size.height @@ -409,6 +414,7 @@ private fun Scrim(color: Color, onDismissRequest: () -> Unit, visible: Boolean) if (visible) { Modifier.pointerInput(onDismissRequest) { detectTapGestures { onDismissRequest() } } .semantics(mergeDescendants = true) { + traversalIndex = 1f contentDescription = closeSheet onClick { onDismissRequest() diff --git a/compose/runtime/runtime-lint/src/main/java/androidx/compose/runtime/lint/ProduceStateDetector.kt b/compose/runtime/runtime-lint/src/main/java/androidx/compose/runtime/lint/ProduceStateDetector.kt index 2afb1ab0180b4..673d4090eec70 100644 --- a/compose/runtime/runtime-lint/src/main/java/androidx/compose/runtime/lint/ProduceStateDetector.kt +++ b/compose/runtime/runtime-lint/src/main/java/androidx/compose/runtime/lint/ProduceStateDetector.kt @@ -32,8 +32,13 @@ import com.android.tools.lint.detector.api.Severity import com.android.tools.lint.detector.api.SourceCodeScanner import com.intellij.psi.PsiMethod import java.util.EnumSet +import org.jetbrains.uast.UBinaryExpression import org.jetbrains.uast.UCallExpression +import org.jetbrains.uast.UExpression +import org.jetbrains.uast.UMultiResolvable +import org.jetbrains.uast.UQualifiedReferenceExpression import org.jetbrains.uast.USimpleNameReferenceExpression +import org.jetbrains.uast.UastBinaryOperator import org.jetbrains.uast.getParameterForArgument import org.jetbrains.uast.tryResolve import org.jetbrains.uast.visitor.AbstractUastVisitor @@ -53,64 +58,100 @@ class ProduceStateDetector : Detector(), SourceCodeScanner { override fun visitMethodCall(context: JavaContext, node: UCallExpression, method: PsiMethod) { if (method.isInPackageName(Names.Runtime.PackageName)) { // The ProduceStateScope lambda - val producer = node.valueArguments.find { - node.getParameterForArgument(it)?.name == "producer" - } ?: return + val producer = + node.valueArguments.find { node.getParameterForArgument(it)?.name == "producer" } + ?: return var referencesReceiver = false var callsSetValue = false - producer.accept(object : AbstractUastVisitor() { - val mutableStatePsiClass = - context.evaluator.findClass(Names.Runtime.MutableState.javaFqn) - - /** - * Visit function calls to see if the functions have a parameter of MutableState - * / ProduceStateScope. If they do, we cannot know for sure whether those - * functions internally call setValue, so we avoid reporting an error to avoid - * false positives. - */ - override fun visitCallExpression( - node: UCallExpression - ): Boolean { - val resolvedMethod = node.resolve() ?: return false - return resolvedMethod.parameterList.parameters.any { parameter -> - val type = parameter.type - - // Is the parameter type ProduceStateScope or a subclass - if (type.inheritsFrom(ProduceStateScopeName)) { - referencesReceiver = true - } + producer.accept( + object : AbstractUastVisitor() { + val mutableStatePsiClass = + context.evaluator.findClass(Names.Runtime.MutableState.javaFqn) + + /** + * Visit function calls to see if the functions have a parameter of MutableState + * / ProduceStateScope. If they do, we cannot know for sure whether those + * functions internally call setValue, so we avoid reporting an error to avoid + * false positives. + */ + override fun visitCallExpression(node: UCallExpression): Boolean { + val resolvedMethod = node.resolve() ?: return referencesReceiver + return resolvedMethod.parameterList.parameters.any { parameter -> + val type = parameter.type + + // Is the parameter type ProduceStateScope or a subclass + if (type.inheritsFrom(ProduceStateScopeName)) { + referencesReceiver = true + } + + // Is the parameter type MutableState + if ( + mutableStatePsiClass != null && + context.evaluator.getTypeClass(type) == mutableStatePsiClass + ) { + referencesReceiver = true + } - // Is the parameter type MutableState - if (mutableStatePsiClass != null && - context.evaluator.getTypeClass(type) == mutableStatePsiClass) { - referencesReceiver = true + referencesReceiver } + } - referencesReceiver + /** + * Visit binary operator to see if + * 1) it is an assign operator; + * 2) its left operand refers to 'value'; and + * 3) it is resolved to a call to MutableState#setValue. + */ + override fun visitBinaryExpression(node: UBinaryExpression): Boolean { + // =, +=, etc. + if (node.operator !is UastBinaryOperator.AssignOperator) { + return callsSetValue + } + // this.value =, value +=, etc. + if (node.leftOperand.rightMostNameReference()?.identifier != "value") { + return callsSetValue + } + // NB: we can't use node.resolveOperator() during the migration, + // since K1 / K2 UAST behaviors mismatch. + // `multiResolve()` literally encompasses all possible resolution + // results for (compound, overridden) operators. + val resolvedMethods = + (node as? UMultiResolvable)?.multiResolve() ?: return callsSetValue + if ( + resolvedMethods.any { + (it.element as? PsiMethod).isValueAccessorFromMutableState() + } + ) { + callsSetValue = true + return true + } + // TODO(b/34684249): revisit this fallback option after restoring + // K2 UAST binary resolution to allow only setter, not getter + val resolvedOperand = node.leftOperand.tryResolve() + if ((resolvedOperand as? PsiMethod).isValueAccessorFromMutableState()) { + callsSetValue = true + } + return callsSetValue } - } - /** - * Visit any simple name reference expressions to see if there is a reference to - * `value` that resolves to a call to MutableState#setValue. - */ - override fun visitSimpleNameReferenceExpression( - node: USimpleNameReferenceExpression - ): Boolean { - if (node.identifier != "value") return false - val resolvedMethod = node.tryResolve() as? PsiMethod ?: return false - if (resolvedMethod.name == "setValue" && - resolvedMethod.containingClass?.inheritsFrom( - Names.Runtime.MutableState - ) == true - ) { - callsSetValue = true + private tailrec fun UExpression.rightMostNameReference(): + USimpleNameReferenceExpression? { + return when (this) { + is USimpleNameReferenceExpression -> this + is UQualifiedReferenceExpression -> + this.selector.rightMostNameReference() + else -> null + } } - return callsSetValue + + private fun PsiMethod?.isValueAccessorFromMutableState(): Boolean = + this != null && + (name == "setValue" || name == "getValue") && + containingClass?.inheritsFrom(Names.Runtime.MutableState) == true } - }) + ) if (!callsSetValue && !referencesReceiver) { context.report( diff --git a/compose/runtime/runtime-lint/src/test/java/androidx/compose/runtime/lint/ProduceStateDetectorTest.kt b/compose/runtime/runtime-lint/src/test/java/androidx/compose/runtime/lint/ProduceStateDetectorTest.kt index e83b2b9653b48..a2a55c2d63de8 100644 --- a/compose/runtime/runtime-lint/src/test/java/androidx/compose/runtime/lint/ProduceStateDetectorTest.kt +++ b/compose/runtime/runtime-lint/src/test/java/androidx/compose/runtime/lint/ProduceStateDetectorTest.kt @@ -115,6 +115,9 @@ src/androidx/compose/runtime/foo/test.kt:21: Error: produceState calls should as produceState(true, true) { this.value = true } + produceState("Hi", "Any?") { + value += ", world" + } produceState(true, true) { doSomethingWithScope() } diff --git a/compose/runtime/runtime-livedata/api/1.7.0-beta07.txt b/compose/runtime/runtime-livedata/api/1.7.0-beta07.txt new file mode 100644 index 0000000000000..dee395621fee8 --- /dev/null +++ b/compose/runtime/runtime-livedata/api/1.7.0-beta07.txt @@ -0,0 +1,10 @@ +// Signature format: 4.0 +package androidx.compose.runtime.livedata { + + public final class LiveDataAdapterKt { + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State observeAsState(androidx.lifecycle.LiveData); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State observeAsState(androidx.lifecycle.LiveData, R initial); + } + +} + diff --git a/compose/runtime/runtime-livedata/api/res-1.7.0-beta07.txt b/compose/runtime/runtime-livedata/api/res-1.7.0-beta07.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/compose/runtime/runtime-livedata/api/restricted_1.7.0-beta07.txt b/compose/runtime/runtime-livedata/api/restricted_1.7.0-beta07.txt new file mode 100644 index 0000000000000..dee395621fee8 --- /dev/null +++ b/compose/runtime/runtime-livedata/api/restricted_1.7.0-beta07.txt @@ -0,0 +1,10 @@ +// Signature format: 4.0 +package androidx.compose.runtime.livedata { + + public final class LiveDataAdapterKt { + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State observeAsState(androidx.lifecycle.LiveData); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State observeAsState(androidx.lifecycle.LiveData, R initial); + } + +} + diff --git a/compose/runtime/runtime-rxjava2/api/1.7.0-beta07.txt b/compose/runtime/runtime-rxjava2/api/1.7.0-beta07.txt new file mode 100644 index 0000000000000..43f9fd450f0b7 --- /dev/null +++ b/compose/runtime/runtime-rxjava2/api/1.7.0-beta07.txt @@ -0,0 +1,13 @@ +// Signature format: 4.0 +package androidx.compose.runtime.rxjava2 { + + public final class RxJava2AdapterKt { + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State subscribeAsState(io.reactivex.Completable); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State subscribeAsState(io.reactivex.Flowable, R initial); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State subscribeAsState(io.reactivex.Maybe, R initial); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State subscribeAsState(io.reactivex.Observable, R initial); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State subscribeAsState(io.reactivex.Single, R initial); + } + +} + diff --git a/compose/runtime/runtime-rxjava2/api/res-1.7.0-beta07.txt b/compose/runtime/runtime-rxjava2/api/res-1.7.0-beta07.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/compose/runtime/runtime-rxjava2/api/restricted_1.7.0-beta07.txt b/compose/runtime/runtime-rxjava2/api/restricted_1.7.0-beta07.txt new file mode 100644 index 0000000000000..43f9fd450f0b7 --- /dev/null +++ b/compose/runtime/runtime-rxjava2/api/restricted_1.7.0-beta07.txt @@ -0,0 +1,13 @@ +// Signature format: 4.0 +package androidx.compose.runtime.rxjava2 { + + public final class RxJava2AdapterKt { + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State subscribeAsState(io.reactivex.Completable); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State subscribeAsState(io.reactivex.Flowable, R initial); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State subscribeAsState(io.reactivex.Maybe, R initial); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State subscribeAsState(io.reactivex.Observable, R initial); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State subscribeAsState(io.reactivex.Single, R initial); + } + +} + diff --git a/compose/runtime/runtime-rxjava3/api/1.7.0-beta07.txt b/compose/runtime/runtime-rxjava3/api/1.7.0-beta07.txt new file mode 100644 index 0000000000000..357541c89c9cd --- /dev/null +++ b/compose/runtime/runtime-rxjava3/api/1.7.0-beta07.txt @@ -0,0 +1,13 @@ +// Signature format: 4.0 +package androidx.compose.runtime.rxjava3 { + + public final class RxJava3AdapterKt { + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State subscribeAsState(io.reactivex.rxjava3.core.Completable); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State subscribeAsState(io.reactivex.rxjava3.core.Flowable, R initial); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State subscribeAsState(io.reactivex.rxjava3.core.Maybe, R initial); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State subscribeAsState(io.reactivex.rxjava3.core.Observable, R initial); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State subscribeAsState(io.reactivex.rxjava3.core.Single, R initial); + } + +} + diff --git a/compose/runtime/runtime-rxjava3/api/res-1.7.0-beta07.txt b/compose/runtime/runtime-rxjava3/api/res-1.7.0-beta07.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/compose/runtime/runtime-rxjava3/api/restricted_1.7.0-beta07.txt b/compose/runtime/runtime-rxjava3/api/restricted_1.7.0-beta07.txt new file mode 100644 index 0000000000000..357541c89c9cd --- /dev/null +++ b/compose/runtime/runtime-rxjava3/api/restricted_1.7.0-beta07.txt @@ -0,0 +1,13 @@ +// Signature format: 4.0 +package androidx.compose.runtime.rxjava3 { + + public final class RxJava3AdapterKt { + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State subscribeAsState(io.reactivex.rxjava3.core.Completable); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State subscribeAsState(io.reactivex.rxjava3.core.Flowable, R initial); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State subscribeAsState(io.reactivex.rxjava3.core.Maybe, R initial); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State subscribeAsState(io.reactivex.rxjava3.core.Observable, R initial); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State subscribeAsState(io.reactivex.rxjava3.core.Single, R initial); + } + +} + diff --git a/compose/runtime/runtime-saveable/api/1.7.0-beta07.txt b/compose/runtime/runtime-saveable/api/1.7.0-beta07.txt new file mode 100644 index 0000000000000..fb4dfbf64ddb6 --- /dev/null +++ b/compose/runtime/runtime-saveable/api/1.7.0-beta07.txt @@ -0,0 +1,58 @@ +// Signature format: 4.0 +package androidx.compose.runtime.saveable { + + public final class ListSaverKt { + method public static androidx.compose.runtime.saveable.Saver listSaver(kotlin.jvm.functions.Function2> save, kotlin.jvm.functions.Function1,? extends Original?> restore); + } + + public final class MapSaverKt { + method public static androidx.compose.runtime.saveable.Saver mapSaver(kotlin.jvm.functions.Function2> save, kotlin.jvm.functions.Function1,? extends T?> restore); + } + + public final class RememberSaveableKt { + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.MutableState rememberSaveable(Object?[] inputs, androidx.compose.runtime.saveable.Saver stateSaver, optional String? key, kotlin.jvm.functions.Function0> init); + method @androidx.compose.runtime.Composable public static T rememberSaveable(Object?[] inputs, optional androidx.compose.runtime.saveable.Saver saver, optional String? key, kotlin.jvm.functions.Function0 init); + } + + public interface SaveableStateHolder { + method @androidx.compose.runtime.Composable public void SaveableStateProvider(Object key, kotlin.jvm.functions.Function0 content); + method public void removeState(Object key); + } + + public final class SaveableStateHolderKt { + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.saveable.SaveableStateHolder rememberSaveableStateHolder(); + } + + public interface SaveableStateRegistry { + method public boolean canBeSaved(Object value); + method public Object? consumeRestored(String key); + method public java.util.Map> performSave(); + method public androidx.compose.runtime.saveable.SaveableStateRegistry.Entry registerProvider(String key, kotlin.jvm.functions.Function0 valueProvider); + } + + public static interface SaveableStateRegistry.Entry { + method public void unregister(); + } + + public final class SaveableStateRegistryKt { + method public static androidx.compose.runtime.saveable.SaveableStateRegistry SaveableStateRegistry(java.util.Map>? restoredValues, kotlin.jvm.functions.Function1 canBeSaved); + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalSaveableStateRegistry(); + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalSaveableStateRegistry; + } + + public interface Saver { + method public Original? restore(Saveable value); + method public Saveable? save(androidx.compose.runtime.saveable.SaverScope, Original value); + } + + public final class SaverKt { + method public static androidx.compose.runtime.saveable.Saver Saver(kotlin.jvm.functions.Function2 save, kotlin.jvm.functions.Function1 restore); + method public static androidx.compose.runtime.saveable.Saver autoSaver(); + } + + public fun interface SaverScope { + method public boolean canBeSaved(Object value); + } + +} + diff --git a/compose/runtime/runtime-saveable/api/res-1.7.0-beta07.txt b/compose/runtime/runtime-saveable/api/res-1.7.0-beta07.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/compose/runtime/runtime-saveable/api/restricted_1.7.0-beta07.txt b/compose/runtime/runtime-saveable/api/restricted_1.7.0-beta07.txt new file mode 100644 index 0000000000000..fb4dfbf64ddb6 --- /dev/null +++ b/compose/runtime/runtime-saveable/api/restricted_1.7.0-beta07.txt @@ -0,0 +1,58 @@ +// Signature format: 4.0 +package androidx.compose.runtime.saveable { + + public final class ListSaverKt { + method public static androidx.compose.runtime.saveable.Saver listSaver(kotlin.jvm.functions.Function2> save, kotlin.jvm.functions.Function1,? extends Original?> restore); + } + + public final class MapSaverKt { + method public static androidx.compose.runtime.saveable.Saver mapSaver(kotlin.jvm.functions.Function2> save, kotlin.jvm.functions.Function1,? extends T?> restore); + } + + public final class RememberSaveableKt { + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.MutableState rememberSaveable(Object?[] inputs, androidx.compose.runtime.saveable.Saver stateSaver, optional String? key, kotlin.jvm.functions.Function0> init); + method @androidx.compose.runtime.Composable public static T rememberSaveable(Object?[] inputs, optional androidx.compose.runtime.saveable.Saver saver, optional String? key, kotlin.jvm.functions.Function0 init); + } + + public interface SaveableStateHolder { + method @androidx.compose.runtime.Composable public void SaveableStateProvider(Object key, kotlin.jvm.functions.Function0 content); + method public void removeState(Object key); + } + + public final class SaveableStateHolderKt { + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.saveable.SaveableStateHolder rememberSaveableStateHolder(); + } + + public interface SaveableStateRegistry { + method public boolean canBeSaved(Object value); + method public Object? consumeRestored(String key); + method public java.util.Map> performSave(); + method public androidx.compose.runtime.saveable.SaveableStateRegistry.Entry registerProvider(String key, kotlin.jvm.functions.Function0 valueProvider); + } + + public static interface SaveableStateRegistry.Entry { + method public void unregister(); + } + + public final class SaveableStateRegistryKt { + method public static androidx.compose.runtime.saveable.SaveableStateRegistry SaveableStateRegistry(java.util.Map>? restoredValues, kotlin.jvm.functions.Function1 canBeSaved); + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalSaveableStateRegistry(); + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalSaveableStateRegistry; + } + + public interface Saver { + method public Original? restore(Saveable value); + method public Saveable? save(androidx.compose.runtime.saveable.SaverScope, Original value); + } + + public final class SaverKt { + method public static androidx.compose.runtime.saveable.Saver Saver(kotlin.jvm.functions.Function2 save, kotlin.jvm.functions.Function1 restore); + method public static androidx.compose.runtime.saveable.Saver autoSaver(); + } + + public fun interface SaverScope { + method public boolean canBeSaved(Object value); + } + +} + diff --git a/compose/runtime/runtime/api/1.7.0-beta07.txt b/compose/runtime/runtime/api/1.7.0-beta07.txt new file mode 100644 index 0000000000000..451ecb2759433 --- /dev/null +++ b/compose/runtime/runtime/api/1.7.0-beta07.txt @@ -0,0 +1,1086 @@ +// Signature format: 4.0 +package androidx.compose.runtime { + + public abstract class AbstractApplier implements androidx.compose.runtime.Applier { + ctor public AbstractApplier(T root); + method public final void clear(); + method public void down(T node); + method public T getCurrent(); + method public final T getRoot(); + method protected final void move(java.util.List, int from, int to, int count); + method protected abstract void onClear(); + method protected final void remove(java.util.List, int index, int count); + method protected void setCurrent(T); + method public void up(); + property public T current; + property public final T root; + } + + public final class ActualAndroid_androidKt { + method @Deprecated public static androidx.compose.runtime.MonotonicFrameClock getDefaultMonotonicFrameClock(); + property @Deprecated public static final androidx.compose.runtime.MonotonicFrameClock DefaultMonotonicFrameClock; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface Applier { + method public void clear(); + method public void down(N node); + method public N getCurrent(); + method public void insertBottomUp(int index, N instance); + method public void insertTopDown(int index, N instance); + method public void move(int from, int to, int count); + method public default void onBeginChanges(); + method public default void onEndChanges(); + method public void remove(int index, int count); + method public void up(); + property public abstract N current; + } + + public final class BroadcastFrameClock implements androidx.compose.runtime.MonotonicFrameClock { + ctor public BroadcastFrameClock(optional kotlin.jvm.functions.Function0? onNewAwaiters); + method public void cancel(optional java.util.concurrent.CancellationException cancellationException); + method public boolean getHasAwaiters(); + method public void sendFrame(long timeNanos); + method public suspend Object? withFrameNanos(kotlin.jvm.functions.Function1 onFrame, kotlin.coroutines.Continuation); + property public final boolean hasAwaiters; + } + + @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.TYPE, kotlin.annotation.AnnotationTarget.TYPE_PARAMETER, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface Composable { + } + + @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface ComposableInferredTarget { + method public abstract String scheme(); + property public abstract String scheme; + } + + @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER, kotlin.annotation.AnnotationTarget.TYPE, kotlin.annotation.AnnotationTarget.TYPE_PARAMETER}) public @interface ComposableOpenTarget { + method public abstract int index(); + property public abstract int index; + } + + @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FILE, kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER, kotlin.annotation.AnnotationTarget.TYPE, kotlin.annotation.AnnotationTarget.TYPE_PARAMETER}) public @interface ComposableTarget { + method public abstract String applier(); + property public abstract String applier; + } + + @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.ANNOTATION_CLASS) public @interface ComposableTargetMarker { + method public abstract String description() default ""; + property public abstract String description; + } + + public final class ComposablesKt { + method @androidx.compose.runtime.Composable public static inline > void ComposeNode(kotlin.jvm.functions.Function0 factory, kotlin.jvm.functions.Function1,kotlin.Unit> update); + method @androidx.compose.runtime.Composable public static inline > void ComposeNode(kotlin.jvm.functions.Function0 factory, kotlin.jvm.functions.Function1,kotlin.Unit> update, kotlin.jvm.functions.Function0 content); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ExplicitGroupsComposable public static inline > void ComposeNode(kotlin.jvm.functions.Function0 factory, kotlin.jvm.functions.Function1,kotlin.Unit> update, kotlin.jvm.functions.Function1,kotlin.Unit> skippableUpdate, kotlin.jvm.functions.Function0 content); + method @androidx.compose.runtime.Composable public static inline > void ReusableComposeNode(kotlin.jvm.functions.Function0 factory, kotlin.jvm.functions.Function1,kotlin.Unit> update); + method @androidx.compose.runtime.Composable public static inline > void ReusableComposeNode(kotlin.jvm.functions.Function0 factory, kotlin.jvm.functions.Function1,kotlin.Unit> update, kotlin.jvm.functions.Function0 content); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ExplicitGroupsComposable public static inline > void ReusableComposeNode(kotlin.jvm.functions.Function0 factory, kotlin.jvm.functions.Function1,kotlin.Unit> update, kotlin.jvm.functions.Function1,kotlin.Unit> skippableUpdate, kotlin.jvm.functions.Function0 content); + method @androidx.compose.runtime.Composable public static inline void ReusableContent(Object? key, kotlin.jvm.functions.Function0 content); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ExplicitGroupsComposable public static inline void ReusableContentHost(boolean active, kotlin.jvm.functions.Function0 content); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static androidx.compose.runtime.Composer getCurrentComposer(); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ExplicitGroupsComposable public static int getCurrentCompositeKeyHash(); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.CompositionLocalContext getCurrentCompositionLocalContext(); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static androidx.compose.runtime.RecomposeScope getCurrentRecomposeScope(); + method @androidx.compose.runtime.Composable public static inline T key(Object?[] keys, kotlin.jvm.functions.Function0 block); + method @androidx.compose.runtime.Composable public static inline T remember(Object? key1, Object? key2, Object? key3, kotlin.jvm.functions.Function0 calculation); + method @androidx.compose.runtime.Composable public static inline T remember(Object? key1, Object? key2, kotlin.jvm.functions.Function0 calculation); + method @androidx.compose.runtime.Composable public static inline T remember(Object? key1, kotlin.jvm.functions.Function0 calculation); + method @androidx.compose.runtime.Composable public static inline T remember(Object?[] keys, kotlin.jvm.functions.Function0 calculation); + method @androidx.compose.runtime.Composable public static inline T remember(kotlin.jvm.functions.Function0 calculation); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.CompositionContext rememberCompositionContext(); + property @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static final androidx.compose.runtime.Composer currentComposer; + property @androidx.compose.runtime.Composable @androidx.compose.runtime.ExplicitGroupsComposable public static final int currentCompositeKeyHash; + property @androidx.compose.runtime.Composable public static final androidx.compose.runtime.CompositionLocalContext currentCompositionLocalContext; + property @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static final androidx.compose.runtime.RecomposeScope currentRecomposeScope; + } + + @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY, kotlin.annotation.AnnotationTarget.TYPEALIAS}) public @interface ComposeCompilerApi { + } + + public interface ComposeNodeLifecycleCallback { + method public void onDeactivate(); + method public void onRelease(); + method public void onReuse(); + } + + public sealed interface Composer { + method @androidx.compose.runtime.ComposeCompilerApi public void apply(V value, kotlin.jvm.functions.Function2 block); + method @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi public androidx.compose.runtime.CompositionContext buildContext(); + method @androidx.compose.runtime.ComposeCompilerApi public default boolean changed(boolean value); + method @androidx.compose.runtime.ComposeCompilerApi public default boolean changed(byte value); + method @androidx.compose.runtime.ComposeCompilerApi public default boolean changed(char value); + method @androidx.compose.runtime.ComposeCompilerApi public default boolean changed(double value); + method @androidx.compose.runtime.ComposeCompilerApi public default boolean changed(float value); + method @androidx.compose.runtime.ComposeCompilerApi public default boolean changed(int value); + method @androidx.compose.runtime.ComposeCompilerApi public boolean changed(Object? value); + method @androidx.compose.runtime.ComposeCompilerApi public default boolean changed(long value); + method @androidx.compose.runtime.ComposeCompilerApi public default boolean changed(short value); + method @androidx.compose.runtime.ComposeCompilerApi public default boolean changedInstance(Object? value); + method public void collectParameterInformation(); + method @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi public T consume(androidx.compose.runtime.CompositionLocal key); + method @androidx.compose.runtime.ComposeCompilerApi public void createNode(kotlin.jvm.functions.Function0 factory); + method @androidx.compose.runtime.ComposeCompilerApi public void deactivateToEndGroup(boolean changed); + method @androidx.compose.runtime.ComposeCompilerApi public void disableReusing(); + method @org.jetbrains.annotations.TestOnly public void disableSourceInformation(); + method @androidx.compose.runtime.ComposeCompilerApi public void enableReusing(); + method @androidx.compose.runtime.ComposeCompilerApi public void endDefaults(); + method @androidx.compose.runtime.ComposeCompilerApi public void endMovableGroup(); + method @androidx.compose.runtime.ComposeCompilerApi public void endNode(); + method @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi public void endProvider(); + method @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi public void endProviders(); + method @androidx.compose.runtime.ComposeCompilerApi public void endReplaceGroup(); + method @androidx.compose.runtime.ComposeCompilerApi public void endReplaceableGroup(); + method @androidx.compose.runtime.ComposeCompilerApi public androidx.compose.runtime.ScopeUpdateScope? endRestartGroup(); + method @androidx.compose.runtime.ComposeCompilerApi public void endReusableGroup(); + method @androidx.compose.runtime.ComposeCompilerApi public void endToMarker(int marker); + method public androidx.compose.runtime.Applier getApplier(); + method @org.jetbrains.annotations.TestOnly public kotlin.coroutines.CoroutineContext getApplyCoroutineContext(); + method @org.jetbrains.annotations.TestOnly public androidx.compose.runtime.ControlledComposition getComposition(); + method public androidx.compose.runtime.tooling.CompositionData getCompositionData(); + method public int getCompoundKeyHash(); + method public androidx.compose.runtime.CompositionLocalMap getCurrentCompositionLocalMap(); + method public int getCurrentMarker(); + method public boolean getDefaultsInvalid(); + method public boolean getInserting(); + method public androidx.compose.runtime.RecomposeScope? getRecomposeScope(); + method public Object? getRecomposeScopeIdentity(); + method public boolean getSkipping(); + method @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi public void insertMovableContent(androidx.compose.runtime.MovableContent value, Object? parameter); + method @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi public void insertMovableContentReferences(java.util.List> references); + method @androidx.compose.runtime.ComposeCompilerApi public Object joinKey(Object? left, Object? right); + method @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi public void recordSideEffect(kotlin.jvm.functions.Function0 effect); + method @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi public void recordUsed(androidx.compose.runtime.RecomposeScope scope); + method @androidx.compose.runtime.ComposeCompilerApi public Object? rememberedValue(); + method @androidx.compose.runtime.ComposeCompilerApi public void skipCurrentGroup(); + method @androidx.compose.runtime.ComposeCompilerApi public void skipToGroupEnd(); + method public void sourceInformation(String sourceInformation); + method public void sourceInformationMarkerEnd(); + method public void sourceInformationMarkerStart(int key, String sourceInformation); + method @androidx.compose.runtime.ComposeCompilerApi public void startDefaults(); + method @androidx.compose.runtime.ComposeCompilerApi public void startMovableGroup(int key, Object? dataKey); + method @androidx.compose.runtime.ComposeCompilerApi public void startNode(); + method @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi public void startProvider(androidx.compose.runtime.ProvidedValue value); + method @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi public void startProviders(androidx.compose.runtime.ProvidedValue[] values); + method @androidx.compose.runtime.ComposeCompilerApi public void startReplaceGroup(int key); + method @androidx.compose.runtime.ComposeCompilerApi public void startReplaceableGroup(int key); + method @androidx.compose.runtime.ComposeCompilerApi public androidx.compose.runtime.Composer startRestartGroup(int key); + method @androidx.compose.runtime.ComposeCompilerApi public void startReusableGroup(int key, Object? dataKey); + method @androidx.compose.runtime.ComposeCompilerApi public void startReusableNode(); + method @androidx.compose.runtime.ComposeCompilerApi public void updateRememberedValue(Object? value); + method @androidx.compose.runtime.ComposeCompilerApi public void useNode(); + property public abstract androidx.compose.runtime.Applier applier; + property @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi @org.jetbrains.annotations.TestOnly public abstract kotlin.coroutines.CoroutineContext applyCoroutineContext; + property @org.jetbrains.annotations.TestOnly public abstract androidx.compose.runtime.ControlledComposition composition; + property public abstract androidx.compose.runtime.tooling.CompositionData compositionData; + property public abstract int compoundKeyHash; + property public abstract androidx.compose.runtime.CompositionLocalMap currentCompositionLocalMap; + property public abstract int currentMarker; + property public abstract boolean defaultsInvalid; + property public abstract boolean inserting; + property public abstract androidx.compose.runtime.RecomposeScope? recomposeScope; + property public abstract Object? recomposeScopeIdentity; + property public abstract boolean skipping; + field public static final androidx.compose.runtime.Composer.Companion Companion; + } + + public static final class Composer.Companion { + method public Object getEmpty(); + method @SuppressCompatibility @androidx.compose.runtime.InternalComposeTracingApi public void setTracer(androidx.compose.runtime.CompositionTracer tracer); + property public final Object Empty; + } + + public final class ComposerKt { + method @androidx.compose.runtime.ComposeCompilerApi public static inline T cache(androidx.compose.runtime.Composer, boolean invalid, kotlin.jvm.functions.Function0 block); + method @androidx.compose.runtime.ComposeCompilerApi public static boolean isTraceInProgress(); + method @androidx.compose.runtime.ComposeCompilerApi public static void sourceInformation(androidx.compose.runtime.Composer composer, String sourceInformation); + method @androidx.compose.runtime.ComposeCompilerApi public static void sourceInformationMarkerEnd(androidx.compose.runtime.Composer composer); + method @androidx.compose.runtime.ComposeCompilerApi public static void sourceInformationMarkerStart(androidx.compose.runtime.Composer composer, int key, String sourceInformation); + method @androidx.compose.runtime.ComposeCompilerApi public static void traceEventEnd(); + method @androidx.compose.runtime.ComposeCompilerApi public static void traceEventStart(int key, int dirty1, int dirty2, String info); + method @Deprecated @androidx.compose.runtime.ComposeCompilerApi public static void traceEventStart(int key, String info); + } + + public interface Composition { + method public void dispose(); + method public boolean getHasInvalidations(); + method public boolean isDisposed(); + method public void setContent(kotlin.jvm.functions.Function0 content); + property public abstract boolean hasInvalidations; + property public abstract boolean isDisposed; + } + + public abstract class CompositionContext { + method public abstract kotlin.coroutines.CoroutineContext getEffectCoroutineContext(); + property public abstract kotlin.coroutines.CoroutineContext effectCoroutineContext; + } + + public final class CompositionKt { + method public static androidx.compose.runtime.Composition Composition(androidx.compose.runtime.Applier applier, androidx.compose.runtime.CompositionContext parent); + method @SuppressCompatibility @androidx.compose.runtime.ExperimentalComposeApi public static androidx.compose.runtime.Composition Composition(androidx.compose.runtime.Applier applier, androidx.compose.runtime.CompositionContext parent, kotlin.coroutines.CoroutineContext recomposeCoroutineContext); + method @org.jetbrains.annotations.TestOnly public static androidx.compose.runtime.ControlledComposition ControlledComposition(androidx.compose.runtime.Applier applier, androidx.compose.runtime.CompositionContext parent); + method @SuppressCompatibility @androidx.compose.runtime.ExperimentalComposeApi @org.jetbrains.annotations.TestOnly public static androidx.compose.runtime.ControlledComposition ControlledComposition(androidx.compose.runtime.Applier applier, androidx.compose.runtime.CompositionContext parent, kotlin.coroutines.CoroutineContext recomposeCoroutineContext); + method public static androidx.compose.runtime.ReusableComposition ReusableComposition(androidx.compose.runtime.Applier applier, androidx.compose.runtime.CompositionContext parent); + method @SuppressCompatibility @androidx.compose.runtime.ExperimentalComposeApi public static kotlin.coroutines.CoroutineContext getRecomposeCoroutineContext(androidx.compose.runtime.ControlledComposition); + } + + @androidx.compose.runtime.Stable public abstract sealed class CompositionLocal { + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public final inline T getCurrent(); + property @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public final inline T current; + } + + public interface CompositionLocalAccessorScope { + method public T getCurrentValue(androidx.compose.runtime.CompositionLocal); + } + + @androidx.compose.runtime.Stable public final class CompositionLocalContext { + } + + public final class CompositionLocalKt { + method @androidx.compose.runtime.Composable public static void CompositionLocalProvider(androidx.compose.runtime.CompositionLocalContext context, kotlin.jvm.functions.Function0 content); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonSkippableComposable public static void CompositionLocalProvider(androidx.compose.runtime.ProvidedValue value, kotlin.jvm.functions.Function0 content); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonSkippableComposable public static void CompositionLocalProvider(androidx.compose.runtime.ProvidedValue[] values, kotlin.jvm.functions.Function0 content); + method public static androidx.compose.runtime.ProvidableCompositionLocal compositionLocalOf(optional androidx.compose.runtime.SnapshotMutationPolicy policy, kotlin.jvm.functions.Function0 defaultFactory); + method public static androidx.compose.runtime.ProvidableCompositionLocal compositionLocalWithComputedDefaultOf(kotlin.jvm.functions.Function1 defaultComputation); + method public static androidx.compose.runtime.ProvidableCompositionLocal staticCompositionLocalOf(kotlin.jvm.functions.Function0 defaultFactory); + } + + public sealed interface CompositionLocalMap { + method public operator T get(androidx.compose.runtime.CompositionLocal key); + field public static final androidx.compose.runtime.CompositionLocalMap.Companion Companion; + } + + public static final class CompositionLocalMap.Companion { + method public androidx.compose.runtime.CompositionLocalMap getEmpty(); + property public final androidx.compose.runtime.CompositionLocalMap Empty; + } + + public interface CompositionServiceKey { + } + + public interface CompositionServices { + method public T? getCompositionService(androidx.compose.runtime.CompositionServiceKey key); + } + + @SuppressCompatibility @androidx.compose.runtime.InternalComposeTracingApi public interface CompositionTracer { + method public boolean isTraceInProgress(); + method public void traceEventEnd(); + method public void traceEventStart(int key, int dirty1, int dirty2, String info); + } + + public sealed interface ControlledComposition extends androidx.compose.runtime.Composition { + method public void abandonChanges(); + method public void applyChanges(); + method public void applyLateChanges(); + method public void changesApplied(); + method public void composeContent(kotlin.jvm.functions.Function0 content); + method public R delegateInvalidations(androidx.compose.runtime.ControlledComposition? to, int groupIndex, kotlin.jvm.functions.Function0 block); + method @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi public void disposeUnusedMovableContent(androidx.compose.runtime.MovableContentState state); + method public boolean getHasPendingChanges(); + method @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi public void insertMovableContent(java.util.List> references); + method public void invalidateAll(); + method public boolean isComposing(); + method public boolean observesAnyOf(java.util.Set values); + method public void prepareCompose(kotlin.jvm.functions.Function0 block); + method public boolean recompose(); + method public void recordModificationsOf(java.util.Set values); + method public void recordReadOf(Object value); + method public void recordWriteOf(Object value); + method @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi public void verifyConsistent(); + property public abstract boolean hasPendingChanges; + property public abstract boolean isComposing; + } + + @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.TYPE) public @interface DisallowComposableCalls { + } + + public interface DisposableEffectResult { + method public void dispose(); + } + + public final class DisposableEffectScope { + ctor public DisposableEffectScope(); + method public inline androidx.compose.runtime.DisposableEffectResult onDispose(kotlin.jvm.functions.Function0 onDisposeEffect); + } + + @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.SOURCE) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.EXPRESSION) public @interface DontMemoize { + } + + @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface DoubleState extends androidx.compose.runtime.State { + method public double getDoubleValue(); + method @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="doubleValue") public default Double getValue(); + property public abstract double doubleValue; + property @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="doubleValue") public default Double value; + } + + public final class EffectsKt { + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void DisposableEffect(Object? key1, Object? key2, Object? key3, kotlin.jvm.functions.Function1 effect); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void DisposableEffect(Object? key1, Object? key2, kotlin.jvm.functions.Function1 effect); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void DisposableEffect(Object? key1, kotlin.jvm.functions.Function1 effect); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void DisposableEffect(Object?[] keys, kotlin.jvm.functions.Function1 effect); + method @Deprecated @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void DisposableEffect(kotlin.jvm.functions.Function1 effect); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void LaunchedEffect(Object? key1, Object? key2, Object? key3, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void LaunchedEffect(Object? key1, Object? key2, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void LaunchedEffect(Object? key1, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void LaunchedEffect(Object?[] keys, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block); + method @Deprecated @androidx.compose.runtime.Composable public static void LaunchedEffect(kotlin.jvm.functions.Function2,? extends java.lang.Object?> block); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ExplicitGroupsComposable @androidx.compose.runtime.NonRestartableComposable public static void SideEffect(kotlin.jvm.functions.Function0 effect); + method @androidx.compose.runtime.Composable public static inline kotlinx.coroutines.CoroutineScope rememberCoroutineScope(optional kotlin.jvm.functions.Function0 getContext); + } + + @SuppressCompatibility @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.ERROR, message="This is an experimental API for Compose and is likely to change before becoming " + "stable.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface ExperimentalComposeApi { + } + + @SuppressCompatibility @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.ERROR, message="This in experimental API that may change frequently and without warning.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY, kotlin.annotation.AnnotationTarget.FIELD, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface ExperimentalComposeRuntimeApi { + } + + @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.SOURCE) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface ExplicitGroupsComposable { + } + + @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface FloatState extends androidx.compose.runtime.State { + method public float getFloatValue(); + method @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="floatValue") public default Float getValue(); + property public abstract float floatValue; + property @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="floatValue") public default Float value; + } + + public final class HotReloaderKt { + method @org.jetbrains.annotations.TestOnly public static void clearCompositionErrors(); + method @org.jetbrains.annotations.TestOnly public static java.util.List> currentCompositionErrors(); + method @org.jetbrains.annotations.TestOnly public static void invalidateGroupsWithKey(int key); + method @org.jetbrains.annotations.TestOnly public static void simulateHotReload(Object context); + } + + @androidx.compose.runtime.StableMarker @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.CLASS) public @interface Immutable { + } + + @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface IntState extends androidx.compose.runtime.State { + method public int getIntValue(); + method @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="intValue") public default Integer getValue(); + property public abstract int intValue; + property @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="intValue") public default Integer value; + } + + @SuppressCompatibility @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.ERROR, message="This is internal API for Compose modules that may change frequently " + "and without warning.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY}) public @interface InternalComposeApi { + } + + @SuppressCompatibility @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.ERROR, message="This is internal API that may change frequently and without warning.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface InternalComposeTracingApi { + } + + @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface LongState extends androidx.compose.runtime.State { + method public long getLongValue(); + method @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="longValue") public default Long getValue(); + property public abstract long longValue; + property @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="longValue") public default Long value; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface MonotonicFrameClock extends kotlin.coroutines.CoroutineContext.Element { + method public default kotlin.coroutines.CoroutineContext.Key getKey(); + method public suspend Object? withFrameNanos(kotlin.jvm.functions.Function1 onFrame, kotlin.coroutines.Continuation); + property public default kotlin.coroutines.CoroutineContext.Key key; + field public static final androidx.compose.runtime.MonotonicFrameClock.Key Key; + } + + public static final class MonotonicFrameClock.Key implements kotlin.coroutines.CoroutineContext.Key { + } + + public final class MonotonicFrameClockKt { + method public static androidx.compose.runtime.MonotonicFrameClock getMonotonicFrameClock(kotlin.coroutines.CoroutineContext); + method public static suspend inline Object? withFrameMillis(androidx.compose.runtime.MonotonicFrameClock, kotlin.jvm.functions.Function1 onFrame, kotlin.coroutines.Continuation); + method public static suspend Object? withFrameMillis(kotlin.jvm.functions.Function1 onFrame, kotlin.coroutines.Continuation); + method public static suspend Object? withFrameNanos(kotlin.jvm.functions.Function1 onFrame, kotlin.coroutines.Continuation); + } + + @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi public final class MovableContent

{ + ctor public MovableContent(kotlin.jvm.functions.Function1 content); + method public kotlin.jvm.functions.Function1 getContent(); + property public final kotlin.jvm.functions.Function1 content; + } + + public final class MovableContentKt { + method public static kotlin.jvm.functions.Function0 movableContentOf(kotlin.jvm.functions.Function0 content); + method public static

kotlin.jvm.functions.Function1 movableContentOf(kotlin.jvm.functions.Function1 content); + method public static kotlin.jvm.functions.Function2 movableContentOf(kotlin.jvm.functions.Function2 content); + method public static kotlin.jvm.functions.Function3 movableContentOf(kotlin.jvm.functions.Function3 content); + method public static kotlin.jvm.functions.Function4 movableContentOf(kotlin.jvm.functions.Function4 content); + method public static kotlin.jvm.functions.Function1 movableContentWithReceiverOf(kotlin.jvm.functions.Function1 content); + method public static kotlin.jvm.functions.Function2 movableContentWithReceiverOf(kotlin.jvm.functions.Function2 content); + method public static kotlin.jvm.functions.Function3 movableContentWithReceiverOf(kotlin.jvm.functions.Function3 content); + method public static kotlin.jvm.functions.Function4 movableContentWithReceiverOf(kotlin.jvm.functions.Function4 content); + } + + @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi public final class MovableContentState { + } + + @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi public final class MovableContentStateReference { + } + + @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface MutableDoubleState extends androidx.compose.runtime.DoubleState androidx.compose.runtime.MutableState { + method public void setDoubleValue(double); + method @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="doubleValue") public default void setValue(double); + property public abstract double doubleValue; + property @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="doubleValue") public default Double value; + } + + @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface MutableFloatState extends androidx.compose.runtime.FloatState androidx.compose.runtime.MutableState { + method public void setFloatValue(float); + method @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="floatValue") public default void setValue(float); + property public abstract float floatValue; + property @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="floatValue") public default Float value; + } + + @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface MutableIntState extends androidx.compose.runtime.IntState androidx.compose.runtime.MutableState { + method public void setIntValue(int); + method @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="intValue") public default void setValue(int); + property public abstract int intValue; + property @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="intValue") public default Integer value; + } + + @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface MutableLongState extends androidx.compose.runtime.LongState androidx.compose.runtime.MutableState { + method public void setLongValue(long); + method @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="longValue") public default void setValue(long); + property public abstract long longValue; + property @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="longValue") public default Long value; + } + + @androidx.compose.runtime.Stable public interface MutableState extends androidx.compose.runtime.State { + method public operator T component1(); + method public operator kotlin.jvm.functions.Function1 component2(); + method public void setValue(T); + property public abstract T value; + } + + @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.SOURCE) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.PROPERTY, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FILE}) public @interface NoLiveLiterals { + } + + @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.SOURCE) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface NonRestartableComposable { + } + + @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.SOURCE) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface NonSkippableComposable { + } + + public final class PausableMonotonicFrameClock implements androidx.compose.runtime.MonotonicFrameClock { + ctor public PausableMonotonicFrameClock(androidx.compose.runtime.MonotonicFrameClock frameClock); + method public boolean isPaused(); + method public void pause(); + method public void resume(); + method public suspend Object? withFrameNanos(kotlin.jvm.functions.Function1 onFrame, kotlin.coroutines.Continuation); + property public final boolean isPaused; + } + + public final class PrimitiveSnapshotStateKt { + method public static inline operator float getValue(androidx.compose.runtime.FloatState, Object? thisObj, kotlin.reflect.KProperty property); + method @androidx.compose.runtime.snapshots.StateFactoryMarker public static androidx.compose.runtime.MutableFloatState mutableFloatStateOf(float value); + method public static inline operator void setValue(androidx.compose.runtime.MutableFloatState, Object? thisObj, kotlin.reflect.KProperty property, float value); + } + + public interface ProduceStateScope extends androidx.compose.runtime.MutableState kotlinx.coroutines.CoroutineScope { + method public suspend Object? awaitDispose(kotlin.jvm.functions.Function0 onDispose, kotlin.coroutines.Continuation); + } + + @androidx.compose.runtime.Stable public abstract class ProvidableCompositionLocal extends androidx.compose.runtime.CompositionLocal { + method public final infix androidx.compose.runtime.ProvidedValue provides(T value); + method public final infix androidx.compose.runtime.ProvidedValue providesComputed(kotlin.jvm.functions.Function1 compute); + method public final infix androidx.compose.runtime.ProvidedValue providesDefault(T value); + } + + public final class ProvidedValue { + method public boolean getCanOverride(); + method public androidx.compose.runtime.CompositionLocal getCompositionLocal(); + method public T getValue(); + property public final boolean canOverride; + property public final androidx.compose.runtime.CompositionLocal compositionLocal; + property public final T value; + } + + @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface ReadOnlyComposable { + } + + public interface RecomposeScope { + method public void invalidate(); + } + + public final class Recomposer extends androidx.compose.runtime.CompositionContext { + ctor public Recomposer(kotlin.coroutines.CoroutineContext effectCoroutineContext); + method public androidx.compose.runtime.RecomposerInfo asRecomposerInfo(); + method public suspend Object? awaitIdle(kotlin.coroutines.Continuation); + method public void cancel(); + method public void close(); + method public long getChangeCount(); + method public kotlinx.coroutines.flow.StateFlow getCurrentState(); + method public kotlin.coroutines.CoroutineContext getEffectCoroutineContext(); + method public boolean getHasPendingWork(); + method @Deprecated public kotlinx.coroutines.flow.Flow getState(); + method public suspend Object? join(kotlin.coroutines.Continuation); + method public void pauseCompositionFrameClock(); + method public void resumeCompositionFrameClock(); + method public suspend Object? runRecomposeAndApplyChanges(kotlin.coroutines.Continuation); + method @SuppressCompatibility @androidx.compose.runtime.ExperimentalComposeApi public suspend Object? runRecomposeConcurrentlyAndApplyChanges(kotlin.coroutines.CoroutineContext recomposeCoroutineContext, kotlin.coroutines.Continuation); + property public final long changeCount; + property public final kotlinx.coroutines.flow.StateFlow currentState; + property public kotlin.coroutines.CoroutineContext effectCoroutineContext; + property public final boolean hasPendingWork; + property @Deprecated public final kotlinx.coroutines.flow.Flow state; + field public static final androidx.compose.runtime.Recomposer.Companion Companion; + } + + public static final class Recomposer.Companion { + method public kotlinx.coroutines.flow.StateFlow> getRunningRecomposers(); + property public final kotlinx.coroutines.flow.StateFlow> runningRecomposers; + } + + public enum Recomposer.State { + enum_constant public static final androidx.compose.runtime.Recomposer.State Idle; + enum_constant public static final androidx.compose.runtime.Recomposer.State Inactive; + enum_constant public static final androidx.compose.runtime.Recomposer.State InactivePendingWork; + enum_constant public static final androidx.compose.runtime.Recomposer.State PendingWork; + enum_constant public static final androidx.compose.runtime.Recomposer.State ShutDown; + enum_constant public static final androidx.compose.runtime.Recomposer.State ShuttingDown; + } + + public interface RecomposerInfo { + method public long getChangeCount(); + method public boolean getHasPendingWork(); + method public kotlinx.coroutines.flow.Flow getState(); + property public abstract long changeCount; + property public abstract boolean hasPendingWork; + property public abstract kotlinx.coroutines.flow.Flow state; + } + + public final class RecomposerKt { + method public static suspend Object? withRunningRecomposer(kotlin.jvm.functions.Function3,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + } + + public interface RememberObserver { + method public void onAbandoned(); + method public void onForgotten(); + method public void onRemembered(); + } + + public sealed interface ReusableComposition extends androidx.compose.runtime.Composition { + method public void deactivate(); + method public void setContentWithReuse(kotlin.jvm.functions.Function0 content); + } + + @androidx.compose.runtime.ComposeCompilerApi public interface ScopeUpdateScope { + method public void updateScope(kotlin.jvm.functions.Function2 block); + } + + @kotlin.jvm.JvmInline public final value class SkippableUpdater { + ctor public SkippableUpdater(@kotlin.PublishedApi androidx.compose.runtime.Composer composer); + method public inline void update(kotlin.jvm.functions.Function1,kotlin.Unit> block); + } + + public final class SnapshotDoubleStateKt { + method public static inline operator double getValue(androidx.compose.runtime.DoubleState, Object? thisObj, kotlin.reflect.KProperty property); + method @androidx.compose.runtime.snapshots.StateFactoryMarker public static androidx.compose.runtime.MutableDoubleState mutableDoubleStateOf(double value); + method public static inline operator void setValue(androidx.compose.runtime.MutableDoubleState, Object? thisObj, kotlin.reflect.KProperty property, double value); + } + + public final class SnapshotIntStateKt { + method public static inline operator int getValue(androidx.compose.runtime.IntState, Object? thisObj, kotlin.reflect.KProperty property); + method @androidx.compose.runtime.snapshots.StateFactoryMarker public static androidx.compose.runtime.MutableIntState mutableIntStateOf(int value); + method public static inline operator void setValue(androidx.compose.runtime.MutableIntState, Object? thisObj, kotlin.reflect.KProperty property, int value); + } + + public final class SnapshotLongStateKt { + method public static inline operator long getValue(androidx.compose.runtime.LongState, Object? thisObj, kotlin.reflect.KProperty property); + method @androidx.compose.runtime.snapshots.StateFactoryMarker public static androidx.compose.runtime.MutableLongState mutableLongStateOf(long value); + method public static inline operator void setValue(androidx.compose.runtime.MutableLongState, Object? thisObj, kotlin.reflect.KProperty property, long value); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface SnapshotMutationPolicy { + method public boolean equivalent(T a, T b); + method public default T? merge(T previous, T current, T applied); + } + + public final class SnapshotStateExtensionsKt { + method @androidx.compose.runtime.Stable public static androidx.compose.runtime.DoubleState asDoubleState(androidx.compose.runtime.State); + method @androidx.compose.runtime.Stable public static androidx.compose.runtime.FloatState asFloatState(androidx.compose.runtime.State); + method @androidx.compose.runtime.Stable public static androidx.compose.runtime.IntState asIntState(androidx.compose.runtime.State); + method @androidx.compose.runtime.Stable public static androidx.compose.runtime.LongState asLongState(androidx.compose.runtime.State); + } + + public final class SnapshotStateKt { + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State collectAsState(kotlinx.coroutines.flow.Flow, R initial, optional kotlin.coroutines.CoroutineContext context); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State collectAsState(kotlinx.coroutines.flow.StateFlow, optional kotlin.coroutines.CoroutineContext context); + method @androidx.compose.runtime.snapshots.StateFactoryMarker public static androidx.compose.runtime.State derivedStateOf(androidx.compose.runtime.SnapshotMutationPolicy policy, kotlin.jvm.functions.Function0 calculation); + method @androidx.compose.runtime.snapshots.StateFactoryMarker public static androidx.compose.runtime.State derivedStateOf(kotlin.jvm.functions.Function0 calculation); + method public static inline operator T getValue(androidx.compose.runtime.State, Object? thisObj, kotlin.reflect.KProperty property); + method @androidx.compose.runtime.snapshots.StateFactoryMarker public static androidx.compose.runtime.snapshots.SnapshotStateList mutableStateListOf(); + method @androidx.compose.runtime.snapshots.StateFactoryMarker public static androidx.compose.runtime.snapshots.SnapshotStateList mutableStateListOf(T... elements); + method @androidx.compose.runtime.snapshots.StateFactoryMarker public static androidx.compose.runtime.snapshots.SnapshotStateMap mutableStateMapOf(); + method @androidx.compose.runtime.snapshots.StateFactoryMarker public static androidx.compose.runtime.snapshots.SnapshotStateMap mutableStateMapOf(kotlin.Pair... pairs); + method @androidx.compose.runtime.snapshots.StateFactoryMarker public static androidx.compose.runtime.MutableState mutableStateOf(T value, optional androidx.compose.runtime.SnapshotMutationPolicy policy); + method public static androidx.compose.runtime.SnapshotMutationPolicy neverEqualPolicy(); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State produceState(T initialValue, Object? key1, Object? key2, Object? key3, kotlin.jvm.functions.Function2,? super kotlin.coroutines.Continuation,? extends java.lang.Object?> producer); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State produceState(T initialValue, Object? key1, Object? key2, kotlin.jvm.functions.Function2,? super kotlin.coroutines.Continuation,? extends java.lang.Object?> producer); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State produceState(T initialValue, Object? key1, kotlin.jvm.functions.Function2,? super kotlin.coroutines.Continuation,? extends java.lang.Object?> producer); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State produceState(T initialValue, Object?[] keys, kotlin.jvm.functions.Function2,? super kotlin.coroutines.Continuation,? extends java.lang.Object?> producer); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State produceState(T initialValue, kotlin.jvm.functions.Function2,? super kotlin.coroutines.Continuation,? extends java.lang.Object?> producer); + method public static androidx.compose.runtime.SnapshotMutationPolicy referentialEqualityPolicy(); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State rememberUpdatedState(T newValue); + method public static inline operator void setValue(androidx.compose.runtime.MutableState, Object? thisObj, kotlin.reflect.KProperty property, T value); + method public static kotlinx.coroutines.flow.Flow snapshotFlow(kotlin.jvm.functions.Function0 block); + method public static androidx.compose.runtime.SnapshotMutationPolicy structuralEqualityPolicy(); + method public static androidx.compose.runtime.snapshots.SnapshotStateList toMutableStateList(java.util.Collection); + method public static androidx.compose.runtime.snapshots.SnapshotStateMap toMutableStateMap(Iterable>); + } + + @androidx.compose.runtime.StableMarker @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER, kotlin.annotation.AnnotationTarget.PROPERTY}) public @interface Stable { + } + + @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.ANNOTATION_CLASS, kotlin.annotation.AnnotationTarget.CLASS}) public @interface StableMarker { + } + + @androidx.compose.runtime.Stable public interface State { + method public T getValue(); + property public abstract T value; + } + + @kotlin.jvm.JvmInline public final value class Updater { + ctor public Updater(@kotlin.PublishedApi androidx.compose.runtime.Composer composer); + method public void init(kotlin.jvm.functions.Function1 block); + method public void reconcile(kotlin.jvm.functions.Function1 block); + method public inline void set(int value, kotlin.jvm.functions.Function2 block); + method public void set(V value, kotlin.jvm.functions.Function2 block); + method public inline void update(int value, kotlin.jvm.functions.Function2 block); + method public void update(V value, kotlin.jvm.functions.Function2 block); + } + +} + +package androidx.compose.runtime.collection { + + public final class MutableVector implements java.util.RandomAccess { + method public void add(int index, T element); + method public boolean add(T element); + method public inline boolean addAll(androidx.compose.runtime.collection.MutableVector elements); + method public boolean addAll(int index, androidx.compose.runtime.collection.MutableVector elements); + method public boolean addAll(int index, java.util.Collection elements); + method public boolean addAll(int index, java.util.List elements); + method public boolean addAll(java.util.Collection elements); + method public inline boolean addAll(java.util.List elements); + method public boolean addAll(T[] elements); + method public inline boolean any(kotlin.jvm.functions.Function1 predicate); + method public java.util.List asMutableList(); + method public void clear(); + method public operator boolean contains(T element); + method public boolean containsAll(androidx.compose.runtime.collection.MutableVector elements); + method public boolean containsAll(java.util.Collection elements); + method public boolean containsAll(java.util.List elements); + method public boolean contentEquals(androidx.compose.runtime.collection.MutableVector other); + method public void ensureCapacity(int capacity); + method public T first(); + method public inline T first(kotlin.jvm.functions.Function1 predicate); + method public inline T? firstOrNull(); + method public inline T? firstOrNull(kotlin.jvm.functions.Function1 predicate); + method public inline R fold(R initial, kotlin.jvm.functions.Function2 operation); + method public inline R foldIndexed(R initial, kotlin.jvm.functions.Function3 operation); + method public inline R foldRight(R initial, kotlin.jvm.functions.Function2 operation); + method public inline R foldRightIndexed(R initial, kotlin.jvm.functions.Function3 operation); + method public inline void forEach(kotlin.jvm.functions.Function1 block); + method public inline void forEachIndexed(kotlin.jvm.functions.Function2 block); + method public inline void forEachReversed(kotlin.jvm.functions.Function1 block); + method public inline void forEachReversedIndexed(kotlin.jvm.functions.Function2 block); + method public inline operator T get(int index); + method public inline kotlin.ranges.IntRange getIndices(); + method public inline int getLastIndex(); + method public int getSize(); + method public int indexOf(T element); + method public inline int indexOfFirst(kotlin.jvm.functions.Function1 predicate); + method public inline int indexOfLast(kotlin.jvm.functions.Function1 predicate); + method public boolean isEmpty(); + method public boolean isNotEmpty(); + method public T last(); + method public inline T last(kotlin.jvm.functions.Function1 predicate); + method public int lastIndexOf(T element); + method public inline T? lastOrNull(); + method public inline T? lastOrNull(kotlin.jvm.functions.Function1 predicate); + method public inline R[] map(kotlin.jvm.functions.Function1 transform); + method public inline R[] mapIndexed(kotlin.jvm.functions.Function2 transform); + method public inline androidx.compose.runtime.collection.MutableVector mapIndexedNotNull(kotlin.jvm.functions.Function2 transform); + method public inline androidx.compose.runtime.collection.MutableVector mapNotNull(kotlin.jvm.functions.Function1 transform); + method public inline operator void minusAssign(T element); + method public inline operator void plusAssign(T element); + method public boolean remove(T element); + method public boolean removeAll(androidx.compose.runtime.collection.MutableVector elements); + method public boolean removeAll(java.util.Collection elements); + method public boolean removeAll(java.util.List elements); + method public T removeAt(int index); + method public inline void removeIf(kotlin.jvm.functions.Function1 predicate); + method public void removeRange(int start, int end); + method public boolean retainAll(java.util.Collection elements); + method public inline boolean reversedAny(kotlin.jvm.functions.Function1 predicate); + method public operator T set(int index, T element); + method public void sortWith(java.util.Comparator comparator); + method public inline int sumBy(kotlin.jvm.functions.Function1 selector); + property public final inline kotlin.ranges.IntRange indices; + property public final inline int lastIndex; + property public final int size; + } + + public final class MutableVectorKt { + method public static inline androidx.compose.runtime.collection.MutableVector MutableVector(optional int capacity); + method public static inline androidx.compose.runtime.collection.MutableVector MutableVector(int size, kotlin.jvm.functions.Function1 init); + method public static inline androidx.compose.runtime.collection.MutableVector mutableVectorOf(); + method public static inline androidx.compose.runtime.collection.MutableVector mutableVectorOf(T... elements); + } + +} + +package androidx.compose.runtime.internal { + + @androidx.compose.runtime.ComposeCompilerApi @androidx.compose.runtime.Stable public interface ComposableLambda extends kotlin.jvm.functions.Function2 kotlin.jvm.functions.Function10 kotlin.jvm.functions.Function11 kotlin.jvm.functions.Function13 kotlin.jvm.functions.Function14 kotlin.jvm.functions.Function15 kotlin.jvm.functions.Function16 kotlin.jvm.functions.Function17 kotlin.jvm.functions.Function18 kotlin.jvm.functions.Function19 kotlin.jvm.functions.Function20 kotlin.jvm.functions.Function21 kotlin.jvm.functions.Function3 kotlin.jvm.functions.Function4 kotlin.jvm.functions.Function5 kotlin.jvm.functions.Function6 kotlin.jvm.functions.Function7 kotlin.jvm.functions.Function8 kotlin.jvm.functions.Function9 { + } + + public final class ComposableLambdaKt { + method @androidx.compose.runtime.ComposeCompilerApi public static androidx.compose.runtime.internal.ComposableLambda composableLambda(androidx.compose.runtime.Composer composer, int key, boolean tracked, Object block); + method @androidx.compose.runtime.ComposeCompilerApi public static androidx.compose.runtime.internal.ComposableLambda composableLambdaInstance(int key, boolean tracked, Object block); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ComposeCompilerApi public static androidx.compose.runtime.internal.ComposableLambda rememberComposableLambda(int key, boolean tracked, Object block); + } + + @androidx.compose.runtime.ComposeCompilerApi @androidx.compose.runtime.Stable public interface ComposableLambdaN extends kotlin.jvm.functions.FunctionN { + } + + public final class ComposableLambdaN_jvmKt { + method @androidx.compose.runtime.ComposeCompilerApi public static androidx.compose.runtime.internal.ComposableLambdaN composableLambdaN(androidx.compose.runtime.Composer composer, int key, boolean tracked, int arity, Object block); + method @androidx.compose.runtime.ComposeCompilerApi public static androidx.compose.runtime.internal.ComposableLambdaN composableLambdaNInstance(int key, boolean tracked, int arity, Object block); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ComposeCompilerApi public static androidx.compose.runtime.internal.ComposableLambdaN rememberComposableLambdaN(int key, boolean tracked, int arity, Object block); + } + + @SuppressCompatibility @androidx.compose.runtime.ExperimentalComposeApi @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.CONSTRUCTOR}) public @interface Decoy { + method public abstract String[] signature(); + method public abstract String targetName(); + property public abstract String[] signature; + property public abstract String targetName; + } + + @SuppressCompatibility @androidx.compose.runtime.ExperimentalComposeApi @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.CONSTRUCTOR}) public @interface DecoyImplementation { + method public abstract long id(); + method public abstract String name(); + property public abstract long id; + property public abstract String name; + } + + public final class DecoyKt { + method @androidx.compose.runtime.ComposeCompilerApi public static Void illegalDecoyCallException(String fName); + } + + @androidx.compose.runtime.ComposeCompilerApi @kotlin.annotation.Repeatable @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.RUNTIME) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.CLASS) public @interface FunctionKeyMeta { + method public abstract int endOffset(); + method public abstract int key(); + method public abstract int startOffset(); + property public abstract int endOffset; + property public abstract int key; + property public abstract int startOffset; + } + + @androidx.compose.runtime.ComposeCompilerApi @kotlin.annotation.Repeatable @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.RUNTIME) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.CLASS) public static @interface FunctionKeyMeta.Container { + method public abstract androidx.compose.runtime.internal.FunctionKeyMeta[] value(); + } + + @androidx.compose.runtime.ComposeCompilerApi @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.RUNTIME) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.CLASS) public @interface FunctionKeyMetaClass { + method public abstract String file(); + property public abstract String file; + } + + @androidx.compose.runtime.ComposeCompilerApi @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.RUNTIME) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.CLASS) public @interface LiveLiteralFileInfo { + method public abstract String file(); + property public abstract String file; + } + + @androidx.compose.runtime.ComposeCompilerApi @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.RUNTIME) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.FUNCTION) public @interface LiveLiteralInfo { + method public abstract String key(); + method public abstract int offset(); + property public abstract String key; + property public abstract int offset; + } + + public final class LiveLiteralKt { + method @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi public static void enableLiveLiterals(); + method public static boolean isLiveLiteralsEnabled(); + method @SuppressCompatibility @androidx.compose.runtime.ComposeCompilerApi @androidx.compose.runtime.InternalComposeApi public static androidx.compose.runtime.State liveLiteral(String key, T value); + method @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi public static void updateLiveLiteralValue(String key, Object? value); + property public static final boolean isLiveLiteralsEnabled; + } + + @androidx.compose.runtime.ComposeCompilerApi @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.CLASS) public @interface StabilityInferred { + method public abstract int parameters(); + property public abstract int parameters; + } + +} + +package androidx.compose.runtime.reflect { + + public final class ComposableMethod { + method public java.lang.reflect.Method asMethod(); + method public int getParameterCount(); + method public Class[] getParameterTypes(); + method public java.lang.reflect.Parameter[] getParameters(); + method public operator Object? invoke(androidx.compose.runtime.Composer composer, Object? instance, java.lang.Object?... args); + property public final int parameterCount; + property public final Class[] parameterTypes; + property public final java.lang.reflect.Parameter[] parameters; + } + + public final class ComposableMethodKt { + method public static androidx.compose.runtime.reflect.ComposableMethod? asComposableMethod(java.lang.reflect.Method); + method @kotlin.jvm.Throws(exceptionClasses=NoSuchMethodException::class) public static androidx.compose.runtime.reflect.ComposableMethod getDeclaredComposableMethod(Class, String methodName, Class... args) throws java.lang.NoSuchMethodException; + } + +} + +package androidx.compose.runtime.snapshots { + + @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.PROPERTY_SETTER, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface AutoboxingStateValueProperty { + method public abstract String preferredPropertyName(); + property public abstract String preferredPropertyName; + } + + public class MutableSnapshot extends androidx.compose.runtime.snapshots.Snapshot { + method public androidx.compose.runtime.snapshots.SnapshotApplyResult apply(); + method public kotlin.jvm.functions.Function1? getReadObserver(); + method public boolean getReadOnly(); + method public androidx.compose.runtime.snapshots.Snapshot getRoot(); + method public kotlin.jvm.functions.Function1? getWriteObserver(); + method public boolean hasPendingChanges(); + method public androidx.compose.runtime.snapshots.MutableSnapshot takeNestedMutableSnapshot(optional kotlin.jvm.functions.Function1? readObserver, optional kotlin.jvm.functions.Function1? writeObserver); + method public androidx.compose.runtime.snapshots.Snapshot takeNestedSnapshot(kotlin.jvm.functions.Function1? readObserver); + property public kotlin.jvm.functions.Function1? readObserver; + property public boolean readOnly; + property public androidx.compose.runtime.snapshots.Snapshot root; + property public kotlin.jvm.functions.Function1? writeObserver; + } + + public fun interface ObserverHandle { + method public void dispose(); + } + + public abstract sealed class Snapshot { + method public void dispose(); + method public final inline T enter(kotlin.jvm.functions.Function0 block); + method public int getId(); + method public abstract boolean getReadOnly(); + method public abstract androidx.compose.runtime.snapshots.Snapshot getRoot(); + method public abstract boolean hasPendingChanges(); + method public abstract androidx.compose.runtime.snapshots.Snapshot takeNestedSnapshot(optional kotlin.jvm.functions.Function1? readObserver); + method @SuppressCompatibility @androidx.compose.runtime.ExperimentalComposeApi public final androidx.compose.runtime.snapshots.Snapshot? unsafeEnter(); + method @SuppressCompatibility @androidx.compose.runtime.ExperimentalComposeApi public final void unsafeLeave(androidx.compose.runtime.snapshots.Snapshot? oldSnapshot); + property public int id; + property public abstract boolean readOnly; + property public abstract androidx.compose.runtime.snapshots.Snapshot root; + field public static final androidx.compose.runtime.snapshots.Snapshot.Companion Companion; + field public static final int PreexistingSnapshotId = 1; // 0x1 + } + + public static final class Snapshot.Companion { + method public androidx.compose.runtime.snapshots.Snapshot getCurrent(); + method public inline T global(kotlin.jvm.functions.Function0 block); + method public boolean isApplyObserverNotificationPending(); + method public boolean isInSnapshot(); + method public void notifyObjectsInitialized(); + method public T observe(optional kotlin.jvm.functions.Function1? readObserver, optional kotlin.jvm.functions.Function1? writeObserver, kotlin.jvm.functions.Function0 block); + method @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi public int openSnapshotCount(); + method public androidx.compose.runtime.snapshots.ObserverHandle registerApplyObserver(kotlin.jvm.functions.Function2,? super androidx.compose.runtime.snapshots.Snapshot,kotlin.Unit> observer); + method public androidx.compose.runtime.snapshots.ObserverHandle registerGlobalWriteObserver(kotlin.jvm.functions.Function1 observer); + method public void sendApplyNotifications(); + method public androidx.compose.runtime.snapshots.MutableSnapshot takeMutableSnapshot(optional kotlin.jvm.functions.Function1? readObserver, optional kotlin.jvm.functions.Function1? writeObserver); + method public androidx.compose.runtime.snapshots.Snapshot takeSnapshot(optional kotlin.jvm.functions.Function1? readObserver); + method public inline R withMutableSnapshot(kotlin.jvm.functions.Function0 block); + method public inline T withoutReadObservation(kotlin.jvm.functions.Function0 block); + property public final androidx.compose.runtime.snapshots.Snapshot current; + property public final boolean isApplyObserverNotificationPending; + property public final boolean isInSnapshot; + } + + public final class SnapshotApplyConflictException extends java.lang.Exception { + ctor public SnapshotApplyConflictException(androidx.compose.runtime.snapshots.Snapshot snapshot); + method public androidx.compose.runtime.snapshots.Snapshot getSnapshot(); + property public final androidx.compose.runtime.snapshots.Snapshot snapshot; + } + + public abstract sealed class SnapshotApplyResult { + method public abstract void check(); + method public abstract boolean getSucceeded(); + property public abstract boolean succeeded; + } + + public static final class SnapshotApplyResult.Failure extends androidx.compose.runtime.snapshots.SnapshotApplyResult { + ctor public SnapshotApplyResult.Failure(androidx.compose.runtime.snapshots.Snapshot snapshot); + method public void check(); + method public androidx.compose.runtime.snapshots.Snapshot getSnapshot(); + method public boolean getSucceeded(); + property public final androidx.compose.runtime.snapshots.Snapshot snapshot; + property public boolean succeeded; + } + + public static final class SnapshotApplyResult.Success extends androidx.compose.runtime.snapshots.SnapshotApplyResult { + method public void check(); + method public boolean getSucceeded(); + property public boolean succeeded; + field public static final androidx.compose.runtime.snapshots.SnapshotApplyResult.Success INSTANCE; + } + + @SuppressCompatibility @androidx.compose.runtime.ExperimentalComposeApi public interface SnapshotContextElement extends kotlin.coroutines.CoroutineContext.Element { + field public static final androidx.compose.runtime.snapshots.SnapshotContextElement.Key Key; + } + + public static final class SnapshotContextElement.Key implements kotlin.coroutines.CoroutineContext.Key { + } + + public final class SnapshotContextElementKt { + method @SuppressCompatibility @androidx.compose.runtime.ExperimentalComposeApi public static androidx.compose.runtime.snapshots.SnapshotContextElement asContextElement(androidx.compose.runtime.snapshots.Snapshot); + } + + public final class SnapshotKt { + method public static T readable(T, androidx.compose.runtime.snapshots.StateObject state); + method public static T readable(T, androidx.compose.runtime.snapshots.StateObject state, androidx.compose.runtime.snapshots.Snapshot snapshot); + method public static inline R withCurrent(T, kotlin.jvm.functions.Function1 block); + method public static inline R writable(T, androidx.compose.runtime.snapshots.StateObject state, androidx.compose.runtime.snapshots.Snapshot snapshot, kotlin.jvm.functions.Function1 block); + method public static inline R writable(T, androidx.compose.runtime.snapshots.StateObject state, kotlin.jvm.functions.Function1 block); + } + + public interface SnapshotMutableState extends androidx.compose.runtime.MutableState { + method public androidx.compose.runtime.SnapshotMutationPolicy getPolicy(); + property public abstract androidx.compose.runtime.SnapshotMutationPolicy policy; + } + + @androidx.compose.runtime.Stable public final class SnapshotStateList implements kotlin.jvm.internal.markers.KMutableList java.util.List java.util.RandomAccess androidx.compose.runtime.snapshots.StateObject { + ctor public SnapshotStateList(); + method public void add(int index, T element); + method public boolean add(T element); + method public boolean addAll(int index, java.util.Collection elements); + method public boolean addAll(java.util.Collection elements); + method public void clear(); + method public boolean contains(T element); + method public boolean containsAll(java.util.Collection elements); + method public T get(int index); + method public androidx.compose.runtime.snapshots.StateRecord getFirstStateRecord(); + method public int getSize(); + method public int indexOf(T element); + method public boolean isEmpty(); + method public java.util.Iterator iterator(); + method public int lastIndexOf(T element); + method public java.util.ListIterator listIterator(); + method public java.util.ListIterator listIterator(int index); + method public void prependStateRecord(androidx.compose.runtime.snapshots.StateRecord value); + method public boolean remove(T element); + method public boolean removeAll(java.util.Collection elements); + method public T removeAt(int index); + method public void removeRange(int fromIndex, int toIndex); + method public boolean retainAll(java.util.Collection elements); + method public T set(int index, T element); + method public java.util.List subList(int fromIndex, int toIndex); + method public java.util.List toList(); + property public androidx.compose.runtime.snapshots.StateRecord firstStateRecord; + property public int size; + } + + @androidx.compose.runtime.Stable public final class SnapshotStateMap implements kotlin.jvm.internal.markers.KMutableMap java.util.Map androidx.compose.runtime.snapshots.StateObject { + ctor public SnapshotStateMap(); + method public void clear(); + method public boolean containsKey(K key); + method public boolean containsValue(V value); + method public V? get(Object key); + method public java.util.Set> getEntries(); + method public androidx.compose.runtime.snapshots.StateRecord getFirstStateRecord(); + method public java.util.Set getKeys(); + method public int getSize(); + method public java.util.Collection getValues(); + method public boolean isEmpty(); + method public void prependStateRecord(androidx.compose.runtime.snapshots.StateRecord value); + method public V? put(K key, V value); + method public void putAll(java.util.Map from); + method public V? remove(Object key); + method public java.util.Map toMap(); + property public java.util.Set> entries; + property public androidx.compose.runtime.snapshots.StateRecord firstStateRecord; + property public java.util.Set keys; + property public int size; + property public java.util.Collection values; + } + + public final class SnapshotStateObserver { + ctor public SnapshotStateObserver(kotlin.jvm.functions.Function1,kotlin.Unit> onChangedExecutor); + method public void clear(); + method public void clear(Object scope); + method public void clearIf(kotlin.jvm.functions.Function1 predicate); + method @org.jetbrains.annotations.TestOnly public void notifyChanges(java.util.Set changes, androidx.compose.runtime.snapshots.Snapshot snapshot); + method public void observeReads(T scope, kotlin.jvm.functions.Function1 onValueChangedForScope, kotlin.jvm.functions.Function0 block); + method public void start(); + method public void stop(); + method @Deprecated public void withNoObservations(kotlin.jvm.functions.Function0 block); + } + + @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.FUNCTION) public @interface StateFactoryMarker { + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface StateObject { + method public androidx.compose.runtime.snapshots.StateRecord getFirstStateRecord(); + method public default androidx.compose.runtime.snapshots.StateRecord? mergeRecords(androidx.compose.runtime.snapshots.StateRecord previous, androidx.compose.runtime.snapshots.StateRecord current, androidx.compose.runtime.snapshots.StateRecord applied); + method public void prependStateRecord(androidx.compose.runtime.snapshots.StateRecord value); + property public abstract androidx.compose.runtime.snapshots.StateRecord firstStateRecord; + } + + public abstract class StateRecord { + ctor public StateRecord(); + method public abstract void assign(androidx.compose.runtime.snapshots.StateRecord value); + method public abstract androidx.compose.runtime.snapshots.StateRecord create(); + } + +} + +package androidx.compose.runtime.tooling { + + public interface CompositionData { + method public default androidx.compose.runtime.tooling.CompositionGroup? find(Object identityToFind); + method public Iterable getCompositionGroups(); + method public boolean isEmpty(); + property public abstract Iterable compositionGroups; + property public abstract boolean isEmpty; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface CompositionGroup extends androidx.compose.runtime.tooling.CompositionData { + method public Iterable getData(); + method public default int getGroupSize(); + method public default Object? getIdentity(); + method public Object getKey(); + method public Object? getNode(); + method public default int getSlotsSize(); + method public String? getSourceInfo(); + property public abstract Iterable data; + property public default int groupSize; + property public default Object? identity; + property public abstract Object key; + property public abstract Object? node; + property public default int slotsSize; + property public abstract String? sourceInfo; + } + + @SuppressCompatibility @androidx.compose.runtime.ExperimentalComposeRuntimeApi public interface CompositionObserver { + method public void onBeginComposition(androidx.compose.runtime.Composition composition, java.util.Map?> invalidationMap); + method public void onEndComposition(androidx.compose.runtime.Composition composition); + } + + @SuppressCompatibility @androidx.compose.runtime.ExperimentalComposeRuntimeApi public interface CompositionObserverHandle { + method public void dispose(); + } + + public final class CompositionObserverKt { + method @SuppressCompatibility @androidx.compose.runtime.ExperimentalComposeRuntimeApi public static androidx.compose.runtime.tooling.CompositionObserverHandle? observe(androidx.compose.runtime.Composition, androidx.compose.runtime.tooling.CompositionObserver observer); + method @SuppressCompatibility @androidx.compose.runtime.ExperimentalComposeRuntimeApi public static androidx.compose.runtime.tooling.CompositionObserverHandle observe(androidx.compose.runtime.RecomposeScope, androidx.compose.runtime.tooling.RecomposeScopeObserver observer); + } + + public final class InspectionTablesKt { + method public static androidx.compose.runtime.ProvidableCompositionLocal?> getLocalInspectionTables(); + property public static final androidx.compose.runtime.ProvidableCompositionLocal?> LocalInspectionTables; + } + + @SuppressCompatibility @androidx.compose.runtime.ExperimentalComposeRuntimeApi public interface RecomposeScopeObserver { + method public void onBeginScopeComposition(androidx.compose.runtime.RecomposeScope scope); + method public void onEndScopeComposition(androidx.compose.runtime.RecomposeScope scope); + method public void onScopeDisposed(androidx.compose.runtime.RecomposeScope scope); + } + +} + diff --git a/compose/runtime/runtime/api/res-1.7.0-beta07.txt b/compose/runtime/runtime/api/res-1.7.0-beta07.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/compose/runtime/runtime/api/restricted_1.7.0-beta07.txt b/compose/runtime/runtime/api/restricted_1.7.0-beta07.txt new file mode 100644 index 0000000000000..19b6104e674a2 --- /dev/null +++ b/compose/runtime/runtime/api/restricted_1.7.0-beta07.txt @@ -0,0 +1,1136 @@ +// Signature format: 4.0 +package androidx.compose.runtime { + + public abstract class AbstractApplier implements androidx.compose.runtime.Applier { + ctor public AbstractApplier(T root); + method public final void clear(); + method public void down(T node); + method public T getCurrent(); + method public final T getRoot(); + method protected final void move(java.util.List, int from, int to, int count); + method protected abstract void onClear(); + method protected final void remove(java.util.List, int index, int count); + method protected void setCurrent(T); + method public void up(); + property public T current; + property public final T root; + } + + public final class ActualAndroid_androidKt { + method @Deprecated public static androidx.compose.runtime.MonotonicFrameClock getDefaultMonotonicFrameClock(); + property @Deprecated public static final androidx.compose.runtime.MonotonicFrameClock DefaultMonotonicFrameClock; + } + + public final class ActualJvm_jvmKt { + method @kotlin.PublishedApi internal static inline R synchronized(Object lock, kotlin.jvm.functions.Function0 block); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface Applier { + method public void clear(); + method public void down(N node); + method public N getCurrent(); + method public void insertBottomUp(int index, N instance); + method public void insertTopDown(int index, N instance); + method public void move(int from, int to, int count); + method public default void onBeginChanges(); + method public default void onEndChanges(); + method public void remove(int index, int count); + method public void up(); + property public abstract N current; + } + + public final class BroadcastFrameClock implements androidx.compose.runtime.MonotonicFrameClock { + ctor public BroadcastFrameClock(optional kotlin.jvm.functions.Function0? onNewAwaiters); + method public void cancel(optional java.util.concurrent.CancellationException cancellationException); + method public boolean getHasAwaiters(); + method public void sendFrame(long timeNanos); + method public suspend Object? withFrameNanos(kotlin.jvm.functions.Function1 onFrame, kotlin.coroutines.Continuation); + property public final boolean hasAwaiters; + } + + @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.TYPE, kotlin.annotation.AnnotationTarget.TYPE_PARAMETER, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface Composable { + } + + @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface ComposableInferredTarget { + method public abstract String scheme(); + property public abstract String scheme; + } + + @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER, kotlin.annotation.AnnotationTarget.TYPE, kotlin.annotation.AnnotationTarget.TYPE_PARAMETER}) public @interface ComposableOpenTarget { + method public abstract int index(); + property public abstract int index; + } + + @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FILE, kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER, kotlin.annotation.AnnotationTarget.TYPE, kotlin.annotation.AnnotationTarget.TYPE_PARAMETER}) public @interface ComposableTarget { + method public abstract String applier(); + property public abstract String applier; + } + + @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.ANNOTATION_CLASS) public @interface ComposableTargetMarker { + method public abstract String description() default ""; + property public abstract String description; + } + + public final class ComposablesKt { + method @androidx.compose.runtime.Composable public static inline > void ComposeNode(kotlin.jvm.functions.Function0 factory, kotlin.jvm.functions.Function1,kotlin.Unit> update); + method @androidx.compose.runtime.Composable public static inline > void ComposeNode(kotlin.jvm.functions.Function0 factory, kotlin.jvm.functions.Function1,kotlin.Unit> update, kotlin.jvm.functions.Function0 content); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ExplicitGroupsComposable public static inline > void ComposeNode(kotlin.jvm.functions.Function0 factory, kotlin.jvm.functions.Function1,kotlin.Unit> update, kotlin.jvm.functions.Function1,kotlin.Unit> skippableUpdate, kotlin.jvm.functions.Function0 content); + method @androidx.compose.runtime.Composable public static inline > void ReusableComposeNode(kotlin.jvm.functions.Function0 factory, kotlin.jvm.functions.Function1,kotlin.Unit> update); + method @androidx.compose.runtime.Composable public static inline > void ReusableComposeNode(kotlin.jvm.functions.Function0 factory, kotlin.jvm.functions.Function1,kotlin.Unit> update, kotlin.jvm.functions.Function0 content); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ExplicitGroupsComposable public static inline > void ReusableComposeNode(kotlin.jvm.functions.Function0 factory, kotlin.jvm.functions.Function1,kotlin.Unit> update, kotlin.jvm.functions.Function1,kotlin.Unit> skippableUpdate, kotlin.jvm.functions.Function0 content); + method @androidx.compose.runtime.Composable public static inline void ReusableContent(Object? key, kotlin.jvm.functions.Function0 content); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ExplicitGroupsComposable public static inline void ReusableContentHost(boolean active, kotlin.jvm.functions.Function0 content); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static androidx.compose.runtime.Composer getCurrentComposer(); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ExplicitGroupsComposable public static int getCurrentCompositeKeyHash(); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.CompositionLocalContext getCurrentCompositionLocalContext(); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static androidx.compose.runtime.RecomposeScope getCurrentRecomposeScope(); + method @kotlin.PublishedApi internal static void invalidApplier(); + method @androidx.compose.runtime.Composable public static inline T key(Object?[] keys, kotlin.jvm.functions.Function0 block); + method @androidx.compose.runtime.Composable public static inline T remember(Object? key1, Object? key2, Object? key3, kotlin.jvm.functions.Function0 calculation); + method @androidx.compose.runtime.Composable public static inline T remember(Object? key1, Object? key2, kotlin.jvm.functions.Function0 calculation); + method @androidx.compose.runtime.Composable public static inline T remember(Object? key1, kotlin.jvm.functions.Function0 calculation); + method @androidx.compose.runtime.Composable public static inline T remember(Object?[] keys, kotlin.jvm.functions.Function0 calculation); + method @androidx.compose.runtime.Composable public static inline T remember(kotlin.jvm.functions.Function0 calculation); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.CompositionContext rememberCompositionContext(); + property @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static final androidx.compose.runtime.Composer currentComposer; + property @androidx.compose.runtime.Composable @androidx.compose.runtime.ExplicitGroupsComposable public static final int currentCompositeKeyHash; + property @androidx.compose.runtime.Composable public static final androidx.compose.runtime.CompositionLocalContext currentCompositionLocalContext; + property @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static final androidx.compose.runtime.RecomposeScope currentRecomposeScope; + } + + @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY, kotlin.annotation.AnnotationTarget.TYPEALIAS}) public @interface ComposeCompilerApi { + } + + public interface ComposeNodeLifecycleCallback { + method public void onDeactivate(); + method public void onRelease(); + method public void onReuse(); + } + + public sealed interface Composer { + method @androidx.compose.runtime.ComposeCompilerApi public void apply(V value, kotlin.jvm.functions.Function2 block); + method @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi public androidx.compose.runtime.CompositionContext buildContext(); + method @androidx.compose.runtime.ComposeCompilerApi public default boolean changed(boolean value); + method @androidx.compose.runtime.ComposeCompilerApi public default boolean changed(byte value); + method @androidx.compose.runtime.ComposeCompilerApi public default boolean changed(char value); + method @androidx.compose.runtime.ComposeCompilerApi public default boolean changed(double value); + method @androidx.compose.runtime.ComposeCompilerApi public default boolean changed(float value); + method @androidx.compose.runtime.ComposeCompilerApi public default boolean changed(int value); + method @androidx.compose.runtime.ComposeCompilerApi public boolean changed(Object? value); + method @androidx.compose.runtime.ComposeCompilerApi public default boolean changed(long value); + method @androidx.compose.runtime.ComposeCompilerApi public default boolean changed(short value); + method @androidx.compose.runtime.ComposeCompilerApi public default boolean changedInstance(Object? value); + method public void collectParameterInformation(); + method @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi public T consume(androidx.compose.runtime.CompositionLocal key); + method @androidx.compose.runtime.ComposeCompilerApi public void createNode(kotlin.jvm.functions.Function0 factory); + method @androidx.compose.runtime.ComposeCompilerApi public void deactivateToEndGroup(boolean changed); + method @androidx.compose.runtime.ComposeCompilerApi public void disableReusing(); + method @org.jetbrains.annotations.TestOnly public void disableSourceInformation(); + method @androidx.compose.runtime.ComposeCompilerApi public void enableReusing(); + method @androidx.compose.runtime.ComposeCompilerApi public void endDefaults(); + method @androidx.compose.runtime.ComposeCompilerApi public void endMovableGroup(); + method @androidx.compose.runtime.ComposeCompilerApi public void endNode(); + method @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi public void endProvider(); + method @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi public void endProviders(); + method @androidx.compose.runtime.ComposeCompilerApi public void endReplaceGroup(); + method @androidx.compose.runtime.ComposeCompilerApi public void endReplaceableGroup(); + method @androidx.compose.runtime.ComposeCompilerApi public androidx.compose.runtime.ScopeUpdateScope? endRestartGroup(); + method @androidx.compose.runtime.ComposeCompilerApi public void endReusableGroup(); + method @androidx.compose.runtime.ComposeCompilerApi public void endToMarker(int marker); + method public androidx.compose.runtime.Applier getApplier(); + method @org.jetbrains.annotations.TestOnly public kotlin.coroutines.CoroutineContext getApplyCoroutineContext(); + method @org.jetbrains.annotations.TestOnly public androidx.compose.runtime.ControlledComposition getComposition(); + method public androidx.compose.runtime.tooling.CompositionData getCompositionData(); + method public int getCompoundKeyHash(); + method public androidx.compose.runtime.CompositionLocalMap getCurrentCompositionLocalMap(); + method public int getCurrentMarker(); + method public boolean getDefaultsInvalid(); + method public boolean getInserting(); + method public androidx.compose.runtime.RecomposeScope? getRecomposeScope(); + method public Object? getRecomposeScopeIdentity(); + method public boolean getSkipping(); + method @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi public void insertMovableContent(androidx.compose.runtime.MovableContent value, Object? parameter); + method @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi public void insertMovableContentReferences(java.util.List> references); + method @androidx.compose.runtime.ComposeCompilerApi public Object joinKey(Object? left, Object? right); + method @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi public void recordSideEffect(kotlin.jvm.functions.Function0 effect); + method @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi public void recordUsed(androidx.compose.runtime.RecomposeScope scope); + method @androidx.compose.runtime.ComposeCompilerApi public Object? rememberedValue(); + method @androidx.compose.runtime.ComposeCompilerApi public void skipCurrentGroup(); + method @androidx.compose.runtime.ComposeCompilerApi public void skipToGroupEnd(); + method public void sourceInformation(String sourceInformation); + method public void sourceInformationMarkerEnd(); + method public void sourceInformationMarkerStart(int key, String sourceInformation); + method @androidx.compose.runtime.ComposeCompilerApi public void startDefaults(); + method @androidx.compose.runtime.ComposeCompilerApi public void startMovableGroup(int key, Object? dataKey); + method @androidx.compose.runtime.ComposeCompilerApi public void startNode(); + method @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi public void startProvider(androidx.compose.runtime.ProvidedValue value); + method @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi public void startProviders(androidx.compose.runtime.ProvidedValue[] values); + method @androidx.compose.runtime.ComposeCompilerApi public void startReplaceGroup(int key); + method @androidx.compose.runtime.ComposeCompilerApi public void startReplaceableGroup(int key); + method @androidx.compose.runtime.ComposeCompilerApi public androidx.compose.runtime.Composer startRestartGroup(int key); + method @androidx.compose.runtime.ComposeCompilerApi public void startReusableGroup(int key, Object? dataKey); + method @androidx.compose.runtime.ComposeCompilerApi public void startReusableNode(); + method @androidx.compose.runtime.ComposeCompilerApi public void updateRememberedValue(Object? value); + method @androidx.compose.runtime.ComposeCompilerApi public void useNode(); + property public abstract androidx.compose.runtime.Applier applier; + property @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi @org.jetbrains.annotations.TestOnly public abstract kotlin.coroutines.CoroutineContext applyCoroutineContext; + property @org.jetbrains.annotations.TestOnly public abstract androidx.compose.runtime.ControlledComposition composition; + property public abstract androidx.compose.runtime.tooling.CompositionData compositionData; + property public abstract int compoundKeyHash; + property public abstract androidx.compose.runtime.CompositionLocalMap currentCompositionLocalMap; + property public abstract int currentMarker; + property public abstract boolean defaultsInvalid; + property public abstract boolean inserting; + property public abstract androidx.compose.runtime.RecomposeScope? recomposeScope; + property public abstract Object? recomposeScopeIdentity; + property public abstract boolean skipping; + field public static final androidx.compose.runtime.Composer.Companion Companion; + } + + public static final class Composer.Companion { + method public Object getEmpty(); + method @SuppressCompatibility @androidx.compose.runtime.InternalComposeTracingApi public void setTracer(androidx.compose.runtime.CompositionTracer tracer); + property public final Object Empty; + } + + public final class ComposerKt { + method @androidx.compose.runtime.ComposeCompilerApi public static inline T cache(androidx.compose.runtime.Composer, boolean invalid, kotlin.jvm.functions.Function0 block); + method @androidx.compose.runtime.ComposeCompilerApi public static boolean isTraceInProgress(); + method @androidx.compose.runtime.ComposeCompilerApi public static void sourceInformation(androidx.compose.runtime.Composer composer, String sourceInformation); + method @androidx.compose.runtime.ComposeCompilerApi public static void sourceInformationMarkerEnd(androidx.compose.runtime.Composer composer); + method @androidx.compose.runtime.ComposeCompilerApi public static void sourceInformationMarkerStart(androidx.compose.runtime.Composer composer, int key, String sourceInformation); + method @androidx.compose.runtime.ComposeCompilerApi public static void traceEventEnd(); + method @androidx.compose.runtime.ComposeCompilerApi public static void traceEventStart(int key, int dirty1, int dirty2, String info); + method @Deprecated @androidx.compose.runtime.ComposeCompilerApi public static void traceEventStart(int key, String info); + field @kotlin.PublishedApi internal static final Object compositionLocalMap; + field @kotlin.PublishedApi internal static final int compositionLocalMapKey = 202; // 0xca + field @kotlin.PublishedApi internal static final Object invocation; + field @kotlin.PublishedApi internal static final int invocationKey = 200; // 0xc8 + field @kotlin.PublishedApi internal static final Object provider; + field @kotlin.PublishedApi internal static final int providerKey = 201; // 0xc9 + field @kotlin.PublishedApi internal static final Object providerMaps; + field @kotlin.PublishedApi internal static final int providerMapsKey = 204; // 0xcc + field @kotlin.PublishedApi internal static final Object providerValues; + field @kotlin.PublishedApi internal static final int providerValuesKey = 203; // 0xcb + field @kotlin.PublishedApi internal static final Object reference; + field @kotlin.PublishedApi internal static final int referenceKey = 206; // 0xce + field @kotlin.PublishedApi internal static final int reuseKey = 207; // 0xcf + } + + public interface Composition { + method public void dispose(); + method public boolean getHasInvalidations(); + method public boolean isDisposed(); + method public void setContent(kotlin.jvm.functions.Function0 content); + property public abstract boolean hasInvalidations; + property public abstract boolean isDisposed; + } + + public abstract class CompositionContext { + method public abstract kotlin.coroutines.CoroutineContext getEffectCoroutineContext(); + property public abstract kotlin.coroutines.CoroutineContext effectCoroutineContext; + } + + public final class CompositionKt { + method public static androidx.compose.runtime.Composition Composition(androidx.compose.runtime.Applier applier, androidx.compose.runtime.CompositionContext parent); + method @SuppressCompatibility @androidx.compose.runtime.ExperimentalComposeApi public static androidx.compose.runtime.Composition Composition(androidx.compose.runtime.Applier applier, androidx.compose.runtime.CompositionContext parent, kotlin.coroutines.CoroutineContext recomposeCoroutineContext); + method @org.jetbrains.annotations.TestOnly public static androidx.compose.runtime.ControlledComposition ControlledComposition(androidx.compose.runtime.Applier applier, androidx.compose.runtime.CompositionContext parent); + method @SuppressCompatibility @androidx.compose.runtime.ExperimentalComposeApi @org.jetbrains.annotations.TestOnly public static androidx.compose.runtime.ControlledComposition ControlledComposition(androidx.compose.runtime.Applier applier, androidx.compose.runtime.CompositionContext parent, kotlin.coroutines.CoroutineContext recomposeCoroutineContext); + method public static androidx.compose.runtime.ReusableComposition ReusableComposition(androidx.compose.runtime.Applier applier, androidx.compose.runtime.CompositionContext parent); + method @SuppressCompatibility @androidx.compose.runtime.ExperimentalComposeApi public static kotlin.coroutines.CoroutineContext getRecomposeCoroutineContext(androidx.compose.runtime.ControlledComposition); + } + + @androidx.compose.runtime.Stable public abstract sealed class CompositionLocal { + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public final inline T getCurrent(); + property @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public final inline T current; + } + + public interface CompositionLocalAccessorScope { + method public T getCurrentValue(androidx.compose.runtime.CompositionLocal); + } + + @androidx.compose.runtime.Stable public final class CompositionLocalContext { + } + + public final class CompositionLocalKt { + method @androidx.compose.runtime.Composable public static void CompositionLocalProvider(androidx.compose.runtime.CompositionLocalContext context, kotlin.jvm.functions.Function0 content); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonSkippableComposable public static void CompositionLocalProvider(androidx.compose.runtime.ProvidedValue value, kotlin.jvm.functions.Function0 content); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonSkippableComposable public static void CompositionLocalProvider(androidx.compose.runtime.ProvidedValue[] values, kotlin.jvm.functions.Function0 content); + method public static androidx.compose.runtime.ProvidableCompositionLocal compositionLocalOf(optional androidx.compose.runtime.SnapshotMutationPolicy policy, kotlin.jvm.functions.Function0 defaultFactory); + method public static androidx.compose.runtime.ProvidableCompositionLocal compositionLocalWithComputedDefaultOf(kotlin.jvm.functions.Function1 defaultComputation); + method public static androidx.compose.runtime.ProvidableCompositionLocal staticCompositionLocalOf(kotlin.jvm.functions.Function0 defaultFactory); + } + + public sealed interface CompositionLocalMap { + method public operator T get(androidx.compose.runtime.CompositionLocal key); + field public static final androidx.compose.runtime.CompositionLocalMap.Companion Companion; + } + + public static final class CompositionLocalMap.Companion { + method public androidx.compose.runtime.CompositionLocalMap getEmpty(); + property public final androidx.compose.runtime.CompositionLocalMap Empty; + } + + @kotlin.PublishedApi internal final class CompositionScopedCoroutineScopeCanceller implements androidx.compose.runtime.RememberObserver { + ctor public CompositionScopedCoroutineScopeCanceller(kotlinx.coroutines.CoroutineScope coroutineScope); + method public kotlinx.coroutines.CoroutineScope getCoroutineScope(); + method public void onAbandoned(); + method public void onForgotten(); + method public void onRemembered(); + property public final kotlinx.coroutines.CoroutineScope coroutineScope; + } + + public interface CompositionServiceKey { + } + + public interface CompositionServices { + method public T? getCompositionService(androidx.compose.runtime.CompositionServiceKey key); + } + + @SuppressCompatibility @androidx.compose.runtime.InternalComposeTracingApi public interface CompositionTracer { + method public boolean isTraceInProgress(); + method public void traceEventEnd(); + method public void traceEventStart(int key, int dirty1, int dirty2, String info); + } + + public sealed interface ControlledComposition extends androidx.compose.runtime.Composition { + method public void abandonChanges(); + method public void applyChanges(); + method public void applyLateChanges(); + method public void changesApplied(); + method public void composeContent(kotlin.jvm.functions.Function0 content); + method public R delegateInvalidations(androidx.compose.runtime.ControlledComposition? to, int groupIndex, kotlin.jvm.functions.Function0 block); + method @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi public void disposeUnusedMovableContent(androidx.compose.runtime.MovableContentState state); + method public boolean getHasPendingChanges(); + method @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi public void insertMovableContent(java.util.List> references); + method public void invalidateAll(); + method public boolean isComposing(); + method public boolean observesAnyOf(java.util.Set values); + method public void prepareCompose(kotlin.jvm.functions.Function0 block); + method public boolean recompose(); + method public void recordModificationsOf(java.util.Set values); + method public void recordReadOf(Object value); + method public void recordWriteOf(Object value); + method @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi public void verifyConsistent(); + property public abstract boolean hasPendingChanges; + property public abstract boolean isComposing; + } + + @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.TYPE) public @interface DisallowComposableCalls { + } + + public interface DisposableEffectResult { + method public void dispose(); + } + + public final class DisposableEffectScope { + ctor public DisposableEffectScope(); + method public inline androidx.compose.runtime.DisposableEffectResult onDispose(kotlin.jvm.functions.Function0 onDisposeEffect); + } + + @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.SOURCE) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.EXPRESSION) public @interface DontMemoize { + } + + @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface DoubleState extends androidx.compose.runtime.State { + method public double getDoubleValue(); + method @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="doubleValue") public default Double getValue(); + property public abstract double doubleValue; + property @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="doubleValue") public default Double value; + } + + public final class EffectsKt { + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void DisposableEffect(Object? key1, Object? key2, Object? key3, kotlin.jvm.functions.Function1 effect); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void DisposableEffect(Object? key1, Object? key2, kotlin.jvm.functions.Function1 effect); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void DisposableEffect(Object? key1, kotlin.jvm.functions.Function1 effect); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void DisposableEffect(Object?[] keys, kotlin.jvm.functions.Function1 effect); + method @Deprecated @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void DisposableEffect(kotlin.jvm.functions.Function1 effect); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void LaunchedEffect(Object? key1, Object? key2, Object? key3, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void LaunchedEffect(Object? key1, Object? key2, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void LaunchedEffect(Object? key1, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.NonRestartableComposable public static void LaunchedEffect(Object?[] keys, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block); + method @Deprecated @androidx.compose.runtime.Composable public static void LaunchedEffect(kotlin.jvm.functions.Function2,? extends java.lang.Object?> block); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ExplicitGroupsComposable @androidx.compose.runtime.NonRestartableComposable public static void SideEffect(kotlin.jvm.functions.Function0 effect); + method @kotlin.PublishedApi internal static kotlinx.coroutines.CoroutineScope createCompositionCoroutineScope(kotlin.coroutines.CoroutineContext coroutineContext, androidx.compose.runtime.Composer composer); + method @androidx.compose.runtime.Composable public static inline kotlinx.coroutines.CoroutineScope rememberCoroutineScope(optional kotlin.jvm.functions.Function0 getContext); + } + + @SuppressCompatibility @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.ERROR, message="This is an experimental API for Compose and is likely to change before becoming " + "stable.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface ExperimentalComposeApi { + } + + @SuppressCompatibility @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.ERROR, message="This in experimental API that may change frequently and without warning.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY, kotlin.annotation.AnnotationTarget.FIELD, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface ExperimentalComposeRuntimeApi { + } + + @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.SOURCE) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface ExplicitGroupsComposable { + } + + @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface FloatState extends androidx.compose.runtime.State { + method public float getFloatValue(); + method @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="floatValue") public default Float getValue(); + property public abstract float floatValue; + property @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="floatValue") public default Float value; + } + + public final class HotReloaderKt { + method @org.jetbrains.annotations.TestOnly public static void clearCompositionErrors(); + method @org.jetbrains.annotations.TestOnly public static java.util.List> currentCompositionErrors(); + method @org.jetbrains.annotations.TestOnly public static void invalidateGroupsWithKey(int key); + method @org.jetbrains.annotations.TestOnly public static void simulateHotReload(Object context); + } + + @androidx.compose.runtime.StableMarker @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.CLASS) public @interface Immutable { + } + + @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface IntState extends androidx.compose.runtime.State { + method public int getIntValue(); + method @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="intValue") public default Integer getValue(); + property public abstract int intValue; + property @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="intValue") public default Integer value; + } + + @SuppressCompatibility @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.ERROR, message="This is internal API for Compose modules that may change frequently " + "and without warning.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY}) public @interface InternalComposeApi { + } + + @SuppressCompatibility @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.ERROR, message="This is internal API that may change frequently and without warning.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface InternalComposeTracingApi { + } + + @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface LongState extends androidx.compose.runtime.State { + method public long getLongValue(); + method @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="longValue") public default Long getValue(); + property public abstract long longValue; + property @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="longValue") public default Long value; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface MonotonicFrameClock extends kotlin.coroutines.CoroutineContext.Element { + method public default kotlin.coroutines.CoroutineContext.Key getKey(); + method public suspend Object? withFrameNanos(kotlin.jvm.functions.Function1 onFrame, kotlin.coroutines.Continuation); + property public default kotlin.coroutines.CoroutineContext.Key key; + field public static final androidx.compose.runtime.MonotonicFrameClock.Key Key; + } + + public static final class MonotonicFrameClock.Key implements kotlin.coroutines.CoroutineContext.Key { + } + + public final class MonotonicFrameClockKt { + method public static androidx.compose.runtime.MonotonicFrameClock getMonotonicFrameClock(kotlin.coroutines.CoroutineContext); + method public static suspend inline Object? withFrameMillis(androidx.compose.runtime.MonotonicFrameClock, kotlin.jvm.functions.Function1 onFrame, kotlin.coroutines.Continuation); + method public static suspend Object? withFrameMillis(kotlin.jvm.functions.Function1 onFrame, kotlin.coroutines.Continuation); + method public static suspend Object? withFrameNanos(kotlin.jvm.functions.Function1 onFrame, kotlin.coroutines.Continuation); + } + + @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi public final class MovableContent

{ + ctor public MovableContent(kotlin.jvm.functions.Function1 content); + method public kotlin.jvm.functions.Function1 getContent(); + property public final kotlin.jvm.functions.Function1 content; + } + + public final class MovableContentKt { + method public static kotlin.jvm.functions.Function0 movableContentOf(kotlin.jvm.functions.Function0 content); + method public static

kotlin.jvm.functions.Function1 movableContentOf(kotlin.jvm.functions.Function1 content); + method public static kotlin.jvm.functions.Function2 movableContentOf(kotlin.jvm.functions.Function2 content); + method public static kotlin.jvm.functions.Function3 movableContentOf(kotlin.jvm.functions.Function3 content); + method public static kotlin.jvm.functions.Function4 movableContentOf(kotlin.jvm.functions.Function4 content); + method public static kotlin.jvm.functions.Function1 movableContentWithReceiverOf(kotlin.jvm.functions.Function1 content); + method public static kotlin.jvm.functions.Function2 movableContentWithReceiverOf(kotlin.jvm.functions.Function2 content); + method public static kotlin.jvm.functions.Function3 movableContentWithReceiverOf(kotlin.jvm.functions.Function3 content); + method public static kotlin.jvm.functions.Function4 movableContentWithReceiverOf(kotlin.jvm.functions.Function4 content); + } + + @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi public final class MovableContentState { + } + + @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi public final class MovableContentStateReference { + } + + @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface MutableDoubleState extends androidx.compose.runtime.DoubleState androidx.compose.runtime.MutableState { + method public void setDoubleValue(double); + method @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="doubleValue") public default void setValue(double); + property public abstract double doubleValue; + property @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="doubleValue") public default Double value; + } + + @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface MutableFloatState extends androidx.compose.runtime.FloatState androidx.compose.runtime.MutableState { + method public void setFloatValue(float); + method @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="floatValue") public default void setValue(float); + property public abstract float floatValue; + property @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="floatValue") public default Float value; + } + + @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface MutableIntState extends androidx.compose.runtime.IntState androidx.compose.runtime.MutableState { + method public void setIntValue(int); + method @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="intValue") public default void setValue(int); + property public abstract int intValue; + property @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="intValue") public default Integer value; + } + + @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface MutableLongState extends androidx.compose.runtime.LongState androidx.compose.runtime.MutableState { + method public void setLongValue(long); + method @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="longValue") public default void setValue(long); + property public abstract long longValue; + property @androidx.compose.runtime.snapshots.AutoboxingStateValueProperty(preferredPropertyName="longValue") public default Long value; + } + + @androidx.compose.runtime.Stable public interface MutableState extends androidx.compose.runtime.State { + method public operator T component1(); + method public operator kotlin.jvm.functions.Function1 component2(); + method public void setValue(T); + property public abstract T value; + } + + @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.SOURCE) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.PROPERTY, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FILE}) public @interface NoLiveLiterals { + } + + @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.SOURCE) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface NonRestartableComposable { + } + + @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.SOURCE) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface NonSkippableComposable { + } + + public final class PausableMonotonicFrameClock implements androidx.compose.runtime.MonotonicFrameClock { + ctor public PausableMonotonicFrameClock(androidx.compose.runtime.MonotonicFrameClock frameClock); + method public boolean isPaused(); + method public void pause(); + method public void resume(); + method public suspend Object? withFrameNanos(kotlin.jvm.functions.Function1 onFrame, kotlin.coroutines.Continuation); + property public final boolean isPaused; + } + + public final class PrimitiveSnapshotStateKt { + method public static inline operator float getValue(androidx.compose.runtime.FloatState, Object? thisObj, kotlin.reflect.KProperty property); + method @androidx.compose.runtime.snapshots.StateFactoryMarker public static androidx.compose.runtime.MutableFloatState mutableFloatStateOf(float value); + method public static inline operator void setValue(androidx.compose.runtime.MutableFloatState, Object? thisObj, kotlin.reflect.KProperty property, float value); + } + + public interface ProduceStateScope extends androidx.compose.runtime.MutableState kotlinx.coroutines.CoroutineScope { + method public suspend Object? awaitDispose(kotlin.jvm.functions.Function0 onDispose, kotlin.coroutines.Continuation); + } + + @androidx.compose.runtime.Stable public abstract class ProvidableCompositionLocal extends androidx.compose.runtime.CompositionLocal { + method public final infix androidx.compose.runtime.ProvidedValue provides(T value); + method public final infix androidx.compose.runtime.ProvidedValue providesComputed(kotlin.jvm.functions.Function1 compute); + method public final infix androidx.compose.runtime.ProvidedValue providesDefault(T value); + } + + public final class ProvidedValue { + method public boolean getCanOverride(); + method public androidx.compose.runtime.CompositionLocal getCompositionLocal(); + method public T getValue(); + property public final boolean canOverride; + property public final androidx.compose.runtime.CompositionLocal compositionLocal; + property public final T value; + } + + @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface ReadOnlyComposable { + } + + public interface RecomposeScope { + method public void invalidate(); + } + + public final class RecomposeScopeImplKt { + method @kotlin.PublishedApi internal static int updateChangedFlags(int flags); + } + + public final class Recomposer extends androidx.compose.runtime.CompositionContext { + ctor public Recomposer(kotlin.coroutines.CoroutineContext effectCoroutineContext); + method public androidx.compose.runtime.RecomposerInfo asRecomposerInfo(); + method public suspend Object? awaitIdle(kotlin.coroutines.Continuation); + method public void cancel(); + method public void close(); + method public long getChangeCount(); + method public kotlinx.coroutines.flow.StateFlow getCurrentState(); + method public kotlin.coroutines.CoroutineContext getEffectCoroutineContext(); + method public boolean getHasPendingWork(); + method @Deprecated public kotlinx.coroutines.flow.Flow getState(); + method public suspend Object? join(kotlin.coroutines.Continuation); + method public void pauseCompositionFrameClock(); + method public void resumeCompositionFrameClock(); + method public suspend Object? runRecomposeAndApplyChanges(kotlin.coroutines.Continuation); + method @SuppressCompatibility @androidx.compose.runtime.ExperimentalComposeApi public suspend Object? runRecomposeConcurrentlyAndApplyChanges(kotlin.coroutines.CoroutineContext recomposeCoroutineContext, kotlin.coroutines.Continuation); + property public final long changeCount; + property public final kotlinx.coroutines.flow.StateFlow currentState; + property public kotlin.coroutines.CoroutineContext effectCoroutineContext; + property public final boolean hasPendingWork; + property @Deprecated public final kotlinx.coroutines.flow.Flow state; + field public static final androidx.compose.runtime.Recomposer.Companion Companion; + } + + public static final class Recomposer.Companion { + method public kotlinx.coroutines.flow.StateFlow> getRunningRecomposers(); + property public final kotlinx.coroutines.flow.StateFlow> runningRecomposers; + } + + public enum Recomposer.State { + enum_constant public static final androidx.compose.runtime.Recomposer.State Idle; + enum_constant public static final androidx.compose.runtime.Recomposer.State Inactive; + enum_constant public static final androidx.compose.runtime.Recomposer.State InactivePendingWork; + enum_constant public static final androidx.compose.runtime.Recomposer.State PendingWork; + enum_constant public static final androidx.compose.runtime.Recomposer.State ShutDown; + enum_constant public static final androidx.compose.runtime.Recomposer.State ShuttingDown; + } + + public interface RecomposerInfo { + method public long getChangeCount(); + method public boolean getHasPendingWork(); + method public kotlinx.coroutines.flow.Flow getState(); + property public abstract long changeCount; + property public abstract boolean hasPendingWork; + property public abstract kotlinx.coroutines.flow.Flow state; + } + + public final class RecomposerKt { + method public static suspend Object? withRunningRecomposer(kotlin.jvm.functions.Function3,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + } + + public interface RememberObserver { + method public void onAbandoned(); + method public void onForgotten(); + method public void onRemembered(); + } + + public sealed interface ReusableComposition extends androidx.compose.runtime.Composition { + method public void deactivate(); + method public void setContentWithReuse(kotlin.jvm.functions.Function0 content); + } + + @androidx.compose.runtime.ComposeCompilerApi public interface ScopeUpdateScope { + method public void updateScope(kotlin.jvm.functions.Function2 block); + } + + @kotlin.jvm.JvmInline public final value class SkippableUpdater { + ctor public SkippableUpdater(@kotlin.PublishedApi androidx.compose.runtime.Composer composer); + method public inline void update(kotlin.jvm.functions.Function1,kotlin.Unit> block); + } + + public final class SnapshotDoubleStateKt { + method public static inline operator double getValue(androidx.compose.runtime.DoubleState, Object? thisObj, kotlin.reflect.KProperty property); + method @androidx.compose.runtime.snapshots.StateFactoryMarker public static androidx.compose.runtime.MutableDoubleState mutableDoubleStateOf(double value); + method public static inline operator void setValue(androidx.compose.runtime.MutableDoubleState, Object? thisObj, kotlin.reflect.KProperty property, double value); + } + + public final class SnapshotIntStateKt { + method public static inline operator int getValue(androidx.compose.runtime.IntState, Object? thisObj, kotlin.reflect.KProperty property); + method @androidx.compose.runtime.snapshots.StateFactoryMarker public static androidx.compose.runtime.MutableIntState mutableIntStateOf(int value); + method public static inline operator void setValue(androidx.compose.runtime.MutableIntState, Object? thisObj, kotlin.reflect.KProperty property, int value); + } + + public final class SnapshotLongStateKt { + method public static inline operator long getValue(androidx.compose.runtime.LongState, Object? thisObj, kotlin.reflect.KProperty property); + method @androidx.compose.runtime.snapshots.StateFactoryMarker public static androidx.compose.runtime.MutableLongState mutableLongStateOf(long value); + method public static inline operator void setValue(androidx.compose.runtime.MutableLongState, Object? thisObj, kotlin.reflect.KProperty property, long value); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface SnapshotMutationPolicy { + method public boolean equivalent(T a, T b); + method public default T? merge(T previous, T current, T applied); + } + + public final class SnapshotStateExtensionsKt { + method @androidx.compose.runtime.Stable public static androidx.compose.runtime.DoubleState asDoubleState(androidx.compose.runtime.State); + method @androidx.compose.runtime.Stable public static androidx.compose.runtime.FloatState asFloatState(androidx.compose.runtime.State); + method @androidx.compose.runtime.Stable public static androidx.compose.runtime.IntState asIntState(androidx.compose.runtime.State); + method @androidx.compose.runtime.Stable public static androidx.compose.runtime.LongState asLongState(androidx.compose.runtime.State); + } + + public final class SnapshotStateKt { + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State collectAsState(kotlinx.coroutines.flow.Flow, R initial, optional kotlin.coroutines.CoroutineContext context); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State collectAsState(kotlinx.coroutines.flow.StateFlow, optional kotlin.coroutines.CoroutineContext context); + method @androidx.compose.runtime.snapshots.StateFactoryMarker public static androidx.compose.runtime.State derivedStateOf(androidx.compose.runtime.SnapshotMutationPolicy policy, kotlin.jvm.functions.Function0 calculation); + method @androidx.compose.runtime.snapshots.StateFactoryMarker public static androidx.compose.runtime.State derivedStateOf(kotlin.jvm.functions.Function0 calculation); + method public static inline operator T getValue(androidx.compose.runtime.State, Object? thisObj, kotlin.reflect.KProperty property); + method @androidx.compose.runtime.snapshots.StateFactoryMarker public static androidx.compose.runtime.snapshots.SnapshotStateList mutableStateListOf(); + method @androidx.compose.runtime.snapshots.StateFactoryMarker public static androidx.compose.runtime.snapshots.SnapshotStateList mutableStateListOf(T... elements); + method @androidx.compose.runtime.snapshots.StateFactoryMarker public static androidx.compose.runtime.snapshots.SnapshotStateMap mutableStateMapOf(); + method @androidx.compose.runtime.snapshots.StateFactoryMarker public static androidx.compose.runtime.snapshots.SnapshotStateMap mutableStateMapOf(kotlin.Pair... pairs); + method @androidx.compose.runtime.snapshots.StateFactoryMarker public static androidx.compose.runtime.MutableState mutableStateOf(T value, optional androidx.compose.runtime.SnapshotMutationPolicy policy); + method public static androidx.compose.runtime.SnapshotMutationPolicy neverEqualPolicy(); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State produceState(T initialValue, Object? key1, Object? key2, Object? key3, kotlin.jvm.functions.Function2,? super kotlin.coroutines.Continuation,? extends java.lang.Object?> producer); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State produceState(T initialValue, Object? key1, Object? key2, kotlin.jvm.functions.Function2,? super kotlin.coroutines.Continuation,? extends java.lang.Object?> producer); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State produceState(T initialValue, Object? key1, kotlin.jvm.functions.Function2,? super kotlin.coroutines.Continuation,? extends java.lang.Object?> producer); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State produceState(T initialValue, Object?[] keys, kotlin.jvm.functions.Function2,? super kotlin.coroutines.Continuation,? extends java.lang.Object?> producer); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State produceState(T initialValue, kotlin.jvm.functions.Function2,? super kotlin.coroutines.Continuation,? extends java.lang.Object?> producer); + method public static androidx.compose.runtime.SnapshotMutationPolicy referentialEqualityPolicy(); + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State rememberUpdatedState(T newValue); + method public static inline operator void setValue(androidx.compose.runtime.MutableState, Object? thisObj, kotlin.reflect.KProperty property, T value); + method public static kotlinx.coroutines.flow.Flow snapshotFlow(kotlin.jvm.functions.Function0 block); + method public static androidx.compose.runtime.SnapshotMutationPolicy structuralEqualityPolicy(); + method public static androidx.compose.runtime.snapshots.SnapshotStateList toMutableStateList(java.util.Collection); + method public static androidx.compose.runtime.snapshots.SnapshotStateMap toMutableStateMap(Iterable>); + } + + @androidx.compose.runtime.StableMarker @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER, kotlin.annotation.AnnotationTarget.PROPERTY}) public @interface Stable { + } + + @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.ANNOTATION_CLASS, kotlin.annotation.AnnotationTarget.CLASS}) public @interface StableMarker { + } + + @androidx.compose.runtime.Stable public interface State { + method public T getValue(); + property public abstract T value; + } + + @kotlin.jvm.JvmInline public final value class Updater { + ctor public Updater(@kotlin.PublishedApi androidx.compose.runtime.Composer composer); + method public void init(kotlin.jvm.functions.Function1 block); + method public void reconcile(kotlin.jvm.functions.Function1 block); + method public inline void set(int value, kotlin.jvm.functions.Function2 block); + method public void set(V value, kotlin.jvm.functions.Function2 block); + method public inline void update(int value, kotlin.jvm.functions.Function2 block); + method public void update(V value, kotlin.jvm.functions.Function2 block); + } + +} + +package androidx.compose.runtime.collection { + + public final class MutableVector implements java.util.RandomAccess { + ctor @kotlin.PublishedApi internal MutableVector(@kotlin.PublishedApi T?[] content, int size); + method public void add(int index, T element); + method public boolean add(T element); + method public inline boolean addAll(androidx.compose.runtime.collection.MutableVector elements); + method public boolean addAll(int index, androidx.compose.runtime.collection.MutableVector elements); + method public boolean addAll(int index, java.util.Collection elements); + method public boolean addAll(int index, java.util.List elements); + method public boolean addAll(java.util.Collection elements); + method public inline boolean addAll(java.util.List elements); + method public boolean addAll(T[] elements); + method public inline boolean any(kotlin.jvm.functions.Function1 predicate); + method public java.util.List asMutableList(); + method public void clear(); + method public operator boolean contains(T element); + method public boolean containsAll(androidx.compose.runtime.collection.MutableVector elements); + method public boolean containsAll(java.util.Collection elements); + method public boolean containsAll(java.util.List elements); + method public boolean contentEquals(androidx.compose.runtime.collection.MutableVector other); + method public void ensureCapacity(int capacity); + method public T first(); + method public inline T first(kotlin.jvm.functions.Function1 predicate); + method public inline T? firstOrNull(); + method public inline T? firstOrNull(kotlin.jvm.functions.Function1 predicate); + method public inline R fold(R initial, kotlin.jvm.functions.Function2 operation); + method public inline R foldIndexed(R initial, kotlin.jvm.functions.Function3 operation); + method public inline R foldRight(R initial, kotlin.jvm.functions.Function2 operation); + method public inline R foldRightIndexed(R initial, kotlin.jvm.functions.Function3 operation); + method public inline void forEach(kotlin.jvm.functions.Function1 block); + method public inline void forEachIndexed(kotlin.jvm.functions.Function2 block); + method public inline void forEachReversed(kotlin.jvm.functions.Function1 block); + method public inline void forEachReversedIndexed(kotlin.jvm.functions.Function2 block); + method public inline operator T get(int index); + method public inline kotlin.ranges.IntRange getIndices(); + method public inline int getLastIndex(); + method public int getSize(); + method public int indexOf(T element); + method public inline int indexOfFirst(kotlin.jvm.functions.Function1 predicate); + method public inline int indexOfLast(kotlin.jvm.functions.Function1 predicate); + method public boolean isEmpty(); + method public boolean isNotEmpty(); + method public T last(); + method public inline T last(kotlin.jvm.functions.Function1 predicate); + method public int lastIndexOf(T element); + method public inline T? lastOrNull(); + method public inline T? lastOrNull(kotlin.jvm.functions.Function1 predicate); + method public inline R[] map(kotlin.jvm.functions.Function1 transform); + method public inline R[] mapIndexed(kotlin.jvm.functions.Function2 transform); + method public inline androidx.compose.runtime.collection.MutableVector mapIndexedNotNull(kotlin.jvm.functions.Function2 transform); + method public inline androidx.compose.runtime.collection.MutableVector mapNotNull(kotlin.jvm.functions.Function1 transform); + method public inline operator void minusAssign(T element); + method public inline operator void plusAssign(T element); + method public boolean remove(T element); + method public boolean removeAll(androidx.compose.runtime.collection.MutableVector elements); + method public boolean removeAll(java.util.Collection elements); + method public boolean removeAll(java.util.List elements); + method public T removeAt(int index); + method public inline void removeIf(kotlin.jvm.functions.Function1 predicate); + method public void removeRange(int start, int end); + method public boolean retainAll(java.util.Collection elements); + method public inline boolean reversedAny(kotlin.jvm.functions.Function1 predicate); + method public operator T set(int index, T element); + method @kotlin.PublishedApi internal void setSize(int newSize); + method public void sortWith(java.util.Comparator comparator); + method public inline int sumBy(kotlin.jvm.functions.Function1 selector); + method @kotlin.PublishedApi internal Void throwNoSuchElementException(); + property public final inline kotlin.ranges.IntRange indices; + property public final inline int lastIndex; + property public final int size; + } + + public final class MutableVectorKt { + method public static inline androidx.compose.runtime.collection.MutableVector MutableVector(optional int capacity); + method public static inline androidx.compose.runtime.collection.MutableVector MutableVector(int size, kotlin.jvm.functions.Function1 init); + method public static inline androidx.compose.runtime.collection.MutableVector mutableVectorOf(); + method public static inline androidx.compose.runtime.collection.MutableVector mutableVectorOf(T... elements); + } + +} + +package androidx.compose.runtime.internal { + + @androidx.compose.runtime.ComposeCompilerApi @androidx.compose.runtime.Stable public interface ComposableLambda extends kotlin.jvm.functions.Function2 kotlin.jvm.functions.Function10 kotlin.jvm.functions.Function11 kotlin.jvm.functions.Function13 kotlin.jvm.functions.Function14 kotlin.jvm.functions.Function15 kotlin.jvm.functions.Function16 kotlin.jvm.functions.Function17 kotlin.jvm.functions.Function18 kotlin.jvm.functions.Function19 kotlin.jvm.functions.Function20 kotlin.jvm.functions.Function21 kotlin.jvm.functions.Function3 kotlin.jvm.functions.Function4 kotlin.jvm.functions.Function5 kotlin.jvm.functions.Function6 kotlin.jvm.functions.Function7 kotlin.jvm.functions.Function8 kotlin.jvm.functions.Function9 { + } + + public final class ComposableLambdaKt { + method @androidx.compose.runtime.ComposeCompilerApi public static androidx.compose.runtime.internal.ComposableLambda composableLambda(androidx.compose.runtime.Composer composer, int key, boolean tracked, Object block); + method @androidx.compose.runtime.ComposeCompilerApi public static androidx.compose.runtime.internal.ComposableLambda composableLambdaInstance(int key, boolean tracked, Object block); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ComposeCompilerApi public static androidx.compose.runtime.internal.ComposableLambda rememberComposableLambda(int key, boolean tracked, Object block); + } + + @androidx.compose.runtime.ComposeCompilerApi @androidx.compose.runtime.Stable public interface ComposableLambdaN extends kotlin.jvm.functions.FunctionN { + } + + public final class ComposableLambdaN_jvmKt { + method @androidx.compose.runtime.ComposeCompilerApi public static androidx.compose.runtime.internal.ComposableLambdaN composableLambdaN(androidx.compose.runtime.Composer composer, int key, boolean tracked, int arity, Object block); + method @androidx.compose.runtime.ComposeCompilerApi public static androidx.compose.runtime.internal.ComposableLambdaN composableLambdaNInstance(int key, boolean tracked, int arity, Object block); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ComposeCompilerApi public static androidx.compose.runtime.internal.ComposableLambdaN rememberComposableLambdaN(int key, boolean tracked, int arity, Object block); + } + + @SuppressCompatibility @androidx.compose.runtime.ExperimentalComposeApi @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.CONSTRUCTOR}) public @interface Decoy { + method public abstract String[] signature(); + method public abstract String targetName(); + property public abstract String[] signature; + property public abstract String targetName; + } + + @SuppressCompatibility @androidx.compose.runtime.ExperimentalComposeApi @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.CONSTRUCTOR}) public @interface DecoyImplementation { + method public abstract long id(); + method public abstract String name(); + property public abstract long id; + property public abstract String name; + } + + public final class DecoyKt { + method @androidx.compose.runtime.ComposeCompilerApi public static Void illegalDecoyCallException(String fName); + } + + @androidx.compose.runtime.ComposeCompilerApi @kotlin.annotation.Repeatable @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.RUNTIME) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.CLASS) public @interface FunctionKeyMeta { + method public abstract int endOffset(); + method public abstract int key(); + method public abstract int startOffset(); + property public abstract int endOffset; + property public abstract int key; + property public abstract int startOffset; + } + + @androidx.compose.runtime.ComposeCompilerApi @kotlin.annotation.Repeatable @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.RUNTIME) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.CLASS) public static @interface FunctionKeyMeta.Container { + method public abstract androidx.compose.runtime.internal.FunctionKeyMeta[] value(); + } + + @androidx.compose.runtime.ComposeCompilerApi @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.RUNTIME) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.CLASS) public @interface FunctionKeyMetaClass { + method public abstract String file(); + property public abstract String file; + } + + @androidx.compose.runtime.ComposeCompilerApi @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.RUNTIME) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.CLASS) public @interface LiveLiteralFileInfo { + method public abstract String file(); + property public abstract String file; + } + + @androidx.compose.runtime.ComposeCompilerApi @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.RUNTIME) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.FUNCTION) public @interface LiveLiteralInfo { + method public abstract String key(); + method public abstract int offset(); + property public abstract String key; + property public abstract int offset; + } + + public final class LiveLiteralKt { + method @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi public static void enableLiveLiterals(); + method public static boolean isLiveLiteralsEnabled(); + method @SuppressCompatibility @androidx.compose.runtime.ComposeCompilerApi @androidx.compose.runtime.InternalComposeApi public static androidx.compose.runtime.State liveLiteral(String key, T value); + method @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi public static void updateLiveLiteralValue(String key, Object? value); + property public static final boolean isLiveLiteralsEnabled; + } + + @androidx.compose.runtime.ComposeCompilerApi @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.CLASS) public @interface StabilityInferred { + method public abstract int parameters(); + property public abstract int parameters; + } + +} + +package androidx.compose.runtime.reflect { + + public final class ComposableMethod { + method public java.lang.reflect.Method asMethod(); + method public int getParameterCount(); + method public Class[] getParameterTypes(); + method public java.lang.reflect.Parameter[] getParameters(); + method public operator Object? invoke(androidx.compose.runtime.Composer composer, Object? instance, java.lang.Object?... args); + property public final int parameterCount; + property public final Class[] parameterTypes; + property public final java.lang.reflect.Parameter[] parameters; + } + + public final class ComposableMethodKt { + method public static androidx.compose.runtime.reflect.ComposableMethod? asComposableMethod(java.lang.reflect.Method); + method @kotlin.jvm.Throws(exceptionClasses=NoSuchMethodException::class) public static androidx.compose.runtime.reflect.ComposableMethod getDeclaredComposableMethod(Class, String methodName, Class... args) throws java.lang.NoSuchMethodException; + } + +} + +package androidx.compose.runtime.snapshots { + + @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.PROPERTY_SETTER, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER}) public @interface AutoboxingStateValueProperty { + method public abstract String preferredPropertyName(); + property public abstract String preferredPropertyName; + } + + public class MutableSnapshot extends androidx.compose.runtime.snapshots.Snapshot { + method public androidx.compose.runtime.snapshots.SnapshotApplyResult apply(); + method public kotlin.jvm.functions.Function1? getReadObserver(); + method public boolean getReadOnly(); + method public androidx.compose.runtime.snapshots.Snapshot getRoot(); + method public kotlin.jvm.functions.Function1? getWriteObserver(); + method public boolean hasPendingChanges(); + method public androidx.compose.runtime.snapshots.MutableSnapshot takeNestedMutableSnapshot(optional kotlin.jvm.functions.Function1? readObserver, optional kotlin.jvm.functions.Function1? writeObserver); + method public androidx.compose.runtime.snapshots.Snapshot takeNestedSnapshot(kotlin.jvm.functions.Function1? readObserver); + property public kotlin.jvm.functions.Function1? readObserver; + property public boolean readOnly; + property public androidx.compose.runtime.snapshots.Snapshot root; + property public kotlin.jvm.functions.Function1? writeObserver; + } + + public fun interface ObserverHandle { + method public void dispose(); + } + + public abstract sealed class Snapshot { + method public void dispose(); + method public final inline T enter(kotlin.jvm.functions.Function0 block); + method public int getId(); + method public abstract boolean getReadOnly(); + method public abstract androidx.compose.runtime.snapshots.Snapshot getRoot(); + method public abstract boolean hasPendingChanges(); + method @kotlin.PublishedApi internal androidx.compose.runtime.snapshots.Snapshot? makeCurrent(); + method @kotlin.PublishedApi internal void restoreCurrent(androidx.compose.runtime.snapshots.Snapshot? snapshot); + method public abstract androidx.compose.runtime.snapshots.Snapshot takeNestedSnapshot(optional kotlin.jvm.functions.Function1? readObserver); + method @SuppressCompatibility @androidx.compose.runtime.ExperimentalComposeApi public final androidx.compose.runtime.snapshots.Snapshot? unsafeEnter(); + method @SuppressCompatibility @androidx.compose.runtime.ExperimentalComposeApi public final void unsafeLeave(androidx.compose.runtime.snapshots.Snapshot? oldSnapshot); + property public int id; + property public abstract boolean readOnly; + property public abstract androidx.compose.runtime.snapshots.Snapshot root; + field public static final androidx.compose.runtime.snapshots.Snapshot.Companion Companion; + field public static final int PreexistingSnapshotId = 1; // 0x1 + } + + public static final class Snapshot.Companion { + method @kotlin.PublishedApi internal androidx.compose.runtime.snapshots.Snapshot createNonObservableSnapshot(); + method public androidx.compose.runtime.snapshots.Snapshot getCurrent(); + method public inline T global(kotlin.jvm.functions.Function0 block); + method public boolean isApplyObserverNotificationPending(); + method public boolean isInSnapshot(); + method @kotlin.PublishedApi internal androidx.compose.runtime.snapshots.Snapshot makeCurrentNonObservable(androidx.compose.runtime.snapshots.Snapshot? previous); + method public void notifyObjectsInitialized(); + method public T observe(optional kotlin.jvm.functions.Function1? readObserver, optional kotlin.jvm.functions.Function1? writeObserver, kotlin.jvm.functions.Function0 block); + method @SuppressCompatibility @androidx.compose.runtime.InternalComposeApi public int openSnapshotCount(); + method public androidx.compose.runtime.snapshots.ObserverHandle registerApplyObserver(kotlin.jvm.functions.Function2,? super androidx.compose.runtime.snapshots.Snapshot,kotlin.Unit> observer); + method public androidx.compose.runtime.snapshots.ObserverHandle registerGlobalWriteObserver(kotlin.jvm.functions.Function1 observer); + method @kotlin.PublishedApi internal androidx.compose.runtime.snapshots.Snapshot? removeCurrent(); + method @kotlin.PublishedApi internal void restoreCurrent(androidx.compose.runtime.snapshots.Snapshot? previous); + method @kotlin.PublishedApi internal void restoreNonObservable(androidx.compose.runtime.snapshots.Snapshot? previous, androidx.compose.runtime.snapshots.Snapshot nonObservable, kotlin.jvm.functions.Function1? observer); + method public void sendApplyNotifications(); + method public androidx.compose.runtime.snapshots.MutableSnapshot takeMutableSnapshot(optional kotlin.jvm.functions.Function1? readObserver, optional kotlin.jvm.functions.Function1? writeObserver); + method public androidx.compose.runtime.snapshots.Snapshot takeSnapshot(optional kotlin.jvm.functions.Function1? readObserver); + method public inline R withMutableSnapshot(kotlin.jvm.functions.Function0 block); + method public inline T withoutReadObservation(kotlin.jvm.functions.Function0 block); + property public final androidx.compose.runtime.snapshots.Snapshot current; + property @kotlin.PublishedApi internal final androidx.compose.runtime.snapshots.Snapshot? currentThreadSnapshot; + property public final boolean isApplyObserverNotificationPending; + property public final boolean isInSnapshot; + } + + public final class SnapshotApplyConflictException extends java.lang.Exception { + ctor public SnapshotApplyConflictException(androidx.compose.runtime.snapshots.Snapshot snapshot); + method public androidx.compose.runtime.snapshots.Snapshot getSnapshot(); + property public final androidx.compose.runtime.snapshots.Snapshot snapshot; + } + + public abstract sealed class SnapshotApplyResult { + method public abstract void check(); + method public abstract boolean getSucceeded(); + property public abstract boolean succeeded; + } + + public static final class SnapshotApplyResult.Failure extends androidx.compose.runtime.snapshots.SnapshotApplyResult { + ctor public SnapshotApplyResult.Failure(androidx.compose.runtime.snapshots.Snapshot snapshot); + method public void check(); + method public androidx.compose.runtime.snapshots.Snapshot getSnapshot(); + method public boolean getSucceeded(); + property public final androidx.compose.runtime.snapshots.Snapshot snapshot; + property public boolean succeeded; + } + + public static final class SnapshotApplyResult.Success extends androidx.compose.runtime.snapshots.SnapshotApplyResult { + method public void check(); + method public boolean getSucceeded(); + property public boolean succeeded; + field public static final androidx.compose.runtime.snapshots.SnapshotApplyResult.Success INSTANCE; + } + + @SuppressCompatibility @androidx.compose.runtime.ExperimentalComposeApi public interface SnapshotContextElement extends kotlin.coroutines.CoroutineContext.Element { + field public static final androidx.compose.runtime.snapshots.SnapshotContextElement.Key Key; + } + + public static final class SnapshotContextElement.Key implements kotlin.coroutines.CoroutineContext.Key { + } + + public final class SnapshotContextElementKt { + method @SuppressCompatibility @androidx.compose.runtime.ExperimentalComposeApi public static androidx.compose.runtime.snapshots.SnapshotContextElement asContextElement(androidx.compose.runtime.snapshots.Snapshot); + } + + public final class SnapshotKt { + method @kotlin.PublishedApi internal static T current(T r); + method @kotlin.PublishedApi internal static T current(T r, androidx.compose.runtime.snapshots.Snapshot snapshot); + method @kotlin.PublishedApi internal static void notifyWrite(androidx.compose.runtime.snapshots.Snapshot snapshot, androidx.compose.runtime.snapshots.StateObject state); + method public static T readable(T, androidx.compose.runtime.snapshots.StateObject state); + method public static T readable(T, androidx.compose.runtime.snapshots.StateObject state, androidx.compose.runtime.snapshots.Snapshot snapshot); + method @kotlin.PublishedApi internal static inline T sync(kotlin.jvm.functions.Function0 block); + method public static inline R withCurrent(T, kotlin.jvm.functions.Function1 block); + method public static inline R writable(T, androidx.compose.runtime.snapshots.StateObject state, androidx.compose.runtime.snapshots.Snapshot snapshot, kotlin.jvm.functions.Function1 block); + method public static inline R writable(T, androidx.compose.runtime.snapshots.StateObject state, kotlin.jvm.functions.Function1 block); + method @kotlin.PublishedApi internal static T writableRecord(T, androidx.compose.runtime.snapshots.StateObject state, androidx.compose.runtime.snapshots.Snapshot snapshot); + field @kotlin.PublishedApi internal static final Object lock; + field @kotlin.PublishedApi internal static final androidx.compose.runtime.snapshots.Snapshot snapshotInitializer; + } + + public interface SnapshotMutableState extends androidx.compose.runtime.MutableState { + method public androidx.compose.runtime.SnapshotMutationPolicy getPolicy(); + property public abstract androidx.compose.runtime.SnapshotMutationPolicy policy; + } + + @androidx.compose.runtime.Stable public final class SnapshotStateList implements kotlin.jvm.internal.markers.KMutableList java.util.List java.util.RandomAccess androidx.compose.runtime.snapshots.StateObject { + ctor public SnapshotStateList(); + method public void add(int index, T element); + method public boolean add(T element); + method public boolean addAll(int index, java.util.Collection elements); + method public boolean addAll(java.util.Collection elements); + method public void clear(); + method public boolean contains(T element); + method public boolean containsAll(java.util.Collection elements); + method public T get(int index); + method public androidx.compose.runtime.snapshots.StateRecord getFirstStateRecord(); + method public int getSize(); + method public int indexOf(T element); + method public boolean isEmpty(); + method public java.util.Iterator iterator(); + method public int lastIndexOf(T element); + method public java.util.ListIterator listIterator(); + method public java.util.ListIterator listIterator(int index); + method public void prependStateRecord(androidx.compose.runtime.snapshots.StateRecord value); + method public boolean remove(T element); + method public boolean removeAll(java.util.Collection elements); + method public T removeAt(int index); + method public void removeRange(int fromIndex, int toIndex); + method public boolean retainAll(java.util.Collection elements); + method public T set(int index, T element); + method public java.util.List subList(int fromIndex, int toIndex); + method public java.util.List toList(); + property public androidx.compose.runtime.snapshots.StateRecord firstStateRecord; + property public int size; + } + + @androidx.compose.runtime.Stable public final class SnapshotStateMap implements kotlin.jvm.internal.markers.KMutableMap java.util.Map androidx.compose.runtime.snapshots.StateObject { + ctor public SnapshotStateMap(); + method public void clear(); + method public boolean containsKey(K key); + method public boolean containsValue(V value); + method public V? get(Object key); + method public java.util.Set> getEntries(); + method public androidx.compose.runtime.snapshots.StateRecord getFirstStateRecord(); + method public java.util.Set getKeys(); + method public int getSize(); + method public java.util.Collection getValues(); + method public boolean isEmpty(); + method public void prependStateRecord(androidx.compose.runtime.snapshots.StateRecord value); + method public V? put(K key, V value); + method public void putAll(java.util.Map from); + method public V? remove(Object key); + method public java.util.Map toMap(); + property public java.util.Set> entries; + property public androidx.compose.runtime.snapshots.StateRecord firstStateRecord; + property public java.util.Set keys; + property public int size; + property public java.util.Collection values; + } + + public final class SnapshotStateObserver { + ctor public SnapshotStateObserver(kotlin.jvm.functions.Function1,kotlin.Unit> onChangedExecutor); + method public void clear(); + method public void clear(Object scope); + method public void clearIf(kotlin.jvm.functions.Function1 predicate); + method @org.jetbrains.annotations.TestOnly public void notifyChanges(java.util.Set changes, androidx.compose.runtime.snapshots.Snapshot snapshot); + method public void observeReads(T scope, kotlin.jvm.functions.Function1 onValueChangedForScope, kotlin.jvm.functions.Function0 block); + method public void start(); + method public void stop(); + method @Deprecated public void withNoObservations(kotlin.jvm.functions.Function0 block); + } + + @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.FUNCTION) public @interface StateFactoryMarker { + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface StateObject { + method public androidx.compose.runtime.snapshots.StateRecord getFirstStateRecord(); + method public default androidx.compose.runtime.snapshots.StateRecord? mergeRecords(androidx.compose.runtime.snapshots.StateRecord previous, androidx.compose.runtime.snapshots.StateRecord current, androidx.compose.runtime.snapshots.StateRecord applied); + method public void prependStateRecord(androidx.compose.runtime.snapshots.StateRecord value); + property public abstract androidx.compose.runtime.snapshots.StateRecord firstStateRecord; + } + + public abstract class StateRecord { + ctor public StateRecord(); + method public abstract void assign(androidx.compose.runtime.snapshots.StateRecord value); + method public abstract androidx.compose.runtime.snapshots.StateRecord create(); + } + +} + +package androidx.compose.runtime.tooling { + + public interface CompositionData { + method public default androidx.compose.runtime.tooling.CompositionGroup? find(Object identityToFind); + method public Iterable getCompositionGroups(); + method public boolean isEmpty(); + property public abstract Iterable compositionGroups; + property public abstract boolean isEmpty; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface CompositionGroup extends androidx.compose.runtime.tooling.CompositionData { + method public Iterable getData(); + method public default int getGroupSize(); + method public default Object? getIdentity(); + method public Object getKey(); + method public Object? getNode(); + method public default int getSlotsSize(); + method public String? getSourceInfo(); + property public abstract Iterable data; + property public default int groupSize; + property public default Object? identity; + property public abstract Object key; + property public abstract Object? node; + property public default int slotsSize; + property public abstract String? sourceInfo; + } + + @SuppressCompatibility @androidx.compose.runtime.ExperimentalComposeRuntimeApi public interface CompositionObserver { + method public void onBeginComposition(androidx.compose.runtime.Composition composition, java.util.Map?> invalidationMap); + method public void onEndComposition(androidx.compose.runtime.Composition composition); + } + + @SuppressCompatibility @androidx.compose.runtime.ExperimentalComposeRuntimeApi public interface CompositionObserverHandle { + method public void dispose(); + } + + public final class CompositionObserverKt { + method @SuppressCompatibility @androidx.compose.runtime.ExperimentalComposeRuntimeApi public static androidx.compose.runtime.tooling.CompositionObserverHandle? observe(androidx.compose.runtime.Composition, androidx.compose.runtime.tooling.CompositionObserver observer); + method @SuppressCompatibility @androidx.compose.runtime.ExperimentalComposeRuntimeApi public static androidx.compose.runtime.tooling.CompositionObserverHandle observe(androidx.compose.runtime.RecomposeScope, androidx.compose.runtime.tooling.RecomposeScopeObserver observer); + } + + public final class InspectionTablesKt { + method public static androidx.compose.runtime.ProvidableCompositionLocal?> getLocalInspectionTables(); + property public static final androidx.compose.runtime.ProvidableCompositionLocal?> LocalInspectionTables; + } + + @SuppressCompatibility @androidx.compose.runtime.ExperimentalComposeRuntimeApi public interface RecomposeScopeObserver { + method public void onBeginScopeComposition(androidx.compose.runtime.RecomposeScope scope); + method public void onEndScopeComposition(androidx.compose.runtime.RecomposeScope scope); + method public void onScopeDisposed(androidx.compose.runtime.RecomposeScope scope); + } + +} + diff --git a/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/Recomposer.kt b/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/Recomposer.kt index ed5c339b76c11..ec93d3444e475 100644 --- a/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/Recomposer.kt +++ b/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/Recomposer.kt @@ -457,7 +457,9 @@ class Recomposer( if (_state.value <= State.ShuttingDown) return@run } } - snapshotInvalidations = MutableScatterSet() + synchronized(stateLock) { + snapshotInvalidations = MutableScatterSet() + } complete = true } finally { if (!complete) { @@ -480,17 +482,22 @@ class Recomposer( private inline fun recordComposerModifications( onEachInvalidComposition: (ControlledComposition) -> Unit ) { - val changes = snapshotInvalidations.wrapIntoSet() + val changes = synchronized(stateLock) { + snapshotInvalidations.also { + if (it.isNotEmpty()) snapshotInvalidations = MutableScatterSet() + } + }.wrapIntoSet() if (changes.isNotEmpty()) { knownCompositions.fastForEach { composition -> composition.recordModificationsOf(changes) } - snapshotInvalidations = MutableScatterSet() } compositionInvalidations.forEach(onEachInvalidComposition) compositionInvalidations.clear() - if (deriveStateLocked() != null) { - error("called outside of runRecomposeAndApplyChanges") + synchronized(stateLock) { + if (deriveStateLocked() != null) { + error("called outside of runRecomposeAndApplyChanges") + } } } @@ -1019,6 +1026,7 @@ class Recomposer( val unregisterApplyObserver = Snapshot.registerApplyObserver { changed, _ -> synchronized(stateLock) { if (_state.value >= State.Idle) { + val snapshotInvalidations = snapshotInvalidations changed.fastForEach { if ( it is StateObjectImpl && diff --git a/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/SlotTable.kt b/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/SlotTable.kt index b250c76dcd6d0..93206c40b5320 100644 --- a/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/SlotTable.kt +++ b/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/SlotTable.kt @@ -18,6 +18,7 @@ package androidx.compose.runtime import androidx.collection.MutableIntObjectMap import androidx.collection.MutableIntSet +import androidx.collection.MutableObjectList import androidx.compose.runtime.snapshots.fastAny import androidx.compose.runtime.snapshots.fastFilterIndexed import androidx.compose.runtime.snapshots.fastForEach @@ -1466,8 +1467,12 @@ internal class SlotWriter( private val nodeCountStack = IntStack() /** - * The current group that will be started by [startGroup] or skipped by [skipGroup] + * Deferred slot writes for open groups to avoid thrashing the slot table when slots are added + * to parent group which already has children. */ + private var deferredSlotWrites: MutableIntObjectMap>? = null + + /** The current group that will be started by [startGroup] or skipped by [skipGroup] */ var currentGroup = 0 private set @@ -1645,6 +1650,19 @@ internal class SlotWriter( * is being inserted. */ fun update(value: Any?): Any? { + if (insertCount > 0 && currentSlot != slotsGapStart) { + // Defer write as doing it now would thrash the slot table. + val deferred = + (deferredSlotWrites ?: MutableIntObjectMap()) + .also { deferredSlotWrites = it } + .getOrPut(parent) { MutableObjectList() } + deferred.add(value) + return Composer.Empty + } + return rawUpdate(value) + } + + private fun rawUpdate(value: Any?): Any? { val result = skip() set(value) return result @@ -1894,8 +1912,8 @@ internal class SlotWriter( internal fun slotsEndAllIndex(groupIndex: Int): Int = groups.dataIndex(groupIndexToAddress(groupIndex + groupSize(groupIndex))) - private val currentGroupSlotIndex: Int get() = - currentSlot - slotsStartIndex(parent) + private val currentGroupSlotIndex: Int + get() = currentSlot - slotsStartIndex(parent) + (deferredSlotWrites?.get(parent)?.size ?: 0) /** * Advance [currentGroup] by [amount]. The [currentGroup] group cannot be advanced outside the @@ -2105,6 +2123,14 @@ internal class SlotWriter( val newGroupSize = currentGroup - groupIndex val isNode = groups.isNode(groupAddress) if (inserting) { + // Check for deferred slot writes + val deferredSlotWrites = deferredSlotWrites + deferredSlotWrites?.get(groupIndex)?.let { + it.forEach { value -> rawUpdate(value) } + deferredSlotWrites.remove(groupIndex) + } + + // Close the group groups.updateGroupSize(groupAddress, newGroupSize) groups.updateNodeCount(groupAddress, newNodes) nodeCount = nodeCountStack.pop() + if (isNode) 1 else newNodes diff --git a/compose/runtime/runtime/src/nonEmulatorCommonTest/kotlin/androidx/compose/runtime/CompositionTests.kt b/compose/runtime/runtime/src/nonEmulatorCommonTest/kotlin/androidx/compose/runtime/CompositionTests.kt index edc75738a4792..38fd099424bf6 100644 --- a/compose/runtime/runtime/src/nonEmulatorCommonTest/kotlin/androidx/compose/runtime/CompositionTests.kt +++ b/compose/runtime/runtime/src/nonEmulatorCommonTest/kotlin/androidx/compose/runtime/CompositionTests.kt @@ -4637,6 +4637,19 @@ class CompositionTests { revalidate() } + @Test // regression test for b/362291064 + fun avoidsThrashingTheSlotTable() = compositionTest { + val count = 100 + var data by mutableIntStateOf(0) + compose { repeat(count) { Linear { Text("Value: $it, data: $data") } } } + + validate { repeat(count) { Linear { Text("Value: $it, data: $data") } } } + + data++ + advance() + revalidate() + } + private inline fun CoroutineScope.withGlobalSnapshotManager(block: CoroutineScope.() -> Unit) { val channel = Channel(Channel.CONFLATED) val job = launch { diff --git a/compose/ui/ui-android-stubs/api/1.7.0-beta07.txt b/compose/ui/ui-android-stubs/api/1.7.0-beta07.txt new file mode 100644 index 0000000000000..b80277666414d --- /dev/null +++ b/compose/ui/ui-android-stubs/api/1.7.0-beta07.txt @@ -0,0 +1,83 @@ +// Signature format: 4.0 +package android.view { + + public final class DisplayListCanvas extends android.graphics.Canvas { + ctor public DisplayListCanvas(); + method public void drawRenderNode(android.view.RenderNode); + } + + public abstract class HardwareCanvas extends android.graphics.Canvas { + ctor public HardwareCanvas(); + method public abstract int drawRenderNode(android.view.RenderNode, android.graphics.Rect, int); + } + + public class RenderNode { + method public static android.view.RenderNode create(String?, android.view.View?); + method public void destroy(); + method public void destroyDisplayListData(); + method public void discardDisplayList(); + method public void end(android.view.DisplayListCanvas); + method public float getAlpha(); + method public int getAmbientShadowColor(); + method public float getCameraDistance(); + method public boolean getClipToOutline(); + method public float getElevation(); + method public void getInverseMatrix(android.graphics.Matrix); + method public void getMatrix(android.graphics.Matrix); + method public float getPivotX(); + method public float getPivotY(); + method public float getRotation(); + method public float getRotationX(); + method public float getRotationY(); + method public float getScaleX(); + method public float getScaleY(); + method public int getSpotShadowColor(); + method public float getTranslationX(); + method public float getTranslationY(); + method public float getTranslationZ(); + method public boolean hasIdentityMatrix(); + method public boolean hasOverlappingRendering(); + method public boolean hasShadow(); + method public boolean isAttached(); + method public boolean isPivotExplicitlySet(); + method public boolean isValid(); + method public boolean offsetLeftAndRight(int); + method public boolean offsetTopAndBottom(int); + method public void output(); + method public boolean setAlpha(float); + method public boolean setAmbientShadowColor(int); + method public boolean setAnimationMatrix(android.graphics.Matrix); + method public boolean setBottom(int); + method public boolean setCameraDistance(float); + method public boolean setClipBounds(android.graphics.Rect?); + method public boolean setClipToBounds(boolean); + method public boolean setClipToOutline(boolean); + method public boolean setElevation(float); + method public boolean setHasOverlappingRendering(boolean); + method public boolean setLayerPaint(android.graphics.Paint?); + method public boolean setLayerType(int); + method public boolean setLeft(int); + method public boolean setLeftTopRightBottom(int, int, int, int); + method public boolean setOutline(android.graphics.Outline?); + method public boolean setPivotX(float); + method public boolean setPivotY(float); + method public boolean setProjectBackwards(boolean); + method public boolean setProjectionReceiver(boolean); + method public boolean setRevealClip(boolean, float, float, float); + method public boolean setRight(int); + method public boolean setRotation(float); + method public boolean setRotationX(float); + method public boolean setRotationY(float); + method public boolean setScaleX(float); + method public boolean setScaleY(float); + method public boolean setSpotShadowColor(int); + method public boolean setStaticMatrix(android.graphics.Matrix); + method public boolean setTop(int); + method public boolean setTranslationX(float); + method public boolean setTranslationY(float); + method public boolean setTranslationZ(float); + method public android.view.DisplayListCanvas start(int, int); + } + +} + diff --git a/compose/ui/ui-android-stubs/api/res-1.7.0-beta07.txt b/compose/ui/ui-android-stubs/api/res-1.7.0-beta07.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/compose/ui/ui-android-stubs/api/restricted_1.7.0-beta07.txt b/compose/ui/ui-android-stubs/api/restricted_1.7.0-beta07.txt new file mode 100644 index 0000000000000..b80277666414d --- /dev/null +++ b/compose/ui/ui-android-stubs/api/restricted_1.7.0-beta07.txt @@ -0,0 +1,83 @@ +// Signature format: 4.0 +package android.view { + + public final class DisplayListCanvas extends android.graphics.Canvas { + ctor public DisplayListCanvas(); + method public void drawRenderNode(android.view.RenderNode); + } + + public abstract class HardwareCanvas extends android.graphics.Canvas { + ctor public HardwareCanvas(); + method public abstract int drawRenderNode(android.view.RenderNode, android.graphics.Rect, int); + } + + public class RenderNode { + method public static android.view.RenderNode create(String?, android.view.View?); + method public void destroy(); + method public void destroyDisplayListData(); + method public void discardDisplayList(); + method public void end(android.view.DisplayListCanvas); + method public float getAlpha(); + method public int getAmbientShadowColor(); + method public float getCameraDistance(); + method public boolean getClipToOutline(); + method public float getElevation(); + method public void getInverseMatrix(android.graphics.Matrix); + method public void getMatrix(android.graphics.Matrix); + method public float getPivotX(); + method public float getPivotY(); + method public float getRotation(); + method public float getRotationX(); + method public float getRotationY(); + method public float getScaleX(); + method public float getScaleY(); + method public int getSpotShadowColor(); + method public float getTranslationX(); + method public float getTranslationY(); + method public float getTranslationZ(); + method public boolean hasIdentityMatrix(); + method public boolean hasOverlappingRendering(); + method public boolean hasShadow(); + method public boolean isAttached(); + method public boolean isPivotExplicitlySet(); + method public boolean isValid(); + method public boolean offsetLeftAndRight(int); + method public boolean offsetTopAndBottom(int); + method public void output(); + method public boolean setAlpha(float); + method public boolean setAmbientShadowColor(int); + method public boolean setAnimationMatrix(android.graphics.Matrix); + method public boolean setBottom(int); + method public boolean setCameraDistance(float); + method public boolean setClipBounds(android.graphics.Rect?); + method public boolean setClipToBounds(boolean); + method public boolean setClipToOutline(boolean); + method public boolean setElevation(float); + method public boolean setHasOverlappingRendering(boolean); + method public boolean setLayerPaint(android.graphics.Paint?); + method public boolean setLayerType(int); + method public boolean setLeft(int); + method public boolean setLeftTopRightBottom(int, int, int, int); + method public boolean setOutline(android.graphics.Outline?); + method public boolean setPivotX(float); + method public boolean setPivotY(float); + method public boolean setProjectBackwards(boolean); + method public boolean setProjectionReceiver(boolean); + method public boolean setRevealClip(boolean, float, float, float); + method public boolean setRight(int); + method public boolean setRotation(float); + method public boolean setRotationX(float); + method public boolean setRotationY(float); + method public boolean setScaleX(float); + method public boolean setScaleY(float); + method public boolean setSpotShadowColor(int); + method public boolean setStaticMatrix(android.graphics.Matrix); + method public boolean setTop(int); + method public boolean setTranslationX(float); + method public boolean setTranslationY(float); + method public boolean setTranslationZ(float); + method public android.view.DisplayListCanvas start(int, int); + } + +} + diff --git a/compose/ui/ui-geometry/api/1.7.0-beta07.txt b/compose/ui/ui-geometry/api/1.7.0-beta07.txt new file mode 100644 index 0000000000000..cf25073d6e94c --- /dev/null +++ b/compose/ui/ui-geometry/api/1.7.0-beta07.txt @@ -0,0 +1,273 @@ +// Signature format: 4.0 +package androidx.compose.ui.geometry { + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class CornerRadius { + method @androidx.compose.runtime.Stable public inline operator float component1(); + method @androidx.compose.runtime.Stable public inline operator float component2(); + method public long copy(optional float x, optional float y); + method @androidx.compose.runtime.Stable public operator long div(float operand); + method public float getX(); + method public float getY(); + method @androidx.compose.runtime.Stable public operator long minus(long other); + method @androidx.compose.runtime.Stable public operator long plus(long other); + method @androidx.compose.runtime.Stable public operator long times(float operand); + method @androidx.compose.runtime.Stable public operator long unaryMinus(); + property @androidx.compose.runtime.Stable public final float x; + property @androidx.compose.runtime.Stable public final float y; + field public static final androidx.compose.ui.geometry.CornerRadius.Companion Companion; + } + + public static final class CornerRadius.Companion { + method public long getZero(); + property public final long Zero; + } + + public final class CornerRadiusKt { + method @androidx.compose.runtime.Stable public static long CornerRadius(float x, optional float y); + method @androidx.compose.runtime.Stable public static long lerp(long start, long stop, float fraction); + } + + public final class MutableRect { + ctor public MutableRect(float left, float top, float right, float bottom); + method public operator boolean contains(long offset); + method public float getBottom(); + method public inline float getHeight(); + method public float getLeft(); + method public float getRight(); + method public long getSize(); + method public float getTop(); + method public inline float getWidth(); + method @androidx.compose.runtime.Stable public void intersect(float left, float top, float right, float bottom); + method public boolean isEmpty(); + method public void set(float left, float top, float right, float bottom); + method public void setBottom(float); + method public void setLeft(float); + method public void setRight(float); + method public void setTop(float); + property public final float bottom; + property public final inline float height; + property public final boolean isEmpty; + property public final float left; + property public final float right; + property public final long size; + property public final float top; + property public final inline float width; + } + + public final class MutableRectKt { + method public static androidx.compose.ui.geometry.Rect toRect(androidx.compose.ui.geometry.MutableRect); + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class Offset { + method @androidx.compose.runtime.Stable public inline operator float component1(); + method @androidx.compose.runtime.Stable public inline operator float component2(); + method public long copy(optional float x, optional float y); + method @androidx.compose.runtime.Stable public operator long div(float operand); + method @androidx.compose.runtime.Stable public float getDistance(); + method @androidx.compose.runtime.Stable public float getDistanceSquared(); + method public float getX(); + method public float getY(); + method @androidx.compose.runtime.Stable public boolean isValid(); + method @androidx.compose.runtime.Stable public operator long minus(long other); + method @androidx.compose.runtime.Stable public operator long plus(long other); + method @androidx.compose.runtime.Stable public operator long rem(float operand); + method @androidx.compose.runtime.Stable public operator long times(float operand); + method @androidx.compose.runtime.Stable public operator long unaryMinus(); + property @androidx.compose.runtime.Stable public final float x; + property @androidx.compose.runtime.Stable public final float y; + field public static final androidx.compose.ui.geometry.Offset.Companion Companion; + } + + public static final class Offset.Companion { + method public long getInfinite(); + method public long getUnspecified(); + method public long getZero(); + property public final long Infinite; + property public final long Unspecified; + property public final long Zero; + } + + public final class OffsetKt { + method @androidx.compose.runtime.Stable public static long Offset(float x, float y); + method public static boolean isFinite(long); + method public static boolean isSpecified(long); + method public static boolean isUnspecified(long); + method @androidx.compose.runtime.Stable public static long lerp(long start, long stop, float fraction); + method public static inline long takeOrElse(long, kotlin.jvm.functions.Function0 block); + } + + @androidx.compose.runtime.Immutable public final class Rect { + ctor public Rect(@androidx.compose.runtime.Stable float left, @androidx.compose.runtime.Stable float top, @androidx.compose.runtime.Stable float right, @androidx.compose.runtime.Stable float bottom); + method public float component1(); + method public float component2(); + method public float component3(); + method public float component4(); + method public operator boolean contains(long offset); + method public androidx.compose.ui.geometry.Rect copy(float left, float top, float right, float bottom); + method @androidx.compose.runtime.Stable public androidx.compose.ui.geometry.Rect deflate(float delta); + method public float getBottom(); + method public long getBottomCenter(); + method public long getBottomLeft(); + method public long getBottomRight(); + method public long getCenter(); + method public long getCenterLeft(); + method public long getCenterRight(); + method public float getHeight(); + method public float getLeft(); + method public float getMaxDimension(); + method public float getMinDimension(); + method public float getRight(); + method public long getSize(); + method public float getTop(); + method public long getTopCenter(); + method public long getTopLeft(); + method public long getTopRight(); + method public float getWidth(); + method @androidx.compose.runtime.Stable public androidx.compose.ui.geometry.Rect inflate(float delta); + method @androidx.compose.runtime.Stable public androidx.compose.ui.geometry.Rect intersect(androidx.compose.ui.geometry.Rect other); + method @androidx.compose.runtime.Stable public androidx.compose.ui.geometry.Rect intersect(float otherLeft, float otherTop, float otherRight, float otherBottom); + method public boolean isEmpty(); + method public boolean isFinite(); + method public boolean isInfinite(); + method public boolean overlaps(androidx.compose.ui.geometry.Rect other); + method @androidx.compose.runtime.Stable public androidx.compose.ui.geometry.Rect translate(float translateX, float translateY); + method @androidx.compose.runtime.Stable public androidx.compose.ui.geometry.Rect translate(long offset); + property public final float bottom; + property public final long bottomCenter; + property public final long bottomLeft; + property public final long bottomRight; + property public final long center; + property public final long centerLeft; + property public final long centerRight; + property @androidx.compose.runtime.Stable public final float height; + property @androidx.compose.runtime.Stable public final boolean isEmpty; + property @androidx.compose.runtime.Stable public final boolean isFinite; + property @androidx.compose.runtime.Stable public final boolean isInfinite; + property public final float left; + property public final float maxDimension; + property public final float minDimension; + property public final float right; + property @androidx.compose.runtime.Stable public final long size; + property public final float top; + property public final long topCenter; + property public final long topLeft; + property public final long topRight; + property @androidx.compose.runtime.Stable public final float width; + field public static final androidx.compose.ui.geometry.Rect.Companion Companion; + } + + public static final class Rect.Companion { + method public androidx.compose.ui.geometry.Rect getZero(); + property public final androidx.compose.ui.geometry.Rect Zero; + } + + public final class RectKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.geometry.Rect Rect(long center, float radius); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.geometry.Rect Rect(long offset, long size); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.geometry.Rect Rect(long topLeft, long bottomRight); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.geometry.Rect lerp(androidx.compose.ui.geometry.Rect start, androidx.compose.ui.geometry.Rect stop, float fraction); + } + + @androidx.compose.runtime.Immutable public final class RoundRect { + ctor public RoundRect(float left, float top, float right, float bottom, optional long topLeftCornerRadius, optional long topRightCornerRadius, optional long bottomRightCornerRadius, optional long bottomLeftCornerRadius); + method public float component1(); + method public float component2(); + method public float component3(); + method public float component4(); + method public long component5-kKHJgLs(); + method public long component6-kKHJgLs(); + method public long component7-kKHJgLs(); + method public long component8-kKHJgLs(); + method public operator boolean contains(long point); + method public androidx.compose.ui.geometry.RoundRect copy-MDFrsts(float left, float top, float right, float bottom, long topLeftCornerRadius, long topRightCornerRadius, long bottomRightCornerRadius, long bottomLeftCornerRadius); + method public float getBottom(); + method public long getBottomLeftCornerRadius(); + method public long getBottomRightCornerRadius(); + method public float getHeight(); + method public float getLeft(); + method public float getRight(); + method public float getTop(); + method public long getTopLeftCornerRadius(); + method public long getTopRightCornerRadius(); + method public float getWidth(); + method public static androidx.compose.ui.geometry.RoundRect getZero(); + property public static final androidx.compose.ui.geometry.RoundRect Zero; + property public final float bottom; + property public final long bottomLeftCornerRadius; + property public final long bottomRightCornerRadius; + property public final float height; + property public final float left; + property public final float right; + property public final float top; + property public final long topLeftCornerRadius; + property public final long topRightCornerRadius; + property public final float width; + field public static final androidx.compose.ui.geometry.RoundRect.Companion Companion; + } + + public static final class RoundRect.Companion { + method public androidx.compose.ui.geometry.RoundRect getZero(); + property public final androidx.compose.ui.geometry.RoundRect Zero; + } + + public final class RoundRectKt { + method public static androidx.compose.ui.geometry.RoundRect RoundRect(androidx.compose.ui.geometry.Rect rect, float radiusX, float radiusY); + method public static androidx.compose.ui.geometry.RoundRect RoundRect(androidx.compose.ui.geometry.Rect rect, long cornerRadius); + method public static androidx.compose.ui.geometry.RoundRect RoundRect(androidx.compose.ui.geometry.Rect rect, optional long topLeft, optional long topRight, optional long bottomRight, optional long bottomLeft); + method public static androidx.compose.ui.geometry.RoundRect RoundRect(float left, float top, float right, float bottom, float radiusX, float radiusY); + method public static androidx.compose.ui.geometry.RoundRect RoundRect(float left, float top, float right, float bottom, long cornerRadius); + method public static androidx.compose.ui.geometry.Rect getBoundingRect(androidx.compose.ui.geometry.RoundRect); + method public static long getCenter(androidx.compose.ui.geometry.RoundRect); + method public static float getMaxDimension(androidx.compose.ui.geometry.RoundRect); + method public static float getMinDimension(androidx.compose.ui.geometry.RoundRect); + method public static androidx.compose.ui.geometry.Rect getSafeInnerRect(androidx.compose.ui.geometry.RoundRect); + method public static boolean isCircle(androidx.compose.ui.geometry.RoundRect); + method public static boolean isEllipse(androidx.compose.ui.geometry.RoundRect); + method public static boolean isEmpty(androidx.compose.ui.geometry.RoundRect); + method public static boolean isFinite(androidx.compose.ui.geometry.RoundRect); + method public static boolean isRect(androidx.compose.ui.geometry.RoundRect); + method public static boolean isSimple(androidx.compose.ui.geometry.RoundRect); + method public static androidx.compose.ui.geometry.RoundRect lerp(androidx.compose.ui.geometry.RoundRect start, androidx.compose.ui.geometry.RoundRect stop, float fraction); + method public static androidx.compose.ui.geometry.RoundRect translate(androidx.compose.ui.geometry.RoundRect, long offset); + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class Size { + method @androidx.compose.runtime.Stable public inline operator float component1(); + method @androidx.compose.runtime.Stable public inline operator float component2(); + method public long copy(optional float width, optional float height); + method @androidx.compose.runtime.Stable public operator long div(float operand); + method public float getHeight(); + method public float getMaxDimension(); + method public float getMinDimension(); + method public float getWidth(); + method @androidx.compose.runtime.Stable public boolean isEmpty(); + method @androidx.compose.runtime.Stable public operator long times(float operand); + property @androidx.compose.runtime.Stable public final float height; + property @androidx.compose.runtime.Stable public final float maxDimension; + property @androidx.compose.runtime.Stable public final float minDimension; + property @androidx.compose.runtime.Stable public final float width; + field public static final androidx.compose.ui.geometry.Size.Companion Companion; + } + + public static final class Size.Companion { + method public long getUnspecified(); + method public long getZero(); + property public final long Unspecified; + property public final long Zero; + } + + public final class SizeKt { + method @androidx.compose.runtime.Stable public static long Size(float width, float height); + method public static long getCenter(long); + method public static inline boolean isSpecified(long); + method public static inline boolean isUnspecified(long); + method @androidx.compose.runtime.Stable public static long lerp(long start, long stop, float fraction); + method public static inline long takeOrElse(long, kotlin.jvm.functions.Function0 block); + method @androidx.compose.runtime.Stable public static inline operator long times(double, long size); + method @androidx.compose.runtime.Stable public static inline operator long times(float, long size); + method @androidx.compose.runtime.Stable public static inline operator long times(int, long size); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.geometry.Rect toRect(long); + } + +} + diff --git a/compose/ui/ui-geometry/api/res-1.7.0-beta07.txt b/compose/ui/ui-geometry/api/res-1.7.0-beta07.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/compose/ui/ui-geometry/api/restricted_1.7.0-beta07.txt b/compose/ui/ui-geometry/api/restricted_1.7.0-beta07.txt new file mode 100644 index 0000000000000..cf25073d6e94c --- /dev/null +++ b/compose/ui/ui-geometry/api/restricted_1.7.0-beta07.txt @@ -0,0 +1,273 @@ +// Signature format: 4.0 +package androidx.compose.ui.geometry { + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class CornerRadius { + method @androidx.compose.runtime.Stable public inline operator float component1(); + method @androidx.compose.runtime.Stable public inline operator float component2(); + method public long copy(optional float x, optional float y); + method @androidx.compose.runtime.Stable public operator long div(float operand); + method public float getX(); + method public float getY(); + method @androidx.compose.runtime.Stable public operator long minus(long other); + method @androidx.compose.runtime.Stable public operator long plus(long other); + method @androidx.compose.runtime.Stable public operator long times(float operand); + method @androidx.compose.runtime.Stable public operator long unaryMinus(); + property @androidx.compose.runtime.Stable public final float x; + property @androidx.compose.runtime.Stable public final float y; + field public static final androidx.compose.ui.geometry.CornerRadius.Companion Companion; + } + + public static final class CornerRadius.Companion { + method public long getZero(); + property public final long Zero; + } + + public final class CornerRadiusKt { + method @androidx.compose.runtime.Stable public static long CornerRadius(float x, optional float y); + method @androidx.compose.runtime.Stable public static long lerp(long start, long stop, float fraction); + } + + public final class MutableRect { + ctor public MutableRect(float left, float top, float right, float bottom); + method public operator boolean contains(long offset); + method public float getBottom(); + method public inline float getHeight(); + method public float getLeft(); + method public float getRight(); + method public long getSize(); + method public float getTop(); + method public inline float getWidth(); + method @androidx.compose.runtime.Stable public void intersect(float left, float top, float right, float bottom); + method public boolean isEmpty(); + method public void set(float left, float top, float right, float bottom); + method public void setBottom(float); + method public void setLeft(float); + method public void setRight(float); + method public void setTop(float); + property public final float bottom; + property public final inline float height; + property public final boolean isEmpty; + property public final float left; + property public final float right; + property public final long size; + property public final float top; + property public final inline float width; + } + + public final class MutableRectKt { + method public static androidx.compose.ui.geometry.Rect toRect(androidx.compose.ui.geometry.MutableRect); + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class Offset { + method @androidx.compose.runtime.Stable public inline operator float component1(); + method @androidx.compose.runtime.Stable public inline operator float component2(); + method public long copy(optional float x, optional float y); + method @androidx.compose.runtime.Stable public operator long div(float operand); + method @androidx.compose.runtime.Stable public float getDistance(); + method @androidx.compose.runtime.Stable public float getDistanceSquared(); + method public float getX(); + method public float getY(); + method @androidx.compose.runtime.Stable public boolean isValid(); + method @androidx.compose.runtime.Stable public operator long minus(long other); + method @androidx.compose.runtime.Stable public operator long plus(long other); + method @androidx.compose.runtime.Stable public operator long rem(float operand); + method @androidx.compose.runtime.Stable public operator long times(float operand); + method @androidx.compose.runtime.Stable public operator long unaryMinus(); + property @androidx.compose.runtime.Stable public final float x; + property @androidx.compose.runtime.Stable public final float y; + field public static final androidx.compose.ui.geometry.Offset.Companion Companion; + } + + public static final class Offset.Companion { + method public long getInfinite(); + method public long getUnspecified(); + method public long getZero(); + property public final long Infinite; + property public final long Unspecified; + property public final long Zero; + } + + public final class OffsetKt { + method @androidx.compose.runtime.Stable public static long Offset(float x, float y); + method public static boolean isFinite(long); + method public static boolean isSpecified(long); + method public static boolean isUnspecified(long); + method @androidx.compose.runtime.Stable public static long lerp(long start, long stop, float fraction); + method public static inline long takeOrElse(long, kotlin.jvm.functions.Function0 block); + } + + @androidx.compose.runtime.Immutable public final class Rect { + ctor public Rect(@androidx.compose.runtime.Stable float left, @androidx.compose.runtime.Stable float top, @androidx.compose.runtime.Stable float right, @androidx.compose.runtime.Stable float bottom); + method public float component1(); + method public float component2(); + method public float component3(); + method public float component4(); + method public operator boolean contains(long offset); + method public androidx.compose.ui.geometry.Rect copy(float left, float top, float right, float bottom); + method @androidx.compose.runtime.Stable public androidx.compose.ui.geometry.Rect deflate(float delta); + method public float getBottom(); + method public long getBottomCenter(); + method public long getBottomLeft(); + method public long getBottomRight(); + method public long getCenter(); + method public long getCenterLeft(); + method public long getCenterRight(); + method public float getHeight(); + method public float getLeft(); + method public float getMaxDimension(); + method public float getMinDimension(); + method public float getRight(); + method public long getSize(); + method public float getTop(); + method public long getTopCenter(); + method public long getTopLeft(); + method public long getTopRight(); + method public float getWidth(); + method @androidx.compose.runtime.Stable public androidx.compose.ui.geometry.Rect inflate(float delta); + method @androidx.compose.runtime.Stable public androidx.compose.ui.geometry.Rect intersect(androidx.compose.ui.geometry.Rect other); + method @androidx.compose.runtime.Stable public androidx.compose.ui.geometry.Rect intersect(float otherLeft, float otherTop, float otherRight, float otherBottom); + method public boolean isEmpty(); + method public boolean isFinite(); + method public boolean isInfinite(); + method public boolean overlaps(androidx.compose.ui.geometry.Rect other); + method @androidx.compose.runtime.Stable public androidx.compose.ui.geometry.Rect translate(float translateX, float translateY); + method @androidx.compose.runtime.Stable public androidx.compose.ui.geometry.Rect translate(long offset); + property public final float bottom; + property public final long bottomCenter; + property public final long bottomLeft; + property public final long bottomRight; + property public final long center; + property public final long centerLeft; + property public final long centerRight; + property @androidx.compose.runtime.Stable public final float height; + property @androidx.compose.runtime.Stable public final boolean isEmpty; + property @androidx.compose.runtime.Stable public final boolean isFinite; + property @androidx.compose.runtime.Stable public final boolean isInfinite; + property public final float left; + property public final float maxDimension; + property public final float minDimension; + property public final float right; + property @androidx.compose.runtime.Stable public final long size; + property public final float top; + property public final long topCenter; + property public final long topLeft; + property public final long topRight; + property @androidx.compose.runtime.Stable public final float width; + field public static final androidx.compose.ui.geometry.Rect.Companion Companion; + } + + public static final class Rect.Companion { + method public androidx.compose.ui.geometry.Rect getZero(); + property public final androidx.compose.ui.geometry.Rect Zero; + } + + public final class RectKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.geometry.Rect Rect(long center, float radius); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.geometry.Rect Rect(long offset, long size); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.geometry.Rect Rect(long topLeft, long bottomRight); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.geometry.Rect lerp(androidx.compose.ui.geometry.Rect start, androidx.compose.ui.geometry.Rect stop, float fraction); + } + + @androidx.compose.runtime.Immutable public final class RoundRect { + ctor public RoundRect(float left, float top, float right, float bottom, optional long topLeftCornerRadius, optional long topRightCornerRadius, optional long bottomRightCornerRadius, optional long bottomLeftCornerRadius); + method public float component1(); + method public float component2(); + method public float component3(); + method public float component4(); + method public long component5-kKHJgLs(); + method public long component6-kKHJgLs(); + method public long component7-kKHJgLs(); + method public long component8-kKHJgLs(); + method public operator boolean contains(long point); + method public androidx.compose.ui.geometry.RoundRect copy-MDFrsts(float left, float top, float right, float bottom, long topLeftCornerRadius, long topRightCornerRadius, long bottomRightCornerRadius, long bottomLeftCornerRadius); + method public float getBottom(); + method public long getBottomLeftCornerRadius(); + method public long getBottomRightCornerRadius(); + method public float getHeight(); + method public float getLeft(); + method public float getRight(); + method public float getTop(); + method public long getTopLeftCornerRadius(); + method public long getTopRightCornerRadius(); + method public float getWidth(); + method public static androidx.compose.ui.geometry.RoundRect getZero(); + property public static final androidx.compose.ui.geometry.RoundRect Zero; + property public final float bottom; + property public final long bottomLeftCornerRadius; + property public final long bottomRightCornerRadius; + property public final float height; + property public final float left; + property public final float right; + property public final float top; + property public final long topLeftCornerRadius; + property public final long topRightCornerRadius; + property public final float width; + field public static final androidx.compose.ui.geometry.RoundRect.Companion Companion; + } + + public static final class RoundRect.Companion { + method public androidx.compose.ui.geometry.RoundRect getZero(); + property public final androidx.compose.ui.geometry.RoundRect Zero; + } + + public final class RoundRectKt { + method public static androidx.compose.ui.geometry.RoundRect RoundRect(androidx.compose.ui.geometry.Rect rect, float radiusX, float radiusY); + method public static androidx.compose.ui.geometry.RoundRect RoundRect(androidx.compose.ui.geometry.Rect rect, long cornerRadius); + method public static androidx.compose.ui.geometry.RoundRect RoundRect(androidx.compose.ui.geometry.Rect rect, optional long topLeft, optional long topRight, optional long bottomRight, optional long bottomLeft); + method public static androidx.compose.ui.geometry.RoundRect RoundRect(float left, float top, float right, float bottom, float radiusX, float radiusY); + method public static androidx.compose.ui.geometry.RoundRect RoundRect(float left, float top, float right, float bottom, long cornerRadius); + method public static androidx.compose.ui.geometry.Rect getBoundingRect(androidx.compose.ui.geometry.RoundRect); + method public static long getCenter(androidx.compose.ui.geometry.RoundRect); + method public static float getMaxDimension(androidx.compose.ui.geometry.RoundRect); + method public static float getMinDimension(androidx.compose.ui.geometry.RoundRect); + method public static androidx.compose.ui.geometry.Rect getSafeInnerRect(androidx.compose.ui.geometry.RoundRect); + method public static boolean isCircle(androidx.compose.ui.geometry.RoundRect); + method public static boolean isEllipse(androidx.compose.ui.geometry.RoundRect); + method public static boolean isEmpty(androidx.compose.ui.geometry.RoundRect); + method public static boolean isFinite(androidx.compose.ui.geometry.RoundRect); + method public static boolean isRect(androidx.compose.ui.geometry.RoundRect); + method public static boolean isSimple(androidx.compose.ui.geometry.RoundRect); + method public static androidx.compose.ui.geometry.RoundRect lerp(androidx.compose.ui.geometry.RoundRect start, androidx.compose.ui.geometry.RoundRect stop, float fraction); + method public static androidx.compose.ui.geometry.RoundRect translate(androidx.compose.ui.geometry.RoundRect, long offset); + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class Size { + method @androidx.compose.runtime.Stable public inline operator float component1(); + method @androidx.compose.runtime.Stable public inline operator float component2(); + method public long copy(optional float width, optional float height); + method @androidx.compose.runtime.Stable public operator long div(float operand); + method public float getHeight(); + method public float getMaxDimension(); + method public float getMinDimension(); + method public float getWidth(); + method @androidx.compose.runtime.Stable public boolean isEmpty(); + method @androidx.compose.runtime.Stable public operator long times(float operand); + property @androidx.compose.runtime.Stable public final float height; + property @androidx.compose.runtime.Stable public final float maxDimension; + property @androidx.compose.runtime.Stable public final float minDimension; + property @androidx.compose.runtime.Stable public final float width; + field public static final androidx.compose.ui.geometry.Size.Companion Companion; + } + + public static final class Size.Companion { + method public long getUnspecified(); + method public long getZero(); + property public final long Unspecified; + property public final long Zero; + } + + public final class SizeKt { + method @androidx.compose.runtime.Stable public static long Size(float width, float height); + method public static long getCenter(long); + method public static inline boolean isSpecified(long); + method public static inline boolean isUnspecified(long); + method @androidx.compose.runtime.Stable public static long lerp(long start, long stop, float fraction); + method public static inline long takeOrElse(long, kotlin.jvm.functions.Function0 block); + method @androidx.compose.runtime.Stable public static inline operator long times(double, long size); + method @androidx.compose.runtime.Stable public static inline operator long times(float, long size); + method @androidx.compose.runtime.Stable public static inline operator long times(int, long size); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.geometry.Rect toRect(long); + } + +} + diff --git a/compose/ui/ui-graphics/api/1.7.0-beta07.txt b/compose/ui/ui-graphics/api/1.7.0-beta07.txt new file mode 100644 index 0000000000000..41516b7379882 --- /dev/null +++ b/compose/ui/ui-graphics/api/1.7.0-beta07.txt @@ -0,0 +1,1871 @@ +// Signature format: 4.0 +package androidx.compose.ui.graphics { + + public final class AndroidBlendMode_androidKt { + method public static boolean isSupported(int); + } + + public final class AndroidCanvas_androidKt { + method public static androidx.compose.ui.graphics.Canvas Canvas(android.graphics.Canvas c); + method public static android.graphics.Canvas getNativeCanvas(androidx.compose.ui.graphics.Canvas); + } + + public final class AndroidColorFilter_androidKt { + method public static android.graphics.ColorFilter asAndroidColorFilter(androidx.compose.ui.graphics.ColorFilter); + method public static androidx.compose.ui.graphics.ColorFilter asComposeColorFilter(android.graphics.ColorFilter); + } + + public final class AndroidColorSpace_androidKt { + method @RequiresApi(android.os.Build.VERSION_CODES.O) public static android.graphics.ColorSpace toAndroidColorSpace(androidx.compose.ui.graphics.colorspace.ColorSpace); + method @RequiresApi(android.os.Build.VERSION_CODES.O) public static androidx.compose.ui.graphics.colorspace.ColorSpace toComposeColorSpace(android.graphics.ColorSpace); + } + + public final class AndroidGraphicsContext_androidKt { + method public static androidx.compose.ui.graphics.GraphicsContext GraphicsContext(android.view.ViewGroup layerContainer); + } + + public final class AndroidImageBitmap_androidKt { + method public static android.graphics.Bitmap asAndroidBitmap(androidx.compose.ui.graphics.ImageBitmap); + method public static androidx.compose.ui.graphics.ImageBitmap asImageBitmap(android.graphics.Bitmap); + } + + public final class AndroidMatrixConversions_androidKt { + method public static void setFrom(android.graphics.Matrix, float[] matrix); + method public static void setFrom(float[], android.graphics.Matrix matrix); + } + + public final class AndroidPaint implements androidx.compose.ui.graphics.Paint { + ctor public AndroidPaint(); + ctor public AndroidPaint(android.graphics.Paint internalPaint); + method public android.graphics.Paint asFrameworkPaint(); + method public float getAlpha(); + method public int getBlendMode(); + method public long getColor(); + method public androidx.compose.ui.graphics.ColorFilter? getColorFilter(); + method public int getFilterQuality(); + method public androidx.compose.ui.graphics.PathEffect? getPathEffect(); + method public android.graphics.Shader? getShader(); + method public int getStrokeCap(); + method public int getStrokeJoin(); + method public float getStrokeMiterLimit(); + method public float getStrokeWidth(); + method public int getStyle(); + method public boolean isAntiAlias(); + method public void setAlpha(float); + method public void setAntiAlias(boolean); + method public void setBlendMode(int); + method public void setColor(long); + method public void setColorFilter(androidx.compose.ui.graphics.ColorFilter?); + method public void setFilterQuality(int); + method public void setPathEffect(androidx.compose.ui.graphics.PathEffect?); + method public void setShader(android.graphics.Shader?); + method public void setStrokeCap(int); + method public void setStrokeJoin(int); + method public void setStrokeMiterLimit(float); + method public void setStrokeWidth(float); + method public void setStyle(int); + property public float alpha; + property public int blendMode; + property public long color; + property public androidx.compose.ui.graphics.ColorFilter? colorFilter; + property public int filterQuality; + property public boolean isAntiAlias; + property public androidx.compose.ui.graphics.PathEffect? pathEffect; + property public android.graphics.Shader? shader; + property public int strokeCap; + property public int strokeJoin; + property public float strokeMiterLimit; + property public float strokeWidth; + property public int style; + } + + public final class AndroidPaint_androidKt { + method public static androidx.compose.ui.graphics.Paint Paint(); + method public static androidx.compose.ui.graphics.Paint asComposePaint(android.graphics.Paint); + } + + public final class AndroidPath implements androidx.compose.ui.graphics.Path { + ctor public AndroidPath(optional android.graphics.Path internalPath); + method public void addArc(androidx.compose.ui.geometry.Rect oval, float startAngleDegrees, float sweepAngleDegrees); + method public void addArcRad(androidx.compose.ui.geometry.Rect oval, float startAngleRadians, float sweepAngleRadians); + method public void addOval(androidx.compose.ui.geometry.Rect oval); + method public void addOval(androidx.compose.ui.geometry.Rect oval, androidx.compose.ui.graphics.Path.Direction direction); + method public void addPath(androidx.compose.ui.graphics.Path path, long offset); + method public void addRect(androidx.compose.ui.geometry.Rect rect); + method public void addRect(androidx.compose.ui.geometry.Rect rect, androidx.compose.ui.graphics.Path.Direction direction); + method public void addRoundRect(androidx.compose.ui.geometry.RoundRect roundRect); + method public void addRoundRect(androidx.compose.ui.geometry.RoundRect roundRect, androidx.compose.ui.graphics.Path.Direction direction); + method public void arcTo(androidx.compose.ui.geometry.Rect rect, float startAngleDegrees, float sweepAngleDegrees, boolean forceMoveTo); + method public void close(); + method public void cubicTo(float x1, float y1, float x2, float y2, float x3, float y3); + method public androidx.compose.ui.geometry.Rect getBounds(); + method public int getFillType(); + method public android.graphics.Path getInternalPath(); + method public boolean isConvex(); + method public boolean isEmpty(); + method public void lineTo(float x, float y); + method public void moveTo(float x, float y); + method public boolean op(androidx.compose.ui.graphics.Path path1, androidx.compose.ui.graphics.Path path2, int operation); + method public void quadraticBezierTo(float x1, float y1, float x2, float y2); + method public void relativeCubicTo(float dx1, float dy1, float dx2, float dy2, float dx3, float dy3); + method public void relativeLineTo(float dx, float dy); + method public void relativeMoveTo(float dx, float dy); + method public void relativeQuadraticBezierTo(float dx1, float dy1, float dx2, float dy2); + method public void reset(); + method public void setFillType(int); + method public void translate(long offset); + property public int fillType; + property public final android.graphics.Path internalPath; + property public boolean isConvex; + property public boolean isEmpty; + } + + public final class AndroidPathEffect_androidKt { + method public static android.graphics.PathEffect asAndroidPathEffect(androidx.compose.ui.graphics.PathEffect); + method public static androidx.compose.ui.graphics.PathEffect toComposePathEffect(android.graphics.PathEffect); + } + + public final class AndroidPathIterator_androidKt { + method public static androidx.compose.ui.graphics.PathIterator PathIterator(androidx.compose.ui.graphics.Path path, optional androidx.compose.ui.graphics.PathIterator.ConicEvaluation conicEvaluation, optional float tolerance); + } + + public final class AndroidPathMeasure implements androidx.compose.ui.graphics.PathMeasure { + method public float getLength(); + method public long getPosition(float distance); + method public boolean getSegment(float startDistance, float stopDistance, androidx.compose.ui.graphics.Path destination, boolean startWithMoveTo); + method public long getTangent(float distance); + method public void setPath(androidx.compose.ui.graphics.Path? path, boolean forceClosed); + property public float length; + } + + public final class AndroidPathMeasure_androidKt { + method public static androidx.compose.ui.graphics.PathMeasure PathMeasure(); + } + + public final class AndroidPath_androidKt { + method public static androidx.compose.ui.graphics.Path Path(); + method public static inline android.graphics.Path asAndroidPath(androidx.compose.ui.graphics.Path); + method public static androidx.compose.ui.graphics.Path asComposePath(android.graphics.Path); + } + + public final class AndroidRenderEffect_androidKt { + method public static androidx.compose.ui.graphics.RenderEffect asComposeRenderEffect(android.graphics.RenderEffect); + } + + public final class AndroidTileMode_androidKt { + method public static boolean isSupported(int); + method public static android.graphics.Shader.TileMode toAndroidTileMode(int); + method public static int toComposeTileMode(android.graphics.Shader.TileMode); + } + + public final class AndroidVertexMode_androidKt { + method public static android.graphics.Canvas.VertexMode toAndroidVertexMode(int); + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class BlendMode { + field public static final androidx.compose.ui.graphics.BlendMode.Companion Companion; + } + + public static final class BlendMode.Companion { + method public int getClear(); + method public int getColor(); + method public int getColorBurn(); + method public int getColorDodge(); + method public int getDarken(); + method public int getDifference(); + method public int getDst(); + method public int getDstAtop(); + method public int getDstIn(); + method public int getDstOut(); + method public int getDstOver(); + method public int getExclusion(); + method public int getHardlight(); + method public int getHue(); + method public int getLighten(); + method public int getLuminosity(); + method public int getModulate(); + method public int getMultiply(); + method public int getOverlay(); + method public int getPlus(); + method public int getSaturation(); + method public int getScreen(); + method public int getSoftlight(); + method public int getSrc(); + method public int getSrcAtop(); + method public int getSrcIn(); + method public int getSrcOut(); + method public int getSrcOver(); + method public int getXor(); + property public final int Clear; + property public final int Color; + property public final int ColorBurn; + property public final int ColorDodge; + property public final int Darken; + property public final int Difference; + property public final int Dst; + property public final int DstAtop; + property public final int DstIn; + property public final int DstOut; + property public final int DstOver; + property public final int Exclusion; + property public final int Hardlight; + property public final int Hue; + property public final int Lighten; + property public final int Luminosity; + property public final int Modulate; + property public final int Multiply; + property public final int Overlay; + property public final int Plus; + property public final int Saturation; + property public final int Screen; + property public final int Softlight; + property public final int Src; + property public final int SrcAtop; + property public final int SrcIn; + property public final int SrcOut; + property public final int SrcOver; + property public final int Xor; + } + + @androidx.compose.runtime.Immutable public final class BlendModeColorFilter extends androidx.compose.ui.graphics.ColorFilter { + ctor public BlendModeColorFilter(long color, int blendMode); + method public int getBlendMode(); + method public long getColor(); + property public final int blendMode; + property public final long color; + } + + @androidx.compose.runtime.Immutable public final class BlurEffect extends androidx.compose.ui.graphics.RenderEffect { + ctor public BlurEffect(androidx.compose.ui.graphics.RenderEffect? renderEffect, float radiusX, optional float radiusY, optional int edgeTreatment); + method @RequiresApi(android.os.Build.VERSION_CODES.S) protected android.graphics.RenderEffect createRenderEffect(); + } + + @androidx.compose.runtime.Immutable public abstract sealed class Brush { + method public abstract void applyTo(long size, androidx.compose.ui.graphics.Paint p, float alpha); + method public long getIntrinsicSize(); + property public long intrinsicSize; + field public static final androidx.compose.ui.graphics.Brush.Companion Companion; + } + + public static final class Brush.Companion { + method @androidx.compose.runtime.Stable public androidx.compose.ui.graphics.Brush horizontalGradient(java.util.List colors, optional float startX, optional float endX, optional int tileMode); + method @androidx.compose.runtime.Stable public androidx.compose.ui.graphics.Brush horizontalGradient(kotlin.Pair[] colorStops, optional float startX, optional float endX, optional int tileMode); + method @androidx.compose.runtime.Stable public androidx.compose.ui.graphics.Brush linearGradient(java.util.List colors, optional long start, optional long end, optional int tileMode); + method @androidx.compose.runtime.Stable public androidx.compose.ui.graphics.Brush linearGradient(kotlin.Pair[] colorStops, optional long start, optional long end, optional int tileMode); + method @androidx.compose.runtime.Stable public androidx.compose.ui.graphics.Brush radialGradient(java.util.List colors, optional long center, optional float radius, optional int tileMode); + method @androidx.compose.runtime.Stable public androidx.compose.ui.graphics.Brush radialGradient(kotlin.Pair[] colorStops, optional long center, optional float radius, optional int tileMode); + method @androidx.compose.runtime.Stable public androidx.compose.ui.graphics.Brush sweepGradient(java.util.List colors, optional long center); + method @androidx.compose.runtime.Stable public androidx.compose.ui.graphics.Brush sweepGradient(kotlin.Pair[] colorStops, optional long center); + method @androidx.compose.runtime.Stable public androidx.compose.ui.graphics.Brush verticalGradient(java.util.List colors, optional float startY, optional float endY, optional int tileMode); + method @androidx.compose.runtime.Stable public androidx.compose.ui.graphics.Brush verticalGradient(kotlin.Pair[] colorStops, optional float startY, optional float endY, optional int tileMode); + } + + public final class BrushKt { + method public static androidx.compose.ui.graphics.ShaderBrush ShaderBrush(android.graphics.Shader shader); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface Canvas { + method public void clipPath(androidx.compose.ui.graphics.Path path, optional int clipOp); + method public default void clipRect(androidx.compose.ui.geometry.Rect rect, optional int clipOp); + method public void clipRect(float left, float top, float right, float bottom, optional int clipOp); + method public void concat(float[] matrix); + method public void disableZ(); + method public default void drawArc(androidx.compose.ui.geometry.Rect rect, float startAngle, float sweepAngle, boolean useCenter, androidx.compose.ui.graphics.Paint paint); + method public void drawArc(float left, float top, float right, float bottom, float startAngle, float sweepAngle, boolean useCenter, androidx.compose.ui.graphics.Paint paint); + method public default void drawArcRad(androidx.compose.ui.geometry.Rect rect, float startAngleRad, float sweepAngleRad, boolean useCenter, androidx.compose.ui.graphics.Paint paint); + method public void drawCircle(long center, float radius, androidx.compose.ui.graphics.Paint paint); + method public void drawImage(androidx.compose.ui.graphics.ImageBitmap image, long topLeftOffset, androidx.compose.ui.graphics.Paint paint); + method public void drawImageRect(androidx.compose.ui.graphics.ImageBitmap image, optional long srcOffset, optional long srcSize, optional long dstOffset, optional long dstSize, androidx.compose.ui.graphics.Paint paint); + method public void drawLine(long p1, long p2, androidx.compose.ui.graphics.Paint paint); + method public default void drawOval(androidx.compose.ui.geometry.Rect rect, androidx.compose.ui.graphics.Paint paint); + method public void drawOval(float left, float top, float right, float bottom, androidx.compose.ui.graphics.Paint paint); + method public void drawPath(androidx.compose.ui.graphics.Path path, androidx.compose.ui.graphics.Paint paint); + method public void drawPoints(int pointMode, java.util.List points, androidx.compose.ui.graphics.Paint paint); + method public void drawRawPoints(int pointMode, float[] points, androidx.compose.ui.graphics.Paint paint); + method public default void drawRect(androidx.compose.ui.geometry.Rect rect, androidx.compose.ui.graphics.Paint paint); + method public void drawRect(float left, float top, float right, float bottom, androidx.compose.ui.graphics.Paint paint); + method public void drawRoundRect(float left, float top, float right, float bottom, float radiusX, float radiusY, androidx.compose.ui.graphics.Paint paint); + method public void drawVertices(androidx.compose.ui.graphics.Vertices vertices, int blendMode, androidx.compose.ui.graphics.Paint paint); + method public void enableZ(); + method public void restore(); + method public void rotate(float degrees); + method public void save(); + method public void saveLayer(androidx.compose.ui.geometry.Rect bounds, androidx.compose.ui.graphics.Paint paint); + method public void scale(float sx, optional float sy); + method public void skew(float sx, float sy); + method public default void skewRad(float sxRad, float syRad); + method public void translate(float dx, float dy); + } + + public final class CanvasHolder { + ctor public CanvasHolder(); + method public inline void drawInto(android.graphics.Canvas targetCanvas, kotlin.jvm.functions.Function1 block); + } + + public final class CanvasKt { + method public static androidx.compose.ui.graphics.Canvas Canvas(androidx.compose.ui.graphics.ImageBitmap image); + method public static void rotate(androidx.compose.ui.graphics.Canvas, float degrees, float pivotX, float pivotY); + method public static void rotateRad(androidx.compose.ui.graphics.Canvas, float radians, optional float pivotX, optional float pivotY); + method public static void scale(androidx.compose.ui.graphics.Canvas, float sx, optional float sy, float pivotX, float pivotY); + method public static inline void withSave(androidx.compose.ui.graphics.Canvas, kotlin.jvm.functions.Function0 block); + method public static inline void withSaveLayer(androidx.compose.ui.graphics.Canvas, androidx.compose.ui.geometry.Rect bounds, androidx.compose.ui.graphics.Paint paint, kotlin.jvm.functions.Function0 block); + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class ClipOp { + field public static final androidx.compose.ui.graphics.ClipOp.Companion Companion; + } + + public static final class ClipOp.Companion { + method public int getDifference(); + method public int getIntersect(); + property public final int Difference; + property public final int Intersect; + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class Color { + ctor public Color(long value); + method @androidx.compose.runtime.Stable public inline operator float component1(); + method @androidx.compose.runtime.Stable public inline operator float component2(); + method @androidx.compose.runtime.Stable public inline operator float component3(); + method @androidx.compose.runtime.Stable public inline operator float component4(); + method @androidx.compose.runtime.Stable public inline operator androidx.compose.ui.graphics.colorspace.ColorSpace component5(); + method public long convert(androidx.compose.ui.graphics.colorspace.ColorSpace colorSpace); + method @androidx.compose.runtime.Stable public long copy(optional float alpha, optional float red, optional float green, optional float blue); + method public float getAlpha(); + method public float getBlue(); + method public androidx.compose.ui.graphics.colorspace.ColorSpace getColorSpace(); + method public float getGreen(); + method public float getRed(); + method public long getValue(); + property @androidx.compose.runtime.Stable public final float alpha; + property @androidx.compose.runtime.Stable public final float blue; + property @androidx.compose.runtime.Stable public final androidx.compose.ui.graphics.colorspace.ColorSpace colorSpace; + property @androidx.compose.runtime.Stable public final float green; + property @androidx.compose.runtime.Stable public final float red; + property public final long value; + field public static final androidx.compose.ui.graphics.Color.Companion Companion; + } + + public static final class Color.Companion { + method public long getBlack(); + method public long getBlue(); + method public long getCyan(); + method public long getDarkGray(); + method public long getGray(); + method public long getGreen(); + method public long getLightGray(); + method public long getMagenta(); + method public long getRed(); + method public long getTransparent(); + method public long getUnspecified(); + method public long getWhite(); + method public long getYellow(); + method public long hsl(float hue, float saturation, float lightness, optional float alpha, optional androidx.compose.ui.graphics.colorspace.Rgb colorSpace); + method public long hsv(float hue, float saturation, float value, optional float alpha, optional androidx.compose.ui.graphics.colorspace.Rgb colorSpace); + property public final long Black; + property public final long Blue; + property public final long Cyan; + property public final long DarkGray; + property public final long Gray; + property public final long Green; + property public final long LightGray; + property public final long Magenta; + property public final long Red; + property public final long Transparent; + property public final long Unspecified; + property public final long White; + property public final long Yellow; + } + + @androidx.compose.runtime.Immutable public class ColorFilter { + field public static final androidx.compose.ui.graphics.ColorFilter.Companion Companion; + } + + public static final class ColorFilter.Companion { + method @androidx.compose.runtime.Stable public androidx.compose.ui.graphics.ColorFilter colorMatrix(float[] colorMatrix); + method @androidx.compose.runtime.Stable public androidx.compose.ui.graphics.ColorFilter lighting(long multiply, long add); + method @androidx.compose.runtime.Stable public androidx.compose.ui.graphics.ColorFilter tint(long color, optional int blendMode); + } + + public final class ColorKt { + method @androidx.compose.runtime.Stable public static long Color(float red, float green, float blue, optional float alpha, optional androidx.compose.ui.graphics.colorspace.ColorSpace colorSpace); + method @androidx.compose.runtime.Stable public static long Color(@ColorInt int color); + method @androidx.compose.runtime.Stable public static long Color(@IntRange(from=0L, to=255L) int red, @IntRange(from=0L, to=255L) int green, @IntRange(from=0L, to=255L) int blue, optional @IntRange(from=0L, to=255L) int alpha); + method @androidx.compose.runtime.Stable public static long Color(long color); + method @androidx.compose.runtime.Stable public static long compositeOver(long, long background); + method public static inline boolean isSpecified(long); + method public static inline boolean isUnspecified(long); + method @androidx.compose.runtime.Stable public static long lerp(long start, long stop, @FloatRange(from=0.0, to=1.0) float fraction); + method @androidx.compose.runtime.Stable public static float luminance(long); + method public static inline long takeOrElse(long, kotlin.jvm.functions.Function0 block); + method @ColorInt @androidx.compose.runtime.Stable public static int toArgb(long); + } + + @kotlin.jvm.JvmInline public final value class ColorMatrix { + ctor public ColorMatrix(optional float[] values); + method public void convertRgbToYuv(); + method public void convertYuvToRgb(); + method public inline operator float get(int row, int column); + method public float[] getValues(); + method public void reset(); + method public void set(float[] src); + method public inline operator void set(int row, int column, float v); + method public void setToRotateBlue(float degrees); + method public void setToRotateGreen(float degrees); + method public void setToRotateRed(float degrees); + method public void setToSaturation(float sat); + method public void setToScale(float redScale, float greenScale, float blueScale, float alphaScale); + method public operator void timesAssign(float[] colorMatrix); + property public final float[] values; + } + + @androidx.compose.runtime.Immutable public final class ColorMatrixColorFilter extends androidx.compose.ui.graphics.ColorFilter { + ctor public ColorMatrixColorFilter(float[] colorMatrix); + method public float[] copyColorMatrix(optional float[] targetColorMatrix); + } + + public fun interface ColorProducer { + method public operator long invoke(); + } + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This API is experimental and is likely to change in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalGraphicsApi { + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class FilterQuality { + method public int getValue(); + property public final int value; + field public static final androidx.compose.ui.graphics.FilterQuality.Companion Companion; + } + + public static final class FilterQuality.Companion { + method public int getHigh(); + method public int getLow(); + method public int getMedium(); + method public int getNone(); + property public final int High; + property public final int Low; + property public final int Medium; + property public final int None; + } + + public interface GraphicsContext { + method public androidx.compose.ui.graphics.layer.GraphicsLayer createGraphicsLayer(); + method public void releaseGraphicsLayer(androidx.compose.ui.graphics.layer.GraphicsLayer layer); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface ImageBitmap { + method public androidx.compose.ui.graphics.colorspace.ColorSpace getColorSpace(); + method public int getConfig(); + method public boolean getHasAlpha(); + method public int getHeight(); + method public int getWidth(); + method public void prepareToDraw(); + method public void readPixels(int[] buffer, optional int startX, optional int startY, optional int width, optional int height, optional int bufferOffset, optional int stride); + property public abstract androidx.compose.ui.graphics.colorspace.ColorSpace colorSpace; + property public abstract int config; + property public abstract boolean hasAlpha; + property public abstract int height; + property public abstract int width; + field public static final androidx.compose.ui.graphics.ImageBitmap.Companion Companion; + } + + public static final class ImageBitmap.Companion { + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class ImageBitmapConfig { + method public int getValue(); + property public final int value; + field public static final androidx.compose.ui.graphics.ImageBitmapConfig.Companion Companion; + } + + public static final class ImageBitmapConfig.Companion { + method public int getAlpha8(); + method public int getArgb8888(); + method public int getF16(); + method public int getGpu(); + method public int getRgb565(); + property public final int Alpha8; + property public final int Argb8888; + property public final int F16; + property public final int Gpu; + property public final int Rgb565; + } + + public final class ImageBitmapKt { + method public static androidx.compose.ui.graphics.ImageBitmap ImageBitmap(int width, int height, optional int config, optional boolean hasAlpha, optional androidx.compose.ui.graphics.colorspace.ColorSpace colorSpace); + method public static androidx.compose.ui.graphics.PixelMap toPixelMap(androidx.compose.ui.graphics.ImageBitmap, optional int startX, optional int startY, optional int width, optional int height, optional int[] buffer, optional int bufferOffset, optional int stride); + } + + @androidx.compose.runtime.Immutable public final class LightingColorFilter extends androidx.compose.ui.graphics.ColorFilter { + ctor public LightingColorFilter(long multiply, long add); + method public long getAdd(); + method public long getMultiply(); + property public final long add; + property public final long multiply; + } + + @androidx.compose.runtime.Immutable public final class LinearGradient extends androidx.compose.ui.graphics.ShaderBrush { + method public android.graphics.Shader createShader(long size); + property public long intrinsicSize; + } + + @kotlin.jvm.JvmInline public final value class Matrix { + ctor public Matrix(optional float[] values); + method public inline operator float get(int row, int column); + method public float[] getValues(); + method public void invert(); + method public void map(androidx.compose.ui.geometry.MutableRect rect); + method public androidx.compose.ui.geometry.Rect map(androidx.compose.ui.geometry.Rect rect); + method public long map(long point); + method public void reset(); + method public void rotateX(float degrees); + method public void rotateY(float degrees); + method public void rotateZ(float degrees); + method public void scale(optional float x, optional float y, optional float z); + method public inline operator void set(int row, int column, float v); + method public void setFrom(float[] matrix); + method public operator void timesAssign(float[] m); + method public void translate(optional float x, optional float y, optional float z); + property public final float[] values; + field public static final androidx.compose.ui.graphics.Matrix.Companion Companion; + field public static final int Perspective0 = 3; // 0x3 + field public static final int Perspective1 = 7; // 0x7 + field public static final int Perspective2 = 15; // 0xf + field public static final int ScaleX = 0; // 0x0 + field public static final int ScaleY = 5; // 0x5 + field public static final int ScaleZ = 10; // 0xa + field public static final int SkewX = 4; // 0x4 + field public static final int SkewY = 1; // 0x1 + field public static final int TranslateX = 12; // 0xc + field public static final int TranslateY = 13; // 0xd + field public static final int TranslateZ = 14; // 0xe + } + + public static final class Matrix.Companion { + } + + public final class MatrixKt { + method public static boolean isIdentity(float[]); + } + + @androidx.compose.runtime.Immutable public final class OffsetEffect extends androidx.compose.ui.graphics.RenderEffect { + ctor public OffsetEffect(androidx.compose.ui.graphics.RenderEffect? renderEffect, long offset); + method @RequiresApi(android.os.Build.VERSION_CODES.S) protected android.graphics.RenderEffect createRenderEffect(); + } + + public abstract sealed class Outline { + method public abstract androidx.compose.ui.geometry.Rect getBounds(); + property public abstract androidx.compose.ui.geometry.Rect bounds; + } + + public static final class Outline.Generic extends androidx.compose.ui.graphics.Outline { + ctor public Outline.Generic(androidx.compose.ui.graphics.Path path); + method public androidx.compose.ui.geometry.Rect getBounds(); + method public androidx.compose.ui.graphics.Path getPath(); + property public androidx.compose.ui.geometry.Rect bounds; + property public final androidx.compose.ui.graphics.Path path; + } + + @androidx.compose.runtime.Immutable public static final class Outline.Rectangle extends androidx.compose.ui.graphics.Outline { + ctor public Outline.Rectangle(androidx.compose.ui.geometry.Rect rect); + method public androidx.compose.ui.geometry.Rect getBounds(); + method public androidx.compose.ui.geometry.Rect getRect(); + property public androidx.compose.ui.geometry.Rect bounds; + property public final androidx.compose.ui.geometry.Rect rect; + } + + @androidx.compose.runtime.Immutable public static final class Outline.Rounded extends androidx.compose.ui.graphics.Outline { + ctor public Outline.Rounded(androidx.compose.ui.geometry.RoundRect roundRect); + method public androidx.compose.ui.geometry.Rect getBounds(); + method public androidx.compose.ui.geometry.RoundRect getRoundRect(); + property public androidx.compose.ui.geometry.Rect bounds; + property public final androidx.compose.ui.geometry.RoundRect roundRect; + } + + public final class OutlineKt { + method public static void addOutline(androidx.compose.ui.graphics.Path, androidx.compose.ui.graphics.Outline outline); + method public static void drawOutline(androidx.compose.ui.graphics.Canvas, androidx.compose.ui.graphics.Outline outline, androidx.compose.ui.graphics.Paint paint); + method public static void drawOutline(androidx.compose.ui.graphics.drawscope.DrawScope, androidx.compose.ui.graphics.Outline outline, androidx.compose.ui.graphics.Brush brush, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + method public static void drawOutline(androidx.compose.ui.graphics.drawscope.DrawScope, androidx.compose.ui.graphics.Outline outline, long color, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + } + + public interface Paint { + method public android.graphics.Paint asFrameworkPaint(); + method public float getAlpha(); + method public int getBlendMode(); + method public long getColor(); + method public androidx.compose.ui.graphics.ColorFilter? getColorFilter(); + method public int getFilterQuality(); + method public androidx.compose.ui.graphics.PathEffect? getPathEffect(); + method public android.graphics.Shader? getShader(); + method public int getStrokeCap(); + method public int getStrokeJoin(); + method public float getStrokeMiterLimit(); + method public float getStrokeWidth(); + method public int getStyle(); + method public boolean isAntiAlias(); + method public void setAlpha(float); + method public void setAntiAlias(boolean); + method public void setBlendMode(int); + method public void setColor(long); + method public void setColorFilter(androidx.compose.ui.graphics.ColorFilter?); + method public void setFilterQuality(int); + method public void setPathEffect(androidx.compose.ui.graphics.PathEffect?); + method public void setShader(android.graphics.Shader?); + method public void setStrokeCap(int); + method public void setStrokeJoin(int); + method public void setStrokeMiterLimit(float); + method public void setStrokeWidth(float); + method public void setStyle(int); + property public abstract float alpha; + property public abstract int blendMode; + property public abstract long color; + property public abstract androidx.compose.ui.graphics.ColorFilter? colorFilter; + property public abstract int filterQuality; + property public abstract boolean isAntiAlias; + property public abstract androidx.compose.ui.graphics.PathEffect? pathEffect; + property public abstract android.graphics.Shader? shader; + property public abstract int strokeCap; + property public abstract int strokeJoin; + property public abstract float strokeMiterLimit; + property public abstract float strokeWidth; + property public abstract int style; + } + + public final class PaintKt { + field public static final float DefaultAlpha = 1.0f; + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class PaintingStyle { + field public static final androidx.compose.ui.graphics.PaintingStyle.Companion Companion; + } + + public static final class PaintingStyle.Companion { + method public int getFill(); + method public int getStroke(); + property public final int Fill; + property public final int Stroke; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface Path { + method public void addArc(androidx.compose.ui.geometry.Rect oval, float startAngleDegrees, float sweepAngleDegrees); + method public void addArcRad(androidx.compose.ui.geometry.Rect oval, float startAngleRadians, float sweepAngleRadians); + method @Deprecated public void addOval(androidx.compose.ui.geometry.Rect oval); + method public void addOval(androidx.compose.ui.geometry.Rect oval, optional androidx.compose.ui.graphics.Path.Direction direction); + method public void addPath(androidx.compose.ui.graphics.Path path, optional long offset); + method @Deprecated public void addRect(androidx.compose.ui.geometry.Rect rect); + method public void addRect(androidx.compose.ui.geometry.Rect rect, optional androidx.compose.ui.graphics.Path.Direction direction); + method @Deprecated public void addRoundRect(androidx.compose.ui.geometry.RoundRect roundRect); + method public void addRoundRect(androidx.compose.ui.geometry.RoundRect roundRect, optional androidx.compose.ui.graphics.Path.Direction direction); + method public default infix androidx.compose.ui.graphics.Path and(androidx.compose.ui.graphics.Path path); + method public void arcTo(androidx.compose.ui.geometry.Rect rect, float startAngleDegrees, float sweepAngleDegrees, boolean forceMoveTo); + method public default void arcToRad(androidx.compose.ui.geometry.Rect rect, float startAngleRadians, float sweepAngleRadians, boolean forceMoveTo); + method public void close(); + method public void cubicTo(float x1, float y1, float x2, float y2, float x3, float y3); + method public androidx.compose.ui.geometry.Rect getBounds(); + method public int getFillType(); + method public boolean isConvex(); + method public boolean isEmpty(); + method public default operator androidx.compose.ui.graphics.PathIterator iterator(); + method public default androidx.compose.ui.graphics.PathIterator iterator(androidx.compose.ui.graphics.PathIterator.ConicEvaluation conicEvaluation, optional float tolerance); + method public void lineTo(float x, float y); + method public default operator androidx.compose.ui.graphics.Path minus(androidx.compose.ui.graphics.Path path); + method public void moveTo(float x, float y); + method public boolean op(androidx.compose.ui.graphics.Path path1, androidx.compose.ui.graphics.Path path2, int operation); + method public default infix androidx.compose.ui.graphics.Path or(androidx.compose.ui.graphics.Path path); + method public default operator androidx.compose.ui.graphics.Path plus(androidx.compose.ui.graphics.Path path); + method @Deprecated public void quadraticBezierTo(float x1, float y1, float x2, float y2); + method public default void quadraticTo(float x1, float y1, float x2, float y2); + method public void relativeCubicTo(float dx1, float dy1, float dx2, float dy2, float dx3, float dy3); + method public void relativeLineTo(float dx, float dy); + method public void relativeMoveTo(float dx, float dy); + method @Deprecated public void relativeQuadraticBezierTo(float dx1, float dy1, float dx2, float dy2); + method public default void relativeQuadraticTo(float dx1, float dy1, float dx2, float dy2); + method public void reset(); + method public default void rewind(); + method public void setFillType(int); + method public default void transform(float[] matrix); + method public void translate(long offset); + method public default infix androidx.compose.ui.graphics.Path xor(androidx.compose.ui.graphics.Path path); + property public abstract int fillType; + property public abstract boolean isConvex; + property public abstract boolean isEmpty; + field public static final androidx.compose.ui.graphics.Path.Companion Companion; + } + + public static final class Path.Companion { + method public androidx.compose.ui.graphics.Path combine(int operation, androidx.compose.ui.graphics.Path path1, androidx.compose.ui.graphics.Path path2); + } + + public enum Path.Direction { + enum_constant public static final androidx.compose.ui.graphics.Path.Direction Clockwise; + enum_constant public static final androidx.compose.ui.graphics.Path.Direction CounterClockwise; + } + + public interface PathEffect { + field public static final androidx.compose.ui.graphics.PathEffect.Companion Companion; + } + + public static final class PathEffect.Companion { + method public androidx.compose.ui.graphics.PathEffect chainPathEffect(androidx.compose.ui.graphics.PathEffect outer, androidx.compose.ui.graphics.PathEffect inner); + method public androidx.compose.ui.graphics.PathEffect cornerPathEffect(float radius); + method public androidx.compose.ui.graphics.PathEffect dashPathEffect(float[] intervals, optional float phase); + method public androidx.compose.ui.graphics.PathEffect stampedPathEffect(androidx.compose.ui.graphics.Path shape, float advance, float phase, int style); + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class PathFillType { + field public static final androidx.compose.ui.graphics.PathFillType.Companion Companion; + } + + public static final class PathFillType.Companion { + method public int getEvenOdd(); + method public int getNonZero(); + property public final int EvenOdd; + property public final int NonZero; + } + + public final class PathGeometryKt { + method public static androidx.compose.ui.graphics.Path.Direction computeDirection(androidx.compose.ui.graphics.Path); + method public static java.util.List divide(androidx.compose.ui.graphics.Path, optional java.util.List contours); + method public static androidx.compose.ui.graphics.Path reverse(androidx.compose.ui.graphics.Path, optional androidx.compose.ui.graphics.Path destination); + } + + public final class PathHitTester { + ctor public PathHitTester(); + method public operator boolean contains(long position); + method public void updatePath(androidx.compose.ui.graphics.Path path, optional @FloatRange(from=0.0) float tolerance); + } + + public final class PathHitTesterKt { + method public static androidx.compose.ui.graphics.PathHitTester PathHitTester(androidx.compose.ui.graphics.Path path, optional @FloatRange(from=0.0) float tolerance); + } + + public interface PathIterator extends java.util.Iterator kotlin.jvm.internal.markers.KMappedMarker { + method public int calculateSize(optional boolean includeConvertedConics); + method public androidx.compose.ui.graphics.PathIterator.ConicEvaluation getConicEvaluation(); + method public androidx.compose.ui.graphics.Path getPath(); + method public float getTolerance(); + method public androidx.compose.ui.graphics.PathSegment next(); + method public androidx.compose.ui.graphics.PathSegment.Type next(float[] outPoints, optional int offset); + property public abstract androidx.compose.ui.graphics.PathIterator.ConicEvaluation conicEvaluation; + property public abstract androidx.compose.ui.graphics.Path path; + property public abstract float tolerance; + } + + public enum PathIterator.ConicEvaluation { + enum_constant public static final androidx.compose.ui.graphics.PathIterator.ConicEvaluation AsConic; + enum_constant public static final androidx.compose.ui.graphics.PathIterator.ConicEvaluation AsQuadratics; + } + + public final class PathKt { + method public static androidx.compose.ui.graphics.Path copy(androidx.compose.ui.graphics.Path); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface PathMeasure { + method public float getLength(); + method public long getPosition(float distance); + method public boolean getSegment(float startDistance, float stopDistance, androidx.compose.ui.graphics.Path destination, optional boolean startWithMoveTo); + method public long getTangent(float distance); + method public void setPath(androidx.compose.ui.graphics.Path? path, boolean forceClosed); + property public abstract float length; + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class PathOperation { + field public static final androidx.compose.ui.graphics.PathOperation.Companion Companion; + } + + public static final class PathOperation.Companion { + method public int getDifference(); + method public int getIntersect(); + method public int getReverseDifference(); + method public int getUnion(); + method public int getXor(); + property public final int Difference; + property public final int Intersect; + property public final int ReverseDifference; + property public final int Union; + property public final int Xor; + } + + public final class PathOperationKt { + method @Deprecated public static int getDifference(androidx.compose.ui.graphics.PathOperation.Companion); + method @Deprecated public static int getIntersect(androidx.compose.ui.graphics.PathOperation.Companion); + method @Deprecated public static int getReverseDifference(androidx.compose.ui.graphics.PathOperation.Companion); + method @Deprecated public static int getUnion(androidx.compose.ui.graphics.PathOperation.Companion); + method @Deprecated public static int getXor(androidx.compose.ui.graphics.PathOperation.Companion); + } + + public final class PathSegment { + method public float[] getPoints(); + method public androidx.compose.ui.graphics.PathSegment.Type getType(); + method public float getWeight(); + property public final float[] points; + property public final androidx.compose.ui.graphics.PathSegment.Type type; + property public final float weight; + } + + public enum PathSegment.Type { + enum_constant public static final androidx.compose.ui.graphics.PathSegment.Type Close; + enum_constant public static final androidx.compose.ui.graphics.PathSegment.Type Conic; + enum_constant public static final androidx.compose.ui.graphics.PathSegment.Type Cubic; + enum_constant public static final androidx.compose.ui.graphics.PathSegment.Type Done; + enum_constant public static final androidx.compose.ui.graphics.PathSegment.Type Line; + enum_constant public static final androidx.compose.ui.graphics.PathSegment.Type Move; + enum_constant public static final androidx.compose.ui.graphics.PathSegment.Type Quadratic; + } + + public final class PathSegmentKt { + method public static androidx.compose.ui.graphics.PathSegment getCloseSegment(); + method public static androidx.compose.ui.graphics.PathSegment getDoneSegment(); + property public static final androidx.compose.ui.graphics.PathSegment CloseSegment; + property public static final androidx.compose.ui.graphics.PathSegment DoneSegment; + } + + public final class PathSvgKt { + method public static void addSvg(androidx.compose.ui.graphics.Path, String pathData); + method public static String toSvg(androidx.compose.ui.graphics.Path, optional boolean asDocument); + } + + public final class PixelMap { + ctor public PixelMap(int[] buffer, int width, int height, int bufferOffset, int stride); + method public operator long get(@IntRange(from=0L) int x, @IntRange(from=0L) int y); + method public int[] getBuffer(); + method public int getBufferOffset(); + method public int getHeight(); + method public int getStride(); + method public int getWidth(); + property public final int[] buffer; + property public final int bufferOffset; + property public final int height; + property public final int stride; + property public final int width; + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class PointMode { + field public static final androidx.compose.ui.graphics.PointMode.Companion Companion; + } + + public static final class PointMode.Companion { + method public int getLines(); + method public int getPoints(); + method public int getPolygon(); + property public final int Lines; + property public final int Points; + property public final int Polygon; + } + + @androidx.compose.runtime.Immutable public final class RadialGradient extends androidx.compose.ui.graphics.ShaderBrush { + method public android.graphics.Shader createShader(long size); + property public long intrinsicSize; + } + + public final class RectHelper_androidKt { + method @Deprecated public static android.graphics.Rect toAndroidRect(androidx.compose.ui.geometry.Rect); + method public static android.graphics.Rect toAndroidRect(androidx.compose.ui.unit.IntRect); + method public static android.graphics.RectF toAndroidRectF(androidx.compose.ui.geometry.Rect); + method public static androidx.compose.ui.unit.IntRect toComposeIntRect(android.graphics.Rect); + method public static androidx.compose.ui.geometry.Rect toComposeRect(android.graphics.Rect); + method public static androidx.compose.ui.geometry.Rect toComposeRect(android.graphics.RectF); + } + + public final class RectangleShapeKt { + method public static androidx.compose.ui.graphics.Shape getRectangleShape(); + property public static final androidx.compose.ui.graphics.Shape RectangleShape; + } + + @androidx.compose.runtime.Immutable public abstract sealed class RenderEffect { + method @RequiresApi(android.os.Build.VERSION_CODES.S) public final android.graphics.RenderEffect asAndroidRenderEffect(); + method @RequiresApi(android.os.Build.VERSION_CODES.S) protected abstract android.graphics.RenderEffect createRenderEffect(); + method public boolean isSupported(); + } + + public final class RenderEffectKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.graphics.BlurEffect BlurEffect(float radiusX, float radiusY, optional int edgeTreatment); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.graphics.OffsetEffect OffsetEffect(float offsetX, float offsetY); + } + + @androidx.compose.runtime.Immutable public abstract class ShaderBrush extends androidx.compose.ui.graphics.Brush { + ctor public ShaderBrush(); + method public final void applyTo(long size, androidx.compose.ui.graphics.Paint p, float alpha); + method public abstract android.graphics.Shader createShader(long size); + } + + public final class ShaderKt { + method public static android.graphics.Shader ImageShader(androidx.compose.ui.graphics.ImageBitmap image, optional int tileModeX, optional int tileModeY); + method public static android.graphics.Shader LinearGradientShader(long from, long to, java.util.List colors, optional java.util.List? colorStops, optional int tileMode); + method public static android.graphics.Shader RadialGradientShader(long center, float radius, java.util.List colors, optional java.util.List? colorStops, optional int tileMode); + method public static android.graphics.Shader SweepGradientShader(long center, java.util.List colors, optional java.util.List? colorStops); + } + + @androidx.compose.runtime.Immutable public final class Shadow { + ctor public Shadow(optional @androidx.compose.runtime.Stable long color, optional @androidx.compose.runtime.Stable long offset, optional @androidx.compose.runtime.Stable float blurRadius); + method public androidx.compose.ui.graphics.Shadow copy(optional long color, optional long offset, optional float blurRadius); + method public float getBlurRadius(); + method public long getColor(); + method public long getOffset(); + property public final float blurRadius; + property public final long color; + property public final long offset; + field public static final androidx.compose.ui.graphics.Shadow.Companion Companion; + } + + public static final class Shadow.Companion { + method public androidx.compose.ui.graphics.Shadow getNone(); + property public final androidx.compose.ui.graphics.Shadow None; + } + + public final class ShadowKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.graphics.Shadow lerp(androidx.compose.ui.graphics.Shadow start, androidx.compose.ui.graphics.Shadow stop, float fraction); + } + + @androidx.compose.runtime.Stable public interface Shape { + method public androidx.compose.ui.graphics.Outline createOutline(long size, androidx.compose.ui.unit.LayoutDirection layoutDirection, androidx.compose.ui.unit.Density density); + } + + @androidx.compose.runtime.Immutable public final class SolidColor extends androidx.compose.ui.graphics.Brush { + ctor public SolidColor(long value); + method public void applyTo(long size, androidx.compose.ui.graphics.Paint p, float alpha); + method public long getValue(); + property public final long value; + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class StampedPathEffectStyle { + field public static final androidx.compose.ui.graphics.StampedPathEffectStyle.Companion Companion; + } + + public static final class StampedPathEffectStyle.Companion { + method public int getMorph(); + method public int getRotate(); + method public int getTranslate(); + property public final int Morph; + property public final int Rotate; + property public final int Translate; + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class StrokeCap { + field public static final androidx.compose.ui.graphics.StrokeCap.Companion Companion; + } + + public static final class StrokeCap.Companion { + method public int getButt(); + method public int getRound(); + method public int getSquare(); + property public final int Butt; + property public final int Round; + property public final int Square; + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class StrokeJoin { + field public static final androidx.compose.ui.graphics.StrokeJoin.Companion Companion; + } + + public static final class StrokeJoin.Companion { + method public int getBevel(); + method public int getMiter(); + method public int getRound(); + property public final int Bevel; + property public final int Miter; + property public final int Round; + } + + @androidx.compose.runtime.Immutable public final class SweepGradient extends androidx.compose.ui.graphics.ShaderBrush { + method public android.graphics.Shader createShader(long size); + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class TileMode { + field public static final androidx.compose.ui.graphics.TileMode.Companion Companion; + } + + public static final class TileMode.Companion { + method public int getClamp(); + method public int getDecal(); + method public int getMirror(); + method public int getRepeated(); + property public final int Clamp; + property public final int Decal; + property public final int Mirror; + property public final int Repeated; + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class VertexMode { + field public static final androidx.compose.ui.graphics.VertexMode.Companion Companion; + } + + public static final class VertexMode.Companion { + method public int getTriangleFan(); + method public int getTriangleStrip(); + method public int getTriangles(); + property public final int TriangleFan; + property public final int TriangleStrip; + property public final int Triangles; + } + + public final class Vertices { + ctor public Vertices(int vertexMode, java.util.List positions, java.util.List textureCoordinates, java.util.List colors, java.util.List indices); + method public int[] getColors(); + method public short[] getIndices(); + method public float[] getPositions(); + method public float[] getTextureCoordinates(); + method public int getVertexMode(); + property public final int[] colors; + property public final short[] indices; + property public final float[] positions; + property public final float[] textureCoordinates; + property public final int vertexMode; + } + +} + +package androidx.compose.ui.graphics.colorspace { + + public abstract class Adaptation { + field public static final androidx.compose.ui.graphics.colorspace.Adaptation.Companion Companion; + } + + public static final class Adaptation.Companion { + method public androidx.compose.ui.graphics.colorspace.Adaptation getBradford(); + method public androidx.compose.ui.graphics.colorspace.Adaptation getCiecat02(); + method public androidx.compose.ui.graphics.colorspace.Adaptation getVonKries(); + property public final androidx.compose.ui.graphics.colorspace.Adaptation Bradford; + property public final androidx.compose.ui.graphics.colorspace.Adaptation Ciecat02; + property public final androidx.compose.ui.graphics.colorspace.Adaptation VonKries; + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class ColorModel { + method @IntRange(from=1L, to=4L) public int getComponentCount(); + property @IntRange(from=1L, to=4L) @androidx.compose.runtime.Stable public final int componentCount; + field public static final androidx.compose.ui.graphics.colorspace.ColorModel.Companion Companion; + } + + public static final class ColorModel.Companion { + method public long getCmyk(); + method public long getLab(); + method public long getRgb(); + method public long getXyz(); + property public final long Cmyk; + property public final long Lab; + property public final long Rgb; + property public final long Xyz; + } + + public abstract class ColorSpace { + ctor public ColorSpace(String name, long model); + method @Size(min=3L) public final float[] fromXyz(float x, float y, float z); + method @Size(min=3L) public abstract float[] fromXyz(@Size(min=3L) float[] v); + method @IntRange(from=1L, to=4L) public final int getComponentCount(); + method public abstract float getMaxValue(@IntRange(from=0L, to=3L) int component); + method public abstract float getMinValue(@IntRange(from=0L, to=3L) int component); + method public final long getModel(); + method public final String getName(); + method public boolean isSrgb(); + method public abstract boolean isWideGamut(); + method @Size(3L) public final float[] toXyz(float r, float g, float b); + method @Size(min=3L) public abstract float[] toXyz(@Size(min=3L) float[] v); + property @IntRange(from=1L, to=4L) public final int componentCount; + property public boolean isSrgb; + property public abstract boolean isWideGamut; + property public final long model; + property public final String name; + } + + public final class ColorSpaceKt { + method public static androidx.compose.ui.graphics.colorspace.ColorSpace adapt(androidx.compose.ui.graphics.colorspace.ColorSpace, androidx.compose.ui.graphics.colorspace.WhitePoint whitePoint); + method public static androidx.compose.ui.graphics.colorspace.ColorSpace adapt(androidx.compose.ui.graphics.colorspace.ColorSpace, androidx.compose.ui.graphics.colorspace.WhitePoint whitePoint, optional androidx.compose.ui.graphics.colorspace.Adaptation adaptation); + method public static androidx.compose.ui.graphics.colorspace.Connector connect(androidx.compose.ui.graphics.colorspace.ColorSpace, optional androidx.compose.ui.graphics.colorspace.ColorSpace destination, optional int intent); + } + + public final class ColorSpaces { + method public androidx.compose.ui.graphics.colorspace.Rgb getAces(); + method public androidx.compose.ui.graphics.colorspace.Rgb getAcescg(); + method public androidx.compose.ui.graphics.colorspace.Rgb getAdobeRgb(); + method public androidx.compose.ui.graphics.colorspace.Rgb getBt2020(); + method public androidx.compose.ui.graphics.colorspace.Rgb getBt709(); + method public androidx.compose.ui.graphics.colorspace.ColorSpace getCieLab(); + method public androidx.compose.ui.graphics.colorspace.ColorSpace getCieXyz(); + method public androidx.compose.ui.graphics.colorspace.Rgb getDciP3(); + method public androidx.compose.ui.graphics.colorspace.Rgb getDisplayP3(); + method public androidx.compose.ui.graphics.colorspace.Rgb getExtendedSrgb(); + method public androidx.compose.ui.graphics.colorspace.Rgb getLinearExtendedSrgb(); + method public androidx.compose.ui.graphics.colorspace.Rgb getLinearSrgb(); + method public androidx.compose.ui.graphics.colorspace.Rgb getNtsc1953(); + method public androidx.compose.ui.graphics.colorspace.ColorSpace getOklab(); + method public androidx.compose.ui.graphics.colorspace.Rgb getProPhotoRgb(); + method public androidx.compose.ui.graphics.colorspace.Rgb getSmpteC(); + method public androidx.compose.ui.graphics.colorspace.Rgb getSrgb(); + method public androidx.compose.ui.graphics.colorspace.ColorSpace? match(@Size(9L) float[] toXYZD50, androidx.compose.ui.graphics.colorspace.TransferParameters function); + property public final androidx.compose.ui.graphics.colorspace.Rgb Aces; + property public final androidx.compose.ui.graphics.colorspace.Rgb Acescg; + property public final androidx.compose.ui.graphics.colorspace.Rgb AdobeRgb; + property public final androidx.compose.ui.graphics.colorspace.Rgb Bt2020; + property public final androidx.compose.ui.graphics.colorspace.Rgb Bt709; + property public final androidx.compose.ui.graphics.colorspace.ColorSpace CieLab; + property public final androidx.compose.ui.graphics.colorspace.ColorSpace CieXyz; + property public final androidx.compose.ui.graphics.colorspace.Rgb DciP3; + property public final androidx.compose.ui.graphics.colorspace.Rgb DisplayP3; + property public final androidx.compose.ui.graphics.colorspace.Rgb ExtendedSrgb; + property public final androidx.compose.ui.graphics.colorspace.Rgb LinearExtendedSrgb; + property public final androidx.compose.ui.graphics.colorspace.Rgb LinearSrgb; + property public final androidx.compose.ui.graphics.colorspace.Rgb Ntsc1953; + property public final androidx.compose.ui.graphics.colorspace.ColorSpace Oklab; + property public final androidx.compose.ui.graphics.colorspace.Rgb ProPhotoRgb; + property public final androidx.compose.ui.graphics.colorspace.Rgb SmpteC; + property public final androidx.compose.ui.graphics.colorspace.Rgb Srgb; + field public static final androidx.compose.ui.graphics.colorspace.ColorSpaces INSTANCE; + } + + public class Connector { + method public final androidx.compose.ui.graphics.colorspace.ColorSpace getDestination(); + method public final int getRenderIntent(); + method public final androidx.compose.ui.graphics.colorspace.ColorSpace getSource(); + method @Size(3L) public final float[] transform(float r, float g, float b); + method @Size(min=3L) public float[] transform(@Size(min=3L) float[] v); + property public final androidx.compose.ui.graphics.colorspace.ColorSpace destination; + property public final int renderIntent; + property public final androidx.compose.ui.graphics.colorspace.ColorSpace source; + } + + public final class Illuminant { + method public androidx.compose.ui.graphics.colorspace.WhitePoint getA(); + method public androidx.compose.ui.graphics.colorspace.WhitePoint getB(); + method public androidx.compose.ui.graphics.colorspace.WhitePoint getC(); + method public androidx.compose.ui.graphics.colorspace.WhitePoint getD50(); + method public androidx.compose.ui.graphics.colorspace.WhitePoint getD55(); + method public androidx.compose.ui.graphics.colorspace.WhitePoint getD60(); + method public androidx.compose.ui.graphics.colorspace.WhitePoint getD65(); + method public androidx.compose.ui.graphics.colorspace.WhitePoint getD75(); + method public androidx.compose.ui.graphics.colorspace.WhitePoint getE(); + property public final androidx.compose.ui.graphics.colorspace.WhitePoint A; + property public final androidx.compose.ui.graphics.colorspace.WhitePoint B; + property public final androidx.compose.ui.graphics.colorspace.WhitePoint C; + property public final androidx.compose.ui.graphics.colorspace.WhitePoint D50; + property public final androidx.compose.ui.graphics.colorspace.WhitePoint D55; + property public final androidx.compose.ui.graphics.colorspace.WhitePoint D60; + property public final androidx.compose.ui.graphics.colorspace.WhitePoint D65; + property public final androidx.compose.ui.graphics.colorspace.WhitePoint D75; + property public final androidx.compose.ui.graphics.colorspace.WhitePoint E; + field public static final androidx.compose.ui.graphics.colorspace.Illuminant INSTANCE; + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class RenderIntent { + field public static final androidx.compose.ui.graphics.colorspace.RenderIntent.Companion Companion; + } + + public static final class RenderIntent.Companion { + method public int getAbsolute(); + method public int getPerceptual(); + method public int getRelative(); + method public int getSaturation(); + property public final int Absolute; + property public final int Perceptual; + property public final int Relative; + property public final int Saturation; + } + + public final class Rgb extends androidx.compose.ui.graphics.colorspace.ColorSpace { + ctor public Rgb(@Size(min=1L) String name, @Size(9L) float[] toXYZ, androidx.compose.ui.graphics.colorspace.TransferParameters function); + ctor public Rgb(@Size(min=1L) String name, @Size(min=6L, max=9L) float[] primaries, androidx.compose.ui.graphics.colorspace.WhitePoint whitePoint, androidx.compose.ui.graphics.colorspace.TransferParameters function); + ctor public Rgb(@Size(min=1L) String name, @Size(min=6L, max=9L) float[] primaries, androidx.compose.ui.graphics.colorspace.WhitePoint whitePoint, double gamma); + ctor public Rgb(@Size(min=1L) String name, @Size(min=6L, max=9L) float[] primaries, androidx.compose.ui.graphics.colorspace.WhitePoint whitePoint, kotlin.jvm.functions.Function1 oetf, kotlin.jvm.functions.Function1 eotf, float min, float max); + ctor public Rgb(@Size(min=1L) String name, @Size(9L) float[] toXYZ, double gamma); + ctor public Rgb(@Size(min=1L) String name, @Size(9L) float[] toXYZ, kotlin.jvm.functions.Function1 oetf, kotlin.jvm.functions.Function1 eotf); + method @Size(3L) public float[] fromLinear(float r, float g, float b); + method @Size(min=3L) public float[] fromLinear(@Size(min=3L) float[] v); + method public float[] fromXyz(float[] v); + method public kotlin.jvm.functions.Function1 getEotf(); + method @Size(9L) public float[] getInverseTransform(); + method @Size(min=9L) public float[] getInverseTransform(@Size(min=9L) float[] inverseTransform); + method public float getMaxValue(int component); + method public float getMinValue(int component); + method public kotlin.jvm.functions.Function1 getOetf(); + method @Size(6L) public float[] getPrimaries(); + method @Size(min=6L) public float[] getPrimaries(@Size(min=6L) float[] primaries); + method public androidx.compose.ui.graphics.colorspace.TransferParameters? getTransferParameters(); + method @Size(9L) public float[] getTransform(); + method @Size(min=9L) public float[] getTransform(@Size(min=9L) float[] transform); + method public androidx.compose.ui.graphics.colorspace.WhitePoint getWhitePoint(); + method public boolean isWideGamut(); + method @Size(3L) public float[] toLinear(float r, float g, float b); + method @Size(min=3L) public float[] toLinear(@Size(min=3L) float[] v); + method public float[] toXyz(float[] v); + property public final kotlin.jvm.functions.Function1 eotf; + property public boolean isSrgb; + property public boolean isWideGamut; + property public final kotlin.jvm.functions.Function1 oetf; + property public final androidx.compose.ui.graphics.colorspace.TransferParameters? transferParameters; + property public final androidx.compose.ui.graphics.colorspace.WhitePoint whitePoint; + } + + public final class TransferParameters { + ctor public TransferParameters(double gamma, double a, double b, double c, double d, optional double e, optional double f); + method public double component1(); + method public double component2(); + method public double component3(); + method public double component4(); + method public double component5(); + method public double component6(); + method public double component7(); + method public androidx.compose.ui.graphics.colorspace.TransferParameters copy(double gamma, double a, double b, double c, double d, double e, double f); + method public double getA(); + method public double getB(); + method public double getC(); + method public double getD(); + method public double getE(); + method public double getF(); + method public double getGamma(); + property public final double a; + property public final double b; + property public final double c; + property public final double d; + property public final double e; + property public final double f; + property public final double gamma; + } + + public final class WhitePoint { + ctor public WhitePoint(float x, float y); + ctor public WhitePoint(float x, float y, float z); + method public float component1(); + method public float component2(); + method public androidx.compose.ui.graphics.colorspace.WhitePoint copy(float x, float y); + method public float getX(); + method public float getY(); + property public final float x; + property public final float y; + } + +} + +package androidx.compose.ui.graphics.drawscope { + + public final class CanvasDrawScope implements androidx.compose.ui.graphics.drawscope.DrawScope { + ctor public CanvasDrawScope(); + method public inline void draw(androidx.compose.ui.unit.Density density, androidx.compose.ui.unit.LayoutDirection layoutDirection, androidx.compose.ui.graphics.Canvas canvas, long size, kotlin.jvm.functions.Function1 block); + method public void drawArc(androidx.compose.ui.graphics.Brush brush, float startAngle, float sweepAngle, boolean useCenter, long topLeft, long size, @FloatRange(from=0.0, to=1.0) float alpha, androidx.compose.ui.graphics.drawscope.DrawStyle style, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode); + method public void drawArc(long color, float startAngle, float sweepAngle, boolean useCenter, long topLeft, long size, @FloatRange(from=0.0, to=1.0) float alpha, androidx.compose.ui.graphics.drawscope.DrawStyle style, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode); + method public void drawCircle(androidx.compose.ui.graphics.Brush brush, float radius, long center, @FloatRange(from=0.0, to=1.0) float alpha, androidx.compose.ui.graphics.drawscope.DrawStyle style, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode); + method public void drawCircle(long color, float radius, long center, @FloatRange(from=0.0, to=1.0) float alpha, androidx.compose.ui.graphics.drawscope.DrawStyle style, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode); + method public void drawImage(androidx.compose.ui.graphics.ImageBitmap image, long topLeft, @FloatRange(from=0.0, to=1.0) float alpha, androidx.compose.ui.graphics.drawscope.DrawStyle style, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode); + method @Deprecated public void drawImage(androidx.compose.ui.graphics.ImageBitmap image, long srcOffset, long srcSize, long dstOffset, long dstSize, @FloatRange(from=0.0, to=1.0) float alpha, androidx.compose.ui.graphics.drawscope.DrawStyle style, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode); + method public void drawLine(androidx.compose.ui.graphics.Brush brush, long start, long end, float strokeWidth, int cap, androidx.compose.ui.graphics.PathEffect? pathEffect, @FloatRange(from=0.0, to=1.0) float alpha, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode); + method public void drawLine(long color, long start, long end, float strokeWidth, int cap, androidx.compose.ui.graphics.PathEffect? pathEffect, @FloatRange(from=0.0, to=1.0) float alpha, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode); + method public void drawOval(androidx.compose.ui.graphics.Brush brush, long topLeft, long size, @FloatRange(from=0.0, to=1.0) float alpha, androidx.compose.ui.graphics.drawscope.DrawStyle style, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode); + method public void drawOval(long color, long topLeft, long size, @FloatRange(from=0.0, to=1.0) float alpha, androidx.compose.ui.graphics.drawscope.DrawStyle style, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode); + method public void drawPath(androidx.compose.ui.graphics.Path path, androidx.compose.ui.graphics.Brush brush, @FloatRange(from=0.0, to=1.0) float alpha, androidx.compose.ui.graphics.drawscope.DrawStyle style, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode); + method public void drawPath(androidx.compose.ui.graphics.Path path, long color, @FloatRange(from=0.0, to=1.0) float alpha, androidx.compose.ui.graphics.drawscope.DrawStyle style, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode); + method public void drawPoints(java.util.List points, int pointMode, androidx.compose.ui.graphics.Brush brush, float strokeWidth, int cap, androidx.compose.ui.graphics.PathEffect? pathEffect, @FloatRange(from=0.0, to=1.0) float alpha, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode); + method public void drawPoints(java.util.List points, int pointMode, long color, float strokeWidth, int cap, androidx.compose.ui.graphics.PathEffect? pathEffect, @FloatRange(from=0.0, to=1.0) float alpha, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode); + method public void drawRect(androidx.compose.ui.graphics.Brush brush, long topLeft, long size, @FloatRange(from=0.0, to=1.0) float alpha, androidx.compose.ui.graphics.drawscope.DrawStyle style, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode); + method public void drawRect(long color, long topLeft, long size, @FloatRange(from=0.0, to=1.0) float alpha, androidx.compose.ui.graphics.drawscope.DrawStyle style, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode); + method public void drawRoundRect(androidx.compose.ui.graphics.Brush brush, long topLeft, long size, long cornerRadius, @FloatRange(from=0.0, to=1.0) float alpha, androidx.compose.ui.graphics.drawscope.DrawStyle style, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode); + method public void drawRoundRect(long color, long topLeft, long size, long cornerRadius, androidx.compose.ui.graphics.drawscope.DrawStyle style, @FloatRange(from=0.0, to=1.0) float alpha, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode); + method public float getDensity(); + method public androidx.compose.ui.graphics.drawscope.DrawContext getDrawContext(); + method public float getFontScale(); + method public androidx.compose.ui.unit.LayoutDirection getLayoutDirection(); + property public float density; + property public androidx.compose.ui.graphics.drawscope.DrawContext drawContext; + property public float fontScale; + property public androidx.compose.ui.unit.LayoutDirection layoutDirection; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface ContentDrawScope extends androidx.compose.ui.graphics.drawscope.DrawScope { + method public void drawContent(); + } + + public interface DrawContext { + method public default androidx.compose.ui.graphics.Canvas getCanvas(); + method public default androidx.compose.ui.unit.Density getDensity(); + method public default androidx.compose.ui.graphics.layer.GraphicsLayer? getGraphicsLayer(); + method public default androidx.compose.ui.unit.LayoutDirection getLayoutDirection(); + method public long getSize(); + method public androidx.compose.ui.graphics.drawscope.DrawTransform getTransform(); + method public default void setCanvas(androidx.compose.ui.graphics.Canvas); + method public default void setDensity(androidx.compose.ui.unit.Density); + method public default void setGraphicsLayer(androidx.compose.ui.graphics.layer.GraphicsLayer?); + method public default void setLayoutDirection(androidx.compose.ui.unit.LayoutDirection); + method public void setSize(long); + property public default androidx.compose.ui.graphics.Canvas canvas; + property public default androidx.compose.ui.unit.Density density; + property public default androidx.compose.ui.graphics.layer.GraphicsLayer? graphicsLayer; + property public default androidx.compose.ui.unit.LayoutDirection layoutDirection; + property public abstract long size; + property public abstract androidx.compose.ui.graphics.drawscope.DrawTransform transform; + } + + @androidx.compose.ui.graphics.drawscope.DrawScopeMarker @kotlin.jvm.JvmDefaultWithCompatibility public interface DrawScope extends androidx.compose.ui.unit.Density { + method public void drawArc(androidx.compose.ui.graphics.Brush brush, float startAngle, float sweepAngle, boolean useCenter, optional long topLeft, optional long size, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + method public void drawArc(long color, float startAngle, float sweepAngle, boolean useCenter, optional long topLeft, optional long size, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + method public void drawCircle(androidx.compose.ui.graphics.Brush brush, optional float radius, optional long center, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + method public void drawCircle(long color, optional float radius, optional long center, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + method public void drawImage(androidx.compose.ui.graphics.ImageBitmap image, optional long topLeft, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + method @Deprecated public void drawImage(androidx.compose.ui.graphics.ImageBitmap image, optional long srcOffset, optional long srcSize, optional long dstOffset, optional long dstSize, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + method public default void drawImage(androidx.compose.ui.graphics.ImageBitmap image, optional long srcOffset, optional long srcSize, optional long dstOffset, optional long dstSize, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode, optional int filterQuality); + method public void drawLine(androidx.compose.ui.graphics.Brush brush, long start, long end, optional float strokeWidth, optional int cap, optional androidx.compose.ui.graphics.PathEffect? pathEffect, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + method public void drawLine(long color, long start, long end, optional float strokeWidth, optional int cap, optional androidx.compose.ui.graphics.PathEffect? pathEffect, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + method public void drawOval(androidx.compose.ui.graphics.Brush brush, optional long topLeft, optional long size, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + method public void drawOval(long color, optional long topLeft, optional long size, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + method public void drawPath(androidx.compose.ui.graphics.Path path, androidx.compose.ui.graphics.Brush brush, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + method public void drawPath(androidx.compose.ui.graphics.Path path, long color, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + method public void drawPoints(java.util.List points, int pointMode, androidx.compose.ui.graphics.Brush brush, optional float strokeWidth, optional int cap, optional androidx.compose.ui.graphics.PathEffect? pathEffect, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + method public void drawPoints(java.util.List points, int pointMode, long color, optional float strokeWidth, optional int cap, optional androidx.compose.ui.graphics.PathEffect? pathEffect, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + method public void drawRect(androidx.compose.ui.graphics.Brush brush, optional long topLeft, optional long size, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + method public void drawRect(long color, optional long topLeft, optional long size, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + method public void drawRoundRect(androidx.compose.ui.graphics.Brush brush, optional long topLeft, optional long size, optional long cornerRadius, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + method public void drawRoundRect(long color, optional long topLeft, optional long size, optional long cornerRadius, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + method public default long getCenter(); + method public androidx.compose.ui.graphics.drawscope.DrawContext getDrawContext(); + method public androidx.compose.ui.unit.LayoutDirection getLayoutDirection(); + method public default long getSize(); + method public default void record(androidx.compose.ui.graphics.layer.GraphicsLayer, optional long size, kotlin.jvm.functions.Function1 block); + property public default long center; + property public abstract androidx.compose.ui.graphics.drawscope.DrawContext drawContext; + property public abstract androidx.compose.ui.unit.LayoutDirection layoutDirection; + property public default long size; + field public static final androidx.compose.ui.graphics.drawscope.DrawScope.Companion Companion; + } + + public static final class DrawScope.Companion { + method public int getDefaultBlendMode(); + method public int getDefaultFilterQuality(); + property public final int DefaultBlendMode; + property public final int DefaultFilterQuality; + } + + public final class DrawScopeKt { + method public static inline void clipPath(androidx.compose.ui.graphics.drawscope.DrawScope, androidx.compose.ui.graphics.Path path, optional int clipOp, kotlin.jvm.functions.Function1 block); + method public static inline void clipRect(androidx.compose.ui.graphics.drawscope.DrawScope, optional float left, optional float top, optional float right, optional float bottom, optional int clipOp, kotlin.jvm.functions.Function1 block); + method public static inline void draw(androidx.compose.ui.graphics.drawscope.DrawScope, androidx.compose.ui.unit.Density density, androidx.compose.ui.unit.LayoutDirection layoutDirection, androidx.compose.ui.graphics.Canvas canvas, long size, optional androidx.compose.ui.graphics.layer.GraphicsLayer? graphicsLayer, kotlin.jvm.functions.Function1 block); + method @Deprecated public static inline void draw(androidx.compose.ui.graphics.drawscope.DrawScope, androidx.compose.ui.unit.Density density, androidx.compose.ui.unit.LayoutDirection layoutDirection, androidx.compose.ui.graphics.Canvas canvas, long size, kotlin.jvm.functions.Function1 block); + method public static inline void drawIntoCanvas(androidx.compose.ui.graphics.drawscope.DrawScope, kotlin.jvm.functions.Function1 block); + method public static inline void inset(androidx.compose.ui.graphics.drawscope.DrawScope, float left, float top, float right, float bottom, kotlin.jvm.functions.Function1 block); + method public static inline void inset(androidx.compose.ui.graphics.drawscope.DrawScope, optional float horizontal, optional float vertical, kotlin.jvm.functions.Function1 block); + method public static inline void inset(androidx.compose.ui.graphics.drawscope.DrawScope, float inset, kotlin.jvm.functions.Function1 block); + method public static inline void rotate(androidx.compose.ui.graphics.drawscope.DrawScope, float degrees, optional long pivot, kotlin.jvm.functions.Function1 block); + method public static inline void rotateRad(androidx.compose.ui.graphics.drawscope.DrawScope, float radians, optional long pivot, kotlin.jvm.functions.Function1 block); + method public static inline void scale(androidx.compose.ui.graphics.drawscope.DrawScope, float scaleX, float scaleY, optional long pivot, kotlin.jvm.functions.Function1 block); + method public static inline void scale(androidx.compose.ui.graphics.drawscope.DrawScope, float scale, optional long pivot, kotlin.jvm.functions.Function1 block); + method public static inline void translate(androidx.compose.ui.graphics.drawscope.DrawScope, optional float left, optional float top, kotlin.jvm.functions.Function1 block); + method public static inline void withTransform(androidx.compose.ui.graphics.drawscope.DrawScope, kotlin.jvm.functions.Function1 transformBlock, kotlin.jvm.functions.Function1 drawBlock); + } + + @kotlin.DslMarker public @interface DrawScopeMarker { + } + + public abstract sealed class DrawStyle { + } + + @androidx.compose.ui.graphics.drawscope.DrawScopeMarker @kotlin.jvm.JvmDefaultWithCompatibility public interface DrawTransform { + method public void clipPath(androidx.compose.ui.graphics.Path path, optional int clipOp); + method public void clipRect(optional float left, optional float top, optional float right, optional float bottom, optional int clipOp); + method public default long getCenter(); + method public long getSize(); + method public void inset(float left, float top, float right, float bottom); + method public void rotate(float degrees, optional long pivot); + method public void scale(float scaleX, float scaleY, optional long pivot); + method public void transform(float[] matrix); + method public void translate(optional float left, optional float top); + property public default long center; + property public abstract long size; + } + + public final class DrawTransformKt { + method public static inline void inset(androidx.compose.ui.graphics.drawscope.DrawTransform, float inset); + method public static inline void inset(androidx.compose.ui.graphics.drawscope.DrawTransform, optional float horizontal, optional float vertical); + method public static inline void rotateRad(androidx.compose.ui.graphics.drawscope.DrawTransform, float radians, optional long pivot); + method public static inline void scale(androidx.compose.ui.graphics.drawscope.DrawTransform, float scale, optional long pivot); + } + + public final class Fill extends androidx.compose.ui.graphics.drawscope.DrawStyle { + field public static final androidx.compose.ui.graphics.drawscope.Fill INSTANCE; + } + + public final class Stroke extends androidx.compose.ui.graphics.drawscope.DrawStyle { + ctor public Stroke(optional float width, optional float miter, optional int cap, optional int join, optional androidx.compose.ui.graphics.PathEffect? pathEffect); + method public int getCap(); + method public int getJoin(); + method public float getMiter(); + method public androidx.compose.ui.graphics.PathEffect? getPathEffect(); + method public float getWidth(); + property public final int cap; + property public final int join; + property public final float miter; + property public final androidx.compose.ui.graphics.PathEffect? pathEffect; + property public final float width; + field public static final androidx.compose.ui.graphics.drawscope.Stroke.Companion Companion; + field public static final float DefaultMiter = 4.0f; + field public static final float HairlineWidth = 0.0f; + } + + public static final class Stroke.Companion { + method public int getDefaultCap(); + method public int getDefaultJoin(); + property public final int DefaultCap; + property public final int DefaultJoin; + } + +} + +package androidx.compose.ui.graphics.layer { + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class CompositingStrategy { + field public static final androidx.compose.ui.graphics.layer.CompositingStrategy.Companion Companion; + } + + public static final class CompositingStrategy.Companion { + method public int getAuto(); + method public int getModulateAlpha(); + method public int getOffscreen(); + property public final int Auto; + property public final int ModulateAlpha; + property public final int Offscreen; + } + + public final class GraphicsLayer { + method public float getAlpha(); + method public long getAmbientShadowColor(); + method public int getBlendMode(); + method public float getCameraDistance(); + method public boolean getClip(); + method public androidx.compose.ui.graphics.ColorFilter? getColorFilter(); + method public int getCompositingStrategy(); + method public long getLayerId(); + method public androidx.compose.ui.graphics.Outline getOutline(); + method public long getOwnerViewId(); + method public long getPivotOffset(); + method public androidx.compose.ui.graphics.RenderEffect? getRenderEffect(); + method public float getRotationX(); + method public float getRotationY(); + method public float getRotationZ(); + method public float getScaleX(); + method public float getScaleY(); + method public float getShadowElevation(); + method public long getSize(); + method public long getSpotShadowColor(); + method public long getTopLeft(); + method public float getTranslationX(); + method public float getTranslationY(); + method public boolean isReleased(); + method public void record(androidx.compose.ui.unit.Density density, androidx.compose.ui.unit.LayoutDirection layoutDirection, long size, kotlin.jvm.functions.Function1 block); + method public void setAlpha(float); + method public void setAmbientShadowColor(long); + method public void setBlendMode(int); + method public void setCameraDistance(float); + method public void setClip(boolean); + method public void setColorFilter(androidx.compose.ui.graphics.ColorFilter?); + method public void setCompositingStrategy(int); + method public void setPathOutline(androidx.compose.ui.graphics.Path path); + method public void setPivotOffset(long); + method public void setRectOutline(optional long topLeft, optional long size); + method public void setRenderEffect(androidx.compose.ui.graphics.RenderEffect?); + method public void setRotationX(float); + method public void setRotationY(float); + method public void setRotationZ(float); + method public void setRoundRectOutline(optional long topLeft, optional long size, optional float cornerRadius); + method public void setScaleX(float); + method public void setScaleY(float); + method public void setShadowElevation(float); + method public void setSpotShadowColor(long); + method public void setTopLeft(long); + method public void setTranslationX(float); + method public void setTranslationY(float); + method public suspend Object? toImageBitmap(kotlin.coroutines.Continuation); + property public final float alpha; + property public final long ambientShadowColor; + property public final int blendMode; + property public final float cameraDistance; + property public final boolean clip; + property public final androidx.compose.ui.graphics.ColorFilter? colorFilter; + property public final int compositingStrategy; + property public final boolean isReleased; + property public final long layerId; + property public final androidx.compose.ui.graphics.Outline outline; + property public final long ownerViewId; + property public final long pivotOffset; + property public final androidx.compose.ui.graphics.RenderEffect? renderEffect; + property public final float rotationX; + property public final float rotationY; + property public final float rotationZ; + property public final float scaleX; + property public final float scaleY; + property public final float shadowElevation; + property public final long size; + property public final long spotShadowColor; + property public final long topLeft; + property public final float translationX; + property public final float translationY; + field public static final androidx.compose.ui.graphics.layer.GraphicsLayer.Companion Companion; + } + + public static final class GraphicsLayer.Companion { + } + + public final class GraphicsLayerKt { + method public static void drawLayer(androidx.compose.ui.graphics.drawscope.DrawScope, androidx.compose.ui.graphics.layer.GraphicsLayer graphicsLayer); + method public static void setOutline(androidx.compose.ui.graphics.layer.GraphicsLayer, androidx.compose.ui.graphics.Outline outline); + field public static final float DefaultCameraDistance = 8.0f; + } + +} + +package androidx.compose.ui.graphics.painter { + + public final class BitmapPainter extends androidx.compose.ui.graphics.painter.Painter { + ctor public BitmapPainter(androidx.compose.ui.graphics.ImageBitmap image, optional long srcOffset, optional long srcSize); + method public long getIntrinsicSize(); + method protected void onDraw(androidx.compose.ui.graphics.drawscope.DrawScope); + property public long intrinsicSize; + } + + public final class BitmapPainterKt { + method public static androidx.compose.ui.graphics.painter.BitmapPainter BitmapPainter(androidx.compose.ui.graphics.ImageBitmap image, optional long srcOffset, optional long srcSize, optional int filterQuality); + } + + public final class BrushPainter extends androidx.compose.ui.graphics.painter.Painter { + ctor public BrushPainter(androidx.compose.ui.graphics.Brush brush); + method public androidx.compose.ui.graphics.Brush getBrush(); + method public long getIntrinsicSize(); + method protected void onDraw(androidx.compose.ui.graphics.drawscope.DrawScope); + property public final androidx.compose.ui.graphics.Brush brush; + property public long intrinsicSize; + } + + public final class ColorPainter extends androidx.compose.ui.graphics.painter.Painter { + ctor public ColorPainter(long color); + method public long getColor(); + method public long getIntrinsicSize(); + method protected void onDraw(androidx.compose.ui.graphics.drawscope.DrawScope); + property public final long color; + property public long intrinsicSize; + } + + public abstract class Painter { + ctor public Painter(); + method protected boolean applyAlpha(float alpha); + method protected boolean applyColorFilter(androidx.compose.ui.graphics.ColorFilter? colorFilter); + method protected boolean applyLayoutDirection(androidx.compose.ui.unit.LayoutDirection layoutDirection); + method public final void draw(androidx.compose.ui.graphics.drawscope.DrawScope, long size, optional float alpha, optional androidx.compose.ui.graphics.ColorFilter? colorFilter); + method public abstract long getIntrinsicSize(); + method protected abstract void onDraw(androidx.compose.ui.graphics.drawscope.DrawScope); + property public abstract long intrinsicSize; + } + +} + +package androidx.compose.ui.graphics.vector { + + public final class PathBuilder { + ctor public PathBuilder(); + method public androidx.compose.ui.graphics.vector.PathBuilder arcTo(float horizontalEllipseRadius, float verticalEllipseRadius, float theta, boolean isMoreThanHalf, boolean isPositiveArc, float x1, float y1); + method public androidx.compose.ui.graphics.vector.PathBuilder arcToRelative(float a, float b, float theta, boolean isMoreThanHalf, boolean isPositiveArc, float dx1, float dy1); + method public androidx.compose.ui.graphics.vector.PathBuilder close(); + method public androidx.compose.ui.graphics.vector.PathBuilder curveTo(float x1, float y1, float x2, float y2, float x3, float y3); + method public androidx.compose.ui.graphics.vector.PathBuilder curveToRelative(float dx1, float dy1, float dx2, float dy2, float dx3, float dy3); + method public java.util.List getNodes(); + method public androidx.compose.ui.graphics.vector.PathBuilder horizontalLineTo(float x); + method public androidx.compose.ui.graphics.vector.PathBuilder horizontalLineToRelative(float dx); + method public androidx.compose.ui.graphics.vector.PathBuilder lineTo(float x, float y); + method public androidx.compose.ui.graphics.vector.PathBuilder lineToRelative(float dx, float dy); + method public androidx.compose.ui.graphics.vector.PathBuilder moveTo(float x, float y); + method public androidx.compose.ui.graphics.vector.PathBuilder moveToRelative(float dx, float dy); + method public androidx.compose.ui.graphics.vector.PathBuilder quadTo(float x1, float y1, float x2, float y2); + method public androidx.compose.ui.graphics.vector.PathBuilder quadToRelative(float dx1, float dy1, float dx2, float dy2); + method public androidx.compose.ui.graphics.vector.PathBuilder reflectiveCurveTo(float x1, float y1, float x2, float y2); + method public androidx.compose.ui.graphics.vector.PathBuilder reflectiveCurveToRelative(float dx1, float dy1, float dx2, float dy2); + method public androidx.compose.ui.graphics.vector.PathBuilder reflectiveQuadTo(float x1, float y1); + method public androidx.compose.ui.graphics.vector.PathBuilder reflectiveQuadToRelative(float dx1, float dy1); + method public androidx.compose.ui.graphics.vector.PathBuilder verticalLineTo(float y); + method public androidx.compose.ui.graphics.vector.PathBuilder verticalLineToRelative(float dy); + property public final java.util.List nodes; + } + + @androidx.compose.runtime.Immutable public abstract sealed class PathNode { + method public final boolean isCurve(); + method public final boolean isQuad(); + property public final boolean isCurve; + property public final boolean isQuad; + } + + @androidx.compose.runtime.Immutable public static final class PathNode.ArcTo extends androidx.compose.ui.graphics.vector.PathNode { + ctor public PathNode.ArcTo(float horizontalEllipseRadius, float verticalEllipseRadius, float theta, boolean isMoreThanHalf, boolean isPositiveArc, float arcStartX, float arcStartY); + method public float component1(); + method public float component2(); + method public float component3(); + method public boolean component4(); + method public boolean component5(); + method public float component6(); + method public float component7(); + method public androidx.compose.ui.graphics.vector.PathNode.ArcTo copy(float horizontalEllipseRadius, float verticalEllipseRadius, float theta, boolean isMoreThanHalf, boolean isPositiveArc, float arcStartX, float arcStartY); + method public float getArcStartX(); + method public float getArcStartY(); + method public float getHorizontalEllipseRadius(); + method public float getTheta(); + method public float getVerticalEllipseRadius(); + method public boolean isMoreThanHalf(); + method public boolean isPositiveArc(); + property public final float arcStartX; + property public final float arcStartY; + property public final float horizontalEllipseRadius; + property public final boolean isMoreThanHalf; + property public final boolean isPositiveArc; + property public final float theta; + property public final float verticalEllipseRadius; + } + + @androidx.compose.runtime.Immutable public static final class PathNode.Close extends androidx.compose.ui.graphics.vector.PathNode { + field public static final androidx.compose.ui.graphics.vector.PathNode.Close INSTANCE; + } + + @androidx.compose.runtime.Immutable public static final class PathNode.CurveTo extends androidx.compose.ui.graphics.vector.PathNode { + ctor public PathNode.CurveTo(float x1, float y1, float x2, float y2, float x3, float y3); + method public float component1(); + method public float component2(); + method public float component3(); + method public float component4(); + method public float component5(); + method public float component6(); + method public androidx.compose.ui.graphics.vector.PathNode.CurveTo copy(float x1, float y1, float x2, float y2, float x3, float y3); + method public float getX1(); + method public float getX2(); + method public float getX3(); + method public float getY1(); + method public float getY2(); + method public float getY3(); + property public final float x1; + property public final float x2; + property public final float x3; + property public final float y1; + property public final float y2; + property public final float y3; + } + + @androidx.compose.runtime.Immutable public static final class PathNode.HorizontalTo extends androidx.compose.ui.graphics.vector.PathNode { + ctor public PathNode.HorizontalTo(float x); + method public float component1(); + method public androidx.compose.ui.graphics.vector.PathNode.HorizontalTo copy(float x); + method public float getX(); + property public final float x; + } + + @androidx.compose.runtime.Immutable public static final class PathNode.LineTo extends androidx.compose.ui.graphics.vector.PathNode { + ctor public PathNode.LineTo(float x, float y); + method public float component1(); + method public float component2(); + method public androidx.compose.ui.graphics.vector.PathNode.LineTo copy(float x, float y); + method public float getX(); + method public float getY(); + property public final float x; + property public final float y; + } + + @androidx.compose.runtime.Immutable public static final class PathNode.MoveTo extends androidx.compose.ui.graphics.vector.PathNode { + ctor public PathNode.MoveTo(float x, float y); + method public float component1(); + method public float component2(); + method public androidx.compose.ui.graphics.vector.PathNode.MoveTo copy(float x, float y); + method public float getX(); + method public float getY(); + property public final float x; + property public final float y; + } + + @androidx.compose.runtime.Immutable public static final class PathNode.QuadTo extends androidx.compose.ui.graphics.vector.PathNode { + ctor public PathNode.QuadTo(float x1, float y1, float x2, float y2); + method public float component1(); + method public float component2(); + method public float component3(); + method public float component4(); + method public androidx.compose.ui.graphics.vector.PathNode.QuadTo copy(float x1, float y1, float x2, float y2); + method public float getX1(); + method public float getX2(); + method public float getY1(); + method public float getY2(); + property public final float x1; + property public final float x2; + property public final float y1; + property public final float y2; + } + + @androidx.compose.runtime.Immutable public static final class PathNode.ReflectiveCurveTo extends androidx.compose.ui.graphics.vector.PathNode { + ctor public PathNode.ReflectiveCurveTo(float x1, float y1, float x2, float y2); + method public float component1(); + method public float component2(); + method public float component3(); + method public float component4(); + method public androidx.compose.ui.graphics.vector.PathNode.ReflectiveCurveTo copy(float x1, float y1, float x2, float y2); + method public float getX1(); + method public float getX2(); + method public float getY1(); + method public float getY2(); + property public final float x1; + property public final float x2; + property public final float y1; + property public final float y2; + } + + @androidx.compose.runtime.Immutable public static final class PathNode.ReflectiveQuadTo extends androidx.compose.ui.graphics.vector.PathNode { + ctor public PathNode.ReflectiveQuadTo(float x, float y); + method public float component1(); + method public float component2(); + method public androidx.compose.ui.graphics.vector.PathNode.ReflectiveQuadTo copy(float x, float y); + method public float getX(); + method public float getY(); + property public final float x; + property public final float y; + } + + @androidx.compose.runtime.Immutable public static final class PathNode.RelativeArcTo extends androidx.compose.ui.graphics.vector.PathNode { + ctor public PathNode.RelativeArcTo(float horizontalEllipseRadius, float verticalEllipseRadius, float theta, boolean isMoreThanHalf, boolean isPositiveArc, float arcStartDx, float arcStartDy); + method public float component1(); + method public float component2(); + method public float component3(); + method public boolean component4(); + method public boolean component5(); + method public float component6(); + method public float component7(); + method public androidx.compose.ui.graphics.vector.PathNode.RelativeArcTo copy(float horizontalEllipseRadius, float verticalEllipseRadius, float theta, boolean isMoreThanHalf, boolean isPositiveArc, float arcStartDx, float arcStartDy); + method public float getArcStartDx(); + method public float getArcStartDy(); + method public float getHorizontalEllipseRadius(); + method public float getTheta(); + method public float getVerticalEllipseRadius(); + method public boolean isMoreThanHalf(); + method public boolean isPositiveArc(); + property public final float arcStartDx; + property public final float arcStartDy; + property public final float horizontalEllipseRadius; + property public final boolean isMoreThanHalf; + property public final boolean isPositiveArc; + property public final float theta; + property public final float verticalEllipseRadius; + } + + @androidx.compose.runtime.Immutable public static final class PathNode.RelativeCurveTo extends androidx.compose.ui.graphics.vector.PathNode { + ctor public PathNode.RelativeCurveTo(float dx1, float dy1, float dx2, float dy2, float dx3, float dy3); + method public float component1(); + method public float component2(); + method public float component3(); + method public float component4(); + method public float component5(); + method public float component6(); + method public androidx.compose.ui.graphics.vector.PathNode.RelativeCurveTo copy(float dx1, float dy1, float dx2, float dy2, float dx3, float dy3); + method public float getDx1(); + method public float getDx2(); + method public float getDx3(); + method public float getDy1(); + method public float getDy2(); + method public float getDy3(); + property public final float dx1; + property public final float dx2; + property public final float dx3; + property public final float dy1; + property public final float dy2; + property public final float dy3; + } + + @androidx.compose.runtime.Immutable public static final class PathNode.RelativeHorizontalTo extends androidx.compose.ui.graphics.vector.PathNode { + ctor public PathNode.RelativeHorizontalTo(float dx); + method public float component1(); + method public androidx.compose.ui.graphics.vector.PathNode.RelativeHorizontalTo copy(float dx); + method public float getDx(); + property public final float dx; + } + + @androidx.compose.runtime.Immutable public static final class PathNode.RelativeLineTo extends androidx.compose.ui.graphics.vector.PathNode { + ctor public PathNode.RelativeLineTo(float dx, float dy); + method public float component1(); + method public float component2(); + method public androidx.compose.ui.graphics.vector.PathNode.RelativeLineTo copy(float dx, float dy); + method public float getDx(); + method public float getDy(); + property public final float dx; + property public final float dy; + } + + @androidx.compose.runtime.Immutable public static final class PathNode.RelativeMoveTo extends androidx.compose.ui.graphics.vector.PathNode { + ctor public PathNode.RelativeMoveTo(float dx, float dy); + method public float component1(); + method public float component2(); + method public androidx.compose.ui.graphics.vector.PathNode.RelativeMoveTo copy(float dx, float dy); + method public float getDx(); + method public float getDy(); + property public final float dx; + property public final float dy; + } + + @androidx.compose.runtime.Immutable public static final class PathNode.RelativeQuadTo extends androidx.compose.ui.graphics.vector.PathNode { + ctor public PathNode.RelativeQuadTo(float dx1, float dy1, float dx2, float dy2); + method public float component1(); + method public float component2(); + method public float component3(); + method public float component4(); + method public androidx.compose.ui.graphics.vector.PathNode.RelativeQuadTo copy(float dx1, float dy1, float dx2, float dy2); + method public float getDx1(); + method public float getDx2(); + method public float getDy1(); + method public float getDy2(); + property public final float dx1; + property public final float dx2; + property public final float dy1; + property public final float dy2; + } + + @androidx.compose.runtime.Immutable public static final class PathNode.RelativeReflectiveCurveTo extends androidx.compose.ui.graphics.vector.PathNode { + ctor public PathNode.RelativeReflectiveCurveTo(float dx1, float dy1, float dx2, float dy2); + method public float component1(); + method public float component2(); + method public float component3(); + method public float component4(); + method public androidx.compose.ui.graphics.vector.PathNode.RelativeReflectiveCurveTo copy(float dx1, float dy1, float dx2, float dy2); + method public float getDx1(); + method public float getDx2(); + method public float getDy1(); + method public float getDy2(); + property public final float dx1; + property public final float dx2; + property public final float dy1; + property public final float dy2; + } + + @androidx.compose.runtime.Immutable public static final class PathNode.RelativeReflectiveQuadTo extends androidx.compose.ui.graphics.vector.PathNode { + ctor public PathNode.RelativeReflectiveQuadTo(float dx, float dy); + method public float component1(); + method public float component2(); + method public androidx.compose.ui.graphics.vector.PathNode.RelativeReflectiveQuadTo copy(float dx, float dy); + method public float getDx(); + method public float getDy(); + property public final float dx; + property public final float dy; + } + + @androidx.compose.runtime.Immutable public static final class PathNode.RelativeVerticalTo extends androidx.compose.ui.graphics.vector.PathNode { + ctor public PathNode.RelativeVerticalTo(float dy); + method public float component1(); + method public androidx.compose.ui.graphics.vector.PathNode.RelativeVerticalTo copy(float dy); + method public float getDy(); + property public final float dy; + } + + @androidx.compose.runtime.Immutable public static final class PathNode.VerticalTo extends androidx.compose.ui.graphics.vector.PathNode { + ctor public PathNode.VerticalTo(float y); + method public float component1(); + method public androidx.compose.ui.graphics.vector.PathNode.VerticalTo copy(float y); + method public float getY(); + property public final float y; + } + + public final class PathParser { + ctor public PathParser(); + method public androidx.compose.ui.graphics.vector.PathParser addPathNodes(java.util.List nodes); + method public void clear(); + method public androidx.compose.ui.graphics.vector.PathParser parsePathString(String pathData); + method public java.util.ArrayList pathStringToNodes(String pathData, optional java.util.ArrayList nodes); + method public java.util.List toNodes(); + method public androidx.compose.ui.graphics.Path toPath(optional androidx.compose.ui.graphics.Path target); + } + + public final class PathParserKt { + method public static androidx.compose.ui.graphics.Path toPath(java.util.List, optional androidx.compose.ui.graphics.Path target); + } + +} + diff --git a/compose/ui/ui-graphics/api/res-1.7.0-beta07.txt b/compose/ui/ui-graphics/api/res-1.7.0-beta07.txt new file mode 100644 index 0000000000000..4553236bbb1c2 --- /dev/null +++ b/compose/ui/ui-graphics/api/res-1.7.0-beta07.txt @@ -0,0 +1 @@ +id hide_graphics_layer_in_inspector_tag diff --git a/compose/ui/ui-graphics/api/restricted_1.7.0-beta07.txt b/compose/ui/ui-graphics/api/restricted_1.7.0-beta07.txt new file mode 100644 index 0000000000000..9da68f8403bb4 --- /dev/null +++ b/compose/ui/ui-graphics/api/restricted_1.7.0-beta07.txt @@ -0,0 +1,1967 @@ +// Signature format: 4.0 +package androidx.compose.ui.graphics { + + public final class AndroidBlendMode_androidKt { + method public static boolean isSupported(int); + } + + @kotlin.PublishedApi internal final class AndroidCanvas implements androidx.compose.ui.graphics.Canvas { + ctor public AndroidCanvas(); + method public void clipPath(androidx.compose.ui.graphics.Path path, int clipOp); + method public void clipRect(float left, float top, float right, float bottom, int clipOp); + method public void concat(float[] matrix); + method public void disableZ(); + method public void drawArc(float left, float top, float right, float bottom, float startAngle, float sweepAngle, boolean useCenter, androidx.compose.ui.graphics.Paint paint); + method public void drawCircle(long center, float radius, androidx.compose.ui.graphics.Paint paint); + method public void drawImage(androidx.compose.ui.graphics.ImageBitmap image, long topLeftOffset, androidx.compose.ui.graphics.Paint paint); + method public void drawImageRect(androidx.compose.ui.graphics.ImageBitmap image, long srcOffset, long srcSize, long dstOffset, long dstSize, androidx.compose.ui.graphics.Paint paint); + method public void drawLine(long p1, long p2, androidx.compose.ui.graphics.Paint paint); + method public void drawOval(float left, float top, float right, float bottom, androidx.compose.ui.graphics.Paint paint); + method public void drawPath(androidx.compose.ui.graphics.Path path, androidx.compose.ui.graphics.Paint paint); + method public void drawPoints(int pointMode, java.util.List points, androidx.compose.ui.graphics.Paint paint); + method public void drawRawPoints(int pointMode, float[] points, androidx.compose.ui.graphics.Paint paint); + method public void drawRect(float left, float top, float right, float bottom, androidx.compose.ui.graphics.Paint paint); + method public void drawRoundRect(float left, float top, float right, float bottom, float radiusX, float radiusY, androidx.compose.ui.graphics.Paint paint); + method public void drawVertices(androidx.compose.ui.graphics.Vertices vertices, int blendMode, androidx.compose.ui.graphics.Paint paint); + method public void enableZ(); + method public void restore(); + method public void rotate(float degrees); + method public void save(); + method public void saveLayer(androidx.compose.ui.geometry.Rect bounds, androidx.compose.ui.graphics.Paint paint); + method public void scale(float sx, float sy); + method public void skew(float sx, float sy); + method public android.graphics.Region.Op toRegionOp(int); + method public void translate(float dx, float dy); + field @kotlin.PublishedApi internal android.graphics.Canvas internalCanvas; + } + + public final class AndroidCanvas_androidKt { + method public static androidx.compose.ui.graphics.Canvas Canvas(android.graphics.Canvas c); + method public static android.graphics.Canvas getNativeCanvas(androidx.compose.ui.graphics.Canvas); + } + + public final class AndroidColorFilter_androidKt { + method public static android.graphics.ColorFilter asAndroidColorFilter(androidx.compose.ui.graphics.ColorFilter); + method public static androidx.compose.ui.graphics.ColorFilter asComposeColorFilter(android.graphics.ColorFilter); + } + + public final class AndroidColorSpace_androidKt { + method @RequiresApi(android.os.Build.VERSION_CODES.O) public static android.graphics.ColorSpace toAndroidColorSpace(androidx.compose.ui.graphics.colorspace.ColorSpace); + method @RequiresApi(android.os.Build.VERSION_CODES.O) public static androidx.compose.ui.graphics.colorspace.ColorSpace toComposeColorSpace(android.graphics.ColorSpace); + } + + public final class AndroidGraphicsContext_androidKt { + method public static androidx.compose.ui.graphics.GraphicsContext GraphicsContext(android.view.ViewGroup layerContainer); + } + + public final class AndroidImageBitmap_androidKt { + method public static android.graphics.Bitmap asAndroidBitmap(androidx.compose.ui.graphics.ImageBitmap); + method public static androidx.compose.ui.graphics.ImageBitmap asImageBitmap(android.graphics.Bitmap); + } + + public final class AndroidMatrixConversions_androidKt { + method public static void setFrom(android.graphics.Matrix, float[] matrix); + method public static void setFrom(float[], android.graphics.Matrix matrix); + } + + public final class AndroidPaint implements androidx.compose.ui.graphics.Paint { + ctor public AndroidPaint(); + ctor public AndroidPaint(android.graphics.Paint internalPaint); + method public android.graphics.Paint asFrameworkPaint(); + method public float getAlpha(); + method public int getBlendMode(); + method public long getColor(); + method public androidx.compose.ui.graphics.ColorFilter? getColorFilter(); + method public int getFilterQuality(); + method public androidx.compose.ui.graphics.PathEffect? getPathEffect(); + method public android.graphics.Shader? getShader(); + method public int getStrokeCap(); + method public int getStrokeJoin(); + method public float getStrokeMiterLimit(); + method public float getStrokeWidth(); + method public int getStyle(); + method public boolean isAntiAlias(); + method public void setAlpha(float); + method public void setAntiAlias(boolean); + method public void setBlendMode(int); + method public void setColor(long); + method public void setColorFilter(androidx.compose.ui.graphics.ColorFilter?); + method public void setFilterQuality(int); + method public void setPathEffect(androidx.compose.ui.graphics.PathEffect?); + method public void setShader(android.graphics.Shader?); + method public void setStrokeCap(int); + method public void setStrokeJoin(int); + method public void setStrokeMiterLimit(float); + method public void setStrokeWidth(float); + method public void setStyle(int); + property public float alpha; + property public int blendMode; + property public long color; + property public androidx.compose.ui.graphics.ColorFilter? colorFilter; + property public int filterQuality; + property public boolean isAntiAlias; + property public androidx.compose.ui.graphics.PathEffect? pathEffect; + property public android.graphics.Shader? shader; + property public int strokeCap; + property public int strokeJoin; + property public float strokeMiterLimit; + property public float strokeWidth; + property public int style; + } + + public final class AndroidPaint_androidKt { + method public static androidx.compose.ui.graphics.Paint Paint(); + method public static androidx.compose.ui.graphics.Paint asComposePaint(android.graphics.Paint); + } + + public final class AndroidPath implements androidx.compose.ui.graphics.Path { + ctor public AndroidPath(optional android.graphics.Path internalPath); + method public void addArc(androidx.compose.ui.geometry.Rect oval, float startAngleDegrees, float sweepAngleDegrees); + method public void addArcRad(androidx.compose.ui.geometry.Rect oval, float startAngleRadians, float sweepAngleRadians); + method public void addOval(androidx.compose.ui.geometry.Rect oval); + method public void addOval(androidx.compose.ui.geometry.Rect oval, androidx.compose.ui.graphics.Path.Direction direction); + method public void addPath(androidx.compose.ui.graphics.Path path, long offset); + method public void addRect(androidx.compose.ui.geometry.Rect rect); + method public void addRect(androidx.compose.ui.geometry.Rect rect, androidx.compose.ui.graphics.Path.Direction direction); + method public void addRoundRect(androidx.compose.ui.geometry.RoundRect roundRect); + method public void addRoundRect(androidx.compose.ui.geometry.RoundRect roundRect, androidx.compose.ui.graphics.Path.Direction direction); + method public void arcTo(androidx.compose.ui.geometry.Rect rect, float startAngleDegrees, float sweepAngleDegrees, boolean forceMoveTo); + method public void close(); + method public void cubicTo(float x1, float y1, float x2, float y2, float x3, float y3); + method public androidx.compose.ui.geometry.Rect getBounds(); + method public int getFillType(); + method public android.graphics.Path getInternalPath(); + method public boolean isConvex(); + method public boolean isEmpty(); + method public void lineTo(float x, float y); + method public void moveTo(float x, float y); + method public boolean op(androidx.compose.ui.graphics.Path path1, androidx.compose.ui.graphics.Path path2, int operation); + method public void quadraticBezierTo(float x1, float y1, float x2, float y2); + method public void relativeCubicTo(float dx1, float dy1, float dx2, float dy2, float dx3, float dy3); + method public void relativeLineTo(float dx, float dy); + method public void relativeMoveTo(float dx, float dy); + method public void relativeQuadraticBezierTo(float dx1, float dy1, float dx2, float dy2); + method public void reset(); + method public void setFillType(int); + method public void translate(long offset); + property public int fillType; + property public final android.graphics.Path internalPath; + property public boolean isConvex; + property public boolean isEmpty; + } + + public final class AndroidPathEffect_androidKt { + method public static android.graphics.PathEffect asAndroidPathEffect(androidx.compose.ui.graphics.PathEffect); + method public static androidx.compose.ui.graphics.PathEffect toComposePathEffect(android.graphics.PathEffect); + } + + public final class AndroidPathIterator_androidKt { + method public static androidx.compose.ui.graphics.PathIterator PathIterator(androidx.compose.ui.graphics.Path path, optional androidx.compose.ui.graphics.PathIterator.ConicEvaluation conicEvaluation, optional float tolerance); + } + + public final class AndroidPathMeasure implements androidx.compose.ui.graphics.PathMeasure { + method public float getLength(); + method public long getPosition(float distance); + method public boolean getSegment(float startDistance, float stopDistance, androidx.compose.ui.graphics.Path destination, boolean startWithMoveTo); + method public long getTangent(float distance); + method public void setPath(androidx.compose.ui.graphics.Path? path, boolean forceClosed); + property public float length; + } + + public final class AndroidPathMeasure_androidKt { + method public static androidx.compose.ui.graphics.PathMeasure PathMeasure(); + } + + public final class AndroidPath_androidKt { + method public static androidx.compose.ui.graphics.Path Path(); + method public static inline android.graphics.Path asAndroidPath(androidx.compose.ui.graphics.Path); + method public static androidx.compose.ui.graphics.Path asComposePath(android.graphics.Path); + } + + public final class AndroidRenderEffect_androidKt { + method public static androidx.compose.ui.graphics.RenderEffect asComposeRenderEffect(android.graphics.RenderEffect); + } + + public final class AndroidTileMode_androidKt { + method public static boolean isSupported(int); + method public static android.graphics.Shader.TileMode toAndroidTileMode(int); + method public static int toComposeTileMode(android.graphics.Shader.TileMode); + } + + public final class AndroidVertexMode_androidKt { + method public static android.graphics.Canvas.VertexMode toAndroidVertexMode(int); + } + + public final class BezierKt { + method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static long computeCubicVerticalBounds(float p0y, float p1y, float p2y, float p3y, float[] roots, optional int index); + method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static long computeHorizontalBounds(androidx.compose.ui.graphics.PathSegment segment, float[] roots, optional int index); + method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static float evaluateCubic(float p1, float p2, float t); + method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static float evaluateY(androidx.compose.ui.graphics.PathSegment segment, float t); + method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static float findFirstCubicRoot(float p0, float p1, float p2, float p3); + method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static float findFirstRoot(androidx.compose.ui.graphics.PathSegment segment, float fraction); + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class BlendMode { + field public static final androidx.compose.ui.graphics.BlendMode.Companion Companion; + } + + public static final class BlendMode.Companion { + method public int getClear(); + method public int getColor(); + method public int getColorBurn(); + method public int getColorDodge(); + method public int getDarken(); + method public int getDifference(); + method public int getDst(); + method public int getDstAtop(); + method public int getDstIn(); + method public int getDstOut(); + method public int getDstOver(); + method public int getExclusion(); + method public int getHardlight(); + method public int getHue(); + method public int getLighten(); + method public int getLuminosity(); + method public int getModulate(); + method public int getMultiply(); + method public int getOverlay(); + method public int getPlus(); + method public int getSaturation(); + method public int getScreen(); + method public int getSoftlight(); + method public int getSrc(); + method public int getSrcAtop(); + method public int getSrcIn(); + method public int getSrcOut(); + method public int getSrcOver(); + method public int getXor(); + property public final int Clear; + property public final int Color; + property public final int ColorBurn; + property public final int ColorDodge; + property public final int Darken; + property public final int Difference; + property public final int Dst; + property public final int DstAtop; + property public final int DstIn; + property public final int DstOut; + property public final int DstOver; + property public final int Exclusion; + property public final int Hardlight; + property public final int Hue; + property public final int Lighten; + property public final int Luminosity; + property public final int Modulate; + property public final int Multiply; + property public final int Overlay; + property public final int Plus; + property public final int Saturation; + property public final int Screen; + property public final int Softlight; + property public final int Src; + property public final int SrcAtop; + property public final int SrcIn; + property public final int SrcOut; + property public final int SrcOver; + property public final int Xor; + } + + @androidx.compose.runtime.Immutable public final class BlendModeColorFilter extends androidx.compose.ui.graphics.ColorFilter { + ctor public BlendModeColorFilter(long color, int blendMode); + method public int getBlendMode(); + method public long getColor(); + property public final int blendMode; + property public final long color; + } + + @androidx.compose.runtime.Immutable public final class BlurEffect extends androidx.compose.ui.graphics.RenderEffect { + ctor public BlurEffect(androidx.compose.ui.graphics.RenderEffect? renderEffect, float radiusX, optional float radiusY, optional int edgeTreatment); + method @RequiresApi(android.os.Build.VERSION_CODES.S) protected android.graphics.RenderEffect createRenderEffect(); + } + + @androidx.compose.runtime.Immutable public abstract sealed class Brush { + method public abstract void applyTo(long size, androidx.compose.ui.graphics.Paint p, float alpha); + method public long getIntrinsicSize(); + property public long intrinsicSize; + field public static final androidx.compose.ui.graphics.Brush.Companion Companion; + } + + public static final class Brush.Companion { + method @androidx.compose.runtime.Stable public androidx.compose.ui.graphics.Brush horizontalGradient(java.util.List colors, optional float startX, optional float endX, optional int tileMode); + method @androidx.compose.runtime.Stable public androidx.compose.ui.graphics.Brush horizontalGradient(kotlin.Pair[] colorStops, optional float startX, optional float endX, optional int tileMode); + method @androidx.compose.runtime.Stable public androidx.compose.ui.graphics.Brush linearGradient(java.util.List colors, optional long start, optional long end, optional int tileMode); + method @androidx.compose.runtime.Stable public androidx.compose.ui.graphics.Brush linearGradient(kotlin.Pair[] colorStops, optional long start, optional long end, optional int tileMode); + method @androidx.compose.runtime.Stable public androidx.compose.ui.graphics.Brush radialGradient(java.util.List colors, optional long center, optional float radius, optional int tileMode); + method @androidx.compose.runtime.Stable public androidx.compose.ui.graphics.Brush radialGradient(kotlin.Pair[] colorStops, optional long center, optional float radius, optional int tileMode); + method @androidx.compose.runtime.Stable public androidx.compose.ui.graphics.Brush sweepGradient(java.util.List colors, optional long center); + method @androidx.compose.runtime.Stable public androidx.compose.ui.graphics.Brush sweepGradient(kotlin.Pair[] colorStops, optional long center); + method @androidx.compose.runtime.Stable public androidx.compose.ui.graphics.Brush verticalGradient(java.util.List colors, optional float startY, optional float endY, optional int tileMode); + method @androidx.compose.runtime.Stable public androidx.compose.ui.graphics.Brush verticalGradient(kotlin.Pair[] colorStops, optional float startY, optional float endY, optional int tileMode); + } + + public final class BrushKt { + method public static androidx.compose.ui.graphics.ShaderBrush ShaderBrush(android.graphics.Shader shader); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface Canvas { + method public void clipPath(androidx.compose.ui.graphics.Path path, optional int clipOp); + method public default void clipRect(androidx.compose.ui.geometry.Rect rect, optional int clipOp); + method public void clipRect(float left, float top, float right, float bottom, optional int clipOp); + method public void concat(float[] matrix); + method public void disableZ(); + method public default void drawArc(androidx.compose.ui.geometry.Rect rect, float startAngle, float sweepAngle, boolean useCenter, androidx.compose.ui.graphics.Paint paint); + method public void drawArc(float left, float top, float right, float bottom, float startAngle, float sweepAngle, boolean useCenter, androidx.compose.ui.graphics.Paint paint); + method public default void drawArcRad(androidx.compose.ui.geometry.Rect rect, float startAngleRad, float sweepAngleRad, boolean useCenter, androidx.compose.ui.graphics.Paint paint); + method public void drawCircle(long center, float radius, androidx.compose.ui.graphics.Paint paint); + method public void drawImage(androidx.compose.ui.graphics.ImageBitmap image, long topLeftOffset, androidx.compose.ui.graphics.Paint paint); + method public void drawImageRect(androidx.compose.ui.graphics.ImageBitmap image, optional long srcOffset, optional long srcSize, optional long dstOffset, optional long dstSize, androidx.compose.ui.graphics.Paint paint); + method public void drawLine(long p1, long p2, androidx.compose.ui.graphics.Paint paint); + method public default void drawOval(androidx.compose.ui.geometry.Rect rect, androidx.compose.ui.graphics.Paint paint); + method public void drawOval(float left, float top, float right, float bottom, androidx.compose.ui.graphics.Paint paint); + method public void drawPath(androidx.compose.ui.graphics.Path path, androidx.compose.ui.graphics.Paint paint); + method public void drawPoints(int pointMode, java.util.List points, androidx.compose.ui.graphics.Paint paint); + method public void drawRawPoints(int pointMode, float[] points, androidx.compose.ui.graphics.Paint paint); + method public default void drawRect(androidx.compose.ui.geometry.Rect rect, androidx.compose.ui.graphics.Paint paint); + method public void drawRect(float left, float top, float right, float bottom, androidx.compose.ui.graphics.Paint paint); + method public void drawRoundRect(float left, float top, float right, float bottom, float radiusX, float radiusY, androidx.compose.ui.graphics.Paint paint); + method public void drawVertices(androidx.compose.ui.graphics.Vertices vertices, int blendMode, androidx.compose.ui.graphics.Paint paint); + method public void enableZ(); + method public void restore(); + method public void rotate(float degrees); + method public void save(); + method public void saveLayer(androidx.compose.ui.geometry.Rect bounds, androidx.compose.ui.graphics.Paint paint); + method public void scale(float sx, optional float sy); + method public void skew(float sx, float sy); + method public default void skewRad(float sxRad, float syRad); + method public void translate(float dx, float dy); + } + + public final class CanvasHolder { + ctor public CanvasHolder(); + method public inline void drawInto(android.graphics.Canvas targetCanvas, kotlin.jvm.functions.Function1 block); + field @kotlin.PublishedApi internal final androidx.compose.ui.graphics.AndroidCanvas androidCanvas; + } + + public final class CanvasKt { + method public static androidx.compose.ui.graphics.Canvas Canvas(androidx.compose.ui.graphics.ImageBitmap image); + method public static void rotate(androidx.compose.ui.graphics.Canvas, float degrees, float pivotX, float pivotY); + method public static void rotateRad(androidx.compose.ui.graphics.Canvas, float radians, optional float pivotX, optional float pivotY); + method public static void scale(androidx.compose.ui.graphics.Canvas, float sx, optional float sy, float pivotX, float pivotY); + method public static inline void withSave(androidx.compose.ui.graphics.Canvas, kotlin.jvm.functions.Function0 block); + method public static inline void withSaveLayer(androidx.compose.ui.graphics.Canvas, androidx.compose.ui.geometry.Rect bounds, androidx.compose.ui.graphics.Paint paint, kotlin.jvm.functions.Function0 block); + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class ClipOp { + field public static final androidx.compose.ui.graphics.ClipOp.Companion Companion; + } + + public static final class ClipOp.Companion { + method public int getDifference(); + method public int getIntersect(); + property public final int Difference; + property public final int Intersect; + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class Color { + ctor public Color(long value); + method @androidx.compose.runtime.Stable public inline operator float component1(); + method @androidx.compose.runtime.Stable public inline operator float component2(); + method @androidx.compose.runtime.Stable public inline operator float component3(); + method @androidx.compose.runtime.Stable public inline operator float component4(); + method @androidx.compose.runtime.Stable public inline operator androidx.compose.ui.graphics.colorspace.ColorSpace component5(); + method public long convert(androidx.compose.ui.graphics.colorspace.ColorSpace colorSpace); + method @androidx.compose.runtime.Stable public long copy(optional float alpha, optional float red, optional float green, optional float blue); + method public float getAlpha(); + method public float getBlue(); + method public androidx.compose.ui.graphics.colorspace.ColorSpace getColorSpace(); + method public float getGreen(); + method public float getRed(); + method public long getValue(); + property @androidx.compose.runtime.Stable public final float alpha; + property @androidx.compose.runtime.Stable public final float blue; + property @androidx.compose.runtime.Stable public final androidx.compose.ui.graphics.colorspace.ColorSpace colorSpace; + property @androidx.compose.runtime.Stable public final float green; + property @androidx.compose.runtime.Stable public final float red; + property public final long value; + field public static final androidx.compose.ui.graphics.Color.Companion Companion; + } + + public static final class Color.Companion { + method public long getBlack(); + method public long getBlue(); + method public long getCyan(); + method public long getDarkGray(); + method public long getGray(); + method public long getGreen(); + method public long getLightGray(); + method public long getMagenta(); + method public long getRed(); + method public long getTransparent(); + method public long getUnspecified(); + method public long getWhite(); + method public long getYellow(); + method public long hsl(float hue, float saturation, float lightness, optional float alpha, optional androidx.compose.ui.graphics.colorspace.Rgb colorSpace); + method public long hsv(float hue, float saturation, float value, optional float alpha, optional androidx.compose.ui.graphics.colorspace.Rgb colorSpace); + property public final long Black; + property public final long Blue; + property public final long Cyan; + property public final long DarkGray; + property public final long Gray; + property public final long Green; + property public final long LightGray; + property public final long Magenta; + property public final long Red; + property public final long Transparent; + property public final long Unspecified; + property public final long White; + property public final long Yellow; + } + + @androidx.compose.runtime.Immutable public class ColorFilter { + field public static final androidx.compose.ui.graphics.ColorFilter.Companion Companion; + } + + public static final class ColorFilter.Companion { + method @androidx.compose.runtime.Stable public androidx.compose.ui.graphics.ColorFilter colorMatrix(float[] colorMatrix); + method @androidx.compose.runtime.Stable public androidx.compose.ui.graphics.ColorFilter lighting(long multiply, long add); + method @androidx.compose.runtime.Stable public androidx.compose.ui.graphics.ColorFilter tint(long color, optional int blendMode); + } + + public final class ColorKt { + method @androidx.compose.runtime.Stable public static long Color(float red, float green, float blue, optional float alpha, optional androidx.compose.ui.graphics.colorspace.ColorSpace colorSpace); + method @androidx.compose.runtime.Stable public static long Color(@ColorInt int color); + method @androidx.compose.runtime.Stable public static long Color(@IntRange(from=0L, to=255L) int red, @IntRange(from=0L, to=255L) int green, @IntRange(from=0L, to=255L) int blue, optional @IntRange(from=0L, to=255L) int alpha); + method @androidx.compose.runtime.Stable public static long Color(long color); + method @androidx.compose.runtime.Stable public static long compositeOver(long, long background); + method public static inline boolean isSpecified(long); + method public static inline boolean isUnspecified(long); + method @androidx.compose.runtime.Stable public static long lerp(long start, long stop, @FloatRange(from=0.0, to=1.0) float fraction); + method @androidx.compose.runtime.Stable public static float luminance(long); + method public static inline long takeOrElse(long, kotlin.jvm.functions.Function0 block); + method @ColorInt @androidx.compose.runtime.Stable public static int toArgb(long); + field @kotlin.PublishedApi internal static final long UnspecifiedColor = 16L; // 0x10L + } + + @kotlin.jvm.JvmInline public final value class ColorMatrix { + ctor public ColorMatrix(optional float[] values); + method public void convertRgbToYuv(); + method public void convertYuvToRgb(); + method public inline operator float get(int row, int column); + method public float[] getValues(); + method public void reset(); + method public void set(float[] src); + method public inline operator void set(int row, int column, float v); + method public void setToRotateBlue(float degrees); + method public void setToRotateGreen(float degrees); + method public void setToRotateRed(float degrees); + method public void setToSaturation(float sat); + method public void setToScale(float redScale, float greenScale, float blueScale, float alphaScale); + method public operator void timesAssign(float[] colorMatrix); + property public final float[] values; + } + + @androidx.compose.runtime.Immutable public final class ColorMatrixColorFilter extends androidx.compose.ui.graphics.ColorFilter { + ctor public ColorMatrixColorFilter(float[] colorMatrix); + method public float[] copyColorMatrix(optional float[] targetColorMatrix); + } + + public fun interface ColorProducer { + method public operator long invoke(); + } + + public final class DegreesKt { + method @kotlin.PublishedApi internal static float degrees(float radians); + } + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This API is experimental and is likely to change in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalGraphicsApi { + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class FilterQuality { + method public int getValue(); + property public final int value; + field public static final androidx.compose.ui.graphics.FilterQuality.Companion Companion; + } + + public static final class FilterQuality.Companion { + method public int getHigh(); + method public int getLow(); + method public int getMedium(); + method public int getNone(); + property public final int High; + property public final int Low; + property public final int Medium; + property public final int None; + } + + public interface GraphicsContext { + method public androidx.compose.ui.graphics.layer.GraphicsLayer createGraphicsLayer(); + method public void releaseGraphicsLayer(androidx.compose.ui.graphics.layer.GraphicsLayer layer); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface ImageBitmap { + method public androidx.compose.ui.graphics.colorspace.ColorSpace getColorSpace(); + method public int getConfig(); + method public boolean getHasAlpha(); + method public int getHeight(); + method public int getWidth(); + method public void prepareToDraw(); + method public void readPixels(int[] buffer, optional int startX, optional int startY, optional int width, optional int height, optional int bufferOffset, optional int stride); + property public abstract androidx.compose.ui.graphics.colorspace.ColorSpace colorSpace; + property public abstract int config; + property public abstract boolean hasAlpha; + property public abstract int height; + property public abstract int width; + field public static final androidx.compose.ui.graphics.ImageBitmap.Companion Companion; + } + + public static final class ImageBitmap.Companion { + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class ImageBitmapConfig { + method public int getValue(); + property public final int value; + field public static final androidx.compose.ui.graphics.ImageBitmapConfig.Companion Companion; + } + + public static final class ImageBitmapConfig.Companion { + method public int getAlpha8(); + method public int getArgb8888(); + method public int getF16(); + method public int getGpu(); + method public int getRgb565(); + property public final int Alpha8; + property public final int Argb8888; + property public final int F16; + property public final int Gpu; + property public final int Rgb565; + } + + public final class ImageBitmapKt { + method public static androidx.compose.ui.graphics.ImageBitmap ImageBitmap(int width, int height, optional int config, optional boolean hasAlpha, optional androidx.compose.ui.graphics.colorspace.ColorSpace colorSpace); + method public static androidx.compose.ui.graphics.PixelMap toPixelMap(androidx.compose.ui.graphics.ImageBitmap, optional int startX, optional int startY, optional int width, optional int height, optional int[] buffer, optional int bufferOffset, optional int stride); + } + + @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class Interval { + ctor public Interval(float start, float end, optional T? data); + method public final operator boolean contains(float value); + method public final T? getData(); + method public final float getEnd(); + method public final float getStart(); + method public final boolean overlaps(androidx.compose.ui.graphics.Interval other); + method public final boolean overlaps(float start, float end); + property public final T? data; + property public final float end; + property public final float start; + } + + @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public final class IntervalTree { + ctor public IntervalTree(); + method public void addInterval(float start, float end, T? data); + method public void clear(); + method public operator boolean contains(float value); + method public operator boolean contains(kotlin.ranges.ClosedFloatingPointRange interval); + method public androidx.compose.ui.graphics.Interval findFirstOverlap(float start, optional float end); + method public androidx.compose.ui.graphics.Interval findFirstOverlap(kotlin.ranges.ClosedFloatingPointRange interval); + method public java.util.List> findOverlaps(float start, optional float end, optional java.util.List> results); + method public java.util.List> findOverlaps(kotlin.ranges.ClosedFloatingPointRange interval, optional java.util.List> results); + method public operator java.util.Iterator> iterator(); + method public operator void plusAssign(androidx.compose.ui.graphics.Interval interval); + } + + @androidx.compose.runtime.Immutable public final class LightingColorFilter extends androidx.compose.ui.graphics.ColorFilter { + ctor public LightingColorFilter(long multiply, long add); + method public long getAdd(); + method public long getMultiply(); + property public final long add; + property public final long multiply; + } + + @androidx.compose.runtime.Immutable public final class LinearGradient extends androidx.compose.ui.graphics.ShaderBrush { + method public android.graphics.Shader createShader(long size); + property public long intrinsicSize; + } + + @kotlin.jvm.JvmInline public final value class Matrix { + ctor public Matrix(optional float[] values); + method public inline operator float get(int row, int column); + method public float[] getValues(); + method public void invert(); + method public void map(androidx.compose.ui.geometry.MutableRect rect); + method public androidx.compose.ui.geometry.Rect map(androidx.compose.ui.geometry.Rect rect); + method public long map(long point); + method public void reset(); + method public void rotateX(float degrees); + method public void rotateY(float degrees); + method public void rotateZ(float degrees); + method public void scale(optional float x, optional float y, optional float z); + method public inline operator void set(int row, int column, float v); + method public void setFrom(float[] matrix); + method public operator void timesAssign(float[] m); + method public void translate(optional float x, optional float y, optional float z); + property public final float[] values; + field public static final androidx.compose.ui.graphics.Matrix.Companion Companion; + field public static final int Perspective0 = 3; // 0x3 + field public static final int Perspective1 = 7; // 0x7 + field public static final int Perspective2 = 15; // 0xf + field public static final int ScaleX = 0; // 0x0 + field public static final int ScaleY = 5; // 0x5 + field public static final int ScaleZ = 10; // 0xa + field public static final int SkewX = 4; // 0x4 + field public static final int SkewY = 1; // 0x1 + field public static final int TranslateX = 12; // 0xc + field public static final int TranslateY = 13; // 0xd + field public static final int TranslateZ = 14; // 0xe + } + + public static final class Matrix.Companion { + } + + public final class MatrixKt { + method public static boolean isIdentity(float[]); + } + + @androidx.compose.runtime.Immutable public final class OffsetEffect extends androidx.compose.ui.graphics.RenderEffect { + ctor public OffsetEffect(androidx.compose.ui.graphics.RenderEffect? renderEffect, long offset); + method @RequiresApi(android.os.Build.VERSION_CODES.S) protected android.graphics.RenderEffect createRenderEffect(); + } + + public abstract sealed class Outline { + method public abstract androidx.compose.ui.geometry.Rect getBounds(); + property public abstract androidx.compose.ui.geometry.Rect bounds; + } + + public static final class Outline.Generic extends androidx.compose.ui.graphics.Outline { + ctor public Outline.Generic(androidx.compose.ui.graphics.Path path); + method public androidx.compose.ui.geometry.Rect getBounds(); + method public androidx.compose.ui.graphics.Path getPath(); + property public androidx.compose.ui.geometry.Rect bounds; + property public final androidx.compose.ui.graphics.Path path; + } + + @androidx.compose.runtime.Immutable public static final class Outline.Rectangle extends androidx.compose.ui.graphics.Outline { + ctor public Outline.Rectangle(androidx.compose.ui.geometry.Rect rect); + method public androidx.compose.ui.geometry.Rect getBounds(); + method public androidx.compose.ui.geometry.Rect getRect(); + property public androidx.compose.ui.geometry.Rect bounds; + property public final androidx.compose.ui.geometry.Rect rect; + } + + @androidx.compose.runtime.Immutable public static final class Outline.Rounded extends androidx.compose.ui.graphics.Outline { + ctor public Outline.Rounded(androidx.compose.ui.geometry.RoundRect roundRect); + method public androidx.compose.ui.geometry.Rect getBounds(); + method public androidx.compose.ui.geometry.RoundRect getRoundRect(); + property public androidx.compose.ui.geometry.Rect bounds; + property public final androidx.compose.ui.geometry.RoundRect roundRect; + } + + public final class OutlineKt { + method public static void addOutline(androidx.compose.ui.graphics.Path, androidx.compose.ui.graphics.Outline outline); + method public static void drawOutline(androidx.compose.ui.graphics.Canvas, androidx.compose.ui.graphics.Outline outline, androidx.compose.ui.graphics.Paint paint); + method public static void drawOutline(androidx.compose.ui.graphics.drawscope.DrawScope, androidx.compose.ui.graphics.Outline outline, androidx.compose.ui.graphics.Brush brush, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + method public static void drawOutline(androidx.compose.ui.graphics.drawscope.DrawScope, androidx.compose.ui.graphics.Outline outline, long color, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + } + + public interface Paint { + method public android.graphics.Paint asFrameworkPaint(); + method public float getAlpha(); + method public int getBlendMode(); + method public long getColor(); + method public androidx.compose.ui.graphics.ColorFilter? getColorFilter(); + method public int getFilterQuality(); + method public androidx.compose.ui.graphics.PathEffect? getPathEffect(); + method public android.graphics.Shader? getShader(); + method public int getStrokeCap(); + method public int getStrokeJoin(); + method public float getStrokeMiterLimit(); + method public float getStrokeWidth(); + method public int getStyle(); + method public boolean isAntiAlias(); + method public void setAlpha(float); + method public void setAntiAlias(boolean); + method public void setBlendMode(int); + method public void setColor(long); + method public void setColorFilter(androidx.compose.ui.graphics.ColorFilter?); + method public void setFilterQuality(int); + method public void setPathEffect(androidx.compose.ui.graphics.PathEffect?); + method public void setShader(android.graphics.Shader?); + method public void setStrokeCap(int); + method public void setStrokeJoin(int); + method public void setStrokeMiterLimit(float); + method public void setStrokeWidth(float); + method public void setStyle(int); + property public abstract float alpha; + property public abstract int blendMode; + property public abstract long color; + property public abstract androidx.compose.ui.graphics.ColorFilter? colorFilter; + property public abstract int filterQuality; + property public abstract boolean isAntiAlias; + property public abstract androidx.compose.ui.graphics.PathEffect? pathEffect; + property public abstract android.graphics.Shader? shader; + property public abstract int strokeCap; + property public abstract int strokeJoin; + property public abstract float strokeMiterLimit; + property public abstract float strokeWidth; + property public abstract int style; + } + + public final class PaintKt { + field public static final float DefaultAlpha = 1.0f; + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class PaintingStyle { + field public static final androidx.compose.ui.graphics.PaintingStyle.Companion Companion; + } + + public static final class PaintingStyle.Companion { + method public int getFill(); + method public int getStroke(); + property public final int Fill; + property public final int Stroke; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface Path { + method public void addArc(androidx.compose.ui.geometry.Rect oval, float startAngleDegrees, float sweepAngleDegrees); + method public void addArcRad(androidx.compose.ui.geometry.Rect oval, float startAngleRadians, float sweepAngleRadians); + method @Deprecated public void addOval(androidx.compose.ui.geometry.Rect oval); + method public void addOval(androidx.compose.ui.geometry.Rect oval, optional androidx.compose.ui.graphics.Path.Direction direction); + method public void addPath(androidx.compose.ui.graphics.Path path, optional long offset); + method @Deprecated public void addRect(androidx.compose.ui.geometry.Rect rect); + method public void addRect(androidx.compose.ui.geometry.Rect rect, optional androidx.compose.ui.graphics.Path.Direction direction); + method @Deprecated public void addRoundRect(androidx.compose.ui.geometry.RoundRect roundRect); + method public void addRoundRect(androidx.compose.ui.geometry.RoundRect roundRect, optional androidx.compose.ui.graphics.Path.Direction direction); + method public default infix androidx.compose.ui.graphics.Path and(androidx.compose.ui.graphics.Path path); + method public void arcTo(androidx.compose.ui.geometry.Rect rect, float startAngleDegrees, float sweepAngleDegrees, boolean forceMoveTo); + method public default void arcToRad(androidx.compose.ui.geometry.Rect rect, float startAngleRadians, float sweepAngleRadians, boolean forceMoveTo); + method public void close(); + method public void cubicTo(float x1, float y1, float x2, float y2, float x3, float y3); + method public androidx.compose.ui.geometry.Rect getBounds(); + method public int getFillType(); + method public boolean isConvex(); + method public boolean isEmpty(); + method public default operator androidx.compose.ui.graphics.PathIterator iterator(); + method public default androidx.compose.ui.graphics.PathIterator iterator(androidx.compose.ui.graphics.PathIterator.ConicEvaluation conicEvaluation, optional float tolerance); + method public void lineTo(float x, float y); + method public default operator androidx.compose.ui.graphics.Path minus(androidx.compose.ui.graphics.Path path); + method public void moveTo(float x, float y); + method public boolean op(androidx.compose.ui.graphics.Path path1, androidx.compose.ui.graphics.Path path2, int operation); + method public default infix androidx.compose.ui.graphics.Path or(androidx.compose.ui.graphics.Path path); + method public default operator androidx.compose.ui.graphics.Path plus(androidx.compose.ui.graphics.Path path); + method @Deprecated public void quadraticBezierTo(float x1, float y1, float x2, float y2); + method public default void quadraticTo(float x1, float y1, float x2, float y2); + method public void relativeCubicTo(float dx1, float dy1, float dx2, float dy2, float dx3, float dy3); + method public void relativeLineTo(float dx, float dy); + method public void relativeMoveTo(float dx, float dy); + method @Deprecated public void relativeQuadraticBezierTo(float dx1, float dy1, float dx2, float dy2); + method public default void relativeQuadraticTo(float dx1, float dy1, float dx2, float dy2); + method public void reset(); + method public default void rewind(); + method public void setFillType(int); + method public default void transform(float[] matrix); + method public void translate(long offset); + method public default infix androidx.compose.ui.graphics.Path xor(androidx.compose.ui.graphics.Path path); + property public abstract int fillType; + property public abstract boolean isConvex; + property public abstract boolean isEmpty; + field public static final androidx.compose.ui.graphics.Path.Companion Companion; + } + + public static final class Path.Companion { + method public androidx.compose.ui.graphics.Path combine(int operation, androidx.compose.ui.graphics.Path path1, androidx.compose.ui.graphics.Path path2); + } + + public enum Path.Direction { + enum_constant public static final androidx.compose.ui.graphics.Path.Direction Clockwise; + enum_constant public static final androidx.compose.ui.graphics.Path.Direction CounterClockwise; + } + + public interface PathEffect { + field public static final androidx.compose.ui.graphics.PathEffect.Companion Companion; + } + + public static final class PathEffect.Companion { + method public androidx.compose.ui.graphics.PathEffect chainPathEffect(androidx.compose.ui.graphics.PathEffect outer, androidx.compose.ui.graphics.PathEffect inner); + method public androidx.compose.ui.graphics.PathEffect cornerPathEffect(float radius); + method public androidx.compose.ui.graphics.PathEffect dashPathEffect(float[] intervals, optional float phase); + method public androidx.compose.ui.graphics.PathEffect stampedPathEffect(androidx.compose.ui.graphics.Path shape, float advance, float phase, int style); + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class PathFillType { + field public static final androidx.compose.ui.graphics.PathFillType.Companion Companion; + } + + public static final class PathFillType.Companion { + method public int getEvenOdd(); + method public int getNonZero(); + property public final int EvenOdd; + property public final int NonZero; + } + + public final class PathGeometryKt { + method public static androidx.compose.ui.graphics.Path.Direction computeDirection(androidx.compose.ui.graphics.Path); + method public static java.util.List divide(androidx.compose.ui.graphics.Path, optional java.util.List contours); + method public static androidx.compose.ui.graphics.Path reverse(androidx.compose.ui.graphics.Path, optional androidx.compose.ui.graphics.Path destination); + } + + public final class PathHitTester { + ctor public PathHitTester(); + method public operator boolean contains(long position); + method public void updatePath(androidx.compose.ui.graphics.Path path, optional @FloatRange(from=0.0) float tolerance); + } + + public final class PathHitTesterKt { + method public static androidx.compose.ui.graphics.PathHitTester PathHitTester(androidx.compose.ui.graphics.Path path, optional @FloatRange(from=0.0) float tolerance); + } + + public interface PathIterator extends java.util.Iterator kotlin.jvm.internal.markers.KMappedMarker { + method public int calculateSize(optional boolean includeConvertedConics); + method public androidx.compose.ui.graphics.PathIterator.ConicEvaluation getConicEvaluation(); + method public androidx.compose.ui.graphics.Path getPath(); + method public float getTolerance(); + method public androidx.compose.ui.graphics.PathSegment next(); + method public androidx.compose.ui.graphics.PathSegment.Type next(float[] outPoints, optional int offset); + property public abstract androidx.compose.ui.graphics.PathIterator.ConicEvaluation conicEvaluation; + property public abstract androidx.compose.ui.graphics.Path path; + property public abstract float tolerance; + } + + public enum PathIterator.ConicEvaluation { + enum_constant public static final androidx.compose.ui.graphics.PathIterator.ConicEvaluation AsConic; + enum_constant public static final androidx.compose.ui.graphics.PathIterator.ConicEvaluation AsQuadratics; + } + + public final class PathKt { + method public static androidx.compose.ui.graphics.Path copy(androidx.compose.ui.graphics.Path); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface PathMeasure { + method public float getLength(); + method public long getPosition(float distance); + method public boolean getSegment(float startDistance, float stopDistance, androidx.compose.ui.graphics.Path destination, optional boolean startWithMoveTo); + method public long getTangent(float distance); + method public void setPath(androidx.compose.ui.graphics.Path? path, boolean forceClosed); + property public abstract float length; + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class PathOperation { + field public static final androidx.compose.ui.graphics.PathOperation.Companion Companion; + } + + public static final class PathOperation.Companion { + method public int getDifference(); + method public int getIntersect(); + method public int getReverseDifference(); + method public int getUnion(); + method public int getXor(); + property public final int Difference; + property public final int Intersect; + property public final int ReverseDifference; + property public final int Union; + property public final int Xor; + } + + public final class PathOperationKt { + method @Deprecated public static int getDifference(androidx.compose.ui.graphics.PathOperation.Companion); + method @Deprecated public static int getIntersect(androidx.compose.ui.graphics.PathOperation.Companion); + method @Deprecated public static int getReverseDifference(androidx.compose.ui.graphics.PathOperation.Companion); + method @Deprecated public static int getUnion(androidx.compose.ui.graphics.PathOperation.Companion); + method @Deprecated public static int getXor(androidx.compose.ui.graphics.PathOperation.Companion); + } + + public final class PathSegment { + method public float[] getPoints(); + method public androidx.compose.ui.graphics.PathSegment.Type getType(); + method public float getWeight(); + property public final float[] points; + property public final androidx.compose.ui.graphics.PathSegment.Type type; + property public final float weight; + } + + public enum PathSegment.Type { + enum_constant public static final androidx.compose.ui.graphics.PathSegment.Type Close; + enum_constant public static final androidx.compose.ui.graphics.PathSegment.Type Conic; + enum_constant public static final androidx.compose.ui.graphics.PathSegment.Type Cubic; + enum_constant public static final androidx.compose.ui.graphics.PathSegment.Type Done; + enum_constant public static final androidx.compose.ui.graphics.PathSegment.Type Line; + enum_constant public static final androidx.compose.ui.graphics.PathSegment.Type Move; + enum_constant public static final androidx.compose.ui.graphics.PathSegment.Type Quadratic; + } + + public final class PathSegmentKt { + method public static androidx.compose.ui.graphics.PathSegment getCloseSegment(); + method public static androidx.compose.ui.graphics.PathSegment getDoneSegment(); + property public static final androidx.compose.ui.graphics.PathSegment CloseSegment; + property public static final androidx.compose.ui.graphics.PathSegment DoneSegment; + } + + public final class PathSvgKt { + method public static void addSvg(androidx.compose.ui.graphics.Path, String pathData); + method public static String toSvg(androidx.compose.ui.graphics.Path, optional boolean asDocument); + } + + public final class PixelMap { + ctor public PixelMap(int[] buffer, int width, int height, int bufferOffset, int stride); + method public operator long get(@IntRange(from=0L) int x, @IntRange(from=0L) int y); + method public int[] getBuffer(); + method public int getBufferOffset(); + method public int getHeight(); + method public int getStride(); + method public int getWidth(); + property public final int[] buffer; + property public final int bufferOffset; + property public final int height; + property public final int stride; + property public final int width; + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class PointMode { + field public static final androidx.compose.ui.graphics.PointMode.Companion Companion; + } + + public static final class PointMode.Companion { + method public int getLines(); + method public int getPoints(); + method public int getPolygon(); + property public final int Lines; + property public final int Points; + property public final int Polygon; + } + + @androidx.compose.runtime.Immutable public final class RadialGradient extends androidx.compose.ui.graphics.ShaderBrush { + method public android.graphics.Shader createShader(long size); + property public long intrinsicSize; + } + + public final class RectHelper_androidKt { + method @Deprecated public static android.graphics.Rect toAndroidRect(androidx.compose.ui.geometry.Rect); + method public static android.graphics.Rect toAndroidRect(androidx.compose.ui.unit.IntRect); + method public static android.graphics.RectF toAndroidRectF(androidx.compose.ui.geometry.Rect); + method public static androidx.compose.ui.unit.IntRect toComposeIntRect(android.graphics.Rect); + method public static androidx.compose.ui.geometry.Rect toComposeRect(android.graphics.Rect); + method public static androidx.compose.ui.geometry.Rect toComposeRect(android.graphics.RectF); + } + + public final class RectangleShapeKt { + method public static androidx.compose.ui.graphics.Shape getRectangleShape(); + property public static final androidx.compose.ui.graphics.Shape RectangleShape; + } + + @androidx.compose.runtime.Immutable public abstract sealed class RenderEffect { + method @RequiresApi(android.os.Build.VERSION_CODES.S) public final android.graphics.RenderEffect asAndroidRenderEffect(); + method @RequiresApi(android.os.Build.VERSION_CODES.S) protected abstract android.graphics.RenderEffect createRenderEffect(); + method public boolean isSupported(); + } + + public final class RenderEffectKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.graphics.BlurEffect BlurEffect(float radiusX, float radiusY, optional int edgeTreatment); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.graphics.OffsetEffect OffsetEffect(float offsetX, float offsetY); + } + + @androidx.compose.runtime.Immutable public abstract class ShaderBrush extends androidx.compose.ui.graphics.Brush { + ctor public ShaderBrush(); + method public final void applyTo(long size, androidx.compose.ui.graphics.Paint p, float alpha); + method public abstract android.graphics.Shader createShader(long size); + } + + public final class ShaderKt { + method public static android.graphics.Shader ImageShader(androidx.compose.ui.graphics.ImageBitmap image, optional int tileModeX, optional int tileModeY); + method public static android.graphics.Shader LinearGradientShader(long from, long to, java.util.List colors, optional java.util.List? colorStops, optional int tileMode); + method public static android.graphics.Shader RadialGradientShader(long center, float radius, java.util.List colors, optional java.util.List? colorStops, optional int tileMode); + method public static android.graphics.Shader SweepGradientShader(long center, java.util.List colors, optional java.util.List? colorStops); + } + + @androidx.compose.runtime.Immutable public final class Shadow { + ctor public Shadow(optional @androidx.compose.runtime.Stable long color, optional @androidx.compose.runtime.Stable long offset, optional @androidx.compose.runtime.Stable float blurRadius); + method public androidx.compose.ui.graphics.Shadow copy(optional long color, optional long offset, optional float blurRadius); + method public float getBlurRadius(); + method public long getColor(); + method public long getOffset(); + property public final float blurRadius; + property public final long color; + property public final long offset; + field public static final androidx.compose.ui.graphics.Shadow.Companion Companion; + } + + public static final class Shadow.Companion { + method public androidx.compose.ui.graphics.Shadow getNone(); + property public final androidx.compose.ui.graphics.Shadow None; + } + + public final class ShadowKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.graphics.Shadow lerp(androidx.compose.ui.graphics.Shadow start, androidx.compose.ui.graphics.Shadow stop, float fraction); + } + + @androidx.compose.runtime.Stable public interface Shape { + method public androidx.compose.ui.graphics.Outline createOutline(long size, androidx.compose.ui.unit.LayoutDirection layoutDirection, androidx.compose.ui.unit.Density density); + } + + @androidx.compose.runtime.Immutable public final class SolidColor extends androidx.compose.ui.graphics.Brush { + ctor public SolidColor(long value); + method public void applyTo(long size, androidx.compose.ui.graphics.Paint p, float alpha); + method public long getValue(); + property public final long value; + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class StampedPathEffectStyle { + field public static final androidx.compose.ui.graphics.StampedPathEffectStyle.Companion Companion; + } + + public static final class StampedPathEffectStyle.Companion { + method public int getMorph(); + method public int getRotate(); + method public int getTranslate(); + property public final int Morph; + property public final int Rotate; + property public final int Translate; + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class StrokeCap { + field public static final androidx.compose.ui.graphics.StrokeCap.Companion Companion; + } + + public static final class StrokeCap.Companion { + method public int getButt(); + method public int getRound(); + method public int getSquare(); + property public final int Butt; + property public final int Round; + property public final int Square; + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class StrokeJoin { + field public static final androidx.compose.ui.graphics.StrokeJoin.Companion Companion; + } + + public static final class StrokeJoin.Companion { + method public int getBevel(); + method public int getMiter(); + method public int getRound(); + property public final int Bevel; + property public final int Miter; + property public final int Round; + } + + @androidx.compose.runtime.Immutable public final class SweepGradient extends androidx.compose.ui.graphics.ShaderBrush { + method public android.graphics.Shader createShader(long size); + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class TileMode { + field public static final androidx.compose.ui.graphics.TileMode.Companion Companion; + } + + public static final class TileMode.Companion { + method public int getClamp(); + method public int getDecal(); + method public int getMirror(); + method public int getRepeated(); + property public final int Clamp; + property public final int Decal; + property public final int Mirror; + property public final int Repeated; + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class VertexMode { + field public static final androidx.compose.ui.graphics.VertexMode.Companion Companion; + } + + public static final class VertexMode.Companion { + method public int getTriangleFan(); + method public int getTriangleStrip(); + method public int getTriangles(); + property public final int TriangleFan; + property public final int TriangleStrip; + property public final int Triangles; + } + + public final class Vertices { + ctor public Vertices(int vertexMode, java.util.List positions, java.util.List textureCoordinates, java.util.List colors, java.util.List indices); + method public int[] getColors(); + method public short[] getIndices(); + method public float[] getPositions(); + method public float[] getTextureCoordinates(); + method public int getVertexMode(); + property public final int[] colors; + property public final short[] indices; + property public final float[] positions; + property public final float[] textureCoordinates; + property public final int vertexMode; + } + +} + +package androidx.compose.ui.graphics.colorspace { + + public abstract class Adaptation { + field public static final androidx.compose.ui.graphics.colorspace.Adaptation.Companion Companion; + } + + public static final class Adaptation.Companion { + method public androidx.compose.ui.graphics.colorspace.Adaptation getBradford(); + method public androidx.compose.ui.graphics.colorspace.Adaptation getCiecat02(); + method public androidx.compose.ui.graphics.colorspace.Adaptation getVonKries(); + property public final androidx.compose.ui.graphics.colorspace.Adaptation Bradford; + property public final androidx.compose.ui.graphics.colorspace.Adaptation Ciecat02; + property public final androidx.compose.ui.graphics.colorspace.Adaptation VonKries; + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class ColorModel { + method @IntRange(from=1L, to=4L) public int getComponentCount(); + property @IntRange(from=1L, to=4L) @androidx.compose.runtime.Stable public final int componentCount; + field public static final androidx.compose.ui.graphics.colorspace.ColorModel.Companion Companion; + } + + public static final class ColorModel.Companion { + method public long getCmyk(); + method public long getLab(); + method public long getRgb(); + method public long getXyz(); + property public final long Cmyk; + property public final long Lab; + property public final long Rgb; + property public final long Xyz; + } + + public abstract class ColorSpace { + ctor public ColorSpace(String name, long model); + method @Size(min=3L) public final float[] fromXyz(float x, float y, float z); + method @Size(min=3L) public abstract float[] fromXyz(@Size(min=3L) float[] v); + method @IntRange(from=1L, to=4L) public final int getComponentCount(); + method public abstract float getMaxValue(@IntRange(from=0L, to=3L) int component); + method public abstract float getMinValue(@IntRange(from=0L, to=3L) int component); + method public final long getModel(); + method public final String getName(); + method public boolean isSrgb(); + method public abstract boolean isWideGamut(); + method @Size(3L) public final float[] toXyz(float r, float g, float b); + method @Size(min=3L) public abstract float[] toXyz(@Size(min=3L) float[] v); + property @IntRange(from=1L, to=4L) public final int componentCount; + property public boolean isSrgb; + property public abstract boolean isWideGamut; + property public final long model; + property public final String name; + } + + public final class ColorSpaceKt { + method public static androidx.compose.ui.graphics.colorspace.ColorSpace adapt(androidx.compose.ui.graphics.colorspace.ColorSpace, androidx.compose.ui.graphics.colorspace.WhitePoint whitePoint); + method public static androidx.compose.ui.graphics.colorspace.ColorSpace adapt(androidx.compose.ui.graphics.colorspace.ColorSpace, androidx.compose.ui.graphics.colorspace.WhitePoint whitePoint, optional androidx.compose.ui.graphics.colorspace.Adaptation adaptation); + method public static androidx.compose.ui.graphics.colorspace.Connector connect(androidx.compose.ui.graphics.colorspace.ColorSpace, optional androidx.compose.ui.graphics.colorspace.ColorSpace destination, optional int intent); + } + + public final class ColorSpaces { + method public androidx.compose.ui.graphics.colorspace.Rgb getAces(); + method public androidx.compose.ui.graphics.colorspace.Rgb getAcescg(); + method public androidx.compose.ui.graphics.colorspace.Rgb getAdobeRgb(); + method public androidx.compose.ui.graphics.colorspace.Rgb getBt2020(); + method public androidx.compose.ui.graphics.colorspace.Rgb getBt709(); + method public androidx.compose.ui.graphics.colorspace.ColorSpace getCieLab(); + method public androidx.compose.ui.graphics.colorspace.ColorSpace getCieXyz(); + method public androidx.compose.ui.graphics.colorspace.Rgb getDciP3(); + method public androidx.compose.ui.graphics.colorspace.Rgb getDisplayP3(); + method public androidx.compose.ui.graphics.colorspace.Rgb getExtendedSrgb(); + method public androidx.compose.ui.graphics.colorspace.Rgb getLinearExtendedSrgb(); + method public androidx.compose.ui.graphics.colorspace.Rgb getLinearSrgb(); + method public androidx.compose.ui.graphics.colorspace.Rgb getNtsc1953(); + method public androidx.compose.ui.graphics.colorspace.ColorSpace getOklab(); + method public androidx.compose.ui.graphics.colorspace.Rgb getProPhotoRgb(); + method public androidx.compose.ui.graphics.colorspace.Rgb getSmpteC(); + method public androidx.compose.ui.graphics.colorspace.Rgb getSrgb(); + method public androidx.compose.ui.graphics.colorspace.ColorSpace? match(@Size(9L) float[] toXYZD50, androidx.compose.ui.graphics.colorspace.TransferParameters function); + property public final androidx.compose.ui.graphics.colorspace.Rgb Aces; + property public final androidx.compose.ui.graphics.colorspace.Rgb Acescg; + property public final androidx.compose.ui.graphics.colorspace.Rgb AdobeRgb; + property public final androidx.compose.ui.graphics.colorspace.Rgb Bt2020; + property public final androidx.compose.ui.graphics.colorspace.Rgb Bt709; + property public final androidx.compose.ui.graphics.colorspace.ColorSpace CieLab; + property public final androidx.compose.ui.graphics.colorspace.ColorSpace CieXyz; + property public final androidx.compose.ui.graphics.colorspace.Rgb DciP3; + property public final androidx.compose.ui.graphics.colorspace.Rgb DisplayP3; + property public final androidx.compose.ui.graphics.colorspace.Rgb ExtendedSrgb; + property public final androidx.compose.ui.graphics.colorspace.Rgb LinearExtendedSrgb; + property public final androidx.compose.ui.graphics.colorspace.Rgb LinearSrgb; + property public final androidx.compose.ui.graphics.colorspace.Rgb Ntsc1953; + property public final androidx.compose.ui.graphics.colorspace.ColorSpace Oklab; + property public final androidx.compose.ui.graphics.colorspace.Rgb ProPhotoRgb; + property public final androidx.compose.ui.graphics.colorspace.Rgb SmpteC; + property public final androidx.compose.ui.graphics.colorspace.Rgb Srgb; + field public static final androidx.compose.ui.graphics.colorspace.ColorSpaces INSTANCE; + } + + public class Connector { + method public final androidx.compose.ui.graphics.colorspace.ColorSpace getDestination(); + method public final int getRenderIntent(); + method public final androidx.compose.ui.graphics.colorspace.ColorSpace getSource(); + method @Size(3L) public final float[] transform(float r, float g, float b); + method @Size(min=3L) public float[] transform(@Size(min=3L) float[] v); + property public final androidx.compose.ui.graphics.colorspace.ColorSpace destination; + property public final int renderIntent; + property public final androidx.compose.ui.graphics.colorspace.ColorSpace source; + } + + public final class Illuminant { + method public androidx.compose.ui.graphics.colorspace.WhitePoint getA(); + method public androidx.compose.ui.graphics.colorspace.WhitePoint getB(); + method public androidx.compose.ui.graphics.colorspace.WhitePoint getC(); + method public androidx.compose.ui.graphics.colorspace.WhitePoint getD50(); + method public androidx.compose.ui.graphics.colorspace.WhitePoint getD55(); + method public androidx.compose.ui.graphics.colorspace.WhitePoint getD60(); + method public androidx.compose.ui.graphics.colorspace.WhitePoint getD65(); + method public androidx.compose.ui.graphics.colorspace.WhitePoint getD75(); + method public androidx.compose.ui.graphics.colorspace.WhitePoint getE(); + property public final androidx.compose.ui.graphics.colorspace.WhitePoint A; + property public final androidx.compose.ui.graphics.colorspace.WhitePoint B; + property public final androidx.compose.ui.graphics.colorspace.WhitePoint C; + property public final androidx.compose.ui.graphics.colorspace.WhitePoint D50; + property public final androidx.compose.ui.graphics.colorspace.WhitePoint D55; + property public final androidx.compose.ui.graphics.colorspace.WhitePoint D60; + property public final androidx.compose.ui.graphics.colorspace.WhitePoint D65; + property public final androidx.compose.ui.graphics.colorspace.WhitePoint D75; + property public final androidx.compose.ui.graphics.colorspace.WhitePoint E; + field public static final androidx.compose.ui.graphics.colorspace.Illuminant INSTANCE; + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class RenderIntent { + field public static final androidx.compose.ui.graphics.colorspace.RenderIntent.Companion Companion; + } + + public static final class RenderIntent.Companion { + method public int getAbsolute(); + method public int getPerceptual(); + method public int getRelative(); + method public int getSaturation(); + property public final int Absolute; + property public final int Perceptual; + property public final int Relative; + property public final int Saturation; + } + + public final class Rgb extends androidx.compose.ui.graphics.colorspace.ColorSpace { + ctor public Rgb(@Size(min=1L) String name, @Size(9L) float[] toXYZ, androidx.compose.ui.graphics.colorspace.TransferParameters function); + ctor public Rgb(@Size(min=1L) String name, @Size(min=6L, max=9L) float[] primaries, androidx.compose.ui.graphics.colorspace.WhitePoint whitePoint, androidx.compose.ui.graphics.colorspace.TransferParameters function); + ctor public Rgb(@Size(min=1L) String name, @Size(min=6L, max=9L) float[] primaries, androidx.compose.ui.graphics.colorspace.WhitePoint whitePoint, double gamma); + ctor public Rgb(@Size(min=1L) String name, @Size(min=6L, max=9L) float[] primaries, androidx.compose.ui.graphics.colorspace.WhitePoint whitePoint, kotlin.jvm.functions.Function1 oetf, kotlin.jvm.functions.Function1 eotf, float min, float max); + ctor public Rgb(@Size(min=1L) String name, @Size(9L) float[] toXYZ, double gamma); + ctor public Rgb(@Size(min=1L) String name, @Size(9L) float[] toXYZ, kotlin.jvm.functions.Function1 oetf, kotlin.jvm.functions.Function1 eotf); + method @Size(3L) public float[] fromLinear(float r, float g, float b); + method @Size(min=3L) public float[] fromLinear(@Size(min=3L) float[] v); + method public float[] fromXyz(float[] v); + method public kotlin.jvm.functions.Function1 getEotf(); + method @Size(9L) public float[] getInverseTransform(); + method @Size(min=9L) public float[] getInverseTransform(@Size(min=9L) float[] inverseTransform); + method public float getMaxValue(int component); + method public float getMinValue(int component); + method public kotlin.jvm.functions.Function1 getOetf(); + method @Size(6L) public float[] getPrimaries(); + method @Size(min=6L) public float[] getPrimaries(@Size(min=6L) float[] primaries); + method public androidx.compose.ui.graphics.colorspace.TransferParameters? getTransferParameters(); + method @Size(9L) public float[] getTransform(); + method @Size(min=9L) public float[] getTransform(@Size(min=9L) float[] transform); + method public androidx.compose.ui.graphics.colorspace.WhitePoint getWhitePoint(); + method public boolean isWideGamut(); + method @Size(3L) public float[] toLinear(float r, float g, float b); + method @Size(min=3L) public float[] toLinear(@Size(min=3L) float[] v); + method public float[] toXyz(float[] v); + property public final kotlin.jvm.functions.Function1 eotf; + property public boolean isSrgb; + property public boolean isWideGamut; + property public final kotlin.jvm.functions.Function1 oetf; + property public final androidx.compose.ui.graphics.colorspace.TransferParameters? transferParameters; + property public final androidx.compose.ui.graphics.colorspace.WhitePoint whitePoint; + } + + public final class TransferParameters { + ctor public TransferParameters(double gamma, double a, double b, double c, double d, optional double e, optional double f); + method public double component1(); + method public double component2(); + method public double component3(); + method public double component4(); + method public double component5(); + method public double component6(); + method public double component7(); + method public androidx.compose.ui.graphics.colorspace.TransferParameters copy(double gamma, double a, double b, double c, double d, double e, double f); + method public double getA(); + method public double getB(); + method public double getC(); + method public double getD(); + method public double getE(); + method public double getF(); + method public double getGamma(); + property public final double a; + property public final double b; + property public final double c; + property public final double d; + property public final double e; + property public final double f; + property public final double gamma; + } + + public final class WhitePoint { + ctor public WhitePoint(float x, float y); + ctor public WhitePoint(float x, float y, float z); + method public float component1(); + method public float component2(); + method public androidx.compose.ui.graphics.colorspace.WhitePoint copy(float x, float y); + method public float getX(); + method public float getY(); + property public final float x; + property public final float y; + } + +} + +package androidx.compose.ui.graphics.drawscope { + + public final class CanvasDrawScope implements androidx.compose.ui.graphics.drawscope.DrawScope { + ctor public CanvasDrawScope(); + method public inline void draw(androidx.compose.ui.unit.Density density, androidx.compose.ui.unit.LayoutDirection layoutDirection, androidx.compose.ui.graphics.Canvas canvas, long size, kotlin.jvm.functions.Function1 block); + method public void drawArc(androidx.compose.ui.graphics.Brush brush, float startAngle, float sweepAngle, boolean useCenter, long topLeft, long size, @FloatRange(from=0.0, to=1.0) float alpha, androidx.compose.ui.graphics.drawscope.DrawStyle style, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode); + method public void drawArc(long color, float startAngle, float sweepAngle, boolean useCenter, long topLeft, long size, @FloatRange(from=0.0, to=1.0) float alpha, androidx.compose.ui.graphics.drawscope.DrawStyle style, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode); + method public void drawCircle(androidx.compose.ui.graphics.Brush brush, float radius, long center, @FloatRange(from=0.0, to=1.0) float alpha, androidx.compose.ui.graphics.drawscope.DrawStyle style, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode); + method public void drawCircle(long color, float radius, long center, @FloatRange(from=0.0, to=1.0) float alpha, androidx.compose.ui.graphics.drawscope.DrawStyle style, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode); + method public void drawImage(androidx.compose.ui.graphics.ImageBitmap image, long topLeft, @FloatRange(from=0.0, to=1.0) float alpha, androidx.compose.ui.graphics.drawscope.DrawStyle style, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode); + method @Deprecated public void drawImage(androidx.compose.ui.graphics.ImageBitmap image, long srcOffset, long srcSize, long dstOffset, long dstSize, @FloatRange(from=0.0, to=1.0) float alpha, androidx.compose.ui.graphics.drawscope.DrawStyle style, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode); + method public void drawLine(androidx.compose.ui.graphics.Brush brush, long start, long end, float strokeWidth, int cap, androidx.compose.ui.graphics.PathEffect? pathEffect, @FloatRange(from=0.0, to=1.0) float alpha, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode); + method public void drawLine(long color, long start, long end, float strokeWidth, int cap, androidx.compose.ui.graphics.PathEffect? pathEffect, @FloatRange(from=0.0, to=1.0) float alpha, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode); + method public void drawOval(androidx.compose.ui.graphics.Brush brush, long topLeft, long size, @FloatRange(from=0.0, to=1.0) float alpha, androidx.compose.ui.graphics.drawscope.DrawStyle style, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode); + method public void drawOval(long color, long topLeft, long size, @FloatRange(from=0.0, to=1.0) float alpha, androidx.compose.ui.graphics.drawscope.DrawStyle style, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode); + method public void drawPath(androidx.compose.ui.graphics.Path path, androidx.compose.ui.graphics.Brush brush, @FloatRange(from=0.0, to=1.0) float alpha, androidx.compose.ui.graphics.drawscope.DrawStyle style, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode); + method public void drawPath(androidx.compose.ui.graphics.Path path, long color, @FloatRange(from=0.0, to=1.0) float alpha, androidx.compose.ui.graphics.drawscope.DrawStyle style, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode); + method public void drawPoints(java.util.List points, int pointMode, androidx.compose.ui.graphics.Brush brush, float strokeWidth, int cap, androidx.compose.ui.graphics.PathEffect? pathEffect, @FloatRange(from=0.0, to=1.0) float alpha, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode); + method public void drawPoints(java.util.List points, int pointMode, long color, float strokeWidth, int cap, androidx.compose.ui.graphics.PathEffect? pathEffect, @FloatRange(from=0.0, to=1.0) float alpha, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode); + method public void drawRect(androidx.compose.ui.graphics.Brush brush, long topLeft, long size, @FloatRange(from=0.0, to=1.0) float alpha, androidx.compose.ui.graphics.drawscope.DrawStyle style, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode); + method public void drawRect(long color, long topLeft, long size, @FloatRange(from=0.0, to=1.0) float alpha, androidx.compose.ui.graphics.drawscope.DrawStyle style, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode); + method public void drawRoundRect(androidx.compose.ui.graphics.Brush brush, long topLeft, long size, long cornerRadius, @FloatRange(from=0.0, to=1.0) float alpha, androidx.compose.ui.graphics.drawscope.DrawStyle style, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode); + method public void drawRoundRect(long color, long topLeft, long size, long cornerRadius, androidx.compose.ui.graphics.drawscope.DrawStyle style, @FloatRange(from=0.0, to=1.0) float alpha, androidx.compose.ui.graphics.ColorFilter? colorFilter, int blendMode); + method public float getDensity(); + method public androidx.compose.ui.graphics.drawscope.DrawContext getDrawContext(); + method public float getFontScale(); + method public androidx.compose.ui.unit.LayoutDirection getLayoutDirection(); + property public float density; + property public androidx.compose.ui.graphics.drawscope.DrawContext drawContext; + property public float fontScale; + property public androidx.compose.ui.unit.LayoutDirection layoutDirection; + field @kotlin.PublishedApi internal final androidx.compose.ui.graphics.drawscope.CanvasDrawScope.DrawParams drawParams; + } + + @kotlin.PublishedApi internal static final class CanvasDrawScope.DrawParams { + ctor public CanvasDrawScope.DrawParams(optional androidx.compose.ui.unit.Density density, optional androidx.compose.ui.unit.LayoutDirection layoutDirection, optional androidx.compose.ui.graphics.Canvas canvas, optional long size); + method public androidx.compose.ui.unit.Density component1(); + method public androidx.compose.ui.unit.LayoutDirection component2(); + method public androidx.compose.ui.graphics.Canvas component3(); + method public long component4-NH-jbRc(); + method internal boolean equals(Object? other); + method public androidx.compose.ui.graphics.Canvas getCanvas(); + method public androidx.compose.ui.unit.Density getDensity(); + method public androidx.compose.ui.unit.LayoutDirection getLayoutDirection(); + method public long getSize(); + method internal int hashCode(); + method public void setCanvas(androidx.compose.ui.graphics.Canvas); + method public void setDensity(androidx.compose.ui.unit.Density); + method public void setLayoutDirection(androidx.compose.ui.unit.LayoutDirection); + method public void setSize(long); + method internal String toString(); + property public final androidx.compose.ui.graphics.Canvas canvas; + property public final androidx.compose.ui.unit.Density density; + property public final androidx.compose.ui.unit.LayoutDirection layoutDirection; + property public final long size; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface ContentDrawScope extends androidx.compose.ui.graphics.drawscope.DrawScope { + method public void drawContent(); + } + + public interface DrawContext { + method public default androidx.compose.ui.graphics.Canvas getCanvas(); + method public default androidx.compose.ui.unit.Density getDensity(); + method public default androidx.compose.ui.graphics.layer.GraphicsLayer? getGraphicsLayer(); + method public default androidx.compose.ui.unit.LayoutDirection getLayoutDirection(); + method public long getSize(); + method public androidx.compose.ui.graphics.drawscope.DrawTransform getTransform(); + method public default void setCanvas(androidx.compose.ui.graphics.Canvas); + method public default void setDensity(androidx.compose.ui.unit.Density); + method public default void setGraphicsLayer(androidx.compose.ui.graphics.layer.GraphicsLayer?); + method public default void setLayoutDirection(androidx.compose.ui.unit.LayoutDirection); + method public void setSize(long); + property public default androidx.compose.ui.graphics.Canvas canvas; + property public default androidx.compose.ui.unit.Density density; + property public default androidx.compose.ui.graphics.layer.GraphicsLayer? graphicsLayer; + property public default androidx.compose.ui.unit.LayoutDirection layoutDirection; + property public abstract long size; + property public abstract androidx.compose.ui.graphics.drawscope.DrawTransform transform; + } + + @androidx.compose.ui.graphics.drawscope.DrawScopeMarker @kotlin.jvm.JvmDefaultWithCompatibility public interface DrawScope extends androidx.compose.ui.unit.Density { + method public void drawArc(androidx.compose.ui.graphics.Brush brush, float startAngle, float sweepAngle, boolean useCenter, optional long topLeft, optional long size, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + method public void drawArc(long color, float startAngle, float sweepAngle, boolean useCenter, optional long topLeft, optional long size, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + method public void drawCircle(androidx.compose.ui.graphics.Brush brush, optional float radius, optional long center, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + method public void drawCircle(long color, optional float radius, optional long center, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + method public void drawImage(androidx.compose.ui.graphics.ImageBitmap image, optional long topLeft, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + method @Deprecated public void drawImage(androidx.compose.ui.graphics.ImageBitmap image, optional long srcOffset, optional long srcSize, optional long dstOffset, optional long dstSize, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + method public default void drawImage(androidx.compose.ui.graphics.ImageBitmap image, optional long srcOffset, optional long srcSize, optional long dstOffset, optional long dstSize, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode, optional int filterQuality); + method public void drawLine(androidx.compose.ui.graphics.Brush brush, long start, long end, optional float strokeWidth, optional int cap, optional androidx.compose.ui.graphics.PathEffect? pathEffect, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + method public void drawLine(long color, long start, long end, optional float strokeWidth, optional int cap, optional androidx.compose.ui.graphics.PathEffect? pathEffect, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + method public void drawOval(androidx.compose.ui.graphics.Brush brush, optional long topLeft, optional long size, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + method public void drawOval(long color, optional long topLeft, optional long size, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + method public void drawPath(androidx.compose.ui.graphics.Path path, androidx.compose.ui.graphics.Brush brush, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + method public void drawPath(androidx.compose.ui.graphics.Path path, long color, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + method public void drawPoints(java.util.List points, int pointMode, androidx.compose.ui.graphics.Brush brush, optional float strokeWidth, optional int cap, optional androidx.compose.ui.graphics.PathEffect? pathEffect, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + method public void drawPoints(java.util.List points, int pointMode, long color, optional float strokeWidth, optional int cap, optional androidx.compose.ui.graphics.PathEffect? pathEffect, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + method public void drawRect(androidx.compose.ui.graphics.Brush brush, optional long topLeft, optional long size, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + method public void drawRect(long color, optional long topLeft, optional long size, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + method public void drawRoundRect(androidx.compose.ui.graphics.Brush brush, optional long topLeft, optional long size, optional long cornerRadius, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + method public void drawRoundRect(long color, optional long topLeft, optional long size, optional long cornerRadius, optional androidx.compose.ui.graphics.drawscope.DrawStyle style, optional @FloatRange(from=0.0, to=1.0) float alpha, optional androidx.compose.ui.graphics.ColorFilter? colorFilter, optional int blendMode); + method public default long getCenter(); + method public androidx.compose.ui.graphics.drawscope.DrawContext getDrawContext(); + method public androidx.compose.ui.unit.LayoutDirection getLayoutDirection(); + method public default long getSize(); + method public default void record(androidx.compose.ui.graphics.layer.GraphicsLayer, optional long size, kotlin.jvm.functions.Function1 block); + property public default long center; + property public abstract androidx.compose.ui.graphics.drawscope.DrawContext drawContext; + property public abstract androidx.compose.ui.unit.LayoutDirection layoutDirection; + property public default long size; + field public static final androidx.compose.ui.graphics.drawscope.DrawScope.Companion Companion; + } + + public static final class DrawScope.Companion { + method public int getDefaultBlendMode(); + method public int getDefaultFilterQuality(); + property public final int DefaultBlendMode; + property public final int DefaultFilterQuality; + } + + public final class DrawScopeKt { + method public static inline void clipPath(androidx.compose.ui.graphics.drawscope.DrawScope, androidx.compose.ui.graphics.Path path, optional int clipOp, kotlin.jvm.functions.Function1 block); + method public static inline void clipRect(androidx.compose.ui.graphics.drawscope.DrawScope, optional float left, optional float top, optional float right, optional float bottom, optional int clipOp, kotlin.jvm.functions.Function1 block); + method public static inline void draw(androidx.compose.ui.graphics.drawscope.DrawScope, androidx.compose.ui.unit.Density density, androidx.compose.ui.unit.LayoutDirection layoutDirection, androidx.compose.ui.graphics.Canvas canvas, long size, optional androidx.compose.ui.graphics.layer.GraphicsLayer? graphicsLayer, kotlin.jvm.functions.Function1 block); + method @Deprecated public static inline void draw(androidx.compose.ui.graphics.drawscope.DrawScope, androidx.compose.ui.unit.Density density, androidx.compose.ui.unit.LayoutDirection layoutDirection, androidx.compose.ui.graphics.Canvas canvas, long size, kotlin.jvm.functions.Function1 block); + method public static inline void drawIntoCanvas(androidx.compose.ui.graphics.drawscope.DrawScope, kotlin.jvm.functions.Function1 block); + method public static inline void inset(androidx.compose.ui.graphics.drawscope.DrawScope, float left, float top, float right, float bottom, kotlin.jvm.functions.Function1 block); + method public static inline void inset(androidx.compose.ui.graphics.drawscope.DrawScope, optional float horizontal, optional float vertical, kotlin.jvm.functions.Function1 block); + method public static inline void inset(androidx.compose.ui.graphics.drawscope.DrawScope, float inset, kotlin.jvm.functions.Function1 block); + method public static inline void rotate(androidx.compose.ui.graphics.drawscope.DrawScope, float degrees, optional long pivot, kotlin.jvm.functions.Function1 block); + method public static inline void rotateRad(androidx.compose.ui.graphics.drawscope.DrawScope, float radians, optional long pivot, kotlin.jvm.functions.Function1 block); + method public static inline void scale(androidx.compose.ui.graphics.drawscope.DrawScope, float scaleX, float scaleY, optional long pivot, kotlin.jvm.functions.Function1 block); + method public static inline void scale(androidx.compose.ui.graphics.drawscope.DrawScope, float scale, optional long pivot, kotlin.jvm.functions.Function1 block); + method public static inline void translate(androidx.compose.ui.graphics.drawscope.DrawScope, optional float left, optional float top, kotlin.jvm.functions.Function1 block); + method public static inline void withTransform(androidx.compose.ui.graphics.drawscope.DrawScope, kotlin.jvm.functions.Function1 transformBlock, kotlin.jvm.functions.Function1 drawBlock); + } + + @kotlin.DslMarker public @interface DrawScopeMarker { + } + + public abstract sealed class DrawStyle { + } + + @androidx.compose.ui.graphics.drawscope.DrawScopeMarker @kotlin.jvm.JvmDefaultWithCompatibility public interface DrawTransform { + method public void clipPath(androidx.compose.ui.graphics.Path path, optional int clipOp); + method public void clipRect(optional float left, optional float top, optional float right, optional float bottom, optional int clipOp); + method public default long getCenter(); + method public long getSize(); + method public void inset(float left, float top, float right, float bottom); + method public void rotate(float degrees, optional long pivot); + method public void scale(float scaleX, float scaleY, optional long pivot); + method public void transform(float[] matrix); + method public void translate(optional float left, optional float top); + property public default long center; + property public abstract long size; + } + + public final class DrawTransformKt { + method public static inline void inset(androidx.compose.ui.graphics.drawscope.DrawTransform, float inset); + method public static inline void inset(androidx.compose.ui.graphics.drawscope.DrawTransform, optional float horizontal, optional float vertical); + method public static inline void rotateRad(androidx.compose.ui.graphics.drawscope.DrawTransform, float radians, optional long pivot); + method public static inline void scale(androidx.compose.ui.graphics.drawscope.DrawTransform, float scale, optional long pivot); + } + + public final class Fill extends androidx.compose.ui.graphics.drawscope.DrawStyle { + field public static final androidx.compose.ui.graphics.drawscope.Fill INSTANCE; + } + + public final class Stroke extends androidx.compose.ui.graphics.drawscope.DrawStyle { + ctor public Stroke(optional float width, optional float miter, optional int cap, optional int join, optional androidx.compose.ui.graphics.PathEffect? pathEffect); + method public int getCap(); + method public int getJoin(); + method public float getMiter(); + method public androidx.compose.ui.graphics.PathEffect? getPathEffect(); + method public float getWidth(); + property public final int cap; + property public final int join; + property public final float miter; + property public final androidx.compose.ui.graphics.PathEffect? pathEffect; + property public final float width; + field public static final androidx.compose.ui.graphics.drawscope.Stroke.Companion Companion; + field public static final float DefaultMiter = 4.0f; + field public static final float HairlineWidth = 0.0f; + } + + public static final class Stroke.Companion { + method public int getDefaultCap(); + method public int getDefaultJoin(); + property public final int DefaultCap; + property public final int DefaultJoin; + } + +} + +package androidx.compose.ui.graphics.layer { + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class CompositingStrategy { + field public static final androidx.compose.ui.graphics.layer.CompositingStrategy.Companion Companion; + } + + public static final class CompositingStrategy.Companion { + method public int getAuto(); + method public int getModulateAlpha(); + method public int getOffscreen(); + property public final int Auto; + property public final int ModulateAlpha; + property public final int Offscreen; + } + + public final class GraphicsLayer { + method public float getAlpha(); + method public long getAmbientShadowColor(); + method public int getBlendMode(); + method public float getCameraDistance(); + method public boolean getClip(); + method public androidx.compose.ui.graphics.ColorFilter? getColorFilter(); + method public int getCompositingStrategy(); + method public long getLayerId(); + method public androidx.compose.ui.graphics.Outline getOutline(); + method public long getOwnerViewId(); + method public long getPivotOffset(); + method public androidx.compose.ui.graphics.RenderEffect? getRenderEffect(); + method public float getRotationX(); + method public float getRotationY(); + method public float getRotationZ(); + method public float getScaleX(); + method public float getScaleY(); + method public float getShadowElevation(); + method public long getSize(); + method public long getSpotShadowColor(); + method public long getTopLeft(); + method public float getTranslationX(); + method public float getTranslationY(); + method public boolean isReleased(); + method public void record(androidx.compose.ui.unit.Density density, androidx.compose.ui.unit.LayoutDirection layoutDirection, long size, kotlin.jvm.functions.Function1 block); + method public void setAlpha(float); + method public void setAmbientShadowColor(long); + method public void setBlendMode(int); + method public void setCameraDistance(float); + method public void setClip(boolean); + method public void setColorFilter(androidx.compose.ui.graphics.ColorFilter?); + method public void setCompositingStrategy(int); + method public void setPathOutline(androidx.compose.ui.graphics.Path path); + method public void setPivotOffset(long); + method public void setRectOutline(optional long topLeft, optional long size); + method public void setRenderEffect(androidx.compose.ui.graphics.RenderEffect?); + method public void setRotationX(float); + method public void setRotationY(float); + method public void setRotationZ(float); + method public void setRoundRectOutline(optional long topLeft, optional long size, optional float cornerRadius); + method public void setScaleX(float); + method public void setScaleY(float); + method public void setShadowElevation(float); + method public void setSpotShadowColor(long); + method public void setTopLeft(long); + method public void setTranslationX(float); + method public void setTranslationY(float); + method public suspend Object? toImageBitmap(kotlin.coroutines.Continuation); + property public final float alpha; + property public final long ambientShadowColor; + property public final int blendMode; + property public final float cameraDistance; + property public final boolean clip; + property public final androidx.compose.ui.graphics.ColorFilter? colorFilter; + property public final int compositingStrategy; + property public final boolean isReleased; + property public final long layerId; + property public final androidx.compose.ui.graphics.Outline outline; + property public final long ownerViewId; + property public final long pivotOffset; + property public final androidx.compose.ui.graphics.RenderEffect? renderEffect; + property public final float rotationX; + property public final float rotationY; + property public final float rotationZ; + property public final float scaleX; + property public final float scaleY; + property public final float shadowElevation; + property public final long size; + property public final long spotShadowColor; + property public final long topLeft; + property public final float translationX; + property public final float translationY; + field public static final androidx.compose.ui.graphics.layer.GraphicsLayer.Companion Companion; + } + + public static final class GraphicsLayer.Companion { + } + + public final class GraphicsLayerKt { + method public static void drawLayer(androidx.compose.ui.graphics.drawscope.DrawScope, androidx.compose.ui.graphics.layer.GraphicsLayer graphicsLayer); + method public static void setOutline(androidx.compose.ui.graphics.layer.GraphicsLayer, androidx.compose.ui.graphics.Outline outline); + field public static final float DefaultCameraDistance = 8.0f; + } + +} + +package androidx.compose.ui.graphics.painter { + + public final class BitmapPainter extends androidx.compose.ui.graphics.painter.Painter { + ctor public BitmapPainter(androidx.compose.ui.graphics.ImageBitmap image, optional long srcOffset, optional long srcSize); + method public long getIntrinsicSize(); + method protected void onDraw(androidx.compose.ui.graphics.drawscope.DrawScope); + property public long intrinsicSize; + } + + public final class BitmapPainterKt { + method public static androidx.compose.ui.graphics.painter.BitmapPainter BitmapPainter(androidx.compose.ui.graphics.ImageBitmap image, optional long srcOffset, optional long srcSize, optional int filterQuality); + } + + public final class BrushPainter extends androidx.compose.ui.graphics.painter.Painter { + ctor public BrushPainter(androidx.compose.ui.graphics.Brush brush); + method public androidx.compose.ui.graphics.Brush getBrush(); + method public long getIntrinsicSize(); + method protected void onDraw(androidx.compose.ui.graphics.drawscope.DrawScope); + property public final androidx.compose.ui.graphics.Brush brush; + property public long intrinsicSize; + } + + public final class ColorPainter extends androidx.compose.ui.graphics.painter.Painter { + ctor public ColorPainter(long color); + method public long getColor(); + method public long getIntrinsicSize(); + method protected void onDraw(androidx.compose.ui.graphics.drawscope.DrawScope); + property public final long color; + property public long intrinsicSize; + } + + public abstract class Painter { + ctor public Painter(); + method protected boolean applyAlpha(float alpha); + method protected boolean applyColorFilter(androidx.compose.ui.graphics.ColorFilter? colorFilter); + method protected boolean applyLayoutDirection(androidx.compose.ui.unit.LayoutDirection layoutDirection); + method public final void draw(androidx.compose.ui.graphics.drawscope.DrawScope, long size, optional float alpha, optional androidx.compose.ui.graphics.ColorFilter? colorFilter); + method public abstract long getIntrinsicSize(); + method protected abstract void onDraw(androidx.compose.ui.graphics.drawscope.DrawScope); + property public abstract long intrinsicSize; + } + +} + +package androidx.compose.ui.graphics.vector { + + public final class PathBuilder { + ctor public PathBuilder(); + method public androidx.compose.ui.graphics.vector.PathBuilder arcTo(float horizontalEllipseRadius, float verticalEllipseRadius, float theta, boolean isMoreThanHalf, boolean isPositiveArc, float x1, float y1); + method public androidx.compose.ui.graphics.vector.PathBuilder arcToRelative(float a, float b, float theta, boolean isMoreThanHalf, boolean isPositiveArc, float dx1, float dy1); + method public androidx.compose.ui.graphics.vector.PathBuilder close(); + method public androidx.compose.ui.graphics.vector.PathBuilder curveTo(float x1, float y1, float x2, float y2, float x3, float y3); + method public androidx.compose.ui.graphics.vector.PathBuilder curveToRelative(float dx1, float dy1, float dx2, float dy2, float dx3, float dy3); + method public java.util.List getNodes(); + method public androidx.compose.ui.graphics.vector.PathBuilder horizontalLineTo(float x); + method public androidx.compose.ui.graphics.vector.PathBuilder horizontalLineToRelative(float dx); + method public androidx.compose.ui.graphics.vector.PathBuilder lineTo(float x, float y); + method public androidx.compose.ui.graphics.vector.PathBuilder lineToRelative(float dx, float dy); + method public androidx.compose.ui.graphics.vector.PathBuilder moveTo(float x, float y); + method public androidx.compose.ui.graphics.vector.PathBuilder moveToRelative(float dx, float dy); + method public androidx.compose.ui.graphics.vector.PathBuilder quadTo(float x1, float y1, float x2, float y2); + method public androidx.compose.ui.graphics.vector.PathBuilder quadToRelative(float dx1, float dy1, float dx2, float dy2); + method public androidx.compose.ui.graphics.vector.PathBuilder reflectiveCurveTo(float x1, float y1, float x2, float y2); + method public androidx.compose.ui.graphics.vector.PathBuilder reflectiveCurveToRelative(float dx1, float dy1, float dx2, float dy2); + method public androidx.compose.ui.graphics.vector.PathBuilder reflectiveQuadTo(float x1, float y1); + method public androidx.compose.ui.graphics.vector.PathBuilder reflectiveQuadToRelative(float dx1, float dy1); + method public androidx.compose.ui.graphics.vector.PathBuilder verticalLineTo(float y); + method public androidx.compose.ui.graphics.vector.PathBuilder verticalLineToRelative(float dy); + property public final java.util.List nodes; + } + + @androidx.compose.runtime.Immutable public abstract sealed class PathNode { + method public final boolean isCurve(); + method public final boolean isQuad(); + property public final boolean isCurve; + property public final boolean isQuad; + } + + @androidx.compose.runtime.Immutable public static final class PathNode.ArcTo extends androidx.compose.ui.graphics.vector.PathNode { + ctor public PathNode.ArcTo(float horizontalEllipseRadius, float verticalEllipseRadius, float theta, boolean isMoreThanHalf, boolean isPositiveArc, float arcStartX, float arcStartY); + method public float component1(); + method public float component2(); + method public float component3(); + method public boolean component4(); + method public boolean component5(); + method public float component6(); + method public float component7(); + method public androidx.compose.ui.graphics.vector.PathNode.ArcTo copy(float horizontalEllipseRadius, float verticalEllipseRadius, float theta, boolean isMoreThanHalf, boolean isPositiveArc, float arcStartX, float arcStartY); + method public float getArcStartX(); + method public float getArcStartY(); + method public float getHorizontalEllipseRadius(); + method public float getTheta(); + method public float getVerticalEllipseRadius(); + method public boolean isMoreThanHalf(); + method public boolean isPositiveArc(); + property public final float arcStartX; + property public final float arcStartY; + property public final float horizontalEllipseRadius; + property public final boolean isMoreThanHalf; + property public final boolean isPositiveArc; + property public final float theta; + property public final float verticalEllipseRadius; + } + + @androidx.compose.runtime.Immutable public static final class PathNode.Close extends androidx.compose.ui.graphics.vector.PathNode { + field public static final androidx.compose.ui.graphics.vector.PathNode.Close INSTANCE; + } + + @androidx.compose.runtime.Immutable public static final class PathNode.CurveTo extends androidx.compose.ui.graphics.vector.PathNode { + ctor public PathNode.CurveTo(float x1, float y1, float x2, float y2, float x3, float y3); + method public float component1(); + method public float component2(); + method public float component3(); + method public float component4(); + method public float component5(); + method public float component6(); + method public androidx.compose.ui.graphics.vector.PathNode.CurveTo copy(float x1, float y1, float x2, float y2, float x3, float y3); + method public float getX1(); + method public float getX2(); + method public float getX3(); + method public float getY1(); + method public float getY2(); + method public float getY3(); + property public final float x1; + property public final float x2; + property public final float x3; + property public final float y1; + property public final float y2; + property public final float y3; + } + + @androidx.compose.runtime.Immutable public static final class PathNode.HorizontalTo extends androidx.compose.ui.graphics.vector.PathNode { + ctor public PathNode.HorizontalTo(float x); + method public float component1(); + method public androidx.compose.ui.graphics.vector.PathNode.HorizontalTo copy(float x); + method public float getX(); + property public final float x; + } + + @androidx.compose.runtime.Immutable public static final class PathNode.LineTo extends androidx.compose.ui.graphics.vector.PathNode { + ctor public PathNode.LineTo(float x, float y); + method public float component1(); + method public float component2(); + method public androidx.compose.ui.graphics.vector.PathNode.LineTo copy(float x, float y); + method public float getX(); + method public float getY(); + property public final float x; + property public final float y; + } + + @androidx.compose.runtime.Immutable public static final class PathNode.MoveTo extends androidx.compose.ui.graphics.vector.PathNode { + ctor public PathNode.MoveTo(float x, float y); + method public float component1(); + method public float component2(); + method public androidx.compose.ui.graphics.vector.PathNode.MoveTo copy(float x, float y); + method public float getX(); + method public float getY(); + property public final float x; + property public final float y; + } + + @androidx.compose.runtime.Immutable public static final class PathNode.QuadTo extends androidx.compose.ui.graphics.vector.PathNode { + ctor public PathNode.QuadTo(float x1, float y1, float x2, float y2); + method public float component1(); + method public float component2(); + method public float component3(); + method public float component4(); + method public androidx.compose.ui.graphics.vector.PathNode.QuadTo copy(float x1, float y1, float x2, float y2); + method public float getX1(); + method public float getX2(); + method public float getY1(); + method public float getY2(); + property public final float x1; + property public final float x2; + property public final float y1; + property public final float y2; + } + + @androidx.compose.runtime.Immutable public static final class PathNode.ReflectiveCurveTo extends androidx.compose.ui.graphics.vector.PathNode { + ctor public PathNode.ReflectiveCurveTo(float x1, float y1, float x2, float y2); + method public float component1(); + method public float component2(); + method public float component3(); + method public float component4(); + method public androidx.compose.ui.graphics.vector.PathNode.ReflectiveCurveTo copy(float x1, float y1, float x2, float y2); + method public float getX1(); + method public float getX2(); + method public float getY1(); + method public float getY2(); + property public final float x1; + property public final float x2; + property public final float y1; + property public final float y2; + } + + @androidx.compose.runtime.Immutable public static final class PathNode.ReflectiveQuadTo extends androidx.compose.ui.graphics.vector.PathNode { + ctor public PathNode.ReflectiveQuadTo(float x, float y); + method public float component1(); + method public float component2(); + method public androidx.compose.ui.graphics.vector.PathNode.ReflectiveQuadTo copy(float x, float y); + method public float getX(); + method public float getY(); + property public final float x; + property public final float y; + } + + @androidx.compose.runtime.Immutable public static final class PathNode.RelativeArcTo extends androidx.compose.ui.graphics.vector.PathNode { + ctor public PathNode.RelativeArcTo(float horizontalEllipseRadius, float verticalEllipseRadius, float theta, boolean isMoreThanHalf, boolean isPositiveArc, float arcStartDx, float arcStartDy); + method public float component1(); + method public float component2(); + method public float component3(); + method public boolean component4(); + method public boolean component5(); + method public float component6(); + method public float component7(); + method public androidx.compose.ui.graphics.vector.PathNode.RelativeArcTo copy(float horizontalEllipseRadius, float verticalEllipseRadius, float theta, boolean isMoreThanHalf, boolean isPositiveArc, float arcStartDx, float arcStartDy); + method public float getArcStartDx(); + method public float getArcStartDy(); + method public float getHorizontalEllipseRadius(); + method public float getTheta(); + method public float getVerticalEllipseRadius(); + method public boolean isMoreThanHalf(); + method public boolean isPositiveArc(); + property public final float arcStartDx; + property public final float arcStartDy; + property public final float horizontalEllipseRadius; + property public final boolean isMoreThanHalf; + property public final boolean isPositiveArc; + property public final float theta; + property public final float verticalEllipseRadius; + } + + @androidx.compose.runtime.Immutable public static final class PathNode.RelativeCurveTo extends androidx.compose.ui.graphics.vector.PathNode { + ctor public PathNode.RelativeCurveTo(float dx1, float dy1, float dx2, float dy2, float dx3, float dy3); + method public float component1(); + method public float component2(); + method public float component3(); + method public float component4(); + method public float component5(); + method public float component6(); + method public androidx.compose.ui.graphics.vector.PathNode.RelativeCurveTo copy(float dx1, float dy1, float dx2, float dy2, float dx3, float dy3); + method public float getDx1(); + method public float getDx2(); + method public float getDx3(); + method public float getDy1(); + method public float getDy2(); + method public float getDy3(); + property public final float dx1; + property public final float dx2; + property public final float dx3; + property public final float dy1; + property public final float dy2; + property public final float dy3; + } + + @androidx.compose.runtime.Immutable public static final class PathNode.RelativeHorizontalTo extends androidx.compose.ui.graphics.vector.PathNode { + ctor public PathNode.RelativeHorizontalTo(float dx); + method public float component1(); + method public androidx.compose.ui.graphics.vector.PathNode.RelativeHorizontalTo copy(float dx); + method public float getDx(); + property public final float dx; + } + + @androidx.compose.runtime.Immutable public static final class PathNode.RelativeLineTo extends androidx.compose.ui.graphics.vector.PathNode { + ctor public PathNode.RelativeLineTo(float dx, float dy); + method public float component1(); + method public float component2(); + method public androidx.compose.ui.graphics.vector.PathNode.RelativeLineTo copy(float dx, float dy); + method public float getDx(); + method public float getDy(); + property public final float dx; + property public final float dy; + } + + @androidx.compose.runtime.Immutable public static final class PathNode.RelativeMoveTo extends androidx.compose.ui.graphics.vector.PathNode { + ctor public PathNode.RelativeMoveTo(float dx, float dy); + method public float component1(); + method public float component2(); + method public androidx.compose.ui.graphics.vector.PathNode.RelativeMoveTo copy(float dx, float dy); + method public float getDx(); + method public float getDy(); + property public final float dx; + property public final float dy; + } + + @androidx.compose.runtime.Immutable public static final class PathNode.RelativeQuadTo extends androidx.compose.ui.graphics.vector.PathNode { + ctor public PathNode.RelativeQuadTo(float dx1, float dy1, float dx2, float dy2); + method public float component1(); + method public float component2(); + method public float component3(); + method public float component4(); + method public androidx.compose.ui.graphics.vector.PathNode.RelativeQuadTo copy(float dx1, float dy1, float dx2, float dy2); + method public float getDx1(); + method public float getDx2(); + method public float getDy1(); + method public float getDy2(); + property public final float dx1; + property public final float dx2; + property public final float dy1; + property public final float dy2; + } + + @androidx.compose.runtime.Immutable public static final class PathNode.RelativeReflectiveCurveTo extends androidx.compose.ui.graphics.vector.PathNode { + ctor public PathNode.RelativeReflectiveCurveTo(float dx1, float dy1, float dx2, float dy2); + method public float component1(); + method public float component2(); + method public float component3(); + method public float component4(); + method public androidx.compose.ui.graphics.vector.PathNode.RelativeReflectiveCurveTo copy(float dx1, float dy1, float dx2, float dy2); + method public float getDx1(); + method public float getDx2(); + method public float getDy1(); + method public float getDy2(); + property public final float dx1; + property public final float dx2; + property public final float dy1; + property public final float dy2; + } + + @androidx.compose.runtime.Immutable public static final class PathNode.RelativeReflectiveQuadTo extends androidx.compose.ui.graphics.vector.PathNode { + ctor public PathNode.RelativeReflectiveQuadTo(float dx, float dy); + method public float component1(); + method public float component2(); + method public androidx.compose.ui.graphics.vector.PathNode.RelativeReflectiveQuadTo copy(float dx, float dy); + method public float getDx(); + method public float getDy(); + property public final float dx; + property public final float dy; + } + + @androidx.compose.runtime.Immutable public static final class PathNode.RelativeVerticalTo extends androidx.compose.ui.graphics.vector.PathNode { + ctor public PathNode.RelativeVerticalTo(float dy); + method public float component1(); + method public androidx.compose.ui.graphics.vector.PathNode.RelativeVerticalTo copy(float dy); + method public float getDy(); + property public final float dy; + } + + @androidx.compose.runtime.Immutable public static final class PathNode.VerticalTo extends androidx.compose.ui.graphics.vector.PathNode { + ctor public PathNode.VerticalTo(float y); + method public float component1(); + method public androidx.compose.ui.graphics.vector.PathNode.VerticalTo copy(float y); + method public float getY(); + property public final float y; + } + + public final class PathParser { + ctor public PathParser(); + method public androidx.compose.ui.graphics.vector.PathParser addPathNodes(java.util.List nodes); + method public void clear(); + method public androidx.compose.ui.graphics.vector.PathParser parsePathString(String pathData); + method public java.util.ArrayList pathStringToNodes(String pathData, optional java.util.ArrayList nodes); + method public java.util.List toNodes(); + method public androidx.compose.ui.graphics.Path toPath(optional androidx.compose.ui.graphics.Path target); + } + + public final class PathParserKt { + method public static androidx.compose.ui.graphics.Path toPath(java.util.List, optional androidx.compose.ui.graphics.Path target); + } + +} + diff --git a/compose/ui/ui-inspection/src/main/java/androidx/compose/ui/inspection/compose/AndroidComposeViewWrapper.kt b/compose/ui/ui-inspection/src/main/java/androidx/compose/ui/inspection/compose/AndroidComposeViewWrapper.kt index a1a2615b55b91..c464ade9d8d08 100644 --- a/compose/ui/ui-inspection/src/main/java/androidx/compose/ui/inspection/compose/AndroidComposeViewWrapper.kt +++ b/compose/ui/ui-inspection/src/main/java/androidx/compose/ui/inspection/compose/AndroidComposeViewWrapper.kt @@ -120,7 +120,13 @@ class AndroidComposeViewWrapper( return result } - private fun View.hasHideFromInspectionTag(): Boolean = - getTag(R.id.hide_in_inspector_tag) != null || - getTag(androidx.compose.ui.graphics.R.id.hide_graphics_layer_in_inspector_tag) != null + private fun View.hasHideFromInspectionTag(): Boolean { + return runCatching { + getTag(R.id.hide_in_inspector_tag) != null || + getTag( + androidx.compose.ui.graphics.R.id.hide_graphics_layer_in_inspector_tag + ) != null + } + .getOrNull() ?: false + } } diff --git a/compose/ui/ui-test-junit4/api/1.7.0-beta07.txt b/compose/ui/ui-test-junit4/api/1.7.0-beta07.txt new file mode 100644 index 0000000000000..edfb551853e15 --- /dev/null +++ b/compose/ui/ui-test-junit4/api/1.7.0-beta07.txt @@ -0,0 +1,79 @@ +// Signature format: 4.0 +package androidx.compose.ui.test.junit4 { + + public final class AndroidComposeTestRule implements androidx.compose.ui.test.junit4.ComposeContentTestRule { + ctor @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public AndroidComposeTestRule(R activityRule, optional kotlin.coroutines.CoroutineContext effectContext, kotlin.jvm.functions.Function1 activityProvider); + ctor public AndroidComposeTestRule(R activityRule, kotlin.jvm.functions.Function1 activityProvider); + method public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement base, org.junit.runner.Description description); + method public suspend Object? awaitIdle(kotlin.coroutines.Continuation); + method public void cancelAndRecreateRecomposer(); + method public A getActivity(); + method public R getActivityRule(); + method public androidx.compose.ui.unit.Density getDensity(); + method public androidx.compose.ui.test.MainTestClock getMainClock(); + method public androidx.compose.ui.test.SemanticsNodeInteractionCollection onAllNodes(androidx.compose.ui.test.SemanticsMatcher matcher, boolean useUnmergedTree); + method public androidx.compose.ui.test.SemanticsNodeInteraction onNode(androidx.compose.ui.test.SemanticsMatcher matcher, boolean useUnmergedTree); + method public void registerIdlingResource(androidx.compose.ui.test.IdlingResource idlingResource); + method public T runOnIdle(kotlin.jvm.functions.Function0 action); + method public T runOnUiThread(kotlin.jvm.functions.Function0 action); + method public void setContent(kotlin.jvm.functions.Function0 composable); + method public void unregisterIdlingResource(androidx.compose.ui.test.IdlingResource idlingResource); + method public void waitForIdle(); + method public void waitUntil(long timeoutMillis, kotlin.jvm.functions.Function0 condition); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public void waitUntilAtLeastOneExists(androidx.compose.ui.test.SemanticsMatcher matcher, long timeoutMillis); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public void waitUntilDoesNotExist(androidx.compose.ui.test.SemanticsMatcher matcher, long timeoutMillis); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public void waitUntilExactlyOneExists(androidx.compose.ui.test.SemanticsMatcher matcher, long timeoutMillis); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public void waitUntilNodeCount(androidx.compose.ui.test.SemanticsMatcher matcher, int count, long timeoutMillis); + property public final A activity; + property public final R activityRule; + property public androidx.compose.ui.unit.Density density; + property public androidx.compose.ui.test.MainTestClock mainClock; + } + + @Deprecated public final class AndroidComposeTestRule.AndroidComposeStatement extends org.junit.runners.model.Statement { + ctor @Deprecated public AndroidComposeTestRule.AndroidComposeStatement(org.junit.runners.model.Statement base); + method @Deprecated public void evaluate(); + } + + public final class AndroidComposeTestRule_androidKt { + method public static inline androidx.compose.ui.test.junit4.AndroidComposeTestRule,A> createAndroidComposeRule(); + method public static androidx.compose.ui.test.junit4.AndroidComposeTestRule,A> createAndroidComposeRule(Class activityClass); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static androidx.compose.ui.test.junit4.AndroidComposeTestRule,A> createAndroidComposeRule(Class activityClass, optional kotlin.coroutines.CoroutineContext effectContext); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static inline androidx.compose.ui.test.junit4.AndroidComposeTestRule,A> createAndroidComposeRule(optional kotlin.coroutines.CoroutineContext effectContext); + method public static androidx.compose.ui.test.junit4.ComposeContentTestRule createComposeRule(); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static androidx.compose.ui.test.junit4.ComposeContentTestRule createComposeRule(optional kotlin.coroutines.CoroutineContext effectContext); + method public static androidx.compose.ui.test.junit4.ComposeTestRule createEmptyComposeRule(); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static androidx.compose.ui.test.junit4.ComposeTestRule createEmptyComposeRule(optional kotlin.coroutines.CoroutineContext effectContext); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface ComposeContentTestRule extends androidx.compose.ui.test.junit4.ComposeTestRule { + method public void setContent(kotlin.jvm.functions.Function0 composable); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface ComposeTestRule extends org.junit.rules.TestRule androidx.compose.ui.test.SemanticsNodeInteractionsProvider { + method public suspend Object? awaitIdle(kotlin.coroutines.Continuation); + method public androidx.compose.ui.unit.Density getDensity(); + method public androidx.compose.ui.test.MainTestClock getMainClock(); + method public void registerIdlingResource(androidx.compose.ui.test.IdlingResource idlingResource); + method public T runOnIdle(kotlin.jvm.functions.Function0 action); + method public T runOnUiThread(kotlin.jvm.functions.Function0 action); + method public void unregisterIdlingResource(androidx.compose.ui.test.IdlingResource idlingResource); + method public void waitForIdle(); + method public default void waitUntil(String conditionDescription, optional long timeoutMillis, kotlin.jvm.functions.Function0 condition); + method public void waitUntil(optional long timeoutMillis, kotlin.jvm.functions.Function0 condition); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public void waitUntilAtLeastOneExists(androidx.compose.ui.test.SemanticsMatcher matcher, optional long timeoutMillis); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public void waitUntilDoesNotExist(androidx.compose.ui.test.SemanticsMatcher matcher, optional long timeoutMillis); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public void waitUntilExactlyOneExists(androidx.compose.ui.test.SemanticsMatcher matcher, optional long timeoutMillis); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public void waitUntilNodeCount(androidx.compose.ui.test.SemanticsMatcher matcher, int count, optional long timeoutMillis); + property public abstract androidx.compose.ui.unit.Density density; + property public abstract androidx.compose.ui.test.MainTestClock mainClock; + } + + public final class StateRestorationTester { + ctor public StateRestorationTester(androidx.compose.ui.test.junit4.ComposeContentTestRule composeTestRule); + method public void emulateSavedInstanceStateRestore(); + method public void setContent(kotlin.jvm.functions.Function0 composable); + } + +} + diff --git a/compose/ui/ui-test-junit4/api/res-1.7.0-beta07.txt b/compose/ui/ui-test-junit4/api/res-1.7.0-beta07.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/compose/ui/ui-test-junit4/api/restricted_1.7.0-beta07.txt b/compose/ui/ui-test-junit4/api/restricted_1.7.0-beta07.txt new file mode 100644 index 0000000000000..edfb551853e15 --- /dev/null +++ b/compose/ui/ui-test-junit4/api/restricted_1.7.0-beta07.txt @@ -0,0 +1,79 @@ +// Signature format: 4.0 +package androidx.compose.ui.test.junit4 { + + public final class AndroidComposeTestRule implements androidx.compose.ui.test.junit4.ComposeContentTestRule { + ctor @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public AndroidComposeTestRule(R activityRule, optional kotlin.coroutines.CoroutineContext effectContext, kotlin.jvm.functions.Function1 activityProvider); + ctor public AndroidComposeTestRule(R activityRule, kotlin.jvm.functions.Function1 activityProvider); + method public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement base, org.junit.runner.Description description); + method public suspend Object? awaitIdle(kotlin.coroutines.Continuation); + method public void cancelAndRecreateRecomposer(); + method public A getActivity(); + method public R getActivityRule(); + method public androidx.compose.ui.unit.Density getDensity(); + method public androidx.compose.ui.test.MainTestClock getMainClock(); + method public androidx.compose.ui.test.SemanticsNodeInteractionCollection onAllNodes(androidx.compose.ui.test.SemanticsMatcher matcher, boolean useUnmergedTree); + method public androidx.compose.ui.test.SemanticsNodeInteraction onNode(androidx.compose.ui.test.SemanticsMatcher matcher, boolean useUnmergedTree); + method public void registerIdlingResource(androidx.compose.ui.test.IdlingResource idlingResource); + method public T runOnIdle(kotlin.jvm.functions.Function0 action); + method public T runOnUiThread(kotlin.jvm.functions.Function0 action); + method public void setContent(kotlin.jvm.functions.Function0 composable); + method public void unregisterIdlingResource(androidx.compose.ui.test.IdlingResource idlingResource); + method public void waitForIdle(); + method public void waitUntil(long timeoutMillis, kotlin.jvm.functions.Function0 condition); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public void waitUntilAtLeastOneExists(androidx.compose.ui.test.SemanticsMatcher matcher, long timeoutMillis); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public void waitUntilDoesNotExist(androidx.compose.ui.test.SemanticsMatcher matcher, long timeoutMillis); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public void waitUntilExactlyOneExists(androidx.compose.ui.test.SemanticsMatcher matcher, long timeoutMillis); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public void waitUntilNodeCount(androidx.compose.ui.test.SemanticsMatcher matcher, int count, long timeoutMillis); + property public final A activity; + property public final R activityRule; + property public androidx.compose.ui.unit.Density density; + property public androidx.compose.ui.test.MainTestClock mainClock; + } + + @Deprecated public final class AndroidComposeTestRule.AndroidComposeStatement extends org.junit.runners.model.Statement { + ctor @Deprecated public AndroidComposeTestRule.AndroidComposeStatement(org.junit.runners.model.Statement base); + method @Deprecated public void evaluate(); + } + + public final class AndroidComposeTestRule_androidKt { + method public static inline androidx.compose.ui.test.junit4.AndroidComposeTestRule,A> createAndroidComposeRule(); + method public static androidx.compose.ui.test.junit4.AndroidComposeTestRule,A> createAndroidComposeRule(Class activityClass); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static androidx.compose.ui.test.junit4.AndroidComposeTestRule,A> createAndroidComposeRule(Class activityClass, optional kotlin.coroutines.CoroutineContext effectContext); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static inline androidx.compose.ui.test.junit4.AndroidComposeTestRule,A> createAndroidComposeRule(optional kotlin.coroutines.CoroutineContext effectContext); + method public static androidx.compose.ui.test.junit4.ComposeContentTestRule createComposeRule(); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static androidx.compose.ui.test.junit4.ComposeContentTestRule createComposeRule(optional kotlin.coroutines.CoroutineContext effectContext); + method public static androidx.compose.ui.test.junit4.ComposeTestRule createEmptyComposeRule(); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static androidx.compose.ui.test.junit4.ComposeTestRule createEmptyComposeRule(optional kotlin.coroutines.CoroutineContext effectContext); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface ComposeContentTestRule extends androidx.compose.ui.test.junit4.ComposeTestRule { + method public void setContent(kotlin.jvm.functions.Function0 composable); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface ComposeTestRule extends org.junit.rules.TestRule androidx.compose.ui.test.SemanticsNodeInteractionsProvider { + method public suspend Object? awaitIdle(kotlin.coroutines.Continuation); + method public androidx.compose.ui.unit.Density getDensity(); + method public androidx.compose.ui.test.MainTestClock getMainClock(); + method public void registerIdlingResource(androidx.compose.ui.test.IdlingResource idlingResource); + method public T runOnIdle(kotlin.jvm.functions.Function0 action); + method public T runOnUiThread(kotlin.jvm.functions.Function0 action); + method public void unregisterIdlingResource(androidx.compose.ui.test.IdlingResource idlingResource); + method public void waitForIdle(); + method public default void waitUntil(String conditionDescription, optional long timeoutMillis, kotlin.jvm.functions.Function0 condition); + method public void waitUntil(optional long timeoutMillis, kotlin.jvm.functions.Function0 condition); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public void waitUntilAtLeastOneExists(androidx.compose.ui.test.SemanticsMatcher matcher, optional long timeoutMillis); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public void waitUntilDoesNotExist(androidx.compose.ui.test.SemanticsMatcher matcher, optional long timeoutMillis); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public void waitUntilExactlyOneExists(androidx.compose.ui.test.SemanticsMatcher matcher, optional long timeoutMillis); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public void waitUntilNodeCount(androidx.compose.ui.test.SemanticsMatcher matcher, int count, optional long timeoutMillis); + property public abstract androidx.compose.ui.unit.Density density; + property public abstract androidx.compose.ui.test.MainTestClock mainClock; + } + + public final class StateRestorationTester { + ctor public StateRestorationTester(androidx.compose.ui.test.junit4.ComposeContentTestRule composeTestRule); + method public void emulateSavedInstanceStateRestore(); + method public void setContent(kotlin.jvm.functions.Function0 composable); + } + +} + diff --git a/compose/ui/ui-test-manifest/api/1.7.0-beta07.txt b/compose/ui/ui-test-manifest/api/1.7.0-beta07.txt new file mode 100644 index 0000000000000..e6f50d0d0fd11 --- /dev/null +++ b/compose/ui/ui-test-manifest/api/1.7.0-beta07.txt @@ -0,0 +1 @@ +// Signature format: 4.0 diff --git a/compose/ui/ui-test-manifest/api/res-1.7.0-beta07.txt b/compose/ui/ui-test-manifest/api/res-1.7.0-beta07.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/compose/ui/ui-test-manifest/api/restricted_1.7.0-beta07.txt b/compose/ui/ui-test-manifest/api/restricted_1.7.0-beta07.txt new file mode 100644 index 0000000000000..e6f50d0d0fd11 --- /dev/null +++ b/compose/ui/ui-test-manifest/api/restricted_1.7.0-beta07.txt @@ -0,0 +1 @@ +// Signature format: 4.0 diff --git a/compose/ui/ui-test/api/1.7.0-beta07.txt b/compose/ui/ui-test/api/1.7.0-beta07.txt new file mode 100644 index 0000000000000..6769c1dabfd0e --- /dev/null +++ b/compose/ui/ui-test/api/1.7.0-beta07.txt @@ -0,0 +1,602 @@ +// Signature format: 4.0 +package androidx.compose.ui.test { + + public final class ActionsKt { + method public static androidx.compose.ui.test.SemanticsNodeInteraction performClick(androidx.compose.ui.test.SemanticsNodeInteraction); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static androidx.compose.ui.test.SemanticsNodeInteraction performCustomAccessibilityActionWithLabel(androidx.compose.ui.test.SemanticsNodeInteraction, String label); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static androidx.compose.ui.test.SemanticsNodeInteraction performCustomAccessibilityActionWithLabelMatching(androidx.compose.ui.test.SemanticsNodeInteraction, optional String? predicateDescription, kotlin.jvm.functions.Function1 labelPredicate); + method @Deprecated public static androidx.compose.ui.test.SemanticsNodeInteraction performGesture(androidx.compose.ui.test.SemanticsNodeInteraction, kotlin.jvm.functions.Function1 block); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static androidx.compose.ui.test.SemanticsNodeInteraction performKeyInput(androidx.compose.ui.test.SemanticsNodeInteraction, kotlin.jvm.functions.Function1 block); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static androidx.compose.ui.test.SemanticsNodeInteraction performMouseInput(androidx.compose.ui.test.SemanticsNodeInteraction, kotlin.jvm.functions.Function1 block); + method public static androidx.compose.ui.test.SemanticsNodeInteraction performMultiModalInput(androidx.compose.ui.test.SemanticsNodeInteraction, kotlin.jvm.functions.Function1 block); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static androidx.compose.ui.test.SemanticsNodeInteraction performRotaryScrollInput(androidx.compose.ui.test.SemanticsNodeInteraction, kotlin.jvm.functions.Function1 block); + method public static androidx.compose.ui.test.SemanticsNodeInteraction performScrollTo(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteraction performScrollToIndex(androidx.compose.ui.test.SemanticsNodeInteraction, int index); + method public static androidx.compose.ui.test.SemanticsNodeInteraction performScrollToKey(androidx.compose.ui.test.SemanticsNodeInteraction, Object key); + method public static androidx.compose.ui.test.SemanticsNodeInteraction performScrollToNode(androidx.compose.ui.test.SemanticsNodeInteraction, androidx.compose.ui.test.SemanticsMatcher matcher); + method public static androidx.compose.ui.test.SemanticsNodeInteraction performSemanticsAction(androidx.compose.ui.test.SemanticsNodeInteraction, androidx.compose.ui.semantics.SemanticsPropertyKey>> key); + method @Deprecated public static void performSemanticsAction(androidx.compose.ui.test.SemanticsNodeInteraction, androidx.compose.ui.semantics.SemanticsPropertyKey>> key); + method public static > androidx.compose.ui.test.SemanticsNodeInteraction performSemanticsAction(androidx.compose.ui.test.SemanticsNodeInteraction, androidx.compose.ui.semantics.SemanticsPropertyKey> key, kotlin.jvm.functions.Function1 invocation); + method @Deprecated public static > void performSemanticsAction(androidx.compose.ui.test.SemanticsNodeInteraction, androidx.compose.ui.semantics.SemanticsPropertyKey> key, kotlin.jvm.functions.Function1 invocation); + method public static androidx.compose.ui.test.SemanticsNodeInteraction performTouchInput(androidx.compose.ui.test.SemanticsNodeInteraction, kotlin.jvm.functions.Function1 block); + method public static androidx.compose.ui.test.SemanticsNodeInteraction requestFocus(androidx.compose.ui.test.SemanticsNodeInteraction); + } + + @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public sealed interface AndroidComposeUiTest extends androidx.compose.ui.test.ComposeUiTest { + method public A? getActivity(); + property public abstract A? activity; + } + + @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public abstract class AndroidComposeUiTestEnvironment { + ctor public AndroidComposeUiTestEnvironment(optional kotlin.coroutines.CoroutineContext effectContext); + method public final void cancelAndRecreateRecomposer(); + method protected abstract A? getActivity(); + method public final androidx.compose.ui.test.AndroidComposeUiTest getTest(); + method public final R runTest(kotlin.jvm.functions.Function1,? extends R> block); + property protected abstract A? activity; + property public final androidx.compose.ui.test.AndroidComposeUiTest test; + } + + public final class AndroidImageHelpers_androidKt { + method @RequiresApi(android.os.Build.VERSION_CODES.O) public static androidx.compose.ui.graphics.ImageBitmap captureToImage(androidx.compose.ui.test.SemanticsNodeInteraction); + } + + public final class AssertionsKt { + method public static androidx.compose.ui.test.SemanticsNodeInteraction assert(androidx.compose.ui.test.SemanticsNodeInteraction, androidx.compose.ui.test.SemanticsMatcher matcher, optional kotlin.jvm.functions.Function0? messagePrefixOnError); + method public static androidx.compose.ui.test.SemanticsNodeInteractionCollection assertAll(androidx.compose.ui.test.SemanticsNodeInteractionCollection, androidx.compose.ui.test.SemanticsMatcher matcher); + method public static androidx.compose.ui.test.SemanticsNodeInteractionCollection assertAny(androidx.compose.ui.test.SemanticsNodeInteractionCollection, androidx.compose.ui.test.SemanticsMatcher matcher); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertContentDescriptionContains(androidx.compose.ui.test.SemanticsNodeInteraction, String value, optional boolean substring, optional boolean ignoreCase); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertContentDescriptionEquals(androidx.compose.ui.test.SemanticsNodeInteraction, java.lang.String... values); + method public static androidx.compose.ui.test.SemanticsNodeInteractionCollection assertCountEquals(androidx.compose.ui.test.SemanticsNodeInteractionCollection, int expectedSize); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertHasClickAction(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertHasNoClickAction(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertIsDisplayed(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertIsEnabled(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertIsFocused(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertIsNotDisplayed(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertIsNotEnabled(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertIsNotFocused(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertIsNotSelected(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertIsOff(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertIsOn(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertIsSelectable(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertIsSelected(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertIsToggleable(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertRangeInfoEquals(androidx.compose.ui.test.SemanticsNodeInteraction, androidx.compose.ui.semantics.ProgressBarRangeInfo value); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertTextContains(androidx.compose.ui.test.SemanticsNodeInteraction, String value, optional boolean substring, optional boolean ignoreCase); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertTextEquals(androidx.compose.ui.test.SemanticsNodeInteraction, String[] values, optional boolean includeEditableText); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertValueEquals(androidx.compose.ui.test.SemanticsNodeInteraction, String value); + method public static boolean isDisplayed(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static boolean isNotDisplayed(androidx.compose.ui.test.SemanticsNodeInteraction); + } + + public final class BoundsAssertionsKt { + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertHeightIsAtLeast(androidx.compose.ui.test.SemanticsNodeInteraction, float expectedMinHeight); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertHeightIsEqualTo(androidx.compose.ui.test.SemanticsNodeInteraction, float expectedHeight); + method public static void assertIsEqualTo(float, float expected, String subject, optional float tolerance); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertLeftPositionInRootIsEqualTo(androidx.compose.ui.test.SemanticsNodeInteraction, float expectedLeft); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertPositionInRootIsEqualTo(androidx.compose.ui.test.SemanticsNodeInteraction, float expectedLeft, float expectedTop); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertTopPositionInRootIsEqualTo(androidx.compose.ui.test.SemanticsNodeInteraction, float expectedTop); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertTouchHeightIsEqualTo(androidx.compose.ui.test.SemanticsNodeInteraction, float expectedHeight); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertTouchWidthIsEqualTo(androidx.compose.ui.test.SemanticsNodeInteraction, float expectedWidth); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertWidthIsAtLeast(androidx.compose.ui.test.SemanticsNodeInteraction, float expectedMinWidth); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertWidthIsEqualTo(androidx.compose.ui.test.SemanticsNodeInteraction, float expectedWidth); + method public static float getAlignmentLinePosition(androidx.compose.ui.test.SemanticsNodeInteraction, androidx.compose.ui.layout.AlignmentLine alignmentLine); + method public static androidx.compose.ui.unit.DpRect getBoundsInRoot(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.unit.DpRect getUnclippedBoundsInRoot(androidx.compose.ui.test.SemanticsNodeInteraction); + } + + public final class ComposeTimeoutException extends java.lang.Throwable { + ctor public ComposeTimeoutException(String? message); + } + + @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public sealed interface ComposeUiTest extends androidx.compose.ui.test.SemanticsNodeInteractionsProvider { + method public suspend Object? awaitIdle(kotlin.coroutines.Continuation); + method public androidx.compose.ui.unit.Density getDensity(); + method public androidx.compose.ui.test.MainTestClock getMainClock(); + method public void registerIdlingResource(androidx.compose.ui.test.IdlingResource idlingResource); + method public T runOnIdle(kotlin.jvm.functions.Function0 action); + method public T runOnUiThread(kotlin.jvm.functions.Function0 action); + method public void setContent(kotlin.jvm.functions.Function0 composable); + method public void unregisterIdlingResource(androidx.compose.ui.test.IdlingResource idlingResource); + method public void waitForIdle(); + method public void waitUntil(optional String? conditionDescription, optional long timeoutMillis, kotlin.jvm.functions.Function0 condition); + property public abstract androidx.compose.ui.unit.Density density; + property public abstract androidx.compose.ui.test.MainTestClock mainClock; + } + + public final class ComposeUiTestKt { + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void waitUntilAtLeastOneExists(androidx.compose.ui.test.ComposeUiTest, androidx.compose.ui.test.SemanticsMatcher matcher, optional long timeoutMillis); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void waitUntilDoesNotExist(androidx.compose.ui.test.ComposeUiTest, androidx.compose.ui.test.SemanticsMatcher matcher, optional long timeoutMillis); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void waitUntilExactlyOneExists(androidx.compose.ui.test.ComposeUiTest, androidx.compose.ui.test.SemanticsMatcher matcher, optional long timeoutMillis); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void waitUntilNodeCount(androidx.compose.ui.test.ComposeUiTest, androidx.compose.ui.test.SemanticsMatcher matcher, int count, optional long timeoutMillis); + } + + public final class ComposeUiTest_androidKt { + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static inline androidx.compose.ui.test.AndroidComposeUiTestEnvironment AndroidComposeUiTestEnvironment(optional kotlin.coroutines.CoroutineContext effectContext, kotlin.jvm.functions.Function0 activityProvider); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void runAndroidComposeUiTest(Class activityClass, optional kotlin.coroutines.CoroutineContext effectContext, kotlin.jvm.functions.Function1,kotlin.Unit> block); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static inline void runAndroidComposeUiTest(optional kotlin.coroutines.CoroutineContext effectContext, kotlin.jvm.functions.Function1,kotlin.Unit> block); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void runComposeUiTest(optional kotlin.coroutines.CoroutineContext effectContext, kotlin.jvm.functions.Function1 block); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void runEmptyComposeUiTest(kotlin.jvm.functions.Function1 block); + } + + public fun interface DeviceConfigurationOverride { + method @androidx.compose.runtime.Composable public void Override(kotlin.jvm.functions.Function0 contentUnderTest); + field public static final androidx.compose.ui.test.DeviceConfigurationOverride.Companion Companion; + } + + public static final class DeviceConfigurationOverride.Companion { + } + + public final class DeviceConfigurationOverrideKt { + method @androidx.compose.runtime.Composable public static void DeviceConfigurationOverride(androidx.compose.ui.test.DeviceConfigurationOverride override, kotlin.jvm.functions.Function0 content); + method public static infix androidx.compose.ui.test.DeviceConfigurationOverride then(androidx.compose.ui.test.DeviceConfigurationOverride, androidx.compose.ui.test.DeviceConfigurationOverride other); + } + + public final class DeviceConfigurationOverride_androidKt { + method public static androidx.compose.ui.test.DeviceConfigurationOverride DarkMode(androidx.compose.ui.test.DeviceConfigurationOverride.Companion, boolean isDarkMode); + method public static androidx.compose.ui.test.DeviceConfigurationOverride FontScale(androidx.compose.ui.test.DeviceConfigurationOverride.Companion, float fontScale); + method @RequiresApi(31) public static androidx.compose.ui.test.DeviceConfigurationOverride FontWeightAdjustment(androidx.compose.ui.test.DeviceConfigurationOverride.Companion, int fontWeightAdjustment); + method public static androidx.compose.ui.test.DeviceConfigurationOverride ForcedSize(androidx.compose.ui.test.DeviceConfigurationOverride.Companion, long size); + method public static androidx.compose.ui.test.DeviceConfigurationOverride LayoutDirection(androidx.compose.ui.test.DeviceConfigurationOverride.Companion, androidx.compose.ui.unit.LayoutDirection layoutDirection); + method public static androidx.compose.ui.test.DeviceConfigurationOverride Locales(androidx.compose.ui.test.DeviceConfigurationOverride.Companion, androidx.compose.ui.text.intl.LocaleList locales); + method @RequiresApi(23) public static androidx.compose.ui.test.DeviceConfigurationOverride RoundScreen(androidx.compose.ui.test.DeviceConfigurationOverride.Companion, boolean isScreenRound); + } + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This testing API is experimental and is likely to be changed or removed entirely") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalTestApi { + } + + public final class FiltersKt { + method public static androidx.compose.ui.test.SemanticsMatcher hasAnyAncestor(androidx.compose.ui.test.SemanticsMatcher matcher); + method public static androidx.compose.ui.test.SemanticsMatcher hasAnyChild(androidx.compose.ui.test.SemanticsMatcher matcher); + method public static androidx.compose.ui.test.SemanticsMatcher hasAnyDescendant(androidx.compose.ui.test.SemanticsMatcher matcher); + method public static androidx.compose.ui.test.SemanticsMatcher hasAnySibling(androidx.compose.ui.test.SemanticsMatcher matcher); + method public static androidx.compose.ui.test.SemanticsMatcher hasClickAction(); + method public static androidx.compose.ui.test.SemanticsMatcher hasContentDescription(String value, optional boolean substring, optional boolean ignoreCase); + method public static androidx.compose.ui.test.SemanticsMatcher hasContentDescriptionExactly(java.lang.String... values); + method public static androidx.compose.ui.test.SemanticsMatcher hasImeAction(int actionType); + method public static androidx.compose.ui.test.SemanticsMatcher hasInsertTextAtCursorAction(); + method public static androidx.compose.ui.test.SemanticsMatcher hasNoClickAction(); + method public static androidx.compose.ui.test.SemanticsMatcher hasNoScrollAction(); + method public static androidx.compose.ui.test.SemanticsMatcher hasParent(androidx.compose.ui.test.SemanticsMatcher matcher); + method public static androidx.compose.ui.test.SemanticsMatcher hasPerformImeAction(); + method public static androidx.compose.ui.test.SemanticsMatcher hasProgressBarRangeInfo(androidx.compose.ui.semantics.ProgressBarRangeInfo rangeInfo); + method public static androidx.compose.ui.test.SemanticsMatcher hasRequestFocusAction(); + method public static androidx.compose.ui.test.SemanticsMatcher hasScrollAction(); + method public static androidx.compose.ui.test.SemanticsMatcher hasScrollToIndexAction(); + method public static androidx.compose.ui.test.SemanticsMatcher hasScrollToKeyAction(); + method public static androidx.compose.ui.test.SemanticsMatcher hasScrollToNodeAction(); + method public static androidx.compose.ui.test.SemanticsMatcher hasSetTextAction(); + method public static androidx.compose.ui.test.SemanticsMatcher hasStateDescription(String value); + method public static androidx.compose.ui.test.SemanticsMatcher hasTestTag(String testTag); + method public static androidx.compose.ui.test.SemanticsMatcher hasText(String text, optional boolean substring, optional boolean ignoreCase); + method public static androidx.compose.ui.test.SemanticsMatcher hasTextExactly(String[] textValues, optional boolean includeEditableText); + method public static androidx.compose.ui.test.SemanticsMatcher isDialog(); + method public static androidx.compose.ui.test.SemanticsMatcher isEditable(); + method public static androidx.compose.ui.test.SemanticsMatcher isEnabled(); + method public static androidx.compose.ui.test.SemanticsMatcher isFocusable(); + method public static androidx.compose.ui.test.SemanticsMatcher isFocused(); + method public static androidx.compose.ui.test.SemanticsMatcher isHeading(); + method public static androidx.compose.ui.test.SemanticsMatcher isNotEnabled(); + method public static androidx.compose.ui.test.SemanticsMatcher isNotFocusable(); + method public static androidx.compose.ui.test.SemanticsMatcher isNotFocused(); + method public static androidx.compose.ui.test.SemanticsMatcher isNotSelected(); + method public static androidx.compose.ui.test.SemanticsMatcher isOff(); + method public static androidx.compose.ui.test.SemanticsMatcher isOn(); + method public static androidx.compose.ui.test.SemanticsMatcher isPopup(); + method public static androidx.compose.ui.test.SemanticsMatcher isRoot(); + method public static androidx.compose.ui.test.SemanticsMatcher isSelectable(); + method public static androidx.compose.ui.test.SemanticsMatcher isSelected(); + method public static androidx.compose.ui.test.SemanticsMatcher isToggleable(); + } + + public final class FindersKt { + method public static androidx.compose.ui.test.SemanticsNodeInteractionCollection onAllNodesWithContentDescription(androidx.compose.ui.test.SemanticsNodeInteractionsProvider, String label, optional boolean substring, optional boolean ignoreCase, optional boolean useUnmergedTree); + method public static androidx.compose.ui.test.SemanticsNodeInteractionCollection onAllNodesWithTag(androidx.compose.ui.test.SemanticsNodeInteractionsProvider, String testTag, optional boolean useUnmergedTree); + method public static androidx.compose.ui.test.SemanticsNodeInteractionCollection onAllNodesWithText(androidx.compose.ui.test.SemanticsNodeInteractionsProvider, String text, optional boolean substring, optional boolean ignoreCase, optional boolean useUnmergedTree); + method public static androidx.compose.ui.test.SemanticsNodeInteraction onNodeWithContentDescription(androidx.compose.ui.test.SemanticsNodeInteractionsProvider, String label, optional boolean substring, optional boolean ignoreCase, optional boolean useUnmergedTree); + method public static androidx.compose.ui.test.SemanticsNodeInteraction onNodeWithTag(androidx.compose.ui.test.SemanticsNodeInteractionsProvider, String testTag, optional boolean useUnmergedTree); + method public static androidx.compose.ui.test.SemanticsNodeInteraction onNodeWithText(androidx.compose.ui.test.SemanticsNodeInteractionsProvider, String text, optional boolean substring, optional boolean ignoreCase, optional boolean useUnmergedTree); + method public static androidx.compose.ui.test.SemanticsNodeInteraction onRoot(androidx.compose.ui.test.SemanticsNodeInteractionsProvider, optional boolean useUnmergedTree); + } + + @Deprecated public final class GestureScope { + ctor @Deprecated public GestureScope(androidx.compose.ui.semantics.SemanticsNode node, androidx.compose.ui.test.TestContext testContext); + method @Deprecated public long getVisibleSize(); + property @Deprecated public final long visibleSize; + } + + public final class GestureScopeKt { + method @Deprecated @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void advanceEventTime(androidx.compose.ui.test.GestureScope, long durationMillis); + method @Deprecated public static void cancel(androidx.compose.ui.test.GestureScope); + method @Deprecated public static void click(androidx.compose.ui.test.GestureScope, optional long position); + method @Deprecated public static void doubleClick(androidx.compose.ui.test.GestureScope, optional long position, optional long delayMillis); + method @Deprecated public static void down(androidx.compose.ui.test.GestureScope, int pointerId, long position); + method @Deprecated public static void down(androidx.compose.ui.test.GestureScope, long position); + method @Deprecated public static inline float getBottom(androidx.compose.ui.test.GestureScope); + method @Deprecated public static long getBottomCenter(androidx.compose.ui.test.GestureScope); + method @Deprecated public static long getBottomLeft(androidx.compose.ui.test.GestureScope); + method @Deprecated public static long getBottomRight(androidx.compose.ui.test.GestureScope); + method @Deprecated public static long getCenter(androidx.compose.ui.test.GestureScope); + method @Deprecated public static long getCenterLeft(androidx.compose.ui.test.GestureScope); + method @Deprecated public static long getCenterRight(androidx.compose.ui.test.GestureScope); + method @Deprecated public static inline float getCenterX(androidx.compose.ui.test.GestureScope); + method @Deprecated public static inline float getCenterY(androidx.compose.ui.test.GestureScope); + method @Deprecated public static inline int getHeight(androidx.compose.ui.test.GestureScope); + method @Deprecated public static inline float getLeft(androidx.compose.ui.test.GestureScope); + method @Deprecated public static inline float getRight(androidx.compose.ui.test.GestureScope); + method @Deprecated public static inline float getTop(androidx.compose.ui.test.GestureScope); + method @Deprecated public static long getTopCenter(androidx.compose.ui.test.GestureScope); + method @Deprecated public static long getTopLeft(androidx.compose.ui.test.GestureScope); + method @Deprecated public static long getTopRight(androidx.compose.ui.test.GestureScope); + method @Deprecated public static inline int getWidth(androidx.compose.ui.test.GestureScope); + method @Deprecated public static void longClick(androidx.compose.ui.test.GestureScope, optional long position, optional long durationMillis); + method @Deprecated public static void move(androidx.compose.ui.test.GestureScope); + method @Deprecated public static void moveBy(androidx.compose.ui.test.GestureScope, int pointerId, long delta); + method @Deprecated public static void moveBy(androidx.compose.ui.test.GestureScope, long delta); + method @Deprecated public static void movePointerBy(androidx.compose.ui.test.GestureScope, int pointerId, long delta); + method @Deprecated public static void movePointerTo(androidx.compose.ui.test.GestureScope, int pointerId, long position); + method @Deprecated public static void moveTo(androidx.compose.ui.test.GestureScope, int pointerId, long position); + method @Deprecated public static void moveTo(androidx.compose.ui.test.GestureScope, long position); + method @Deprecated public static long percentOffset(androidx.compose.ui.test.GestureScope, optional float x, optional float y); + method @Deprecated public static void pinch(androidx.compose.ui.test.GestureScope, long start0, long end0, long start1, long end1, optional long durationMillis); + method @Deprecated public static void swipe(androidx.compose.ui.test.GestureScope, long start, long end, optional long durationMillis); + method @Deprecated public static void swipeDown(androidx.compose.ui.test.GestureScope); + method @Deprecated @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void swipeDown(androidx.compose.ui.test.GestureScope, optional float startY, optional float endY, optional long durationMillis); + method @Deprecated public static void swipeLeft(androidx.compose.ui.test.GestureScope); + method @Deprecated @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void swipeLeft(androidx.compose.ui.test.GestureScope, optional float startX, optional float endX, optional long durationMillis); + method @Deprecated public static void swipeRight(androidx.compose.ui.test.GestureScope); + method @Deprecated @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void swipeRight(androidx.compose.ui.test.GestureScope, optional float startX, optional float endX, optional long durationMillis); + method @Deprecated public static void swipeUp(androidx.compose.ui.test.GestureScope); + method @Deprecated @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void swipeUp(androidx.compose.ui.test.GestureScope, optional float startY, optional float endY, optional long durationMillis); + method @Deprecated public static void swipeWithVelocity(androidx.compose.ui.test.GestureScope, long start, long end, float endVelocity, optional long durationMillis); + method @Deprecated public static void up(androidx.compose.ui.test.GestureScope, optional int pointerId); + } + + public final class GlobalAssertions { + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void addGlobalAssertion(String name, kotlin.jvm.functions.Function1 assertion); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static androidx.compose.ui.test.SemanticsNodeInteraction invokeGlobalAssertions(androidx.compose.ui.test.SemanticsNodeInteraction); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static androidx.compose.ui.test.SemanticsNodeInteractionCollection invokeGlobalAssertions(androidx.compose.ui.test.SemanticsNodeInteractionCollection); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void removeGlobalAssertion(String name); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface IdlingResource { + method public default String? getDiagnosticMessageIfBusy(); + method public boolean isIdleNow(); + property public abstract boolean isIdleNow; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface InjectionScope extends androidx.compose.ui.unit.Density { + method public void advanceEventTime(optional long durationMillis); + method public default float getBottom(); + method public default long getBottomCenter(); + method public default long getBottomLeft(); + method public default long getBottomRight(); + method public default long getCenter(); + method public default long getCenterLeft(); + method public default long getCenterRight(); + method public default float getCenterX(); + method public default float getCenterY(); + method public default long getEventPeriodMillis(); + method public default int getHeight(); + method public default float getLeft(); + method public default float getRight(); + method public default float getTop(); + method public default long getTopCenter(); + method public default long getTopLeft(); + method public default long getTopRight(); + method public androidx.compose.ui.platform.ViewConfiguration getViewConfiguration(); + method public long getVisibleSize(); + method public default int getWidth(); + method public default long percentOffset(optional float x, optional float y); + property public default float bottom; + property public default long bottomCenter; + property public default long bottomLeft; + property public default long bottomRight; + property public default long center; + property public default long centerLeft; + property public default long centerRight; + property public default float centerX; + property public default float centerY; + property public default long eventPeriodMillis; + property public default int height; + property public default float left; + property public default float right; + property public default float top; + property public default long topCenter; + property public default long topLeft; + property public default long topRight; + property public abstract androidx.compose.ui.platform.ViewConfiguration viewConfiguration; + property public abstract long visibleSize; + property public default int width; + } + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This is internal API for Compose modules that may change frequently and without warning.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface InternalTestApi { + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface KeyInjectionScope extends androidx.compose.ui.test.InjectionScope { + method public boolean isCapsLockOn(); + method public boolean isKeyDown(long key); + method public boolean isNumLockOn(); + method public boolean isScrollLockOn(); + method public void keyDown(long key); + method public void keyUp(long key); + property public abstract boolean isCapsLockOn; + property public abstract boolean isNumLockOn; + property public abstract boolean isScrollLockOn; + } + + public final class KeyInjectionScopeKt { + method public static boolean isAltDown(androidx.compose.ui.test.KeyInjectionScope); + method public static boolean isCtrlDown(androidx.compose.ui.test.KeyInjectionScope); + method public static boolean isFnDown(androidx.compose.ui.test.KeyInjectionScope); + method public static boolean isMetaDown(androidx.compose.ui.test.KeyInjectionScope); + method public static boolean isShiftDown(androidx.compose.ui.test.KeyInjectionScope); + method public static void pressKey(androidx.compose.ui.test.KeyInjectionScope, long key, optional long pressDurationMillis); + method public static void withKeyDown(androidx.compose.ui.test.KeyInjectionScope, long key, kotlin.jvm.functions.Function1 block); + method public static void withKeyToggled(androidx.compose.ui.test.KeyInjectionScope, long key, kotlin.jvm.functions.Function1 block); + method public static void withKeysDown(androidx.compose.ui.test.KeyInjectionScope, java.util.List keys, kotlin.jvm.functions.Function1 block); + method public static void withKeysToggled(androidx.compose.ui.test.KeyInjectionScope, java.util.List keys, kotlin.jvm.functions.Function1 block); + } + + public final class KeyInputHelpersKt { + method public static boolean performKeyPress(androidx.compose.ui.test.SemanticsNodeInteraction, android.view.KeyEvent keyEvent); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface MainTestClock { + method public void advanceTimeBy(long milliseconds, optional boolean ignoreFrameDuration); + method public void advanceTimeByFrame(); + method public void advanceTimeUntil(optional long timeoutMillis, kotlin.jvm.functions.Function0 condition); + method public boolean getAutoAdvance(); + method public long getCurrentTime(); + method public void setAutoAdvance(boolean); + property public abstract boolean autoAdvance; + property public abstract long currentTime; + } + + @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi @kotlin.jvm.JvmInline public final value class MouseButton { + ctor public MouseButton(int buttonId); + method public int getButtonId(); + property public final int buttonId; + field public static final androidx.compose.ui.test.MouseButton.Companion Companion; + } + + @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static final class MouseButton.Companion { + method public int getPrimary(); + method public int getSecondary(); + method public int getTertiary(); + property public final int Primary; + property public final int Secondary; + property public final int Tertiary; + } + + @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public interface MouseInjectionScope extends androidx.compose.ui.test.InjectionScope { + method public void cancel(optional long delayMillis); + method public void enter(optional long position, optional long delayMillis); + method public void exit(optional long position, optional long delayMillis); + method public long getCurrentPosition(); + method public default void moveBy(long delta, optional long delayMillis); + method public void moveTo(long position, optional long delayMillis); + method public void press(optional int button); + method public void release(optional int button); + method public void scroll(float delta, optional int scrollWheel); + method public default void updatePointerBy(long delta); + method public void updatePointerTo(long position); + property public abstract long currentPosition; + } + + public final class MouseInjectionScopeKt { + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void animateAlong(androidx.compose.ui.test.MouseInjectionScope, kotlin.jvm.functions.Function1 curve, optional long durationMillis); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void animateBy(androidx.compose.ui.test.MouseInjectionScope, long delta, optional long durationMillis); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void animateTo(androidx.compose.ui.test.MouseInjectionScope, long position, optional long durationMillis); + method @Deprecated @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void click(androidx.compose.ui.test.MouseInjectionScope, optional long position); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void click(androidx.compose.ui.test.MouseInjectionScope, optional long position, optional int button); + method @Deprecated @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void doubleClick(androidx.compose.ui.test.MouseInjectionScope, optional long position); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void doubleClick(androidx.compose.ui.test.MouseInjectionScope, optional long position, optional int button); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void dragAndDrop(androidx.compose.ui.test.MouseInjectionScope, long start, long end, optional int button, optional long durationMillis); + method @Deprecated @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void dragAndDrop(androidx.compose.ui.test.MouseInjectionScope, long start, long end, optional long durationMillis); + method @Deprecated @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void longClick(androidx.compose.ui.test.MouseInjectionScope, optional long position); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void longClick(androidx.compose.ui.test.MouseInjectionScope, optional long position, optional int button); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void rightClick(androidx.compose.ui.test.MouseInjectionScope, optional long position); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void smoothScroll(androidx.compose.ui.test.MouseInjectionScope, float scrollAmount, optional long durationMillis, optional int scrollWheel); + method @Deprecated @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void tripleClick(androidx.compose.ui.test.MouseInjectionScope, optional long position); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void tripleClick(androidx.compose.ui.test.MouseInjectionScope, optional long position, optional int button); + } + + public sealed interface MultiModalInjectionScope extends androidx.compose.ui.test.InjectionScope { + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public void key(kotlin.jvm.functions.Function1 block); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public void mouse(kotlin.jvm.functions.Function1 block); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public void rotary(kotlin.jvm.functions.Function1 block); + method public void touch(kotlin.jvm.functions.Function1 block); + } + + public final class OutputKt { + method public static void printToLog(androidx.compose.ui.test.SemanticsNodeInteraction, String tag, optional int maxDepth); + method public static void printToLog(androidx.compose.ui.test.SemanticsNodeInteractionCollection, String tag, optional int maxDepth); + method public static String printToString(androidx.compose.ui.test.SemanticsNodeInteraction, optional int maxDepth); + method public static String printToString(androidx.compose.ui.test.SemanticsNodeInteractionCollection, optional int maxDepth); + } + + public final class PlatformTextInputMethodOverrideKt { + method @Deprecated @SuppressCompatibility @androidx.compose.runtime.Composable @androidx.compose.ui.test.ExperimentalTestApi public static void PlatformTextInputMethodTestOverride(androidx.compose.ui.platform.PlatformTextInputSession sessionHandler, kotlin.jvm.functions.Function0 content); + } + + @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public interface RotaryInjectionScope extends androidx.compose.ui.test.InjectionScope { + method public void rotateToScrollHorizontally(float horizontalScrollPixels); + method public void rotateToScrollVertically(float verticalScrollPixels); + } + + @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi @kotlin.jvm.JvmInline public final value class ScrollWheel { + method public int getValue(); + property public final int value; + field public static final androidx.compose.ui.test.ScrollWheel.Companion Companion; + } + + @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static final class ScrollWheel.Companion { + method public int getHorizontal(); + method public int getVertical(); + property public final int Horizontal; + property public final int Vertical; + } + + public final class SelectionResult { + ctor public SelectionResult(java.util.List selectedNodes, optional String? customErrorOnNoMatch); + method public String? getCustomErrorOnNoMatch(); + method public java.util.List getSelectedNodes(); + property public final String? customErrorOnNoMatch; + property public final java.util.List selectedNodes; + } + + public final class SelectorsKt { + method public static androidx.compose.ui.test.SemanticsNodeInteractionCollection filter(androidx.compose.ui.test.SemanticsNodeInteractionCollection, androidx.compose.ui.test.SemanticsMatcher matcher); + method public static androidx.compose.ui.test.SemanticsNodeInteraction filterToOne(androidx.compose.ui.test.SemanticsNodeInteractionCollection, androidx.compose.ui.test.SemanticsMatcher matcher); + method public static androidx.compose.ui.test.SemanticsNodeInteractionCollection onAncestors(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteraction onChild(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteraction onChildAt(androidx.compose.ui.test.SemanticsNodeInteraction, int index); + method public static androidx.compose.ui.test.SemanticsNodeInteractionCollection onChildren(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteraction onFirst(androidx.compose.ui.test.SemanticsNodeInteractionCollection); + method public static androidx.compose.ui.test.SemanticsNodeInteraction onLast(androidx.compose.ui.test.SemanticsNodeInteractionCollection); + method public static androidx.compose.ui.test.SemanticsNodeInteraction onParent(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteraction onSibling(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteractionCollection onSiblings(androidx.compose.ui.test.SemanticsNodeInteraction); + } + + public final class SemanticsMatcher { + ctor public SemanticsMatcher(String description, kotlin.jvm.functions.Function1 matcher); + method public infix androidx.compose.ui.test.SemanticsMatcher and(androidx.compose.ui.test.SemanticsMatcher other); + method public String getDescription(); + method public boolean matches(androidx.compose.ui.semantics.SemanticsNode node); + method public boolean matchesAny(Iterable nodes); + method public operator androidx.compose.ui.test.SemanticsMatcher not(); + method public infix androidx.compose.ui.test.SemanticsMatcher or(androidx.compose.ui.test.SemanticsMatcher other); + property public final String description; + field public static final androidx.compose.ui.test.SemanticsMatcher.Companion Companion; + } + + public static final class SemanticsMatcher.Companion { + method public androidx.compose.ui.test.SemanticsMatcher expectValue(androidx.compose.ui.semantics.SemanticsPropertyKey key, T expectedValue); + method public androidx.compose.ui.test.SemanticsMatcher keyIsDefined(androidx.compose.ui.semantics.SemanticsPropertyKey key); + method public androidx.compose.ui.test.SemanticsMatcher keyNotDefined(androidx.compose.ui.semantics.SemanticsPropertyKey key); + } + + public final class SemanticsNodeInteraction { + ctor public SemanticsNodeInteraction(androidx.compose.ui.test.TestContext testContext, boolean useUnmergedTree, androidx.compose.ui.test.SemanticsMatcher matcher); + ctor public SemanticsNodeInteraction(androidx.compose.ui.test.TestContext testContext, boolean useUnmergedTree, androidx.compose.ui.test.SemanticsSelector selector); + method public void assertDoesNotExist(); + method public androidx.compose.ui.test.SemanticsNodeInteraction assertExists(optional String? errorMessageOnFail); + method public void assertIsDeactivated(optional String? errorMessageOnFail); + method public androidx.compose.ui.semantics.SemanticsNode fetchSemanticsNode(optional String? errorMessageOnFail); + } + + public final class SemanticsNodeInteractionCollection { + ctor public SemanticsNodeInteractionCollection(androidx.compose.ui.test.TestContext testContext, boolean useUnmergedTree, androidx.compose.ui.test.SemanticsMatcher matcher); + ctor public SemanticsNodeInteractionCollection(androidx.compose.ui.test.TestContext testContext, boolean useUnmergedTree, androidx.compose.ui.test.SemanticsSelector selector); + method public java.util.List fetchSemanticsNodes(optional boolean atLeastOneRootRequired, optional String? errorMessageOnFail); + method public operator androidx.compose.ui.test.SemanticsNodeInteraction get(int index); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface SemanticsNodeInteractionsProvider { + method public androidx.compose.ui.test.SemanticsNodeInteractionCollection onAllNodes(androidx.compose.ui.test.SemanticsMatcher matcher, optional boolean useUnmergedTree); + method public androidx.compose.ui.test.SemanticsNodeInteraction onNode(androidx.compose.ui.test.SemanticsMatcher matcher, optional boolean useUnmergedTree); + } + + public final class SemanticsSelector { + ctor public SemanticsSelector(String description, boolean requiresExactlyOneNode, optional androidx.compose.ui.test.SemanticsSelector? chainedInputSelector, kotlin.jvm.functions.Function1,androidx.compose.ui.test.SelectionResult> selector); + method public String getDescription(); + method public androidx.compose.ui.test.SelectionResult map(Iterable nodes, String errorOnFail); + property public final String description; + } + + @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public final class StateRestorationTester { + ctor public StateRestorationTester(androidx.compose.ui.test.ComposeUiTest composeTest); + method public void emulateSaveAndRestore(); + method public void setContent(kotlin.jvm.functions.Function0 composable); + } + + public final class TestContext { + } + + @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi @kotlinx.coroutines.ExperimentalCoroutinesApi public final class TestMonotonicFrameClock implements androidx.compose.runtime.MonotonicFrameClock { + ctor public TestMonotonicFrameClock(kotlinx.coroutines.CoroutineScope coroutineScope, optional long frameDelayNanos, optional kotlin.jvm.functions.Function1 onPerformTraversals); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public kotlin.coroutines.ContinuationInterceptor getContinuationInterceptor(); + method public long getFrameDelayNanos(); + method public boolean getHasAwaiters(); + method public suspend Object? withFrameNanos(kotlin.jvm.functions.Function1 onFrame, kotlin.coroutines.Continuation); + property @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public final kotlin.coroutines.ContinuationInterceptor continuationInterceptor; + property public final long frameDelayNanos; + property public final boolean hasAwaiters; + } + + public final class TestMonotonicFrameClock_jvmKt { + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static long getFrameDelayMillis(androidx.compose.ui.test.TestMonotonicFrameClock); + } + + @SuppressCompatibility @androidx.compose.ui.test.InternalTestApi public interface TestOwner { + method public androidx.compose.ui.test.MainTestClock getMainClock(); + method public java.util.Set getRoots(boolean atLeastOneRootExpected); + method public T runOnUiThread(kotlin.jvm.functions.Function0 action); + property public abstract androidx.compose.ui.test.MainTestClock mainClock; + } + + public final class TestOwnerKt { + method @SuppressCompatibility @androidx.compose.ui.test.InternalTestApi public static androidx.compose.ui.test.TestContext createTestContext(androidx.compose.ui.test.TestOwner owner); + } + + public final class TextActionsKt { + method public static void performImeAction(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static void performTextClearance(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static void performTextInput(androidx.compose.ui.test.SemanticsNodeInteraction, String text); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void performTextInputSelection(androidx.compose.ui.test.SemanticsNodeInteraction, long selection); + method public static void performTextReplacement(androidx.compose.ui.test.SemanticsNodeInteraction, String text); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface TouchInjectionScope extends androidx.compose.ui.test.InjectionScope { + method public void cancel(optional long delayMillis); + method public androidx.compose.ui.geometry.Offset? currentPosition(optional int pointerId); + method public void down(int pointerId, long position); + method public default void down(long position); + method public void move(optional long delayMillis); + method public default void moveBy(int pointerId, long delta, optional long delayMillis); + method public default void moveBy(long delta, optional long delayMillis); + method public default void moveTo(int pointerId, long position, optional long delayMillis); + method public default void moveTo(long position, optional long delayMillis); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public default void moveWithHistory(java.util.List relativeHistoricalTimes, java.util.List historicalCoordinates, optional long delayMillis); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public void moveWithHistoryMultiPointer(java.util.List relativeHistoricalTimes, java.util.List> historicalCoordinates, optional long delayMillis); + method public void up(optional int pointerId); + method public default void updatePointerBy(int pointerId, long delta); + method public void updatePointerTo(int pointerId, long position); + } + + public final class TouchInjectionScopeKt { + method public static void click(androidx.compose.ui.test.TouchInjectionScope, optional long position); + method public static void doubleClick(androidx.compose.ui.test.TouchInjectionScope, optional long position, optional long delayMillis); + method public static void longClick(androidx.compose.ui.test.TouchInjectionScope, optional long position, optional long durationMillis); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void multiTouchSwipe(androidx.compose.ui.test.TouchInjectionScope, java.util.List> curves, optional long durationMillis, optional java.util.List keyTimes); + method public static void pinch(androidx.compose.ui.test.TouchInjectionScope, long start0, long end0, long start1, long end1, optional long durationMillis); + method public static void swipe(androidx.compose.ui.test.TouchInjectionScope, kotlin.jvm.functions.Function1 curve, optional long durationMillis, optional java.util.List keyTimes); + method public static void swipe(androidx.compose.ui.test.TouchInjectionScope, long start, long end, optional long durationMillis); + method public static void swipeDown(androidx.compose.ui.test.TouchInjectionScope, optional float startY, optional float endY, optional long durationMillis); + method public static void swipeLeft(androidx.compose.ui.test.TouchInjectionScope, optional float startX, optional float endX, optional long durationMillis); + method public static void swipeRight(androidx.compose.ui.test.TouchInjectionScope, optional float startX, optional float endX, optional long durationMillis); + method public static void swipeUp(androidx.compose.ui.test.TouchInjectionScope, optional float startY, optional float endY, optional long durationMillis); + method public static void swipeWithVelocity(androidx.compose.ui.test.TouchInjectionScope, long start, long end, float endVelocity, optional long durationMillis); + } + +} + +package androidx.compose.ui.test.internal { + + @SuppressCompatibility @androidx.compose.ui.test.InternalTestApi public abstract class DelayPropagatingContinuationInterceptorWrapper extends kotlin.coroutines.AbstractCoroutineContextElement implements kotlin.coroutines.ContinuationInterceptor kotlinx.coroutines.Delay { + ctor public DelayPropagatingContinuationInterceptorWrapper(kotlin.coroutines.ContinuationInterceptor? wrappedInterceptor); + } + +} + +package androidx.compose.ui.test.junit4.android { + + public final class ComposeNotIdleException extends java.lang.Exception { + ctor public ComposeNotIdleException(String? message, Throwable? cause); + } + +} + diff --git a/compose/ui/ui-test/api/res-1.7.0-beta07.txt b/compose/ui/ui-test/api/res-1.7.0-beta07.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/compose/ui/ui-test/api/restricted_1.7.0-beta07.txt b/compose/ui/ui-test/api/restricted_1.7.0-beta07.txt new file mode 100644 index 0000000000000..54dfd84a9fbfe --- /dev/null +++ b/compose/ui/ui-test/api/restricted_1.7.0-beta07.txt @@ -0,0 +1,603 @@ +// Signature format: 4.0 +package androidx.compose.ui.test { + + public final class ActionsKt { + method public static androidx.compose.ui.test.SemanticsNodeInteraction performClick(androidx.compose.ui.test.SemanticsNodeInteraction); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static androidx.compose.ui.test.SemanticsNodeInteraction performCustomAccessibilityActionWithLabel(androidx.compose.ui.test.SemanticsNodeInteraction, String label); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static androidx.compose.ui.test.SemanticsNodeInteraction performCustomAccessibilityActionWithLabelMatching(androidx.compose.ui.test.SemanticsNodeInteraction, optional String? predicateDescription, kotlin.jvm.functions.Function1 labelPredicate); + method @Deprecated public static androidx.compose.ui.test.SemanticsNodeInteraction performGesture(androidx.compose.ui.test.SemanticsNodeInteraction, kotlin.jvm.functions.Function1 block); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static androidx.compose.ui.test.SemanticsNodeInteraction performKeyInput(androidx.compose.ui.test.SemanticsNodeInteraction, kotlin.jvm.functions.Function1 block); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static androidx.compose.ui.test.SemanticsNodeInteraction performMouseInput(androidx.compose.ui.test.SemanticsNodeInteraction, kotlin.jvm.functions.Function1 block); + method public static androidx.compose.ui.test.SemanticsNodeInteraction performMultiModalInput(androidx.compose.ui.test.SemanticsNodeInteraction, kotlin.jvm.functions.Function1 block); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static androidx.compose.ui.test.SemanticsNodeInteraction performRotaryScrollInput(androidx.compose.ui.test.SemanticsNodeInteraction, kotlin.jvm.functions.Function1 block); + method public static androidx.compose.ui.test.SemanticsNodeInteraction performScrollTo(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteraction performScrollToIndex(androidx.compose.ui.test.SemanticsNodeInteraction, int index); + method public static androidx.compose.ui.test.SemanticsNodeInteraction performScrollToKey(androidx.compose.ui.test.SemanticsNodeInteraction, Object key); + method public static androidx.compose.ui.test.SemanticsNodeInteraction performScrollToNode(androidx.compose.ui.test.SemanticsNodeInteraction, androidx.compose.ui.test.SemanticsMatcher matcher); + method public static androidx.compose.ui.test.SemanticsNodeInteraction performSemanticsAction(androidx.compose.ui.test.SemanticsNodeInteraction, androidx.compose.ui.semantics.SemanticsPropertyKey>> key); + method @Deprecated public static void performSemanticsAction(androidx.compose.ui.test.SemanticsNodeInteraction, androidx.compose.ui.semantics.SemanticsPropertyKey>> key); + method public static > androidx.compose.ui.test.SemanticsNodeInteraction performSemanticsAction(androidx.compose.ui.test.SemanticsNodeInteraction, androidx.compose.ui.semantics.SemanticsPropertyKey> key, kotlin.jvm.functions.Function1 invocation); + method @Deprecated public static > void performSemanticsAction(androidx.compose.ui.test.SemanticsNodeInteraction, androidx.compose.ui.semantics.SemanticsPropertyKey> key, kotlin.jvm.functions.Function1 invocation); + method public static androidx.compose.ui.test.SemanticsNodeInteraction performTouchInput(androidx.compose.ui.test.SemanticsNodeInteraction, kotlin.jvm.functions.Function1 block); + method public static androidx.compose.ui.test.SemanticsNodeInteraction requestFocus(androidx.compose.ui.test.SemanticsNodeInteraction); + } + + @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public sealed interface AndroidComposeUiTest extends androidx.compose.ui.test.ComposeUiTest { + method public A? getActivity(); + property public abstract A? activity; + } + + @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public abstract class AndroidComposeUiTestEnvironment { + ctor public AndroidComposeUiTestEnvironment(optional kotlin.coroutines.CoroutineContext effectContext); + method public final void cancelAndRecreateRecomposer(); + method protected abstract A? getActivity(); + method public final androidx.compose.ui.test.AndroidComposeUiTest getTest(); + method public final R runTest(kotlin.jvm.functions.Function1,? extends R> block); + property protected abstract A? activity; + property public final androidx.compose.ui.test.AndroidComposeUiTest test; + } + + public final class AndroidImageHelpers_androidKt { + method @RequiresApi(android.os.Build.VERSION_CODES.O) public static androidx.compose.ui.graphics.ImageBitmap captureToImage(androidx.compose.ui.test.SemanticsNodeInteraction); + } + + public final class AssertionsKt { + method public static androidx.compose.ui.test.SemanticsNodeInteraction assert(androidx.compose.ui.test.SemanticsNodeInteraction, androidx.compose.ui.test.SemanticsMatcher matcher, optional kotlin.jvm.functions.Function0? messagePrefixOnError); + method public static androidx.compose.ui.test.SemanticsNodeInteractionCollection assertAll(androidx.compose.ui.test.SemanticsNodeInteractionCollection, androidx.compose.ui.test.SemanticsMatcher matcher); + method public static androidx.compose.ui.test.SemanticsNodeInteractionCollection assertAny(androidx.compose.ui.test.SemanticsNodeInteractionCollection, androidx.compose.ui.test.SemanticsMatcher matcher); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertContentDescriptionContains(androidx.compose.ui.test.SemanticsNodeInteraction, String value, optional boolean substring, optional boolean ignoreCase); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertContentDescriptionEquals(androidx.compose.ui.test.SemanticsNodeInteraction, java.lang.String... values); + method public static androidx.compose.ui.test.SemanticsNodeInteractionCollection assertCountEquals(androidx.compose.ui.test.SemanticsNodeInteractionCollection, int expectedSize); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertHasClickAction(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertHasNoClickAction(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertIsDisplayed(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertIsEnabled(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertIsFocused(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertIsNotDisplayed(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertIsNotEnabled(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertIsNotFocused(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertIsNotSelected(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertIsOff(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertIsOn(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertIsSelectable(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertIsSelected(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertIsToggleable(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertRangeInfoEquals(androidx.compose.ui.test.SemanticsNodeInteraction, androidx.compose.ui.semantics.ProgressBarRangeInfo value); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertTextContains(androidx.compose.ui.test.SemanticsNodeInteraction, String value, optional boolean substring, optional boolean ignoreCase); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertTextEquals(androidx.compose.ui.test.SemanticsNodeInteraction, String[] values, optional boolean includeEditableText); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertValueEquals(androidx.compose.ui.test.SemanticsNodeInteraction, String value); + method public static boolean isDisplayed(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static boolean isNotDisplayed(androidx.compose.ui.test.SemanticsNodeInteraction); + } + + public final class BoundsAssertionsKt { + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertHeightIsAtLeast(androidx.compose.ui.test.SemanticsNodeInteraction, float expectedMinHeight); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertHeightIsEqualTo(androidx.compose.ui.test.SemanticsNodeInteraction, float expectedHeight); + method public static void assertIsEqualTo(float, float expected, String subject, optional float tolerance); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertLeftPositionInRootIsEqualTo(androidx.compose.ui.test.SemanticsNodeInteraction, float expectedLeft); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertPositionInRootIsEqualTo(androidx.compose.ui.test.SemanticsNodeInteraction, float expectedLeft, float expectedTop); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertTopPositionInRootIsEqualTo(androidx.compose.ui.test.SemanticsNodeInteraction, float expectedTop); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertTouchHeightIsEqualTo(androidx.compose.ui.test.SemanticsNodeInteraction, float expectedHeight); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertTouchWidthIsEqualTo(androidx.compose.ui.test.SemanticsNodeInteraction, float expectedWidth); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertWidthIsAtLeast(androidx.compose.ui.test.SemanticsNodeInteraction, float expectedMinWidth); + method public static androidx.compose.ui.test.SemanticsNodeInteraction assertWidthIsEqualTo(androidx.compose.ui.test.SemanticsNodeInteraction, float expectedWidth); + method public static float getAlignmentLinePosition(androidx.compose.ui.test.SemanticsNodeInteraction, androidx.compose.ui.layout.AlignmentLine alignmentLine); + method public static androidx.compose.ui.unit.DpRect getBoundsInRoot(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.unit.DpRect getUnclippedBoundsInRoot(androidx.compose.ui.test.SemanticsNodeInteraction); + } + + public final class ComposeTimeoutException extends java.lang.Throwable { + ctor public ComposeTimeoutException(String? message); + } + + @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public sealed interface ComposeUiTest extends androidx.compose.ui.test.SemanticsNodeInteractionsProvider { + method public suspend Object? awaitIdle(kotlin.coroutines.Continuation); + method public androidx.compose.ui.unit.Density getDensity(); + method public androidx.compose.ui.test.MainTestClock getMainClock(); + method public void registerIdlingResource(androidx.compose.ui.test.IdlingResource idlingResource); + method public T runOnIdle(kotlin.jvm.functions.Function0 action); + method public T runOnUiThread(kotlin.jvm.functions.Function0 action); + method public void setContent(kotlin.jvm.functions.Function0 composable); + method public void unregisterIdlingResource(androidx.compose.ui.test.IdlingResource idlingResource); + method public void waitForIdle(); + method public void waitUntil(optional String? conditionDescription, optional long timeoutMillis, kotlin.jvm.functions.Function0 condition); + property public abstract androidx.compose.ui.unit.Density density; + property public abstract androidx.compose.ui.test.MainTestClock mainClock; + } + + public final class ComposeUiTestKt { + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void waitUntilAtLeastOneExists(androidx.compose.ui.test.ComposeUiTest, androidx.compose.ui.test.SemanticsMatcher matcher, optional long timeoutMillis); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void waitUntilDoesNotExist(androidx.compose.ui.test.ComposeUiTest, androidx.compose.ui.test.SemanticsMatcher matcher, optional long timeoutMillis); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void waitUntilExactlyOneExists(androidx.compose.ui.test.ComposeUiTest, androidx.compose.ui.test.SemanticsMatcher matcher, optional long timeoutMillis); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void waitUntilNodeCount(androidx.compose.ui.test.ComposeUiTest, androidx.compose.ui.test.SemanticsMatcher matcher, int count, optional long timeoutMillis); + } + + public final class ComposeUiTest_androidKt { + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static inline androidx.compose.ui.test.AndroidComposeUiTestEnvironment AndroidComposeUiTestEnvironment(optional kotlin.coroutines.CoroutineContext effectContext, kotlin.jvm.functions.Function0 activityProvider); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void runAndroidComposeUiTest(Class activityClass, optional kotlin.coroutines.CoroutineContext effectContext, kotlin.jvm.functions.Function1,kotlin.Unit> block); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static inline void runAndroidComposeUiTest(optional kotlin.coroutines.CoroutineContext effectContext, kotlin.jvm.functions.Function1,kotlin.Unit> block); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void runComposeUiTest(optional kotlin.coroutines.CoroutineContext effectContext, kotlin.jvm.functions.Function1 block); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void runEmptyComposeUiTest(kotlin.jvm.functions.Function1 block); + } + + public fun interface DeviceConfigurationOverride { + method @androidx.compose.runtime.Composable public void Override(kotlin.jvm.functions.Function0 contentUnderTest); + field public static final androidx.compose.ui.test.DeviceConfigurationOverride.Companion Companion; + } + + public static final class DeviceConfigurationOverride.Companion { + } + + public final class DeviceConfigurationOverrideKt { + method @androidx.compose.runtime.Composable public static void DeviceConfigurationOverride(androidx.compose.ui.test.DeviceConfigurationOverride override, kotlin.jvm.functions.Function0 content); + method public static infix androidx.compose.ui.test.DeviceConfigurationOverride then(androidx.compose.ui.test.DeviceConfigurationOverride, androidx.compose.ui.test.DeviceConfigurationOverride other); + } + + public final class DeviceConfigurationOverride_androidKt { + method public static androidx.compose.ui.test.DeviceConfigurationOverride DarkMode(androidx.compose.ui.test.DeviceConfigurationOverride.Companion, boolean isDarkMode); + method public static androidx.compose.ui.test.DeviceConfigurationOverride FontScale(androidx.compose.ui.test.DeviceConfigurationOverride.Companion, float fontScale); + method @RequiresApi(31) public static androidx.compose.ui.test.DeviceConfigurationOverride FontWeightAdjustment(androidx.compose.ui.test.DeviceConfigurationOverride.Companion, int fontWeightAdjustment); + method public static androidx.compose.ui.test.DeviceConfigurationOverride ForcedSize(androidx.compose.ui.test.DeviceConfigurationOverride.Companion, long size); + method public static androidx.compose.ui.test.DeviceConfigurationOverride LayoutDirection(androidx.compose.ui.test.DeviceConfigurationOverride.Companion, androidx.compose.ui.unit.LayoutDirection layoutDirection); + method public static androidx.compose.ui.test.DeviceConfigurationOverride Locales(androidx.compose.ui.test.DeviceConfigurationOverride.Companion, androidx.compose.ui.text.intl.LocaleList locales); + method @RequiresApi(23) public static androidx.compose.ui.test.DeviceConfigurationOverride RoundScreen(androidx.compose.ui.test.DeviceConfigurationOverride.Companion, boolean isScreenRound); + } + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This testing API is experimental and is likely to be changed or removed entirely") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalTestApi { + } + + public final class FiltersKt { + method public static androidx.compose.ui.test.SemanticsMatcher hasAnyAncestor(androidx.compose.ui.test.SemanticsMatcher matcher); + method public static androidx.compose.ui.test.SemanticsMatcher hasAnyChild(androidx.compose.ui.test.SemanticsMatcher matcher); + method public static androidx.compose.ui.test.SemanticsMatcher hasAnyDescendant(androidx.compose.ui.test.SemanticsMatcher matcher); + method public static androidx.compose.ui.test.SemanticsMatcher hasAnySibling(androidx.compose.ui.test.SemanticsMatcher matcher); + method public static androidx.compose.ui.test.SemanticsMatcher hasClickAction(); + method public static androidx.compose.ui.test.SemanticsMatcher hasContentDescription(String value, optional boolean substring, optional boolean ignoreCase); + method public static androidx.compose.ui.test.SemanticsMatcher hasContentDescriptionExactly(java.lang.String... values); + method public static androidx.compose.ui.test.SemanticsMatcher hasImeAction(int actionType); + method public static androidx.compose.ui.test.SemanticsMatcher hasInsertTextAtCursorAction(); + method public static androidx.compose.ui.test.SemanticsMatcher hasNoClickAction(); + method public static androidx.compose.ui.test.SemanticsMatcher hasNoScrollAction(); + method public static androidx.compose.ui.test.SemanticsMatcher hasParent(androidx.compose.ui.test.SemanticsMatcher matcher); + method public static androidx.compose.ui.test.SemanticsMatcher hasPerformImeAction(); + method public static androidx.compose.ui.test.SemanticsMatcher hasProgressBarRangeInfo(androidx.compose.ui.semantics.ProgressBarRangeInfo rangeInfo); + method public static androidx.compose.ui.test.SemanticsMatcher hasRequestFocusAction(); + method public static androidx.compose.ui.test.SemanticsMatcher hasScrollAction(); + method public static androidx.compose.ui.test.SemanticsMatcher hasScrollToIndexAction(); + method public static androidx.compose.ui.test.SemanticsMatcher hasScrollToKeyAction(); + method public static androidx.compose.ui.test.SemanticsMatcher hasScrollToNodeAction(); + method public static androidx.compose.ui.test.SemanticsMatcher hasSetTextAction(); + method public static androidx.compose.ui.test.SemanticsMatcher hasStateDescription(String value); + method public static androidx.compose.ui.test.SemanticsMatcher hasTestTag(String testTag); + method public static androidx.compose.ui.test.SemanticsMatcher hasText(String text, optional boolean substring, optional boolean ignoreCase); + method public static androidx.compose.ui.test.SemanticsMatcher hasTextExactly(String[] textValues, optional boolean includeEditableText); + method public static androidx.compose.ui.test.SemanticsMatcher isDialog(); + method public static androidx.compose.ui.test.SemanticsMatcher isEditable(); + method public static androidx.compose.ui.test.SemanticsMatcher isEnabled(); + method public static androidx.compose.ui.test.SemanticsMatcher isFocusable(); + method public static androidx.compose.ui.test.SemanticsMatcher isFocused(); + method public static androidx.compose.ui.test.SemanticsMatcher isHeading(); + method public static androidx.compose.ui.test.SemanticsMatcher isNotEnabled(); + method public static androidx.compose.ui.test.SemanticsMatcher isNotFocusable(); + method public static androidx.compose.ui.test.SemanticsMatcher isNotFocused(); + method public static androidx.compose.ui.test.SemanticsMatcher isNotSelected(); + method public static androidx.compose.ui.test.SemanticsMatcher isOff(); + method public static androidx.compose.ui.test.SemanticsMatcher isOn(); + method public static androidx.compose.ui.test.SemanticsMatcher isPopup(); + method public static androidx.compose.ui.test.SemanticsMatcher isRoot(); + method public static androidx.compose.ui.test.SemanticsMatcher isSelectable(); + method public static androidx.compose.ui.test.SemanticsMatcher isSelected(); + method public static androidx.compose.ui.test.SemanticsMatcher isToggleable(); + } + + public final class FindersKt { + method public static androidx.compose.ui.test.SemanticsNodeInteractionCollection onAllNodesWithContentDescription(androidx.compose.ui.test.SemanticsNodeInteractionsProvider, String label, optional boolean substring, optional boolean ignoreCase, optional boolean useUnmergedTree); + method public static androidx.compose.ui.test.SemanticsNodeInteractionCollection onAllNodesWithTag(androidx.compose.ui.test.SemanticsNodeInteractionsProvider, String testTag, optional boolean useUnmergedTree); + method public static androidx.compose.ui.test.SemanticsNodeInteractionCollection onAllNodesWithText(androidx.compose.ui.test.SemanticsNodeInteractionsProvider, String text, optional boolean substring, optional boolean ignoreCase, optional boolean useUnmergedTree); + method public static androidx.compose.ui.test.SemanticsNodeInteraction onNodeWithContentDescription(androidx.compose.ui.test.SemanticsNodeInteractionsProvider, String label, optional boolean substring, optional boolean ignoreCase, optional boolean useUnmergedTree); + method public static androidx.compose.ui.test.SemanticsNodeInteraction onNodeWithTag(androidx.compose.ui.test.SemanticsNodeInteractionsProvider, String testTag, optional boolean useUnmergedTree); + method public static androidx.compose.ui.test.SemanticsNodeInteraction onNodeWithText(androidx.compose.ui.test.SemanticsNodeInteractionsProvider, String text, optional boolean substring, optional boolean ignoreCase, optional boolean useUnmergedTree); + method public static androidx.compose.ui.test.SemanticsNodeInteraction onRoot(androidx.compose.ui.test.SemanticsNodeInteractionsProvider, optional boolean useUnmergedTree); + } + + @Deprecated public final class GestureScope { + ctor @Deprecated public GestureScope(androidx.compose.ui.semantics.SemanticsNode node, androidx.compose.ui.test.TestContext testContext); + method @Deprecated public long getVisibleSize(); + property @Deprecated public final long visibleSize; + field @Deprecated @kotlin.PublishedApi internal final androidx.compose.ui.test.MultiModalInjectionScope delegateScope; + } + + public final class GestureScopeKt { + method @Deprecated @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void advanceEventTime(androidx.compose.ui.test.GestureScope, long durationMillis); + method @Deprecated public static void cancel(androidx.compose.ui.test.GestureScope); + method @Deprecated public static void click(androidx.compose.ui.test.GestureScope, optional long position); + method @Deprecated public static void doubleClick(androidx.compose.ui.test.GestureScope, optional long position, optional long delayMillis); + method @Deprecated public static void down(androidx.compose.ui.test.GestureScope, int pointerId, long position); + method @Deprecated public static void down(androidx.compose.ui.test.GestureScope, long position); + method @Deprecated public static inline float getBottom(androidx.compose.ui.test.GestureScope); + method @Deprecated public static long getBottomCenter(androidx.compose.ui.test.GestureScope); + method @Deprecated public static long getBottomLeft(androidx.compose.ui.test.GestureScope); + method @Deprecated public static long getBottomRight(androidx.compose.ui.test.GestureScope); + method @Deprecated public static long getCenter(androidx.compose.ui.test.GestureScope); + method @Deprecated public static long getCenterLeft(androidx.compose.ui.test.GestureScope); + method @Deprecated public static long getCenterRight(androidx.compose.ui.test.GestureScope); + method @Deprecated public static inline float getCenterX(androidx.compose.ui.test.GestureScope); + method @Deprecated public static inline float getCenterY(androidx.compose.ui.test.GestureScope); + method @Deprecated public static inline int getHeight(androidx.compose.ui.test.GestureScope); + method @Deprecated public static inline float getLeft(androidx.compose.ui.test.GestureScope); + method @Deprecated public static inline float getRight(androidx.compose.ui.test.GestureScope); + method @Deprecated public static inline float getTop(androidx.compose.ui.test.GestureScope); + method @Deprecated public static long getTopCenter(androidx.compose.ui.test.GestureScope); + method @Deprecated public static long getTopLeft(androidx.compose.ui.test.GestureScope); + method @Deprecated public static long getTopRight(androidx.compose.ui.test.GestureScope); + method @Deprecated public static inline int getWidth(androidx.compose.ui.test.GestureScope); + method @Deprecated public static void longClick(androidx.compose.ui.test.GestureScope, optional long position, optional long durationMillis); + method @Deprecated public static void move(androidx.compose.ui.test.GestureScope); + method @Deprecated public static void moveBy(androidx.compose.ui.test.GestureScope, int pointerId, long delta); + method @Deprecated public static void moveBy(androidx.compose.ui.test.GestureScope, long delta); + method @Deprecated public static void movePointerBy(androidx.compose.ui.test.GestureScope, int pointerId, long delta); + method @Deprecated public static void movePointerTo(androidx.compose.ui.test.GestureScope, int pointerId, long position); + method @Deprecated public static void moveTo(androidx.compose.ui.test.GestureScope, int pointerId, long position); + method @Deprecated public static void moveTo(androidx.compose.ui.test.GestureScope, long position); + method @Deprecated public static long percentOffset(androidx.compose.ui.test.GestureScope, optional float x, optional float y); + method @Deprecated public static void pinch(androidx.compose.ui.test.GestureScope, long start0, long end0, long start1, long end1, optional long durationMillis); + method @Deprecated public static void swipe(androidx.compose.ui.test.GestureScope, long start, long end, optional long durationMillis); + method @Deprecated public static void swipeDown(androidx.compose.ui.test.GestureScope); + method @Deprecated @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void swipeDown(androidx.compose.ui.test.GestureScope, optional float startY, optional float endY, optional long durationMillis); + method @Deprecated public static void swipeLeft(androidx.compose.ui.test.GestureScope); + method @Deprecated @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void swipeLeft(androidx.compose.ui.test.GestureScope, optional float startX, optional float endX, optional long durationMillis); + method @Deprecated public static void swipeRight(androidx.compose.ui.test.GestureScope); + method @Deprecated @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void swipeRight(androidx.compose.ui.test.GestureScope, optional float startX, optional float endX, optional long durationMillis); + method @Deprecated public static void swipeUp(androidx.compose.ui.test.GestureScope); + method @Deprecated @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void swipeUp(androidx.compose.ui.test.GestureScope, optional float startY, optional float endY, optional long durationMillis); + method @Deprecated public static void swipeWithVelocity(androidx.compose.ui.test.GestureScope, long start, long end, float endVelocity, optional long durationMillis); + method @Deprecated public static void up(androidx.compose.ui.test.GestureScope, optional int pointerId); + } + + public final class GlobalAssertions { + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void addGlobalAssertion(String name, kotlin.jvm.functions.Function1 assertion); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static androidx.compose.ui.test.SemanticsNodeInteraction invokeGlobalAssertions(androidx.compose.ui.test.SemanticsNodeInteraction); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static androidx.compose.ui.test.SemanticsNodeInteractionCollection invokeGlobalAssertions(androidx.compose.ui.test.SemanticsNodeInteractionCollection); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void removeGlobalAssertion(String name); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface IdlingResource { + method public default String? getDiagnosticMessageIfBusy(); + method public boolean isIdleNow(); + property public abstract boolean isIdleNow; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface InjectionScope extends androidx.compose.ui.unit.Density { + method public void advanceEventTime(optional long durationMillis); + method public default float getBottom(); + method public default long getBottomCenter(); + method public default long getBottomLeft(); + method public default long getBottomRight(); + method public default long getCenter(); + method public default long getCenterLeft(); + method public default long getCenterRight(); + method public default float getCenterX(); + method public default float getCenterY(); + method public default long getEventPeriodMillis(); + method public default int getHeight(); + method public default float getLeft(); + method public default float getRight(); + method public default float getTop(); + method public default long getTopCenter(); + method public default long getTopLeft(); + method public default long getTopRight(); + method public androidx.compose.ui.platform.ViewConfiguration getViewConfiguration(); + method public long getVisibleSize(); + method public default int getWidth(); + method public default long percentOffset(optional float x, optional float y); + property public default float bottom; + property public default long bottomCenter; + property public default long bottomLeft; + property public default long bottomRight; + property public default long center; + property public default long centerLeft; + property public default long centerRight; + property public default float centerX; + property public default float centerY; + property public default long eventPeriodMillis; + property public default int height; + property public default float left; + property public default float right; + property public default float top; + property public default long topCenter; + property public default long topLeft; + property public default long topRight; + property public abstract androidx.compose.ui.platform.ViewConfiguration viewConfiguration; + property public abstract long visibleSize; + property public default int width; + } + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This is internal API for Compose modules that may change frequently and without warning.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface InternalTestApi { + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface KeyInjectionScope extends androidx.compose.ui.test.InjectionScope { + method public boolean isCapsLockOn(); + method public boolean isKeyDown(long key); + method public boolean isNumLockOn(); + method public boolean isScrollLockOn(); + method public void keyDown(long key); + method public void keyUp(long key); + property public abstract boolean isCapsLockOn; + property public abstract boolean isNumLockOn; + property public abstract boolean isScrollLockOn; + } + + public final class KeyInjectionScopeKt { + method public static boolean isAltDown(androidx.compose.ui.test.KeyInjectionScope); + method public static boolean isCtrlDown(androidx.compose.ui.test.KeyInjectionScope); + method public static boolean isFnDown(androidx.compose.ui.test.KeyInjectionScope); + method public static boolean isMetaDown(androidx.compose.ui.test.KeyInjectionScope); + method public static boolean isShiftDown(androidx.compose.ui.test.KeyInjectionScope); + method public static void pressKey(androidx.compose.ui.test.KeyInjectionScope, long key, optional long pressDurationMillis); + method public static void withKeyDown(androidx.compose.ui.test.KeyInjectionScope, long key, kotlin.jvm.functions.Function1 block); + method public static void withKeyToggled(androidx.compose.ui.test.KeyInjectionScope, long key, kotlin.jvm.functions.Function1 block); + method public static void withKeysDown(androidx.compose.ui.test.KeyInjectionScope, java.util.List keys, kotlin.jvm.functions.Function1 block); + method public static void withKeysToggled(androidx.compose.ui.test.KeyInjectionScope, java.util.List keys, kotlin.jvm.functions.Function1 block); + } + + public final class KeyInputHelpersKt { + method public static boolean performKeyPress(androidx.compose.ui.test.SemanticsNodeInteraction, android.view.KeyEvent keyEvent); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface MainTestClock { + method public void advanceTimeBy(long milliseconds, optional boolean ignoreFrameDuration); + method public void advanceTimeByFrame(); + method public void advanceTimeUntil(optional long timeoutMillis, kotlin.jvm.functions.Function0 condition); + method public boolean getAutoAdvance(); + method public long getCurrentTime(); + method public void setAutoAdvance(boolean); + property public abstract boolean autoAdvance; + property public abstract long currentTime; + } + + @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi @kotlin.jvm.JvmInline public final value class MouseButton { + ctor public MouseButton(int buttonId); + method public int getButtonId(); + property public final int buttonId; + field public static final androidx.compose.ui.test.MouseButton.Companion Companion; + } + + @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static final class MouseButton.Companion { + method public int getPrimary(); + method public int getSecondary(); + method public int getTertiary(); + property public final int Primary; + property public final int Secondary; + property public final int Tertiary; + } + + @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public interface MouseInjectionScope extends androidx.compose.ui.test.InjectionScope { + method public void cancel(optional long delayMillis); + method public void enter(optional long position, optional long delayMillis); + method public void exit(optional long position, optional long delayMillis); + method public long getCurrentPosition(); + method public default void moveBy(long delta, optional long delayMillis); + method public void moveTo(long position, optional long delayMillis); + method public void press(optional int button); + method public void release(optional int button); + method public void scroll(float delta, optional int scrollWheel); + method public default void updatePointerBy(long delta); + method public void updatePointerTo(long position); + property public abstract long currentPosition; + } + + public final class MouseInjectionScopeKt { + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void animateAlong(androidx.compose.ui.test.MouseInjectionScope, kotlin.jvm.functions.Function1 curve, optional long durationMillis); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void animateBy(androidx.compose.ui.test.MouseInjectionScope, long delta, optional long durationMillis); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void animateTo(androidx.compose.ui.test.MouseInjectionScope, long position, optional long durationMillis); + method @Deprecated @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void click(androidx.compose.ui.test.MouseInjectionScope, optional long position); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void click(androidx.compose.ui.test.MouseInjectionScope, optional long position, optional int button); + method @Deprecated @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void doubleClick(androidx.compose.ui.test.MouseInjectionScope, optional long position); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void doubleClick(androidx.compose.ui.test.MouseInjectionScope, optional long position, optional int button); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void dragAndDrop(androidx.compose.ui.test.MouseInjectionScope, long start, long end, optional int button, optional long durationMillis); + method @Deprecated @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void dragAndDrop(androidx.compose.ui.test.MouseInjectionScope, long start, long end, optional long durationMillis); + method @Deprecated @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void longClick(androidx.compose.ui.test.MouseInjectionScope, optional long position); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void longClick(androidx.compose.ui.test.MouseInjectionScope, optional long position, optional int button); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void rightClick(androidx.compose.ui.test.MouseInjectionScope, optional long position); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void smoothScroll(androidx.compose.ui.test.MouseInjectionScope, float scrollAmount, optional long durationMillis, optional int scrollWheel); + method @Deprecated @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void tripleClick(androidx.compose.ui.test.MouseInjectionScope, optional long position); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void tripleClick(androidx.compose.ui.test.MouseInjectionScope, optional long position, optional int button); + } + + public sealed interface MultiModalInjectionScope extends androidx.compose.ui.test.InjectionScope { + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public void key(kotlin.jvm.functions.Function1 block); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public void mouse(kotlin.jvm.functions.Function1 block); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public void rotary(kotlin.jvm.functions.Function1 block); + method public void touch(kotlin.jvm.functions.Function1 block); + } + + public final class OutputKt { + method public static void printToLog(androidx.compose.ui.test.SemanticsNodeInteraction, String tag, optional int maxDepth); + method public static void printToLog(androidx.compose.ui.test.SemanticsNodeInteractionCollection, String tag, optional int maxDepth); + method public static String printToString(androidx.compose.ui.test.SemanticsNodeInteraction, optional int maxDepth); + method public static String printToString(androidx.compose.ui.test.SemanticsNodeInteractionCollection, optional int maxDepth); + } + + public final class PlatformTextInputMethodOverrideKt { + method @Deprecated @SuppressCompatibility @androidx.compose.runtime.Composable @androidx.compose.ui.test.ExperimentalTestApi public static void PlatformTextInputMethodTestOverride(androidx.compose.ui.platform.PlatformTextInputSession sessionHandler, kotlin.jvm.functions.Function0 content); + } + + @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public interface RotaryInjectionScope extends androidx.compose.ui.test.InjectionScope { + method public void rotateToScrollHorizontally(float horizontalScrollPixels); + method public void rotateToScrollVertically(float verticalScrollPixels); + } + + @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi @kotlin.jvm.JvmInline public final value class ScrollWheel { + method public int getValue(); + property public final int value; + field public static final androidx.compose.ui.test.ScrollWheel.Companion Companion; + } + + @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static final class ScrollWheel.Companion { + method public int getHorizontal(); + method public int getVertical(); + property public final int Horizontal; + property public final int Vertical; + } + + public final class SelectionResult { + ctor public SelectionResult(java.util.List selectedNodes, optional String? customErrorOnNoMatch); + method public String? getCustomErrorOnNoMatch(); + method public java.util.List getSelectedNodes(); + property public final String? customErrorOnNoMatch; + property public final java.util.List selectedNodes; + } + + public final class SelectorsKt { + method public static androidx.compose.ui.test.SemanticsNodeInteractionCollection filter(androidx.compose.ui.test.SemanticsNodeInteractionCollection, androidx.compose.ui.test.SemanticsMatcher matcher); + method public static androidx.compose.ui.test.SemanticsNodeInteraction filterToOne(androidx.compose.ui.test.SemanticsNodeInteractionCollection, androidx.compose.ui.test.SemanticsMatcher matcher); + method public static androidx.compose.ui.test.SemanticsNodeInteractionCollection onAncestors(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteraction onChild(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteraction onChildAt(androidx.compose.ui.test.SemanticsNodeInteraction, int index); + method public static androidx.compose.ui.test.SemanticsNodeInteractionCollection onChildren(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteraction onFirst(androidx.compose.ui.test.SemanticsNodeInteractionCollection); + method public static androidx.compose.ui.test.SemanticsNodeInteraction onLast(androidx.compose.ui.test.SemanticsNodeInteractionCollection); + method public static androidx.compose.ui.test.SemanticsNodeInteraction onParent(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteraction onSibling(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static androidx.compose.ui.test.SemanticsNodeInteractionCollection onSiblings(androidx.compose.ui.test.SemanticsNodeInteraction); + } + + public final class SemanticsMatcher { + ctor public SemanticsMatcher(String description, kotlin.jvm.functions.Function1 matcher); + method public infix androidx.compose.ui.test.SemanticsMatcher and(androidx.compose.ui.test.SemanticsMatcher other); + method public String getDescription(); + method public boolean matches(androidx.compose.ui.semantics.SemanticsNode node); + method public boolean matchesAny(Iterable nodes); + method public operator androidx.compose.ui.test.SemanticsMatcher not(); + method public infix androidx.compose.ui.test.SemanticsMatcher or(androidx.compose.ui.test.SemanticsMatcher other); + property public final String description; + field public static final androidx.compose.ui.test.SemanticsMatcher.Companion Companion; + } + + public static final class SemanticsMatcher.Companion { + method public androidx.compose.ui.test.SemanticsMatcher expectValue(androidx.compose.ui.semantics.SemanticsPropertyKey key, T expectedValue); + method public androidx.compose.ui.test.SemanticsMatcher keyIsDefined(androidx.compose.ui.semantics.SemanticsPropertyKey key); + method public androidx.compose.ui.test.SemanticsMatcher keyNotDefined(androidx.compose.ui.semantics.SemanticsPropertyKey key); + } + + public final class SemanticsNodeInteraction { + ctor public SemanticsNodeInteraction(androidx.compose.ui.test.TestContext testContext, boolean useUnmergedTree, androidx.compose.ui.test.SemanticsMatcher matcher); + ctor public SemanticsNodeInteraction(androidx.compose.ui.test.TestContext testContext, boolean useUnmergedTree, androidx.compose.ui.test.SemanticsSelector selector); + method public void assertDoesNotExist(); + method public androidx.compose.ui.test.SemanticsNodeInteraction assertExists(optional String? errorMessageOnFail); + method public void assertIsDeactivated(optional String? errorMessageOnFail); + method public androidx.compose.ui.semantics.SemanticsNode fetchSemanticsNode(optional String? errorMessageOnFail); + } + + public final class SemanticsNodeInteractionCollection { + ctor public SemanticsNodeInteractionCollection(androidx.compose.ui.test.TestContext testContext, boolean useUnmergedTree, androidx.compose.ui.test.SemanticsMatcher matcher); + ctor public SemanticsNodeInteractionCollection(androidx.compose.ui.test.TestContext testContext, boolean useUnmergedTree, androidx.compose.ui.test.SemanticsSelector selector); + method public java.util.List fetchSemanticsNodes(optional boolean atLeastOneRootRequired, optional String? errorMessageOnFail); + method public operator androidx.compose.ui.test.SemanticsNodeInteraction get(int index); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface SemanticsNodeInteractionsProvider { + method public androidx.compose.ui.test.SemanticsNodeInteractionCollection onAllNodes(androidx.compose.ui.test.SemanticsMatcher matcher, optional boolean useUnmergedTree); + method public androidx.compose.ui.test.SemanticsNodeInteraction onNode(androidx.compose.ui.test.SemanticsMatcher matcher, optional boolean useUnmergedTree); + } + + public final class SemanticsSelector { + ctor public SemanticsSelector(String description, boolean requiresExactlyOneNode, optional androidx.compose.ui.test.SemanticsSelector? chainedInputSelector, kotlin.jvm.functions.Function1,androidx.compose.ui.test.SelectionResult> selector); + method public String getDescription(); + method public androidx.compose.ui.test.SelectionResult map(Iterable nodes, String errorOnFail); + property public final String description; + } + + @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public final class StateRestorationTester { + ctor public StateRestorationTester(androidx.compose.ui.test.ComposeUiTest composeTest); + method public void emulateSaveAndRestore(); + method public void setContent(kotlin.jvm.functions.Function0 composable); + } + + public final class TestContext { + } + + @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi @kotlinx.coroutines.ExperimentalCoroutinesApi public final class TestMonotonicFrameClock implements androidx.compose.runtime.MonotonicFrameClock { + ctor public TestMonotonicFrameClock(kotlinx.coroutines.CoroutineScope coroutineScope, optional long frameDelayNanos, optional kotlin.jvm.functions.Function1 onPerformTraversals); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public kotlin.coroutines.ContinuationInterceptor getContinuationInterceptor(); + method public long getFrameDelayNanos(); + method public boolean getHasAwaiters(); + method public suspend Object? withFrameNanos(kotlin.jvm.functions.Function1 onFrame, kotlin.coroutines.Continuation); + property @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public final kotlin.coroutines.ContinuationInterceptor continuationInterceptor; + property public final long frameDelayNanos; + property public final boolean hasAwaiters; + } + + public final class TestMonotonicFrameClock_jvmKt { + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static long getFrameDelayMillis(androidx.compose.ui.test.TestMonotonicFrameClock); + } + + @SuppressCompatibility @androidx.compose.ui.test.InternalTestApi public interface TestOwner { + method public androidx.compose.ui.test.MainTestClock getMainClock(); + method public java.util.Set getRoots(boolean atLeastOneRootExpected); + method public T runOnUiThread(kotlin.jvm.functions.Function0 action); + property public abstract androidx.compose.ui.test.MainTestClock mainClock; + } + + public final class TestOwnerKt { + method @SuppressCompatibility @androidx.compose.ui.test.InternalTestApi public static androidx.compose.ui.test.TestContext createTestContext(androidx.compose.ui.test.TestOwner owner); + } + + public final class TextActionsKt { + method public static void performImeAction(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static void performTextClearance(androidx.compose.ui.test.SemanticsNodeInteraction); + method public static void performTextInput(androidx.compose.ui.test.SemanticsNodeInteraction, String text); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void performTextInputSelection(androidx.compose.ui.test.SemanticsNodeInteraction, long selection); + method public static void performTextReplacement(androidx.compose.ui.test.SemanticsNodeInteraction, String text); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface TouchInjectionScope extends androidx.compose.ui.test.InjectionScope { + method public void cancel(optional long delayMillis); + method public androidx.compose.ui.geometry.Offset? currentPosition(optional int pointerId); + method public void down(int pointerId, long position); + method public default void down(long position); + method public void move(optional long delayMillis); + method public default void moveBy(int pointerId, long delta, optional long delayMillis); + method public default void moveBy(long delta, optional long delayMillis); + method public default void moveTo(int pointerId, long position, optional long delayMillis); + method public default void moveTo(long position, optional long delayMillis); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public default void moveWithHistory(java.util.List relativeHistoricalTimes, java.util.List historicalCoordinates, optional long delayMillis); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public void moveWithHistoryMultiPointer(java.util.List relativeHistoricalTimes, java.util.List> historicalCoordinates, optional long delayMillis); + method public void up(optional int pointerId); + method public default void updatePointerBy(int pointerId, long delta); + method public void updatePointerTo(int pointerId, long position); + } + + public final class TouchInjectionScopeKt { + method public static void click(androidx.compose.ui.test.TouchInjectionScope, optional long position); + method public static void doubleClick(androidx.compose.ui.test.TouchInjectionScope, optional long position, optional long delayMillis); + method public static void longClick(androidx.compose.ui.test.TouchInjectionScope, optional long position, optional long durationMillis); + method @SuppressCompatibility @androidx.compose.ui.test.ExperimentalTestApi public static void multiTouchSwipe(androidx.compose.ui.test.TouchInjectionScope, java.util.List> curves, optional long durationMillis, optional java.util.List keyTimes); + method public static void pinch(androidx.compose.ui.test.TouchInjectionScope, long start0, long end0, long start1, long end1, optional long durationMillis); + method public static void swipe(androidx.compose.ui.test.TouchInjectionScope, kotlin.jvm.functions.Function1 curve, optional long durationMillis, optional java.util.List keyTimes); + method public static void swipe(androidx.compose.ui.test.TouchInjectionScope, long start, long end, optional long durationMillis); + method public static void swipeDown(androidx.compose.ui.test.TouchInjectionScope, optional float startY, optional float endY, optional long durationMillis); + method public static void swipeLeft(androidx.compose.ui.test.TouchInjectionScope, optional float startX, optional float endX, optional long durationMillis); + method public static void swipeRight(androidx.compose.ui.test.TouchInjectionScope, optional float startX, optional float endX, optional long durationMillis); + method public static void swipeUp(androidx.compose.ui.test.TouchInjectionScope, optional float startY, optional float endY, optional long durationMillis); + method public static void swipeWithVelocity(androidx.compose.ui.test.TouchInjectionScope, long start, long end, float endVelocity, optional long durationMillis); + } + +} + +package androidx.compose.ui.test.internal { + + @SuppressCompatibility @androidx.compose.ui.test.InternalTestApi public abstract class DelayPropagatingContinuationInterceptorWrapper extends kotlin.coroutines.AbstractCoroutineContextElement implements kotlin.coroutines.ContinuationInterceptor kotlinx.coroutines.Delay { + ctor public DelayPropagatingContinuationInterceptorWrapper(kotlin.coroutines.ContinuationInterceptor? wrappedInterceptor); + } + +} + +package androidx.compose.ui.test.junit4.android { + + public final class ComposeNotIdleException extends java.lang.Exception { + ctor public ComposeNotIdleException(String? message, Throwable? cause); + } + +} + diff --git a/compose/ui/ui-test/src/androidInstrumentedTest/kotlin/androidx/compose/ui/test/TextActionsTest.kt b/compose/ui/ui-test/src/androidInstrumentedTest/kotlin/androidx/compose/ui/test/TextActionsTest.kt index 0eb1a24804a8a..4332646307fff 100644 --- a/compose/ui/ui-test/src/androidInstrumentedTest/kotlin/androidx/compose/ui/test/TextActionsTest.kt +++ b/compose/ui/ui-test/src/androidInstrumentedTest/kotlin/androidx/compose/ui/test/TextActionsTest.kt @@ -23,6 +23,7 @@ import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.runtime.Composable import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember +import androidx.compose.testutils.expectError import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.testTag @@ -100,10 +101,14 @@ class TextActionsTest { @Test fun performTextInput_setTextNotSupported_shouldFail() { rule.setContent { - BoundaryNode(fieldTag, Modifier.semantics { - isEditable = true - insertTextAtCursor { true } - }) + BoundaryNode( + fieldTag, + Modifier.semantics { + isEditable = true + insertTextAtCursor { true } + requestFocus { true } + } + ) } expectErrorMessageStartsWith( @@ -205,10 +210,8 @@ class TextActionsTest { TextFieldUi(readOnly = true) } - rule.onNodeWithTag(fieldTag).performTextInput("hi") - rule.runOnIdle { - assertThat(lastSeenText).isEqualTo("") - } + expectError { rule.onNodeWithTag(fieldTag).performTextInput("hi") } + rule.runOnIdle { assertThat(lastSeenText).isEqualTo("") } } @Test diff --git a/compose/ui/ui-test/src/androidInstrumentedTest/kotlin/androidx/compose/ui/test/injectionscope/touch/MoveWithHistoryTest.kt b/compose/ui/ui-test/src/androidInstrumentedTest/kotlin/androidx/compose/ui/test/injectionscope/touch/MoveWithHistoryTest.kt index d6e45fb46dce0..51854429135c1 100644 --- a/compose/ui/ui-test/src/androidInstrumentedTest/kotlin/androidx/compose/ui/test/injectionscope/touch/MoveWithHistoryTest.kt +++ b/compose/ui/ui-test/src/androidInstrumentedTest/kotlin/androidx/compose/ui/test/injectionscope/touch/MoveWithHistoryTest.kt @@ -29,6 +29,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier import androidx.compose.ui.geometry.Offset +import androidx.compose.ui.input.pointer.util.VelocityTrackerAddPointsFix import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.platform.testTag import androidx.compose.ui.test.ExperimentalTestApi @@ -62,8 +63,7 @@ class MoveWithHistoryTest { Box( Modifier .fillMaxSize() - .wrapContentSize(alignment) - ) { + .wrapContentSize(alignment)) { ClickableTestBox(modifier = recorder, tag = tag) } } @@ -124,9 +124,16 @@ class MoveWithHistoryTest { val from = topCenter + Offset(0f, 120f) val to = topCenter + Offset(0f, 100f) - val historicalTimes = listOf(-16L, -12L, -8L) - val historicalCoordinates = + val historicalTimes = if (VelocityTrackerAddPointsFix) { + listOf(-16L, -12L, -8L) + } else { + listOf(-16L, -8L) + } + val historicalCoordinates = if (VelocityTrackerAddPointsFix) { listOf(to + Offset(0f, 70f), to + Offset(0f, 55f), to + Offset(0f, 35f)) + } else { + listOf(to + Offset(0f, 70f), to + Offset(0f, 35f)) + } val delayMillis = 100L down(from) diff --git a/compose/ui/ui-test/src/commonMain/kotlin/androidx/compose/ui/test/TextActions.kt b/compose/ui/ui-test/src/commonMain/kotlin/androidx/compose/ui/test/TextActions.kt index 22ff4684fa9c6..a560b4b8cfeaf 100644 --- a/compose/ui/ui-test/src/commonMain/kotlin/androidx/compose/ui/test/TextActions.kt +++ b/compose/ui/ui-test/src/commonMain/kotlin/androidx/compose/ui/test/TextActions.kt @@ -54,7 +54,7 @@ fun SemanticsNodeInteraction.performTextInput(text: String) { */ @ExperimentalTestApi fun SemanticsNodeInteraction.performTextInputSelection(selection: TextRange) { - getNodeAndFocus() + getNodeAndFocus(requireEditable = false) performSemanticsAction(SemanticsActions.SetSelection) { // Pass true as the last parameter since this range is relative to the text before any // VisualTransformation is applied. @@ -89,9 +89,8 @@ fun SemanticsNodeInteraction.performImeAction() { val errorOnFail = "Failed to perform IME action." assert(hasPerformImeAction()) { errorOnFail } assert(!hasImeAction(ImeAction.Default)) { errorOnFail } - @OptIn(ExperimentalTestApi::class) - invokeGlobalAssertions() - val node = getNodeAndFocus(errorOnFail) + @OptIn(ExperimentalTestApi::class) invokeGlobalAssertions() + val node = getNodeAndFocus(errorOnFail, requireEditable = false) wrapAssertionErrorsWithNodeInfo(selector, node) { performSemanticsAction(OnImeAction) { @@ -107,15 +106,19 @@ fun SemanticsNodeInteraction.performImeAction() { } private fun SemanticsNodeInteraction.getNodeAndFocus( - errorOnFail: String = "Failed to perform text input." + errorOnFail: String = "Failed to perform text input.", + requireEditable: Boolean = true ): SemanticsNode { @OptIn(ExperimentalTestApi::class) invokeGlobalAssertions() val node = fetchSemanticsNode(errorOnFail) assert(isEnabled()) { errorOnFail } - assert(hasSetTextAction()) { errorOnFail } assert(hasRequestFocusAction()) { errorOnFail } - assert(hasInsertTextAtCursorAction()) { errorOnFail } + if (requireEditable) { + assert(isEditable()) { errorOnFail } + assert(hasSetTextAction()) { errorOnFail } + assert(hasInsertTextAtCursorAction()) { errorOnFail } + } if (!isFocused().matches(node)) { // Get focus diff --git a/compose/ui/ui-test/src/skikoMain/kotlin/androidx/compose/ui/test/ComposeUiTest.skikoMain.kt b/compose/ui/ui-test/src/skikoMain/kotlin/androidx/compose/ui/test/ComposeUiTest.skikoMain.kt index c407eaf314663..f829b47289608 100644 --- a/compose/ui/ui-test/src/skikoMain/kotlin/androidx/compose/ui/test/ComposeUiTest.skikoMain.kt +++ b/compose/ui/ui-test/src/skikoMain/kotlin/androidx/compose/ui/test/ComposeUiTest.skikoMain.kt @@ -419,7 +419,7 @@ class SkikoComposeUiTest @InternalTestApi constructor( private inner class TestContext : PlatformContext by PlatformContext.Empty { override val windowInfo: WindowInfo = TestWindowInfo() - override val textInputService: PlatformTextInputService = TestTextInputService() + override val textInputService = TestTextInputService() override val rootForTestListener: PlatformContext.RootForTestListener get() = composeRootRegistry diff --git a/compose/ui/ui-text-google-fonts/api/1.7.0-beta07.txt b/compose/ui/ui-text-google-fonts/api/1.7.0-beta07.txt new file mode 100644 index 0000000000000..88ad34fd7b996 --- /dev/null +++ b/compose/ui/ui-text-google-fonts/api/1.7.0-beta07.txt @@ -0,0 +1,27 @@ +// Signature format: 4.0 +package androidx.compose.ui.text.googlefonts { + + public final class GoogleFont { + ctor public GoogleFont(String name, optional boolean bestEffort); + method public boolean getBestEffort(); + method public String getName(); + property public final boolean bestEffort; + property public final String name; + } + + public static final class GoogleFont.Provider { + ctor public GoogleFont.Provider(String providerAuthority, String providerPackage, @ArrayRes int certificates); + ctor public GoogleFont.Provider(String providerAuthority, String providerPackage, java.util.List> certificates); + } + + public final class GoogleFontKt { + method public static androidx.compose.ui.text.font.Font Font(androidx.compose.ui.text.googlefonts.GoogleFont googleFont, androidx.compose.ui.text.googlefonts.GoogleFont.Provider fontProvider, optional androidx.compose.ui.text.font.FontWeight weight, optional int style); + method @WorkerThread public static boolean isAvailableOnDevice(androidx.compose.ui.text.googlefonts.GoogleFont.Provider, android.content.Context context); + } + + public final class XmlLoaderKt { + method public static androidx.compose.ui.text.googlefonts.GoogleFont GoogleFont(android.content.Context context, @FontRes int fontXml); + } + +} + diff --git a/compose/ui/ui-text-google-fonts/api/res-1.7.0-beta07.txt b/compose/ui/ui-text-google-fonts/api/res-1.7.0-beta07.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/compose/ui/ui-text-google-fonts/api/restricted_1.7.0-beta07.txt b/compose/ui/ui-text-google-fonts/api/restricted_1.7.0-beta07.txt new file mode 100644 index 0000000000000..88ad34fd7b996 --- /dev/null +++ b/compose/ui/ui-text-google-fonts/api/restricted_1.7.0-beta07.txt @@ -0,0 +1,27 @@ +// Signature format: 4.0 +package androidx.compose.ui.text.googlefonts { + + public final class GoogleFont { + ctor public GoogleFont(String name, optional boolean bestEffort); + method public boolean getBestEffort(); + method public String getName(); + property public final boolean bestEffort; + property public final String name; + } + + public static final class GoogleFont.Provider { + ctor public GoogleFont.Provider(String providerAuthority, String providerPackage, @ArrayRes int certificates); + ctor public GoogleFont.Provider(String providerAuthority, String providerPackage, java.util.List> certificates); + } + + public final class GoogleFontKt { + method public static androidx.compose.ui.text.font.Font Font(androidx.compose.ui.text.googlefonts.GoogleFont googleFont, androidx.compose.ui.text.googlefonts.GoogleFont.Provider fontProvider, optional androidx.compose.ui.text.font.FontWeight weight, optional int style); + method @WorkerThread public static boolean isAvailableOnDevice(androidx.compose.ui.text.googlefonts.GoogleFont.Provider, android.content.Context context); + } + + public final class XmlLoaderKt { + method public static androidx.compose.ui.text.googlefonts.GoogleFont GoogleFont(android.content.Context context, @FontRes int fontXml); + } + +} + diff --git a/compose/ui/ui-text/api/1.7.0-beta07.txt b/compose/ui/ui-text/api/1.7.0-beta07.txt new file mode 100644 index 0000000000000..fa07a866ae98a --- /dev/null +++ b/compose/ui/ui-text/api/1.7.0-beta07.txt @@ -0,0 +1,1665 @@ +// Signature format: 4.0 +package androidx.compose.ui.text { + + public final class AndroidTextStyle_androidKt { + method public static androidx.compose.ui.text.PlatformParagraphStyle lerp(androidx.compose.ui.text.PlatformParagraphStyle start, androidx.compose.ui.text.PlatformParagraphStyle stop, float fraction); + method public static androidx.compose.ui.text.PlatformSpanStyle lerp(androidx.compose.ui.text.PlatformSpanStyle start, androidx.compose.ui.text.PlatformSpanStyle stop, float fraction); + } + + @androidx.compose.runtime.Immutable public final class AnnotatedString implements java.lang.CharSequence { + ctor public AnnotatedString(String text, optional java.util.List> spanStyles, optional java.util.List> paragraphStyles); + method public operator char get(int index); + method public int getLength(); + method public java.util.List> getLinkAnnotations(int start, int end); + method public java.util.List> getParagraphStyles(); + method public java.util.List> getSpanStyles(); + method public java.util.List> getStringAnnotations(int start, int end); + method public java.util.List> getStringAnnotations(String tag, int start, int end); + method public String getText(); + method public java.util.List> getTtsAnnotations(int start, int end); + method @Deprecated @SuppressCompatibility @androidx.compose.ui.text.ExperimentalTextApi public java.util.List> getUrlAnnotations(int start, int end); + method public boolean hasEqualAnnotations(androidx.compose.ui.text.AnnotatedString other); + method public boolean hasLinkAnnotations(int start, int end); + method public boolean hasStringAnnotations(String tag, int start, int end); + method @androidx.compose.runtime.Stable public operator androidx.compose.ui.text.AnnotatedString plus(androidx.compose.ui.text.AnnotatedString other); + method public androidx.compose.ui.text.AnnotatedString subSequence(int startIndex, int endIndex); + method public androidx.compose.ui.text.AnnotatedString subSequence(long range); + property public int length; + property public final java.util.List> paragraphStyles; + property public final java.util.List> spanStyles; + property public final String text; + field public static final androidx.compose.ui.text.AnnotatedString.Companion Companion; + } + + public static final class AnnotatedString.Builder implements java.lang.Appendable { + ctor public AnnotatedString.Builder(androidx.compose.ui.text.AnnotatedString text); + ctor public AnnotatedString.Builder(optional int capacity); + ctor public AnnotatedString.Builder(String text); + method public void addLink(androidx.compose.ui.text.LinkAnnotation.Clickable clickable, int start, int end); + method public void addLink(androidx.compose.ui.text.LinkAnnotation.Url url, int start, int end); + method public void addStringAnnotation(String tag, String annotation, int start, int end); + method public void addStyle(androidx.compose.ui.text.ParagraphStyle style, int start, int end); + method public void addStyle(androidx.compose.ui.text.SpanStyle style, int start, int end); + method @SuppressCompatibility @androidx.compose.ui.text.ExperimentalTextApi public void addTtsAnnotation(androidx.compose.ui.text.TtsAnnotation ttsAnnotation, int start, int end); + method @Deprecated @SuppressCompatibility @androidx.compose.ui.text.ExperimentalTextApi public void addUrlAnnotation(androidx.compose.ui.text.UrlAnnotation urlAnnotation, int start, int end); + method public void append(androidx.compose.ui.text.AnnotatedString text); + method public void append(androidx.compose.ui.text.AnnotatedString text, int start, int end); + method public androidx.compose.ui.text.AnnotatedString.Builder append(char char); + method @Deprecated public void append(char char); + method public androidx.compose.ui.text.AnnotatedString.Builder append(CharSequence? text); + method public androidx.compose.ui.text.AnnotatedString.Builder append(CharSequence? text, int start, int end); + method public void append(String text); + method public int getLength(); + method public void pop(); + method public void pop(int index); + method public int pushLink(androidx.compose.ui.text.LinkAnnotation link); + method public int pushStringAnnotation(String tag, String annotation); + method public int pushStyle(androidx.compose.ui.text.ParagraphStyle style); + method public int pushStyle(androidx.compose.ui.text.SpanStyle style); + method public int pushTtsAnnotation(androidx.compose.ui.text.TtsAnnotation ttsAnnotation); + method @Deprecated @SuppressCompatibility @androidx.compose.ui.text.ExperimentalTextApi public int pushUrlAnnotation(androidx.compose.ui.text.UrlAnnotation urlAnnotation); + method public androidx.compose.ui.text.AnnotatedString toAnnotatedString(); + property public final int length; + } + + public static final class AnnotatedString.Companion { + method public androidx.compose.runtime.saveable.Saver getSaver(); + property public final androidx.compose.runtime.saveable.Saver Saver; + } + + @androidx.compose.runtime.Immutable public static final class AnnotatedString.Range { + ctor public AnnotatedString.Range(T item, int start, int end); + ctor public AnnotatedString.Range(T item, int start, int end, String tag); + method public T component1(); + method public int component2(); + method public int component3(); + method public String component4(); + method public androidx.compose.ui.text.AnnotatedString.Range copy(T item, int start, int end, String tag); + method public int getEnd(); + method public T getItem(); + method public int getStart(); + method public String getTag(); + property public final int end; + property public final T item; + property public final int start; + property public final String tag; + } + + public final class AnnotatedStringKt { + method public static androidx.compose.ui.text.AnnotatedString AnnotatedString(String text, androidx.compose.ui.text.ParagraphStyle paragraphStyle); + method public static androidx.compose.ui.text.AnnotatedString AnnotatedString(String text, androidx.compose.ui.text.SpanStyle spanStyle, optional androidx.compose.ui.text.ParagraphStyle? paragraphStyle); + method public static inline androidx.compose.ui.text.AnnotatedString buildAnnotatedString(kotlin.jvm.functions.Function1 builder); + method public static androidx.compose.ui.text.AnnotatedString capitalize(androidx.compose.ui.text.AnnotatedString, optional androidx.compose.ui.text.intl.LocaleList localeList); + method public static androidx.compose.ui.text.AnnotatedString decapitalize(androidx.compose.ui.text.AnnotatedString, optional androidx.compose.ui.text.intl.LocaleList localeList); + method public static androidx.compose.ui.text.AnnotatedString toLowerCase(androidx.compose.ui.text.AnnotatedString, optional androidx.compose.ui.text.intl.LocaleList localeList); + method public static androidx.compose.ui.text.AnnotatedString toUpperCase(androidx.compose.ui.text.AnnotatedString, optional androidx.compose.ui.text.intl.LocaleList localeList); + method @SuppressCompatibility @androidx.compose.ui.text.ExperimentalTextApi public static inline R withAnnotation(androidx.compose.ui.text.AnnotatedString.Builder, androidx.compose.ui.text.TtsAnnotation ttsAnnotation, kotlin.jvm.functions.Function1 block); + method @Deprecated @SuppressCompatibility @androidx.compose.ui.text.ExperimentalTextApi public static inline R withAnnotation(androidx.compose.ui.text.AnnotatedString.Builder, androidx.compose.ui.text.UrlAnnotation urlAnnotation, kotlin.jvm.functions.Function1 block); + method @SuppressCompatibility @androidx.compose.ui.text.ExperimentalTextApi public static inline R withAnnotation(androidx.compose.ui.text.AnnotatedString.Builder, String tag, String annotation, kotlin.jvm.functions.Function1 block); + method public static inline R withLink(androidx.compose.ui.text.AnnotatedString.Builder, androidx.compose.ui.text.LinkAnnotation link, kotlin.jvm.functions.Function1 block); + method public static inline R withStyle(androidx.compose.ui.text.AnnotatedString.Builder, androidx.compose.ui.text.ParagraphStyle style, kotlin.jvm.functions.Function1 block); + method public static inline R withStyle(androidx.compose.ui.text.AnnotatedString.Builder, androidx.compose.ui.text.SpanStyle style, kotlin.jvm.functions.Function1 block); + } + + @kotlin.jvm.JvmInline public final value class EmojiSupportMatch { + field public static final androidx.compose.ui.text.EmojiSupportMatch.Companion Companion; + } + + public static final class EmojiSupportMatch.Companion { + method public int getAll(); + method public int getDefault(); + method public int getNone(); + property public final int All; + property public final int Default; + property public final int None; + } + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This API is experimental and is likely to change in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalTextApi { + } + + public final class Html_androidKt { + method public static androidx.compose.ui.text.AnnotatedString fromHtml(androidx.compose.ui.text.AnnotatedString.Companion, String htmlString, optional androidx.compose.ui.text.TextLinkStyles? linkStyles, optional androidx.compose.ui.text.LinkInteractionListener? linkInteractionListener); + } + + @SuppressCompatibility @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.ERROR, message="This is internal API that may change frequently and without warning.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY}) public @interface InternalTextApi { + } + + public abstract class LinkAnnotation { + method public abstract androidx.compose.ui.text.LinkInteractionListener? getLinkInteractionListener(); + method public abstract androidx.compose.ui.text.TextLinkStyles? getStyles(); + property public abstract androidx.compose.ui.text.LinkInteractionListener? linkInteractionListener; + property public abstract androidx.compose.ui.text.TextLinkStyles? styles; + } + + public static final class LinkAnnotation.Clickable extends androidx.compose.ui.text.LinkAnnotation { + ctor public LinkAnnotation.Clickable(String tag, optional androidx.compose.ui.text.TextLinkStyles? styles, androidx.compose.ui.text.LinkInteractionListener? linkInteractionListener); + method public androidx.compose.ui.text.LinkInteractionListener? getLinkInteractionListener(); + method public androidx.compose.ui.text.TextLinkStyles? getStyles(); + method public String getTag(); + property public androidx.compose.ui.text.LinkInteractionListener? linkInteractionListener; + property public androidx.compose.ui.text.TextLinkStyles? styles; + property public final String tag; + } + + public static final class LinkAnnotation.Url extends androidx.compose.ui.text.LinkAnnotation { + ctor public LinkAnnotation.Url(String url, optional androidx.compose.ui.text.TextLinkStyles? styles, optional androidx.compose.ui.text.LinkInteractionListener? linkInteractionListener); + method public androidx.compose.ui.text.LinkInteractionListener? getLinkInteractionListener(); + method public androidx.compose.ui.text.TextLinkStyles? getStyles(); + method public String getUrl(); + property public androidx.compose.ui.text.LinkInteractionListener? linkInteractionListener; + property public androidx.compose.ui.text.TextLinkStyles? styles; + property public final String url; + } + + public fun interface LinkInteractionListener { + method public void onClick(androidx.compose.ui.text.LinkAnnotation link); + } + + public final class MultiParagraph { + ctor @Deprecated public MultiParagraph(androidx.compose.ui.text.AnnotatedString annotatedString, androidx.compose.ui.text.TextStyle style, float width, androidx.compose.ui.unit.Density density, androidx.compose.ui.text.font.FontFamily.Resolver fontFamilyResolver, optional java.util.List> placeholders, optional int maxLines, optional boolean ellipsis); + ctor @Deprecated public MultiParagraph(androidx.compose.ui.text.AnnotatedString annotatedString, androidx.compose.ui.text.TextStyle style, optional java.util.List> placeholders, optional int maxLines, optional boolean ellipsis, float width, androidx.compose.ui.unit.Density density, androidx.compose.ui.text.font.Font.ResourceLoader resourceLoader); + ctor public MultiParagraph(androidx.compose.ui.text.AnnotatedString annotatedString, androidx.compose.ui.text.TextStyle style, long constraints, androidx.compose.ui.unit.Density density, androidx.compose.ui.text.font.FontFamily.Resolver fontFamilyResolver, optional java.util.List> placeholders, optional int maxLines, optional boolean ellipsis); + ctor @Deprecated public MultiParagraph(androidx.compose.ui.text.MultiParagraphIntrinsics intrinsics, optional int maxLines, optional boolean ellipsis, float width); + ctor public MultiParagraph(androidx.compose.ui.text.MultiParagraphIntrinsics intrinsics, long constraints, optional int maxLines, optional boolean ellipsis); + method public float[] fillBoundingBoxes(long range, float[] array, @IntRange(from=0L) int arrayStart); + method public androidx.compose.ui.text.style.ResolvedTextDirection getBidiRunDirection(int offset); + method public androidx.compose.ui.geometry.Rect getBoundingBox(int offset); + method public androidx.compose.ui.geometry.Rect getCursorRect(int offset); + method public boolean getDidExceedMaxLines(); + method public float getFirstBaseline(); + method public float getHeight(); + method public float getHorizontalPosition(int offset, boolean usePrimaryDirection); + method public androidx.compose.ui.text.MultiParagraphIntrinsics getIntrinsics(); + method public float getLastBaseline(); + method public float getLineBaseline(int lineIndex); + method public float getLineBottom(int lineIndex); + method public int getLineCount(); + method public int getLineEnd(int lineIndex, optional boolean visibleEnd); + method public int getLineForOffset(int offset); + method public int getLineForVerticalPosition(float vertical); + method public float getLineHeight(int lineIndex); + method public float getLineLeft(int lineIndex); + method public float getLineRight(int lineIndex); + method public int getLineStart(int lineIndex); + method public float getLineTop(int lineIndex); + method public float getLineWidth(int lineIndex); + method public float getMaxIntrinsicWidth(); + method public int getMaxLines(); + method public float getMinIntrinsicWidth(); + method public int getOffsetForPosition(long position); + method public androidx.compose.ui.text.style.ResolvedTextDirection getParagraphDirection(int offset); + method public androidx.compose.ui.graphics.Path getPathForRange(int start, int end); + method public java.util.List getPlaceholderRects(); + method public long getRangeForRect(androidx.compose.ui.geometry.Rect rect, int granularity, androidx.compose.ui.text.TextInclusionStrategy inclusionStrategy); + method public float getWidth(); + method public long getWordBoundary(int offset); + method public boolean isLineEllipsized(int lineIndex); + method public void paint(androidx.compose.ui.graphics.Canvas canvas, androidx.compose.ui.graphics.Brush brush, optional float alpha, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.style.TextDecoration? decoration, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle, optional int blendMode); + method @Deprecated public void paint(androidx.compose.ui.graphics.Canvas canvas, optional long color, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.style.TextDecoration? decoration); + method public void paint(androidx.compose.ui.graphics.Canvas canvas, optional long color, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.style.TextDecoration? decoration, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle, optional int blendMode); + property public final boolean didExceedMaxLines; + property public final float firstBaseline; + property public final float height; + property public final androidx.compose.ui.text.MultiParagraphIntrinsics intrinsics; + property public final float lastBaseline; + property public final int lineCount; + property public final float maxIntrinsicWidth; + property public final int maxLines; + property public final float minIntrinsicWidth; + property public final java.util.List placeholderRects; + property public final float width; + } + + public final class MultiParagraphIntrinsics implements androidx.compose.ui.text.ParagraphIntrinsics { + ctor @Deprecated public MultiParagraphIntrinsics(androidx.compose.ui.text.AnnotatedString annotatedString, androidx.compose.ui.text.TextStyle style, java.util.List> placeholders, androidx.compose.ui.unit.Density density, androidx.compose.ui.text.font.Font.ResourceLoader resourceLoader); + ctor public MultiParagraphIntrinsics(androidx.compose.ui.text.AnnotatedString annotatedString, androidx.compose.ui.text.TextStyle style, java.util.List> placeholders, androidx.compose.ui.unit.Density density, androidx.compose.ui.text.font.FontFamily.Resolver fontFamilyResolver); + method public androidx.compose.ui.text.AnnotatedString getAnnotatedString(); + method public float getMaxIntrinsicWidth(); + method public float getMinIntrinsicWidth(); + method public java.util.List> getPlaceholders(); + property public final androidx.compose.ui.text.AnnotatedString annotatedString; + property public boolean hasStaleResolvedFonts; + property public float maxIntrinsicWidth; + property public float minIntrinsicWidth; + property public final java.util.List> placeholders; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public sealed interface Paragraph { + method public void fillBoundingBoxes(long range, float[] array, @IntRange(from=0L) int arrayStart); + method public androidx.compose.ui.text.style.ResolvedTextDirection getBidiRunDirection(int offset); + method public androidx.compose.ui.geometry.Rect getBoundingBox(int offset); + method public androidx.compose.ui.geometry.Rect getCursorRect(int offset); + method public boolean getDidExceedMaxLines(); + method public float getFirstBaseline(); + method public float getHeight(); + method public float getHorizontalPosition(int offset, boolean usePrimaryDirection); + method public float getLastBaseline(); + method public float getLineBaseline(int lineIndex); + method public float getLineBottom(int lineIndex); + method public int getLineCount(); + method public int getLineEnd(int lineIndex, optional boolean visibleEnd); + method public int getLineForOffset(int offset); + method public int getLineForVerticalPosition(float vertical); + method public float getLineHeight(int lineIndex); + method public float getLineLeft(int lineIndex); + method public float getLineRight(int lineIndex); + method public int getLineStart(int lineIndex); + method public float getLineTop(int lineIndex); + method public float getLineWidth(int lineIndex); + method public float getMaxIntrinsicWidth(); + method public float getMinIntrinsicWidth(); + method public int getOffsetForPosition(long position); + method public androidx.compose.ui.text.style.ResolvedTextDirection getParagraphDirection(int offset); + method public androidx.compose.ui.graphics.Path getPathForRange(int start, int end); + method public java.util.List getPlaceholderRects(); + method public long getRangeForRect(androidx.compose.ui.geometry.Rect rect, int granularity, androidx.compose.ui.text.TextInclusionStrategy inclusionStrategy); + method public float getWidth(); + method public long getWordBoundary(int offset); + method public boolean isLineEllipsized(int lineIndex); + method public void paint(androidx.compose.ui.graphics.Canvas canvas, androidx.compose.ui.graphics.Brush brush, optional float alpha, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle, optional int blendMode); + method public void paint(androidx.compose.ui.graphics.Canvas canvas, optional long color, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.style.TextDecoration? textDecoration); + method public void paint(androidx.compose.ui.graphics.Canvas canvas, optional long color, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle, optional int blendMode); + property public abstract boolean didExceedMaxLines; + property public abstract float firstBaseline; + property public abstract float height; + property public abstract float lastBaseline; + property public abstract int lineCount; + property public abstract float maxIntrinsicWidth; + property public abstract float minIntrinsicWidth; + property public abstract java.util.List placeholderRects; + property public abstract float width; + } + + public interface ParagraphIntrinsics { + method public default boolean getHasStaleResolvedFonts(); + method public float getMaxIntrinsicWidth(); + method public float getMinIntrinsicWidth(); + property public default boolean hasStaleResolvedFonts; + property public abstract float maxIntrinsicWidth; + property public abstract float minIntrinsicWidth; + } + + public final class ParagraphIntrinsicsKt { + method @Deprecated public static androidx.compose.ui.text.ParagraphIntrinsics ParagraphIntrinsics(String text, androidx.compose.ui.text.TextStyle style, optional java.util.List> spanStyles, optional java.util.List> placeholders, androidx.compose.ui.unit.Density density, androidx.compose.ui.text.font.Font.ResourceLoader resourceLoader); + method public static androidx.compose.ui.text.ParagraphIntrinsics ParagraphIntrinsics(String text, androidx.compose.ui.text.TextStyle style, optional java.util.List> spanStyles, optional java.util.List> placeholders, androidx.compose.ui.unit.Density density, androidx.compose.ui.text.font.FontFamily.Resolver fontFamilyResolver); + } + + public final class ParagraphKt { + method @Deprecated public static androidx.compose.ui.text.Paragraph Paragraph(androidx.compose.ui.text.ParagraphIntrinsics paragraphIntrinsics, optional int maxLines, optional boolean ellipsis, float width); + method public static androidx.compose.ui.text.Paragraph Paragraph(androidx.compose.ui.text.ParagraphIntrinsics paragraphIntrinsics, long constraints, optional int maxLines, optional boolean ellipsis); + method @Deprecated public static androidx.compose.ui.text.Paragraph Paragraph(String text, androidx.compose.ui.text.TextStyle style, float width, androidx.compose.ui.unit.Density density, androidx.compose.ui.text.font.FontFamily.Resolver fontFamilyResolver, optional java.util.List> spanStyles, optional java.util.List> placeholders, optional int maxLines, optional boolean ellipsis); + method @Deprecated public static androidx.compose.ui.text.Paragraph Paragraph(String text, androidx.compose.ui.text.TextStyle style, optional java.util.List> spanStyles, optional java.util.List> placeholders, optional int maxLines, optional boolean ellipsis, float width, androidx.compose.ui.unit.Density density, androidx.compose.ui.text.font.Font.ResourceLoader resourceLoader); + method public static androidx.compose.ui.text.Paragraph Paragraph(String text, androidx.compose.ui.text.TextStyle style, long constraints, androidx.compose.ui.unit.Density density, androidx.compose.ui.text.font.FontFamily.Resolver fontFamilyResolver, optional java.util.List> spanStyles, optional java.util.List> placeholders, optional int maxLines, optional boolean ellipsis); + } + + @androidx.compose.runtime.Immutable public final class ParagraphStyle { + ctor @Deprecated public ParagraphStyle(optional androidx.compose.ui.text.style.TextAlign? textAlign, optional androidx.compose.ui.text.style.TextDirection? textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent); + ctor @Deprecated public ParagraphStyle(optional androidx.compose.ui.text.style.TextAlign? textAlign, optional androidx.compose.ui.text.style.TextDirection? textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformParagraphStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle); + ctor @Deprecated public ParagraphStyle(optional androidx.compose.ui.text.style.TextAlign? textAlign, optional androidx.compose.ui.text.style.TextDirection? textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformParagraphStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle, optional androidx.compose.ui.text.style.LineBreak? lineBreak, optional androidx.compose.ui.text.style.Hyphens? hyphens); + ctor @Deprecated public ParagraphStyle(optional androidx.compose.ui.text.style.TextAlign? textAlign, optional androidx.compose.ui.text.style.TextDirection? textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformParagraphStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle, optional androidx.compose.ui.text.style.LineBreak? lineBreak, optional androidx.compose.ui.text.style.Hyphens? hyphens, optional androidx.compose.ui.text.style.TextMotion? textMotion); + ctor public ParagraphStyle(optional int textAlign, optional int textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformParagraphStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle, optional int lineBreak, optional int hyphens, optional androidx.compose.ui.text.style.TextMotion? textMotion); + method @Deprecated public androidx.compose.ui.text.ParagraphStyle copy(optional androidx.compose.ui.text.style.TextAlign? textAlign, optional androidx.compose.ui.text.style.TextDirection? textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent); + method @Deprecated public androidx.compose.ui.text.ParagraphStyle copy(optional androidx.compose.ui.text.style.TextAlign? textAlign, optional androidx.compose.ui.text.style.TextDirection? textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformParagraphStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle); + method @Deprecated public androidx.compose.ui.text.ParagraphStyle copy(optional androidx.compose.ui.text.style.TextAlign? textAlign, optional androidx.compose.ui.text.style.TextDirection? textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformParagraphStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle, optional androidx.compose.ui.text.style.LineBreak? lineBreak, optional androidx.compose.ui.text.style.Hyphens? hyphens); + method @Deprecated public androidx.compose.ui.text.ParagraphStyle copy(optional androidx.compose.ui.text.style.TextAlign? textAlign, optional androidx.compose.ui.text.style.TextDirection? textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformParagraphStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle, optional androidx.compose.ui.text.style.LineBreak? lineBreak, optional androidx.compose.ui.text.style.Hyphens? hyphens, optional androidx.compose.ui.text.style.TextMotion? textMotion); + method public androidx.compose.ui.text.ParagraphStyle copy(optional int textAlign, optional int textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformParagraphStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle, optional int lineBreak, optional int hyphens, optional androidx.compose.ui.text.style.TextMotion? textMotion); + method public int getHyphens(); + method @Deprecated public androidx.compose.ui.text.style.Hyphens? getHyphens-EaSxIns(); + method public int getLineBreak(); + method @Deprecated public androidx.compose.ui.text.style.LineBreak? getLineBreak-LgCVezo(); + method public long getLineHeight(); + method public androidx.compose.ui.text.style.LineHeightStyle? getLineHeightStyle(); + method public androidx.compose.ui.text.PlatformParagraphStyle? getPlatformStyle(); + method public int getTextAlign(); + method @Deprecated public androidx.compose.ui.text.style.TextAlign? getTextAlign-buA522U(); + method public int getTextDirection(); + method @Deprecated public androidx.compose.ui.text.style.TextDirection? getTextDirection-mmuk1to(); + method public androidx.compose.ui.text.style.TextIndent? getTextIndent(); + method public androidx.compose.ui.text.style.TextMotion? getTextMotion(); + method @androidx.compose.runtime.Stable public androidx.compose.ui.text.ParagraphStyle merge(optional androidx.compose.ui.text.ParagraphStyle? other); + method @androidx.compose.runtime.Stable public operator androidx.compose.ui.text.ParagraphStyle plus(androidx.compose.ui.text.ParagraphStyle other); + property @Deprecated public final androidx.compose.ui.text.style.Hyphens? deprecated_boxing_hyphens; + property @Deprecated public final androidx.compose.ui.text.style.LineBreak? deprecated_boxing_lineBreak; + property @Deprecated public final androidx.compose.ui.text.style.TextAlign? deprecated_boxing_textAlign; + property @Deprecated public final androidx.compose.ui.text.style.TextDirection? deprecated_boxing_textDirection; + property public final int hyphens; + property public final int lineBreak; + property public final long lineHeight; + property public final androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle; + property public final androidx.compose.ui.text.PlatformParagraphStyle? platformStyle; + property public final int textAlign; + property public final int textDirection; + property public final androidx.compose.ui.text.style.TextIndent? textIndent; + property public final androidx.compose.ui.text.style.TextMotion? textMotion; + } + + public final class ParagraphStyleKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.text.ParagraphStyle lerp(androidx.compose.ui.text.ParagraphStyle start, androidx.compose.ui.text.ParagraphStyle stop, float fraction); + } + + @androidx.compose.runtime.Immutable public final class Placeholder { + ctor public Placeholder(long width, long height, int placeholderVerticalAlign); + method public androidx.compose.ui.text.Placeholder copy(optional long width, optional long height, optional int placeholderVerticalAlign); + method public long getHeight(); + method public int getPlaceholderVerticalAlign(); + method public long getWidth(); + property public final long height; + property public final int placeholderVerticalAlign; + property public final long width; + } + + @kotlin.jvm.JvmInline public final value class PlaceholderVerticalAlign { + field public static final androidx.compose.ui.text.PlaceholderVerticalAlign.Companion Companion; + } + + public static final class PlaceholderVerticalAlign.Companion { + method public int getAboveBaseline(); + method public int getBottom(); + method public int getCenter(); + method public int getTextBottom(); + method public int getTextCenter(); + method public int getTextTop(); + method public int getTop(); + property public final int AboveBaseline; + property public final int Bottom; + property public final int Center; + property public final int TextBottom; + property public final int TextCenter; + property public final int TextTop; + property public final int Top; + } + + public final class PlatformParagraphStyle { + ctor public PlatformParagraphStyle(optional boolean includeFontPadding); + ctor public PlatformParagraphStyle(optional int emojiSupportMatch); + ctor public PlatformParagraphStyle(optional int emojiSupportMatch, optional boolean includeFontPadding); + method public int getEmojiSupportMatch(); + method public boolean getIncludeFontPadding(); + method public androidx.compose.ui.text.PlatformParagraphStyle merge(androidx.compose.ui.text.PlatformParagraphStyle? other); + property public final int emojiSupportMatch; + property public final boolean includeFontPadding; + field public static final androidx.compose.ui.text.PlatformParagraphStyle.Companion Companion; + } + + public static final class PlatformParagraphStyle.Companion { + method public androidx.compose.ui.text.PlatformParagraphStyle getDefault(); + property public final androidx.compose.ui.text.PlatformParagraphStyle Default; + } + + public final class PlatformSpanStyle { + ctor public PlatformSpanStyle(); + method public androidx.compose.ui.text.PlatformSpanStyle merge(androidx.compose.ui.text.PlatformSpanStyle? other); + field public static final androidx.compose.ui.text.PlatformSpanStyle.Companion Companion; + } + + public static final class PlatformSpanStyle.Companion { + method public androidx.compose.ui.text.PlatformSpanStyle getDefault(); + property public final androidx.compose.ui.text.PlatformSpanStyle Default; + } + + public final class PlatformTextStyle { + ctor public PlatformTextStyle(androidx.compose.ui.text.PlatformSpanStyle? spanStyle, androidx.compose.ui.text.PlatformParagraphStyle? paragraphStyle); + ctor public PlatformTextStyle(optional boolean includeFontPadding); + ctor public PlatformTextStyle(int emojiSupportMatch); + method public androidx.compose.ui.text.PlatformParagraphStyle? getParagraphStyle(); + method public androidx.compose.ui.text.PlatformSpanStyle? getSpanStyle(); + property public final androidx.compose.ui.text.PlatformParagraphStyle? paragraphStyle; + property public final androidx.compose.ui.text.PlatformSpanStyle? spanStyle; + } + + @androidx.compose.runtime.Immutable public final class SpanStyle { + ctor public SpanStyle(androidx.compose.ui.graphics.Brush? brush, optional float alpha, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.PlatformSpanStyle? platformStyle, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle); + ctor @Deprecated public SpanStyle(optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow); + ctor @Deprecated public SpanStyle(optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.PlatformSpanStyle? platformStyle); + ctor public SpanStyle(optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.PlatformSpanStyle? platformStyle, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle); + method public androidx.compose.ui.text.SpanStyle copy(androidx.compose.ui.graphics.Brush? brush, optional float alpha, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.PlatformSpanStyle? platformStyle, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle); + method @Deprecated public androidx.compose.ui.text.SpanStyle copy(optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow); + method @Deprecated public androidx.compose.ui.text.SpanStyle copy(optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.PlatformSpanStyle? platformStyle); + method public androidx.compose.ui.text.SpanStyle copy(optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.PlatformSpanStyle? platformStyle, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle); + method public float getAlpha(); + method public long getBackground(); + method public androidx.compose.ui.text.style.BaselineShift? getBaselineShift(); + method public androidx.compose.ui.graphics.Brush? getBrush(); + method public long getColor(); + method public androidx.compose.ui.graphics.drawscope.DrawStyle? getDrawStyle(); + method public androidx.compose.ui.text.font.FontFamily? getFontFamily(); + method public String? getFontFeatureSettings(); + method public long getFontSize(); + method public androidx.compose.ui.text.font.FontStyle? getFontStyle(); + method public androidx.compose.ui.text.font.FontSynthesis? getFontSynthesis(); + method public androidx.compose.ui.text.font.FontWeight? getFontWeight(); + method public long getLetterSpacing(); + method public androidx.compose.ui.text.intl.LocaleList? getLocaleList(); + method public androidx.compose.ui.text.PlatformSpanStyle? getPlatformStyle(); + method public androidx.compose.ui.graphics.Shadow? getShadow(); + method public androidx.compose.ui.text.style.TextDecoration? getTextDecoration(); + method public androidx.compose.ui.text.style.TextGeometricTransform? getTextGeometricTransform(); + method @androidx.compose.runtime.Stable public androidx.compose.ui.text.SpanStyle merge(optional androidx.compose.ui.text.SpanStyle? other); + method @androidx.compose.runtime.Stable public operator androidx.compose.ui.text.SpanStyle plus(androidx.compose.ui.text.SpanStyle other); + property public final float alpha; + property public final long background; + property public final androidx.compose.ui.text.style.BaselineShift? baselineShift; + property public final androidx.compose.ui.graphics.Brush? brush; + property public final long color; + property public final androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle; + property public final androidx.compose.ui.text.font.FontFamily? fontFamily; + property public final String? fontFeatureSettings; + property public final long fontSize; + property public final androidx.compose.ui.text.font.FontStyle? fontStyle; + property public final androidx.compose.ui.text.font.FontSynthesis? fontSynthesis; + property public final androidx.compose.ui.text.font.FontWeight? fontWeight; + property public final long letterSpacing; + property public final androidx.compose.ui.text.intl.LocaleList? localeList; + property public final androidx.compose.ui.text.PlatformSpanStyle? platformStyle; + property public final androidx.compose.ui.graphics.Shadow? shadow; + property public final androidx.compose.ui.text.style.TextDecoration? textDecoration; + property public final androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform; + } + + public final class SpanStyleKt { + method public static androidx.compose.ui.text.SpanStyle lerp(androidx.compose.ui.text.SpanStyle start, androidx.compose.ui.text.SpanStyle stop, float fraction); + } + + public final class StringKt { + method public static String capitalize(String, androidx.compose.ui.text.intl.Locale locale); + method public static String capitalize(String, androidx.compose.ui.text.intl.LocaleList localeList); + method public static String decapitalize(String, androidx.compose.ui.text.intl.Locale locale); + method public static String decapitalize(String, androidx.compose.ui.text.intl.LocaleList localeList); + method public static String toLowerCase(String, androidx.compose.ui.text.intl.Locale locale); + method public static String toLowerCase(String, androidx.compose.ui.text.intl.LocaleList localeList); + method public static String toUpperCase(String, androidx.compose.ui.text.intl.Locale locale); + method public static String toUpperCase(String, androidx.compose.ui.text.intl.LocaleList localeList); + } + + @kotlin.jvm.JvmInline public final value class TextGranularity { + field public static final androidx.compose.ui.text.TextGranularity.Companion Companion; + } + + public static final class TextGranularity.Companion { + method public int getCharacter(); + method public int getWord(); + property public final int Character; + property public final int Word; + } + + public fun interface TextInclusionStrategy { + method public boolean isIncluded(androidx.compose.ui.geometry.Rect textBounds, androidx.compose.ui.geometry.Rect rect); + field public static final androidx.compose.ui.text.TextInclusionStrategy.Companion Companion; + } + + public static final class TextInclusionStrategy.Companion { + method public androidx.compose.ui.text.TextInclusionStrategy getAnyOverlap(); + method public androidx.compose.ui.text.TextInclusionStrategy getContainsAll(); + method public androidx.compose.ui.text.TextInclusionStrategy getContainsCenter(); + property public final androidx.compose.ui.text.TextInclusionStrategy AnyOverlap; + property public final androidx.compose.ui.text.TextInclusionStrategy ContainsAll; + property public final androidx.compose.ui.text.TextInclusionStrategy ContainsCenter; + } + + public final class TextLayoutInput { + ctor @Deprecated public TextLayoutInput(androidx.compose.ui.text.AnnotatedString text, androidx.compose.ui.text.TextStyle style, java.util.List> placeholders, int maxLines, boolean softWrap, int overflow, androidx.compose.ui.unit.Density density, androidx.compose.ui.unit.LayoutDirection layoutDirection, androidx.compose.ui.text.font.Font.ResourceLoader resourceLoader, long constraints); + ctor public TextLayoutInput(androidx.compose.ui.text.AnnotatedString text, androidx.compose.ui.text.TextStyle style, java.util.List> placeholders, int maxLines, boolean softWrap, int overflow, androidx.compose.ui.unit.Density density, androidx.compose.ui.unit.LayoutDirection layoutDirection, androidx.compose.ui.text.font.FontFamily.Resolver fontFamilyResolver, long constraints); + method @Deprecated public androidx.compose.ui.text.TextLayoutInput copy(optional androidx.compose.ui.text.AnnotatedString text, optional androidx.compose.ui.text.TextStyle style, optional java.util.List> placeholders, optional int maxLines, optional boolean softWrap, optional int overflow, optional androidx.compose.ui.unit.Density density, optional androidx.compose.ui.unit.LayoutDirection layoutDirection, optional androidx.compose.ui.text.font.Font.ResourceLoader resourceLoader, optional long constraints); + method public long getConstraints(); + method public androidx.compose.ui.unit.Density getDensity(); + method public androidx.compose.ui.text.font.FontFamily.Resolver getFontFamilyResolver(); + method public androidx.compose.ui.unit.LayoutDirection getLayoutDirection(); + method public int getMaxLines(); + method public int getOverflow(); + method public java.util.List> getPlaceholders(); + method @Deprecated public androidx.compose.ui.text.font.Font.ResourceLoader getResourceLoader(); + method public boolean getSoftWrap(); + method public androidx.compose.ui.text.TextStyle getStyle(); + method public androidx.compose.ui.text.AnnotatedString getText(); + property public final long constraints; + property public final androidx.compose.ui.unit.Density density; + property public final androidx.compose.ui.text.font.FontFamily.Resolver fontFamilyResolver; + property public final androidx.compose.ui.unit.LayoutDirection layoutDirection; + property public final int maxLines; + property public final int overflow; + property public final java.util.List> placeholders; + property @Deprecated public final androidx.compose.ui.text.font.Font.ResourceLoader resourceLoader; + property public final boolean softWrap; + property public final androidx.compose.ui.text.TextStyle style; + property public final androidx.compose.ui.text.AnnotatedString text; + } + + public final class TextLayoutResult { + ctor public TextLayoutResult(androidx.compose.ui.text.TextLayoutInput layoutInput, androidx.compose.ui.text.MultiParagraph multiParagraph, long size); + method public androidx.compose.ui.text.TextLayoutResult copy(optional androidx.compose.ui.text.TextLayoutInput layoutInput, optional long size); + method public androidx.compose.ui.text.style.ResolvedTextDirection getBidiRunDirection(int offset); + method public androidx.compose.ui.geometry.Rect getBoundingBox(int offset); + method public androidx.compose.ui.geometry.Rect getCursorRect(int offset); + method public boolean getDidOverflowHeight(); + method public boolean getDidOverflowWidth(); + method public float getFirstBaseline(); + method public boolean getHasVisualOverflow(); + method public float getHorizontalPosition(int offset, boolean usePrimaryDirection); + method public float getLastBaseline(); + method public androidx.compose.ui.text.TextLayoutInput getLayoutInput(); + method public float getLineBaseline(int lineIndex); + method public float getLineBottom(int lineIndex); + method public int getLineCount(); + method public int getLineEnd(int lineIndex, optional boolean visibleEnd); + method public int getLineForOffset(int offset); + method public int getLineForVerticalPosition(float vertical); + method public float getLineLeft(int lineIndex); + method public float getLineRight(int lineIndex); + method public int getLineStart(int lineIndex); + method public float getLineTop(int lineIndex); + method public androidx.compose.ui.text.MultiParagraph getMultiParagraph(); + method public int getOffsetForPosition(long position); + method public androidx.compose.ui.text.style.ResolvedTextDirection getParagraphDirection(int offset); + method public androidx.compose.ui.graphics.Path getPathForRange(int start, int end); + method public java.util.List getPlaceholderRects(); + method public long getSize(); + method public long getWordBoundary(int offset); + method public boolean isLineEllipsized(int lineIndex); + property public final boolean didOverflowHeight; + property public final boolean didOverflowWidth; + property public final float firstBaseline; + property public final boolean hasVisualOverflow; + property public final float lastBaseline; + property public final androidx.compose.ui.text.TextLayoutInput layoutInput; + property public final int lineCount; + property public final androidx.compose.ui.text.MultiParagraph multiParagraph; + property public final java.util.List placeholderRects; + property public final long size; + } + + @androidx.compose.runtime.Immutable public final class TextLinkStyles { + ctor public TextLinkStyles(optional androidx.compose.ui.text.SpanStyle? style, optional androidx.compose.ui.text.SpanStyle? focusedStyle, optional androidx.compose.ui.text.SpanStyle? hoveredStyle, optional androidx.compose.ui.text.SpanStyle? pressedStyle); + method public androidx.compose.ui.text.SpanStyle? getFocusedStyle(); + method public androidx.compose.ui.text.SpanStyle? getHoveredStyle(); + method public androidx.compose.ui.text.SpanStyle? getPressedStyle(); + method public androidx.compose.ui.text.SpanStyle? getStyle(); + property public final androidx.compose.ui.text.SpanStyle? focusedStyle; + property public final androidx.compose.ui.text.SpanStyle? hoveredStyle; + property public final androidx.compose.ui.text.SpanStyle? pressedStyle; + property public final androidx.compose.ui.text.SpanStyle? style; + } + + @androidx.compose.runtime.Immutable public final class TextMeasurer { + ctor public TextMeasurer(androidx.compose.ui.text.font.FontFamily.Resolver defaultFontFamilyResolver, androidx.compose.ui.unit.Density defaultDensity, androidx.compose.ui.unit.LayoutDirection defaultLayoutDirection, optional int cacheSize); + method @androidx.compose.runtime.Stable public androidx.compose.ui.text.TextLayoutResult measure(androidx.compose.ui.text.AnnotatedString text, optional androidx.compose.ui.text.TextStyle style, optional int overflow, optional boolean softWrap, optional int maxLines, optional java.util.List> placeholders, optional long constraints, optional androidx.compose.ui.unit.LayoutDirection layoutDirection, optional androidx.compose.ui.unit.Density density, optional androidx.compose.ui.text.font.FontFamily.Resolver fontFamilyResolver, optional boolean skipCache); + method @androidx.compose.runtime.Stable public androidx.compose.ui.text.TextLayoutResult measure(String text, optional androidx.compose.ui.text.TextStyle style, optional int overflow, optional boolean softWrap, optional int maxLines, optional long constraints, optional androidx.compose.ui.unit.LayoutDirection layoutDirection, optional androidx.compose.ui.unit.Density density, optional androidx.compose.ui.text.font.FontFamily.Resolver fontFamilyResolver, optional boolean skipCache); + } + + public final class TextPainter { + method public void paint(androidx.compose.ui.graphics.Canvas canvas, androidx.compose.ui.text.TextLayoutResult textLayoutResult); + field public static final androidx.compose.ui.text.TextPainter INSTANCE; + } + + public final class TextPainterKt { + method public static void drawText(androidx.compose.ui.graphics.drawscope.DrawScope, androidx.compose.ui.text.TextLayoutResult textLayoutResult, androidx.compose.ui.graphics.Brush brush, optional long topLeft, optional float alpha, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle, optional int blendMode); + method public static void drawText(androidx.compose.ui.graphics.drawscope.DrawScope, androidx.compose.ui.text.TextLayoutResult textLayoutResult, optional long color, optional long topLeft, optional float alpha, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle, optional int blendMode); + method public static void drawText(androidx.compose.ui.graphics.drawscope.DrawScope, androidx.compose.ui.text.TextMeasurer textMeasurer, androidx.compose.ui.text.AnnotatedString text, optional long topLeft, optional androidx.compose.ui.text.TextStyle style, optional int overflow, optional boolean softWrap, optional int maxLines, optional java.util.List> placeholders, optional long size, optional int blendMode); + method public static void drawText(androidx.compose.ui.graphics.drawscope.DrawScope, androidx.compose.ui.text.TextMeasurer textMeasurer, String text, optional long topLeft, optional androidx.compose.ui.text.TextStyle style, optional int overflow, optional boolean softWrap, optional int maxLines, optional long size, optional int blendMode); + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class TextRange { + method public operator boolean contains(int offset); + method public operator boolean contains(long other); + method public boolean getCollapsed(); + method public int getEnd(); + method public int getLength(); + method public int getMax(); + method public int getMin(); + method public boolean getReversed(); + method public int getStart(); + method public boolean intersects(long other); + property public final boolean collapsed; + property public final int end; + property public final int length; + property public final int max; + property public final int min; + property public final boolean reversed; + property public final int start; + field public static final androidx.compose.ui.text.TextRange.Companion Companion; + } + + public static final class TextRange.Companion { + method public long getZero(); + property public final long Zero; + } + + public final class TextRangeKt { + method public static long TextRange(int index); + method public static long TextRange(int start, int end); + method public static long coerceIn(long, int minimumValue, int maximumValue); + method public static String substring(CharSequence, long range); + } + + @androidx.compose.runtime.Immutable public final class TextStyle { + ctor @Deprecated public TextStyle(androidx.compose.ui.graphics.Brush? brush, optional float alpha, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional androidx.compose.ui.text.style.TextDirection? textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformTextStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle, optional androidx.compose.ui.text.style.LineBreak? lineBreak, optional androidx.compose.ui.text.style.Hyphens? hyphens, optional androidx.compose.ui.text.style.TextMotion? textMotion); + ctor public TextStyle(androidx.compose.ui.graphics.Brush? brush, optional float alpha, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle, optional int textAlign, optional int textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformTextStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle, optional int lineBreak, optional int hyphens, optional androidx.compose.ui.text.style.TextMotion? textMotion); + ctor @Deprecated public TextStyle(optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional androidx.compose.ui.text.style.TextDirection? textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformTextStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle, optional androidx.compose.ui.text.style.LineBreak? lineBreak, optional androidx.compose.ui.text.style.Hyphens? hyphens, optional androidx.compose.ui.text.style.TextMotion? textMotion); + ctor public TextStyle(optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle, optional int textAlign, optional int textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformTextStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle, optional int lineBreak, optional int hyphens, optional androidx.compose.ui.text.style.TextMotion? textMotion); + ctor @Deprecated public TextStyle(optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional androidx.compose.ui.text.style.TextDirection? textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent); + ctor @Deprecated public TextStyle(optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional androidx.compose.ui.text.style.TextDirection? textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformTextStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle); + ctor @Deprecated public TextStyle(optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional androidx.compose.ui.text.style.TextDirection? textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformTextStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle, optional androidx.compose.ui.text.style.LineBreak? lineBreak, optional androidx.compose.ui.text.style.Hyphens? hyphens); + method @Deprecated public androidx.compose.ui.text.TextStyle copy(androidx.compose.ui.graphics.Brush? brush, optional float alpha, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional androidx.compose.ui.text.style.TextDirection? textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformTextStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle, optional androidx.compose.ui.text.style.LineBreak? lineBreak, optional androidx.compose.ui.text.style.Hyphens? hyphens, optional androidx.compose.ui.text.style.TextMotion? textMotion); + method public androidx.compose.ui.text.TextStyle copy(androidx.compose.ui.graphics.Brush? brush, optional float alpha, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle, optional int textAlign, optional int textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformTextStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle, optional int lineBreak, optional int hyphens, optional androidx.compose.ui.text.style.TextMotion? textMotion); + method @Deprecated public androidx.compose.ui.text.TextStyle copy(optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional androidx.compose.ui.text.style.TextDirection? textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformTextStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle, optional androidx.compose.ui.text.style.LineBreak? lineBreak, optional androidx.compose.ui.text.style.Hyphens? hyphens, optional androidx.compose.ui.text.style.TextMotion? textMotion); + method public androidx.compose.ui.text.TextStyle copy(optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle, optional int textAlign, optional int textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformTextStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle, optional int lineBreak, optional int hyphens, optional androidx.compose.ui.text.style.TextMotion? textMotion); + method @Deprecated public androidx.compose.ui.text.TextStyle copy(optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional androidx.compose.ui.text.style.TextDirection? textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent); + method @Deprecated public androidx.compose.ui.text.TextStyle copy(optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional androidx.compose.ui.text.style.TextDirection? textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformTextStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle); + method @Deprecated public androidx.compose.ui.text.TextStyle copy(optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional androidx.compose.ui.text.style.TextDirection? textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformTextStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle, optional androidx.compose.ui.text.style.LineBreak? lineBreak, optional androidx.compose.ui.text.style.Hyphens? hyphens); + method public float getAlpha(); + method public long getBackground(); + method public androidx.compose.ui.text.style.BaselineShift? getBaselineShift(); + method public androidx.compose.ui.graphics.Brush? getBrush(); + method public long getColor(); + method public androidx.compose.ui.graphics.drawscope.DrawStyle? getDrawStyle(); + method public androidx.compose.ui.text.font.FontFamily? getFontFamily(); + method public String? getFontFeatureSettings(); + method public long getFontSize(); + method public androidx.compose.ui.text.font.FontStyle? getFontStyle(); + method public androidx.compose.ui.text.font.FontSynthesis? getFontSynthesis(); + method public androidx.compose.ui.text.font.FontWeight? getFontWeight(); + method public int getHyphens(); + method @Deprecated public androidx.compose.ui.text.style.Hyphens? getHyphens-EaSxIns(); + method public long getLetterSpacing(); + method public int getLineBreak(); + method @Deprecated public androidx.compose.ui.text.style.LineBreak? getLineBreak-LgCVezo(); + method public long getLineHeight(); + method public androidx.compose.ui.text.style.LineHeightStyle? getLineHeightStyle(); + method public androidx.compose.ui.text.intl.LocaleList? getLocaleList(); + method public androidx.compose.ui.text.PlatformTextStyle? getPlatformStyle(); + method public androidx.compose.ui.graphics.Shadow? getShadow(); + method public int getTextAlign(); + method @Deprecated public androidx.compose.ui.text.style.TextAlign? getTextAlign-buA522U(); + method public androidx.compose.ui.text.style.TextDecoration? getTextDecoration(); + method public int getTextDirection(); + method @Deprecated public androidx.compose.ui.text.style.TextDirection? getTextDirection-mmuk1to(); + method public androidx.compose.ui.text.style.TextGeometricTransform? getTextGeometricTransform(); + method public androidx.compose.ui.text.style.TextIndent? getTextIndent(); + method public androidx.compose.ui.text.style.TextMotion? getTextMotion(); + method public boolean hasSameDrawAffectingAttributes(androidx.compose.ui.text.TextStyle other); + method public boolean hasSameLayoutAffectingAttributes(androidx.compose.ui.text.TextStyle other); + method @androidx.compose.runtime.Stable public androidx.compose.ui.text.TextStyle merge(androidx.compose.ui.text.ParagraphStyle other); + method @androidx.compose.runtime.Stable public androidx.compose.ui.text.TextStyle merge(androidx.compose.ui.text.SpanStyle other); + method @androidx.compose.runtime.Stable public androidx.compose.ui.text.TextStyle merge(optional androidx.compose.ui.text.TextStyle? other); + method @Deprecated @androidx.compose.runtime.Stable public androidx.compose.ui.text.TextStyle merge(optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional androidx.compose.ui.text.style.TextDirection? textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle, optional androidx.compose.ui.text.style.LineBreak? lineBreak, optional androidx.compose.ui.text.style.Hyphens? hyphens, optional androidx.compose.ui.text.PlatformTextStyle? platformStyle, optional androidx.compose.ui.text.style.TextMotion? textMotion); + method @androidx.compose.runtime.Stable public androidx.compose.ui.text.TextStyle merge(optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle, optional int textAlign, optional int textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle, optional int lineBreak, optional int hyphens, optional androidx.compose.ui.text.PlatformTextStyle? platformStyle, optional androidx.compose.ui.text.style.TextMotion? textMotion); + method @androidx.compose.runtime.Stable public operator androidx.compose.ui.text.TextStyle plus(androidx.compose.ui.text.ParagraphStyle other); + method @androidx.compose.runtime.Stable public operator androidx.compose.ui.text.TextStyle plus(androidx.compose.ui.text.SpanStyle other); + method @androidx.compose.runtime.Stable public operator androidx.compose.ui.text.TextStyle plus(androidx.compose.ui.text.TextStyle other); + method @androidx.compose.runtime.Stable public androidx.compose.ui.text.ParagraphStyle toParagraphStyle(); + method @androidx.compose.runtime.Stable public androidx.compose.ui.text.SpanStyle toSpanStyle(); + property public final float alpha; + property public final long background; + property public final androidx.compose.ui.text.style.BaselineShift? baselineShift; + property public final androidx.compose.ui.graphics.Brush? brush; + property public final long color; + property @Deprecated public final androidx.compose.ui.text.style.Hyphens? deprecated_boxing_hyphens; + property @Deprecated public final androidx.compose.ui.text.style.LineBreak? deprecated_boxing_lineBreak; + property @Deprecated public final androidx.compose.ui.text.style.TextAlign? deprecated_boxing_textAlign; + property @Deprecated public final androidx.compose.ui.text.style.TextDirection? deprecated_boxing_textDirection; + property public final androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle; + property public final androidx.compose.ui.text.font.FontFamily? fontFamily; + property public final String? fontFeatureSettings; + property public final long fontSize; + property public final androidx.compose.ui.text.font.FontStyle? fontStyle; + property public final androidx.compose.ui.text.font.FontSynthesis? fontSynthesis; + property public final androidx.compose.ui.text.font.FontWeight? fontWeight; + property public final int hyphens; + property public final long letterSpacing; + property public final int lineBreak; + property public final long lineHeight; + property public final androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle; + property public final androidx.compose.ui.text.intl.LocaleList? localeList; + property public final androidx.compose.ui.text.PlatformTextStyle? platformStyle; + property public final androidx.compose.ui.graphics.Shadow? shadow; + property public final int textAlign; + property public final androidx.compose.ui.text.style.TextDecoration? textDecoration; + property public final int textDirection; + property public final androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform; + property public final androidx.compose.ui.text.style.TextIndent? textIndent; + property public final androidx.compose.ui.text.style.TextMotion? textMotion; + field public static final androidx.compose.ui.text.TextStyle.Companion Companion; + } + + public static final class TextStyle.Companion { + method public androidx.compose.ui.text.TextStyle getDefault(); + property public final androidx.compose.ui.text.TextStyle Default; + } + + public final class TextStyleKt { + method public static androidx.compose.ui.text.TextStyle lerp(androidx.compose.ui.text.TextStyle start, androidx.compose.ui.text.TextStyle stop, float fraction); + method public static androidx.compose.ui.text.TextStyle resolveDefaults(androidx.compose.ui.text.TextStyle style, androidx.compose.ui.unit.LayoutDirection direction); + } + + public abstract sealed class TtsAnnotation { + } + + @Deprecated @SuppressCompatibility @androidx.compose.ui.text.ExperimentalTextApi public final class UrlAnnotation { + ctor @Deprecated public UrlAnnotation(String url); + method @Deprecated public String getUrl(); + property @Deprecated public final String url; + } + + public final class VerbatimTtsAnnotation extends androidx.compose.ui.text.TtsAnnotation { + ctor public VerbatimTtsAnnotation(String verbatim); + method public String getVerbatim(); + property public final String verbatim; + } + +} + +package androidx.compose.ui.text.android { + + @SuppressCompatibility @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.ERROR, message="This is internal API that may change frequently and without warning.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY}) public @interface InternalPlatformTextApi { + } + + @SuppressCompatibility @androidx.compose.ui.text.android.InternalPlatformTextApi public final class StaticLayoutFactory { + method public android.text.StaticLayout create(CharSequence text, android.text.TextPaint paint, int width, optional int start, optional int end, optional android.text.TextDirectionHeuristic textDir, optional android.text.Layout.Alignment alignment, optional @IntRange(from=0L) int maxLines, optional android.text.TextUtils.TruncateAt? ellipsize, optional @IntRange(from=0L) int ellipsizedWidth, optional @FloatRange(from=0.0) float lineSpacingMultiplier, optional float lineSpacingExtra, optional int justificationMode, optional boolean includePadding, optional boolean useFallbackLineSpacing, optional int breakStrategy, optional int lineBreakStyle, optional int lineBreakWordStyle, optional int hyphenationFrequency, optional int[]? leftIndents, optional int[]? rightIndents); + method public boolean isFallbackLineSpacingEnabled(android.text.StaticLayout layout, boolean useFallbackLineSpacing); + field public static final androidx.compose.ui.text.android.StaticLayoutFactory INSTANCE; + } + +} + +package androidx.compose.ui.text.font { + + public abstract class AndroidFont implements androidx.compose.ui.text.font.Font { + ctor @Deprecated public AndroidFont(int loadingStrategy, androidx.compose.ui.text.font.AndroidFont.TypefaceLoader typefaceLoader); + ctor public AndroidFont(int loadingStrategy, androidx.compose.ui.text.font.AndroidFont.TypefaceLoader typefaceLoader, androidx.compose.ui.text.font.FontVariation.Settings variationSettings); + method public final int getLoadingStrategy(); + method public final androidx.compose.ui.text.font.AndroidFont.TypefaceLoader getTypefaceLoader(); + method public final androidx.compose.ui.text.font.FontVariation.Settings getVariationSettings(); + property public final int loadingStrategy; + property public final androidx.compose.ui.text.font.AndroidFont.TypefaceLoader typefaceLoader; + property public final androidx.compose.ui.text.font.FontVariation.Settings variationSettings; + } + + public static interface AndroidFont.TypefaceLoader { + method public suspend Object? awaitLoad(android.content.Context context, androidx.compose.ui.text.font.AndroidFont font, kotlin.coroutines.Continuation); + method public android.graphics.Typeface? loadBlocking(android.content.Context context, androidx.compose.ui.text.font.AndroidFont font); + } + + public final class AndroidFontKt { + method @RequiresApi(26) @androidx.compose.runtime.Stable public static androidx.compose.ui.text.font.Font Font(android.os.ParcelFileDescriptor fileDescriptor, optional androidx.compose.ui.text.font.FontWeight weight, optional int style, optional androidx.compose.ui.text.font.FontVariation.Settings variationSettings); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.text.font.Font Font(java.io.File file, optional androidx.compose.ui.text.font.FontWeight weight, optional int style, optional androidx.compose.ui.text.font.FontVariation.Settings variationSettings); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.text.font.Font Font(String path, android.content.res.AssetManager assetManager, optional androidx.compose.ui.text.font.FontWeight weight, optional int style, optional androidx.compose.ui.text.font.FontVariation.Settings variationSettings); + } + + public final class AndroidTypeface_androidKt { + method public static androidx.compose.ui.text.font.FontFamily FontFamily(android.graphics.Typeface typeface); + method @Deprecated public static androidx.compose.ui.text.font.Typeface Typeface(android.content.Context context, androidx.compose.ui.text.font.FontFamily fontFamily, optional java.util.List>? styles); + method public static androidx.compose.ui.text.font.Typeface Typeface(android.graphics.Typeface typeface); + } + + public final class DelegatingFontLoaderForDeprecatedUsage_androidKt { + method @Deprecated public static androidx.compose.ui.text.font.FontFamily.Resolver createFontFamilyResolver(androidx.compose.ui.text.font.Font.ResourceLoader fontResourceLoader, android.content.Context context); + } + + @kotlin.jvm.JvmInline public final value class DeviceFontFamilyName { + ctor public DeviceFontFamilyName(String name); + method public String getName(); + property public final String name; + } + + public final class DeviceFontFamilyNameFontKt { + method public static androidx.compose.ui.text.font.Font Font(String familyName, optional androidx.compose.ui.text.font.FontWeight weight, optional int style, optional androidx.compose.ui.text.font.FontVariation.Settings variationSettings); + } + + public abstract sealed class FileBasedFontFamily extends androidx.compose.ui.text.font.FontFamily { + } + + @androidx.compose.runtime.Immutable public interface Font { + method public default int getLoadingStrategy(); + method public int getStyle(); + method public androidx.compose.ui.text.font.FontWeight getWeight(); + property public default int loadingStrategy; + property public abstract int style; + property public abstract androidx.compose.ui.text.font.FontWeight weight; + field public static final androidx.compose.ui.text.font.Font.Companion Companion; + field public static final long MaximumAsyncTimeoutMillis = 15000L; // 0x3a98L + } + + public static final class Font.Companion { + field public static final long MaximumAsyncTimeoutMillis = 15000L; // 0x3a98L + } + + @Deprecated public static interface Font.ResourceLoader { + method @Deprecated public Object load(androidx.compose.ui.text.font.Font font); + } + + @androidx.compose.runtime.Immutable public abstract sealed class FontFamily { + method @Deprecated public final boolean getCanLoadSynchronously(); + property @Deprecated public final boolean canLoadSynchronously; + field public static final androidx.compose.ui.text.font.FontFamily.Companion Companion; + } + + public static final class FontFamily.Companion { + method public androidx.compose.ui.text.font.GenericFontFamily getCursive(); + method public androidx.compose.ui.text.font.SystemFontFamily getDefault(); + method public androidx.compose.ui.text.font.GenericFontFamily getMonospace(); + method public androidx.compose.ui.text.font.GenericFontFamily getSansSerif(); + method public androidx.compose.ui.text.font.GenericFontFamily getSerif(); + property public final androidx.compose.ui.text.font.GenericFontFamily Cursive; + property public final androidx.compose.ui.text.font.SystemFontFamily Default; + property public final androidx.compose.ui.text.font.GenericFontFamily Monospace; + property public final androidx.compose.ui.text.font.GenericFontFamily SansSerif; + property public final androidx.compose.ui.text.font.GenericFontFamily Serif; + } + + public static sealed interface FontFamily.Resolver { + method public suspend Object? preload(androidx.compose.ui.text.font.FontFamily fontFamily, kotlin.coroutines.Continuation); + method public androidx.compose.runtime.State resolve(optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional androidx.compose.ui.text.font.FontWeight fontWeight, optional int fontStyle, optional int fontSynthesis); + } + + public final class FontFamilyKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.text.font.FontFamily FontFamily(androidx.compose.ui.text.font.Font... fonts); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.text.font.FontFamily FontFamily(androidx.compose.ui.text.font.Typeface typeface); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.text.font.FontFamily FontFamily(java.util.List fonts); + } + + public final class FontFamilyResolver_androidKt { + method public static androidx.compose.ui.text.font.FontFamily.Resolver createFontFamilyResolver(android.content.Context context); + method public static androidx.compose.ui.text.font.FontFamily.Resolver createFontFamilyResolver(android.content.Context context, kotlin.coroutines.CoroutineContext coroutineContext); + method public static androidx.compose.runtime.State resolveAsTypeface(androidx.compose.ui.text.font.FontFamily.Resolver, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional androidx.compose.ui.text.font.FontWeight fontWeight, optional int fontStyle, optional int fontSynthesis); + } + + public final class FontKt { + method @Deprecated @androidx.compose.runtime.Stable public static androidx.compose.ui.text.font.Font Font(int resId, optional androidx.compose.ui.text.font.FontWeight weight, optional int style); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.text.font.Font Font(int resId, optional androidx.compose.ui.text.font.FontWeight weight, optional int style, optional int loadingStrategy); + method @SuppressCompatibility @androidx.compose.ui.text.ExperimentalTextApi public static androidx.compose.ui.text.font.Font Font(int resId, optional androidx.compose.ui.text.font.FontWeight weight, optional int style, optional int loadingStrategy, optional androidx.compose.ui.text.font.FontVariation.Settings variationSettings); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.text.font.FontFamily toFontFamily(androidx.compose.ui.text.font.Font); + } + + @androidx.compose.runtime.Immutable public final class FontListFontFamily extends androidx.compose.ui.text.font.FileBasedFontFamily implements kotlin.jvm.internal.markers.KMappedMarker java.util.List { + method public java.util.List getFonts(); + property public final java.util.List fonts; + } + + @kotlin.jvm.JvmInline public final value class FontLoadingStrategy { + method public int getValue(); + property public final int value; + field public static final androidx.compose.ui.text.font.FontLoadingStrategy.Companion Companion; + } + + public static final class FontLoadingStrategy.Companion { + method public int getAsync(); + method public int getBlocking(); + method public int getOptionalLocal(); + property public final int Async; + property public final int Blocking; + property public final int OptionalLocal; + } + + @kotlin.jvm.JvmInline public final value class FontStyle { + ctor @Deprecated public FontStyle(int value); + method public int getValue(); + property public final int value; + field public static final androidx.compose.ui.text.font.FontStyle.Companion Companion; + } + + public static final class FontStyle.Companion { + method public int getItalic(); + method public int getNormal(); + method public java.util.List values(); + property public final int Italic; + property public final int Normal; + } + + @kotlin.jvm.JvmInline public final value class FontSynthesis { + field public static final androidx.compose.ui.text.font.FontSynthesis.Companion Companion; + } + + public static final class FontSynthesis.Companion { + method public int getAll(); + method public int getNone(); + method public int getStyle(); + method public int getWeight(); + property public final int All; + property public final int None; + property public final int Style; + property public final int Weight; + } + + public final class FontVariation { + method public androidx.compose.ui.text.font.FontVariation.Setting Setting(String name, float value); + method public androidx.compose.ui.text.font.FontVariation.Settings Settings(androidx.compose.ui.text.font.FontWeight weight, int style, androidx.compose.ui.text.font.FontVariation.Setting... settings); + method public androidx.compose.ui.text.font.FontVariation.Setting grade(int value); + method public androidx.compose.ui.text.font.FontVariation.Setting italic(float value); + method public androidx.compose.ui.text.font.FontVariation.Setting opticalSizing(long textSize); + method public androidx.compose.ui.text.font.FontVariation.Setting slant(float value); + method public androidx.compose.ui.text.font.FontVariation.Setting weight(int value); + method public androidx.compose.ui.text.font.FontVariation.Setting width(float value); + field public static final androidx.compose.ui.text.font.FontVariation INSTANCE; + } + + @androidx.compose.runtime.Immutable public static sealed interface FontVariation.Setting { + method public String getAxisName(); + method public boolean getNeedsDensity(); + method public float toVariationValue(androidx.compose.ui.unit.Density? density); + property public abstract String axisName; + property public abstract boolean needsDensity; + } + + @androidx.compose.runtime.Immutable public static final class FontVariation.Settings { + ctor public FontVariation.Settings(androidx.compose.ui.text.font.FontVariation.Setting... settings); + method public java.util.List getSettings(); + property public final java.util.List settings; + } + + @androidx.compose.runtime.Immutable public final class FontWeight implements java.lang.Comparable { + ctor public FontWeight(int weight); + method public operator int compareTo(androidx.compose.ui.text.font.FontWeight other); + method public int getWeight(); + property public final int weight; + field public static final androidx.compose.ui.text.font.FontWeight.Companion Companion; + } + + public static final class FontWeight.Companion { + method public androidx.compose.ui.text.font.FontWeight getBlack(); + method public androidx.compose.ui.text.font.FontWeight getBold(); + method public androidx.compose.ui.text.font.FontWeight getExtraBold(); + method public androidx.compose.ui.text.font.FontWeight getExtraLight(); + method public androidx.compose.ui.text.font.FontWeight getLight(); + method public androidx.compose.ui.text.font.FontWeight getMedium(); + method public androidx.compose.ui.text.font.FontWeight getNormal(); + method public androidx.compose.ui.text.font.FontWeight getSemiBold(); + method public androidx.compose.ui.text.font.FontWeight getThin(); + method public androidx.compose.ui.text.font.FontWeight getW100(); + method public androidx.compose.ui.text.font.FontWeight getW200(); + method public androidx.compose.ui.text.font.FontWeight getW300(); + method public androidx.compose.ui.text.font.FontWeight getW400(); + method public androidx.compose.ui.text.font.FontWeight getW500(); + method public androidx.compose.ui.text.font.FontWeight getW600(); + method public androidx.compose.ui.text.font.FontWeight getW700(); + method public androidx.compose.ui.text.font.FontWeight getW800(); + method public androidx.compose.ui.text.font.FontWeight getW900(); + property public final androidx.compose.ui.text.font.FontWeight Black; + property public final androidx.compose.ui.text.font.FontWeight Bold; + property public final androidx.compose.ui.text.font.FontWeight ExtraBold; + property public final androidx.compose.ui.text.font.FontWeight ExtraLight; + property public final androidx.compose.ui.text.font.FontWeight Light; + property public final androidx.compose.ui.text.font.FontWeight Medium; + property public final androidx.compose.ui.text.font.FontWeight Normal; + property public final androidx.compose.ui.text.font.FontWeight SemiBold; + property public final androidx.compose.ui.text.font.FontWeight Thin; + property public final androidx.compose.ui.text.font.FontWeight W100; + property public final androidx.compose.ui.text.font.FontWeight W200; + property public final androidx.compose.ui.text.font.FontWeight W300; + property public final androidx.compose.ui.text.font.FontWeight W400; + property public final androidx.compose.ui.text.font.FontWeight W500; + property public final androidx.compose.ui.text.font.FontWeight W600; + property public final androidx.compose.ui.text.font.FontWeight W700; + property public final androidx.compose.ui.text.font.FontWeight W800; + property public final androidx.compose.ui.text.font.FontWeight W900; + } + + public final class FontWeightKt { + method public static androidx.compose.ui.text.font.FontWeight lerp(androidx.compose.ui.text.font.FontWeight start, androidx.compose.ui.text.font.FontWeight stop, float fraction); + } + + @androidx.compose.runtime.Immutable public final class GenericFontFamily extends androidx.compose.ui.text.font.SystemFontFamily { + method public String getName(); + property public final String name; + } + + public final class LoadedFontFamily extends androidx.compose.ui.text.font.FontFamily { + method public androidx.compose.ui.text.font.Typeface getTypeface(); + property public final androidx.compose.ui.text.font.Typeface typeface; + } + + public final class ResourceFont implements androidx.compose.ui.text.font.Font { + method public androidx.compose.ui.text.font.ResourceFont copy(optional int resId, optional androidx.compose.ui.text.font.FontWeight weight, optional int style); + method @SuppressCompatibility @androidx.compose.ui.text.ExperimentalTextApi public androidx.compose.ui.text.font.ResourceFont copy(optional int resId, optional androidx.compose.ui.text.font.FontWeight weight, optional int style, optional int loadingStrategy, optional androidx.compose.ui.text.font.FontVariation.Settings variationSettings); + method public int getResId(); + method public int getStyle(); + method @SuppressCompatibility @androidx.compose.ui.text.ExperimentalTextApi public androidx.compose.ui.text.font.FontVariation.Settings getVariationSettings(); + method public androidx.compose.ui.text.font.FontWeight getWeight(); + property @SuppressCompatibility @androidx.compose.ui.text.ExperimentalTextApi public int loadingStrategy; + property public final int resId; + property public int style; + property @SuppressCompatibility @androidx.compose.ui.text.ExperimentalTextApi public final androidx.compose.ui.text.font.FontVariation.Settings variationSettings; + property public androidx.compose.ui.text.font.FontWeight weight; + } + + public abstract sealed class SystemFontFamily extends androidx.compose.ui.text.font.FontFamily { + } + + public interface Typeface { + method public androidx.compose.ui.text.font.FontFamily? getFontFamily(); + property public abstract androidx.compose.ui.text.font.FontFamily? fontFamily; + } + +} + +package androidx.compose.ui.text.input { + + public final class BackspaceCommand implements androidx.compose.ui.text.input.EditCommand { + ctor public BackspaceCommand(); + method public void applyTo(androidx.compose.ui.text.input.EditingBuffer buffer); + } + + public final class CommitTextCommand implements androidx.compose.ui.text.input.EditCommand { + ctor public CommitTextCommand(androidx.compose.ui.text.AnnotatedString annotatedString, int newCursorPosition); + ctor public CommitTextCommand(String text, int newCursorPosition); + method public void applyTo(androidx.compose.ui.text.input.EditingBuffer buffer); + method public androidx.compose.ui.text.AnnotatedString getAnnotatedString(); + method public int getNewCursorPosition(); + method public String getText(); + property public final androidx.compose.ui.text.AnnotatedString annotatedString; + property public final int newCursorPosition; + property public final String text; + } + + public final class DeleteAllCommand implements androidx.compose.ui.text.input.EditCommand { + ctor public DeleteAllCommand(); + method public void applyTo(androidx.compose.ui.text.input.EditingBuffer buffer); + } + + public final class DeleteSurroundingTextCommand implements androidx.compose.ui.text.input.EditCommand { + ctor public DeleteSurroundingTextCommand(int lengthBeforeCursor, int lengthAfterCursor); + method public void applyTo(androidx.compose.ui.text.input.EditingBuffer buffer); + method public int getLengthAfterCursor(); + method public int getLengthBeforeCursor(); + property public final int lengthAfterCursor; + property public final int lengthBeforeCursor; + } + + public final class DeleteSurroundingTextInCodePointsCommand implements androidx.compose.ui.text.input.EditCommand { + ctor public DeleteSurroundingTextInCodePointsCommand(int lengthBeforeCursor, int lengthAfterCursor); + method public void applyTo(androidx.compose.ui.text.input.EditingBuffer buffer); + method public int getLengthAfterCursor(); + method public int getLengthBeforeCursor(); + property public final int lengthAfterCursor; + property public final int lengthBeforeCursor; + } + + public interface EditCommand { + method public void applyTo(androidx.compose.ui.text.input.EditingBuffer buffer); + } + + public final class EditProcessor { + ctor public EditProcessor(); + method public androidx.compose.ui.text.input.TextFieldValue apply(java.util.List editCommands); + method public void reset(androidx.compose.ui.text.input.TextFieldValue value, androidx.compose.ui.text.input.TextInputSession? textInputSession); + method public androidx.compose.ui.text.input.TextFieldValue toTextFieldValue(); + } + + public final class EditingBuffer { + ctor public EditingBuffer(androidx.compose.ui.text.AnnotatedString text, long selection); + } + + public final class FinishComposingTextCommand implements androidx.compose.ui.text.input.EditCommand { + ctor public FinishComposingTextCommand(); + method public void applyTo(androidx.compose.ui.text.input.EditingBuffer buffer); + } + + @kotlin.jvm.JvmInline public final value class ImeAction { + field public static final androidx.compose.ui.text.input.ImeAction.Companion Companion; + } + + public static final class ImeAction.Companion { + method public int getDefault(); + method public int getDone(); + method public int getGo(); + method public int getNext(); + method public int getNone(); + method public int getPrevious(); + method public int getSearch(); + method public int getSend(); + method public int getUnspecified(); + property public final int Default; + property public final int Done; + property public final int Go; + property public final int Next; + property public final int None; + property public final int Previous; + property public final int Search; + property public final int Send; + property public final int Unspecified; + } + + @androidx.compose.runtime.Immutable public final class ImeOptions { + ctor @Deprecated public ImeOptions(optional boolean singleLine, optional int capitalization, optional boolean autoCorrect, optional int keyboardType, optional int imeAction); + ctor @Deprecated public ImeOptions(optional boolean singleLine, optional int capitalization, optional boolean autoCorrect, optional int keyboardType, optional int imeAction, optional androidx.compose.ui.text.input.PlatformImeOptions? platformImeOptions); + ctor public ImeOptions(optional boolean singleLine, optional int capitalization, optional boolean autoCorrect, optional int keyboardType, optional int imeAction, optional androidx.compose.ui.text.input.PlatformImeOptions? platformImeOptions, optional androidx.compose.ui.text.intl.LocaleList hintLocales); + method @Deprecated public androidx.compose.ui.text.input.ImeOptions copy(optional boolean singleLine, optional int capitalization, optional boolean autoCorrect, optional int keyboardType, optional int imeAction); + method @Deprecated public androidx.compose.ui.text.input.ImeOptions copy(optional boolean singleLine, optional int capitalization, optional boolean autoCorrect, optional int keyboardType, optional int imeAction, optional androidx.compose.ui.text.input.PlatformImeOptions? platformImeOptions); + method public androidx.compose.ui.text.input.ImeOptions copy(optional boolean singleLine, optional int capitalization, optional boolean autoCorrect, optional int keyboardType, optional int imeAction, optional androidx.compose.ui.text.input.PlatformImeOptions? platformImeOptions, optional androidx.compose.ui.text.intl.LocaleList hintLocales); + method public boolean getAutoCorrect(); + method public int getCapitalization(); + method public androidx.compose.ui.text.intl.LocaleList getHintLocales(); + method public int getImeAction(); + method public int getKeyboardType(); + method public androidx.compose.ui.text.input.PlatformImeOptions? getPlatformImeOptions(); + method public boolean getSingleLine(); + property public final boolean autoCorrect; + property public final int capitalization; + property public final androidx.compose.ui.text.intl.LocaleList hintLocales; + property public final int imeAction; + property public final int keyboardType; + property public final androidx.compose.ui.text.input.PlatformImeOptions? platformImeOptions; + property public final boolean singleLine; + field public static final androidx.compose.ui.text.input.ImeOptions.Companion Companion; + } + + public static final class ImeOptions.Companion { + method public androidx.compose.ui.text.input.ImeOptions getDefault(); + property public final androidx.compose.ui.text.input.ImeOptions Default; + } + + @Deprecated public interface InputEventCallback { + method @Deprecated public void onEditCommands(java.util.List editCommands); + method @Deprecated public void onImeAction(int imeAction); + } + + @kotlin.jvm.JvmInline public final value class KeyboardCapitalization { + field public static final androidx.compose.ui.text.input.KeyboardCapitalization.Companion Companion; + } + + public static final class KeyboardCapitalization.Companion { + method public int getCharacters(); + method public int getNone(); + method public int getSentences(); + method public int getUnspecified(); + method public int getWords(); + property public final int Characters; + property public final int None; + property public final int Sentences; + property public final int Unspecified; + property public final int Words; + } + + @kotlin.jvm.JvmInline public final value class KeyboardType { + field public static final androidx.compose.ui.text.input.KeyboardType.Companion Companion; + } + + public static final class KeyboardType.Companion { + method public int getAscii(); + method public int getDecimal(); + method public int getEmail(); + method public int getNumber(); + method public int getNumberPassword(); + method public int getPassword(); + method public int getPhone(); + method public int getText(); + method public int getUnspecified(); + method public int getUri(); + property public final int Ascii; + property public final int Decimal; + property public final int Email; + property public final int Number; + property public final int NumberPassword; + property public final int Password; + property public final int Phone; + property public final int Text; + property public final int Unspecified; + property public final int Uri; + } + + public final class MoveCursorCommand implements androidx.compose.ui.text.input.EditCommand { + ctor public MoveCursorCommand(int amount); + method public void applyTo(androidx.compose.ui.text.input.EditingBuffer buffer); + method public int getAmount(); + property public final int amount; + } + + public interface OffsetMapping { + method public int originalToTransformed(int offset); + method public int transformedToOriginal(int offset); + field public static final androidx.compose.ui.text.input.OffsetMapping.Companion Companion; + } + + public static final class OffsetMapping.Companion { + method public androidx.compose.ui.text.input.OffsetMapping getIdentity(); + property public final androidx.compose.ui.text.input.OffsetMapping Identity; + } + + public final class PasswordVisualTransformation implements androidx.compose.ui.text.input.VisualTransformation { + ctor public PasswordVisualTransformation(optional char mask); + method public androidx.compose.ui.text.input.TransformedText filter(androidx.compose.ui.text.AnnotatedString text); + method public char getMask(); + property public final char mask; + } + + @androidx.compose.runtime.Immutable public final class PlatformImeOptions { + ctor public PlatformImeOptions(optional String? privateImeOptions); + method public String? getPrivateImeOptions(); + property public final String? privateImeOptions; + } + + @Deprecated public interface PlatformTextInputService { + method @Deprecated public void hideSoftwareKeyboard(); + method @Deprecated public default void notifyFocusedRect(androidx.compose.ui.geometry.Rect rect); + method @Deprecated public void showSoftwareKeyboard(); + method @Deprecated public default void startInput(); + method @Deprecated public void startInput(androidx.compose.ui.text.input.TextFieldValue value, androidx.compose.ui.text.input.ImeOptions imeOptions, kotlin.jvm.functions.Function1,kotlin.Unit> onEditCommand, kotlin.jvm.functions.Function1 onImeActionPerformed); + method @Deprecated public void stopInput(); + method @Deprecated public void updateState(androidx.compose.ui.text.input.TextFieldValue? oldValue, androidx.compose.ui.text.input.TextFieldValue newValue); + method @Deprecated public default void updateTextLayoutResult(androidx.compose.ui.text.input.TextFieldValue textFieldValue, androidx.compose.ui.text.input.OffsetMapping offsetMapping, androidx.compose.ui.text.TextLayoutResult textLayoutResult, kotlin.jvm.functions.Function1 textFieldToRootTransform, androidx.compose.ui.geometry.Rect innerTextFieldBounds, androidx.compose.ui.geometry.Rect decorationBoxBounds); + } + + public final class SetComposingRegionCommand implements androidx.compose.ui.text.input.EditCommand { + ctor public SetComposingRegionCommand(int start, int end); + method public void applyTo(androidx.compose.ui.text.input.EditingBuffer buffer); + method public int getEnd(); + method public int getStart(); + property public final int end; + property public final int start; + } + + public final class SetComposingTextCommand implements androidx.compose.ui.text.input.EditCommand { + ctor public SetComposingTextCommand(androidx.compose.ui.text.AnnotatedString annotatedString, int newCursorPosition); + ctor public SetComposingTextCommand(String text, int newCursorPosition); + method public void applyTo(androidx.compose.ui.text.input.EditingBuffer buffer); + method public androidx.compose.ui.text.AnnotatedString getAnnotatedString(); + method public int getNewCursorPosition(); + method public String getText(); + property public final androidx.compose.ui.text.AnnotatedString annotatedString; + property public final int newCursorPosition; + property public final String text; + } + + public final class SetSelectionCommand implements androidx.compose.ui.text.input.EditCommand { + ctor public SetSelectionCommand(int start, int end); + method public void applyTo(androidx.compose.ui.text.input.EditingBuffer buffer); + method public int getEnd(); + method public int getStart(); + property public final int end; + property public final int start; + } + + @androidx.compose.runtime.Immutable public final class TextFieldValue { + ctor public TextFieldValue(androidx.compose.ui.text.AnnotatedString annotatedString, optional long selection, optional androidx.compose.ui.text.TextRange? composition); + ctor public TextFieldValue(optional String text, optional long selection, optional androidx.compose.ui.text.TextRange? composition); + method public androidx.compose.ui.text.input.TextFieldValue copy(optional androidx.compose.ui.text.AnnotatedString annotatedString, optional long selection, optional androidx.compose.ui.text.TextRange? composition); + method public androidx.compose.ui.text.input.TextFieldValue copy(String text, optional long selection, optional androidx.compose.ui.text.TextRange? composition); + method public androidx.compose.ui.text.AnnotatedString getAnnotatedString(); + method public androidx.compose.ui.text.TextRange? getComposition(); + method public long getSelection(); + method public String getText(); + property public final androidx.compose.ui.text.AnnotatedString annotatedString; + property public final androidx.compose.ui.text.TextRange? composition; + property public final long selection; + property public final String text; + field public static final androidx.compose.ui.text.input.TextFieldValue.Companion Companion; + } + + public static final class TextFieldValue.Companion { + method public androidx.compose.runtime.saveable.Saver getSaver(); + property public final androidx.compose.runtime.saveable.Saver Saver; + } + + public final class TextFieldValueKt { + method public static androidx.compose.ui.text.AnnotatedString getSelectedText(androidx.compose.ui.text.input.TextFieldValue); + method public static androidx.compose.ui.text.AnnotatedString getTextAfterSelection(androidx.compose.ui.text.input.TextFieldValue, int maxChars); + method public static androidx.compose.ui.text.AnnotatedString getTextBeforeSelection(androidx.compose.ui.text.input.TextFieldValue, int maxChars); + } + + @Deprecated public class TextInputService { + ctor @Deprecated public TextInputService(androidx.compose.ui.text.input.PlatformTextInputService platformTextInputService); + method @Deprecated public final void hideSoftwareKeyboard(); + method @Deprecated public final void showSoftwareKeyboard(); + method @Deprecated public androidx.compose.ui.text.input.TextInputSession startInput(androidx.compose.ui.text.input.TextFieldValue value, androidx.compose.ui.text.input.ImeOptions imeOptions, kotlin.jvm.functions.Function1,kotlin.Unit> onEditCommand, kotlin.jvm.functions.Function1 onImeActionPerformed); + method @Deprecated public void stopInput(androidx.compose.ui.text.input.TextInputSession session); + } + + @Deprecated public final class TextInputSession { + ctor @Deprecated public TextInputSession(androidx.compose.ui.text.input.TextInputService textInputService, androidx.compose.ui.text.input.PlatformTextInputService platformTextInputService); + method @Deprecated public void dispose(); + method @Deprecated public boolean hideSoftwareKeyboard(); + method @Deprecated public boolean isOpen(); + method @Deprecated public boolean notifyFocusedRect(androidx.compose.ui.geometry.Rect rect); + method @Deprecated public boolean showSoftwareKeyboard(); + method @Deprecated public boolean updateState(androidx.compose.ui.text.input.TextFieldValue? oldValue, androidx.compose.ui.text.input.TextFieldValue newValue); + method @Deprecated public boolean updateTextLayoutResult(androidx.compose.ui.text.input.TextFieldValue textFieldValue, androidx.compose.ui.text.input.OffsetMapping offsetMapping, androidx.compose.ui.text.TextLayoutResult textLayoutResult, kotlin.jvm.functions.Function1 textFieldToRootTransform, androidx.compose.ui.geometry.Rect innerTextFieldBounds, androidx.compose.ui.geometry.Rect decorationBoxBounds); + property @Deprecated public final boolean isOpen; + } + + public final class TransformedText { + ctor public TransformedText(androidx.compose.ui.text.AnnotatedString text, androidx.compose.ui.text.input.OffsetMapping offsetMapping); + method public androidx.compose.ui.text.input.OffsetMapping getOffsetMapping(); + method public androidx.compose.ui.text.AnnotatedString getText(); + property public final androidx.compose.ui.text.input.OffsetMapping offsetMapping; + property public final androidx.compose.ui.text.AnnotatedString text; + } + + @androidx.compose.runtime.Immutable public fun interface VisualTransformation { + method public androidx.compose.ui.text.input.TransformedText filter(androidx.compose.ui.text.AnnotatedString text); + field public static final androidx.compose.ui.text.input.VisualTransformation.Companion Companion; + } + + public static final class VisualTransformation.Companion { + method public androidx.compose.ui.text.input.VisualTransformation getNone(); + property public final androidx.compose.ui.text.input.VisualTransformation None; + } + +} + +package androidx.compose.ui.text.intl { + + @androidx.compose.runtime.Immutable public final class Locale { + ctor public Locale(String languageTag); + method public String getLanguage(); + method public java.util.Locale getPlatformLocale(); + method public String getRegion(); + method public String getScript(); + method public String toLanguageTag(); + property public final String language; + property public final java.util.Locale platformLocale; + property public final String region; + property public final String script; + field public static final androidx.compose.ui.text.intl.Locale.Companion Companion; + } + + public static final class Locale.Companion { + method public androidx.compose.ui.text.intl.Locale getCurrent(); + property public final androidx.compose.ui.text.intl.Locale current; + } + + @androidx.compose.runtime.Immutable public final class LocaleList implements java.util.Collection kotlin.jvm.internal.markers.KMappedMarker { + ctor public LocaleList(androidx.compose.ui.text.intl.Locale... locales); + ctor public LocaleList(String languageTags); + ctor public LocaleList(java.util.List localeList); + method public operator boolean contains(androidx.compose.ui.text.intl.Locale element); + method public boolean containsAll(java.util.Collection elements); + method public operator androidx.compose.ui.text.intl.Locale get(int i); + method public java.util.List getLocaleList(); + method public int getSize(); + method public boolean isEmpty(); + method public java.util.Iterator iterator(); + property public final java.util.List localeList; + property public int size; + field public static final androidx.compose.ui.text.intl.LocaleList.Companion Companion; + } + + public static final class LocaleList.Companion { + method public androidx.compose.ui.text.intl.LocaleList getCurrent(); + method public androidx.compose.ui.text.intl.LocaleList getEmpty(); + property public final androidx.compose.ui.text.intl.LocaleList Empty; + property public final androidx.compose.ui.text.intl.LocaleList current; + } + +} + +package androidx.compose.ui.text.platform.extensions { + + public final class TtsAnnotationExtensions_androidKt { + method public static android.text.style.TtsSpan toSpan(androidx.compose.ui.text.TtsAnnotation); + method public static android.text.style.TtsSpan toSpan(androidx.compose.ui.text.VerbatimTtsAnnotation); + } + +} + +package androidx.compose.ui.text.style { + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class BaselineShift { + ctor public BaselineShift(float multiplier); + method public float getMultiplier(); + property public final float multiplier; + field public static final androidx.compose.ui.text.style.BaselineShift.Companion Companion; + } + + public static final class BaselineShift.Companion { + method public float getNone(); + method public float getSubscript(); + method public float getSuperscript(); + property public final float None; + property public final float Subscript; + property public final float Superscript; + } + + public final class BaselineShiftKt { + method @androidx.compose.runtime.Stable public static float lerp(float start, float stop, float fraction); + } + + @kotlin.jvm.JvmInline public final value class Hyphens { + field public static final androidx.compose.ui.text.style.Hyphens.Companion Companion; + } + + public static final class Hyphens.Companion { + method public int getAuto(); + method public int getNone(); + method public int getUnspecified(); + property public final int Auto; + property public final int None; + property public final int Unspecified; + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class LineBreak { + ctor public LineBreak(int strategy, int strictness, int wordBreak); + method public int copy(optional int strategy, optional int strictness, optional int wordBreak); + method public int getStrategy(); + method public int getStrictness(); + method public int getWordBreak(); + property public final int strategy; + property public final int strictness; + property public final int wordBreak; + field public static final androidx.compose.ui.text.style.LineBreak.Companion Companion; + } + + public static final class LineBreak.Companion { + method public int getHeading(); + method public int getParagraph(); + method public int getSimple(); + method public int getUnspecified(); + property public final int Heading; + property public final int Paragraph; + property public final int Simple; + property public final int Unspecified; + } + + @kotlin.jvm.JvmInline public static final value class LineBreak.Strategy { + field public static final androidx.compose.ui.text.style.LineBreak.Strategy.Companion Companion; + } + + public static final class LineBreak.Strategy.Companion { + method public int getBalanced(); + method public int getHighQuality(); + method public int getSimple(); + method public int getUnspecified(); + property public final int Balanced; + property public final int HighQuality; + property public final int Simple; + property public final int Unspecified; + } + + @kotlin.jvm.JvmInline public static final value class LineBreak.Strictness { + field public static final androidx.compose.ui.text.style.LineBreak.Strictness.Companion Companion; + } + + public static final class LineBreak.Strictness.Companion { + method public int getDefault(); + method public int getLoose(); + method public int getNormal(); + method public int getStrict(); + method public int getUnspecified(); + property public final int Default; + property public final int Loose; + property public final int Normal; + property public final int Strict; + property public final int Unspecified; + } + + @kotlin.jvm.JvmInline public static final value class LineBreak.WordBreak { + field public static final androidx.compose.ui.text.style.LineBreak.WordBreak.Companion Companion; + } + + public static final class LineBreak.WordBreak.Companion { + method public int getDefault(); + method public int getPhrase(); + method public int getUnspecified(); + property public final int Default; + property public final int Phrase; + property public final int Unspecified; + } + + public final class LineHeightStyle { + ctor public LineHeightStyle(float alignment, int trim); + method public float getAlignment(); + method public int getTrim(); + property public final float alignment; + property public final int trim; + field public static final androidx.compose.ui.text.style.LineHeightStyle.Companion Companion; + } + + @kotlin.jvm.JvmInline public static final value class LineHeightStyle.Alignment { + ctor public LineHeightStyle.Alignment(float topRatio); + field public static final androidx.compose.ui.text.style.LineHeightStyle.Alignment.Companion Companion; + } + + public static final class LineHeightStyle.Alignment.Companion { + method public float getBottom(); + method public float getCenter(); + method public float getProportional(); + method public float getTop(); + property public final float Bottom; + property public final float Center; + property public final float Proportional; + property public final float Top; + } + + public static final class LineHeightStyle.Companion { + method public androidx.compose.ui.text.style.LineHeightStyle getDefault(); + property public final androidx.compose.ui.text.style.LineHeightStyle Default; + } + + @kotlin.jvm.JvmInline public static final value class LineHeightStyle.Trim { + field public static final androidx.compose.ui.text.style.LineHeightStyle.Trim.Companion Companion; + } + + public static final class LineHeightStyle.Trim.Companion { + method public int getBoth(); + method public int getFirstLineTop(); + method public int getLastLineBottom(); + method public int getNone(); + property public final int Both; + property public final int FirstLineTop; + property public final int LastLineBottom; + property public final int None; + } + + public enum ResolvedTextDirection { + enum_constant public static final androidx.compose.ui.text.style.ResolvedTextDirection Ltr; + enum_constant public static final androidx.compose.ui.text.style.ResolvedTextDirection Rtl; + } + + @kotlin.jvm.JvmInline public final value class TextAlign { + field public static final androidx.compose.ui.text.style.TextAlign.Companion Companion; + } + + public static final class TextAlign.Companion { + method public int getCenter(); + method public int getEnd(); + method public int getJustify(); + method public int getLeft(); + method public int getRight(); + method public int getStart(); + method public int getUnspecified(); + method public java.util.List values(); + property public final int Center; + property public final int End; + property public final int Justify; + property public final int Left; + property public final int Right; + property public final int Start; + property public final int Unspecified; + } + + @androidx.compose.runtime.Immutable public final class TextDecoration { + method public operator boolean contains(androidx.compose.ui.text.style.TextDecoration other); + method public int getMask(); + method public operator androidx.compose.ui.text.style.TextDecoration plus(androidx.compose.ui.text.style.TextDecoration decoration); + property public final int mask; + field public static final androidx.compose.ui.text.style.TextDecoration.Companion Companion; + } + + public static final class TextDecoration.Companion { + method public androidx.compose.ui.text.style.TextDecoration combine(java.util.List decorations); + method public androidx.compose.ui.text.style.TextDecoration getLineThrough(); + method public androidx.compose.ui.text.style.TextDecoration getNone(); + method public androidx.compose.ui.text.style.TextDecoration getUnderline(); + property public final androidx.compose.ui.text.style.TextDecoration LineThrough; + property public final androidx.compose.ui.text.style.TextDecoration None; + property public final androidx.compose.ui.text.style.TextDecoration Underline; + } + + @kotlin.jvm.JvmInline public final value class TextDirection { + field public static final androidx.compose.ui.text.style.TextDirection.Companion Companion; + } + + public static final class TextDirection.Companion { + method public int getContent(); + method public int getContentOrLtr(); + method public int getContentOrRtl(); + method public int getLtr(); + method public int getRtl(); + method public int getUnspecified(); + property public final int Content; + property public final int ContentOrLtr; + property public final int ContentOrRtl; + property public final int Ltr; + property public final int Rtl; + property public final int Unspecified; + } + + @androidx.compose.runtime.Immutable public final class TextGeometricTransform { + ctor public TextGeometricTransform(optional float scaleX, optional float skewX); + method public androidx.compose.ui.text.style.TextGeometricTransform copy(optional float scaleX, optional float skewX); + method public float getScaleX(); + method public float getSkewX(); + property public final float scaleX; + property public final float skewX; + field public static final androidx.compose.ui.text.style.TextGeometricTransform.Companion Companion; + } + + public static final class TextGeometricTransform.Companion { + } + + public final class TextGeometricTransformKt { + method public static androidx.compose.ui.text.style.TextGeometricTransform lerp(androidx.compose.ui.text.style.TextGeometricTransform start, androidx.compose.ui.text.style.TextGeometricTransform stop, float fraction); + } + + @androidx.compose.runtime.Immutable public final class TextIndent { + ctor public TextIndent(optional long firstLine, optional long restLine); + method public androidx.compose.ui.text.style.TextIndent copy(optional long firstLine, optional long restLine); + method public long getFirstLine(); + method public long getRestLine(); + property public final long firstLine; + property public final long restLine; + field public static final androidx.compose.ui.text.style.TextIndent.Companion Companion; + } + + public static final class TextIndent.Companion { + method public androidx.compose.ui.text.style.TextIndent getNone(); + property public final androidx.compose.ui.text.style.TextIndent None; + } + + public final class TextIndentKt { + method public static androidx.compose.ui.text.style.TextIndent lerp(androidx.compose.ui.text.style.TextIndent start, androidx.compose.ui.text.style.TextIndent stop, float fraction); + } + + @androidx.compose.runtime.Immutable public final class TextMotion { + field public static final androidx.compose.ui.text.style.TextMotion.Companion Companion; + } + + public static final class TextMotion.Companion { + method public androidx.compose.ui.text.style.TextMotion getAnimated(); + method public androidx.compose.ui.text.style.TextMotion getStatic(); + property public final androidx.compose.ui.text.style.TextMotion Animated; + property public final androidx.compose.ui.text.style.TextMotion Static; + } + + @kotlin.jvm.JvmInline public final value class TextOverflow { + field public static final androidx.compose.ui.text.style.TextOverflow.Companion Companion; + } + + public static final class TextOverflow.Companion { + method public int getClip(); + method public int getEllipsis(); + method public int getVisible(); + property public final int Clip; + property public final int Ellipsis; + property public final int Visible; + } + +} + diff --git a/compose/ui/ui-text/api/res-1.7.0-beta07.txt b/compose/ui/ui-text/api/res-1.7.0-beta07.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/compose/ui/ui-text/api/restricted_1.7.0-beta07.txt b/compose/ui/ui-text/api/restricted_1.7.0-beta07.txt new file mode 100644 index 0000000000000..8214d9cbc0c07 --- /dev/null +++ b/compose/ui/ui-text/api/restricted_1.7.0-beta07.txt @@ -0,0 +1,1676 @@ +// Signature format: 4.0 +package androidx.compose.ui.text { + + public final class AndroidTextStyle_androidKt { + method public static androidx.compose.ui.text.PlatformParagraphStyle lerp(androidx.compose.ui.text.PlatformParagraphStyle start, androidx.compose.ui.text.PlatformParagraphStyle stop, float fraction); + method public static androidx.compose.ui.text.PlatformSpanStyle lerp(androidx.compose.ui.text.PlatformSpanStyle start, androidx.compose.ui.text.PlatformSpanStyle stop, float fraction); + } + + @androidx.compose.runtime.Immutable public final class AnnotatedString implements java.lang.CharSequence { + ctor public AnnotatedString(String text, optional java.util.List> spanStyles, optional java.util.List> paragraphStyles); + method public operator char get(int index); + method public int getLength(); + method public java.util.List> getLinkAnnotations(int start, int end); + method public java.util.List> getParagraphStyles(); + method public java.util.List> getSpanStyles(); + method public java.util.List> getStringAnnotations(int start, int end); + method public java.util.List> getStringAnnotations(String tag, int start, int end); + method public String getText(); + method public java.util.List> getTtsAnnotations(int start, int end); + method @Deprecated @SuppressCompatibility @androidx.compose.ui.text.ExperimentalTextApi public java.util.List> getUrlAnnotations(int start, int end); + method public boolean hasEqualAnnotations(androidx.compose.ui.text.AnnotatedString other); + method public boolean hasLinkAnnotations(int start, int end); + method public boolean hasStringAnnotations(String tag, int start, int end); + method @androidx.compose.runtime.Stable public operator androidx.compose.ui.text.AnnotatedString plus(androidx.compose.ui.text.AnnotatedString other); + method public androidx.compose.ui.text.AnnotatedString subSequence(int startIndex, int endIndex); + method public androidx.compose.ui.text.AnnotatedString subSequence(long range); + property public int length; + property public final java.util.List> paragraphStyles; + property public final java.util.List> spanStyles; + property public final String text; + field public static final androidx.compose.ui.text.AnnotatedString.Companion Companion; + } + + public static final class AnnotatedString.Builder implements java.lang.Appendable { + ctor public AnnotatedString.Builder(androidx.compose.ui.text.AnnotatedString text); + ctor public AnnotatedString.Builder(optional int capacity); + ctor public AnnotatedString.Builder(String text); + method public void addLink(androidx.compose.ui.text.LinkAnnotation.Clickable clickable, int start, int end); + method public void addLink(androidx.compose.ui.text.LinkAnnotation.Url url, int start, int end); + method public void addStringAnnotation(String tag, String annotation, int start, int end); + method public void addStyle(androidx.compose.ui.text.ParagraphStyle style, int start, int end); + method public void addStyle(androidx.compose.ui.text.SpanStyle style, int start, int end); + method @SuppressCompatibility @androidx.compose.ui.text.ExperimentalTextApi public void addTtsAnnotation(androidx.compose.ui.text.TtsAnnotation ttsAnnotation, int start, int end); + method @Deprecated @SuppressCompatibility @androidx.compose.ui.text.ExperimentalTextApi public void addUrlAnnotation(androidx.compose.ui.text.UrlAnnotation urlAnnotation, int start, int end); + method public void append(androidx.compose.ui.text.AnnotatedString text); + method public void append(androidx.compose.ui.text.AnnotatedString text, int start, int end); + method public androidx.compose.ui.text.AnnotatedString.Builder append(char char); + method @Deprecated public void append(char char); + method public androidx.compose.ui.text.AnnotatedString.Builder append(CharSequence? text); + method public androidx.compose.ui.text.AnnotatedString.Builder append(CharSequence? text, int start, int end); + method public void append(String text); + method public int getLength(); + method public void pop(); + method public void pop(int index); + method public int pushLink(androidx.compose.ui.text.LinkAnnotation link); + method public int pushStringAnnotation(String tag, String annotation); + method public int pushStyle(androidx.compose.ui.text.ParagraphStyle style); + method public int pushStyle(androidx.compose.ui.text.SpanStyle style); + method public int pushTtsAnnotation(androidx.compose.ui.text.TtsAnnotation ttsAnnotation); + method @Deprecated @SuppressCompatibility @androidx.compose.ui.text.ExperimentalTextApi public int pushUrlAnnotation(androidx.compose.ui.text.UrlAnnotation urlAnnotation); + method public androidx.compose.ui.text.AnnotatedString toAnnotatedString(); + property public final int length; + } + + public static final class AnnotatedString.Companion { + method public androidx.compose.runtime.saveable.Saver getSaver(); + property public final androidx.compose.runtime.saveable.Saver Saver; + } + + @androidx.compose.runtime.Immutable public static final class AnnotatedString.Range { + ctor public AnnotatedString.Range(T item, int start, int end); + ctor public AnnotatedString.Range(T item, int start, int end, String tag); + method public T component1(); + method public int component2(); + method public int component3(); + method public String component4(); + method public androidx.compose.ui.text.AnnotatedString.Range copy(T item, int start, int end, String tag); + method public int getEnd(); + method public T getItem(); + method public int getStart(); + method public String getTag(); + property public final int end; + property public final T item; + property public final int start; + property public final String tag; + } + + public final class AnnotatedStringKt { + method public static androidx.compose.ui.text.AnnotatedString AnnotatedString(String text, androidx.compose.ui.text.ParagraphStyle paragraphStyle); + method public static androidx.compose.ui.text.AnnotatedString AnnotatedString(String text, androidx.compose.ui.text.SpanStyle spanStyle, optional androidx.compose.ui.text.ParagraphStyle? paragraphStyle); + method public static inline androidx.compose.ui.text.AnnotatedString buildAnnotatedString(kotlin.jvm.functions.Function1 builder); + method public static androidx.compose.ui.text.AnnotatedString capitalize(androidx.compose.ui.text.AnnotatedString, optional androidx.compose.ui.text.intl.LocaleList localeList); + method public static androidx.compose.ui.text.AnnotatedString decapitalize(androidx.compose.ui.text.AnnotatedString, optional androidx.compose.ui.text.intl.LocaleList localeList); + method public static androidx.compose.ui.text.AnnotatedString toLowerCase(androidx.compose.ui.text.AnnotatedString, optional androidx.compose.ui.text.intl.LocaleList localeList); + method public static androidx.compose.ui.text.AnnotatedString toUpperCase(androidx.compose.ui.text.AnnotatedString, optional androidx.compose.ui.text.intl.LocaleList localeList); + method @SuppressCompatibility @androidx.compose.ui.text.ExperimentalTextApi public static inline R withAnnotation(androidx.compose.ui.text.AnnotatedString.Builder, androidx.compose.ui.text.TtsAnnotation ttsAnnotation, kotlin.jvm.functions.Function1 block); + method @Deprecated @SuppressCompatibility @androidx.compose.ui.text.ExperimentalTextApi public static inline R withAnnotation(androidx.compose.ui.text.AnnotatedString.Builder, androidx.compose.ui.text.UrlAnnotation urlAnnotation, kotlin.jvm.functions.Function1 block); + method @SuppressCompatibility @androidx.compose.ui.text.ExperimentalTextApi public static inline R withAnnotation(androidx.compose.ui.text.AnnotatedString.Builder, String tag, String annotation, kotlin.jvm.functions.Function1 block); + method public static inline R withLink(androidx.compose.ui.text.AnnotatedString.Builder, androidx.compose.ui.text.LinkAnnotation link, kotlin.jvm.functions.Function1 block); + method public static inline R withStyle(androidx.compose.ui.text.AnnotatedString.Builder, androidx.compose.ui.text.ParagraphStyle style, kotlin.jvm.functions.Function1 block); + method public static inline R withStyle(androidx.compose.ui.text.AnnotatedString.Builder, androidx.compose.ui.text.SpanStyle style, kotlin.jvm.functions.Function1 block); + } + + @kotlin.jvm.JvmInline public final value class EmojiSupportMatch { + field public static final androidx.compose.ui.text.EmojiSupportMatch.Companion Companion; + } + + public static final class EmojiSupportMatch.Companion { + method public int getAll(); + method public int getDefault(); + method public int getNone(); + property public final int All; + property public final int Default; + property public final int None; + } + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This API is experimental and is likely to change in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalTextApi { + } + + public final class Html_androidKt { + method public static androidx.compose.ui.text.AnnotatedString fromHtml(androidx.compose.ui.text.AnnotatedString.Companion, String htmlString, optional androidx.compose.ui.text.TextLinkStyles? linkStyles, optional androidx.compose.ui.text.LinkInteractionListener? linkInteractionListener); + } + + @SuppressCompatibility @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.ERROR, message="This is internal API that may change frequently and without warning.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY}) public @interface InternalTextApi { + } + + public abstract class LinkAnnotation { + method public abstract androidx.compose.ui.text.LinkInteractionListener? getLinkInteractionListener(); + method public abstract androidx.compose.ui.text.TextLinkStyles? getStyles(); + property public abstract androidx.compose.ui.text.LinkInteractionListener? linkInteractionListener; + property public abstract androidx.compose.ui.text.TextLinkStyles? styles; + } + + public static final class LinkAnnotation.Clickable extends androidx.compose.ui.text.LinkAnnotation { + ctor public LinkAnnotation.Clickable(String tag, optional androidx.compose.ui.text.TextLinkStyles? styles, androidx.compose.ui.text.LinkInteractionListener? linkInteractionListener); + method public androidx.compose.ui.text.LinkInteractionListener? getLinkInteractionListener(); + method public androidx.compose.ui.text.TextLinkStyles? getStyles(); + method public String getTag(); + property public androidx.compose.ui.text.LinkInteractionListener? linkInteractionListener; + property public androidx.compose.ui.text.TextLinkStyles? styles; + property public final String tag; + } + + public static final class LinkAnnotation.Url extends androidx.compose.ui.text.LinkAnnotation { + ctor public LinkAnnotation.Url(String url, optional androidx.compose.ui.text.TextLinkStyles? styles, optional androidx.compose.ui.text.LinkInteractionListener? linkInteractionListener); + method public androidx.compose.ui.text.LinkInteractionListener? getLinkInteractionListener(); + method public androidx.compose.ui.text.TextLinkStyles? getStyles(); + method public String getUrl(); + property public androidx.compose.ui.text.LinkInteractionListener? linkInteractionListener; + property public androidx.compose.ui.text.TextLinkStyles? styles; + property public final String url; + } + + public fun interface LinkInteractionListener { + method public void onClick(androidx.compose.ui.text.LinkAnnotation link); + } + + public final class MultiParagraph { + ctor @Deprecated public MultiParagraph(androidx.compose.ui.text.AnnotatedString annotatedString, androidx.compose.ui.text.TextStyle style, float width, androidx.compose.ui.unit.Density density, androidx.compose.ui.text.font.FontFamily.Resolver fontFamilyResolver, optional java.util.List> placeholders, optional int maxLines, optional boolean ellipsis); + ctor @Deprecated public MultiParagraph(androidx.compose.ui.text.AnnotatedString annotatedString, androidx.compose.ui.text.TextStyle style, optional java.util.List> placeholders, optional int maxLines, optional boolean ellipsis, float width, androidx.compose.ui.unit.Density density, androidx.compose.ui.text.font.Font.ResourceLoader resourceLoader); + ctor public MultiParagraph(androidx.compose.ui.text.AnnotatedString annotatedString, androidx.compose.ui.text.TextStyle style, long constraints, androidx.compose.ui.unit.Density density, androidx.compose.ui.text.font.FontFamily.Resolver fontFamilyResolver, optional java.util.List> placeholders, optional int maxLines, optional boolean ellipsis); + ctor @Deprecated public MultiParagraph(androidx.compose.ui.text.MultiParagraphIntrinsics intrinsics, optional int maxLines, optional boolean ellipsis, float width); + ctor public MultiParagraph(androidx.compose.ui.text.MultiParagraphIntrinsics intrinsics, long constraints, optional int maxLines, optional boolean ellipsis); + method public float[] fillBoundingBoxes(long range, float[] array, @IntRange(from=0L) int arrayStart); + method public androidx.compose.ui.text.style.ResolvedTextDirection getBidiRunDirection(int offset); + method public androidx.compose.ui.geometry.Rect getBoundingBox(int offset); + method public androidx.compose.ui.geometry.Rect getCursorRect(int offset); + method public boolean getDidExceedMaxLines(); + method public float getFirstBaseline(); + method public float getHeight(); + method public float getHorizontalPosition(int offset, boolean usePrimaryDirection); + method public androidx.compose.ui.text.MultiParagraphIntrinsics getIntrinsics(); + method public float getLastBaseline(); + method public float getLineBaseline(int lineIndex); + method public float getLineBottom(int lineIndex); + method public int getLineCount(); + method public int getLineEnd(int lineIndex, optional boolean visibleEnd); + method public int getLineForOffset(int offset); + method public int getLineForVerticalPosition(float vertical); + method public float getLineHeight(int lineIndex); + method public float getLineLeft(int lineIndex); + method public float getLineRight(int lineIndex); + method public int getLineStart(int lineIndex); + method public float getLineTop(int lineIndex); + method public float getLineWidth(int lineIndex); + method public float getMaxIntrinsicWidth(); + method public int getMaxLines(); + method public float getMinIntrinsicWidth(); + method public int getOffsetForPosition(long position); + method public androidx.compose.ui.text.style.ResolvedTextDirection getParagraphDirection(int offset); + method public androidx.compose.ui.graphics.Path getPathForRange(int start, int end); + method public java.util.List getPlaceholderRects(); + method public long getRangeForRect(androidx.compose.ui.geometry.Rect rect, int granularity, androidx.compose.ui.text.TextInclusionStrategy inclusionStrategy); + method public float getWidth(); + method public long getWordBoundary(int offset); + method public boolean isLineEllipsized(int lineIndex); + method public void paint(androidx.compose.ui.graphics.Canvas canvas, androidx.compose.ui.graphics.Brush brush, optional float alpha, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.style.TextDecoration? decoration, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle, optional int blendMode); + method @Deprecated public void paint(androidx.compose.ui.graphics.Canvas canvas, optional long color, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.style.TextDecoration? decoration); + method public void paint(androidx.compose.ui.graphics.Canvas canvas, optional long color, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.style.TextDecoration? decoration, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle, optional int blendMode); + property public final boolean didExceedMaxLines; + property public final float firstBaseline; + property public final float height; + property public final androidx.compose.ui.text.MultiParagraphIntrinsics intrinsics; + property public final float lastBaseline; + property public final int lineCount; + property public final float maxIntrinsicWidth; + property public final int maxLines; + property public final float minIntrinsicWidth; + property public final java.util.List placeholderRects; + property public final float width; + } + + public final class MultiParagraphIntrinsics implements androidx.compose.ui.text.ParagraphIntrinsics { + ctor @Deprecated public MultiParagraphIntrinsics(androidx.compose.ui.text.AnnotatedString annotatedString, androidx.compose.ui.text.TextStyle style, java.util.List> placeholders, androidx.compose.ui.unit.Density density, androidx.compose.ui.text.font.Font.ResourceLoader resourceLoader); + ctor public MultiParagraphIntrinsics(androidx.compose.ui.text.AnnotatedString annotatedString, androidx.compose.ui.text.TextStyle style, java.util.List> placeholders, androidx.compose.ui.unit.Density density, androidx.compose.ui.text.font.FontFamily.Resolver fontFamilyResolver); + method public androidx.compose.ui.text.AnnotatedString getAnnotatedString(); + method public float getMaxIntrinsicWidth(); + method public float getMinIntrinsicWidth(); + method public java.util.List> getPlaceholders(); + property public final androidx.compose.ui.text.AnnotatedString annotatedString; + property public boolean hasStaleResolvedFonts; + property public float maxIntrinsicWidth; + property public float minIntrinsicWidth; + property public final java.util.List> placeholders; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public sealed interface Paragraph { + method public void fillBoundingBoxes(long range, float[] array, @IntRange(from=0L) int arrayStart); + method public androidx.compose.ui.text.style.ResolvedTextDirection getBidiRunDirection(int offset); + method public androidx.compose.ui.geometry.Rect getBoundingBox(int offset); + method public androidx.compose.ui.geometry.Rect getCursorRect(int offset); + method public boolean getDidExceedMaxLines(); + method public float getFirstBaseline(); + method public float getHeight(); + method public float getHorizontalPosition(int offset, boolean usePrimaryDirection); + method public float getLastBaseline(); + method public float getLineBaseline(int lineIndex); + method public float getLineBottom(int lineIndex); + method public int getLineCount(); + method public int getLineEnd(int lineIndex, optional boolean visibleEnd); + method public int getLineForOffset(int offset); + method public int getLineForVerticalPosition(float vertical); + method public float getLineHeight(int lineIndex); + method public float getLineLeft(int lineIndex); + method public float getLineRight(int lineIndex); + method public int getLineStart(int lineIndex); + method public float getLineTop(int lineIndex); + method public float getLineWidth(int lineIndex); + method public float getMaxIntrinsicWidth(); + method public float getMinIntrinsicWidth(); + method public int getOffsetForPosition(long position); + method public androidx.compose.ui.text.style.ResolvedTextDirection getParagraphDirection(int offset); + method public androidx.compose.ui.graphics.Path getPathForRange(int start, int end); + method public java.util.List getPlaceholderRects(); + method public long getRangeForRect(androidx.compose.ui.geometry.Rect rect, int granularity, androidx.compose.ui.text.TextInclusionStrategy inclusionStrategy); + method public float getWidth(); + method public long getWordBoundary(int offset); + method public boolean isLineEllipsized(int lineIndex); + method public void paint(androidx.compose.ui.graphics.Canvas canvas, androidx.compose.ui.graphics.Brush brush, optional float alpha, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle, optional int blendMode); + method public void paint(androidx.compose.ui.graphics.Canvas canvas, optional long color, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.style.TextDecoration? textDecoration); + method public void paint(androidx.compose.ui.graphics.Canvas canvas, optional long color, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle, optional int blendMode); + property public abstract boolean didExceedMaxLines; + property public abstract float firstBaseline; + property public abstract float height; + property public abstract float lastBaseline; + property public abstract int lineCount; + property public abstract float maxIntrinsicWidth; + property public abstract float minIntrinsicWidth; + property public abstract java.util.List placeholderRects; + property public abstract float width; + } + + public interface ParagraphIntrinsics { + method public default boolean getHasStaleResolvedFonts(); + method public float getMaxIntrinsicWidth(); + method public float getMinIntrinsicWidth(); + property public default boolean hasStaleResolvedFonts; + property public abstract float maxIntrinsicWidth; + property public abstract float minIntrinsicWidth; + } + + public final class ParagraphIntrinsicsKt { + method @Deprecated public static androidx.compose.ui.text.ParagraphIntrinsics ParagraphIntrinsics(String text, androidx.compose.ui.text.TextStyle style, optional java.util.List> spanStyles, optional java.util.List> placeholders, androidx.compose.ui.unit.Density density, androidx.compose.ui.text.font.Font.ResourceLoader resourceLoader); + method public static androidx.compose.ui.text.ParagraphIntrinsics ParagraphIntrinsics(String text, androidx.compose.ui.text.TextStyle style, optional java.util.List> spanStyles, optional java.util.List> placeholders, androidx.compose.ui.unit.Density density, androidx.compose.ui.text.font.FontFamily.Resolver fontFamilyResolver); + } + + public final class ParagraphKt { + method @Deprecated public static androidx.compose.ui.text.Paragraph Paragraph(androidx.compose.ui.text.ParagraphIntrinsics paragraphIntrinsics, optional int maxLines, optional boolean ellipsis, float width); + method public static androidx.compose.ui.text.Paragraph Paragraph(androidx.compose.ui.text.ParagraphIntrinsics paragraphIntrinsics, long constraints, optional int maxLines, optional boolean ellipsis); + method @Deprecated public static androidx.compose.ui.text.Paragraph Paragraph(String text, androidx.compose.ui.text.TextStyle style, float width, androidx.compose.ui.unit.Density density, androidx.compose.ui.text.font.FontFamily.Resolver fontFamilyResolver, optional java.util.List> spanStyles, optional java.util.List> placeholders, optional int maxLines, optional boolean ellipsis); + method @Deprecated public static androidx.compose.ui.text.Paragraph Paragraph(String text, androidx.compose.ui.text.TextStyle style, optional java.util.List> spanStyles, optional java.util.List> placeholders, optional int maxLines, optional boolean ellipsis, float width, androidx.compose.ui.unit.Density density, androidx.compose.ui.text.font.Font.ResourceLoader resourceLoader); + method public static androidx.compose.ui.text.Paragraph Paragraph(String text, androidx.compose.ui.text.TextStyle style, long constraints, androidx.compose.ui.unit.Density density, androidx.compose.ui.text.font.FontFamily.Resolver fontFamilyResolver, optional java.util.List> spanStyles, optional java.util.List> placeholders, optional int maxLines, optional boolean ellipsis); + } + + @androidx.compose.runtime.Immutable public final class ParagraphStyle { + ctor @Deprecated public ParagraphStyle(optional androidx.compose.ui.text.style.TextAlign? textAlign, optional androidx.compose.ui.text.style.TextDirection? textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent); + ctor @Deprecated public ParagraphStyle(optional androidx.compose.ui.text.style.TextAlign? textAlign, optional androidx.compose.ui.text.style.TextDirection? textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformParagraphStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle); + ctor @Deprecated public ParagraphStyle(optional androidx.compose.ui.text.style.TextAlign? textAlign, optional androidx.compose.ui.text.style.TextDirection? textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformParagraphStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle, optional androidx.compose.ui.text.style.LineBreak? lineBreak, optional androidx.compose.ui.text.style.Hyphens? hyphens); + ctor @Deprecated public ParagraphStyle(optional androidx.compose.ui.text.style.TextAlign? textAlign, optional androidx.compose.ui.text.style.TextDirection? textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformParagraphStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle, optional androidx.compose.ui.text.style.LineBreak? lineBreak, optional androidx.compose.ui.text.style.Hyphens? hyphens, optional androidx.compose.ui.text.style.TextMotion? textMotion); + ctor public ParagraphStyle(optional int textAlign, optional int textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformParagraphStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle, optional int lineBreak, optional int hyphens, optional androidx.compose.ui.text.style.TextMotion? textMotion); + method @Deprecated public androidx.compose.ui.text.ParagraphStyle copy(optional androidx.compose.ui.text.style.TextAlign? textAlign, optional androidx.compose.ui.text.style.TextDirection? textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent); + method @Deprecated public androidx.compose.ui.text.ParagraphStyle copy(optional androidx.compose.ui.text.style.TextAlign? textAlign, optional androidx.compose.ui.text.style.TextDirection? textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformParagraphStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle); + method @Deprecated public androidx.compose.ui.text.ParagraphStyle copy(optional androidx.compose.ui.text.style.TextAlign? textAlign, optional androidx.compose.ui.text.style.TextDirection? textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformParagraphStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle, optional androidx.compose.ui.text.style.LineBreak? lineBreak, optional androidx.compose.ui.text.style.Hyphens? hyphens); + method @Deprecated public androidx.compose.ui.text.ParagraphStyle copy(optional androidx.compose.ui.text.style.TextAlign? textAlign, optional androidx.compose.ui.text.style.TextDirection? textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformParagraphStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle, optional androidx.compose.ui.text.style.LineBreak? lineBreak, optional androidx.compose.ui.text.style.Hyphens? hyphens, optional androidx.compose.ui.text.style.TextMotion? textMotion); + method public androidx.compose.ui.text.ParagraphStyle copy(optional int textAlign, optional int textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformParagraphStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle, optional int lineBreak, optional int hyphens, optional androidx.compose.ui.text.style.TextMotion? textMotion); + method public int getHyphens(); + method @Deprecated public androidx.compose.ui.text.style.Hyphens? getHyphens-EaSxIns(); + method public int getLineBreak(); + method @Deprecated public androidx.compose.ui.text.style.LineBreak? getLineBreak-LgCVezo(); + method public long getLineHeight(); + method public androidx.compose.ui.text.style.LineHeightStyle? getLineHeightStyle(); + method public androidx.compose.ui.text.PlatformParagraphStyle? getPlatformStyle(); + method public int getTextAlign(); + method @Deprecated public androidx.compose.ui.text.style.TextAlign? getTextAlign-buA522U(); + method public int getTextDirection(); + method @Deprecated public androidx.compose.ui.text.style.TextDirection? getTextDirection-mmuk1to(); + method public androidx.compose.ui.text.style.TextIndent? getTextIndent(); + method public androidx.compose.ui.text.style.TextMotion? getTextMotion(); + method @androidx.compose.runtime.Stable public androidx.compose.ui.text.ParagraphStyle merge(optional androidx.compose.ui.text.ParagraphStyle? other); + method @androidx.compose.runtime.Stable public operator androidx.compose.ui.text.ParagraphStyle plus(androidx.compose.ui.text.ParagraphStyle other); + property @Deprecated public final androidx.compose.ui.text.style.Hyphens? deprecated_boxing_hyphens; + property @Deprecated public final androidx.compose.ui.text.style.LineBreak? deprecated_boxing_lineBreak; + property @Deprecated public final androidx.compose.ui.text.style.TextAlign? deprecated_boxing_textAlign; + property @Deprecated public final androidx.compose.ui.text.style.TextDirection? deprecated_boxing_textDirection; + property public final int hyphens; + property public final int lineBreak; + property public final long lineHeight; + property public final androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle; + property public final androidx.compose.ui.text.PlatformParagraphStyle? platformStyle; + property public final int textAlign; + property public final int textDirection; + property public final androidx.compose.ui.text.style.TextIndent? textIndent; + property public final androidx.compose.ui.text.style.TextMotion? textMotion; + } + + public final class ParagraphStyleKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.text.ParagraphStyle lerp(androidx.compose.ui.text.ParagraphStyle start, androidx.compose.ui.text.ParagraphStyle stop, float fraction); + } + + @androidx.compose.runtime.Immutable public final class Placeholder { + ctor public Placeholder(long width, long height, int placeholderVerticalAlign); + method public androidx.compose.ui.text.Placeholder copy(optional long width, optional long height, optional int placeholderVerticalAlign); + method public long getHeight(); + method public int getPlaceholderVerticalAlign(); + method public long getWidth(); + property public final long height; + property public final int placeholderVerticalAlign; + property public final long width; + } + + @kotlin.jvm.JvmInline public final value class PlaceholderVerticalAlign { + field public static final androidx.compose.ui.text.PlaceholderVerticalAlign.Companion Companion; + } + + public static final class PlaceholderVerticalAlign.Companion { + method public int getAboveBaseline(); + method public int getBottom(); + method public int getCenter(); + method public int getTextBottom(); + method public int getTextCenter(); + method public int getTextTop(); + method public int getTop(); + property public final int AboveBaseline; + property public final int Bottom; + property public final int Center; + property public final int TextBottom; + property public final int TextCenter; + property public final int TextTop; + property public final int Top; + } + + public final class PlatformParagraphStyle { + ctor public PlatformParagraphStyle(optional boolean includeFontPadding); + ctor public PlatformParagraphStyle(optional int emojiSupportMatch); + ctor public PlatformParagraphStyle(optional int emojiSupportMatch, optional boolean includeFontPadding); + method public int getEmojiSupportMatch(); + method public boolean getIncludeFontPadding(); + method public androidx.compose.ui.text.PlatformParagraphStyle merge(androidx.compose.ui.text.PlatformParagraphStyle? other); + property public final int emojiSupportMatch; + property public final boolean includeFontPadding; + field public static final androidx.compose.ui.text.PlatformParagraphStyle.Companion Companion; + } + + public static final class PlatformParagraphStyle.Companion { + method public androidx.compose.ui.text.PlatformParagraphStyle getDefault(); + property public final androidx.compose.ui.text.PlatformParagraphStyle Default; + } + + public final class PlatformSpanStyle { + ctor public PlatformSpanStyle(); + method public androidx.compose.ui.text.PlatformSpanStyle merge(androidx.compose.ui.text.PlatformSpanStyle? other); + field public static final androidx.compose.ui.text.PlatformSpanStyle.Companion Companion; + } + + public static final class PlatformSpanStyle.Companion { + method public androidx.compose.ui.text.PlatformSpanStyle getDefault(); + property public final androidx.compose.ui.text.PlatformSpanStyle Default; + } + + public final class PlatformTextStyle { + ctor public PlatformTextStyle(androidx.compose.ui.text.PlatformSpanStyle? spanStyle, androidx.compose.ui.text.PlatformParagraphStyle? paragraphStyle); + ctor public PlatformTextStyle(optional boolean includeFontPadding); + ctor public PlatformTextStyle(int emojiSupportMatch); + method public androidx.compose.ui.text.PlatformParagraphStyle? getParagraphStyle(); + method public androidx.compose.ui.text.PlatformSpanStyle? getSpanStyle(); + property public final androidx.compose.ui.text.PlatformParagraphStyle? paragraphStyle; + property public final androidx.compose.ui.text.PlatformSpanStyle? spanStyle; + } + + @androidx.compose.runtime.Immutable public final class SpanStyle { + ctor public SpanStyle(androidx.compose.ui.graphics.Brush? brush, optional float alpha, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.PlatformSpanStyle? platformStyle, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle); + ctor @Deprecated public SpanStyle(optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow); + ctor @Deprecated public SpanStyle(optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.PlatformSpanStyle? platformStyle); + ctor public SpanStyle(optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.PlatformSpanStyle? platformStyle, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle); + method public androidx.compose.ui.text.SpanStyle copy(androidx.compose.ui.graphics.Brush? brush, optional float alpha, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.PlatformSpanStyle? platformStyle, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle); + method @Deprecated public androidx.compose.ui.text.SpanStyle copy(optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow); + method @Deprecated public androidx.compose.ui.text.SpanStyle copy(optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.PlatformSpanStyle? platformStyle); + method public androidx.compose.ui.text.SpanStyle copy(optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.PlatformSpanStyle? platformStyle, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle); + method public float getAlpha(); + method public long getBackground(); + method public androidx.compose.ui.text.style.BaselineShift? getBaselineShift(); + method public androidx.compose.ui.graphics.Brush? getBrush(); + method public long getColor(); + method public androidx.compose.ui.graphics.drawscope.DrawStyle? getDrawStyle(); + method public androidx.compose.ui.text.font.FontFamily? getFontFamily(); + method public String? getFontFeatureSettings(); + method public long getFontSize(); + method public androidx.compose.ui.text.font.FontStyle? getFontStyle(); + method public androidx.compose.ui.text.font.FontSynthesis? getFontSynthesis(); + method public androidx.compose.ui.text.font.FontWeight? getFontWeight(); + method public long getLetterSpacing(); + method public androidx.compose.ui.text.intl.LocaleList? getLocaleList(); + method public androidx.compose.ui.text.PlatformSpanStyle? getPlatformStyle(); + method public androidx.compose.ui.graphics.Shadow? getShadow(); + method public androidx.compose.ui.text.style.TextDecoration? getTextDecoration(); + method public androidx.compose.ui.text.style.TextGeometricTransform? getTextGeometricTransform(); + method @androidx.compose.runtime.Stable public androidx.compose.ui.text.SpanStyle merge(optional androidx.compose.ui.text.SpanStyle? other); + method @androidx.compose.runtime.Stable public operator androidx.compose.ui.text.SpanStyle plus(androidx.compose.ui.text.SpanStyle other); + property public final float alpha; + property public final long background; + property public final androidx.compose.ui.text.style.BaselineShift? baselineShift; + property public final androidx.compose.ui.graphics.Brush? brush; + property public final long color; + property public final androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle; + property public final androidx.compose.ui.text.font.FontFamily? fontFamily; + property public final String? fontFeatureSettings; + property public final long fontSize; + property public final androidx.compose.ui.text.font.FontStyle? fontStyle; + property public final androidx.compose.ui.text.font.FontSynthesis? fontSynthesis; + property public final androidx.compose.ui.text.font.FontWeight? fontWeight; + property public final long letterSpacing; + property public final androidx.compose.ui.text.intl.LocaleList? localeList; + property public final androidx.compose.ui.text.PlatformSpanStyle? platformStyle; + property public final androidx.compose.ui.graphics.Shadow? shadow; + property public final androidx.compose.ui.text.style.TextDecoration? textDecoration; + property public final androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform; + } + + public final class SpanStyleKt { + method public static androidx.compose.ui.text.SpanStyle lerp(androidx.compose.ui.text.SpanStyle start, androidx.compose.ui.text.SpanStyle stop, float fraction); + } + + public final class StringKt { + method public static String capitalize(String, androidx.compose.ui.text.intl.Locale locale); + method public static String capitalize(String, androidx.compose.ui.text.intl.LocaleList localeList); + method public static String decapitalize(String, androidx.compose.ui.text.intl.Locale locale); + method public static String decapitalize(String, androidx.compose.ui.text.intl.LocaleList localeList); + method public static String toLowerCase(String, androidx.compose.ui.text.intl.Locale locale); + method public static String toLowerCase(String, androidx.compose.ui.text.intl.LocaleList localeList); + method public static String toUpperCase(String, androidx.compose.ui.text.intl.Locale locale); + method public static String toUpperCase(String, androidx.compose.ui.text.intl.LocaleList localeList); + } + + @kotlin.jvm.JvmInline public final value class TextGranularity { + field public static final androidx.compose.ui.text.TextGranularity.Companion Companion; + } + + public static final class TextGranularity.Companion { + method public int getCharacter(); + method public int getWord(); + property public final int Character; + property public final int Word; + } + + public fun interface TextInclusionStrategy { + method public boolean isIncluded(androidx.compose.ui.geometry.Rect textBounds, androidx.compose.ui.geometry.Rect rect); + field public static final androidx.compose.ui.text.TextInclusionStrategy.Companion Companion; + } + + public static final class TextInclusionStrategy.Companion { + method public androidx.compose.ui.text.TextInclusionStrategy getAnyOverlap(); + method public androidx.compose.ui.text.TextInclusionStrategy getContainsAll(); + method public androidx.compose.ui.text.TextInclusionStrategy getContainsCenter(); + property public final androidx.compose.ui.text.TextInclusionStrategy AnyOverlap; + property public final androidx.compose.ui.text.TextInclusionStrategy ContainsAll; + property public final androidx.compose.ui.text.TextInclusionStrategy ContainsCenter; + } + + public final class TextLayoutInput { + ctor @Deprecated public TextLayoutInput(androidx.compose.ui.text.AnnotatedString text, androidx.compose.ui.text.TextStyle style, java.util.List> placeholders, int maxLines, boolean softWrap, int overflow, androidx.compose.ui.unit.Density density, androidx.compose.ui.unit.LayoutDirection layoutDirection, androidx.compose.ui.text.font.Font.ResourceLoader resourceLoader, long constraints); + ctor public TextLayoutInput(androidx.compose.ui.text.AnnotatedString text, androidx.compose.ui.text.TextStyle style, java.util.List> placeholders, int maxLines, boolean softWrap, int overflow, androidx.compose.ui.unit.Density density, androidx.compose.ui.unit.LayoutDirection layoutDirection, androidx.compose.ui.text.font.FontFamily.Resolver fontFamilyResolver, long constraints); + method @Deprecated public androidx.compose.ui.text.TextLayoutInput copy(optional androidx.compose.ui.text.AnnotatedString text, optional androidx.compose.ui.text.TextStyle style, optional java.util.List> placeholders, optional int maxLines, optional boolean softWrap, optional int overflow, optional androidx.compose.ui.unit.Density density, optional androidx.compose.ui.unit.LayoutDirection layoutDirection, optional androidx.compose.ui.text.font.Font.ResourceLoader resourceLoader, optional long constraints); + method public long getConstraints(); + method public androidx.compose.ui.unit.Density getDensity(); + method public androidx.compose.ui.text.font.FontFamily.Resolver getFontFamilyResolver(); + method public androidx.compose.ui.unit.LayoutDirection getLayoutDirection(); + method public int getMaxLines(); + method public int getOverflow(); + method public java.util.List> getPlaceholders(); + method @Deprecated public androidx.compose.ui.text.font.Font.ResourceLoader getResourceLoader(); + method public boolean getSoftWrap(); + method public androidx.compose.ui.text.TextStyle getStyle(); + method public androidx.compose.ui.text.AnnotatedString getText(); + property public final long constraints; + property public final androidx.compose.ui.unit.Density density; + property public final androidx.compose.ui.text.font.FontFamily.Resolver fontFamilyResolver; + property public final androidx.compose.ui.unit.LayoutDirection layoutDirection; + property public final int maxLines; + property public final int overflow; + property public final java.util.List> placeholders; + property @Deprecated public final androidx.compose.ui.text.font.Font.ResourceLoader resourceLoader; + property public final boolean softWrap; + property public final androidx.compose.ui.text.TextStyle style; + property public final androidx.compose.ui.text.AnnotatedString text; + } + + public final class TextLayoutResult { + ctor public TextLayoutResult(androidx.compose.ui.text.TextLayoutInput layoutInput, androidx.compose.ui.text.MultiParagraph multiParagraph, long size); + method public androidx.compose.ui.text.TextLayoutResult copy(optional androidx.compose.ui.text.TextLayoutInput layoutInput, optional long size); + method public androidx.compose.ui.text.style.ResolvedTextDirection getBidiRunDirection(int offset); + method public androidx.compose.ui.geometry.Rect getBoundingBox(int offset); + method public androidx.compose.ui.geometry.Rect getCursorRect(int offset); + method public boolean getDidOverflowHeight(); + method public boolean getDidOverflowWidth(); + method public float getFirstBaseline(); + method public boolean getHasVisualOverflow(); + method public float getHorizontalPosition(int offset, boolean usePrimaryDirection); + method public float getLastBaseline(); + method public androidx.compose.ui.text.TextLayoutInput getLayoutInput(); + method public float getLineBaseline(int lineIndex); + method public float getLineBottom(int lineIndex); + method public int getLineCount(); + method public int getLineEnd(int lineIndex, optional boolean visibleEnd); + method public int getLineForOffset(int offset); + method public int getLineForVerticalPosition(float vertical); + method public float getLineLeft(int lineIndex); + method public float getLineRight(int lineIndex); + method public int getLineStart(int lineIndex); + method public float getLineTop(int lineIndex); + method public androidx.compose.ui.text.MultiParagraph getMultiParagraph(); + method public int getOffsetForPosition(long position); + method public androidx.compose.ui.text.style.ResolvedTextDirection getParagraphDirection(int offset); + method public androidx.compose.ui.graphics.Path getPathForRange(int start, int end); + method public java.util.List getPlaceholderRects(); + method public long getSize(); + method public long getWordBoundary(int offset); + method public boolean isLineEllipsized(int lineIndex); + property public final boolean didOverflowHeight; + property public final boolean didOverflowWidth; + property public final float firstBaseline; + property public final boolean hasVisualOverflow; + property public final float lastBaseline; + property public final androidx.compose.ui.text.TextLayoutInput layoutInput; + property public final int lineCount; + property public final androidx.compose.ui.text.MultiParagraph multiParagraph; + property public final java.util.List placeholderRects; + property public final long size; + } + + @androidx.compose.runtime.Immutable public final class TextLinkStyles { + ctor public TextLinkStyles(optional androidx.compose.ui.text.SpanStyle? style, optional androidx.compose.ui.text.SpanStyle? focusedStyle, optional androidx.compose.ui.text.SpanStyle? hoveredStyle, optional androidx.compose.ui.text.SpanStyle? pressedStyle); + method public androidx.compose.ui.text.SpanStyle? getFocusedStyle(); + method public androidx.compose.ui.text.SpanStyle? getHoveredStyle(); + method public androidx.compose.ui.text.SpanStyle? getPressedStyle(); + method public androidx.compose.ui.text.SpanStyle? getStyle(); + property public final androidx.compose.ui.text.SpanStyle? focusedStyle; + property public final androidx.compose.ui.text.SpanStyle? hoveredStyle; + property public final androidx.compose.ui.text.SpanStyle? pressedStyle; + property public final androidx.compose.ui.text.SpanStyle? style; + } + + @androidx.compose.runtime.Immutable public final class TextMeasurer { + ctor public TextMeasurer(androidx.compose.ui.text.font.FontFamily.Resolver defaultFontFamilyResolver, androidx.compose.ui.unit.Density defaultDensity, androidx.compose.ui.unit.LayoutDirection defaultLayoutDirection, optional int cacheSize); + method @androidx.compose.runtime.Stable public androidx.compose.ui.text.TextLayoutResult measure(androidx.compose.ui.text.AnnotatedString text, optional androidx.compose.ui.text.TextStyle style, optional int overflow, optional boolean softWrap, optional int maxLines, optional java.util.List> placeholders, optional long constraints, optional androidx.compose.ui.unit.LayoutDirection layoutDirection, optional androidx.compose.ui.unit.Density density, optional androidx.compose.ui.text.font.FontFamily.Resolver fontFamilyResolver, optional boolean skipCache); + method @androidx.compose.runtime.Stable public androidx.compose.ui.text.TextLayoutResult measure(String text, optional androidx.compose.ui.text.TextStyle style, optional int overflow, optional boolean softWrap, optional int maxLines, optional long constraints, optional androidx.compose.ui.unit.LayoutDirection layoutDirection, optional androidx.compose.ui.unit.Density density, optional androidx.compose.ui.text.font.FontFamily.Resolver fontFamilyResolver, optional boolean skipCache); + } + + public final class TextPainter { + method public void paint(androidx.compose.ui.graphics.Canvas canvas, androidx.compose.ui.text.TextLayoutResult textLayoutResult); + field public static final androidx.compose.ui.text.TextPainter INSTANCE; + } + + public final class TextPainterKt { + method public static void drawText(androidx.compose.ui.graphics.drawscope.DrawScope, androidx.compose.ui.text.TextLayoutResult textLayoutResult, androidx.compose.ui.graphics.Brush brush, optional long topLeft, optional float alpha, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle, optional int blendMode); + method public static void drawText(androidx.compose.ui.graphics.drawscope.DrawScope, androidx.compose.ui.text.TextLayoutResult textLayoutResult, optional long color, optional long topLeft, optional float alpha, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle, optional int blendMode); + method public static void drawText(androidx.compose.ui.graphics.drawscope.DrawScope, androidx.compose.ui.text.TextMeasurer textMeasurer, androidx.compose.ui.text.AnnotatedString text, optional long topLeft, optional androidx.compose.ui.text.TextStyle style, optional int overflow, optional boolean softWrap, optional int maxLines, optional java.util.List> placeholders, optional long size, optional int blendMode); + method public static void drawText(androidx.compose.ui.graphics.drawscope.DrawScope, androidx.compose.ui.text.TextMeasurer textMeasurer, String text, optional long topLeft, optional androidx.compose.ui.text.TextStyle style, optional int overflow, optional boolean softWrap, optional int maxLines, optional long size, optional int blendMode); + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class TextRange { + method public operator boolean contains(int offset); + method public operator boolean contains(long other); + method public boolean getCollapsed(); + method public int getEnd(); + method public int getLength(); + method public int getMax(); + method public int getMin(); + method public boolean getReversed(); + method public int getStart(); + method public boolean intersects(long other); + property public final boolean collapsed; + property public final int end; + property public final int length; + property public final int max; + property public final int min; + property public final boolean reversed; + property public final int start; + field public static final androidx.compose.ui.text.TextRange.Companion Companion; + } + + public static final class TextRange.Companion { + method public long getZero(); + property public final long Zero; + } + + public final class TextRangeKt { + method public static long TextRange(int index); + method public static long TextRange(int start, int end); + method public static long coerceIn(long, int minimumValue, int maximumValue); + method public static String substring(CharSequence, long range); + } + + @androidx.compose.runtime.Immutable public final class TextStyle { + ctor @Deprecated public TextStyle(androidx.compose.ui.graphics.Brush? brush, optional float alpha, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional androidx.compose.ui.text.style.TextDirection? textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformTextStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle, optional androidx.compose.ui.text.style.LineBreak? lineBreak, optional androidx.compose.ui.text.style.Hyphens? hyphens, optional androidx.compose.ui.text.style.TextMotion? textMotion); + ctor public TextStyle(androidx.compose.ui.graphics.Brush? brush, optional float alpha, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle, optional int textAlign, optional int textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformTextStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle, optional int lineBreak, optional int hyphens, optional androidx.compose.ui.text.style.TextMotion? textMotion); + ctor @Deprecated public TextStyle(optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional androidx.compose.ui.text.style.TextDirection? textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformTextStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle, optional androidx.compose.ui.text.style.LineBreak? lineBreak, optional androidx.compose.ui.text.style.Hyphens? hyphens, optional androidx.compose.ui.text.style.TextMotion? textMotion); + ctor public TextStyle(optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle, optional int textAlign, optional int textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformTextStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle, optional int lineBreak, optional int hyphens, optional androidx.compose.ui.text.style.TextMotion? textMotion); + ctor @Deprecated public TextStyle(optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional androidx.compose.ui.text.style.TextDirection? textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent); + ctor @Deprecated public TextStyle(optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional androidx.compose.ui.text.style.TextDirection? textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformTextStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle); + ctor @Deprecated public TextStyle(optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional androidx.compose.ui.text.style.TextDirection? textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformTextStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle, optional androidx.compose.ui.text.style.LineBreak? lineBreak, optional androidx.compose.ui.text.style.Hyphens? hyphens); + method @Deprecated public androidx.compose.ui.text.TextStyle copy(androidx.compose.ui.graphics.Brush? brush, optional float alpha, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional androidx.compose.ui.text.style.TextDirection? textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformTextStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle, optional androidx.compose.ui.text.style.LineBreak? lineBreak, optional androidx.compose.ui.text.style.Hyphens? hyphens, optional androidx.compose.ui.text.style.TextMotion? textMotion); + method public androidx.compose.ui.text.TextStyle copy(androidx.compose.ui.graphics.Brush? brush, optional float alpha, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle, optional int textAlign, optional int textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformTextStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle, optional int lineBreak, optional int hyphens, optional androidx.compose.ui.text.style.TextMotion? textMotion); + method @Deprecated public androidx.compose.ui.text.TextStyle copy(optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional androidx.compose.ui.text.style.TextDirection? textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformTextStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle, optional androidx.compose.ui.text.style.LineBreak? lineBreak, optional androidx.compose.ui.text.style.Hyphens? hyphens, optional androidx.compose.ui.text.style.TextMotion? textMotion); + method public androidx.compose.ui.text.TextStyle copy(optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle, optional int textAlign, optional int textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformTextStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle, optional int lineBreak, optional int hyphens, optional androidx.compose.ui.text.style.TextMotion? textMotion); + method @Deprecated public androidx.compose.ui.text.TextStyle copy(optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional androidx.compose.ui.text.style.TextDirection? textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent); + method @Deprecated public androidx.compose.ui.text.TextStyle copy(optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional androidx.compose.ui.text.style.TextDirection? textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformTextStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle); + method @Deprecated public androidx.compose.ui.text.TextStyle copy(optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional androidx.compose.ui.text.style.TextDirection? textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.PlatformTextStyle? platformStyle, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle, optional androidx.compose.ui.text.style.LineBreak? lineBreak, optional androidx.compose.ui.text.style.Hyphens? hyphens); + method public float getAlpha(); + method public long getBackground(); + method public androidx.compose.ui.text.style.BaselineShift? getBaselineShift(); + method public androidx.compose.ui.graphics.Brush? getBrush(); + method public long getColor(); + method public androidx.compose.ui.graphics.drawscope.DrawStyle? getDrawStyle(); + method public androidx.compose.ui.text.font.FontFamily? getFontFamily(); + method public String? getFontFeatureSettings(); + method public long getFontSize(); + method public androidx.compose.ui.text.font.FontStyle? getFontStyle(); + method public androidx.compose.ui.text.font.FontSynthesis? getFontSynthesis(); + method public androidx.compose.ui.text.font.FontWeight? getFontWeight(); + method public int getHyphens(); + method @Deprecated public androidx.compose.ui.text.style.Hyphens? getHyphens-EaSxIns(); + method public long getLetterSpacing(); + method public int getLineBreak(); + method @Deprecated public androidx.compose.ui.text.style.LineBreak? getLineBreak-LgCVezo(); + method public long getLineHeight(); + method public androidx.compose.ui.text.style.LineHeightStyle? getLineHeightStyle(); + method public androidx.compose.ui.text.intl.LocaleList? getLocaleList(); + method public androidx.compose.ui.text.PlatformTextStyle? getPlatformStyle(); + method public androidx.compose.ui.graphics.Shadow? getShadow(); + method public int getTextAlign(); + method @Deprecated public androidx.compose.ui.text.style.TextAlign? getTextAlign-buA522U(); + method public androidx.compose.ui.text.style.TextDecoration? getTextDecoration(); + method public int getTextDirection(); + method @Deprecated public androidx.compose.ui.text.style.TextDirection? getTextDirection-mmuk1to(); + method public androidx.compose.ui.text.style.TextGeometricTransform? getTextGeometricTransform(); + method public androidx.compose.ui.text.style.TextIndent? getTextIndent(); + method public androidx.compose.ui.text.style.TextMotion? getTextMotion(); + method public boolean hasSameDrawAffectingAttributes(androidx.compose.ui.text.TextStyle other); + method public boolean hasSameLayoutAffectingAttributes(androidx.compose.ui.text.TextStyle other); + method @androidx.compose.runtime.Stable public androidx.compose.ui.text.TextStyle merge(androidx.compose.ui.text.ParagraphStyle other); + method @androidx.compose.runtime.Stable public androidx.compose.ui.text.TextStyle merge(androidx.compose.ui.text.SpanStyle other); + method @androidx.compose.runtime.Stable public androidx.compose.ui.text.TextStyle merge(optional androidx.compose.ui.text.TextStyle? other); + method @Deprecated @androidx.compose.runtime.Stable public androidx.compose.ui.text.TextStyle merge(optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle, optional androidx.compose.ui.text.style.TextAlign? textAlign, optional androidx.compose.ui.text.style.TextDirection? textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle, optional androidx.compose.ui.text.style.LineBreak? lineBreak, optional androidx.compose.ui.text.style.Hyphens? hyphens, optional androidx.compose.ui.text.PlatformTextStyle? platformStyle, optional androidx.compose.ui.text.style.TextMotion? textMotion); + method @androidx.compose.runtime.Stable public androidx.compose.ui.text.TextStyle merge(optional long color, optional long fontSize, optional androidx.compose.ui.text.font.FontWeight? fontWeight, optional androidx.compose.ui.text.font.FontStyle? fontStyle, optional androidx.compose.ui.text.font.FontSynthesis? fontSynthesis, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional String? fontFeatureSettings, optional long letterSpacing, optional androidx.compose.ui.text.style.BaselineShift? baselineShift, optional androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform, optional androidx.compose.ui.text.intl.LocaleList? localeList, optional long background, optional androidx.compose.ui.text.style.TextDecoration? textDecoration, optional androidx.compose.ui.graphics.Shadow? shadow, optional androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle, optional int textAlign, optional int textDirection, optional long lineHeight, optional androidx.compose.ui.text.style.TextIndent? textIndent, optional androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle, optional int lineBreak, optional int hyphens, optional androidx.compose.ui.text.PlatformTextStyle? platformStyle, optional androidx.compose.ui.text.style.TextMotion? textMotion); + method @androidx.compose.runtime.Stable public operator androidx.compose.ui.text.TextStyle plus(androidx.compose.ui.text.ParagraphStyle other); + method @androidx.compose.runtime.Stable public operator androidx.compose.ui.text.TextStyle plus(androidx.compose.ui.text.SpanStyle other); + method @androidx.compose.runtime.Stable public operator androidx.compose.ui.text.TextStyle plus(androidx.compose.ui.text.TextStyle other); + method @androidx.compose.runtime.Stable public androidx.compose.ui.text.ParagraphStyle toParagraphStyle(); + method @androidx.compose.runtime.Stable public androidx.compose.ui.text.SpanStyle toSpanStyle(); + property public final float alpha; + property public final long background; + property public final androidx.compose.ui.text.style.BaselineShift? baselineShift; + property public final androidx.compose.ui.graphics.Brush? brush; + property public final long color; + property @Deprecated public final androidx.compose.ui.text.style.Hyphens? deprecated_boxing_hyphens; + property @Deprecated public final androidx.compose.ui.text.style.LineBreak? deprecated_boxing_lineBreak; + property @Deprecated public final androidx.compose.ui.text.style.TextAlign? deprecated_boxing_textAlign; + property @Deprecated public final androidx.compose.ui.text.style.TextDirection? deprecated_boxing_textDirection; + property public final androidx.compose.ui.graphics.drawscope.DrawStyle? drawStyle; + property public final androidx.compose.ui.text.font.FontFamily? fontFamily; + property public final String? fontFeatureSettings; + property public final long fontSize; + property public final androidx.compose.ui.text.font.FontStyle? fontStyle; + property public final androidx.compose.ui.text.font.FontSynthesis? fontSynthesis; + property public final androidx.compose.ui.text.font.FontWeight? fontWeight; + property public final int hyphens; + property public final long letterSpacing; + property public final int lineBreak; + property public final long lineHeight; + property public final androidx.compose.ui.text.style.LineHeightStyle? lineHeightStyle; + property public final androidx.compose.ui.text.intl.LocaleList? localeList; + property public final androidx.compose.ui.text.PlatformTextStyle? platformStyle; + property public final androidx.compose.ui.graphics.Shadow? shadow; + property public final int textAlign; + property public final androidx.compose.ui.text.style.TextDecoration? textDecoration; + property public final int textDirection; + property public final androidx.compose.ui.text.style.TextGeometricTransform? textGeometricTransform; + property public final androidx.compose.ui.text.style.TextIndent? textIndent; + property public final androidx.compose.ui.text.style.TextMotion? textMotion; + field public static final androidx.compose.ui.text.TextStyle.Companion Companion; + } + + public static final class TextStyle.Companion { + method public androidx.compose.ui.text.TextStyle getDefault(); + property public final androidx.compose.ui.text.TextStyle Default; + } + + public final class TextStyleKt { + method public static androidx.compose.ui.text.TextStyle lerp(androidx.compose.ui.text.TextStyle start, androidx.compose.ui.text.TextStyle stop, float fraction); + method public static androidx.compose.ui.text.TextStyle resolveDefaults(androidx.compose.ui.text.TextStyle style, androidx.compose.ui.unit.LayoutDirection direction); + } + + public abstract sealed class TtsAnnotation { + } + + @Deprecated @SuppressCompatibility @androidx.compose.ui.text.ExperimentalTextApi public final class UrlAnnotation { + ctor @Deprecated public UrlAnnotation(String url); + method @Deprecated public String getUrl(); + property @Deprecated public final String url; + } + + public final class VerbatimTtsAnnotation extends androidx.compose.ui.text.TtsAnnotation { + ctor public VerbatimTtsAnnotation(String verbatim); + method public String getVerbatim(); + property public final String verbatim; + } + +} + +package androidx.compose.ui.text.android { + + @SuppressCompatibility @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.ERROR, message="This is internal API that may change frequently and without warning.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY}) public @interface InternalPlatformTextApi { + } + + @SuppressCompatibility @androidx.compose.ui.text.android.InternalPlatformTextApi public final class StaticLayoutFactory { + method public android.text.StaticLayout create(CharSequence text, android.text.TextPaint paint, int width, optional int start, optional int end, optional android.text.TextDirectionHeuristic textDir, optional android.text.Layout.Alignment alignment, optional @IntRange(from=0L) int maxLines, optional android.text.TextUtils.TruncateAt? ellipsize, optional @IntRange(from=0L) int ellipsizedWidth, optional @FloatRange(from=0.0) float lineSpacingMultiplier, optional float lineSpacingExtra, optional int justificationMode, optional boolean includePadding, optional boolean useFallbackLineSpacing, optional int breakStrategy, optional int lineBreakStyle, optional int lineBreakWordStyle, optional int hyphenationFrequency, optional int[]? leftIndents, optional int[]? rightIndents); + method public boolean isFallbackLineSpacingEnabled(android.text.StaticLayout layout, boolean useFallbackLineSpacing); + field public static final androidx.compose.ui.text.android.StaticLayoutFactory INSTANCE; + } + +} + +package androidx.compose.ui.text.font { + + public abstract class AndroidFont implements androidx.compose.ui.text.font.Font { + ctor @Deprecated public AndroidFont(int loadingStrategy, androidx.compose.ui.text.font.AndroidFont.TypefaceLoader typefaceLoader); + ctor public AndroidFont(int loadingStrategy, androidx.compose.ui.text.font.AndroidFont.TypefaceLoader typefaceLoader, androidx.compose.ui.text.font.FontVariation.Settings variationSettings); + method public final int getLoadingStrategy(); + method public final androidx.compose.ui.text.font.AndroidFont.TypefaceLoader getTypefaceLoader(); + method public final androidx.compose.ui.text.font.FontVariation.Settings getVariationSettings(); + property public final int loadingStrategy; + property public final androidx.compose.ui.text.font.AndroidFont.TypefaceLoader typefaceLoader; + property public final androidx.compose.ui.text.font.FontVariation.Settings variationSettings; + } + + public static interface AndroidFont.TypefaceLoader { + method public suspend Object? awaitLoad(android.content.Context context, androidx.compose.ui.text.font.AndroidFont font, kotlin.coroutines.Continuation); + method public android.graphics.Typeface? loadBlocking(android.content.Context context, androidx.compose.ui.text.font.AndroidFont font); + } + + public final class AndroidFontKt { + method @RequiresApi(26) @androidx.compose.runtime.Stable public static androidx.compose.ui.text.font.Font Font(android.os.ParcelFileDescriptor fileDescriptor, optional androidx.compose.ui.text.font.FontWeight weight, optional int style, optional androidx.compose.ui.text.font.FontVariation.Settings variationSettings); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.text.font.Font Font(java.io.File file, optional androidx.compose.ui.text.font.FontWeight weight, optional int style, optional androidx.compose.ui.text.font.FontVariation.Settings variationSettings); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.text.font.Font Font(String path, android.content.res.AssetManager assetManager, optional androidx.compose.ui.text.font.FontWeight weight, optional int style, optional androidx.compose.ui.text.font.FontVariation.Settings variationSettings); + } + + public final class AndroidTypeface_androidKt { + method public static androidx.compose.ui.text.font.FontFamily FontFamily(android.graphics.Typeface typeface); + method @Deprecated public static androidx.compose.ui.text.font.Typeface Typeface(android.content.Context context, androidx.compose.ui.text.font.FontFamily fontFamily, optional java.util.List>? styles); + method public static androidx.compose.ui.text.font.Typeface Typeface(android.graphics.Typeface typeface); + } + + public final class DelegatingFontLoaderForDeprecatedUsage_androidKt { + method @Deprecated public static androidx.compose.ui.text.font.FontFamily.Resolver createFontFamilyResolver(androidx.compose.ui.text.font.Font.ResourceLoader fontResourceLoader, android.content.Context context); + } + + @kotlin.jvm.JvmInline public final value class DeviceFontFamilyName { + ctor public DeviceFontFamilyName(String name); + method public String getName(); + property public final String name; + } + + public final class DeviceFontFamilyNameFontKt { + method public static androidx.compose.ui.text.font.Font Font(String familyName, optional androidx.compose.ui.text.font.FontWeight weight, optional int style, optional androidx.compose.ui.text.font.FontVariation.Settings variationSettings); + } + + public abstract sealed class FileBasedFontFamily extends androidx.compose.ui.text.font.FontFamily { + } + + @androidx.compose.runtime.Immutable public interface Font { + method public default int getLoadingStrategy(); + method public int getStyle(); + method public androidx.compose.ui.text.font.FontWeight getWeight(); + property public default int loadingStrategy; + property public abstract int style; + property public abstract androidx.compose.ui.text.font.FontWeight weight; + field public static final androidx.compose.ui.text.font.Font.Companion Companion; + field public static final long MaximumAsyncTimeoutMillis = 15000L; // 0x3a98L + } + + public static final class Font.Companion { + field public static final long MaximumAsyncTimeoutMillis = 15000L; // 0x3a98L + } + + @Deprecated public static interface Font.ResourceLoader { + method @Deprecated public Object load(androidx.compose.ui.text.font.Font font); + } + + @androidx.compose.runtime.Immutable public abstract sealed class FontFamily { + method @Deprecated public final boolean getCanLoadSynchronously(); + property @Deprecated public final boolean canLoadSynchronously; + field public static final androidx.compose.ui.text.font.FontFamily.Companion Companion; + } + + public static final class FontFamily.Companion { + method public androidx.compose.ui.text.font.GenericFontFamily getCursive(); + method public androidx.compose.ui.text.font.SystemFontFamily getDefault(); + method public androidx.compose.ui.text.font.GenericFontFamily getMonospace(); + method public androidx.compose.ui.text.font.GenericFontFamily getSansSerif(); + method public androidx.compose.ui.text.font.GenericFontFamily getSerif(); + property public final androidx.compose.ui.text.font.GenericFontFamily Cursive; + property public final androidx.compose.ui.text.font.SystemFontFamily Default; + property public final androidx.compose.ui.text.font.GenericFontFamily Monospace; + property public final androidx.compose.ui.text.font.GenericFontFamily SansSerif; + property public final androidx.compose.ui.text.font.GenericFontFamily Serif; + } + + public static sealed interface FontFamily.Resolver { + method public suspend Object? preload(androidx.compose.ui.text.font.FontFamily fontFamily, kotlin.coroutines.Continuation); + method public androidx.compose.runtime.State resolve(optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional androidx.compose.ui.text.font.FontWeight fontWeight, optional int fontStyle, optional int fontSynthesis); + } + + public final class FontFamilyKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.text.font.FontFamily FontFamily(androidx.compose.ui.text.font.Font... fonts); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.text.font.FontFamily FontFamily(androidx.compose.ui.text.font.Typeface typeface); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.text.font.FontFamily FontFamily(java.util.List fonts); + } + + public final class FontFamilyResolver_androidKt { + method public static androidx.compose.ui.text.font.FontFamily.Resolver createFontFamilyResolver(android.content.Context context); + method public static androidx.compose.ui.text.font.FontFamily.Resolver createFontFamilyResolver(android.content.Context context, kotlin.coroutines.CoroutineContext coroutineContext); + method public static androidx.compose.runtime.State resolveAsTypeface(androidx.compose.ui.text.font.FontFamily.Resolver, optional androidx.compose.ui.text.font.FontFamily? fontFamily, optional androidx.compose.ui.text.font.FontWeight fontWeight, optional int fontStyle, optional int fontSynthesis); + } + + public final class FontKt { + method @Deprecated @androidx.compose.runtime.Stable public static androidx.compose.ui.text.font.Font Font(int resId, optional androidx.compose.ui.text.font.FontWeight weight, optional int style); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.text.font.Font Font(int resId, optional androidx.compose.ui.text.font.FontWeight weight, optional int style, optional int loadingStrategy); + method @SuppressCompatibility @androidx.compose.ui.text.ExperimentalTextApi public static androidx.compose.ui.text.font.Font Font(int resId, optional androidx.compose.ui.text.font.FontWeight weight, optional int style, optional int loadingStrategy, optional androidx.compose.ui.text.font.FontVariation.Settings variationSettings); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.text.font.FontFamily toFontFamily(androidx.compose.ui.text.font.Font); + } + + @androidx.compose.runtime.Immutable public final class FontListFontFamily extends androidx.compose.ui.text.font.FileBasedFontFamily implements kotlin.jvm.internal.markers.KMappedMarker java.util.List { + method public java.util.List getFonts(); + property public final java.util.List fonts; + } + + @kotlin.jvm.JvmInline public final value class FontLoadingStrategy { + method public int getValue(); + property public final int value; + field public static final androidx.compose.ui.text.font.FontLoadingStrategy.Companion Companion; + } + + public static final class FontLoadingStrategy.Companion { + method public int getAsync(); + method public int getBlocking(); + method public int getOptionalLocal(); + property public final int Async; + property public final int Blocking; + property public final int OptionalLocal; + } + + @kotlin.jvm.JvmInline public final value class FontStyle { + ctor @Deprecated public FontStyle(int value); + method public int getValue(); + property public final int value; + field public static final androidx.compose.ui.text.font.FontStyle.Companion Companion; + } + + public static final class FontStyle.Companion { + method public int getItalic(); + method public int getNormal(); + method public java.util.List values(); + property public final int Italic; + property public final int Normal; + } + + @kotlin.jvm.JvmInline public final value class FontSynthesis { + field public static final androidx.compose.ui.text.font.FontSynthesis.Companion Companion; + } + + public static final class FontSynthesis.Companion { + method public int getAll(); + method public int getNone(); + method public int getStyle(); + method public int getWeight(); + property public final int All; + property public final int None; + property public final int Style; + property public final int Weight; + } + + public final class FontVariation { + method public androidx.compose.ui.text.font.FontVariation.Setting Setting(String name, float value); + method public androidx.compose.ui.text.font.FontVariation.Settings Settings(androidx.compose.ui.text.font.FontWeight weight, int style, androidx.compose.ui.text.font.FontVariation.Setting... settings); + method public androidx.compose.ui.text.font.FontVariation.Setting grade(int value); + method public androidx.compose.ui.text.font.FontVariation.Setting italic(float value); + method public androidx.compose.ui.text.font.FontVariation.Setting opticalSizing(long textSize); + method public androidx.compose.ui.text.font.FontVariation.Setting slant(float value); + method public androidx.compose.ui.text.font.FontVariation.Setting weight(int value); + method public androidx.compose.ui.text.font.FontVariation.Setting width(float value); + field public static final androidx.compose.ui.text.font.FontVariation INSTANCE; + } + + @androidx.compose.runtime.Immutable public static sealed interface FontVariation.Setting { + method public String getAxisName(); + method public boolean getNeedsDensity(); + method public float toVariationValue(androidx.compose.ui.unit.Density? density); + property public abstract String axisName; + property public abstract boolean needsDensity; + } + + @androidx.compose.runtime.Immutable public static final class FontVariation.Settings { + ctor public FontVariation.Settings(androidx.compose.ui.text.font.FontVariation.Setting... settings); + method public java.util.List getSettings(); + property public final java.util.List settings; + } + + @androidx.compose.runtime.Immutable public final class FontWeight implements java.lang.Comparable { + ctor public FontWeight(int weight); + method public operator int compareTo(androidx.compose.ui.text.font.FontWeight other); + method public int getWeight(); + property public final int weight; + field public static final androidx.compose.ui.text.font.FontWeight.Companion Companion; + } + + public static final class FontWeight.Companion { + method public androidx.compose.ui.text.font.FontWeight getBlack(); + method public androidx.compose.ui.text.font.FontWeight getBold(); + method public androidx.compose.ui.text.font.FontWeight getExtraBold(); + method public androidx.compose.ui.text.font.FontWeight getExtraLight(); + method public androidx.compose.ui.text.font.FontWeight getLight(); + method public androidx.compose.ui.text.font.FontWeight getMedium(); + method public androidx.compose.ui.text.font.FontWeight getNormal(); + method public androidx.compose.ui.text.font.FontWeight getSemiBold(); + method public androidx.compose.ui.text.font.FontWeight getThin(); + method public androidx.compose.ui.text.font.FontWeight getW100(); + method public androidx.compose.ui.text.font.FontWeight getW200(); + method public androidx.compose.ui.text.font.FontWeight getW300(); + method public androidx.compose.ui.text.font.FontWeight getW400(); + method public androidx.compose.ui.text.font.FontWeight getW500(); + method public androidx.compose.ui.text.font.FontWeight getW600(); + method public androidx.compose.ui.text.font.FontWeight getW700(); + method public androidx.compose.ui.text.font.FontWeight getW800(); + method public androidx.compose.ui.text.font.FontWeight getW900(); + property public final androidx.compose.ui.text.font.FontWeight Black; + property public final androidx.compose.ui.text.font.FontWeight Bold; + property public final androidx.compose.ui.text.font.FontWeight ExtraBold; + property public final androidx.compose.ui.text.font.FontWeight ExtraLight; + property public final androidx.compose.ui.text.font.FontWeight Light; + property public final androidx.compose.ui.text.font.FontWeight Medium; + property public final androidx.compose.ui.text.font.FontWeight Normal; + property public final androidx.compose.ui.text.font.FontWeight SemiBold; + property public final androidx.compose.ui.text.font.FontWeight Thin; + property public final androidx.compose.ui.text.font.FontWeight W100; + property public final androidx.compose.ui.text.font.FontWeight W200; + property public final androidx.compose.ui.text.font.FontWeight W300; + property public final androidx.compose.ui.text.font.FontWeight W400; + property public final androidx.compose.ui.text.font.FontWeight W500; + property public final androidx.compose.ui.text.font.FontWeight W600; + property public final androidx.compose.ui.text.font.FontWeight W700; + property public final androidx.compose.ui.text.font.FontWeight W800; + property public final androidx.compose.ui.text.font.FontWeight W900; + } + + public final class FontWeightKt { + method public static androidx.compose.ui.text.font.FontWeight lerp(androidx.compose.ui.text.font.FontWeight start, androidx.compose.ui.text.font.FontWeight stop, float fraction); + } + + @androidx.compose.runtime.Immutable public final class GenericFontFamily extends androidx.compose.ui.text.font.SystemFontFamily { + method public String getName(); + property public final String name; + } + + public final class LoadedFontFamily extends androidx.compose.ui.text.font.FontFamily { + method public androidx.compose.ui.text.font.Typeface getTypeface(); + property public final androidx.compose.ui.text.font.Typeface typeface; + } + + public final class ResourceFont implements androidx.compose.ui.text.font.Font { + method public androidx.compose.ui.text.font.ResourceFont copy(optional int resId, optional androidx.compose.ui.text.font.FontWeight weight, optional int style); + method @SuppressCompatibility @androidx.compose.ui.text.ExperimentalTextApi public androidx.compose.ui.text.font.ResourceFont copy(optional int resId, optional androidx.compose.ui.text.font.FontWeight weight, optional int style, optional int loadingStrategy, optional androidx.compose.ui.text.font.FontVariation.Settings variationSettings); + method public int getResId(); + method public int getStyle(); + method @SuppressCompatibility @androidx.compose.ui.text.ExperimentalTextApi public androidx.compose.ui.text.font.FontVariation.Settings getVariationSettings(); + method public androidx.compose.ui.text.font.FontWeight getWeight(); + property @SuppressCompatibility @androidx.compose.ui.text.ExperimentalTextApi public int loadingStrategy; + property public final int resId; + property public int style; + property @SuppressCompatibility @androidx.compose.ui.text.ExperimentalTextApi public final androidx.compose.ui.text.font.FontVariation.Settings variationSettings; + property public androidx.compose.ui.text.font.FontWeight weight; + } + + public abstract sealed class SystemFontFamily extends androidx.compose.ui.text.font.FontFamily { + } + + public interface Typeface { + method public androidx.compose.ui.text.font.FontFamily? getFontFamily(); + property public abstract androidx.compose.ui.text.font.FontFamily? fontFamily; + } + +} + +package androidx.compose.ui.text.input { + + public final class BackspaceCommand implements androidx.compose.ui.text.input.EditCommand { + ctor public BackspaceCommand(); + method public void applyTo(androidx.compose.ui.text.input.EditingBuffer buffer); + } + + public final class CommitTextCommand implements androidx.compose.ui.text.input.EditCommand { + ctor public CommitTextCommand(androidx.compose.ui.text.AnnotatedString annotatedString, int newCursorPosition); + ctor public CommitTextCommand(String text, int newCursorPosition); + method public void applyTo(androidx.compose.ui.text.input.EditingBuffer buffer); + method public androidx.compose.ui.text.AnnotatedString getAnnotatedString(); + method public int getNewCursorPosition(); + method public String getText(); + property public final androidx.compose.ui.text.AnnotatedString annotatedString; + property public final int newCursorPosition; + property public final String text; + } + + public final class DeleteAllCommand implements androidx.compose.ui.text.input.EditCommand { + ctor public DeleteAllCommand(); + method public void applyTo(androidx.compose.ui.text.input.EditingBuffer buffer); + } + + public final class DeleteSurroundingTextCommand implements androidx.compose.ui.text.input.EditCommand { + ctor public DeleteSurroundingTextCommand(int lengthBeforeCursor, int lengthAfterCursor); + method public void applyTo(androidx.compose.ui.text.input.EditingBuffer buffer); + method public int getLengthAfterCursor(); + method public int getLengthBeforeCursor(); + property public final int lengthAfterCursor; + property public final int lengthBeforeCursor; + } + + public final class DeleteSurroundingTextInCodePointsCommand implements androidx.compose.ui.text.input.EditCommand { + ctor public DeleteSurroundingTextInCodePointsCommand(int lengthBeforeCursor, int lengthAfterCursor); + method public void applyTo(androidx.compose.ui.text.input.EditingBuffer buffer); + method public int getLengthAfterCursor(); + method public int getLengthBeforeCursor(); + property public final int lengthAfterCursor; + property public final int lengthBeforeCursor; + } + + public interface EditCommand { + method public void applyTo(androidx.compose.ui.text.input.EditingBuffer buffer); + } + + public final class EditProcessor { + ctor public EditProcessor(); + method public androidx.compose.ui.text.input.TextFieldValue apply(java.util.List editCommands); + method public void reset(androidx.compose.ui.text.input.TextFieldValue value, androidx.compose.ui.text.input.TextInputSession? textInputSession); + method public androidx.compose.ui.text.input.TextFieldValue toTextFieldValue(); + } + + public final class EditingBuffer { + ctor public EditingBuffer(androidx.compose.ui.text.AnnotatedString text, long selection); + } + + public final class FinishComposingTextCommand implements androidx.compose.ui.text.input.EditCommand { + ctor public FinishComposingTextCommand(); + method public void applyTo(androidx.compose.ui.text.input.EditingBuffer buffer); + } + + @kotlin.jvm.JvmInline public final value class ImeAction { + field public static final androidx.compose.ui.text.input.ImeAction.Companion Companion; + } + + public static final class ImeAction.Companion { + method public int getDefault(); + method public int getDone(); + method public int getGo(); + method public int getNext(); + method public int getNone(); + method public int getPrevious(); + method public int getSearch(); + method public int getSend(); + method public int getUnspecified(); + property public final int Default; + property public final int Done; + property public final int Go; + property public final int Next; + property public final int None; + property public final int Previous; + property public final int Search; + property public final int Send; + property public final int Unspecified; + } + + @androidx.compose.runtime.Immutable public final class ImeOptions { + ctor @Deprecated public ImeOptions(optional boolean singleLine, optional int capitalization, optional boolean autoCorrect, optional int keyboardType, optional int imeAction); + ctor @Deprecated public ImeOptions(optional boolean singleLine, optional int capitalization, optional boolean autoCorrect, optional int keyboardType, optional int imeAction, optional androidx.compose.ui.text.input.PlatformImeOptions? platformImeOptions); + ctor public ImeOptions(optional boolean singleLine, optional int capitalization, optional boolean autoCorrect, optional int keyboardType, optional int imeAction, optional androidx.compose.ui.text.input.PlatformImeOptions? platformImeOptions, optional androidx.compose.ui.text.intl.LocaleList hintLocales); + method @Deprecated public androidx.compose.ui.text.input.ImeOptions copy(optional boolean singleLine, optional int capitalization, optional boolean autoCorrect, optional int keyboardType, optional int imeAction); + method @Deprecated public androidx.compose.ui.text.input.ImeOptions copy(optional boolean singleLine, optional int capitalization, optional boolean autoCorrect, optional int keyboardType, optional int imeAction, optional androidx.compose.ui.text.input.PlatformImeOptions? platformImeOptions); + method public androidx.compose.ui.text.input.ImeOptions copy(optional boolean singleLine, optional int capitalization, optional boolean autoCorrect, optional int keyboardType, optional int imeAction, optional androidx.compose.ui.text.input.PlatformImeOptions? platformImeOptions, optional androidx.compose.ui.text.intl.LocaleList hintLocales); + method public boolean getAutoCorrect(); + method public int getCapitalization(); + method public androidx.compose.ui.text.intl.LocaleList getHintLocales(); + method public int getImeAction(); + method public int getKeyboardType(); + method public androidx.compose.ui.text.input.PlatformImeOptions? getPlatformImeOptions(); + method public boolean getSingleLine(); + property public final boolean autoCorrect; + property public final int capitalization; + property public final androidx.compose.ui.text.intl.LocaleList hintLocales; + property public final int imeAction; + property public final int keyboardType; + property public final androidx.compose.ui.text.input.PlatformImeOptions? platformImeOptions; + property public final boolean singleLine; + field public static final androidx.compose.ui.text.input.ImeOptions.Companion Companion; + } + + public static final class ImeOptions.Companion { + method public androidx.compose.ui.text.input.ImeOptions getDefault(); + property public final androidx.compose.ui.text.input.ImeOptions Default; + } + + @Deprecated public interface InputEventCallback { + method @Deprecated public void onEditCommands(java.util.List editCommands); + method @Deprecated public void onImeAction(int imeAction); + } + + @kotlin.jvm.JvmInline public final value class KeyboardCapitalization { + field public static final androidx.compose.ui.text.input.KeyboardCapitalization.Companion Companion; + } + + public static final class KeyboardCapitalization.Companion { + method public int getCharacters(); + method public int getNone(); + method public int getSentences(); + method public int getUnspecified(); + method public int getWords(); + property public final int Characters; + property public final int None; + property public final int Sentences; + property public final int Unspecified; + property public final int Words; + } + + @kotlin.jvm.JvmInline public final value class KeyboardType { + field public static final androidx.compose.ui.text.input.KeyboardType.Companion Companion; + } + + public static final class KeyboardType.Companion { + method public int getAscii(); + method public int getDecimal(); + method public int getEmail(); + method public int getNumber(); + method public int getNumberPassword(); + method public int getPassword(); + method public int getPhone(); + method public int getText(); + method public int getUnspecified(); + method public int getUri(); + property public final int Ascii; + property public final int Decimal; + property public final int Email; + property public final int Number; + property public final int NumberPassword; + property public final int Password; + property public final int Phone; + property public final int Text; + property public final int Unspecified; + property public final int Uri; + } + + public final class MoveCursorCommand implements androidx.compose.ui.text.input.EditCommand { + ctor public MoveCursorCommand(int amount); + method public void applyTo(androidx.compose.ui.text.input.EditingBuffer buffer); + method public int getAmount(); + property public final int amount; + } + + public interface OffsetMapping { + method public int originalToTransformed(int offset); + method public int transformedToOriginal(int offset); + field public static final androidx.compose.ui.text.input.OffsetMapping.Companion Companion; + } + + public static final class OffsetMapping.Companion { + method public androidx.compose.ui.text.input.OffsetMapping getIdentity(); + property public final androidx.compose.ui.text.input.OffsetMapping Identity; + } + + public final class PasswordVisualTransformation implements androidx.compose.ui.text.input.VisualTransformation { + ctor public PasswordVisualTransformation(optional char mask); + method public androidx.compose.ui.text.input.TransformedText filter(androidx.compose.ui.text.AnnotatedString text); + method public char getMask(); + property public final char mask; + } + + @androidx.compose.runtime.Immutable public final class PlatformImeOptions { + ctor public PlatformImeOptions(optional String? privateImeOptions); + method public String? getPrivateImeOptions(); + property public final String? privateImeOptions; + } + + @Deprecated public interface PlatformTextInputService { + method @Deprecated public void hideSoftwareKeyboard(); + method @Deprecated public default void notifyFocusedRect(androidx.compose.ui.geometry.Rect rect); + method @Deprecated public void showSoftwareKeyboard(); + method @Deprecated public default void startInput(); + method @Deprecated public void startInput(androidx.compose.ui.text.input.TextFieldValue value, androidx.compose.ui.text.input.ImeOptions imeOptions, kotlin.jvm.functions.Function1,kotlin.Unit> onEditCommand, kotlin.jvm.functions.Function1 onImeActionPerformed); + method @Deprecated public void stopInput(); + method @Deprecated public void updateState(androidx.compose.ui.text.input.TextFieldValue? oldValue, androidx.compose.ui.text.input.TextFieldValue newValue); + method @Deprecated public default void updateTextLayoutResult(androidx.compose.ui.text.input.TextFieldValue textFieldValue, androidx.compose.ui.text.input.OffsetMapping offsetMapping, androidx.compose.ui.text.TextLayoutResult textLayoutResult, kotlin.jvm.functions.Function1 textFieldToRootTransform, androidx.compose.ui.geometry.Rect innerTextFieldBounds, androidx.compose.ui.geometry.Rect decorationBoxBounds); + } + + public final class SetComposingRegionCommand implements androidx.compose.ui.text.input.EditCommand { + ctor public SetComposingRegionCommand(int start, int end); + method public void applyTo(androidx.compose.ui.text.input.EditingBuffer buffer); + method public int getEnd(); + method public int getStart(); + property public final int end; + property public final int start; + } + + public final class SetComposingTextCommand implements androidx.compose.ui.text.input.EditCommand { + ctor public SetComposingTextCommand(androidx.compose.ui.text.AnnotatedString annotatedString, int newCursorPosition); + ctor public SetComposingTextCommand(String text, int newCursorPosition); + method public void applyTo(androidx.compose.ui.text.input.EditingBuffer buffer); + method public androidx.compose.ui.text.AnnotatedString getAnnotatedString(); + method public int getNewCursorPosition(); + method public String getText(); + property public final androidx.compose.ui.text.AnnotatedString annotatedString; + property public final int newCursorPosition; + property public final String text; + } + + public final class SetSelectionCommand implements androidx.compose.ui.text.input.EditCommand { + ctor public SetSelectionCommand(int start, int end); + method public void applyTo(androidx.compose.ui.text.input.EditingBuffer buffer); + method public int getEnd(); + method public int getStart(); + property public final int end; + property public final int start; + } + + @androidx.compose.runtime.Immutable public final class TextFieldValue { + ctor public TextFieldValue(androidx.compose.ui.text.AnnotatedString annotatedString, optional long selection, optional androidx.compose.ui.text.TextRange? composition); + ctor public TextFieldValue(optional String text, optional long selection, optional androidx.compose.ui.text.TextRange? composition); + method public androidx.compose.ui.text.input.TextFieldValue copy(optional androidx.compose.ui.text.AnnotatedString annotatedString, optional long selection, optional androidx.compose.ui.text.TextRange? composition); + method public androidx.compose.ui.text.input.TextFieldValue copy(String text, optional long selection, optional androidx.compose.ui.text.TextRange? composition); + method public androidx.compose.ui.text.AnnotatedString getAnnotatedString(); + method public androidx.compose.ui.text.TextRange? getComposition(); + method public long getSelection(); + method public String getText(); + property public final androidx.compose.ui.text.AnnotatedString annotatedString; + property public final androidx.compose.ui.text.TextRange? composition; + property public final long selection; + property public final String text; + field public static final androidx.compose.ui.text.input.TextFieldValue.Companion Companion; + } + + public static final class TextFieldValue.Companion { + method public androidx.compose.runtime.saveable.Saver getSaver(); + property public final androidx.compose.runtime.saveable.Saver Saver; + } + + public final class TextFieldValueKt { + method public static androidx.compose.ui.text.AnnotatedString getSelectedText(androidx.compose.ui.text.input.TextFieldValue); + method public static androidx.compose.ui.text.AnnotatedString getTextAfterSelection(androidx.compose.ui.text.input.TextFieldValue, int maxChars); + method public static androidx.compose.ui.text.AnnotatedString getTextBeforeSelection(androidx.compose.ui.text.input.TextFieldValue, int maxChars); + } + + @Deprecated public class TextInputService { + ctor @Deprecated public TextInputService(androidx.compose.ui.text.input.PlatformTextInputService platformTextInputService); + method @Deprecated public final void hideSoftwareKeyboard(); + method @Deprecated public final void showSoftwareKeyboard(); + method @Deprecated public androidx.compose.ui.text.input.TextInputSession startInput(androidx.compose.ui.text.input.TextFieldValue value, androidx.compose.ui.text.input.ImeOptions imeOptions, kotlin.jvm.functions.Function1,kotlin.Unit> onEditCommand, kotlin.jvm.functions.Function1 onImeActionPerformed); + method @Deprecated public void stopInput(androidx.compose.ui.text.input.TextInputSession session); + } + + @Deprecated public final class TextInputSession { + ctor @Deprecated public TextInputSession(androidx.compose.ui.text.input.TextInputService textInputService, androidx.compose.ui.text.input.PlatformTextInputService platformTextInputService); + method @Deprecated public void dispose(); + method @Deprecated public boolean hideSoftwareKeyboard(); + method @Deprecated public boolean isOpen(); + method @Deprecated public boolean notifyFocusedRect(androidx.compose.ui.geometry.Rect rect); + method @Deprecated public boolean showSoftwareKeyboard(); + method @Deprecated public boolean updateState(androidx.compose.ui.text.input.TextFieldValue? oldValue, androidx.compose.ui.text.input.TextFieldValue newValue); + method @Deprecated public boolean updateTextLayoutResult(androidx.compose.ui.text.input.TextFieldValue textFieldValue, androidx.compose.ui.text.input.OffsetMapping offsetMapping, androidx.compose.ui.text.TextLayoutResult textLayoutResult, kotlin.jvm.functions.Function1 textFieldToRootTransform, androidx.compose.ui.geometry.Rect innerTextFieldBounds, androidx.compose.ui.geometry.Rect decorationBoxBounds); + property @Deprecated public final boolean isOpen; + } + + public final class TransformedText { + ctor public TransformedText(androidx.compose.ui.text.AnnotatedString text, androidx.compose.ui.text.input.OffsetMapping offsetMapping); + method public androidx.compose.ui.text.input.OffsetMapping getOffsetMapping(); + method public androidx.compose.ui.text.AnnotatedString getText(); + property public final androidx.compose.ui.text.input.OffsetMapping offsetMapping; + property public final androidx.compose.ui.text.AnnotatedString text; + } + + @androidx.compose.runtime.Immutable public fun interface VisualTransformation { + method public androidx.compose.ui.text.input.TransformedText filter(androidx.compose.ui.text.AnnotatedString text); + field public static final androidx.compose.ui.text.input.VisualTransformation.Companion Companion; + } + + public static final class VisualTransformation.Companion { + method public androidx.compose.ui.text.input.VisualTransformation getNone(); + property public final androidx.compose.ui.text.input.VisualTransformation None; + } + +} + +package androidx.compose.ui.text.intl { + + @androidx.compose.runtime.Immutable public final class Locale { + ctor public Locale(String languageTag); + method public String getLanguage(); + method public java.util.Locale getPlatformLocale(); + method public String getRegion(); + method public String getScript(); + method public String toLanguageTag(); + property public final String language; + property public final java.util.Locale platformLocale; + property public final String region; + property public final String script; + field public static final androidx.compose.ui.text.intl.Locale.Companion Companion; + } + + public static final class Locale.Companion { + method public androidx.compose.ui.text.intl.Locale getCurrent(); + property public final androidx.compose.ui.text.intl.Locale current; + } + + @androidx.compose.runtime.Immutable public final class LocaleList implements java.util.Collection kotlin.jvm.internal.markers.KMappedMarker { + ctor public LocaleList(androidx.compose.ui.text.intl.Locale... locales); + ctor public LocaleList(String languageTags); + ctor public LocaleList(java.util.List localeList); + method public operator boolean contains(androidx.compose.ui.text.intl.Locale element); + method public boolean containsAll(java.util.Collection elements); + method public operator androidx.compose.ui.text.intl.Locale get(int i); + method public java.util.List getLocaleList(); + method public int getSize(); + method public boolean isEmpty(); + method public java.util.Iterator iterator(); + property public final java.util.List localeList; + property public int size; + field public static final androidx.compose.ui.text.intl.LocaleList.Companion Companion; + } + + public static final class LocaleList.Companion { + method public androidx.compose.ui.text.intl.LocaleList getCurrent(); + method public androidx.compose.ui.text.intl.LocaleList getEmpty(); + property public final androidx.compose.ui.text.intl.LocaleList Empty; + property public final androidx.compose.ui.text.intl.LocaleList current; + } + +} + +package androidx.compose.ui.text.platform { + + public final class Synchronization_jvmKt { + method @kotlin.PublishedApi internal static inline R synchronized(androidx.compose.ui.text.platform.SynchronizedObject lock, kotlin.jvm.functions.Function0 block); + } + + @kotlin.PublishedApi internal final class SynchronizedObject { + } + +} + +package androidx.compose.ui.text.platform.extensions { + + public final class TtsAnnotationExtensions_androidKt { + method public static android.text.style.TtsSpan toSpan(androidx.compose.ui.text.TtsAnnotation); + method public static android.text.style.TtsSpan toSpan(androidx.compose.ui.text.VerbatimTtsAnnotation); + } + +} + +package androidx.compose.ui.text.style { + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class BaselineShift { + ctor public BaselineShift(float multiplier); + method public float getMultiplier(); + property public final float multiplier; + field public static final androidx.compose.ui.text.style.BaselineShift.Companion Companion; + } + + public static final class BaselineShift.Companion { + method public float getNone(); + method public float getSubscript(); + method public float getSuperscript(); + property public final float None; + property public final float Subscript; + property public final float Superscript; + } + + public final class BaselineShiftKt { + method @androidx.compose.runtime.Stable public static float lerp(float start, float stop, float fraction); + } + + @kotlin.jvm.JvmInline public final value class Hyphens { + field public static final androidx.compose.ui.text.style.Hyphens.Companion Companion; + } + + public static final class Hyphens.Companion { + method public int getAuto(); + method public int getNone(); + method public int getUnspecified(); + property public final int Auto; + property public final int None; + property public final int Unspecified; + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class LineBreak { + ctor public LineBreak(int strategy, int strictness, int wordBreak); + method public int copy(optional int strategy, optional int strictness, optional int wordBreak); + method public int getStrategy(); + method public int getStrictness(); + method public int getWordBreak(); + property public final int strategy; + property public final int strictness; + property public final int wordBreak; + field public static final androidx.compose.ui.text.style.LineBreak.Companion Companion; + } + + public static final class LineBreak.Companion { + method public int getHeading(); + method public int getParagraph(); + method public int getSimple(); + method public int getUnspecified(); + property public final int Heading; + property public final int Paragraph; + property public final int Simple; + property public final int Unspecified; + } + + @kotlin.jvm.JvmInline public static final value class LineBreak.Strategy { + field public static final androidx.compose.ui.text.style.LineBreak.Strategy.Companion Companion; + } + + public static final class LineBreak.Strategy.Companion { + method public int getBalanced(); + method public int getHighQuality(); + method public int getSimple(); + method public int getUnspecified(); + property public final int Balanced; + property public final int HighQuality; + property public final int Simple; + property public final int Unspecified; + } + + @kotlin.jvm.JvmInline public static final value class LineBreak.Strictness { + field public static final androidx.compose.ui.text.style.LineBreak.Strictness.Companion Companion; + } + + public static final class LineBreak.Strictness.Companion { + method public int getDefault(); + method public int getLoose(); + method public int getNormal(); + method public int getStrict(); + method public int getUnspecified(); + property public final int Default; + property public final int Loose; + property public final int Normal; + property public final int Strict; + property public final int Unspecified; + } + + @kotlin.jvm.JvmInline public static final value class LineBreak.WordBreak { + field public static final androidx.compose.ui.text.style.LineBreak.WordBreak.Companion Companion; + } + + public static final class LineBreak.WordBreak.Companion { + method public int getDefault(); + method public int getPhrase(); + method public int getUnspecified(); + property public final int Default; + property public final int Phrase; + property public final int Unspecified; + } + + public final class LineHeightStyle { + ctor public LineHeightStyle(float alignment, int trim); + method public float getAlignment(); + method public int getTrim(); + property public final float alignment; + property public final int trim; + field public static final androidx.compose.ui.text.style.LineHeightStyle.Companion Companion; + } + + @kotlin.jvm.JvmInline public static final value class LineHeightStyle.Alignment { + ctor public LineHeightStyle.Alignment(float topRatio); + field public static final androidx.compose.ui.text.style.LineHeightStyle.Alignment.Companion Companion; + } + + public static final class LineHeightStyle.Alignment.Companion { + method public float getBottom(); + method public float getCenter(); + method public float getProportional(); + method public float getTop(); + property public final float Bottom; + property public final float Center; + property public final float Proportional; + property public final float Top; + } + + public static final class LineHeightStyle.Companion { + method public androidx.compose.ui.text.style.LineHeightStyle getDefault(); + property public final androidx.compose.ui.text.style.LineHeightStyle Default; + } + + @kotlin.jvm.JvmInline public static final value class LineHeightStyle.Trim { + field public static final androidx.compose.ui.text.style.LineHeightStyle.Trim.Companion Companion; + } + + public static final class LineHeightStyle.Trim.Companion { + method public int getBoth(); + method public int getFirstLineTop(); + method public int getLastLineBottom(); + method public int getNone(); + property public final int Both; + property public final int FirstLineTop; + property public final int LastLineBottom; + property public final int None; + } + + public enum ResolvedTextDirection { + enum_constant public static final androidx.compose.ui.text.style.ResolvedTextDirection Ltr; + enum_constant public static final androidx.compose.ui.text.style.ResolvedTextDirection Rtl; + } + + @kotlin.jvm.JvmInline public final value class TextAlign { + field public static final androidx.compose.ui.text.style.TextAlign.Companion Companion; + } + + public static final class TextAlign.Companion { + method public int getCenter(); + method public int getEnd(); + method public int getJustify(); + method public int getLeft(); + method public int getRight(); + method public int getStart(); + method public int getUnspecified(); + method public java.util.List values(); + property public final int Center; + property public final int End; + property public final int Justify; + property public final int Left; + property public final int Right; + property public final int Start; + property public final int Unspecified; + } + + @androidx.compose.runtime.Immutable public final class TextDecoration { + method public operator boolean contains(androidx.compose.ui.text.style.TextDecoration other); + method public int getMask(); + method public operator androidx.compose.ui.text.style.TextDecoration plus(androidx.compose.ui.text.style.TextDecoration decoration); + property public final int mask; + field public static final androidx.compose.ui.text.style.TextDecoration.Companion Companion; + } + + public static final class TextDecoration.Companion { + method public androidx.compose.ui.text.style.TextDecoration combine(java.util.List decorations); + method public androidx.compose.ui.text.style.TextDecoration getLineThrough(); + method public androidx.compose.ui.text.style.TextDecoration getNone(); + method public androidx.compose.ui.text.style.TextDecoration getUnderline(); + property public final androidx.compose.ui.text.style.TextDecoration LineThrough; + property public final androidx.compose.ui.text.style.TextDecoration None; + property public final androidx.compose.ui.text.style.TextDecoration Underline; + } + + @kotlin.jvm.JvmInline public final value class TextDirection { + field public static final androidx.compose.ui.text.style.TextDirection.Companion Companion; + } + + public static final class TextDirection.Companion { + method public int getContent(); + method public int getContentOrLtr(); + method public int getContentOrRtl(); + method public int getLtr(); + method public int getRtl(); + method public int getUnspecified(); + property public final int Content; + property public final int ContentOrLtr; + property public final int ContentOrRtl; + property public final int Ltr; + property public final int Rtl; + property public final int Unspecified; + } + + @androidx.compose.runtime.Immutable public final class TextGeometricTransform { + ctor public TextGeometricTransform(optional float scaleX, optional float skewX); + method public androidx.compose.ui.text.style.TextGeometricTransform copy(optional float scaleX, optional float skewX); + method public float getScaleX(); + method public float getSkewX(); + property public final float scaleX; + property public final float skewX; + field public static final androidx.compose.ui.text.style.TextGeometricTransform.Companion Companion; + } + + public static final class TextGeometricTransform.Companion { + } + + public final class TextGeometricTransformKt { + method public static androidx.compose.ui.text.style.TextGeometricTransform lerp(androidx.compose.ui.text.style.TextGeometricTransform start, androidx.compose.ui.text.style.TextGeometricTransform stop, float fraction); + } + + @androidx.compose.runtime.Immutable public final class TextIndent { + ctor public TextIndent(optional long firstLine, optional long restLine); + method public androidx.compose.ui.text.style.TextIndent copy(optional long firstLine, optional long restLine); + method public long getFirstLine(); + method public long getRestLine(); + property public final long firstLine; + property public final long restLine; + field public static final androidx.compose.ui.text.style.TextIndent.Companion Companion; + } + + public static final class TextIndent.Companion { + method public androidx.compose.ui.text.style.TextIndent getNone(); + property public final androidx.compose.ui.text.style.TextIndent None; + } + + public final class TextIndentKt { + method public static androidx.compose.ui.text.style.TextIndent lerp(androidx.compose.ui.text.style.TextIndent start, androidx.compose.ui.text.style.TextIndent stop, float fraction); + } + + @androidx.compose.runtime.Immutable public final class TextMotion { + field public static final androidx.compose.ui.text.style.TextMotion.Companion Companion; + } + + public static final class TextMotion.Companion { + method public androidx.compose.ui.text.style.TextMotion getAnimated(); + method public androidx.compose.ui.text.style.TextMotion getStatic(); + property public final androidx.compose.ui.text.style.TextMotion Animated; + property public final androidx.compose.ui.text.style.TextMotion Static; + } + + @kotlin.jvm.JvmInline public final value class TextOverflow { + field public static final androidx.compose.ui.text.style.TextOverflow.Companion Companion; + } + + public static final class TextOverflow.Companion { + method public int getClip(); + method public int getEllipsis(); + method public int getVisible(); + property public final int Clip; + property public final int Ellipsis; + property public final int Visible; + } + +} + diff --git a/compose/ui/ui-text/src/androidInstrumentedTest/kotlin/androidx/compose/ui/text/font/FontFamilyResolverImplTest.kt b/compose/ui/ui-text/src/androidInstrumentedTest/kotlin/androidx/compose/ui/text/font/FontFamilyResolverImplTest.kt index 6a0b85b54d117..1212c92c7a3cf 100644 --- a/compose/ui/ui-text/src/androidInstrumentedTest/kotlin/androidx/compose/ui/text/font/FontFamilyResolverImplTest.kt +++ b/compose/ui/ui-text/src/androidInstrumentedTest/kotlin/androidx/compose/ui/text/font/FontFamilyResolverImplTest.kt @@ -17,8 +17,10 @@ package androidx.compose.ui.text.font import android.content.Context +import android.content.res.Configuration import android.graphics.Typeface import android.os.Build +import android.view.ContextThemeWrapper import androidx.compose.ui.text.FontTestData import androidx.compose.ui.text.UncachedFontFamilyResolver import androidx.compose.ui.text.font.testutils.AsyncFauxFont @@ -777,4 +779,32 @@ class FontFamilyResolverImplTest { val typeface = resolveAsTypeface(fontFamily, FontWeight.W400) assertThat(typeface).isSameInstanceAs(Typeface.SERIF) } + + @SdkSuppress(maxSdkVersion = 30) + @Test + fun androidResolveInterceptor_noFontWeightApplied_beforeApi31() { + initializeSubject(AndroidFontResolveInterceptor(context)) + val typeface = resolveAsTypeface() + assertThat(typeface).hasWeightAndStyle(FontWeight.Normal, FontStyle.Normal) + } + + @SdkSuppress(minSdkVersion = 31) + @Test + fun androidResolveInterceptor_fontWeightAdjustment_appliesPastApi31() { + val newContext = + ContextThemeWrapper(context, 0).apply { + applyOverrideConfiguration( + Configuration().apply { + updateFrom(context.resources.configuration) + this.fontWeightAdjustment = 100 + } + ) + } + + initializeSubject(AndroidFontResolveInterceptor(newContext)) + val typeface = resolveAsTypeface() + + // FontWeight.Normal + 100 = FontWeight.Medium + assertThat(typeface).hasWeightAndStyle(FontWeight.Medium, FontStyle.Normal) + } } diff --git a/compose/ui/ui-text/src/androidMain/kotlin/androidx/compose/ui/text/font/AndroidFontResolveInterceptor.android.kt b/compose/ui/ui-text/src/androidMain/kotlin/androidx/compose/ui/text/font/AndroidFontResolveInterceptor.android.kt index b56bf6cb162b2..c04fc3aed3f01 100644 --- a/compose/ui/ui-text/src/androidMain/kotlin/androidx/compose/ui/text/font/AndroidFontResolveInterceptor.android.kt +++ b/compose/ui/ui-text/src/androidMain/kotlin/androidx/compose/ui/text/font/AndroidFontResolveInterceptor.android.kt @@ -20,6 +20,8 @@ import android.content.Context import android.content.res.Configuration import android.graphics.fonts.FontStyle import android.os.Build +import androidx.annotation.DoNotInline +import androidx.annotation.RequiresApi import androidx.compose.ui.unit.Density /** @@ -52,10 +54,23 @@ internal data class AndroidFontResolveInterceptor( * A helper function to create an interceptor using a context. */ internal fun AndroidFontResolveInterceptor(context: Context): AndroidFontResolveInterceptor { - val fontWeightAdjustment = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { - context.resources.configuration.fontWeightAdjustment - } else { - 0 - } + val fontWeightAdjustment = FontWeightAdjustmentHelper.getFontWeightAdjustment(context) return AndroidFontResolveInterceptor(fontWeightAdjustment) } + +internal object FontWeightAdjustmentHelper { + fun getFontWeightAdjustment(context: Context): Int = + when { + Build.VERSION.SDK_INT >= 31 -> + FontWeightAdjustmentHelperApi31.fontWeightAdjustment(context) + else -> 0 + } +} + +@RequiresApi(31) +internal object FontWeightAdjustmentHelperApi31 { + @DoNotInline + @RequiresApi(31) + fun fontWeightAdjustment(context: Context): Int = + context.resources.configuration.fontWeightAdjustment +} diff --git a/compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/input/TextInputService.kt b/compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/input/TextInputService.kt index b5f6bdec775e9..83ca55e0327b7 100644 --- a/compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/input/TextInputService.kt +++ b/compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/input/TextInputService.kt @@ -34,7 +34,6 @@ import androidx.compose.ui.text.TextLayoutResult * close it with [stopInput]. */ // Open for testing purposes. -@Deprecated("Use PlatformTextInputModifierNode instead.") open class TextInputService(private val platformTextInputService: PlatformTextInputService) { private val _currentInputSession: AtomicReference = AtomicReference(null) @@ -294,7 +293,6 @@ class TextInputSession( /** * Platform specific text input service. */ -@Deprecated("Use PlatformTextInputModifierNode instead.") interface PlatformTextInputService { /** * Start text input session for given client. diff --git a/compose/ui/ui-tooling-data/api/1.7.0-beta07.txt b/compose/ui/ui-tooling-data/api/1.7.0-beta07.txt new file mode 100644 index 0000000000000..d0ef928f2c69b --- /dev/null +++ b/compose/ui/ui-tooling-data/api/1.7.0-beta07.txt @@ -0,0 +1,127 @@ +// Signature format: 4.0 +package androidx.compose.ui.tooling.data { + + @SuppressCompatibility @androidx.compose.ui.tooling.data.UiToolingDataApi public final class CallGroup extends androidx.compose.ui.tooling.data.Group { + ctor public CallGroup(Object? key, String? name, androidx.compose.ui.unit.IntRect box, androidx.compose.ui.tooling.data.SourceLocation? location, Object? identity, java.util.List parameters, java.util.Collection data, java.util.Collection children, boolean isInline); + property public java.util.List parameters; + } + + @SuppressCompatibility @androidx.compose.ui.tooling.data.UiToolingDataApi public final class ContextCache { + ctor public ContextCache(); + method public void clear(); + } + + @SuppressCompatibility @androidx.compose.ui.tooling.data.UiToolingDataApi public abstract sealed class Group { + method public final androidx.compose.ui.unit.IntRect getBox(); + method public final java.util.Collection getChildren(); + method public final java.util.Collection getData(); + method public final Object? getIdentity(); + method public final Object? getKey(); + method public final androidx.compose.ui.tooling.data.SourceLocation? getLocation(); + method public java.util.List getModifierInfo(); + method public final String? getName(); + method public java.util.List getParameters(); + method public final boolean isInline(); + property public final androidx.compose.ui.unit.IntRect box; + property public final java.util.Collection children; + property public final java.util.Collection data; + property public final Object? identity; + property public final boolean isInline; + property public final Object? key; + property public final androidx.compose.ui.tooling.data.SourceLocation? location; + property public java.util.List modifierInfo; + property public final String? name; + property public java.util.List parameters; + } + + @SuppressCompatibility @androidx.compose.ui.tooling.data.UiToolingDataApi public final class JoinedKey { + ctor public JoinedKey(Object? left, Object? right); + method public Object? component1(); + method public Object? component2(); + method public androidx.compose.ui.tooling.data.JoinedKey copy(Object? left, Object? right); + method public Object? getLeft(); + method public Object? getRight(); + property public final Object? left; + property public final Object? right; + } + + @SuppressCompatibility @androidx.compose.ui.tooling.data.UiToolingDataApi public final class NodeGroup extends androidx.compose.ui.tooling.data.Group { + ctor public NodeGroup(Object? key, Object node, androidx.compose.ui.unit.IntRect box, java.util.Collection data, java.util.List modifierInfo, java.util.Collection children); + method public Object getNode(); + property public java.util.List modifierInfo; + property public final Object node; + } + + @SuppressCompatibility @androidx.compose.ui.tooling.data.UiToolingDataApi public final class ParameterInformation { + ctor public ParameterInformation(String name, Object? value, boolean fromDefault, boolean static, boolean compared, String? inlineClass, boolean stable); + method public String component1(); + method public Object? component2(); + method public boolean component3(); + method public boolean component4(); + method public boolean component5(); + method public String? component6(); + method public boolean component7(); + method public androidx.compose.ui.tooling.data.ParameterInformation copy(String name, Object? value, boolean fromDefault, boolean static, boolean compared, String? inlineClass, boolean stable); + method public boolean getCompared(); + method public boolean getFromDefault(); + method public String? getInlineClass(); + method public String getName(); + method public boolean getStable(); + method public boolean getStatic(); + method public Object? getValue(); + property public final boolean compared; + property public final boolean fromDefault; + property public final String? inlineClass; + property public final String name; + property public final boolean stable; + property public final boolean static; + property public final Object? value; + } + + public final class SlotTreeKt { + method @SuppressCompatibility @androidx.compose.ui.tooling.data.UiToolingDataApi public static androidx.compose.ui.tooling.data.Group asTree(androidx.compose.runtime.tooling.CompositionData); + method @SuppressCompatibility @androidx.compose.ui.tooling.data.UiToolingDataApi public static java.util.List findParameters(androidx.compose.runtime.tooling.CompositionGroup, optional androidx.compose.ui.tooling.data.ContextCache? cache); + method @SuppressCompatibility @androidx.compose.ui.tooling.data.UiToolingDataApi public static String? getPosition(androidx.compose.ui.tooling.data.Group); + method @SuppressCompatibility @androidx.compose.ui.tooling.data.UiToolingDataApi public static T? mapTree(androidx.compose.runtime.tooling.CompositionData, kotlin.jvm.functions.Function3,? extends T?> factory, optional androidx.compose.ui.tooling.data.ContextCache cache); + } + + @SuppressCompatibility @androidx.compose.ui.tooling.data.UiToolingDataApi public interface SourceContext { + method public androidx.compose.ui.unit.IntRect getBounds(); + method public int getDepth(); + method public androidx.compose.ui.tooling.data.SourceLocation? getLocation(); + method public String? getName(); + method public java.util.List getParameters(); + method public default boolean isInline(); + property public abstract androidx.compose.ui.unit.IntRect bounds; + property public abstract int depth; + property public default boolean isInline; + property public abstract androidx.compose.ui.tooling.data.SourceLocation? location; + property public abstract String? name; + property public abstract java.util.List parameters; + } + + @SuppressCompatibility @androidx.compose.ui.tooling.data.UiToolingDataApi public final class SourceLocation { + ctor public SourceLocation(int lineNumber, int offset, int length, String? sourceFile, int packageHash); + method public int component1(); + method public int component2(); + method public int component3(); + method public String? component4(); + method public int component5(); + method public androidx.compose.ui.tooling.data.SourceLocation copy(int lineNumber, int offset, int length, String? sourceFile, int packageHash); + method public int getLength(); + method public int getLineNumber(); + method public int getOffset(); + method public int getPackageHash(); + method public String? getSourceFile(); + property public final int length; + property public final int lineNumber; + property public final int offset; + property public final int packageHash; + property public final String? sourceFile; + } + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This API is for tooling only and is likely to change in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface UiToolingDataApi { + } + +} + diff --git a/compose/ui/ui-tooling-data/api/res-1.7.0-beta07.txt b/compose/ui/ui-tooling-data/api/res-1.7.0-beta07.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/compose/ui/ui-tooling-data/api/restricted_1.7.0-beta07.txt b/compose/ui/ui-tooling-data/api/restricted_1.7.0-beta07.txt new file mode 100644 index 0000000000000..d0ef928f2c69b --- /dev/null +++ b/compose/ui/ui-tooling-data/api/restricted_1.7.0-beta07.txt @@ -0,0 +1,127 @@ +// Signature format: 4.0 +package androidx.compose.ui.tooling.data { + + @SuppressCompatibility @androidx.compose.ui.tooling.data.UiToolingDataApi public final class CallGroup extends androidx.compose.ui.tooling.data.Group { + ctor public CallGroup(Object? key, String? name, androidx.compose.ui.unit.IntRect box, androidx.compose.ui.tooling.data.SourceLocation? location, Object? identity, java.util.List parameters, java.util.Collection data, java.util.Collection children, boolean isInline); + property public java.util.List parameters; + } + + @SuppressCompatibility @androidx.compose.ui.tooling.data.UiToolingDataApi public final class ContextCache { + ctor public ContextCache(); + method public void clear(); + } + + @SuppressCompatibility @androidx.compose.ui.tooling.data.UiToolingDataApi public abstract sealed class Group { + method public final androidx.compose.ui.unit.IntRect getBox(); + method public final java.util.Collection getChildren(); + method public final java.util.Collection getData(); + method public final Object? getIdentity(); + method public final Object? getKey(); + method public final androidx.compose.ui.tooling.data.SourceLocation? getLocation(); + method public java.util.List getModifierInfo(); + method public final String? getName(); + method public java.util.List getParameters(); + method public final boolean isInline(); + property public final androidx.compose.ui.unit.IntRect box; + property public final java.util.Collection children; + property public final java.util.Collection data; + property public final Object? identity; + property public final boolean isInline; + property public final Object? key; + property public final androidx.compose.ui.tooling.data.SourceLocation? location; + property public java.util.List modifierInfo; + property public final String? name; + property public java.util.List parameters; + } + + @SuppressCompatibility @androidx.compose.ui.tooling.data.UiToolingDataApi public final class JoinedKey { + ctor public JoinedKey(Object? left, Object? right); + method public Object? component1(); + method public Object? component2(); + method public androidx.compose.ui.tooling.data.JoinedKey copy(Object? left, Object? right); + method public Object? getLeft(); + method public Object? getRight(); + property public final Object? left; + property public final Object? right; + } + + @SuppressCompatibility @androidx.compose.ui.tooling.data.UiToolingDataApi public final class NodeGroup extends androidx.compose.ui.tooling.data.Group { + ctor public NodeGroup(Object? key, Object node, androidx.compose.ui.unit.IntRect box, java.util.Collection data, java.util.List modifierInfo, java.util.Collection children); + method public Object getNode(); + property public java.util.List modifierInfo; + property public final Object node; + } + + @SuppressCompatibility @androidx.compose.ui.tooling.data.UiToolingDataApi public final class ParameterInformation { + ctor public ParameterInformation(String name, Object? value, boolean fromDefault, boolean static, boolean compared, String? inlineClass, boolean stable); + method public String component1(); + method public Object? component2(); + method public boolean component3(); + method public boolean component4(); + method public boolean component5(); + method public String? component6(); + method public boolean component7(); + method public androidx.compose.ui.tooling.data.ParameterInformation copy(String name, Object? value, boolean fromDefault, boolean static, boolean compared, String? inlineClass, boolean stable); + method public boolean getCompared(); + method public boolean getFromDefault(); + method public String? getInlineClass(); + method public String getName(); + method public boolean getStable(); + method public boolean getStatic(); + method public Object? getValue(); + property public final boolean compared; + property public final boolean fromDefault; + property public final String? inlineClass; + property public final String name; + property public final boolean stable; + property public final boolean static; + property public final Object? value; + } + + public final class SlotTreeKt { + method @SuppressCompatibility @androidx.compose.ui.tooling.data.UiToolingDataApi public static androidx.compose.ui.tooling.data.Group asTree(androidx.compose.runtime.tooling.CompositionData); + method @SuppressCompatibility @androidx.compose.ui.tooling.data.UiToolingDataApi public static java.util.List findParameters(androidx.compose.runtime.tooling.CompositionGroup, optional androidx.compose.ui.tooling.data.ContextCache? cache); + method @SuppressCompatibility @androidx.compose.ui.tooling.data.UiToolingDataApi public static String? getPosition(androidx.compose.ui.tooling.data.Group); + method @SuppressCompatibility @androidx.compose.ui.tooling.data.UiToolingDataApi public static T? mapTree(androidx.compose.runtime.tooling.CompositionData, kotlin.jvm.functions.Function3,? extends T?> factory, optional androidx.compose.ui.tooling.data.ContextCache cache); + } + + @SuppressCompatibility @androidx.compose.ui.tooling.data.UiToolingDataApi public interface SourceContext { + method public androidx.compose.ui.unit.IntRect getBounds(); + method public int getDepth(); + method public androidx.compose.ui.tooling.data.SourceLocation? getLocation(); + method public String? getName(); + method public java.util.List getParameters(); + method public default boolean isInline(); + property public abstract androidx.compose.ui.unit.IntRect bounds; + property public abstract int depth; + property public default boolean isInline; + property public abstract androidx.compose.ui.tooling.data.SourceLocation? location; + property public abstract String? name; + property public abstract java.util.List parameters; + } + + @SuppressCompatibility @androidx.compose.ui.tooling.data.UiToolingDataApi public final class SourceLocation { + ctor public SourceLocation(int lineNumber, int offset, int length, String? sourceFile, int packageHash); + method public int component1(); + method public int component2(); + method public int component3(); + method public String? component4(); + method public int component5(); + method public androidx.compose.ui.tooling.data.SourceLocation copy(int lineNumber, int offset, int length, String? sourceFile, int packageHash); + method public int getLength(); + method public int getLineNumber(); + method public int getOffset(); + method public int getPackageHash(); + method public String? getSourceFile(); + property public final int length; + property public final int lineNumber; + property public final int offset; + property public final int packageHash; + property public final String? sourceFile; + } + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This API is for tooling only and is likely to change in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface UiToolingDataApi { + } + +} + diff --git a/compose/ui/ui-tooling-preview/api/1.7.0-beta07.txt b/compose/ui/ui-tooling-preview/api/1.7.0-beta07.txt new file mode 100644 index 0000000000000..8a61e3915a174 --- /dev/null +++ b/compose/ui/ui-tooling-preview/api/1.7.0-beta07.txt @@ -0,0 +1,143 @@ +// Signature format: 4.0 +package androidx.compose.ui.tooling.preview { + + public final class Devices { + method @Deprecated public String getWEAR_OS_LARGE_ROUND(); + method @Deprecated public String getWEAR_OS_RECT(); + method @Deprecated public String getWEAR_OS_SMALL_ROUND(); + method @Deprecated public String getWEAR_OS_SQUARE(); + property @Deprecated public String WEAR_OS_LARGE_ROUND; + property @Deprecated public String WEAR_OS_RECT; + property @Deprecated public String WEAR_OS_SMALL_ROUND; + property @Deprecated public String WEAR_OS_SQUARE; + field public static final String AUTOMOTIVE_1024p = "id:automotive_1024p_landscape"; + field public static final String DEFAULT = ""; + field public static final String DESKTOP = "spec:id=reference_desktop,shape=Normal,width=1920,height=1080,unit=dp,dpi=160"; + field public static final String FOLDABLE = "spec:id=reference_foldable,shape=Normal,width=673,height=841,unit=dp,dpi=420"; + field public static final androidx.compose.ui.tooling.preview.Devices INSTANCE; + field public static final String NEXUS_10 = "name:Nexus 10"; + field public static final String NEXUS_5 = "id:Nexus 5"; + field public static final String NEXUS_5X = "id:Nexus 5X"; + field public static final String NEXUS_6 = "id:Nexus 6"; + field public static final String NEXUS_6P = "id:Nexus 6P"; + field public static final String NEXUS_7 = "id:Nexus 7"; + field public static final String NEXUS_7_2013 = "id:Nexus 7 2013"; + field public static final String NEXUS_9 = "id:Nexus 9"; + field public static final String PHONE = "spec:id=reference_phone,shape=Normal,width=411,height=891,unit=dp,dpi=420"; + field public static final String PIXEL = "id:pixel"; + field public static final String PIXEL_2 = "id:pixel_2"; + field public static final String PIXEL_2_XL = "id:pixel_2_xl"; + field public static final String PIXEL_3 = "id:pixel_3"; + field public static final String PIXEL_3A = "id:pixel_3a"; + field public static final String PIXEL_3A_XL = "id:pixel_3a_xl"; + field public static final String PIXEL_3_XL = "id:pixel_3_xl"; + field public static final String PIXEL_4 = "id:pixel_4"; + field public static final String PIXEL_4A = "id:pixel_4a"; + field public static final String PIXEL_4_XL = "id:pixel_4_xl"; + field public static final String PIXEL_5 = "id:pixel_5"; + field public static final String PIXEL_6 = "id:pixel_6"; + field public static final String PIXEL_6A = "id:pixel_6a"; + field public static final String PIXEL_6_PRO = "id:pixel_6_pro"; + field public static final String PIXEL_7 = "id:pixel_7"; + field public static final String PIXEL_7A = "id:pixel_7a"; + field public static final String PIXEL_7_PRO = "id:pixel_7_pro"; + field public static final String PIXEL_C = "id:pixel_c"; + field public static final String PIXEL_FOLD = "id:pixel_fold"; + field public static final String PIXEL_TABLET = "id:pixel_tablet"; + field public static final String PIXEL_XL = "id:pixel_xl"; + field public static final String TABLET = "spec:id=reference_tablet,shape=Normal,width=1280,height=800,unit=dp,dpi=240"; + field public static final String TV_1080p = "spec:shape=Normal,width=1920,height=1080,unit=dp,dpi=420"; + field public static final String TV_720p = "spec:shape=Normal,width=1280,height=720,unit=dp,dpi=420"; + field @Deprecated public static final String WEAR_OS_LARGE_ROUND = "id:wearos_large_round"; + field @Deprecated public static final String WEAR_OS_RECT = "id:wearos_rect"; + field @Deprecated public static final String WEAR_OS_SMALL_ROUND = "id:wearos_small_round"; + field @Deprecated public static final String WEAR_OS_SQUARE = "id:wearos_square"; + } + + @kotlin.annotation.MustBeDocumented @kotlin.annotation.Repeatable @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.ANNOTATION_CLASS, kotlin.annotation.AnnotationTarget.FUNCTION}) public @interface Preview { + method public abstract int apiLevel() default -1; + method public abstract long backgroundColor() default 0; + method public abstract String device() default androidx.compose.ui.tooling.preview.Devices.DEFAULT; + method public abstract float fontScale() default 1.0; + method public abstract String group() default ""; + method public abstract int heightDp() default -1; + method public abstract String locale() default ""; + method public abstract String name() default ""; + method public abstract boolean showBackground() default false; + method public abstract boolean showSystemUi() default false; + method public abstract int uiMode() default 0; + method public abstract int wallpaper() default androidx.compose.ui.tooling.preview.Wallpapers.NONE; + method public abstract int widthDp() default -1; + property public abstract int apiLevel; + property public abstract long backgroundColor; + property public abstract String device; + property public abstract float fontScale; + property public abstract String group; + property public abstract int heightDp; + property public abstract String locale; + property public abstract String name; + property public abstract boolean showBackground; + property public abstract boolean showSystemUi; + property public abstract int uiMode; + property public abstract int wallpaper; + property public abstract int widthDp; + } + + @kotlin.annotation.MustBeDocumented @kotlin.annotation.Repeatable @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.ANNOTATION_CLASS, kotlin.annotation.AnnotationTarget.FUNCTION}) public static @interface Preview.Container { + method public abstract androidx.compose.ui.tooling.preview.Preview[] value(); + } + + @androidx.compose.ui.tooling.preview.Preview(name="Red", wallpaper=androidx.compose.ui.tooling.preview.Wallpapers.RED_DOMINATED_EXAMPLE) @androidx.compose.ui.tooling.preview.Preview(name="Blue", wallpaper=androidx.compose.ui.tooling.preview.Wallpapers.BLUE_DOMINATED_EXAMPLE) @androidx.compose.ui.tooling.preview.Preview(name="Green", wallpaper=androidx.compose.ui.tooling.preview.Wallpapers.GREEN_DOMINATED_EXAMPLE) @androidx.compose.ui.tooling.preview.Preview(name="Yellow", wallpaper=androidx.compose.ui.tooling.preview.Wallpapers.YELLOW_DOMINATED_EXAMPLE) @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.ANNOTATION_CLASS, kotlin.annotation.AnnotationTarget.FUNCTION}) public @interface PreviewDynamicColors { + } + + @androidx.compose.ui.tooling.preview.Preview(name="85%", fontScale=0.85f) @androidx.compose.ui.tooling.preview.Preview(name="100%", fontScale=1.0f) @androidx.compose.ui.tooling.preview.Preview(name="115%", fontScale=1.15f) @androidx.compose.ui.tooling.preview.Preview(name="130%", fontScale=1.3f) @androidx.compose.ui.tooling.preview.Preview(name="150%", fontScale=1.5f) @androidx.compose.ui.tooling.preview.Preview(name="180%", fontScale=1.8f) @androidx.compose.ui.tooling.preview.Preview(name="200%", fontScale=2.0f) @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.ANNOTATION_CLASS, kotlin.annotation.AnnotationTarget.FUNCTION}) public @interface PreviewFontScale { + } + + @androidx.compose.ui.tooling.preview.Preview(name="Light") @androidx.compose.ui.tooling.preview.Preview(name="Dark", uiMode=android.content.res.Configuration.UI_MODE_NIGHT_YES | android.content.res.Configuration.UI_MODE_TYPE_NORMAL) @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.ANNOTATION_CLASS, kotlin.annotation.AnnotationTarget.FUNCTION}) public @interface PreviewLightDark { + } + + @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) public @interface PreviewParameter { + method public abstract int limit() default kotlin.jvm.internal.IntCompanionObject.MAX_VALUE; + method public abstract kotlin.reflect.KClass> provider(); + property public abstract int limit; + property public abstract kotlin.reflect.KClass> provider; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface PreviewParameterProvider { + method public default int getCount(); + method public kotlin.sequences.Sequence getValues(); + property public default int count; + property public abstract kotlin.sequences.Sequence values; + } + + @androidx.compose.ui.tooling.preview.Preview(name="Phone", device=androidx.compose.ui.tooling.preview.Devices.PHONE, showSystemUi=true) @androidx.compose.ui.tooling.preview.Preview(name="Phone - Landscape", device="spec:width = 411dp, height = 891dp, orientation = landscape, dpi = 420", showSystemUi=true) @androidx.compose.ui.tooling.preview.Preview(name="Unfolded Foldable", device=androidx.compose.ui.tooling.preview.Devices.FOLDABLE, showSystemUi=true) @androidx.compose.ui.tooling.preview.Preview(name="Tablet", device=androidx.compose.ui.tooling.preview.Devices.TABLET, showSystemUi=true) @androidx.compose.ui.tooling.preview.Preview(name="Desktop", device=androidx.compose.ui.tooling.preview.Devices.DESKTOP, showSystemUi=true) @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.ANNOTATION_CLASS, kotlin.annotation.AnnotationTarget.FUNCTION}) public @interface PreviewScreenSizes { + } + + public final class Wallpapers { + field public static final int BLUE_DOMINATED_EXAMPLE = 2; // 0x2 + field public static final int GREEN_DOMINATED_EXAMPLE = 1; // 0x1 + field public static final androidx.compose.ui.tooling.preview.Wallpapers INSTANCE; + field public static final int NONE = -1; // 0xffffffff + field public static final int RED_DOMINATED_EXAMPLE = 0; // 0x0 + field public static final int YELLOW_DOMINATED_EXAMPLE = 3; // 0x3 + } + +} + +package androidx.compose.ui.tooling.preview.datasource { + + public class CollectionPreviewParameterProvider implements androidx.compose.ui.tooling.preview.PreviewParameterProvider { + ctor public CollectionPreviewParameterProvider(java.util.Collection collection); + method public kotlin.sequences.Sequence getValues(); + property public kotlin.sequences.Sequence values; + } + + public class LoremIpsum implements androidx.compose.ui.tooling.preview.PreviewParameterProvider { + ctor public LoremIpsum(); + ctor public LoremIpsum(int words); + method public kotlin.sequences.Sequence getValues(); + property public kotlin.sequences.Sequence values; + } + +} + diff --git a/compose/ui/ui-tooling-preview/api/res-1.7.0-beta07.txt b/compose/ui/ui-tooling-preview/api/res-1.7.0-beta07.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/compose/ui/ui-tooling-preview/api/restricted_1.7.0-beta07.txt b/compose/ui/ui-tooling-preview/api/restricted_1.7.0-beta07.txt new file mode 100644 index 0000000000000..8a61e3915a174 --- /dev/null +++ b/compose/ui/ui-tooling-preview/api/restricted_1.7.0-beta07.txt @@ -0,0 +1,143 @@ +// Signature format: 4.0 +package androidx.compose.ui.tooling.preview { + + public final class Devices { + method @Deprecated public String getWEAR_OS_LARGE_ROUND(); + method @Deprecated public String getWEAR_OS_RECT(); + method @Deprecated public String getWEAR_OS_SMALL_ROUND(); + method @Deprecated public String getWEAR_OS_SQUARE(); + property @Deprecated public String WEAR_OS_LARGE_ROUND; + property @Deprecated public String WEAR_OS_RECT; + property @Deprecated public String WEAR_OS_SMALL_ROUND; + property @Deprecated public String WEAR_OS_SQUARE; + field public static final String AUTOMOTIVE_1024p = "id:automotive_1024p_landscape"; + field public static final String DEFAULT = ""; + field public static final String DESKTOP = "spec:id=reference_desktop,shape=Normal,width=1920,height=1080,unit=dp,dpi=160"; + field public static final String FOLDABLE = "spec:id=reference_foldable,shape=Normal,width=673,height=841,unit=dp,dpi=420"; + field public static final androidx.compose.ui.tooling.preview.Devices INSTANCE; + field public static final String NEXUS_10 = "name:Nexus 10"; + field public static final String NEXUS_5 = "id:Nexus 5"; + field public static final String NEXUS_5X = "id:Nexus 5X"; + field public static final String NEXUS_6 = "id:Nexus 6"; + field public static final String NEXUS_6P = "id:Nexus 6P"; + field public static final String NEXUS_7 = "id:Nexus 7"; + field public static final String NEXUS_7_2013 = "id:Nexus 7 2013"; + field public static final String NEXUS_9 = "id:Nexus 9"; + field public static final String PHONE = "spec:id=reference_phone,shape=Normal,width=411,height=891,unit=dp,dpi=420"; + field public static final String PIXEL = "id:pixel"; + field public static final String PIXEL_2 = "id:pixel_2"; + field public static final String PIXEL_2_XL = "id:pixel_2_xl"; + field public static final String PIXEL_3 = "id:pixel_3"; + field public static final String PIXEL_3A = "id:pixel_3a"; + field public static final String PIXEL_3A_XL = "id:pixel_3a_xl"; + field public static final String PIXEL_3_XL = "id:pixel_3_xl"; + field public static final String PIXEL_4 = "id:pixel_4"; + field public static final String PIXEL_4A = "id:pixel_4a"; + field public static final String PIXEL_4_XL = "id:pixel_4_xl"; + field public static final String PIXEL_5 = "id:pixel_5"; + field public static final String PIXEL_6 = "id:pixel_6"; + field public static final String PIXEL_6A = "id:pixel_6a"; + field public static final String PIXEL_6_PRO = "id:pixel_6_pro"; + field public static final String PIXEL_7 = "id:pixel_7"; + field public static final String PIXEL_7A = "id:pixel_7a"; + field public static final String PIXEL_7_PRO = "id:pixel_7_pro"; + field public static final String PIXEL_C = "id:pixel_c"; + field public static final String PIXEL_FOLD = "id:pixel_fold"; + field public static final String PIXEL_TABLET = "id:pixel_tablet"; + field public static final String PIXEL_XL = "id:pixel_xl"; + field public static final String TABLET = "spec:id=reference_tablet,shape=Normal,width=1280,height=800,unit=dp,dpi=240"; + field public static final String TV_1080p = "spec:shape=Normal,width=1920,height=1080,unit=dp,dpi=420"; + field public static final String TV_720p = "spec:shape=Normal,width=1280,height=720,unit=dp,dpi=420"; + field @Deprecated public static final String WEAR_OS_LARGE_ROUND = "id:wearos_large_round"; + field @Deprecated public static final String WEAR_OS_RECT = "id:wearos_rect"; + field @Deprecated public static final String WEAR_OS_SMALL_ROUND = "id:wearos_small_round"; + field @Deprecated public static final String WEAR_OS_SQUARE = "id:wearos_square"; + } + + @kotlin.annotation.MustBeDocumented @kotlin.annotation.Repeatable @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.ANNOTATION_CLASS, kotlin.annotation.AnnotationTarget.FUNCTION}) public @interface Preview { + method public abstract int apiLevel() default -1; + method public abstract long backgroundColor() default 0; + method public abstract String device() default androidx.compose.ui.tooling.preview.Devices.DEFAULT; + method public abstract float fontScale() default 1.0; + method public abstract String group() default ""; + method public abstract int heightDp() default -1; + method public abstract String locale() default ""; + method public abstract String name() default ""; + method public abstract boolean showBackground() default false; + method public abstract boolean showSystemUi() default false; + method public abstract int uiMode() default 0; + method public abstract int wallpaper() default androidx.compose.ui.tooling.preview.Wallpapers.NONE; + method public abstract int widthDp() default -1; + property public abstract int apiLevel; + property public abstract long backgroundColor; + property public abstract String device; + property public abstract float fontScale; + property public abstract String group; + property public abstract int heightDp; + property public abstract String locale; + property public abstract String name; + property public abstract boolean showBackground; + property public abstract boolean showSystemUi; + property public abstract int uiMode; + property public abstract int wallpaper; + property public abstract int widthDp; + } + + @kotlin.annotation.MustBeDocumented @kotlin.annotation.Repeatable @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.ANNOTATION_CLASS, kotlin.annotation.AnnotationTarget.FUNCTION}) public static @interface Preview.Container { + method public abstract androidx.compose.ui.tooling.preview.Preview[] value(); + } + + @androidx.compose.ui.tooling.preview.Preview(name="Red", wallpaper=androidx.compose.ui.tooling.preview.Wallpapers.RED_DOMINATED_EXAMPLE) @androidx.compose.ui.tooling.preview.Preview(name="Blue", wallpaper=androidx.compose.ui.tooling.preview.Wallpapers.BLUE_DOMINATED_EXAMPLE) @androidx.compose.ui.tooling.preview.Preview(name="Green", wallpaper=androidx.compose.ui.tooling.preview.Wallpapers.GREEN_DOMINATED_EXAMPLE) @androidx.compose.ui.tooling.preview.Preview(name="Yellow", wallpaper=androidx.compose.ui.tooling.preview.Wallpapers.YELLOW_DOMINATED_EXAMPLE) @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.ANNOTATION_CLASS, kotlin.annotation.AnnotationTarget.FUNCTION}) public @interface PreviewDynamicColors { + } + + @androidx.compose.ui.tooling.preview.Preview(name="85%", fontScale=0.85f) @androidx.compose.ui.tooling.preview.Preview(name="100%", fontScale=1.0f) @androidx.compose.ui.tooling.preview.Preview(name="115%", fontScale=1.15f) @androidx.compose.ui.tooling.preview.Preview(name="130%", fontScale=1.3f) @androidx.compose.ui.tooling.preview.Preview(name="150%", fontScale=1.5f) @androidx.compose.ui.tooling.preview.Preview(name="180%", fontScale=1.8f) @androidx.compose.ui.tooling.preview.Preview(name="200%", fontScale=2.0f) @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.ANNOTATION_CLASS, kotlin.annotation.AnnotationTarget.FUNCTION}) public @interface PreviewFontScale { + } + + @androidx.compose.ui.tooling.preview.Preview(name="Light") @androidx.compose.ui.tooling.preview.Preview(name="Dark", uiMode=android.content.res.Configuration.UI_MODE_NIGHT_YES | android.content.res.Configuration.UI_MODE_TYPE_NORMAL) @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.ANNOTATION_CLASS, kotlin.annotation.AnnotationTarget.FUNCTION}) public @interface PreviewLightDark { + } + + @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) public @interface PreviewParameter { + method public abstract int limit() default kotlin.jvm.internal.IntCompanionObject.MAX_VALUE; + method public abstract kotlin.reflect.KClass> provider(); + property public abstract int limit; + property public abstract kotlin.reflect.KClass> provider; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface PreviewParameterProvider { + method public default int getCount(); + method public kotlin.sequences.Sequence getValues(); + property public default int count; + property public abstract kotlin.sequences.Sequence values; + } + + @androidx.compose.ui.tooling.preview.Preview(name="Phone", device=androidx.compose.ui.tooling.preview.Devices.PHONE, showSystemUi=true) @androidx.compose.ui.tooling.preview.Preview(name="Phone - Landscape", device="spec:width = 411dp, height = 891dp, orientation = landscape, dpi = 420", showSystemUi=true) @androidx.compose.ui.tooling.preview.Preview(name="Unfolded Foldable", device=androidx.compose.ui.tooling.preview.Devices.FOLDABLE, showSystemUi=true) @androidx.compose.ui.tooling.preview.Preview(name="Tablet", device=androidx.compose.ui.tooling.preview.Devices.TABLET, showSystemUi=true) @androidx.compose.ui.tooling.preview.Preview(name="Desktop", device=androidx.compose.ui.tooling.preview.Devices.DESKTOP, showSystemUi=true) @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.ANNOTATION_CLASS, kotlin.annotation.AnnotationTarget.FUNCTION}) public @interface PreviewScreenSizes { + } + + public final class Wallpapers { + field public static final int BLUE_DOMINATED_EXAMPLE = 2; // 0x2 + field public static final int GREEN_DOMINATED_EXAMPLE = 1; // 0x1 + field public static final androidx.compose.ui.tooling.preview.Wallpapers INSTANCE; + field public static final int NONE = -1; // 0xffffffff + field public static final int RED_DOMINATED_EXAMPLE = 0; // 0x0 + field public static final int YELLOW_DOMINATED_EXAMPLE = 3; // 0x3 + } + +} + +package androidx.compose.ui.tooling.preview.datasource { + + public class CollectionPreviewParameterProvider implements androidx.compose.ui.tooling.preview.PreviewParameterProvider { + ctor public CollectionPreviewParameterProvider(java.util.Collection collection); + method public kotlin.sequences.Sequence getValues(); + property public kotlin.sequences.Sequence values; + } + + public class LoremIpsum implements androidx.compose.ui.tooling.preview.PreviewParameterProvider { + ctor public LoremIpsum(); + ctor public LoremIpsum(int words); + method public kotlin.sequences.Sequence getValues(); + property public kotlin.sequences.Sequence values; + } + +} + diff --git a/compose/ui/ui-tooling/api/1.7.0-beta07.txt b/compose/ui/ui-tooling/api/1.7.0-beta07.txt new file mode 100644 index 0000000000000..7e9a8b6f90fee --- /dev/null +++ b/compose/ui/ui-tooling/api/1.7.0-beta07.txt @@ -0,0 +1,29 @@ +// Signature format: 4.0 +package androidx.compose.ui.tooling { + + @Deprecated @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public final class ComposableInvoker { + method @Deprecated @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public void invokeComposable(String className, String methodName, androidx.compose.runtime.Composer composer, java.lang.Object?... args); + field @Deprecated public static final androidx.compose.ui.tooling.ComposableInvoker INSTANCE; + } + + public final class InspectableKt { + method @Deprecated @androidx.compose.runtime.Composable public static void InInspectionModeOnly(kotlin.jvm.functions.Function0 content); + } + + public final class PreviewActivity extends androidx.activity.ComponentActivity implements androidx.lifecycle.LifecycleOwner { + ctor public PreviewActivity(); + } + +} + +package androidx.compose.ui.tooling.animation { + + public final class ToolingState implements androidx.compose.runtime.State { + ctor public ToolingState(T default); + method public T getValue(); + method public void setValue(T); + property public T value; + } + +} + diff --git a/compose/ui/ui-tooling/api/res-1.7.0-beta07.txt b/compose/ui/ui-tooling/api/res-1.7.0-beta07.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/compose/ui/ui-tooling/api/restricted_1.7.0-beta07.txt b/compose/ui/ui-tooling/api/restricted_1.7.0-beta07.txt new file mode 100644 index 0000000000000..091a4d4e8f399 --- /dev/null +++ b/compose/ui/ui-tooling/api/restricted_1.7.0-beta07.txt @@ -0,0 +1,29 @@ +// Signature format: 4.0 +package androidx.compose.ui.tooling { + + @Deprecated @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public final class ComposableInvoker { + method @Deprecated @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public void invokeComposable(String className, String methodName, androidx.compose.runtime.Composer composer, java.lang.Object?... args); + field @Deprecated public static final androidx.compose.ui.tooling.ComposableInvoker INSTANCE; + } + + public final class InspectableKt { + method @Deprecated @androidx.compose.runtime.Composable public static void InInspectionModeOnly(kotlin.jvm.functions.Function0 content); + } + + public final class PreviewActivity extends androidx.activity.ComponentActivity { + ctor public PreviewActivity(); + } + +} + +package androidx.compose.ui.tooling.animation { + + public final class ToolingState implements androidx.compose.runtime.State { + ctor public ToolingState(T default); + method public T getValue(); + method public void setValue(T); + property public T value; + } + +} + diff --git a/compose/ui/ui-unit/api/1.7.0-beta07.txt b/compose/ui/ui-unit/api/1.7.0-beta07.txt new file mode 100644 index 0000000000000..75c7212d1c184 --- /dev/null +++ b/compose/ui/ui-unit/api/1.7.0-beta07.txt @@ -0,0 +1,422 @@ +// Signature format: 4.0 +package androidx.compose.ui.unit { + + public final class AndroidDensity_androidKt { + method public static androidx.compose.ui.unit.Density Density(android.content.Context context); + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class Constraints { + ctor public Constraints(@kotlin.PublishedApi long value); + method public long copy(optional int minWidth, optional int maxWidth, optional int minHeight, optional int maxHeight); + method public boolean getHasBoundedHeight(); + method public boolean getHasBoundedWidth(); + method public boolean getHasFixedHeight(); + method public boolean getHasFixedWidth(); + method public int getMaxHeight(); + method public int getMaxWidth(); + method public int getMinHeight(); + method public int getMinWidth(); + method public boolean isZero(); + property public final boolean hasBoundedHeight; + property public final boolean hasBoundedWidth; + property @androidx.compose.runtime.Stable public final boolean hasFixedHeight; + property @androidx.compose.runtime.Stable public final boolean hasFixedWidth; + property @androidx.compose.runtime.Stable public final boolean isZero; + property public final int maxHeight; + property public final int maxWidth; + property public final int minHeight; + property public final int minWidth; + field public static final androidx.compose.ui.unit.Constraints.Companion Companion; + field public static final int Infinity = 2147483647; // 0x7fffffff + } + + public static final class Constraints.Companion { + method @androidx.compose.runtime.Stable public long fitPrioritizingHeight(int minWidth, int maxWidth, int minHeight, int maxHeight); + method @androidx.compose.runtime.Stable public long fitPrioritizingWidth(int minWidth, int maxWidth, int minHeight, int maxHeight); + method @androidx.compose.runtime.Stable public long fixed(int width, int height); + method @androidx.compose.runtime.Stable public long fixedHeight(int height); + method @androidx.compose.runtime.Stable public long fixedWidth(int width); + method @Deprecated @SuppressCompatibility @androidx.compose.runtime.Stable @androidx.compose.ui.ExperimentalComposeUiApi public long restrictConstraints(int minWidth, int maxWidth, int minHeight, int maxHeight, optional boolean prioritizeWidth); + } + + public final class ConstraintsKt { + method @androidx.compose.runtime.Stable public static long Constraints(optional int minWidth, optional int maxWidth, optional int minHeight, optional int maxHeight); + method public static long constrain(long, long otherConstraints); + method @androidx.compose.runtime.Stable public static long constrain(long, long size); + method @androidx.compose.runtime.Stable public static int constrainHeight(long, int height); + method @androidx.compose.runtime.Stable public static int constrainWidth(long, int width); + method @androidx.compose.runtime.Stable public static boolean isSatisfiedBy(long, long size); + method @androidx.compose.runtime.Stable public static long offset(long, optional int horizontal, optional int vertical); + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmDefaultWithCompatibility public interface Density extends androidx.compose.ui.unit.FontScaling { + method public float getDensity(); + method @androidx.compose.runtime.Stable public default int roundToPx(float); + method @androidx.compose.runtime.Stable public default int roundToPx(long); + method @androidx.compose.runtime.Stable public default float toDp(float); + method @androidx.compose.runtime.Stable public default float toDp(int); + method @androidx.compose.runtime.Stable public default long toDpSize(long); + method @androidx.compose.runtime.Stable public default float toPx(float); + method @androidx.compose.runtime.Stable public default float toPx(long); + method @androidx.compose.runtime.Stable public default androidx.compose.ui.geometry.Rect toRect(androidx.compose.ui.unit.DpRect); + method @androidx.compose.runtime.Stable public default long toSize(long); + method @androidx.compose.runtime.Stable public default long toSp(int); + property public abstract float density; + } + + public final class DensityKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.unit.Density Density(float density, optional float fontScale); + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class Dp implements java.lang.Comparable { + ctor public Dp(float value); + method @androidx.compose.runtime.Stable public operator int compareTo(float other); + method @androidx.compose.runtime.Stable public inline operator float div(float other); + method @androidx.compose.runtime.Stable public inline operator float div(float other); + method @androidx.compose.runtime.Stable public inline operator float div(int other); + method public float getValue(); + method @androidx.compose.runtime.Stable public inline operator float minus(float other); + method @androidx.compose.runtime.Stable public inline operator float plus(float other); + method @androidx.compose.runtime.Stable public inline operator float times(float other); + method @androidx.compose.runtime.Stable public inline operator float times(int other); + method @androidx.compose.runtime.Stable public inline operator float unaryMinus(); + property public final float value; + field public static final androidx.compose.ui.unit.Dp.Companion Companion; + } + + public static final class Dp.Companion { + method public float getHairline(); + method public float getInfinity(); + method public float getUnspecified(); + property public final float Hairline; + property public final float Infinity; + property public final float Unspecified; + } + + public final class DpKt { + method @androidx.compose.runtime.Stable public static long DpOffset(float x, float y); + method @androidx.compose.runtime.Stable public static long DpSize(float width, float height); + method @androidx.compose.runtime.Stable public static inline float coerceAtLeast(float, float minimumValue); + method @androidx.compose.runtime.Stable public static inline float coerceAtMost(float, float maximumValue); + method @androidx.compose.runtime.Stable public static inline float coerceIn(float, float minimumValue, float maximumValue); + method public static long getCenter(long); + method public static inline float getDp(double); + method public static inline float getDp(float); + method public static inline float getDp(int); + method public static inline float getHeight(androidx.compose.ui.unit.DpRect); + method public static inline long getSize(androidx.compose.ui.unit.DpRect); + method public static inline float getWidth(androidx.compose.ui.unit.DpRect); + method public static inline boolean isFinite(float); + method public static inline boolean isSpecified(float); + method public static inline boolean isSpecified(long); + method public static inline boolean isSpecified(long); + method public static inline boolean isUnspecified(float); + method public static inline boolean isUnspecified(long); + method public static inline boolean isUnspecified(long); + method @androidx.compose.runtime.Stable public static float lerp(float start, float stop, float fraction); + method @androidx.compose.runtime.Stable public static long lerp(long start, long stop, float fraction); + method @androidx.compose.runtime.Stable public static long lerp(long start, long stop, float fraction); + method @androidx.compose.runtime.Stable public static inline float max(float a, float b); + method @androidx.compose.runtime.Stable public static inline float min(float a, float b); + method public static inline float takeOrElse(float, kotlin.jvm.functions.Function0 block); + method public static inline long takeOrElse(long, kotlin.jvm.functions.Function0 block); + method public static inline long takeOrElse(long, kotlin.jvm.functions.Function0 block); + method @androidx.compose.runtime.Stable public static inline operator float times(double, float other); + method @androidx.compose.runtime.Stable public static inline operator float times(float, float other); + method @androidx.compose.runtime.Stable public static inline operator long times(float, long size); + method @androidx.compose.runtime.Stable public static inline operator float times(int, float other); + method @androidx.compose.runtime.Stable public static inline operator long times(int, long size); + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class DpOffset { + method public long copy(optional float x, optional float y); + method public float getX(); + method public float getY(); + method @androidx.compose.runtime.Stable public operator long minus(long other); + method @androidx.compose.runtime.Stable public operator long plus(long other); + property @androidx.compose.runtime.Stable public final float x; + property @androidx.compose.runtime.Stable public final float y; + field public static final androidx.compose.ui.unit.DpOffset.Companion Companion; + } + + public static final class DpOffset.Companion { + method public long getUnspecified(); + method public long getZero(); + property public final long Unspecified; + property public final long Zero; + } + + @androidx.compose.runtime.Immutable public final class DpRect { + ctor public DpRect(@androidx.compose.runtime.Stable float left, @androidx.compose.runtime.Stable float top, @androidx.compose.runtime.Stable float right, @androidx.compose.runtime.Stable float bottom); + ctor public DpRect(long origin, long size); + method public float component1-D9Ej5fM(); + method public float component2-D9Ej5fM(); + method public float component3-D9Ej5fM(); + method public float component4-D9Ej5fM(); + method public androidx.compose.ui.unit.DpRect copy-a9UjIt4(float left, float top, float right, float bottom); + method public float getBottom(); + method public float getLeft(); + method public float getRight(); + method public float getTop(); + property public final float bottom; + property public final float left; + property public final float right; + property public final float top; + field public static final androidx.compose.ui.unit.DpRect.Companion Companion; + } + + public static final class DpRect.Companion { + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class DpSize { + method @androidx.compose.runtime.Stable public inline operator float component1(); + method @androidx.compose.runtime.Stable public inline operator float component2(); + method public long copy(optional float width, optional float height); + method @androidx.compose.runtime.Stable public operator long div(float other); + method @androidx.compose.runtime.Stable public operator long div(int other); + method public float getHeight(); + method public float getWidth(); + method @androidx.compose.runtime.Stable public operator long minus(long other); + method @androidx.compose.runtime.Stable public operator long plus(long other); + method @androidx.compose.runtime.Stable public operator long times(float other); + method @androidx.compose.runtime.Stable public operator long times(int other); + property @androidx.compose.runtime.Stable public final float height; + property @androidx.compose.runtime.Stable public final float width; + field public static final androidx.compose.ui.unit.DpSize.Companion Companion; + } + + public static final class DpSize.Companion { + method public long getUnspecified(); + method public long getZero(); + property public final long Unspecified; + property public final long Zero; + } + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This API is experimental and is likely to change in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalUnitApi { + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmDefaultWithCompatibility public interface FontScaling { + method public float getFontScale(); + method @androidx.compose.runtime.Stable public default float toDp(long); + method @androidx.compose.runtime.Stable public default long toSp(float); + property public abstract float fontScale; + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class IntOffset { + method @androidx.compose.runtime.Stable public inline operator int component1(); + method @androidx.compose.runtime.Stable public inline operator int component2(); + method public long copy(optional int x, optional int y); + method @androidx.compose.runtime.Stable public operator long div(float operand); + method public int getX(); + method public int getY(); + method @androidx.compose.runtime.Stable public operator long minus(long other); + method @androidx.compose.runtime.Stable public operator long plus(long other); + method @androidx.compose.runtime.Stable public operator long rem(int operand); + method @androidx.compose.runtime.Stable public operator long times(float operand); + method @androidx.compose.runtime.Stable public operator long unaryMinus(); + property @androidx.compose.runtime.Stable public final int x; + property @androidx.compose.runtime.Stable public final int y; + field public static final androidx.compose.ui.unit.IntOffset.Companion Companion; + } + + public static final class IntOffset.Companion { + method public long getZero(); + property public final long Zero; + } + + public final class IntOffsetKt { + method @androidx.compose.runtime.Stable public static long IntOffset(int x, int y); + method @androidx.compose.runtime.Stable public static long lerp(long start, long stop, float fraction); + method @androidx.compose.runtime.Stable public static operator long minus(long, long offset); + method @androidx.compose.runtime.Stable public static operator long minus(long, long offset); + method @androidx.compose.runtime.Stable public static operator long plus(long, long offset); + method @androidx.compose.runtime.Stable public static operator long plus(long, long offset); + method @androidx.compose.runtime.Stable public static long round(long); + method @androidx.compose.runtime.Stable public static inline long toOffset(long); + } + + @androidx.compose.runtime.Immutable public final class IntRect { + ctor public IntRect(@androidx.compose.runtime.Stable int left, @androidx.compose.runtime.Stable int top, @androidx.compose.runtime.Stable int right, @androidx.compose.runtime.Stable int bottom); + method public int component1(); + method public int component2(); + method public int component3(); + method public int component4(); + method public boolean contains(long offset); + method public androidx.compose.ui.unit.IntRect copy(int left, int top, int right, int bottom); + method @androidx.compose.runtime.Stable public androidx.compose.ui.unit.IntRect deflate(int delta); + method public int getBottom(); + method public long getBottomCenter(); + method public long getBottomLeft(); + method public long getBottomRight(); + method public long getCenter(); + method public long getCenterLeft(); + method public long getCenterRight(); + method public int getHeight(); + method public int getLeft(); + method public int getMaxDimension(); + method public int getMinDimension(); + method public int getRight(); + method public long getSize(); + method public int getTop(); + method public long getTopCenter(); + method public long getTopLeft(); + method public long getTopRight(); + method public int getWidth(); + method @androidx.compose.runtime.Stable public androidx.compose.ui.unit.IntRect inflate(int delta); + method @androidx.compose.runtime.Stable public androidx.compose.ui.unit.IntRect intersect(androidx.compose.ui.unit.IntRect other); + method public boolean isEmpty(); + method public boolean overlaps(androidx.compose.ui.unit.IntRect other); + method @androidx.compose.runtime.Stable public androidx.compose.ui.unit.IntRect translate(int translateX, int translateY); + method @androidx.compose.runtime.Stable public androidx.compose.ui.unit.IntRect translate(long offset); + property public final int bottom; + property public final long bottomCenter; + property public final long bottomLeft; + property public final long bottomRight; + property public final long center; + property public final long centerLeft; + property public final long centerRight; + property @androidx.compose.runtime.Stable public final int height; + property @androidx.compose.runtime.Stable public final boolean isEmpty; + property public final int left; + property public final int maxDimension; + property public final int minDimension; + property public final int right; + property @androidx.compose.runtime.Stable public final long size; + property public final int top; + property public final long topCenter; + property public final long topLeft; + property public final long topRight; + property @androidx.compose.runtime.Stable public final int width; + field public static final androidx.compose.ui.unit.IntRect.Companion Companion; + } + + public static final class IntRect.Companion { + method public androidx.compose.ui.unit.IntRect getZero(); + property public final androidx.compose.ui.unit.IntRect Zero; + } + + public final class IntRectKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.unit.IntRect IntRect(long center, int radius); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.unit.IntRect IntRect(long offset, long size); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.unit.IntRect IntRect(long topLeft, long bottomRight); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.unit.IntRect lerp(androidx.compose.ui.unit.IntRect start, androidx.compose.ui.unit.IntRect stop, float fraction); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.unit.IntRect roundToIntRect(androidx.compose.ui.geometry.Rect); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.geometry.Rect toRect(androidx.compose.ui.unit.IntRect); + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class IntSize { + method @androidx.compose.runtime.Stable public inline operator int component1(); + method @androidx.compose.runtime.Stable public inline operator int component2(); + method @androidx.compose.runtime.Stable public operator long div(int other); + method public int getHeight(); + method public int getWidth(); + method @androidx.compose.runtime.Stable public operator long times(int other); + property @androidx.compose.runtime.Stable public final int height; + property @androidx.compose.runtime.Stable public final int width; + field public static final androidx.compose.ui.unit.IntSize.Companion Companion; + } + + public static final class IntSize.Companion { + method public long getZero(); + property public final long Zero; + } + + public final class IntSizeKt { + method @androidx.compose.runtime.Stable public static long IntSize(int width, int height); + method public static long getCenter(long); + method @androidx.compose.runtime.Stable public static long roundToIntSize(long); + method @androidx.compose.runtime.Stable public static inline operator long times(int, long size); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.unit.IntRect toIntRect(long); + method @androidx.compose.runtime.Stable public static long toIntSize(long); + method @androidx.compose.runtime.Stable public static long toSize(long); + } + + public enum LayoutDirection { + enum_constant public static final androidx.compose.ui.unit.LayoutDirection Ltr; + enum_constant public static final androidx.compose.ui.unit.LayoutDirection Rtl; + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class TextUnit { + method public inline operator int compareTo(long other); + method public inline operator long div(double other); + method public inline operator long div(float other); + method public inline operator long div(int other); + method public long getType(); + method public float getValue(); + method public boolean isEm(); + method public boolean isSp(); + method public inline operator long times(double other); + method public inline operator long times(float other); + method public inline operator long times(int other); + method public inline operator long unaryMinus(); + property public final boolean isEm; + property public final boolean isSp; + property public final long type; + property public final float value; + field public static final androidx.compose.ui.unit.TextUnit.Companion Companion; + } + + public static final class TextUnit.Companion { + method public long getUnspecified(); + property public final long Unspecified; + } + + public final class TextUnitKt { + method public static long TextUnit(float value, long type); + method public static long getEm(double); + method public static long getEm(float); + method public static long getEm(int); + method public static long getSp(double); + method public static long getSp(float); + method public static long getSp(int); + method public static inline boolean isSpecified(long); + method public static boolean isUnspecified(long); + method @androidx.compose.runtime.Stable public static long lerp(long start, long stop, float fraction); + method public static inline long takeOrElse(long, kotlin.jvm.functions.Function0 block); + method @androidx.compose.runtime.Stable public static inline operator long times(double, long other); + method @androidx.compose.runtime.Stable public static inline operator long times(float, long other); + method @androidx.compose.runtime.Stable public static inline operator long times(int, long other); + } + + @kotlin.jvm.JvmInline public final value class TextUnitType { + ctor public TextUnitType(long type); + field public static final androidx.compose.ui.unit.TextUnitType.Companion Companion; + } + + public static final class TextUnitType.Companion { + method public long getEm(); + method public long getSp(); + method public long getUnspecified(); + property public final long Em; + property public final long Sp; + property public final long Unspecified; + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class Velocity { + method @androidx.compose.runtime.Stable public inline operator float component1(); + method @androidx.compose.runtime.Stable public inline operator float component2(); + method public long copy(optional float x, optional float y); + method @androidx.compose.runtime.Stable public operator long div(float operand); + method public float getX(); + method public float getY(); + method @androidx.compose.runtime.Stable public operator long minus(long other); + method @androidx.compose.runtime.Stable public operator long plus(long other); + method @androidx.compose.runtime.Stable public operator long rem(float operand); + method @androidx.compose.runtime.Stable public operator long times(float operand); + method @androidx.compose.runtime.Stable public operator long unaryMinus(); + property @androidx.compose.runtime.Stable public final float x; + property @androidx.compose.runtime.Stable public final float y; + field public static final androidx.compose.ui.unit.Velocity.Companion Companion; + } + + public static final class Velocity.Companion { + method public long getZero(); + property public final long Zero; + } + + public final class VelocityKt { + method @androidx.compose.runtime.Stable public static long Velocity(float x, float y); + } + +} + diff --git a/compose/ui/ui-unit/api/res-1.7.0-beta07.txt b/compose/ui/ui-unit/api/res-1.7.0-beta07.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/compose/ui/ui-unit/api/restricted_1.7.0-beta07.txt b/compose/ui/ui-unit/api/restricted_1.7.0-beta07.txt new file mode 100644 index 0000000000000..8963eec6d37f3 --- /dev/null +++ b/compose/ui/ui-unit/api/restricted_1.7.0-beta07.txt @@ -0,0 +1,427 @@ +// Signature format: 4.0 +package androidx.compose.ui.unit { + + public final class AndroidDensity_androidKt { + method public static androidx.compose.ui.unit.Density Density(android.content.Context context); + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class Constraints { + ctor public Constraints(@kotlin.PublishedApi long value); + method public long copy(optional int minWidth, optional int maxWidth, optional int minHeight, optional int maxHeight); + method public boolean getHasBoundedHeight(); + method public boolean getHasBoundedWidth(); + method public boolean getHasFixedHeight(); + method public boolean getHasFixedWidth(); + method public int getMaxHeight(); + method public int getMaxWidth(); + method public int getMinHeight(); + method public int getMinWidth(); + method public boolean isZero(); + property public final boolean hasBoundedHeight; + property public final boolean hasBoundedWidth; + property @androidx.compose.runtime.Stable public final boolean hasFixedHeight; + property @androidx.compose.runtime.Stable public final boolean hasFixedWidth; + property @androidx.compose.runtime.Stable public final boolean isZero; + property public final int maxHeight; + property public final int maxWidth; + property public final int minHeight; + property public final int minWidth; + field public static final androidx.compose.ui.unit.Constraints.Companion Companion; + field public static final int Infinity = 2147483647; // 0x7fffffff + } + + public static final class Constraints.Companion { + method @androidx.compose.runtime.Stable public long fitPrioritizingHeight(int minWidth, int maxWidth, int minHeight, int maxHeight); + method @androidx.compose.runtime.Stable public long fitPrioritizingWidth(int minWidth, int maxWidth, int minHeight, int maxHeight); + method @androidx.compose.runtime.Stable public long fixed(int width, int height); + method @androidx.compose.runtime.Stable public long fixedHeight(int height); + method @androidx.compose.runtime.Stable public long fixedWidth(int width); + method @Deprecated @SuppressCompatibility @androidx.compose.runtime.Stable @androidx.compose.ui.ExperimentalComposeUiApi public long restrictConstraints(int minWidth, int maxWidth, int minHeight, int maxHeight, optional boolean prioritizeWidth); + } + + public final class ConstraintsKt { + method @androidx.compose.runtime.Stable public static long Constraints(optional int minWidth, optional int maxWidth, optional int minHeight, optional int maxHeight); + method public static long constrain(long, long otherConstraints); + method @androidx.compose.runtime.Stable public static long constrain(long, long size); + method @androidx.compose.runtime.Stable public static int constrainHeight(long, int height); + method @androidx.compose.runtime.Stable public static int constrainWidth(long, int width); + method @androidx.compose.runtime.Stable public static boolean isSatisfiedBy(long, long size); + method @androidx.compose.runtime.Stable public static long offset(long, optional int horizontal, optional int vertical); + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmDefaultWithCompatibility public interface Density extends androidx.compose.ui.unit.FontScaling { + method public float getDensity(); + method @androidx.compose.runtime.Stable public default int roundToPx(float); + method @androidx.compose.runtime.Stable public default int roundToPx(long); + method @androidx.compose.runtime.Stable public default float toDp(float); + method @androidx.compose.runtime.Stable public default float toDp(int); + method @androidx.compose.runtime.Stable public default long toDpSize(long); + method @androidx.compose.runtime.Stable public default float toPx(float); + method @androidx.compose.runtime.Stable public default float toPx(long); + method @androidx.compose.runtime.Stable public default androidx.compose.ui.geometry.Rect toRect(androidx.compose.ui.unit.DpRect); + method @androidx.compose.runtime.Stable public default long toSize(long); + method @androidx.compose.runtime.Stable public default long toSp(int); + property public abstract float density; + } + + public final class DensityKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.unit.Density Density(float density, optional float fontScale); + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class Dp implements java.lang.Comparable { + ctor public Dp(float value); + method @androidx.compose.runtime.Stable public operator int compareTo(float other); + method @androidx.compose.runtime.Stable public inline operator float div(float other); + method @androidx.compose.runtime.Stable public inline operator float div(float other); + method @androidx.compose.runtime.Stable public inline operator float div(int other); + method public float getValue(); + method @androidx.compose.runtime.Stable public inline operator float minus(float other); + method @androidx.compose.runtime.Stable public inline operator float plus(float other); + method @androidx.compose.runtime.Stable public inline operator float times(float other); + method @androidx.compose.runtime.Stable public inline operator float times(int other); + method @androidx.compose.runtime.Stable public inline operator float unaryMinus(); + property public final float value; + field public static final androidx.compose.ui.unit.Dp.Companion Companion; + } + + public static final class Dp.Companion { + method public float getHairline(); + method public float getInfinity(); + method public float getUnspecified(); + property public final float Hairline; + property public final float Infinity; + property public final float Unspecified; + } + + public final class DpKt { + method @androidx.compose.runtime.Stable public static long DpOffset(float x, float y); + method @androidx.compose.runtime.Stable public static long DpSize(float width, float height); + method @androidx.compose.runtime.Stable public static inline float coerceAtLeast(float, float minimumValue); + method @androidx.compose.runtime.Stable public static inline float coerceAtMost(float, float maximumValue); + method @androidx.compose.runtime.Stable public static inline float coerceIn(float, float minimumValue, float maximumValue); + method public static long getCenter(long); + method public static inline float getDp(double); + method public static inline float getDp(float); + method public static inline float getDp(int); + method public static inline float getHeight(androidx.compose.ui.unit.DpRect); + method public static inline long getSize(androidx.compose.ui.unit.DpRect); + method public static inline float getWidth(androidx.compose.ui.unit.DpRect); + method public static inline boolean isFinite(float); + method public static inline boolean isSpecified(float); + method public static inline boolean isSpecified(long); + method public static inline boolean isSpecified(long); + method public static inline boolean isUnspecified(float); + method public static inline boolean isUnspecified(long); + method public static inline boolean isUnspecified(long); + method @androidx.compose.runtime.Stable public static float lerp(float start, float stop, float fraction); + method @androidx.compose.runtime.Stable public static long lerp(long start, long stop, float fraction); + method @androidx.compose.runtime.Stable public static long lerp(long start, long stop, float fraction); + method @androidx.compose.runtime.Stable public static inline float max(float a, float b); + method @androidx.compose.runtime.Stable public static inline float min(float a, float b); + method public static inline float takeOrElse(float, kotlin.jvm.functions.Function0 block); + method public static inline long takeOrElse(long, kotlin.jvm.functions.Function0 block); + method public static inline long takeOrElse(long, kotlin.jvm.functions.Function0 block); + method @androidx.compose.runtime.Stable public static inline operator float times(double, float other); + method @androidx.compose.runtime.Stable public static inline operator float times(float, float other); + method @androidx.compose.runtime.Stable public static inline operator long times(float, long size); + method @androidx.compose.runtime.Stable public static inline operator float times(int, float other); + method @androidx.compose.runtime.Stable public static inline operator long times(int, long size); + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class DpOffset { + method public long copy(optional float x, optional float y); + method public float getX(); + method public float getY(); + method @androidx.compose.runtime.Stable public operator long minus(long other); + method @androidx.compose.runtime.Stable public operator long plus(long other); + property @androidx.compose.runtime.Stable public final float x; + property @androidx.compose.runtime.Stable public final float y; + field public static final androidx.compose.ui.unit.DpOffset.Companion Companion; + } + + public static final class DpOffset.Companion { + method public long getUnspecified(); + method public long getZero(); + property public final long Unspecified; + property public final long Zero; + } + + @androidx.compose.runtime.Immutable public final class DpRect { + ctor public DpRect(@androidx.compose.runtime.Stable float left, @androidx.compose.runtime.Stable float top, @androidx.compose.runtime.Stable float right, @androidx.compose.runtime.Stable float bottom); + ctor public DpRect(long origin, long size); + method public float component1-D9Ej5fM(); + method public float component2-D9Ej5fM(); + method public float component3-D9Ej5fM(); + method public float component4-D9Ej5fM(); + method public androidx.compose.ui.unit.DpRect copy-a9UjIt4(float left, float top, float right, float bottom); + method public float getBottom(); + method public float getLeft(); + method public float getRight(); + method public float getTop(); + property public final float bottom; + property public final float left; + property public final float right; + property public final float top; + field public static final androidx.compose.ui.unit.DpRect.Companion Companion; + } + + public static final class DpRect.Companion { + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class DpSize { + method @androidx.compose.runtime.Stable public inline operator float component1(); + method @androidx.compose.runtime.Stable public inline operator float component2(); + method public long copy(optional float width, optional float height); + method @androidx.compose.runtime.Stable public operator long div(float other); + method @androidx.compose.runtime.Stable public operator long div(int other); + method public float getHeight(); + method public float getWidth(); + method @androidx.compose.runtime.Stable public operator long minus(long other); + method @androidx.compose.runtime.Stable public operator long plus(long other); + method @androidx.compose.runtime.Stable public operator long times(float other); + method @androidx.compose.runtime.Stable public operator long times(int other); + property @androidx.compose.runtime.Stable public final float height; + property @androidx.compose.runtime.Stable public final float width; + field public static final androidx.compose.ui.unit.DpSize.Companion Companion; + } + + public static final class DpSize.Companion { + method public long getUnspecified(); + method public long getZero(); + property public final long Unspecified; + property public final long Zero; + } + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This API is experimental and is likely to change in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalUnitApi { + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmDefaultWithCompatibility public interface FontScaling { + method public float getFontScale(); + method @androidx.compose.runtime.Stable public default float toDp(long); + method @androidx.compose.runtime.Stable public default long toSp(float); + property public abstract float fontScale; + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class IntOffset { + method @androidx.compose.runtime.Stable public inline operator int component1(); + method @androidx.compose.runtime.Stable public inline operator int component2(); + method public long copy(optional int x, optional int y); + method @androidx.compose.runtime.Stable public operator long div(float operand); + method public int getX(); + method public int getY(); + method @androidx.compose.runtime.Stable public operator long minus(long other); + method @androidx.compose.runtime.Stable public operator long plus(long other); + method @androidx.compose.runtime.Stable public operator long rem(int operand); + method @androidx.compose.runtime.Stable public operator long times(float operand); + method @androidx.compose.runtime.Stable public operator long unaryMinus(); + property @androidx.compose.runtime.Stable public final int x; + property @androidx.compose.runtime.Stable public final int y; + field public static final androidx.compose.ui.unit.IntOffset.Companion Companion; + } + + public static final class IntOffset.Companion { + method public long getZero(); + property public final long Zero; + } + + public final class IntOffsetKt { + method @androidx.compose.runtime.Stable public static long IntOffset(int x, int y); + method @androidx.compose.runtime.Stable public static long lerp(long start, long stop, float fraction); + method @androidx.compose.runtime.Stable public static operator long minus(long, long offset); + method @androidx.compose.runtime.Stable public static operator long minus(long, long offset); + method @androidx.compose.runtime.Stable public static operator long plus(long, long offset); + method @androidx.compose.runtime.Stable public static operator long plus(long, long offset); + method @androidx.compose.runtime.Stable public static long round(long); + method @androidx.compose.runtime.Stable public static inline long toOffset(long); + } + + @androidx.compose.runtime.Immutable public final class IntRect { + ctor public IntRect(@androidx.compose.runtime.Stable int left, @androidx.compose.runtime.Stable int top, @androidx.compose.runtime.Stable int right, @androidx.compose.runtime.Stable int bottom); + method public int component1(); + method public int component2(); + method public int component3(); + method public int component4(); + method public boolean contains(long offset); + method public androidx.compose.ui.unit.IntRect copy(int left, int top, int right, int bottom); + method @androidx.compose.runtime.Stable public androidx.compose.ui.unit.IntRect deflate(int delta); + method public int getBottom(); + method public long getBottomCenter(); + method public long getBottomLeft(); + method public long getBottomRight(); + method public long getCenter(); + method public long getCenterLeft(); + method public long getCenterRight(); + method public int getHeight(); + method public int getLeft(); + method public int getMaxDimension(); + method public int getMinDimension(); + method public int getRight(); + method public long getSize(); + method public int getTop(); + method public long getTopCenter(); + method public long getTopLeft(); + method public long getTopRight(); + method public int getWidth(); + method @androidx.compose.runtime.Stable public androidx.compose.ui.unit.IntRect inflate(int delta); + method @androidx.compose.runtime.Stable public androidx.compose.ui.unit.IntRect intersect(androidx.compose.ui.unit.IntRect other); + method public boolean isEmpty(); + method public boolean overlaps(androidx.compose.ui.unit.IntRect other); + method @androidx.compose.runtime.Stable public androidx.compose.ui.unit.IntRect translate(int translateX, int translateY); + method @androidx.compose.runtime.Stable public androidx.compose.ui.unit.IntRect translate(long offset); + property public final int bottom; + property public final long bottomCenter; + property public final long bottomLeft; + property public final long bottomRight; + property public final long center; + property public final long centerLeft; + property public final long centerRight; + property @androidx.compose.runtime.Stable public final int height; + property @androidx.compose.runtime.Stable public final boolean isEmpty; + property public final int left; + property public final int maxDimension; + property public final int minDimension; + property public final int right; + property @androidx.compose.runtime.Stable public final long size; + property public final int top; + property public final long topCenter; + property public final long topLeft; + property public final long topRight; + property @androidx.compose.runtime.Stable public final int width; + field public static final androidx.compose.ui.unit.IntRect.Companion Companion; + } + + public static final class IntRect.Companion { + method public androidx.compose.ui.unit.IntRect getZero(); + property public final androidx.compose.ui.unit.IntRect Zero; + } + + public final class IntRectKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.unit.IntRect IntRect(long center, int radius); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.unit.IntRect IntRect(long offset, long size); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.unit.IntRect IntRect(long topLeft, long bottomRight); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.unit.IntRect lerp(androidx.compose.ui.unit.IntRect start, androidx.compose.ui.unit.IntRect stop, float fraction); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.unit.IntRect roundToIntRect(androidx.compose.ui.geometry.Rect); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.geometry.Rect toRect(androidx.compose.ui.unit.IntRect); + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class IntSize { + method @androidx.compose.runtime.Stable public inline operator int component1(); + method @androidx.compose.runtime.Stable public inline operator int component2(); + method @androidx.compose.runtime.Stable public operator long div(int other); + method public int getHeight(); + method public int getWidth(); + method @androidx.compose.runtime.Stable public operator long times(int other); + property @androidx.compose.runtime.Stable public final int height; + property @androidx.compose.runtime.Stable public final int width; + field public static final androidx.compose.ui.unit.IntSize.Companion Companion; + } + + public static final class IntSize.Companion { + method public long getZero(); + property public final long Zero; + } + + public final class IntSizeKt { + method @androidx.compose.runtime.Stable public static long IntSize(int width, int height); + method public static long getCenter(long); + method @androidx.compose.runtime.Stable public static long roundToIntSize(long); + method @androidx.compose.runtime.Stable public static inline operator long times(int, long size); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.unit.IntRect toIntRect(long); + method @androidx.compose.runtime.Stable public static long toIntSize(long); + method @androidx.compose.runtime.Stable public static long toSize(long); + } + + public enum LayoutDirection { + enum_constant public static final androidx.compose.ui.unit.LayoutDirection Ltr; + enum_constant public static final androidx.compose.ui.unit.LayoutDirection Rtl; + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class TextUnit { + method public inline operator int compareTo(long other); + method public inline operator long div(double other); + method public inline operator long div(float other); + method public inline operator long div(int other); + method public long getType(); + method public float getValue(); + method public boolean isEm(); + method public boolean isSp(); + method public inline operator long times(double other); + method public inline operator long times(float other); + method public inline operator long times(int other); + method public inline operator long unaryMinus(); + property public final boolean isEm; + property public final boolean isSp; + property @kotlin.PublishedApi internal final long rawType; + property public final long type; + property public final float value; + field public static final androidx.compose.ui.unit.TextUnit.Companion Companion; + } + + public static final class TextUnit.Companion { + method public long getUnspecified(); + property public final long Unspecified; + } + + public final class TextUnitKt { + method public static long TextUnit(float value, long type); + method @kotlin.PublishedApi internal static void checkArithmetic(long a); + method @kotlin.PublishedApi internal static void checkArithmetic(long a, long b); + method @kotlin.PublishedApi internal static void checkArithmetic(long a, long b, long c); + method public static long getEm(double); + method public static long getEm(float); + method public static long getEm(int); + method public static long getSp(double); + method public static long getSp(float); + method public static long getSp(int); + method public static inline boolean isSpecified(long); + method public static boolean isUnspecified(long); + method @androidx.compose.runtime.Stable public static long lerp(long start, long stop, float fraction); + method @kotlin.PublishedApi internal static long pack(long unitType, float v); + method public static inline long takeOrElse(long, kotlin.jvm.functions.Function0 block); + method @androidx.compose.runtime.Stable public static inline operator long times(double, long other); + method @androidx.compose.runtime.Stable public static inline operator long times(float, long other); + method @androidx.compose.runtime.Stable public static inline operator long times(int, long other); + } + + @kotlin.jvm.JvmInline public final value class TextUnitType { + ctor public TextUnitType(long type); + field public static final androidx.compose.ui.unit.TextUnitType.Companion Companion; + } + + public static final class TextUnitType.Companion { + method public long getEm(); + method public long getSp(); + method public long getUnspecified(); + property public final long Em; + property public final long Sp; + property public final long Unspecified; + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class Velocity { + method @androidx.compose.runtime.Stable public inline operator float component1(); + method @androidx.compose.runtime.Stable public inline operator float component2(); + method public long copy(optional float x, optional float y); + method @androidx.compose.runtime.Stable public operator long div(float operand); + method public float getX(); + method public float getY(); + method @androidx.compose.runtime.Stable public operator long minus(long other); + method @androidx.compose.runtime.Stable public operator long plus(long other); + method @androidx.compose.runtime.Stable public operator long rem(float operand); + method @androidx.compose.runtime.Stable public operator long times(float operand); + method @androidx.compose.runtime.Stable public operator long unaryMinus(); + property @androidx.compose.runtime.Stable public final float x; + property @androidx.compose.runtime.Stable public final float y; + field public static final androidx.compose.ui.unit.Velocity.Companion Companion; + } + + public static final class Velocity.Companion { + method public long getZero(); + property public final long Zero; + } + + public final class VelocityKt { + method @androidx.compose.runtime.Stable public static long Velocity(float x, float y); + } + +} + diff --git a/compose/ui/ui-util/api/1.7.0-beta07.txt b/compose/ui/ui-util/api/1.7.0-beta07.txt new file mode 100644 index 0000000000000..644ec2743a8a3 --- /dev/null +++ b/compose/ui/ui-util/api/1.7.0-beta07.txt @@ -0,0 +1,81 @@ +// Signature format: 4.0 +package androidx.compose.ui { + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This API is experimental and is likely to change in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalComposeUiApi { + } + + @SuppressCompatibility @kotlin.RequiresOptIn(message="Unstable API for use only between compose-ui modules sharing the same exact version, " + "subject to change without notice in major, minor, or patch releases.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface InternalComposeUiApi { + } + +} + +package androidx.compose.ui.util { + + public final class AndroidTrace_androidKt { + method public static inline T trace(String sectionName, kotlin.jvm.functions.Function0 block); + } + + public final class InlineClassHelperKt { + method public static inline long packFloats(float val1, float val2); + method public static inline long packInts(int val1, int val2); + method public static inline float unpackAbsFloat1(long value); + method public static inline float unpackAbsFloat2(long value); + method public static inline float unpackFloat1(long value); + method public static inline float unpackFloat2(long value); + method public static inline int unpackInt1(long value); + method public static inline int unpackInt2(long value); + } + + public final class InlineClassHelper_jvmKt { + method public static inline double doubleFromBits(long bits); + method public static inline int fastRoundToInt(double); + method public static inline int fastRoundToInt(float); + method public static inline float floatFromBits(int bits); + } + + public final class ListUtilsKt { + method public static inline boolean fastAll(java.util.List, kotlin.jvm.functions.Function1 predicate); + method public static inline boolean fastAny(java.util.List, kotlin.jvm.functions.Function1 predicate); + method public static inline java.util.List fastDistinctBy(java.util.List, kotlin.jvm.functions.Function1 selector); + method public static inline java.util.List fastFilter(java.util.List, kotlin.jvm.functions.Function1 predicate); + method public static java.util.List fastFilterNotNull(java.util.List); + method public static inline T fastFirst(java.util.List, kotlin.jvm.functions.Function1 predicate); + method public static inline T? fastFirstOrNull(java.util.List, kotlin.jvm.functions.Function1 predicate); + method public static inline java.util.List fastFlatMap(java.util.List, kotlin.jvm.functions.Function1> transform); + method public static inline R fastFold(java.util.List, R initial, kotlin.jvm.functions.Function2 operation); + method public static inline void fastForEach(java.util.List, kotlin.jvm.functions.Function1 action); + method public static inline void fastForEachIndexed(java.util.List, kotlin.jvm.functions.Function2 action); + method public static inline void fastForEachReversed(java.util.List, kotlin.jvm.functions.Function1 action); + method public static String fastJoinToString(java.util.List, optional CharSequence separator, optional CharSequence prefix, optional CharSequence postfix, optional int limit, optional CharSequence truncated, optional kotlin.jvm.functions.Function1? transform); + method public static inline T? fastLastOrNull(java.util.List, kotlin.jvm.functions.Function1 predicate); + method public static inline java.util.List fastMap(java.util.List, kotlin.jvm.functions.Function1 transform); + method public static inline java.util.List fastMapIndexed(java.util.List, kotlin.jvm.functions.Function2 transform); + method public static inline java.util.List fastMapIndexedNotNull(java.util.List, kotlin.jvm.functions.Function2 transform); + method public static inline java.util.List fastMapNotNull(java.util.List, kotlin.jvm.functions.Function1 transform); + method public static inline > C fastMapTo(java.util.List, C destination, kotlin.jvm.functions.Function1 transform); + method public static inline > T? fastMaxBy(java.util.List, kotlin.jvm.functions.Function1 selector); + method public static inline > R? fastMaxOfOrNull(java.util.List, kotlin.jvm.functions.Function1 selector); + method public static inline > T? fastMinByOrNull(java.util.List, kotlin.jvm.functions.Function1 selector); + method public static inline S fastReduce(java.util.List, kotlin.jvm.functions.Function2 operation); + method public static inline int fastSumBy(java.util.List, kotlin.jvm.functions.Function1 selector); + method public static inline java.util.List fastZip(java.util.List, java.util.List other, kotlin.jvm.functions.Function2 transform); + method public static inline java.util.List fastZipWithNext(java.util.List, kotlin.jvm.functions.Function2 transform); + } + + public final class MathHelpersKt { + method public static float fastCbrt(float x); + method public static inline double fastCoerceAtLeast(double, double minimumValue); + method public static inline float fastCoerceAtLeast(float, float minimumValue); + method public static inline double fastCoerceAtMost(double, double maximumValue); + method public static inline float fastCoerceAtMost(float, float maximumValue); + method public static inline double fastCoerceIn(double, double minimumValue, double maximumValue); + method public static inline float fastCoerceIn(float, float minimumValue, float maximumValue); + method public static inline float fastMaxOf(float a, float b, float c, float d); + method public static inline float fastMinOf(float a, float b, float c, float d); + method public static float lerp(float start, float stop, float fraction); + method public static int lerp(int start, int stop, float fraction); + method public static long lerp(long start, long stop, float fraction); + } + +} + diff --git a/compose/ui/ui-util/api/res-1.7.0-beta07.txt b/compose/ui/ui-util/api/res-1.7.0-beta07.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/compose/ui/ui-util/api/restricted_1.7.0-beta07.txt b/compose/ui/ui-util/api/restricted_1.7.0-beta07.txt new file mode 100644 index 0000000000000..644ec2743a8a3 --- /dev/null +++ b/compose/ui/ui-util/api/restricted_1.7.0-beta07.txt @@ -0,0 +1,81 @@ +// Signature format: 4.0 +package androidx.compose.ui { + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This API is experimental and is likely to change in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalComposeUiApi { + } + + @SuppressCompatibility @kotlin.RequiresOptIn(message="Unstable API for use only between compose-ui modules sharing the same exact version, " + "subject to change without notice in major, minor, or patch releases.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface InternalComposeUiApi { + } + +} + +package androidx.compose.ui.util { + + public final class AndroidTrace_androidKt { + method public static inline T trace(String sectionName, kotlin.jvm.functions.Function0 block); + } + + public final class InlineClassHelperKt { + method public static inline long packFloats(float val1, float val2); + method public static inline long packInts(int val1, int val2); + method public static inline float unpackAbsFloat1(long value); + method public static inline float unpackAbsFloat2(long value); + method public static inline float unpackFloat1(long value); + method public static inline float unpackFloat2(long value); + method public static inline int unpackInt1(long value); + method public static inline int unpackInt2(long value); + } + + public final class InlineClassHelper_jvmKt { + method public static inline double doubleFromBits(long bits); + method public static inline int fastRoundToInt(double); + method public static inline int fastRoundToInt(float); + method public static inline float floatFromBits(int bits); + } + + public final class ListUtilsKt { + method public static inline boolean fastAll(java.util.List, kotlin.jvm.functions.Function1 predicate); + method public static inline boolean fastAny(java.util.List, kotlin.jvm.functions.Function1 predicate); + method public static inline java.util.List fastDistinctBy(java.util.List, kotlin.jvm.functions.Function1 selector); + method public static inline java.util.List fastFilter(java.util.List, kotlin.jvm.functions.Function1 predicate); + method public static java.util.List fastFilterNotNull(java.util.List); + method public static inline T fastFirst(java.util.List, kotlin.jvm.functions.Function1 predicate); + method public static inline T? fastFirstOrNull(java.util.List, kotlin.jvm.functions.Function1 predicate); + method public static inline java.util.List fastFlatMap(java.util.List, kotlin.jvm.functions.Function1> transform); + method public static inline R fastFold(java.util.List, R initial, kotlin.jvm.functions.Function2 operation); + method public static inline void fastForEach(java.util.List, kotlin.jvm.functions.Function1 action); + method public static inline void fastForEachIndexed(java.util.List, kotlin.jvm.functions.Function2 action); + method public static inline void fastForEachReversed(java.util.List, kotlin.jvm.functions.Function1 action); + method public static String fastJoinToString(java.util.List, optional CharSequence separator, optional CharSequence prefix, optional CharSequence postfix, optional int limit, optional CharSequence truncated, optional kotlin.jvm.functions.Function1? transform); + method public static inline T? fastLastOrNull(java.util.List, kotlin.jvm.functions.Function1 predicate); + method public static inline java.util.List fastMap(java.util.List, kotlin.jvm.functions.Function1 transform); + method public static inline java.util.List fastMapIndexed(java.util.List, kotlin.jvm.functions.Function2 transform); + method public static inline java.util.List fastMapIndexedNotNull(java.util.List, kotlin.jvm.functions.Function2 transform); + method public static inline java.util.List fastMapNotNull(java.util.List, kotlin.jvm.functions.Function1 transform); + method public static inline > C fastMapTo(java.util.List, C destination, kotlin.jvm.functions.Function1 transform); + method public static inline > T? fastMaxBy(java.util.List, kotlin.jvm.functions.Function1 selector); + method public static inline > R? fastMaxOfOrNull(java.util.List, kotlin.jvm.functions.Function1 selector); + method public static inline > T? fastMinByOrNull(java.util.List, kotlin.jvm.functions.Function1 selector); + method public static inline S fastReduce(java.util.List, kotlin.jvm.functions.Function2 operation); + method public static inline int fastSumBy(java.util.List, kotlin.jvm.functions.Function1 selector); + method public static inline java.util.List fastZip(java.util.List, java.util.List other, kotlin.jvm.functions.Function2 transform); + method public static inline java.util.List fastZipWithNext(java.util.List, kotlin.jvm.functions.Function2 transform); + } + + public final class MathHelpersKt { + method public static float fastCbrt(float x); + method public static inline double fastCoerceAtLeast(double, double minimumValue); + method public static inline float fastCoerceAtLeast(float, float minimumValue); + method public static inline double fastCoerceAtMost(double, double maximumValue); + method public static inline float fastCoerceAtMost(float, float maximumValue); + method public static inline double fastCoerceIn(double, double minimumValue, double maximumValue); + method public static inline float fastCoerceIn(float, float minimumValue, float maximumValue); + method public static inline float fastMaxOf(float a, float b, float c, float d); + method public static inline float fastMinOf(float a, float b, float c, float d); + method public static float lerp(float start, float stop, float fraction); + method public static int lerp(int start, int stop, float fraction); + method public static long lerp(long start, long stop, float fraction); + } + +} + diff --git a/compose/ui/ui-viewbinding/api/1.7.0-beta07.txt b/compose/ui/ui-viewbinding/api/1.7.0-beta07.txt new file mode 100644 index 0000000000000..00c3178cd8e05 --- /dev/null +++ b/compose/ui/ui-viewbinding/api/1.7.0-beta07.txt @@ -0,0 +1,10 @@ +// Signature format: 4.0 +package androidx.compose.ui.viewinterop { + + public final class AndroidViewBindingKt { + method @androidx.compose.runtime.Composable public static void AndroidViewBinding(kotlin.jvm.functions.Function3 factory, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1 update); + method @androidx.compose.runtime.Composable public static void AndroidViewBinding(kotlin.jvm.functions.Function3 factory, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1? onReset, optional kotlin.jvm.functions.Function1 onRelease, optional kotlin.jvm.functions.Function1 update); + } + +} + diff --git a/compose/ui/ui-viewbinding/api/res-1.7.0-beta07.txt b/compose/ui/ui-viewbinding/api/res-1.7.0-beta07.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/compose/ui/ui-viewbinding/api/restricted_1.7.0-beta07.txt b/compose/ui/ui-viewbinding/api/restricted_1.7.0-beta07.txt new file mode 100644 index 0000000000000..00c3178cd8e05 --- /dev/null +++ b/compose/ui/ui-viewbinding/api/restricted_1.7.0-beta07.txt @@ -0,0 +1,10 @@ +// Signature format: 4.0 +package androidx.compose.ui.viewinterop { + + public final class AndroidViewBindingKt { + method @androidx.compose.runtime.Composable public static void AndroidViewBinding(kotlin.jvm.functions.Function3 factory, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1 update); + method @androidx.compose.runtime.Composable public static void AndroidViewBinding(kotlin.jvm.functions.Function3 factory, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1? onReset, optional kotlin.jvm.functions.Function1 onRelease, optional kotlin.jvm.functions.Function1 update); + } + +} + diff --git a/compose/ui/ui/api/1.7.0-beta07.txt b/compose/ui/ui/api/1.7.0-beta07.txt new file mode 100644 index 0000000000000..1bc86979d9cbf --- /dev/null +++ b/compose/ui/ui/api/1.7.0-beta07.txt @@ -0,0 +1,3736 @@ +// Signature format: 4.0 +package androidx.compose.ui { + + public final class AbsoluteAlignment { + method public androidx.compose.ui.Alignment getBottomLeft(); + method public androidx.compose.ui.Alignment getBottomRight(); + method public androidx.compose.ui.Alignment getCenterLeft(); + method public androidx.compose.ui.Alignment getCenterRight(); + method public androidx.compose.ui.Alignment.Horizontal getLeft(); + method public androidx.compose.ui.Alignment.Horizontal getRight(); + method public androidx.compose.ui.Alignment getTopLeft(); + method public androidx.compose.ui.Alignment getTopRight(); + property public final androidx.compose.ui.Alignment BottomLeft; + property public final androidx.compose.ui.Alignment BottomRight; + property public final androidx.compose.ui.Alignment CenterLeft; + property public final androidx.compose.ui.Alignment CenterRight; + property public final androidx.compose.ui.Alignment.Horizontal Left; + property public final androidx.compose.ui.Alignment.Horizontal Right; + property public final androidx.compose.ui.Alignment TopLeft; + property public final androidx.compose.ui.Alignment TopRight; + field public static final androidx.compose.ui.AbsoluteAlignment INSTANCE; + } + + @androidx.compose.runtime.Stable public fun interface Alignment { + method public long align(long size, long space, androidx.compose.ui.unit.LayoutDirection layoutDirection); + field public static final androidx.compose.ui.Alignment.Companion Companion; + } + + public static final class Alignment.Companion { + method public androidx.compose.ui.Alignment.Vertical getBottom(); + method public androidx.compose.ui.Alignment getBottomCenter(); + method public androidx.compose.ui.Alignment getBottomEnd(); + method public androidx.compose.ui.Alignment getBottomStart(); + method public androidx.compose.ui.Alignment getCenter(); + method public androidx.compose.ui.Alignment getCenterEnd(); + method public androidx.compose.ui.Alignment.Horizontal getCenterHorizontally(); + method public androidx.compose.ui.Alignment getCenterStart(); + method public androidx.compose.ui.Alignment.Vertical getCenterVertically(); + method public androidx.compose.ui.Alignment.Horizontal getEnd(); + method public androidx.compose.ui.Alignment.Horizontal getStart(); + method public androidx.compose.ui.Alignment.Vertical getTop(); + method public androidx.compose.ui.Alignment getTopCenter(); + method public androidx.compose.ui.Alignment getTopEnd(); + method public androidx.compose.ui.Alignment getTopStart(); + property public final androidx.compose.ui.Alignment.Vertical Bottom; + property public final androidx.compose.ui.Alignment BottomCenter; + property public final androidx.compose.ui.Alignment BottomEnd; + property public final androidx.compose.ui.Alignment BottomStart; + property public final androidx.compose.ui.Alignment Center; + property public final androidx.compose.ui.Alignment CenterEnd; + property public final androidx.compose.ui.Alignment.Horizontal CenterHorizontally; + property public final androidx.compose.ui.Alignment CenterStart; + property public final androidx.compose.ui.Alignment.Vertical CenterVertically; + property public final androidx.compose.ui.Alignment.Horizontal End; + property public final androidx.compose.ui.Alignment.Horizontal Start; + property public final androidx.compose.ui.Alignment.Vertical Top; + property public final androidx.compose.ui.Alignment TopCenter; + property public final androidx.compose.ui.Alignment TopEnd; + property public final androidx.compose.ui.Alignment TopStart; + } + + @androidx.compose.runtime.Stable public static fun interface Alignment.Horizontal { + method public int align(int size, int space, androidx.compose.ui.unit.LayoutDirection layoutDirection); + } + + @androidx.compose.runtime.Stable public static fun interface Alignment.Vertical { + method public int align(int size, int space); + } + + @androidx.compose.runtime.Immutable public final class BiasAbsoluteAlignment implements androidx.compose.ui.Alignment { + ctor public BiasAbsoluteAlignment(float horizontalBias, float verticalBias); + method public long align(long size, long space, androidx.compose.ui.unit.LayoutDirection layoutDirection); + method public float component1(); + method public float component2(); + method public androidx.compose.ui.BiasAbsoluteAlignment copy(float horizontalBias, float verticalBias); + method public float getHorizontalBias(); + method public float getVerticalBias(); + property public final float horizontalBias; + property public final float verticalBias; + } + + @androidx.compose.runtime.Immutable public static final class BiasAbsoluteAlignment.Horizontal implements androidx.compose.ui.Alignment.Horizontal { + ctor public BiasAbsoluteAlignment.Horizontal(float bias); + method public int align(int size, int space, androidx.compose.ui.unit.LayoutDirection layoutDirection); + method public float component1(); + method public androidx.compose.ui.BiasAbsoluteAlignment.Horizontal copy(float bias); + method public float getBias(); + property public final float bias; + } + + @androidx.compose.runtime.Immutable public final class BiasAlignment implements androidx.compose.ui.Alignment { + ctor public BiasAlignment(float horizontalBias, float verticalBias); + method public long align(long size, long space, androidx.compose.ui.unit.LayoutDirection layoutDirection); + method public float component1(); + method public float component2(); + method public androidx.compose.ui.BiasAlignment copy(float horizontalBias, float verticalBias); + method public float getHorizontalBias(); + method public float getVerticalBias(); + property public final float horizontalBias; + property public final float verticalBias; + } + + @androidx.compose.runtime.Immutable public static final class BiasAlignment.Horizontal implements androidx.compose.ui.Alignment.Horizontal { + ctor public BiasAlignment.Horizontal(float bias); + method public int align(int size, int space, androidx.compose.ui.unit.LayoutDirection layoutDirection); + method public float component1(); + method public androidx.compose.ui.BiasAlignment.Horizontal copy(float bias); + method public float getBias(); + property public final float bias; + } + + @androidx.compose.runtime.Immutable public static final class BiasAlignment.Vertical implements androidx.compose.ui.Alignment.Vertical { + ctor public BiasAlignment.Vertical(float bias); + method public int align(int size, int space); + method public float component1(); + method public androidx.compose.ui.BiasAlignment.Vertical copy(float bias); + method public float getBias(); + property public final float bias; + } + + public final class CombinedModifier implements androidx.compose.ui.Modifier { + ctor public CombinedModifier(androidx.compose.ui.Modifier outer, androidx.compose.ui.Modifier inner); + method public boolean all(kotlin.jvm.functions.Function1 predicate); + method public boolean any(kotlin.jvm.functions.Function1 predicate); + method public R foldIn(R initial, kotlin.jvm.functions.Function2 operation); + method public R foldOut(R initial, kotlin.jvm.functions.Function2 operation); + } + + public final class ComposedModifierKt { + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier composed(androidx.compose.ui.Modifier, String fullyQualifiedName, Object? key1, Object? key2, Object? key3, optional kotlin.jvm.functions.Function1 inspectorInfo, kotlin.jvm.functions.Function1 factory); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier composed(androidx.compose.ui.Modifier, String fullyQualifiedName, Object? key1, Object? key2, optional kotlin.jvm.functions.Function1 inspectorInfo, kotlin.jvm.functions.Function1 factory); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier composed(androidx.compose.ui.Modifier, String fullyQualifiedName, Object? key1, optional kotlin.jvm.functions.Function1 inspectorInfo, kotlin.jvm.functions.Function1 factory); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier composed(androidx.compose.ui.Modifier, String fullyQualifiedName, Object?[] keys, optional kotlin.jvm.functions.Function1 inspectorInfo, kotlin.jvm.functions.Function1 factory); + method public static androidx.compose.ui.Modifier composed(androidx.compose.ui.Modifier, optional kotlin.jvm.functions.Function1 inspectorInfo, kotlin.jvm.functions.Function1 factory); + method @Deprecated public static androidx.compose.ui.Modifier materialize(androidx.compose.runtime.Composer, androidx.compose.ui.Modifier modifier); + method public static androidx.compose.ui.Modifier materializeModifier(androidx.compose.runtime.Composer, androidx.compose.ui.Modifier modifier); + } + + @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface Modifier { + method public boolean all(kotlin.jvm.functions.Function1 predicate); + method public boolean any(kotlin.jvm.functions.Function1 predicate); + method public R foldIn(R initial, kotlin.jvm.functions.Function2 operation); + method public R foldOut(R initial, kotlin.jvm.functions.Function2 operation); + method public default infix androidx.compose.ui.Modifier then(androidx.compose.ui.Modifier other); + field public static final androidx.compose.ui.Modifier.Companion Companion; + } + + public static final class Modifier.Companion implements androidx.compose.ui.Modifier { + method public boolean all(kotlin.jvm.functions.Function1 predicate); + method public boolean any(kotlin.jvm.functions.Function1 predicate); + method public R foldIn(R initial, kotlin.jvm.functions.Function2 operation); + method public R foldOut(R initial, kotlin.jvm.functions.Function2 operation); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public static interface Modifier.Element extends androidx.compose.ui.Modifier { + method public default boolean all(kotlin.jvm.functions.Function1 predicate); + method public default boolean any(kotlin.jvm.functions.Function1 predicate); + method public default R foldIn(R initial, kotlin.jvm.functions.Function2 operation); + method public default R foldOut(R initial, kotlin.jvm.functions.Function2 operation); + } + + public abstract static class Modifier.Node implements androidx.compose.ui.node.DelegatableNode { + ctor public Modifier.Node(); + method public final kotlinx.coroutines.CoroutineScope getCoroutineScope(); + method public final androidx.compose.ui.Modifier.Node getNode(); + method public boolean getShouldAutoInvalidate(); + method public final boolean isAttached(); + method public void onAttach(); + method public void onDetach(); + method public void onReset(); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public final void sideEffect(kotlin.jvm.functions.Function0 effect); + property public final kotlinx.coroutines.CoroutineScope coroutineScope; + property public final boolean isAttached; + property public final androidx.compose.ui.Modifier.Node node; + property public boolean shouldAutoInvalidate; + } + + @androidx.compose.runtime.Stable public interface MotionDurationScale extends kotlin.coroutines.CoroutineContext.Element { + method public default kotlin.coroutines.CoroutineContext.Key getKey(); + method public float getScaleFactor(); + property public default kotlin.coroutines.CoroutineContext.Key key; + property public abstract float scaleFactor; + field public static final androidx.compose.ui.MotionDurationScale.Key Key; + } + + public static final class MotionDurationScale.Key implements kotlin.coroutines.CoroutineContext.Key { + } + + @androidx.compose.runtime.ComposableTargetMarker(description="UI Composable") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FILE, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER, kotlin.annotation.AnnotationTarget.TYPE, kotlin.annotation.AnnotationTarget.TYPE_PARAMETER}) public @interface UiComposable { + } + + public final class ZIndexModifierKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier zIndex(androidx.compose.ui.Modifier, float zIndex); + } + +} + +package androidx.compose.ui.autofill { + + @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public interface Autofill { + method public void cancelAutofillForNode(androidx.compose.ui.autofill.AutofillNode autofillNode); + method public void requestAutofillForNode(androidx.compose.ui.autofill.AutofillNode autofillNode); + } + + @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public final class AutofillNode { + ctor public AutofillNode(optional java.util.List autofillTypes, optional androidx.compose.ui.geometry.Rect? boundingBox, kotlin.jvm.functions.Function1? onFill); + method public java.util.List getAutofillTypes(); + method public androidx.compose.ui.geometry.Rect? getBoundingBox(); + method public int getId(); + method public kotlin.jvm.functions.Function1? getOnFill(); + method public void setBoundingBox(androidx.compose.ui.geometry.Rect?); + property public final java.util.List autofillTypes; + property public final androidx.compose.ui.geometry.Rect? boundingBox; + property public final int id; + property public final kotlin.jvm.functions.Function1? onFill; + } + + @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public final class AutofillTree { + ctor public AutofillTree(); + method public java.util.Map getChildren(); + method public kotlin.Unit? performAutofill(int id, String value); + method public operator void plusAssign(androidx.compose.ui.autofill.AutofillNode autofillNode); + property public final java.util.Map children; + } + + @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public enum AutofillType { + enum_constant public static final androidx.compose.ui.autofill.AutofillType AddressAuxiliaryDetails; + enum_constant public static final androidx.compose.ui.autofill.AutofillType AddressCountry; + enum_constant public static final androidx.compose.ui.autofill.AutofillType AddressLocality; + enum_constant public static final androidx.compose.ui.autofill.AutofillType AddressRegion; + enum_constant public static final androidx.compose.ui.autofill.AutofillType AddressStreet; + enum_constant public static final androidx.compose.ui.autofill.AutofillType BirthDateDay; + enum_constant public static final androidx.compose.ui.autofill.AutofillType BirthDateFull; + enum_constant public static final androidx.compose.ui.autofill.AutofillType BirthDateMonth; + enum_constant public static final androidx.compose.ui.autofill.AutofillType BirthDateYear; + enum_constant public static final androidx.compose.ui.autofill.AutofillType CreditCardExpirationDate; + enum_constant public static final androidx.compose.ui.autofill.AutofillType CreditCardExpirationDay; + enum_constant public static final androidx.compose.ui.autofill.AutofillType CreditCardExpirationMonth; + enum_constant public static final androidx.compose.ui.autofill.AutofillType CreditCardExpirationYear; + enum_constant public static final androidx.compose.ui.autofill.AutofillType CreditCardNumber; + enum_constant public static final androidx.compose.ui.autofill.AutofillType CreditCardSecurityCode; + enum_constant public static final androidx.compose.ui.autofill.AutofillType EmailAddress; + enum_constant public static final androidx.compose.ui.autofill.AutofillType Gender; + enum_constant public static final androidx.compose.ui.autofill.AutofillType NewPassword; + enum_constant public static final androidx.compose.ui.autofill.AutofillType NewUsername; + enum_constant public static final androidx.compose.ui.autofill.AutofillType Password; + enum_constant public static final androidx.compose.ui.autofill.AutofillType PersonFirstName; + enum_constant public static final androidx.compose.ui.autofill.AutofillType PersonFullName; + enum_constant public static final androidx.compose.ui.autofill.AutofillType PersonLastName; + enum_constant public static final androidx.compose.ui.autofill.AutofillType PersonMiddleInitial; + enum_constant public static final androidx.compose.ui.autofill.AutofillType PersonMiddleName; + enum_constant public static final androidx.compose.ui.autofill.AutofillType PersonNamePrefix; + enum_constant public static final androidx.compose.ui.autofill.AutofillType PersonNameSuffix; + enum_constant public static final androidx.compose.ui.autofill.AutofillType PhoneCountryCode; + enum_constant public static final androidx.compose.ui.autofill.AutofillType PhoneNumber; + enum_constant public static final androidx.compose.ui.autofill.AutofillType PhoneNumberDevice; + enum_constant public static final androidx.compose.ui.autofill.AutofillType PhoneNumberNational; + enum_constant public static final androidx.compose.ui.autofill.AutofillType PostalAddress; + enum_constant public static final androidx.compose.ui.autofill.AutofillType PostalCode; + enum_constant public static final androidx.compose.ui.autofill.AutofillType PostalCodeExtended; + enum_constant public static final androidx.compose.ui.autofill.AutofillType SmsOtpCode; + enum_constant public static final androidx.compose.ui.autofill.AutofillType Username; + } + +} + +package androidx.compose.ui.contentcapture { + + @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public sealed interface ContentCaptureManager { + field public static final androidx.compose.ui.contentcapture.ContentCaptureManager.Companion Companion; + } + + public static final class ContentCaptureManager.Companion { + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public boolean isEnabled(); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public void setEnabled(boolean); + property @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public final boolean isEnabled; + } + +} + +package androidx.compose.ui.draganddrop { + + public final class DragAndDropEvent { + ctor public DragAndDropEvent(android.view.DragEvent dragEvent); + } + + public interface DragAndDropModifierNode extends androidx.compose.ui.node.DelegatableNode androidx.compose.ui.draganddrop.DragAndDropTarget { + method public boolean acceptDragAndDropTransfer(androidx.compose.ui.draganddrop.DragAndDropEvent startEvent); + method public void drag(androidx.compose.ui.draganddrop.DragAndDropTransferData transferData, long decorationSize, kotlin.jvm.functions.Function1 drawDragDecoration); + } + + public final class DragAndDropNodeKt { + method public static androidx.compose.ui.draganddrop.DragAndDropModifierNode DragAndDropModifierNode(); + method public static androidx.compose.ui.draganddrop.DragAndDropModifierNode DragAndDropModifierNode(kotlin.jvm.functions.Function1 shouldStartDragAndDrop, androidx.compose.ui.draganddrop.DragAndDropTarget target); + } + + public interface DragAndDropTarget { + method public default void onChanged(androidx.compose.ui.draganddrop.DragAndDropEvent event); + method public boolean onDrop(androidx.compose.ui.draganddrop.DragAndDropEvent event); + method public default void onEnded(androidx.compose.ui.draganddrop.DragAndDropEvent event); + method public default void onEntered(androidx.compose.ui.draganddrop.DragAndDropEvent event); + method public default void onExited(androidx.compose.ui.draganddrop.DragAndDropEvent event); + method public default void onMoved(androidx.compose.ui.draganddrop.DragAndDropEvent event); + method public default void onStarted(androidx.compose.ui.draganddrop.DragAndDropEvent event); + } + + public final class DragAndDropTransferData { + ctor public DragAndDropTransferData(android.content.ClipData clipData, optional Object? localState, optional int flags); + method public android.content.ClipData getClipData(); + method public int getFlags(); + method public Object? getLocalState(); + property public final android.content.ClipData clipData; + property public final int flags; + property public final Object? localState; + } + + public final class DragAndDrop_androidKt { + method public static java.util.Set mimeTypes(androidx.compose.ui.draganddrop.DragAndDropEvent); + method public static android.view.DragEvent toAndroidDragEvent(androidx.compose.ui.draganddrop.DragAndDropEvent); + } + +} + +package androidx.compose.ui.draw { + + public final class AlphaKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier alpha(androidx.compose.ui.Modifier, float alpha); + } + + public final class BlurKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier blur(androidx.compose.ui.Modifier, float radius, optional androidx.compose.ui.graphics.Shape edgeTreatment); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier blur(androidx.compose.ui.Modifier, float radiusX, float radiusY, optional androidx.compose.ui.graphics.Shape edgeTreatment); + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class BlurredEdgeTreatment { + ctor public BlurredEdgeTreatment(androidx.compose.ui.graphics.Shape? shape); + method public androidx.compose.ui.graphics.Shape? getShape(); + property public final androidx.compose.ui.graphics.Shape? shape; + field public static final androidx.compose.ui.draw.BlurredEdgeTreatment.Companion Companion; + } + + public static final class BlurredEdgeTreatment.Companion { + method public androidx.compose.ui.graphics.Shape getRectangle(); + method public androidx.compose.ui.graphics.Shape getUnbounded(); + property public final androidx.compose.ui.graphics.Shape Rectangle; + property public final androidx.compose.ui.graphics.Shape Unbounded; + } + + public interface BuildDrawCacheParams { + method public androidx.compose.ui.unit.Density getDensity(); + method public androidx.compose.ui.unit.LayoutDirection getLayoutDirection(); + method public long getSize(); + property public abstract androidx.compose.ui.unit.Density density; + property public abstract androidx.compose.ui.unit.LayoutDirection layoutDirection; + property public abstract long size; + } + + public sealed interface CacheDrawModifierNode extends androidx.compose.ui.node.DrawModifierNode { + method public void invalidateDrawCache(); + } + + public final class CacheDrawScope implements androidx.compose.ui.unit.Density { + method public float getDensity(); + method public float getFontScale(); + method public androidx.compose.ui.unit.LayoutDirection getLayoutDirection(); + method public long getSize(); + method public androidx.compose.ui.graphics.layer.GraphicsLayer obtainGraphicsLayer(); + method public androidx.compose.ui.draw.DrawResult onDrawBehind(kotlin.jvm.functions.Function1 block); + method public androidx.compose.ui.draw.DrawResult onDrawWithContent(kotlin.jvm.functions.Function1 block); + method public void record(androidx.compose.ui.graphics.layer.GraphicsLayer, optional androidx.compose.ui.unit.Density density, optional androidx.compose.ui.unit.LayoutDirection layoutDirection, optional long size, kotlin.jvm.functions.Function1 block); + property public float density; + property public float fontScale; + property public final androidx.compose.ui.unit.LayoutDirection layoutDirection; + property public final long size; + } + + public final class ClipKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier clip(androidx.compose.ui.Modifier, androidx.compose.ui.graphics.Shape shape); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier clipToBounds(androidx.compose.ui.Modifier); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface DrawCacheModifier extends androidx.compose.ui.draw.DrawModifier { + method public void onBuildCache(androidx.compose.ui.draw.BuildDrawCacheParams params); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface DrawModifier extends androidx.compose.ui.Modifier.Element { + method public void draw(androidx.compose.ui.graphics.drawscope.ContentDrawScope); + } + + public final class DrawModifierKt { + method public static androidx.compose.ui.draw.CacheDrawModifierNode CacheDrawModifierNode(kotlin.jvm.functions.Function1 onBuildDrawCache); + method public static androidx.compose.ui.Modifier drawBehind(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 onDraw); + method public static androidx.compose.ui.Modifier drawWithCache(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 onBuildDrawCache); + method public static androidx.compose.ui.Modifier drawWithContent(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 onDraw); + } + + public final class DrawResult { + } + + public final class PainterModifierKt { + method public static androidx.compose.ui.Modifier paint(androidx.compose.ui.Modifier, androidx.compose.ui.graphics.painter.Painter painter, optional boolean sizeToIntrinsics, optional androidx.compose.ui.Alignment alignment, optional androidx.compose.ui.layout.ContentScale contentScale, optional float alpha, optional androidx.compose.ui.graphics.ColorFilter? colorFilter); + } + + public final class RotateKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier rotate(androidx.compose.ui.Modifier, float degrees); + } + + public final class ScaleKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier scale(androidx.compose.ui.Modifier, float scale); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier scale(androidx.compose.ui.Modifier, float scaleX, float scaleY); + } + + public final class ShadowKt { + method @Deprecated @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier shadow(androidx.compose.ui.Modifier, float elevation, optional androidx.compose.ui.graphics.Shape shape, optional boolean clip); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier shadow(androidx.compose.ui.Modifier, float elevation, optional androidx.compose.ui.graphics.Shape shape, optional boolean clip, optional long ambientColor, optional long spotColor); + } + +} + +package androidx.compose.ui.focus { + + public final class FocusChangedModifierKt { + method public static androidx.compose.ui.Modifier onFocusChanged(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 onFocusChanged); + } + + @kotlin.jvm.JvmInline public final value class FocusDirection { + field public static final androidx.compose.ui.focus.FocusDirection.Companion Companion; + } + + public static final class FocusDirection.Companion { + method public int getDown(); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public int getEnter(); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public int getExit(); + method public int getLeft(); + method public int getNext(); + method public int getPrevious(); + method public int getRight(); + method public int getUp(); + property public final int Down; + property @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public final int Enter; + property @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public final int Exit; + property public final int Left; + property public final int Next; + property public final int Previous; + property public final int Right; + property public final int Up; + } + + @Deprecated @kotlin.jvm.JvmDefaultWithCompatibility public interface FocusEventModifier extends androidx.compose.ui.Modifier.Element { + method @Deprecated public void onFocusEvent(androidx.compose.ui.focus.FocusState focusState); + } + + public final class FocusEventModifierKt { + method public static androidx.compose.ui.Modifier onFocusEvent(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 onFocusEvent); + } + + public interface FocusEventModifierNode extends androidx.compose.ui.node.DelegatableNode { + method public void onFocusEvent(androidx.compose.ui.focus.FocusState focusState); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface FocusManager { + method public void clearFocus(optional boolean force); + method public boolean moveFocus(int focusDirection); + } + + public final class FocusModifierKt { + method @Deprecated public static androidx.compose.ui.Modifier focusModifier(androidx.compose.ui.Modifier); + method public static androidx.compose.ui.Modifier focusTarget(androidx.compose.ui.Modifier); + } + + @Deprecated public final class FocusOrder { + ctor @Deprecated public FocusOrder(); + method @Deprecated public androidx.compose.ui.focus.FocusRequester getDown(); + method @Deprecated public androidx.compose.ui.focus.FocusRequester getEnd(); + method @Deprecated public androidx.compose.ui.focus.FocusRequester getLeft(); + method @Deprecated public androidx.compose.ui.focus.FocusRequester getNext(); + method @Deprecated public androidx.compose.ui.focus.FocusRequester getPrevious(); + method @Deprecated public androidx.compose.ui.focus.FocusRequester getRight(); + method @Deprecated public androidx.compose.ui.focus.FocusRequester getStart(); + method @Deprecated public androidx.compose.ui.focus.FocusRequester getUp(); + method @Deprecated public void setDown(androidx.compose.ui.focus.FocusRequester); + method @Deprecated public void setEnd(androidx.compose.ui.focus.FocusRequester); + method @Deprecated public void setLeft(androidx.compose.ui.focus.FocusRequester); + method @Deprecated public void setNext(androidx.compose.ui.focus.FocusRequester); + method @Deprecated public void setPrevious(androidx.compose.ui.focus.FocusRequester); + method @Deprecated public void setRight(androidx.compose.ui.focus.FocusRequester); + method @Deprecated public void setStart(androidx.compose.ui.focus.FocusRequester); + method @Deprecated public void setUp(androidx.compose.ui.focus.FocusRequester); + property @Deprecated public final androidx.compose.ui.focus.FocusRequester down; + property @Deprecated public final androidx.compose.ui.focus.FocusRequester end; + property @Deprecated public final androidx.compose.ui.focus.FocusRequester left; + property @Deprecated public final androidx.compose.ui.focus.FocusRequester next; + property @Deprecated public final androidx.compose.ui.focus.FocusRequester previous; + property @Deprecated public final androidx.compose.ui.focus.FocusRequester right; + property @Deprecated public final androidx.compose.ui.focus.FocusRequester start; + property @Deprecated public final androidx.compose.ui.focus.FocusRequester up; + } + + @Deprecated @kotlin.jvm.JvmDefaultWithCompatibility public interface FocusOrderModifier extends androidx.compose.ui.Modifier.Element { + method @Deprecated public void populateFocusOrder(androidx.compose.ui.focus.FocusOrder focusOrder); + } + + public final class FocusOrderModifierKt { + method @Deprecated public static androidx.compose.ui.Modifier focusOrder(androidx.compose.ui.Modifier, androidx.compose.ui.focus.FocusRequester focusRequester); + method @Deprecated public static androidx.compose.ui.Modifier focusOrder(androidx.compose.ui.Modifier, androidx.compose.ui.focus.FocusRequester focusRequester, kotlin.jvm.functions.Function1 focusOrderReceiver); + method @Deprecated public static androidx.compose.ui.Modifier focusOrder(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 focusOrderReceiver); + } + + public interface FocusProperties { + method public boolean getCanFocus(); + method public default androidx.compose.ui.focus.FocusRequester getDown(); + method public default androidx.compose.ui.focus.FocusRequester getEnd(); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public default kotlin.jvm.functions.Function1 getEnter(); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public default kotlin.jvm.functions.Function1 getExit(); + method public default androidx.compose.ui.focus.FocusRequester getLeft(); + method public default androidx.compose.ui.focus.FocusRequester getNext(); + method public default androidx.compose.ui.focus.FocusRequester getPrevious(); + method public default androidx.compose.ui.focus.FocusRequester getRight(); + method public default androidx.compose.ui.focus.FocusRequester getStart(); + method public default androidx.compose.ui.focus.FocusRequester getUp(); + method public void setCanFocus(boolean); + method public default void setDown(androidx.compose.ui.focus.FocusRequester); + method public default void setEnd(androidx.compose.ui.focus.FocusRequester); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public default void setEnter(kotlin.jvm.functions.Function1); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public default void setExit(kotlin.jvm.functions.Function1); + method public default void setLeft(androidx.compose.ui.focus.FocusRequester); + method public default void setNext(androidx.compose.ui.focus.FocusRequester); + method public default void setPrevious(androidx.compose.ui.focus.FocusRequester); + method public default void setRight(androidx.compose.ui.focus.FocusRequester); + method public default void setStart(androidx.compose.ui.focus.FocusRequester); + method public default void setUp(androidx.compose.ui.focus.FocusRequester); + property public abstract boolean canFocus; + property public default androidx.compose.ui.focus.FocusRequester down; + property public default androidx.compose.ui.focus.FocusRequester end; + property @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public default kotlin.jvm.functions.Function1 enter; + property @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public default kotlin.jvm.functions.Function1 exit; + property public default androidx.compose.ui.focus.FocusRequester left; + property public default androidx.compose.ui.focus.FocusRequester next; + property public default androidx.compose.ui.focus.FocusRequester previous; + property public default androidx.compose.ui.focus.FocusRequester right; + property public default androidx.compose.ui.focus.FocusRequester start; + property public default androidx.compose.ui.focus.FocusRequester up; + } + + public final class FocusPropertiesKt { + method public static androidx.compose.ui.Modifier focusProperties(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 scope); + } + + public interface FocusPropertiesModifierNode extends androidx.compose.ui.node.DelegatableNode { + method public void applyFocusProperties(androidx.compose.ui.focus.FocusProperties focusProperties); + } + + public final class FocusPropertiesModifierNodeKt { + method public static void invalidateFocusProperties(androidx.compose.ui.focus.FocusPropertiesModifierNode); + } + + @androidx.compose.runtime.Stable public final class FocusRequester { + ctor public FocusRequester(); + method public boolean captureFocus(); + method public boolean freeFocus(); + method public void requestFocus(); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public boolean restoreFocusedChild(); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public boolean saveFocusedChild(); + field public static final androidx.compose.ui.focus.FocusRequester.Companion Companion; + } + + public static final class FocusRequester.Companion { + method public androidx.compose.ui.focus.FocusRequester.Companion.FocusRequesterFactory createRefs(); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public androidx.compose.ui.focus.FocusRequester getCancel(); + method public androidx.compose.ui.focus.FocusRequester getDefault(); + property @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public final androidx.compose.ui.focus.FocusRequester Cancel; + property public final androidx.compose.ui.focus.FocusRequester Default; + } + + public static final class FocusRequester.Companion.FocusRequesterFactory { + method public operator androidx.compose.ui.focus.FocusRequester component1(); + method public operator androidx.compose.ui.focus.FocusRequester component10(); + method public operator androidx.compose.ui.focus.FocusRequester component11(); + method public operator androidx.compose.ui.focus.FocusRequester component12(); + method public operator androidx.compose.ui.focus.FocusRequester component13(); + method public operator androidx.compose.ui.focus.FocusRequester component14(); + method public operator androidx.compose.ui.focus.FocusRequester component15(); + method public operator androidx.compose.ui.focus.FocusRequester component16(); + method public operator androidx.compose.ui.focus.FocusRequester component2(); + method public operator androidx.compose.ui.focus.FocusRequester component3(); + method public operator androidx.compose.ui.focus.FocusRequester component4(); + method public operator androidx.compose.ui.focus.FocusRequester component5(); + method public operator androidx.compose.ui.focus.FocusRequester component6(); + method public operator androidx.compose.ui.focus.FocusRequester component7(); + method public operator androidx.compose.ui.focus.FocusRequester component8(); + method public operator androidx.compose.ui.focus.FocusRequester component9(); + field public static final androidx.compose.ui.focus.FocusRequester.Companion.FocusRequesterFactory INSTANCE; + } + + @Deprecated @kotlin.jvm.JvmDefaultWithCompatibility public interface FocusRequesterModifier extends androidx.compose.ui.Modifier.Element { + method @Deprecated public androidx.compose.ui.focus.FocusRequester getFocusRequester(); + property @Deprecated public abstract androidx.compose.ui.focus.FocusRequester focusRequester; + } + + public final class FocusRequesterModifierKt { + method public static androidx.compose.ui.Modifier focusRequester(androidx.compose.ui.Modifier, androidx.compose.ui.focus.FocusRequester focusRequester); + } + + public interface FocusRequesterModifierNode extends androidx.compose.ui.node.DelegatableNode { + } + + public final class FocusRequesterModifierNodeKt { + method public static boolean captureFocus(androidx.compose.ui.focus.FocusRequesterModifierNode); + method public static boolean freeFocus(androidx.compose.ui.focus.FocusRequesterModifierNode); + method public static boolean requestFocus(androidx.compose.ui.focus.FocusRequesterModifierNode); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static boolean restoreFocusedChild(androidx.compose.ui.focus.FocusRequesterModifierNode); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static boolean saveFocusedChild(androidx.compose.ui.focus.FocusRequesterModifierNode); + } + + public final class FocusRestorerKt { + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier focusRestorer(androidx.compose.ui.Modifier, optional kotlin.jvm.functions.Function0? onRestoreFailed); + } + + public interface FocusState { + method public boolean getHasFocus(); + method public boolean isCaptured(); + method public boolean isFocused(); + property public abstract boolean hasFocus; + property public abstract boolean isCaptured; + property public abstract boolean isFocused; + } + + public sealed interface FocusTargetModifierNode extends androidx.compose.ui.node.DelegatableNode { + method public androidx.compose.ui.focus.FocusState getFocusState(); + property public abstract androidx.compose.ui.focus.FocusState focusState; + } + + public final class FocusTargetModifierNodeKt { + method public static androidx.compose.ui.focus.FocusTargetModifierNode FocusTargetModifierNode(); + } + +} + +package androidx.compose.ui.graphics { + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class CompositingStrategy { + field public static final androidx.compose.ui.graphics.CompositingStrategy.Companion Companion; + } + + public static final class CompositingStrategy.Companion { + method public int getAuto(); + method public int getModulateAlpha(); + method public int getOffscreen(); + property public final int Auto; + property public final int ModulateAlpha; + property public final int Offscreen; + } + + public final class GraphicsLayerModifierKt { + method @Deprecated @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier graphicsLayer(androidx.compose.ui.Modifier, optional float scaleX, optional float scaleY, optional float alpha, optional float translationX, optional float translationY, optional float shadowElevation, optional float rotationX, optional float rotationY, optional float rotationZ, optional float cameraDistance, optional long transformOrigin, optional androidx.compose.ui.graphics.Shape shape, optional boolean clip); + method @Deprecated @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier graphicsLayer(androidx.compose.ui.Modifier, optional float scaleX, optional float scaleY, optional float alpha, optional float translationX, optional float translationY, optional float shadowElevation, optional float rotationX, optional float rotationY, optional float rotationZ, optional float cameraDistance, optional long transformOrigin, optional androidx.compose.ui.graphics.Shape shape, optional boolean clip, optional androidx.compose.ui.graphics.RenderEffect? renderEffect); + method @Deprecated @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier graphicsLayer(androidx.compose.ui.Modifier, optional float scaleX, optional float scaleY, optional float alpha, optional float translationX, optional float translationY, optional float shadowElevation, optional float rotationX, optional float rotationY, optional float rotationZ, optional float cameraDistance, optional long transformOrigin, optional androidx.compose.ui.graphics.Shape shape, optional boolean clip, optional androidx.compose.ui.graphics.RenderEffect? renderEffect, optional long ambientShadowColor, optional long spotShadowColor); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier graphicsLayer(androidx.compose.ui.Modifier, optional float scaleX, optional float scaleY, optional float alpha, optional float translationX, optional float translationY, optional float shadowElevation, optional float rotationX, optional float rotationY, optional float rotationZ, optional float cameraDistance, optional long transformOrigin, optional androidx.compose.ui.graphics.Shape shape, optional boolean clip, optional androidx.compose.ui.graphics.RenderEffect? renderEffect, optional long ambientShadowColor, optional long spotShadowColor, optional int compositingStrategy); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier graphicsLayer(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 block); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier toolingGraphicsLayer(androidx.compose.ui.Modifier); + } + + @androidx.compose.ui.layout.PlacementScopeMarker @kotlin.jvm.JvmDefaultWithCompatibility public interface GraphicsLayerScope extends androidx.compose.ui.unit.Density { + method public float getAlpha(); + method public default long getAmbientShadowColor(); + method public float getCameraDistance(); + method public boolean getClip(); + method public default int getCompositingStrategy(); + method public default androidx.compose.ui.graphics.RenderEffect? getRenderEffect(); + method public float getRotationX(); + method public float getRotationY(); + method public float getRotationZ(); + method public float getScaleX(); + method public float getScaleY(); + method public float getShadowElevation(); + method public androidx.compose.ui.graphics.Shape getShape(); + method public default long getSize(); + method public default long getSpotShadowColor(); + method public long getTransformOrigin(); + method public float getTranslationX(); + method public float getTranslationY(); + method public void setAlpha(float); + method public default void setAmbientShadowColor(long); + method public void setCameraDistance(float); + method public void setClip(boolean); + method public default void setCompositingStrategy(int); + method public default void setRenderEffect(androidx.compose.ui.graphics.RenderEffect?); + method public void setRotationX(float); + method public void setRotationY(float); + method public void setRotationZ(float); + method public void setScaleX(float); + method public void setScaleY(float); + method public void setShadowElevation(float); + method public void setShape(androidx.compose.ui.graphics.Shape); + method public default void setSpotShadowColor(long); + method public void setTransformOrigin(long); + method public void setTranslationX(float); + method public void setTranslationY(float); + property public abstract float alpha; + property public default long ambientShadowColor; + property public abstract float cameraDistance; + property public abstract boolean clip; + property public default int compositingStrategy; + property public default androidx.compose.ui.graphics.RenderEffect? renderEffect; + property public abstract float rotationX; + property public abstract float rotationY; + property public abstract float rotationZ; + property public abstract float scaleX; + property public abstract float scaleY; + property public abstract float shadowElevation; + property public abstract androidx.compose.ui.graphics.Shape shape; + property public default long size; + property public default long spotShadowColor; + property public abstract long transformOrigin; + property public abstract float translationX; + property public abstract float translationY; + } + + public final class GraphicsLayerScopeKt { + method public static androidx.compose.ui.graphics.GraphicsLayerScope GraphicsLayerScope(); + method public static long getDefaultShadowColor(); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ComposableOpenTarget(index=0xffffffff) public static androidx.compose.ui.graphics.layer.GraphicsLayer rememberGraphicsLayer(); + property public static final long DefaultShadowColor; + field public static final float DefaultCameraDistance = 8.0f; + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class TransformOrigin { + method @androidx.compose.runtime.Stable public inline operator float component1(); + method @androidx.compose.runtime.Stable public inline operator float component2(); + method public long copy(optional float pivotFractionX, optional float pivotFractionY); + method public float getPivotFractionX(); + method public float getPivotFractionY(); + property public final float pivotFractionX; + property public final float pivotFractionY; + field public static final androidx.compose.ui.graphics.TransformOrigin.Companion Companion; + } + + public static final class TransformOrigin.Companion { + method public long getCenter(); + property public final long Center; + } + + public final class TransformOriginKt { + method public static long TransformOrigin(float pivotFractionX, float pivotFractionY); + } + +} + +package androidx.compose.ui.graphics.vector { + + @androidx.compose.runtime.Immutable public final class ImageVector { + method public boolean getAutoMirror(); + method public float getDefaultHeight(); + method public float getDefaultWidth(); + method public String getName(); + method public androidx.compose.ui.graphics.vector.VectorGroup getRoot(); + method public int getTintBlendMode(); + method public long getTintColor(); + method public float getViewportHeight(); + method public float getViewportWidth(); + property public final boolean autoMirror; + property public final float defaultHeight; + property public final float defaultWidth; + property public final String name; + property public final androidx.compose.ui.graphics.vector.VectorGroup root; + property public final int tintBlendMode; + property public final long tintColor; + property public final float viewportHeight; + property public final float viewportWidth; + field public static final androidx.compose.ui.graphics.vector.ImageVector.Companion Companion; + } + + public static final class ImageVector.Builder { + ctor @Deprecated public ImageVector.Builder(optional String name, float defaultWidth, float defaultHeight, float viewportWidth, float viewportHeight, optional long tintColor, optional int tintBlendMode); + ctor public ImageVector.Builder(optional String name, float defaultWidth, float defaultHeight, float viewportWidth, float viewportHeight, optional long tintColor, optional int tintBlendMode, optional boolean autoMirror); + method public androidx.compose.ui.graphics.vector.ImageVector.Builder addGroup(optional String name, optional float rotate, optional float pivotX, optional float pivotY, optional float scaleX, optional float scaleY, optional float translationX, optional float translationY, optional java.util.List clipPathData); + method public androidx.compose.ui.graphics.vector.ImageVector.Builder addPath(java.util.List pathData, optional int pathFillType, optional String name, optional androidx.compose.ui.graphics.Brush? fill, optional float fillAlpha, optional androidx.compose.ui.graphics.Brush? stroke, optional float strokeAlpha, optional float strokeLineWidth, optional int strokeLineCap, optional int strokeLineJoin, optional float strokeLineMiter, optional float trimPathStart, optional float trimPathEnd, optional float trimPathOffset); + method public androidx.compose.ui.graphics.vector.ImageVector build(); + method public androidx.compose.ui.graphics.vector.ImageVector.Builder clearGroup(); + } + + public static final class ImageVector.Companion { + } + + public final class ImageVectorKt { + method public static inline androidx.compose.ui.graphics.vector.ImageVector.Builder group(androidx.compose.ui.graphics.vector.ImageVector.Builder, optional String name, optional float rotate, optional float pivotX, optional float pivotY, optional float scaleX, optional float scaleY, optional float translationX, optional float translationY, optional java.util.List clipPathData, kotlin.jvm.functions.Function1 block); + method public static inline androidx.compose.ui.graphics.vector.ImageVector.Builder path(androidx.compose.ui.graphics.vector.ImageVector.Builder, optional String name, optional androidx.compose.ui.graphics.Brush? fill, optional float fillAlpha, optional androidx.compose.ui.graphics.Brush? stroke, optional float strokeAlpha, optional float strokeLineWidth, optional int strokeLineCap, optional int strokeLineJoin, optional float strokeLineMiter, optional int pathFillType, kotlin.jvm.functions.Function1 pathBuilder); + } + + public abstract sealed class VNode { + method public abstract void draw(androidx.compose.ui.graphics.drawscope.DrawScope); + method public final void invalidate(); + } + + public final class VectorApplier extends androidx.compose.runtime.AbstractApplier { + ctor public VectorApplier(androidx.compose.ui.graphics.vector.VNode root); + method public void insertBottomUp(int index, androidx.compose.ui.graphics.vector.VNode instance); + method public void insertTopDown(int index, androidx.compose.ui.graphics.vector.VNode instance); + method public void move(int from, int to, int count); + method protected void onClear(); + method public void remove(int index, int count); + } + + @androidx.compose.runtime.ComposableTargetMarker(description="Vector Composable") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FILE, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER, kotlin.annotation.AnnotationTarget.TYPE, kotlin.annotation.AnnotationTarget.TYPE_PARAMETER}) public @interface VectorComposable { + } + + public final class VectorComposeKt { + method @androidx.compose.runtime.Composable @androidx.compose.ui.graphics.vector.VectorComposable public static void Group(optional String name, optional float rotation, optional float pivotX, optional float pivotY, optional float scaleX, optional float scaleY, optional float translationX, optional float translationY, optional java.util.List clipPathData, kotlin.jvm.functions.Function0 content); + method @androidx.compose.runtime.Composable @androidx.compose.ui.graphics.vector.VectorComposable public static void Path(java.util.List pathData, optional int pathFillType, optional String name, optional androidx.compose.ui.graphics.Brush? fill, optional float fillAlpha, optional androidx.compose.ui.graphics.Brush? stroke, optional float strokeAlpha, optional float strokeLineWidth, optional int strokeLineCap, optional int strokeLineJoin, optional float strokeLineMiter, optional float trimPathStart, optional float trimPathEnd, optional float trimPathOffset); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface VectorConfig { + method public default T getOrDefault(androidx.compose.ui.graphics.vector.VectorProperty property, T defaultValue); + } + + @androidx.compose.runtime.Immutable public final class VectorGroup extends androidx.compose.ui.graphics.vector.VectorNode implements java.lang.Iterable kotlin.jvm.internal.markers.KMappedMarker { + method public operator androidx.compose.ui.graphics.vector.VectorNode get(int index); + method public java.util.List getClipPathData(); + method public String getName(); + method public float getPivotX(); + method public float getPivotY(); + method public float getRotation(); + method public float getScaleX(); + method public float getScaleY(); + method public int getSize(); + method public float getTranslationX(); + method public float getTranslationY(); + method public java.util.Iterator iterator(); + property public final java.util.List clipPathData; + property public final String name; + property public final float pivotX; + property public final float pivotY; + property public final float rotation; + property public final float scaleX; + property public final float scaleY; + property public final int size; + property public final float translationX; + property public final float translationY; + } + + public final class VectorKt { + method public static inline java.util.List PathData(kotlin.jvm.functions.Function1 block); + method public static java.util.List addPathNodes(String? pathStr); + method public static int getDefaultFillType(); + method public static int getDefaultStrokeLineCap(); + method public static int getDefaultStrokeLineJoin(); + method public static int getDefaultTintBlendMode(); + method public static long getDefaultTintColor(); + method public static java.util.List getEmptyPath(); + property public static final int DefaultFillType; + property public static final int DefaultStrokeLineCap; + property public static final int DefaultStrokeLineJoin; + property public static final int DefaultTintBlendMode; + property public static final long DefaultTintColor; + property public static final java.util.List EmptyPath; + field public static final String DefaultGroupName = ""; + field public static final String DefaultPathName = ""; + field public static final float DefaultPivotX = 0.0f; + field public static final float DefaultPivotY = 0.0f; + field public static final float DefaultRotation = 0.0f; + field public static final float DefaultScaleX = 1.0f; + field public static final float DefaultScaleY = 1.0f; + field public static final float DefaultStrokeLineMiter = 4.0f; + field public static final float DefaultStrokeLineWidth = 0.0f; + field public static final float DefaultTranslationX = 0.0f; + field public static final float DefaultTranslationY = 0.0f; + field public static final float DefaultTrimPathEnd = 1.0f; + field public static final float DefaultTrimPathOffset = 0.0f; + field public static final float DefaultTrimPathStart = 0.0f; + } + + public abstract sealed class VectorNode { + } + + public final class VectorPainter extends androidx.compose.ui.graphics.painter.Painter { + method public long getIntrinsicSize(); + method protected void onDraw(androidx.compose.ui.graphics.drawscope.DrawScope); + property public long intrinsicSize; + } + + public final class VectorPainterKt { + method @androidx.compose.runtime.Composable public static void RenderVectorGroup(androidx.compose.ui.graphics.vector.VectorGroup group, optional java.util.Map configs); + method @androidx.compose.runtime.Composable public static androidx.compose.ui.graphics.vector.VectorPainter rememberVectorPainter(androidx.compose.ui.graphics.vector.ImageVector image); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ComposableOpenTarget(index=0xffffffff) public static androidx.compose.ui.graphics.vector.VectorPainter rememberVectorPainter(float defaultWidth, float defaultHeight, optional float viewportWidth, optional float viewportHeight, optional String name, optional long tintColor, optional int tintBlendMode, optional boolean autoMirror, kotlin.jvm.functions.Function2 content); + method @Deprecated @androidx.compose.runtime.Composable @androidx.compose.runtime.ComposableOpenTarget(index=0xffffffff) public static androidx.compose.ui.graphics.vector.VectorPainter rememberVectorPainter(float defaultWidth, float defaultHeight, optional float viewportWidth, optional float viewportHeight, optional String name, optional long tintColor, optional int tintBlendMode, kotlin.jvm.functions.Function2 content); + field public static final String RootGroupName = "VectorRootGroup"; + } + + @androidx.compose.runtime.Immutable public final class VectorPath extends androidx.compose.ui.graphics.vector.VectorNode { + method public androidx.compose.ui.graphics.Brush? getFill(); + method public float getFillAlpha(); + method public String getName(); + method public java.util.List getPathData(); + method public int getPathFillType(); + method public androidx.compose.ui.graphics.Brush? getStroke(); + method public float getStrokeAlpha(); + method public int getStrokeLineCap(); + method public int getStrokeLineJoin(); + method public float getStrokeLineMiter(); + method public float getStrokeLineWidth(); + method public float getTrimPathEnd(); + method public float getTrimPathOffset(); + method public float getTrimPathStart(); + property public final androidx.compose.ui.graphics.Brush? fill; + property public final float fillAlpha; + property public final String name; + property public final java.util.List pathData; + property public final int pathFillType; + property public final androidx.compose.ui.graphics.Brush? stroke; + property public final float strokeAlpha; + property public final int strokeLineCap; + property public final int strokeLineJoin; + property public final float strokeLineMiter; + property public final float strokeLineWidth; + property public final float trimPathEnd; + property public final float trimPathOffset; + property public final float trimPathStart; + } + + public abstract sealed class VectorProperty { + } + + public static final class VectorProperty.Fill extends androidx.compose.ui.graphics.vector.VectorProperty { + field public static final androidx.compose.ui.graphics.vector.VectorProperty.Fill INSTANCE; + } + + public static final class VectorProperty.FillAlpha extends androidx.compose.ui.graphics.vector.VectorProperty { + field public static final androidx.compose.ui.graphics.vector.VectorProperty.FillAlpha INSTANCE; + } + + public static final class VectorProperty.PathData extends androidx.compose.ui.graphics.vector.VectorProperty> { + field public static final androidx.compose.ui.graphics.vector.VectorProperty.PathData INSTANCE; + } + + public static final class VectorProperty.PivotX extends androidx.compose.ui.graphics.vector.VectorProperty { + field public static final androidx.compose.ui.graphics.vector.VectorProperty.PivotX INSTANCE; + } + + public static final class VectorProperty.PivotY extends androidx.compose.ui.graphics.vector.VectorProperty { + field public static final androidx.compose.ui.graphics.vector.VectorProperty.PivotY INSTANCE; + } + + public static final class VectorProperty.Rotation extends androidx.compose.ui.graphics.vector.VectorProperty { + field public static final androidx.compose.ui.graphics.vector.VectorProperty.Rotation INSTANCE; + } + + public static final class VectorProperty.ScaleX extends androidx.compose.ui.graphics.vector.VectorProperty { + field public static final androidx.compose.ui.graphics.vector.VectorProperty.ScaleX INSTANCE; + } + + public static final class VectorProperty.ScaleY extends androidx.compose.ui.graphics.vector.VectorProperty { + field public static final androidx.compose.ui.graphics.vector.VectorProperty.ScaleY INSTANCE; + } + + public static final class VectorProperty.Stroke extends androidx.compose.ui.graphics.vector.VectorProperty { + field public static final androidx.compose.ui.graphics.vector.VectorProperty.Stroke INSTANCE; + } + + public static final class VectorProperty.StrokeAlpha extends androidx.compose.ui.graphics.vector.VectorProperty { + field public static final androidx.compose.ui.graphics.vector.VectorProperty.StrokeAlpha INSTANCE; + } + + public static final class VectorProperty.StrokeLineWidth extends androidx.compose.ui.graphics.vector.VectorProperty { + field public static final androidx.compose.ui.graphics.vector.VectorProperty.StrokeLineWidth INSTANCE; + } + + public static final class VectorProperty.TranslateX extends androidx.compose.ui.graphics.vector.VectorProperty { + field public static final androidx.compose.ui.graphics.vector.VectorProperty.TranslateX INSTANCE; + } + + public static final class VectorProperty.TranslateY extends androidx.compose.ui.graphics.vector.VectorProperty { + field public static final androidx.compose.ui.graphics.vector.VectorProperty.TranslateY INSTANCE; + } + + public static final class VectorProperty.TrimPathEnd extends androidx.compose.ui.graphics.vector.VectorProperty { + field public static final androidx.compose.ui.graphics.vector.VectorProperty.TrimPathEnd INSTANCE; + } + + public static final class VectorProperty.TrimPathOffset extends androidx.compose.ui.graphics.vector.VectorProperty { + field public static final androidx.compose.ui.graphics.vector.VectorProperty.TrimPathOffset INSTANCE; + } + + public static final class VectorProperty.TrimPathStart extends androidx.compose.ui.graphics.vector.VectorProperty { + field public static final androidx.compose.ui.graphics.vector.VectorProperty.TrimPathStart INSTANCE; + } + +} + +package androidx.compose.ui.hapticfeedback { + + public interface HapticFeedback { + method public void performHapticFeedback(int hapticFeedbackType); + } + + @kotlin.jvm.JvmInline public final value class HapticFeedbackType { + ctor public HapticFeedbackType(int value); + field public static final androidx.compose.ui.hapticfeedback.HapticFeedbackType.Companion Companion; + } + + public static final class HapticFeedbackType.Companion { + method public int getLongPress(); + method public int getTextHandleMove(); + method public java.util.List values(); + property public final int LongPress; + property public final int TextHandleMove; + } + +} + +package androidx.compose.ui.input { + + @kotlin.jvm.JvmInline public final value class InputMode { + field public static final androidx.compose.ui.input.InputMode.Companion Companion; + } + + public static final class InputMode.Companion { + method public int getKeyboard(); + method public int getTouch(); + property public final int Keyboard; + property public final int Touch; + } + + public interface InputModeManager { + method public int getInputMode(); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public boolean requestInputMode(int inputMode); + property public abstract int inputMode; + } + +} + +package androidx.compose.ui.input.key { + + @kotlin.jvm.JvmInline public final value class Key { + ctor public Key(long keyCode); + method public long getKeyCode(); + property public final long keyCode; + field public static final androidx.compose.ui.input.key.Key.Companion Companion; + } + + public static final class Key.Companion { + method public long getA(); + method public long getAllApps(); + method public long getAltLeft(); + method public long getAltRight(); + method public long getApostrophe(); + method public long getAppSwitch(); + method public long getAssist(); + method public long getAt(); + method public long getAvReceiverInput(); + method public long getAvReceiverPower(); + method public long getB(); + method public long getBack(); + method public long getBackslash(); + method public long getBackspace(); + method public long getBookmark(); + method public long getBreak(); + method public long getBrightnessDown(); + method public long getBrightnessUp(); + method public long getBrowser(); + method public long getButton1(); + method public long getButton10(); + method public long getButton11(); + method public long getButton12(); + method public long getButton13(); + method public long getButton14(); + method public long getButton15(); + method public long getButton16(); + method public long getButton2(); + method public long getButton3(); + method public long getButton4(); + method public long getButton5(); + method public long getButton6(); + method public long getButton7(); + method public long getButton8(); + method public long getButton9(); + method public long getButtonA(); + method public long getButtonB(); + method public long getButtonC(); + method public long getButtonL1(); + method public long getButtonL2(); + method public long getButtonMode(); + method public long getButtonR1(); + method public long getButtonR2(); + method public long getButtonSelect(); + method public long getButtonStart(); + method public long getButtonThumbLeft(); + method public long getButtonThumbRight(); + method public long getButtonX(); + method public long getButtonY(); + method public long getButtonZ(); + method public long getC(); + method public long getCalculator(); + method public long getCalendar(); + method public long getCall(); + method public long getCamera(); + method public long getCapsLock(); + method public long getCaptions(); + method public long getChannelDown(); + method public long getChannelUp(); + method public long getClear(); + method public long getComma(); + method public long getContacts(); + method public long getCopy(); + method public long getCtrlLeft(); + method public long getCtrlRight(); + method public long getCut(); + method public long getD(); + method public long getDelete(); + method public long getDirectionCenter(); + method public long getDirectionDown(); + method public long getDirectionDownLeft(); + method public long getDirectionDownRight(); + method public long getDirectionLeft(); + method public long getDirectionRight(); + method public long getDirectionUp(); + method public long getDirectionUpLeft(); + method public long getDirectionUpRight(); + method public long getDvr(); + method public long getE(); + method public long getEight(); + method public long getEisu(); + method public long getEndCall(); + method public long getEnter(); + method public long getEnvelope(); + method public long getEquals(); + method public long getEscape(); + method public long getF(); + method public long getF1(); + method public long getF10(); + method public long getF11(); + method public long getF12(); + method public long getF2(); + method public long getF3(); + method public long getF4(); + method public long getF5(); + method public long getF6(); + method public long getF7(); + method public long getF8(); + method public long getF9(); + method public long getFive(); + method public long getFocus(); + method public long getForward(); + method public long getFour(); + method public long getFunction(); + method public long getG(); + method public long getGrave(); + method public long getGuide(); + method public long getH(); + method public long getHeadsetHook(); + method public long getHelp(); + method public long getHenkan(); + method public long getHome(); + method public long getI(); + method public long getInfo(); + method public long getInsert(); + method public long getJ(); + method public long getK(); + method public long getKana(); + method public long getKatakanaHiragana(); + method public long getL(); + method public long getLanguageSwitch(); + method public long getLastChannel(); + method public long getLeftBracket(); + method public long getM(); + method public long getMannerMode(); + method public long getMediaAudioTrack(); + method public long getMediaClose(); + method public long getMediaEject(); + method public long getMediaFastForward(); + method public long getMediaNext(); + method public long getMediaPause(); + method public long getMediaPlay(); + method public long getMediaPlayPause(); + method public long getMediaPrevious(); + method public long getMediaRecord(); + method public long getMediaRewind(); + method public long getMediaSkipBackward(); + method public long getMediaSkipForward(); + method public long getMediaStepBackward(); + method public long getMediaStepForward(); + method public long getMediaStop(); + method public long getMediaTopMenu(); + method public long getMenu(); + method public long getMetaLeft(); + method public long getMetaRight(); + method public long getMicrophoneMute(); + method public long getMinus(); + method public long getMoveEnd(); + method public long getMoveHome(); + method public long getMuhenkan(); + method public long getMultiply(); + method public long getMusic(); + method public long getN(); + method public long getNavigateIn(); + method public long getNavigateNext(); + method public long getNavigateOut(); + method public long getNavigatePrevious(); + method public long getNine(); + method public long getNotification(); + method public long getNumLock(); + method public long getNumPad0(); + method public long getNumPad1(); + method public long getNumPad2(); + method public long getNumPad3(); + method public long getNumPad4(); + method public long getNumPad5(); + method public long getNumPad6(); + method public long getNumPad7(); + method public long getNumPad8(); + method public long getNumPad9(); + method public long getNumPadAdd(); + method public long getNumPadComma(); + method public long getNumPadDivide(); + method public long getNumPadDot(); + method public long getNumPadEnter(); + method public long getNumPadEquals(); + method public long getNumPadLeftParenthesis(); + method public long getNumPadMultiply(); + method public long getNumPadRightParenthesis(); + method public long getNumPadSubtract(); + method public long getNumber(); + method public long getO(); + method public long getOne(); + method public long getP(); + method public long getPageDown(); + method public long getPageUp(); + method public long getPairing(); + method public long getPaste(); + method public long getPeriod(); + method public long getPictureSymbols(); + method public long getPlus(); + method public long getPound(); + method public long getPower(); + method public long getPrintScreen(); + method public long getProfileSwitch(); + method public long getProgramBlue(); + method public long getProgramGreen(); + method public long getProgramRed(); + method public long getProgramYellow(); + method public long getQ(); + method public long getR(); + method public long getRefresh(); + method public long getRightBracket(); + method public long getRo(); + method public long getS(); + method public long getScrollLock(); + method public long getSearch(); + method public long getSemicolon(); + method public long getSetTopBoxInput(); + method public long getSetTopBoxPower(); + method public long getSettings(); + method public long getSeven(); + method public long getShiftLeft(); + method public long getShiftRight(); + method public long getSix(); + method public long getSlash(); + method public long getSleep(); + method public long getSoftLeft(); + method public long getSoftRight(); + method public long getSoftSleep(); + method public long getSpacebar(); + method public long getStem1(); + method public long getStem2(); + method public long getStem3(); + method public long getStemPrimary(); + method public long getSwitchCharset(); + method public long getSymbol(); + method public long getSystemNavigationDown(); + method public long getSystemNavigationLeft(); + method public long getSystemNavigationRight(); + method public long getSystemNavigationUp(); + method public long getT(); + method public long getTab(); + method public long getThree(); + method public long getThumbsDown(); + method public long getThumbsUp(); + method public long getToggle2D3D(); + method public long getTv(); + method public long getTvAntennaCable(); + method public long getTvAudioDescription(); + method public long getTvAudioDescriptionMixingVolumeDown(); + method public long getTvAudioDescriptionMixingVolumeUp(); + method public long getTvContentsMenu(); + method public long getTvDataService(); + method public long getTvInput(); + method public long getTvInputComponent1(); + method public long getTvInputComponent2(); + method public long getTvInputComposite1(); + method public long getTvInputComposite2(); + method public long getTvInputHdmi1(); + method public long getTvInputHdmi2(); + method public long getTvInputHdmi3(); + method public long getTvInputHdmi4(); + method public long getTvInputVga1(); + method public long getTvMediaContextMenu(); + method public long getTvNetwork(); + method public long getTvNumberEntry(); + method public long getTvPower(); + method public long getTvRadioService(); + method public long getTvSatellite(); + method public long getTvSatelliteBs(); + method public long getTvSatelliteCs(); + method public long getTvSatelliteService(); + method public long getTvTeletext(); + method public long getTvTerrestrialAnalog(); + method public long getTvTerrestrialDigital(); + method public long getTvTimerProgramming(); + method public long getTvZoomMode(); + method public long getTwo(); + method public long getU(); + method public long getUnknown(); + method public long getV(); + method public long getVoiceAssist(); + method public long getVolumeDown(); + method public long getVolumeMute(); + method public long getVolumeUp(); + method public long getW(); + method public long getWakeUp(); + method public long getWindow(); + method public long getX(); + method public long getY(); + method public long getYen(); + method public long getZ(); + method public long getZenkakuHankaru(); + method public long getZero(); + method public long getZoomIn(); + method public long getZoomOut(); + property public final long A; + property public final long AllApps; + property public final long AltLeft; + property public final long AltRight; + property public final long Apostrophe; + property public final long AppSwitch; + property public final long Assist; + property public final long At; + property public final long AvReceiverInput; + property public final long AvReceiverPower; + property public final long B; + property public final long Back; + property public final long Backslash; + property public final long Backspace; + property public final long Bookmark; + property public final long Break; + property public final long BrightnessDown; + property public final long BrightnessUp; + property public final long Browser; + property public final long Button1; + property public final long Button10; + property public final long Button11; + property public final long Button12; + property public final long Button13; + property public final long Button14; + property public final long Button15; + property public final long Button16; + property public final long Button2; + property public final long Button3; + property public final long Button4; + property public final long Button5; + property public final long Button6; + property public final long Button7; + property public final long Button8; + property public final long Button9; + property public final long ButtonA; + property public final long ButtonB; + property public final long ButtonC; + property public final long ButtonL1; + property public final long ButtonL2; + property public final long ButtonMode; + property public final long ButtonR1; + property public final long ButtonR2; + property public final long ButtonSelect; + property public final long ButtonStart; + property public final long ButtonThumbLeft; + property public final long ButtonThumbRight; + property public final long ButtonX; + property public final long ButtonY; + property public final long ButtonZ; + property public final long C; + property public final long Calculator; + property public final long Calendar; + property public final long Call; + property public final long Camera; + property public final long CapsLock; + property public final long Captions; + property public final long ChannelDown; + property public final long ChannelUp; + property public final long Clear; + property public final long Comma; + property public final long Contacts; + property public final long Copy; + property public final long CtrlLeft; + property public final long CtrlRight; + property public final long Cut; + property public final long D; + property public final long Delete; + property public final long DirectionCenter; + property public final long DirectionDown; + property public final long DirectionDownLeft; + property public final long DirectionDownRight; + property public final long DirectionLeft; + property public final long DirectionRight; + property public final long DirectionUp; + property public final long DirectionUpLeft; + property public final long DirectionUpRight; + property public final long Dvr; + property public final long E; + property public final long Eight; + property public final long Eisu; + property public final long EndCall; + property public final long Enter; + property public final long Envelope; + property public final long Equals; + property public final long Escape; + property public final long F; + property public final long F1; + property public final long F10; + property public final long F11; + property public final long F12; + property public final long F2; + property public final long F3; + property public final long F4; + property public final long F5; + property public final long F6; + property public final long F7; + property public final long F8; + property public final long F9; + property public final long Five; + property public final long Focus; + property public final long Forward; + property public final long Four; + property public final long Function; + property public final long G; + property public final long Grave; + property public final long Guide; + property public final long H; + property public final long HeadsetHook; + property public final long Help; + property public final long Henkan; + property public final long Home; + property public final long I; + property public final long Info; + property public final long Insert; + property public final long J; + property public final long K; + property public final long Kana; + property public final long KatakanaHiragana; + property public final long L; + property public final long LanguageSwitch; + property public final long LastChannel; + property public final long LeftBracket; + property public final long M; + property public final long MannerMode; + property public final long MediaAudioTrack; + property public final long MediaClose; + property public final long MediaEject; + property public final long MediaFastForward; + property public final long MediaNext; + property public final long MediaPause; + property public final long MediaPlay; + property public final long MediaPlayPause; + property public final long MediaPrevious; + property public final long MediaRecord; + property public final long MediaRewind; + property public final long MediaSkipBackward; + property public final long MediaSkipForward; + property public final long MediaStepBackward; + property public final long MediaStepForward; + property public final long MediaStop; + property public final long MediaTopMenu; + property public final long Menu; + property public final long MetaLeft; + property public final long MetaRight; + property public final long MicrophoneMute; + property public final long Minus; + property public final long MoveEnd; + property public final long MoveHome; + property public final long Muhenkan; + property public final long Multiply; + property public final long Music; + property public final long N; + property public final long NavigateIn; + property public final long NavigateNext; + property public final long NavigateOut; + property public final long NavigatePrevious; + property public final long Nine; + property public final long Notification; + property public final long NumLock; + property public final long NumPad0; + property public final long NumPad1; + property public final long NumPad2; + property public final long NumPad3; + property public final long NumPad4; + property public final long NumPad5; + property public final long NumPad6; + property public final long NumPad7; + property public final long NumPad8; + property public final long NumPad9; + property public final long NumPadAdd; + property public final long NumPadComma; + property public final long NumPadDivide; + property public final long NumPadDot; + property public final long NumPadEnter; + property public final long NumPadEquals; + property public final long NumPadLeftParenthesis; + property public final long NumPadMultiply; + property public final long NumPadRightParenthesis; + property public final long NumPadSubtract; + property public final long Number; + property public final long O; + property public final long One; + property public final long P; + property public final long PageDown; + property public final long PageUp; + property public final long Pairing; + property public final long Paste; + property public final long Period; + property public final long PictureSymbols; + property public final long Plus; + property public final long Pound; + property public final long Power; + property public final long PrintScreen; + property public final long ProfileSwitch; + property public final long ProgramBlue; + property public final long ProgramGreen; + property public final long ProgramRed; + property public final long ProgramYellow; + property public final long Q; + property public final long R; + property public final long Refresh; + property public final long RightBracket; + property public final long Ro; + property public final long S; + property public final long ScrollLock; + property public final long Search; + property public final long Semicolon; + property public final long SetTopBoxInput; + property public final long SetTopBoxPower; + property public final long Settings; + property public final long Seven; + property public final long ShiftLeft; + property public final long ShiftRight; + property public final long Six; + property public final long Slash; + property public final long Sleep; + property public final long SoftLeft; + property public final long SoftRight; + property public final long SoftSleep; + property public final long Spacebar; + property public final long Stem1; + property public final long Stem2; + property public final long Stem3; + property public final long StemPrimary; + property public final long SwitchCharset; + property public final long Symbol; + property public final long SystemNavigationDown; + property public final long SystemNavigationLeft; + property public final long SystemNavigationRight; + property public final long SystemNavigationUp; + property public final long T; + property public final long Tab; + property public final long Three; + property public final long ThumbsDown; + property public final long ThumbsUp; + property public final long Toggle2D3D; + property public final long Tv; + property public final long TvAntennaCable; + property public final long TvAudioDescription; + property public final long TvAudioDescriptionMixingVolumeDown; + property public final long TvAudioDescriptionMixingVolumeUp; + property public final long TvContentsMenu; + property public final long TvDataService; + property public final long TvInput; + property public final long TvInputComponent1; + property public final long TvInputComponent2; + property public final long TvInputComposite1; + property public final long TvInputComposite2; + property public final long TvInputHdmi1; + property public final long TvInputHdmi2; + property public final long TvInputHdmi3; + property public final long TvInputHdmi4; + property public final long TvInputVga1; + property public final long TvMediaContextMenu; + property public final long TvNetwork; + property public final long TvNumberEntry; + property public final long TvPower; + property public final long TvRadioService; + property public final long TvSatellite; + property public final long TvSatelliteBs; + property public final long TvSatelliteCs; + property public final long TvSatelliteService; + property public final long TvTeletext; + property public final long TvTerrestrialAnalog; + property public final long TvTerrestrialDigital; + property public final long TvTimerProgramming; + property public final long TvZoomMode; + property public final long Two; + property public final long U; + property public final long Unknown; + property public final long V; + property public final long VoiceAssist; + property public final long VolumeDown; + property public final long VolumeMute; + property public final long VolumeUp; + property public final long W; + property public final long WakeUp; + property public final long Window; + property public final long X; + property public final long Y; + property public final long Yen; + property public final long Z; + property public final long ZenkakuHankaru; + property public final long Zero; + property public final long ZoomIn; + property public final long ZoomOut; + } + + @kotlin.jvm.JvmInline public final value class KeyEvent { + ctor public KeyEvent(android.view.KeyEvent nativeKeyEvent); + method public android.view.KeyEvent getNativeKeyEvent(); + property public final android.view.KeyEvent nativeKeyEvent; + } + + @kotlin.jvm.JvmInline public final value class KeyEventType { + field public static final androidx.compose.ui.input.key.KeyEventType.Companion Companion; + } + + public static final class KeyEventType.Companion { + method public int getKeyDown(); + method public int getKeyUp(); + method public int getUnknown(); + property public final int KeyDown; + property public final int KeyUp; + property public final int Unknown; + } + + public final class KeyEvent_androidKt { + method public static long getKey(android.view.KeyEvent); + method public static int getType(android.view.KeyEvent); + method public static int getUtf16CodePoint(android.view.KeyEvent); + method public static boolean isAltPressed(android.view.KeyEvent); + method public static boolean isCtrlPressed(android.view.KeyEvent); + method public static boolean isMetaPressed(android.view.KeyEvent); + method public static boolean isShiftPressed(android.view.KeyEvent); + } + + public final class KeyInputModifierKt { + method public static androidx.compose.ui.Modifier onKeyEvent(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 onKeyEvent); + method public static androidx.compose.ui.Modifier onPreviewKeyEvent(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 onPreviewKeyEvent); + } + + public interface KeyInputModifierNode extends androidx.compose.ui.node.DelegatableNode { + method public boolean onKeyEvent(android.view.KeyEvent event); + method public boolean onPreKeyEvent(android.view.KeyEvent event); + } + + public final class Key_androidKt { + method public static long Key(int nativeKeyCode); + method public static int getNativeKeyCode(long); + } + + @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public interface SoftKeyboardInterceptionModifierNode extends androidx.compose.ui.node.DelegatableNode { + method public boolean onInterceptKeyBeforeSoftKeyboard(android.view.KeyEvent event); + method public boolean onPreInterceptKeyBeforeSoftKeyboard(android.view.KeyEvent event); + } + + public final class SoftwareKeyboardInterceptionModifierKt { + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier onInterceptKeyBeforeSoftKeyboard(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 onInterceptKeyBeforeSoftKeyboard); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier onPreInterceptKeyBeforeSoftKeyboard(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 onPreInterceptKeyBeforeSoftKeyboard); + } + +} + +package androidx.compose.ui.input.nestedscroll { + + @kotlin.jvm.JvmDefaultWithCompatibility public interface NestedScrollConnection { + method public default suspend Object? onPostFling(long consumed, long available, kotlin.coroutines.Continuation); + method public default long onPostScroll(long consumed, long available, int source); + method public default suspend Object? onPreFling(long available, kotlin.coroutines.Continuation); + method public default long onPreScroll(long available, int source); + } + + public final class NestedScrollDispatcher { + ctor public NestedScrollDispatcher(); + method public suspend Object? dispatchPostFling(long consumed, long available, kotlin.coroutines.Continuation); + method public long dispatchPostScroll(long consumed, long available, int source); + method public suspend Object? dispatchPreFling(long available, kotlin.coroutines.Continuation); + method public long dispatchPreScroll(long available, int source); + method public kotlinx.coroutines.CoroutineScope getCoroutineScope(); + property public final kotlinx.coroutines.CoroutineScope coroutineScope; + } + + public final class NestedScrollModifierKt { + method public static androidx.compose.ui.Modifier nestedScroll(androidx.compose.ui.Modifier, androidx.compose.ui.input.nestedscroll.NestedScrollConnection connection, optional androidx.compose.ui.input.nestedscroll.NestedScrollDispatcher? dispatcher); + } + + public final class NestedScrollNodeKt { + method public static androidx.compose.ui.node.DelegatableNode nestedScrollModifierNode(androidx.compose.ui.input.nestedscroll.NestedScrollConnection connection, androidx.compose.ui.input.nestedscroll.NestedScrollDispatcher? dispatcher); + } + + @kotlin.jvm.JvmInline public final value class NestedScrollSource { + field public static final androidx.compose.ui.input.nestedscroll.NestedScrollSource.Companion Companion; + } + + public static final class NestedScrollSource.Companion { + method @Deprecated public int getDrag(); + method @Deprecated public int getFling(); + method @Deprecated @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public int getRelocate(); + method public int getSideEffect(); + method public int getUserInput(); + method @Deprecated public int getWheel(); + property @Deprecated public final int Drag; + property @Deprecated public final int Fling; + property @Deprecated @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public final int Relocate; + property public final int SideEffect; + property public final int UserInput; + property @Deprecated public final int Wheel; + } + +} + +package androidx.compose.ui.input.pointer { + + @kotlin.coroutines.RestrictsSuspension @kotlin.jvm.JvmDefaultWithCompatibility public interface AwaitPointerEventScope extends androidx.compose.ui.unit.Density { + method public suspend Object? awaitPointerEvent(optional androidx.compose.ui.input.pointer.PointerEventPass pass, kotlin.coroutines.Continuation); + method public androidx.compose.ui.input.pointer.PointerEvent getCurrentEvent(); + method public default long getExtendedTouchPadding(); + method public long getSize(); + method public androidx.compose.ui.platform.ViewConfiguration getViewConfiguration(); + method public default suspend Object? withTimeout(long timeMillis, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + method public default suspend Object? withTimeoutOrNull(long timeMillis, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + property public abstract androidx.compose.ui.input.pointer.PointerEvent currentEvent; + property public default long extendedTouchPadding; + property public abstract long size; + property public abstract androidx.compose.ui.platform.ViewConfiguration viewConfiguration; + } + + @Deprecated public final class ConsumedData { + ctor @Deprecated public ConsumedData(optional @Deprecated boolean positionChange, optional @Deprecated boolean downChange); + method @Deprecated public boolean getDownChange(); + method @Deprecated public boolean getPositionChange(); + method @Deprecated public void setDownChange(boolean); + method @Deprecated public void setPositionChange(boolean); + property @Deprecated public final boolean downChange; + property @Deprecated public final boolean positionChange; + } + + @SuppressCompatibility @androidx.compose.runtime.Immutable @androidx.compose.ui.ExperimentalComposeUiApi public final class HistoricalChange { + ctor public HistoricalChange(long uptimeMillis, long position); + method public long getPosition(); + method public long getUptimeMillis(); + property public final long position; + property public final long uptimeMillis; + } + + @kotlin.jvm.JvmInline public final value class PointerButtons { + ctor public PointerButtons(int packedValue); + } + + public final class PointerEvent { + ctor public PointerEvent(java.util.List changes); + method public java.util.List component1(); + method public androidx.compose.ui.input.pointer.PointerEvent copy(java.util.List changes, android.view.MotionEvent? motionEvent); + method public int getButtons(); + method public java.util.List getChanges(); + method public int getKeyboardModifiers(); + method public int getType(); + property public final int buttons; + property public final java.util.List changes; + property public final int keyboardModifiers; + property public final int type; + } + + public final class PointerEventKt { + method @Deprecated public static boolean anyChangeConsumed(androidx.compose.ui.input.pointer.PointerInputChange); + method public static boolean changedToDown(androidx.compose.ui.input.pointer.PointerInputChange); + method public static boolean changedToDownIgnoreConsumed(androidx.compose.ui.input.pointer.PointerInputChange); + method public static boolean changedToUp(androidx.compose.ui.input.pointer.PointerInputChange); + method public static boolean changedToUpIgnoreConsumed(androidx.compose.ui.input.pointer.PointerInputChange); + method @Deprecated public static void consumeAllChanges(androidx.compose.ui.input.pointer.PointerInputChange); + method @Deprecated public static void consumeDownChange(androidx.compose.ui.input.pointer.PointerInputChange); + method @Deprecated public static void consumePositionChange(androidx.compose.ui.input.pointer.PointerInputChange); + method @Deprecated public static boolean isOutOfBounds(androidx.compose.ui.input.pointer.PointerInputChange, long size); + method public static boolean isOutOfBounds(androidx.compose.ui.input.pointer.PointerInputChange, long size, long extendedTouchPadding); + method public static long positionChange(androidx.compose.ui.input.pointer.PointerInputChange); + method @Deprecated public static boolean positionChangeConsumed(androidx.compose.ui.input.pointer.PointerInputChange); + method public static long positionChangeIgnoreConsumed(androidx.compose.ui.input.pointer.PointerInputChange); + method public static boolean positionChanged(androidx.compose.ui.input.pointer.PointerInputChange); + method public static boolean positionChangedIgnoreConsumed(androidx.compose.ui.input.pointer.PointerInputChange); + } + + public enum PointerEventPass { + enum_constant public static final androidx.compose.ui.input.pointer.PointerEventPass Final; + enum_constant public static final androidx.compose.ui.input.pointer.PointerEventPass Initial; + enum_constant public static final androidx.compose.ui.input.pointer.PointerEventPass Main; + } + + public final class PointerEventTimeoutCancellationException extends java.util.concurrent.CancellationException { + ctor public PointerEventTimeoutCancellationException(long time); + } + + @kotlin.jvm.JvmInline public final value class PointerEventType { + field public static final androidx.compose.ui.input.pointer.PointerEventType.Companion Companion; + } + + public static final class PointerEventType.Companion { + method public int getEnter(); + method public int getExit(); + method public int getMove(); + method public int getPress(); + method public int getRelease(); + method public int getScroll(); + method public int getUnknown(); + property public final int Enter; + property public final int Exit; + property public final int Move; + property public final int Press; + property public final int Release; + property public final int Scroll; + property public final int Unknown; + } + + public final class PointerEvent_androidKt { + method public static boolean getAreAnyPressed(int); + method public static int indexOfFirstPressed(int); + method public static int indexOfLastPressed(int); + method public static boolean isAltGraphPressed(int); + method public static boolean isAltPressed(int); + method public static boolean isBackPressed(int); + method public static boolean isCapsLockOn(int); + method public static boolean isCtrlPressed(int); + method public static boolean isForwardPressed(int); + method public static boolean isFunctionPressed(int); + method public static boolean isMetaPressed(int); + method public static boolean isNumLockOn(int); + method public static boolean isPressed(int, int buttonIndex); + method public static boolean isPrimaryPressed(int); + method public static boolean isScrollLockOn(int); + method public static boolean isSecondaryPressed(int); + method public static boolean isShiftPressed(int); + method public static boolean isSymPressed(int); + method public static boolean isTertiaryPressed(int); + } + + @androidx.compose.runtime.Stable public interface PointerIcon { + field public static final androidx.compose.ui.input.pointer.PointerIcon.Companion Companion; + } + + public static final class PointerIcon.Companion { + method public androidx.compose.ui.input.pointer.PointerIcon getCrosshair(); + method public androidx.compose.ui.input.pointer.PointerIcon getDefault(); + method public androidx.compose.ui.input.pointer.PointerIcon getHand(); + method public androidx.compose.ui.input.pointer.PointerIcon getText(); + property public final androidx.compose.ui.input.pointer.PointerIcon Crosshair; + property public final androidx.compose.ui.input.pointer.PointerIcon Default; + property public final androidx.compose.ui.input.pointer.PointerIcon Hand; + property public final androidx.compose.ui.input.pointer.PointerIcon Text; + } + + public final class PointerIconKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier pointerHoverIcon(androidx.compose.ui.Modifier, androidx.compose.ui.input.pointer.PointerIcon icon, optional boolean overrideDescendants); + } + + public final class PointerIcon_androidKt { + method public static androidx.compose.ui.input.pointer.PointerIcon PointerIcon(android.view.PointerIcon pointerIcon); + method public static androidx.compose.ui.input.pointer.PointerIcon PointerIcon(int pointerIconType); + } + + @kotlin.jvm.JvmInline public final value class PointerId { + ctor public PointerId(long value); + method public long getValue(); + property public final long value; + } + + @androidx.compose.runtime.Immutable public final class PointerInputChange { + ctor public PointerInputChange(long id, long uptimeMillis, long position, boolean pressed, float pressure, long previousUptimeMillis, long previousPosition, boolean previousPressed, boolean isInitiallyConsumed, optional int type, optional long scrollDelta); + ctor @Deprecated public PointerInputChange(long id, long uptimeMillis, long position, boolean pressed, long previousUptimeMillis, long previousPosition, boolean previousPressed, androidx.compose.ui.input.pointer.ConsumedData consumed, optional int type); + ctor public PointerInputChange(long id, long uptimeMillis, long position, boolean pressed, long previousUptimeMillis, long previousPosition, boolean previousPressed, boolean isInitiallyConsumed, optional int type, optional long scrollDelta); + method public void consume(); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public androidx.compose.ui.input.pointer.PointerInputChange copy(optional long id, optional long currentTime, optional long currentPosition, optional boolean currentPressed, optional float pressure, optional long previousTime, optional long previousPosition, optional boolean previousPressed, optional int type, optional java.util.List historical, optional long scrollDelta); + method public androidx.compose.ui.input.pointer.PointerInputChange copy(optional long id, optional long currentTime, optional long currentPosition, optional boolean currentPressed, optional float pressure, optional long previousTime, optional long previousPosition, optional boolean previousPressed, optional int type, optional long scrollDelta); + method @Deprecated public androidx.compose.ui.input.pointer.PointerInputChange copy(optional long id, optional long currentTime, optional long currentPosition, optional boolean currentPressed, optional long previousTime, optional long previousPosition, optional boolean previousPressed, optional androidx.compose.ui.input.pointer.ConsumedData consumed, optional int type); + method @Deprecated public androidx.compose.ui.input.pointer.PointerInputChange copy(optional long id, optional long currentTime, optional long currentPosition, optional boolean currentPressed, optional long previousTime, optional long previousPosition, optional boolean previousPressed, androidx.compose.ui.input.pointer.ConsumedData consumed, optional int type, optional long scrollDelta); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public androidx.compose.ui.input.pointer.PointerInputChange copy(optional long id, optional long currentTime, optional long currentPosition, optional boolean currentPressed, optional long previousTime, optional long previousPosition, optional boolean previousPressed, optional int type, java.util.List historical, optional long scrollDelta); + method public androidx.compose.ui.input.pointer.PointerInputChange copy(optional long id, optional long currentTime, optional long currentPosition, optional boolean currentPressed, optional long previousTime, optional long previousPosition, optional boolean previousPressed, optional int type, optional long scrollDelta); + method @Deprecated public androidx.compose.ui.input.pointer.ConsumedData getConsumed(); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public java.util.List getHistorical(); + method public long getId(); + method public long getPosition(); + method public boolean getPressed(); + method public float getPressure(); + method public long getPreviousPosition(); + method public boolean getPreviousPressed(); + method public long getPreviousUptimeMillis(); + method public long getScrollDelta(); + method public int getType(); + method public long getUptimeMillis(); + method public boolean isConsumed(); + property @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public final java.util.List historical; + property public final long id; + property public final boolean isConsumed; + property public final long position; + property public final boolean pressed; + property public final float pressure; + property public final long previousPosition; + property public final boolean previousPressed; + property public final long previousUptimeMillis; + property public final long scrollDelta; + property public final int type; + property public final long uptimeMillis; + } + + public abstract class PointerInputFilter { + ctor public PointerInputFilter(); + method public boolean getInterceptOutOfBoundsChildEvents(); + method public boolean getShareWithSiblings(); + method public final long getSize(); + method public abstract void onCancel(); + method public abstract void onPointerEvent(androidx.compose.ui.input.pointer.PointerEvent pointerEvent, androidx.compose.ui.input.pointer.PointerEventPass pass, long bounds); + property public boolean interceptOutOfBoundsChildEvents; + property public boolean shareWithSiblings; + property public final long size; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface PointerInputModifier extends androidx.compose.ui.Modifier.Element { + method public androidx.compose.ui.input.pointer.PointerInputFilter getPointerInputFilter(); + property public abstract androidx.compose.ui.input.pointer.PointerInputFilter pointerInputFilter; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface PointerInputScope extends androidx.compose.ui.unit.Density { + method public suspend Object? awaitPointerEventScope(kotlin.jvm.functions.Function2,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + method public default long getExtendedTouchPadding(); + method public default boolean getInterceptOutOfBoundsChildEvents(); + method public long getSize(); + method public androidx.compose.ui.platform.ViewConfiguration getViewConfiguration(); + method public default void setInterceptOutOfBoundsChildEvents(boolean); + property public default long extendedTouchPadding; + property public default boolean interceptOutOfBoundsChildEvents; + property public abstract long size; + property public abstract androidx.compose.ui.platform.ViewConfiguration viewConfiguration; + } + + public final class PointerInteropFilter_androidKt { + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier motionEventSpy(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 watcher); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier pointerInteropFilter(androidx.compose.ui.Modifier, optional androidx.compose.ui.input.pointer.RequestDisallowInterceptTouchEvent? requestDisallowInterceptTouchEvent, kotlin.jvm.functions.Function1 onTouchEvent); + } + + @kotlin.jvm.JvmInline public final value class PointerKeyboardModifiers { + ctor public PointerKeyboardModifiers(int packedValue); + } + + @kotlin.jvm.JvmInline public final value class PointerType { + field public static final androidx.compose.ui.input.pointer.PointerType.Companion Companion; + } + + public static final class PointerType.Companion { + method public int getEraser(); + method public int getMouse(); + method public int getStylus(); + method public int getTouch(); + method public int getUnknown(); + property public final int Eraser; + property public final int Mouse; + property public final int Stylus; + property public final int Touch; + property public final int Unknown; + } + + @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public final class RequestDisallowInterceptTouchEvent implements kotlin.jvm.functions.Function1 { + ctor public RequestDisallowInterceptTouchEvent(); + method public void invoke(boolean disallowIntercept); + } + + public final class SuspendingPointerInputFilterKt { + method public static androidx.compose.ui.input.pointer.SuspendingPointerInputModifierNode SuspendingPointerInputModifierNode(kotlin.jvm.functions.Function2,? extends java.lang.Object?> pointerInputHandler); + method public static androidx.compose.ui.Modifier pointerInput(androidx.compose.ui.Modifier, Object? key1, Object? key2, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block); + method public static androidx.compose.ui.Modifier pointerInput(androidx.compose.ui.Modifier, Object? key1, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block); + method public static androidx.compose.ui.Modifier pointerInput(androidx.compose.ui.Modifier, Object?[] keys, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block); + method @Deprecated public static androidx.compose.ui.Modifier pointerInput(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block); + } + + public sealed interface SuspendingPointerInputModifierNode extends androidx.compose.ui.node.PointerInputModifierNode { + method public kotlin.jvm.functions.Function2,java.lang.Object?> getPointerInputHandler(); + method public void resetPointerInputHandler(); + method public void setPointerInputHandler(kotlin.jvm.functions.Function2,? extends java.lang.Object?>); + property public abstract kotlin.jvm.functions.Function2,java.lang.Object?> pointerInputHandler; + } + +} + +package androidx.compose.ui.input.pointer.util { + + public final class VelocityTracker { + ctor public VelocityTracker(); + method public void addPosition(long timeMillis, long position); + method public long calculateVelocity(); + method public long calculateVelocity(long maximumVelocity); + method public void resetTracking(); + } + + public final class VelocityTracker1D { + ctor public VelocityTracker1D(boolean isDataDifferential); + method public void addDataPoint(long timeMillis, float dataPoint); + method public float calculateVelocity(); + method public float calculateVelocity(float maximumVelocity); + method public boolean isDataDifferential(); + method public void resetTracking(); + property public final boolean isDataDifferential; + } + + public final class VelocityTrackerKt { + method public static void addPointerInputChange(androidx.compose.ui.input.pointer.util.VelocityTracker, androidx.compose.ui.input.pointer.PointerInputChange event); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static boolean getVelocityTrackerAddPointsFix(); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static boolean getVelocityTrackerStrategyUseImpulse(); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static void setVelocityTrackerAddPointsFix(boolean); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static void setVelocityTrackerStrategyUseImpulse(boolean); + property @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static final boolean VelocityTrackerAddPointsFix; + property @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static final boolean VelocityTrackerStrategyUseImpulse; + } + +} + +package androidx.compose.ui.input.rotary { + + public final class RotaryInputModifierKt { + method public static androidx.compose.ui.Modifier onPreRotaryScrollEvent(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 onPreRotaryScrollEvent); + method public static androidx.compose.ui.Modifier onRotaryScrollEvent(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 onRotaryScrollEvent); + } + + public interface RotaryInputModifierNode extends androidx.compose.ui.node.DelegatableNode { + method public boolean onPreRotaryScrollEvent(androidx.compose.ui.input.rotary.RotaryScrollEvent event); + method public boolean onRotaryScrollEvent(androidx.compose.ui.input.rotary.RotaryScrollEvent event); + } + + public final class RotaryScrollEvent { + method public float getHorizontalScrollPixels(); + method public int getInputDeviceId(); + method public long getUptimeMillis(); + method public float getVerticalScrollPixels(); + property public final float horizontalScrollPixels; + property public final int inputDeviceId; + property public final long uptimeMillis; + property public final float verticalScrollPixels; + } + +} + +package androidx.compose.ui.layout { + + @androidx.compose.runtime.Immutable public abstract sealed class AlignmentLine { + field public static final androidx.compose.ui.layout.AlignmentLine.Companion Companion; + field public static final int Unspecified = -2147483648; // 0x80000000 + } + + public static final class AlignmentLine.Companion { + } + + public final class AlignmentLineKt { + method public static androidx.compose.ui.layout.HorizontalAlignmentLine getFirstBaseline(); + method public static androidx.compose.ui.layout.HorizontalAlignmentLine getLastBaseline(); + property public static final androidx.compose.ui.layout.HorizontalAlignmentLine FirstBaseline; + property public static final androidx.compose.ui.layout.HorizontalAlignmentLine LastBaseline; + } + + public sealed interface ApproachIntrinsicMeasureScope extends androidx.compose.ui.layout.IntrinsicMeasureScope { + method public long getLookaheadConstraints(); + method public long getLookaheadSize(); + property public abstract long lookaheadConstraints; + property public abstract long lookaheadSize; + } + + public interface ApproachLayoutModifierNode extends androidx.compose.ui.node.LayoutModifierNode { + method public androidx.compose.ui.layout.MeasureResult approachMeasure(androidx.compose.ui.layout.ApproachMeasureScope, androidx.compose.ui.layout.Measurable measurable, long constraints); + method public boolean isMeasurementApproachInProgress(long lookaheadSize); + method public default boolean isPlacementApproachInProgress(androidx.compose.ui.layout.Placeable.PlacementScope, androidx.compose.ui.layout.LayoutCoordinates lookaheadCoordinates); + method public default int maxApproachIntrinsicHeight(androidx.compose.ui.layout.ApproachIntrinsicMeasureScope, androidx.compose.ui.layout.IntrinsicMeasurable measurable, int width); + method public default int maxApproachIntrinsicWidth(androidx.compose.ui.layout.ApproachIntrinsicMeasureScope, androidx.compose.ui.layout.IntrinsicMeasurable measurable, int height); + method public default androidx.compose.ui.layout.MeasureResult measure(androidx.compose.ui.layout.MeasureScope, androidx.compose.ui.layout.Measurable measurable, long constraints); + method public default int minApproachIntrinsicHeight(androidx.compose.ui.layout.ApproachIntrinsicMeasureScope, androidx.compose.ui.layout.IntrinsicMeasurable measurable, int width); + method public default int minApproachIntrinsicWidth(androidx.compose.ui.layout.ApproachIntrinsicMeasureScope, androidx.compose.ui.layout.IntrinsicMeasurable measurable, int height); + } + + public sealed interface ApproachMeasureScope extends androidx.compose.ui.layout.ApproachIntrinsicMeasureScope androidx.compose.ui.layout.MeasureScope { + } + + public interface BeyondBoundsLayout { + method public T? layout(int direction, kotlin.jvm.functions.Function1 block); + } + + public static interface BeyondBoundsLayout.BeyondBoundsScope { + method public boolean getHasMoreContent(); + property public abstract boolean hasMoreContent; + } + + @kotlin.jvm.JvmInline public static final value class BeyondBoundsLayout.LayoutDirection { + field public static final androidx.compose.ui.layout.BeyondBoundsLayout.LayoutDirection.Companion Companion; + } + + public static final class BeyondBoundsLayout.LayoutDirection.Companion { + method public int getAbove(); + method public int getAfter(); + method public int getBefore(); + method public int getBelow(); + method public int getLeft(); + method public int getRight(); + property public final int Above; + property public final int After; + property public final int Before; + property public final int Below; + property public final int Left; + property public final int Right; + } + + public final class BeyondBoundsLayoutKt { + method public static androidx.compose.ui.modifier.ProvidableModifierLocal getModifierLocalBeyondBoundsLayout(); + property public static final androidx.compose.ui.modifier.ProvidableModifierLocal ModifierLocalBeyondBoundsLayout; + } + + @androidx.compose.runtime.Stable public interface ContentScale { + method public long computeScaleFactor(long srcSize, long dstSize); + field public static final androidx.compose.ui.layout.ContentScale.Companion Companion; + } + + public static final class ContentScale.Companion { + method public androidx.compose.ui.layout.ContentScale getCrop(); + method public androidx.compose.ui.layout.ContentScale getFillBounds(); + method public androidx.compose.ui.layout.ContentScale getFillHeight(); + method public androidx.compose.ui.layout.ContentScale getFillWidth(); + method public androidx.compose.ui.layout.ContentScale getFit(); + method public androidx.compose.ui.layout.ContentScale getInside(); + method public androidx.compose.ui.layout.FixedScale getNone(); + property public final androidx.compose.ui.layout.ContentScale Crop; + property public final androidx.compose.ui.layout.ContentScale FillBounds; + property public final androidx.compose.ui.layout.ContentScale FillHeight; + property public final androidx.compose.ui.layout.ContentScale FillWidth; + property public final androidx.compose.ui.layout.ContentScale Fit; + property public final androidx.compose.ui.layout.ContentScale Inside; + property public final androidx.compose.ui.layout.FixedScale None; + } + + @androidx.compose.runtime.Immutable public final class FixedScale implements androidx.compose.ui.layout.ContentScale { + ctor public FixedScale(float value); + method public float component1(); + method public long computeScaleFactor(long srcSize, long dstSize); + method public androidx.compose.ui.layout.FixedScale copy(float value); + method public float getValue(); + property public final float value; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface GraphicLayerInfo { + method public long getLayerId(); + method public default long getOwnerViewId(); + property public abstract long layerId; + property public default long ownerViewId; + } + + public final class HorizontalAlignmentLine extends androidx.compose.ui.layout.AlignmentLine { + ctor public HorizontalAlignmentLine(kotlin.jvm.functions.Function2 merger); + } + + public final class HorizontalRuler extends androidx.compose.ui.layout.Ruler { + ctor public HorizontalRuler(); + } + + public interface IntrinsicMeasurable { + method public Object? getParentData(); + method public int maxIntrinsicHeight(int width); + method public int maxIntrinsicWidth(int height); + method public int minIntrinsicHeight(int width); + method public int minIntrinsicWidth(int height); + property public abstract Object? parentData; + } + + public interface IntrinsicMeasureScope extends androidx.compose.ui.unit.Density { + method public androidx.compose.ui.unit.LayoutDirection getLayoutDirection(); + method public default boolean isLookingAhead(); + property public default boolean isLookingAhead; + property public abstract androidx.compose.ui.unit.LayoutDirection layoutDirection; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface LayoutCoordinates { + method public operator int get(androidx.compose.ui.layout.AlignmentLine alignmentLine); + method public default boolean getIntroducesMotionFrameOfReference(); + method public androidx.compose.ui.layout.LayoutCoordinates? getParentCoordinates(); + method public androidx.compose.ui.layout.LayoutCoordinates? getParentLayoutCoordinates(); + method public java.util.Set getProvidedAlignmentLines(); + method public long getSize(); + method public boolean isAttached(); + method public androidx.compose.ui.geometry.Rect localBoundingBoxOf(androidx.compose.ui.layout.LayoutCoordinates sourceCoordinates, optional boolean clipBounds); + method public long localPositionOf(androidx.compose.ui.layout.LayoutCoordinates sourceCoordinates, long relativeToSource); + method public default long localPositionOf(androidx.compose.ui.layout.LayoutCoordinates sourceCoordinates, optional long relativeToSource, optional boolean includeMotionFrameOfReference); + method public long localToRoot(long relativeToLocal); + method public default long localToScreen(long relativeToLocal); + method public long localToWindow(long relativeToLocal); + method public default long screenToLocal(long relativeToScreen); + method public default void transformFrom(androidx.compose.ui.layout.LayoutCoordinates sourceCoordinates, float[] matrix); + method public default void transformToScreen(float[] matrix); + method public long windowToLocal(long relativeToWindow); + property public default boolean introducesMotionFrameOfReference; + property public abstract boolean isAttached; + property public abstract androidx.compose.ui.layout.LayoutCoordinates? parentCoordinates; + property public abstract androidx.compose.ui.layout.LayoutCoordinates? parentLayoutCoordinates; + property public abstract java.util.Set providedAlignmentLines; + property public abstract long size; + } + + public final class LayoutCoordinatesKt { + method public static androidx.compose.ui.geometry.Rect boundsInParent(androidx.compose.ui.layout.LayoutCoordinates); + method public static androidx.compose.ui.geometry.Rect boundsInRoot(androidx.compose.ui.layout.LayoutCoordinates); + method public static androidx.compose.ui.geometry.Rect boundsInWindow(androidx.compose.ui.layout.LayoutCoordinates); + method public static androidx.compose.ui.layout.LayoutCoordinates findRootCoordinates(androidx.compose.ui.layout.LayoutCoordinates); + method public static long positionInParent(androidx.compose.ui.layout.LayoutCoordinates); + method public static long positionInRoot(androidx.compose.ui.layout.LayoutCoordinates); + method public static long positionInWindow(androidx.compose.ui.layout.LayoutCoordinates); + method public static long positionOnScreen(androidx.compose.ui.layout.LayoutCoordinates); + } + + public final class LayoutIdKt { + method public static Object? getLayoutId(androidx.compose.ui.layout.Measurable); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier layoutId(androidx.compose.ui.Modifier, Object layoutId); + } + + public interface LayoutIdParentData { + method public Object getLayoutId(); + property public abstract Object layoutId; + } + + public interface LayoutInfo { + method public androidx.compose.ui.layout.LayoutCoordinates getCoordinates(); + method public androidx.compose.ui.unit.Density getDensity(); + method public int getHeight(); + method public androidx.compose.ui.unit.LayoutDirection getLayoutDirection(); + method public java.util.List getModifierInfo(); + method public androidx.compose.ui.layout.LayoutInfo? getParentInfo(); + method public int getSemanticsId(); + method public androidx.compose.ui.platform.ViewConfiguration getViewConfiguration(); + method public int getWidth(); + method public boolean isAttached(); + method public default boolean isDeactivated(); + method public boolean isPlaced(); + property public abstract androidx.compose.ui.layout.LayoutCoordinates coordinates; + property public abstract androidx.compose.ui.unit.Density density; + property public abstract int height; + property public abstract boolean isAttached; + property public default boolean isDeactivated; + property public abstract boolean isPlaced; + property public abstract androidx.compose.ui.unit.LayoutDirection layoutDirection; + property public abstract androidx.compose.ui.layout.LayoutInfo? parentInfo; + property public abstract int semanticsId; + property public abstract androidx.compose.ui.platform.ViewConfiguration viewConfiguration; + property public abstract int width; + } + + public final class LayoutKt { + method @androidx.compose.runtime.Composable @androidx.compose.ui.UiComposable public static inline void Layout(optional androidx.compose.ui.Modifier modifier, androidx.compose.ui.layout.MeasurePolicy measurePolicy); + method @androidx.compose.runtime.Composable @androidx.compose.ui.UiComposable public static inline void Layout(java.util.List> contents, optional androidx.compose.ui.Modifier modifier, androidx.compose.ui.layout.MultiContentMeasurePolicy measurePolicy); + method @androidx.compose.runtime.Composable @androidx.compose.ui.UiComposable public static inline void Layout(kotlin.jvm.functions.Function0 content, optional androidx.compose.ui.Modifier modifier, androidx.compose.ui.layout.MeasurePolicy measurePolicy); + method @Deprecated @androidx.compose.runtime.Composable @androidx.compose.ui.UiComposable public static void MultiMeasureLayout(optional androidx.compose.ui.Modifier modifier, kotlin.jvm.functions.Function0 content, androidx.compose.ui.layout.MeasurePolicy measurePolicy); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface LayoutModifier extends androidx.compose.ui.Modifier.Element { + method public default int maxIntrinsicHeight(androidx.compose.ui.layout.IntrinsicMeasureScope, androidx.compose.ui.layout.IntrinsicMeasurable measurable, int width); + method public default int maxIntrinsicWidth(androidx.compose.ui.layout.IntrinsicMeasureScope, androidx.compose.ui.layout.IntrinsicMeasurable measurable, int height); + method public androidx.compose.ui.layout.MeasureResult measure(androidx.compose.ui.layout.MeasureScope, androidx.compose.ui.layout.Measurable measurable, long constraints); + method public default int minIntrinsicHeight(androidx.compose.ui.layout.IntrinsicMeasureScope, androidx.compose.ui.layout.IntrinsicMeasurable measurable, int width); + method public default int minIntrinsicWidth(androidx.compose.ui.layout.IntrinsicMeasureScope, androidx.compose.ui.layout.IntrinsicMeasurable measurable, int height); + } + + public final class LayoutModifierKt { + method public static androidx.compose.ui.Modifier layout(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function3 measure); + } + + public interface LookaheadScope { + method public androidx.compose.ui.layout.LayoutCoordinates getLookaheadScopeCoordinates(androidx.compose.ui.layout.Placeable.PlacementScope); + method public default long localLookaheadPositionOf(androidx.compose.ui.layout.LayoutCoordinates, androidx.compose.ui.layout.LayoutCoordinates sourceCoordinates, optional long relativeToSource, optional boolean includeMotionFrameOfReference); + method public androidx.compose.ui.layout.LayoutCoordinates toLookaheadCoordinates(androidx.compose.ui.layout.LayoutCoordinates); + } + + public final class LookaheadScopeKt { + method @androidx.compose.runtime.Composable @androidx.compose.ui.UiComposable public static void LookaheadScope(kotlin.jvm.functions.Function1 content); + method public static androidx.compose.ui.Modifier approachLayout(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 isMeasurementApproachInProgress, optional kotlin.jvm.functions.Function2 isPlacementApproachInProgress, kotlin.jvm.functions.Function3 approachMeasure); + } + + public interface Measurable extends androidx.compose.ui.layout.IntrinsicMeasurable { + method public androidx.compose.ui.layout.Placeable measure(long constraints); + } + + @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public fun interface MeasurePolicy { + method public default int maxIntrinsicHeight(androidx.compose.ui.layout.IntrinsicMeasureScope, java.util.List measurables, int width); + method public default int maxIntrinsicWidth(androidx.compose.ui.layout.IntrinsicMeasureScope, java.util.List measurables, int height); + method public androidx.compose.ui.layout.MeasureResult measure(androidx.compose.ui.layout.MeasureScope, java.util.List measurables, long constraints); + method public default int minIntrinsicHeight(androidx.compose.ui.layout.IntrinsicMeasureScope, java.util.List measurables, int width); + method public default int minIntrinsicWidth(androidx.compose.ui.layout.IntrinsicMeasureScope, java.util.List measurables, int height); + } + + public interface MeasureResult { + method public java.util.Map getAlignmentLines(); + method public int getHeight(); + method public default kotlin.jvm.functions.Function1? getRulers(); + method public int getWidth(); + method public void placeChildren(); + property public abstract java.util.Map alignmentLines; + property public abstract int height; + property public default kotlin.jvm.functions.Function1? rulers; + property public abstract int width; + } + + @androidx.compose.ui.layout.MeasureScopeMarker @kotlin.jvm.JvmDefaultWithCompatibility public interface MeasureScope extends androidx.compose.ui.layout.IntrinsicMeasureScope { + method public default androidx.compose.ui.layout.MeasureResult layout(int width, int height, optional java.util.Map alignmentLines, kotlin.jvm.functions.Function1 placementBlock); + method public default androidx.compose.ui.layout.MeasureResult layout(int width, int height, optional java.util.Map alignmentLines, optional kotlin.jvm.functions.Function1? rulers, kotlin.jvm.functions.Function1 placementBlock); + } + + @kotlin.DslMarker public @interface MeasureScopeMarker { + } + + public interface Measured { + method public operator int get(androidx.compose.ui.layout.AlignmentLine alignmentLine); + method public int getMeasuredHeight(); + method public int getMeasuredWidth(); + method public default Object? getParentData(); + property public abstract int measuredHeight; + property public abstract int measuredWidth; + property public default Object? parentData; + } + + public final class ModifierInfo { + ctor public ModifierInfo(androidx.compose.ui.Modifier modifier, androidx.compose.ui.layout.LayoutCoordinates coordinates, optional Object? extra); + method public androidx.compose.ui.layout.LayoutCoordinates getCoordinates(); + method public Object? getExtra(); + method public androidx.compose.ui.Modifier getModifier(); + property public final androidx.compose.ui.layout.LayoutCoordinates coordinates; + property public final Object? extra; + property public final androidx.compose.ui.Modifier modifier; + } + + @androidx.compose.runtime.Stable public fun interface MultiContentMeasurePolicy { + method public default int maxIntrinsicHeight(androidx.compose.ui.layout.IntrinsicMeasureScope, java.util.List> measurables, int width); + method public default int maxIntrinsicWidth(androidx.compose.ui.layout.IntrinsicMeasureScope, java.util.List> measurables, int height); + method public androidx.compose.ui.layout.MeasureResult measure(androidx.compose.ui.layout.MeasureScope, java.util.List> measurables, long constraints); + method public default int minIntrinsicHeight(androidx.compose.ui.layout.IntrinsicMeasureScope, java.util.List> measurables, int width); + method public default int minIntrinsicWidth(androidx.compose.ui.layout.IntrinsicMeasureScope, java.util.List> measurables, int height); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface OnGloballyPositionedModifier extends androidx.compose.ui.Modifier.Element { + method public void onGloballyPositioned(androidx.compose.ui.layout.LayoutCoordinates coordinates); + } + + public final class OnGloballyPositionedModifierKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier onGloballyPositioned(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 onGloballyPositioned); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface OnPlacedModifier extends androidx.compose.ui.Modifier.Element { + method public void onPlaced(androidx.compose.ui.layout.LayoutCoordinates coordinates); + } + + public final class OnPlacedModifierKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier onPlaced(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 onPlaced); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface OnRemeasuredModifier extends androidx.compose.ui.Modifier.Element { + method public void onRemeasured(long size); + } + + public final class OnRemeasuredModifierKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier onSizeChanged(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 onSizeChanged); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface ParentDataModifier extends androidx.compose.ui.Modifier.Element { + method public Object? modifyParentData(androidx.compose.ui.unit.Density, Object? parentData); + } + + @androidx.compose.runtime.Stable public interface PinnableContainer { + method public androidx.compose.ui.layout.PinnableContainer.PinnedHandle pin(); + } + + public static fun interface PinnableContainer.PinnedHandle { + method public void release(); + } + + public final class PinnableContainerKt { + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalPinnableContainer(); + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalPinnableContainer; + } + + public abstract class Placeable implements androidx.compose.ui.layout.Measured { + ctor public Placeable(); + method protected final long getApparentToRealOffset(); + method public final int getHeight(); + method public int getMeasuredHeight(); + method protected final long getMeasuredSize(); + method public int getMeasuredWidth(); + method protected final long getMeasurementConstraints(); + method public final int getWidth(); + method protected void placeAt(long position, float zIndex, androidx.compose.ui.graphics.layer.GraphicsLayer layer); + method protected abstract void placeAt(long position, float zIndex, kotlin.jvm.functions.Function1? layerBlock); + method protected final void setMeasuredSize(long); + method protected final void setMeasurementConstraints(long); + property protected final long apparentToRealOffset; + property public final int height; + property public int measuredHeight; + property protected final long measuredSize; + property public int measuredWidth; + property protected final long measurementConstraints; + property public final int width; + } + + @androidx.compose.ui.layout.PlacementScopeMarker public abstract static class Placeable.PlacementScope { + ctor public Placeable.PlacementScope(); + method public float current(androidx.compose.ui.layout.Ruler, float defaultValue); + method public androidx.compose.ui.layout.LayoutCoordinates? getCoordinates(); + method protected abstract androidx.compose.ui.unit.LayoutDirection getParentLayoutDirection(); + method protected abstract int getParentWidth(); + method public final void place(androidx.compose.ui.layout.Placeable, int x, int y, optional float zIndex); + method public final void place(androidx.compose.ui.layout.Placeable, long position, optional float zIndex); + method public final void placeRelative(androidx.compose.ui.layout.Placeable, int x, int y, optional float zIndex); + method public final void placeRelative(androidx.compose.ui.layout.Placeable, long position, optional float zIndex); + method public final void placeRelativeWithLayer(androidx.compose.ui.layout.Placeable, int x, int y, androidx.compose.ui.graphics.layer.GraphicsLayer layer, optional float zIndex); + method public final void placeRelativeWithLayer(androidx.compose.ui.layout.Placeable, int x, int y, optional float zIndex, optional kotlin.jvm.functions.Function1 layerBlock); + method public final void placeRelativeWithLayer(androidx.compose.ui.layout.Placeable, long position, androidx.compose.ui.graphics.layer.GraphicsLayer layer, optional float zIndex); + method public final void placeRelativeWithLayer(androidx.compose.ui.layout.Placeable, long position, optional float zIndex, optional kotlin.jvm.functions.Function1 layerBlock); + method public final void placeWithLayer(androidx.compose.ui.layout.Placeable, int x, int y, androidx.compose.ui.graphics.layer.GraphicsLayer layer, optional float zIndex); + method public final void placeWithLayer(androidx.compose.ui.layout.Placeable, int x, int y, optional float zIndex, optional kotlin.jvm.functions.Function1 layerBlock); + method public final void placeWithLayer(androidx.compose.ui.layout.Placeable, long position, androidx.compose.ui.graphics.layer.GraphicsLayer layer, optional float zIndex); + method public final void placeWithLayer(androidx.compose.ui.layout.Placeable, long position, optional float zIndex, optional kotlin.jvm.functions.Function1 layerBlock); + method public final void withMotionFrameOfReferencePlacement(kotlin.jvm.functions.Function1 block); + property public androidx.compose.ui.layout.LayoutCoordinates? coordinates; + property protected abstract androidx.compose.ui.unit.LayoutDirection parentLayoutDirection; + property protected abstract int parentWidth; + } + + @kotlin.DslMarker public @interface PlacementScopeMarker { + } + + public interface Remeasurement { + method public void forceRemeasure(); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface RemeasurementModifier extends androidx.compose.ui.Modifier.Element { + method public void onRemeasurementAvailable(androidx.compose.ui.layout.Remeasurement remeasurement); + } + + public abstract sealed class Ruler { + } + + @androidx.compose.ui.layout.MeasureScopeMarker public interface RulerScope extends androidx.compose.ui.unit.Density { + method public androidx.compose.ui.layout.LayoutCoordinates getCoordinates(); + method public infix void provides(androidx.compose.ui.layout.Ruler, float value); + method public infix void providesRelative(androidx.compose.ui.layout.VerticalRuler, float value); + property public abstract androidx.compose.ui.layout.LayoutCoordinates coordinates; + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class ScaleFactor { + method @androidx.compose.runtime.Stable public inline operator float component1(); + method @androidx.compose.runtime.Stable public inline operator float component2(); + method public long copy(optional float scaleX, optional float scaleY); + method @androidx.compose.runtime.Stable public operator long div(float operand); + method public float getScaleX(); + method public float getScaleY(); + method @androidx.compose.runtime.Stable public operator long times(float operand); + property @androidx.compose.runtime.Stable public final float scaleX; + property @androidx.compose.runtime.Stable public final float scaleY; + field public static final androidx.compose.ui.layout.ScaleFactor.Companion Companion; + } + + public static final class ScaleFactor.Companion { + method public long getUnspecified(); + property public final long Unspecified; + } + + public final class ScaleFactorKt { + method @androidx.compose.runtime.Stable public static long ScaleFactor(float scaleX, float scaleY); + method @androidx.compose.runtime.Stable public static operator long div(long, long scaleFactor); + method public static inline boolean isSpecified(long); + method public static inline boolean isUnspecified(long); + method @androidx.compose.runtime.Stable public static long lerp(long start, long stop, float fraction); + method public static inline long takeOrElse(long, kotlin.jvm.functions.Function0 block); + method @androidx.compose.runtime.Stable public static operator long times(long, long scaleFactor); + method @androidx.compose.runtime.Stable public static operator long times(long, long size); + } + + public final class SubcomposeLayoutKt { + method @androidx.compose.runtime.Composable @androidx.compose.ui.UiComposable public static void SubcomposeLayout(androidx.compose.ui.layout.SubcomposeLayoutState state, optional androidx.compose.ui.Modifier modifier, kotlin.jvm.functions.Function2 measurePolicy); + method @androidx.compose.runtime.Composable public static void SubcomposeLayout(optional androidx.compose.ui.Modifier modifier, kotlin.jvm.functions.Function2 measurePolicy); + method public static androidx.compose.ui.layout.SubcomposeSlotReusePolicy SubcomposeSlotReusePolicy(int maxSlotsToRetainForReuse); + } + + public final class SubcomposeLayoutState { + ctor public SubcomposeLayoutState(); + ctor public SubcomposeLayoutState(androidx.compose.ui.layout.SubcomposeSlotReusePolicy slotReusePolicy); + ctor @Deprecated public SubcomposeLayoutState(int maxSlotsToRetainForReuse); + method public androidx.compose.ui.layout.SubcomposeLayoutState.PrecomposedSlotHandle precompose(Object? slotId, kotlin.jvm.functions.Function0 content); + } + + public static interface SubcomposeLayoutState.PrecomposedSlotHandle { + method public void dispose(); + method public default int getPlaceablesCount(); + method public default void premeasure(int index, long constraints); + method public default void traverseDescendants(Object? key, kotlin.jvm.functions.Function1 block); + property public default int placeablesCount; + } + + public interface SubcomposeMeasureScope extends androidx.compose.ui.layout.MeasureScope { + method public java.util.List subcompose(Object? slotId, kotlin.jvm.functions.Function0 content); + } + + public interface SubcomposeSlotReusePolicy { + method public boolean areCompatible(Object? slotId, Object? reusableSlotId); + method public void getSlotsToRetain(androidx.compose.ui.layout.SubcomposeSlotReusePolicy.SlotIdsSet slotIds); + } + + public static final class SubcomposeSlotReusePolicy.SlotIdsSet implements java.util.Collection kotlin.jvm.internal.markers.KMappedMarker { + method public void clear(); + method public java.util.Iterator iterator(); + method public boolean remove(Object? slotId); + method public boolean removeAll(java.util.Collection slotIds); + method public boolean removeAll(kotlin.jvm.functions.Function1 predicate); + method public boolean retainAll(java.util.Collection slotIds); + method public boolean retainAll(kotlin.jvm.functions.Function1 predicate); + } + + public final class VerticalAlignmentLine extends androidx.compose.ui.layout.AlignmentLine { + ctor public VerticalAlignmentLine(kotlin.jvm.functions.Function2 merger); + } + + public final class VerticalRuler extends androidx.compose.ui.layout.Ruler { + ctor public VerticalRuler(); + } + +} + +package androidx.compose.ui.modifier { + + @androidx.compose.runtime.Stable public abstract sealed class ModifierLocal { + } + + @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface ModifierLocalConsumer extends androidx.compose.ui.Modifier.Element { + method public void onModifierLocalsUpdated(androidx.compose.ui.modifier.ModifierLocalReadScope scope); + } + + public final class ModifierLocalConsumerKt { + method @SuppressCompatibility @androidx.compose.runtime.Stable @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier modifierLocalConsumer(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 consumer); + } + + public final class ModifierLocalKt { + method public static androidx.compose.ui.modifier.ProvidableModifierLocal modifierLocalOf(kotlin.jvm.functions.Function0 defaultFactory); + } + + public abstract sealed class ModifierLocalMap { + } + + public interface ModifierLocalModifierNode extends androidx.compose.ui.modifier.ModifierLocalReadScope androidx.compose.ui.node.DelegatableNode { + method public default T getCurrent(androidx.compose.ui.modifier.ModifierLocal); + method public default androidx.compose.ui.modifier.ModifierLocalMap getProvidedValues(); + method public default void provide(androidx.compose.ui.modifier.ModifierLocal key, T value); + property public default androidx.compose.ui.modifier.ModifierLocalMap providedValues; + } + + public final class ModifierLocalModifierNodeKt { + method public static androidx.compose.ui.modifier.ModifierLocalMap modifierLocalMapOf(); + method public static androidx.compose.ui.modifier.ModifierLocalMap modifierLocalMapOf(androidx.compose.ui.modifier.ModifierLocal key1, androidx.compose.ui.modifier.ModifierLocal key2, androidx.compose.ui.modifier.ModifierLocal... keys); + method @Deprecated public static androidx.compose.ui.modifier.ModifierLocalMap modifierLocalMapOf(androidx.compose.ui.modifier.ModifierLocal... keys); + method public static androidx.compose.ui.modifier.ModifierLocalMap modifierLocalMapOf(androidx.compose.ui.modifier.ModifierLocal key); + method public static androidx.compose.ui.modifier.ModifierLocalMap modifierLocalMapOf(kotlin.Pair,?> entry1, kotlin.Pair,?> entry2, kotlin.Pair,?>... entries); + method @Deprecated public static androidx.compose.ui.modifier.ModifierLocalMap modifierLocalMapOf(kotlin.Pair,?>... entries); + method public static androidx.compose.ui.modifier.ModifierLocalMap modifierLocalMapOf(kotlin.Pair,? extends T> entry); + } + + @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface ModifierLocalProvider extends androidx.compose.ui.Modifier.Element { + method public androidx.compose.ui.modifier.ProvidableModifierLocal getKey(); + method public T getValue(); + property public abstract androidx.compose.ui.modifier.ProvidableModifierLocal key; + property public abstract T value; + } + + public final class ModifierLocalProviderKt { + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier modifierLocalProvider(androidx.compose.ui.Modifier, androidx.compose.ui.modifier.ProvidableModifierLocal key, kotlin.jvm.functions.Function0 value); + } + + public interface ModifierLocalReadScope { + method public T getCurrent(androidx.compose.ui.modifier.ModifierLocal); + } + + @androidx.compose.runtime.Stable public final class ProvidableModifierLocal extends androidx.compose.ui.modifier.ModifierLocal { + ctor public ProvidableModifierLocal(kotlin.jvm.functions.Function0 defaultFactory); + } + +} + +package androidx.compose.ui.node { + + public interface CompositionLocalConsumerModifierNode extends androidx.compose.ui.node.DelegatableNode { + } + + public final class CompositionLocalConsumerModifierNodeKt { + method public static T currentValueOf(androidx.compose.ui.node.CompositionLocalConsumerModifierNode, androidx.compose.runtime.CompositionLocal local); + } + + public interface DelegatableNode { + method public androidx.compose.ui.Modifier.Node getNode(); + property public abstract androidx.compose.ui.Modifier.Node node; + } + + public final class DelegatableNodeKt { + method public static void invalidateSubtree(androidx.compose.ui.node.DelegatableNode); + method public static androidx.compose.ui.unit.Density requireDensity(androidx.compose.ui.node.DelegatableNode); + method public static androidx.compose.ui.graphics.GraphicsContext requireGraphicsContext(androidx.compose.ui.node.DelegatableNode); + method public static androidx.compose.ui.layout.LayoutCoordinates requireLayoutCoordinates(androidx.compose.ui.node.DelegatableNode); + method public static androidx.compose.ui.unit.LayoutDirection requireLayoutDirection(androidx.compose.ui.node.DelegatableNode); + } + + public final class DelegatableNode_androidKt { + method public static android.view.View requireView(androidx.compose.ui.node.DelegatableNode); + } + + public abstract class DelegatingNode extends androidx.compose.ui.Modifier.Node { + ctor public DelegatingNode(); + method protected final T delegate(T delegatableNode); + method protected final void undelegate(androidx.compose.ui.node.DelegatableNode instance); + } + + public interface DrawModifierNode extends androidx.compose.ui.node.DelegatableNode { + method public void draw(androidx.compose.ui.graphics.drawscope.ContentDrawScope); + method public default void onMeasureResultChanged(); + } + + public final class DrawModifierNodeKt { + method public static void invalidateDraw(androidx.compose.ui.node.DrawModifierNode); + } + + public interface GlobalPositionAwareModifierNode extends androidx.compose.ui.node.DelegatableNode { + method public void onGloballyPositioned(androidx.compose.ui.layout.LayoutCoordinates coordinates); + } + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This API is internal to library.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER, kotlin.annotation.AnnotationTarget.PROPERTY_SETTER}) public @interface InternalCoreApi { + } + + @SuppressCompatibility @androidx.compose.ui.InternalComposeUiApi public sealed interface InteroperableComposeUiNode { + method public android.view.View? getInteropView(); + } + + public interface LayoutAwareModifierNode extends androidx.compose.ui.node.DelegatableNode { + method public default void onPlaced(androidx.compose.ui.layout.LayoutCoordinates coordinates); + method public default void onRemeasured(long size); + } + + public interface LayoutModifierNode extends androidx.compose.ui.node.DelegatableNode { + method public default int maxIntrinsicHeight(androidx.compose.ui.layout.IntrinsicMeasureScope, androidx.compose.ui.layout.IntrinsicMeasurable measurable, int width); + method public default int maxIntrinsicWidth(androidx.compose.ui.layout.IntrinsicMeasureScope, androidx.compose.ui.layout.IntrinsicMeasurable measurable, int height); + method public androidx.compose.ui.layout.MeasureResult measure(androidx.compose.ui.layout.MeasureScope, androidx.compose.ui.layout.Measurable measurable, long constraints); + method public default int minIntrinsicHeight(androidx.compose.ui.layout.IntrinsicMeasureScope, androidx.compose.ui.layout.IntrinsicMeasurable measurable, int width); + method public default int minIntrinsicWidth(androidx.compose.ui.layout.IntrinsicMeasureScope, androidx.compose.ui.layout.IntrinsicMeasurable measurable, int height); + } + + public final class LayoutModifierNodeKt { + method public static void invalidateLayer(androidx.compose.ui.node.LayoutModifierNode); + method public static void invalidateMeasurement(androidx.compose.ui.node.LayoutModifierNode); + method public static void invalidatePlacement(androidx.compose.ui.node.LayoutModifierNode); + method public static void remeasureSync(androidx.compose.ui.node.LayoutModifierNode); + } + + public abstract class ModifierNodeElement implements androidx.compose.ui.platform.InspectableValue androidx.compose.ui.Modifier.Element { + ctor public ModifierNodeElement(); + method public abstract N create(); + method public abstract boolean equals(Object? other); + method public final kotlin.sequences.Sequence getInspectableElements(); + method public final String? getNameFallback(); + method public final Object? getValueOverride(); + method public abstract int hashCode(); + method public void inspectableProperties(androidx.compose.ui.platform.InspectorInfo); + method public abstract void update(N node); + property public final kotlin.sequences.Sequence inspectableElements; + property public final String? nameFallback; + property public final Object? valueOverride; + } + + public interface ObserverModifierNode extends androidx.compose.ui.node.DelegatableNode { + method public void onObservedReadsChanged(); + } + + public final class ObserverModifierNodeKt { + method public static void observeReads(T, kotlin.jvm.functions.Function0 block); + } + + public interface ParentDataModifierNode extends androidx.compose.ui.node.DelegatableNode { + method public Object? modifyParentData(androidx.compose.ui.unit.Density, Object? parentData); + } + + public final class ParentDataModifierNodeKt { + method public static void invalidateParentData(androidx.compose.ui.node.ParentDataModifierNode); + } + + public interface PointerInputModifierNode extends androidx.compose.ui.node.DelegatableNode { + method public default boolean interceptOutOfBoundsChildEvents(); + method public void onCancelPointerInput(); + method public default void onDensityChange(); + method public void onPointerEvent(androidx.compose.ui.input.pointer.PointerEvent pointerEvent, androidx.compose.ui.input.pointer.PointerEventPass pass, long bounds); + method public default void onViewConfigurationChange(); + method public default boolean sharePointerInputWithSiblings(); + } + + public final class Ref { + ctor public Ref(); + method public T? getValue(); + method public void setValue(T?); + property public final T? value; + } + + public interface RootForTest { + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public default void forceAccessibilityForTesting(boolean enable); + method public androidx.compose.ui.unit.Density getDensity(); + method public androidx.compose.ui.semantics.SemanticsOwner getSemanticsOwner(); + method @Deprecated public androidx.compose.ui.text.input.TextInputService getTextInputService(); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public default void measureAndLayoutForTest(); + method public boolean sendKeyEvent(android.view.KeyEvent keyEvent); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public default void setAccessibilityEventBatchIntervalMillis(long intervalMillis); + property public abstract androidx.compose.ui.unit.Density density; + property public abstract androidx.compose.ui.semantics.SemanticsOwner semanticsOwner; + property @Deprecated public abstract androidx.compose.ui.text.input.TextInputService textInputService; + } + + public interface SemanticsModifierNode extends androidx.compose.ui.node.DelegatableNode { + method public void applySemantics(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public default boolean getShouldClearDescendantSemantics(); + method public default boolean getShouldMergeDescendantSemantics(); + property public default boolean shouldClearDescendantSemantics; + property public default boolean shouldMergeDescendantSemantics; + } + + public final class SemanticsModifierNodeKt { + method public static void invalidateSemantics(androidx.compose.ui.node.SemanticsModifierNode); + } + + public interface TraversableNode extends androidx.compose.ui.node.DelegatableNode { + method public Object getTraverseKey(); + property public abstract Object traverseKey; + field public static final androidx.compose.ui.node.TraversableNode.Companion Companion; + } + + public static final class TraversableNode.Companion { + } + + public enum TraversableNode.Companion.TraverseDescendantsAction { + enum_constant public static final androidx.compose.ui.node.TraversableNode.Companion.TraverseDescendantsAction CancelTraversal; + enum_constant public static final androidx.compose.ui.node.TraversableNode.Companion.TraverseDescendantsAction ContinueTraversal; + enum_constant public static final androidx.compose.ui.node.TraversableNode.Companion.TraverseDescendantsAction SkipSubtreeAndContinueTraversal; + } + + public final class TraversableNodeKt { + method public static androidx.compose.ui.node.TraversableNode? findNearestAncestor(androidx.compose.ui.node.DelegatableNode, Object? key); + method public static T? findNearestAncestor(T); + method public static void traverseAncestors(androidx.compose.ui.node.DelegatableNode, Object? key, kotlin.jvm.functions.Function1 block); + method public static void traverseAncestors(T, kotlin.jvm.functions.Function1 block); + method public static void traverseChildren(androidx.compose.ui.node.DelegatableNode, Object? key, kotlin.jvm.functions.Function1 block); + method public static void traverseChildren(T, kotlin.jvm.functions.Function1 block); + method public static void traverseDescendants(androidx.compose.ui.node.DelegatableNode, Object? key, kotlin.jvm.functions.Function1 block); + method public static void traverseDescendants(T, kotlin.jvm.functions.Function1 block); + } + +} + +package androidx.compose.ui.platform { + + public abstract class AbstractComposeView extends android.view.ViewGroup { + ctor public AbstractComposeView(android.content.Context context); + ctor public AbstractComposeView(android.content.Context context, optional android.util.AttributeSet? attrs); + ctor public AbstractComposeView(android.content.Context context, optional android.util.AttributeSet? attrs, optional int defStyleAttr); + method @androidx.compose.runtime.Composable @androidx.compose.ui.UiComposable public abstract void Content(); + method public final void createComposition(); + method public final void disposeComposition(); + method public final boolean getHasComposition(); + method protected boolean getShouldCreateCompositionOnAttachedToWindow(); + method public final boolean getShowLayoutBounds(); + method protected final void onLayout(boolean changed, int left, int top, int right, int bottom); + method protected final void onMeasure(int widthMeasureSpec, int heightMeasureSpec); + method public final void setParentCompositionContext(androidx.compose.runtime.CompositionContext? parent); + method public final void setShowLayoutBounds(boolean); + method public final void setViewCompositionStrategy(androidx.compose.ui.platform.ViewCompositionStrategy strategy); + property public final boolean hasComposition; + property protected boolean shouldCreateCompositionOnAttachedToWindow; + property public final boolean showLayoutBounds; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface AccessibilityManager { + method public long calculateRecommendedTimeoutMillis(long originalTimeoutMillis, optional boolean containsIcons, optional boolean containsText, optional boolean containsControls); + } + + public final class AndroidClipboardManager_androidKt { + method public static androidx.compose.ui.platform.ClipEntry toClipEntry(android.content.ClipData); + method public static androidx.compose.ui.platform.ClipMetadata toClipMetadata(android.content.ClipDescription); + } + + public final class AndroidComposeViewAccessibilityDelegateCompat_androidKt { + method @Deprecated @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static boolean getDisableContentCapture(); + method @Deprecated @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static void setDisableContentCapture(boolean); + property @Deprecated @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static final boolean DisableContentCapture; + } + + public final class AndroidCompositionLocals_androidKt { + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalConfiguration(); + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalContext(); + method @Deprecated public static androidx.compose.runtime.ProvidableCompositionLocal getLocalLifecycleOwner(); + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalSavedStateRegistryOwner(); + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalView(); + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalConfiguration; + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalContext; + property @Deprecated public static final androidx.compose.runtime.ProvidableCompositionLocal LocalLifecycleOwner; + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalSavedStateRegistryOwner; + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalView; + } + + public final class AndroidUiDispatcher extends kotlinx.coroutines.CoroutineDispatcher { + method public void dispatch(kotlin.coroutines.CoroutineContext context, Runnable block); + method public android.view.Choreographer getChoreographer(); + method public androidx.compose.runtime.MonotonicFrameClock getFrameClock(); + property public final android.view.Choreographer choreographer; + property public final androidx.compose.runtime.MonotonicFrameClock frameClock; + field public static final androidx.compose.ui.platform.AndroidUiDispatcher.Companion Companion; + } + + public static final class AndroidUiDispatcher.Companion { + method public kotlin.coroutines.CoroutineContext getCurrentThread(); + method public kotlin.coroutines.CoroutineContext getMain(); + property public final kotlin.coroutines.CoroutineContext CurrentThread; + property public final kotlin.coroutines.CoroutineContext Main; + } + + public final class AndroidUiFrameClock implements androidx.compose.runtime.MonotonicFrameClock { + ctor public AndroidUiFrameClock(android.view.Choreographer choreographer); + method public android.view.Choreographer getChoreographer(); + method public suspend Object? withFrameNanos(kotlin.jvm.functions.Function1 onFrame, kotlin.coroutines.Continuation); + property public final android.view.Choreographer choreographer; + } + + public final class AndroidUriHandler implements androidx.compose.ui.platform.UriHandler { + ctor public AndroidUriHandler(android.content.Context context); + method public void openUri(String uri); + } + + public final class AndroidViewConfiguration implements androidx.compose.ui.platform.ViewConfiguration { + ctor public AndroidViewConfiguration(android.view.ViewConfiguration viewConfiguration); + method public long getDoubleTapMinTimeMillis(); + method public long getDoubleTapTimeoutMillis(); + method public long getLongPressTimeoutMillis(); + method public float getTouchSlop(); + property public long doubleTapMinTimeMillis; + property public long doubleTapTimeoutMillis; + property public float handwritingGestureLineMargin; + property public float handwritingSlop; + property public long longPressTimeoutMillis; + property public float maximumFlingVelocity; + property public float touchSlop; + } + + public final class ClipEntry { + ctor public ClipEntry(android.content.ClipData clipData); + method public android.content.ClipData getClipData(); + method public androidx.compose.ui.platform.ClipMetadata getClipMetadata(); + property public final android.content.ClipData clipData; + property public final androidx.compose.ui.platform.ClipMetadata clipMetadata; + } + + public final class ClipMetadata { + ctor public ClipMetadata(android.content.ClipDescription clipDescription); + method public android.content.ClipDescription getClipDescription(); + property public final android.content.ClipDescription clipDescription; + } + + public final class ClipboardExtensions_androidKt { + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static android.net.Uri? firstUriOrNull(androidx.compose.ui.platform.ClipEntry); + } + + public interface ClipboardManager { + method public default androidx.compose.ui.platform.ClipEntry? getClip(); + method public default android.content.ClipboardManager getNativeClipboard(); + method public androidx.compose.ui.text.AnnotatedString? getText(); + method public default boolean hasText(); + method public default void setClip(androidx.compose.ui.platform.ClipEntry? clipEntry); + method public void setText(androidx.compose.ui.text.AnnotatedString annotatedString); + property public default android.content.ClipboardManager nativeClipboard; + } + + public final class ComposeView extends androidx.compose.ui.platform.AbstractComposeView { + ctor public ComposeView(android.content.Context context); + ctor public ComposeView(android.content.Context context, optional android.util.AttributeSet? attrs); + ctor public ComposeView(android.content.Context context, optional android.util.AttributeSet? attrs, optional int defStyleAttr); + method @androidx.compose.runtime.Composable public void Content(); + method public void setContent(kotlin.jvm.functions.Function0 content); + property protected boolean shouldCreateCompositionOnAttachedToWindow; + } + + public final class CompositionLocalsKt { + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalAccessibilityManager(); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.runtime.ProvidableCompositionLocal getLocalAutofill(); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.runtime.ProvidableCompositionLocal getLocalAutofillTree(); + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalClipboardManager(); + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalDensity(); + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalFocusManager(); + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalFontFamilyResolver(); + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalGraphicsContext(); + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalHapticFeedback(); + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalInputModeManager(); + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalLayoutDirection(); + method public static androidx.compose.runtime.CompositionLocal getLocalScrollCaptureInProgress(); + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalSoftwareKeyboardController(); + method @Deprecated public static androidx.compose.runtime.ProvidableCompositionLocal getLocalTextInputService(); + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalTextToolbar(); + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalUriHandler(); + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalViewConfiguration(); + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalWindowInfo(); + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalAccessibilityManager; + property @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static final androidx.compose.runtime.ProvidableCompositionLocal LocalAutofill; + property @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static final androidx.compose.runtime.ProvidableCompositionLocal LocalAutofillTree; + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalClipboardManager; + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalDensity; + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalFocusManager; + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalFontFamilyResolver; + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalGraphicsContext; + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalHapticFeedback; + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalInputModeManager; + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalLayoutDirection; + property public static final androidx.compose.runtime.CompositionLocal LocalScrollCaptureInProgress; + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalSoftwareKeyboardController; + property @Deprecated public static final androidx.compose.runtime.ProvidableCompositionLocal LocalTextInputService; + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalTextToolbar; + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalUriHandler; + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalViewConfiguration; + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalWindowInfo; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface InfiniteAnimationPolicy extends kotlin.coroutines.CoroutineContext.Element { + method public default kotlin.coroutines.CoroutineContext.Key getKey(); + method public suspend Object? onInfiniteOperation(kotlin.jvm.functions.Function1,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + property public default kotlin.coroutines.CoroutineContext.Key key; + field public static final androidx.compose.ui.platform.InfiniteAnimationPolicy.Key Key; + } + + public static final class InfiniteAnimationPolicy.Key implements kotlin.coroutines.CoroutineContext.Key { + } + + public final class InspectableModifier extends androidx.compose.ui.platform.InspectorValueInfo implements androidx.compose.ui.Modifier.Element { + ctor public InspectableModifier(kotlin.jvm.functions.Function1 inspectorInfo); + method public androidx.compose.ui.platform.InspectableModifier.End getEnd(); + property public final androidx.compose.ui.platform.InspectableModifier.End end; + } + + public final class InspectableModifier.End implements androidx.compose.ui.Modifier.Element { + ctor public InspectableModifier.End(); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface InspectableValue { + method public default kotlin.sequences.Sequence getInspectableElements(); + method public default String? getNameFallback(); + method public default Object? getValueOverride(); + property public default kotlin.sequences.Sequence inspectableElements; + property public default String? nameFallback; + property public default Object? valueOverride; + } + + public final class InspectableValueKt { + method public static inline kotlin.jvm.functions.Function1 debugInspectorInfo(kotlin.jvm.functions.Function1 definitions); + method public static kotlin.jvm.functions.Function1 getNoInspectorInfo(); + method @Deprecated public static inline androidx.compose.ui.Modifier inspectable(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 inspectorInfo, kotlin.jvm.functions.Function1 factory); + method public static boolean isDebugInspectorInfoEnabled(); + method public static void setDebugInspectorInfoEnabled(boolean); + property public static final kotlin.jvm.functions.Function1 NoInspectorInfo; + property public static final boolean isDebugInspectorInfoEnabled; + } + + public final class InspectionModeKt { + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalInspectionMode(); + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalInspectionMode; + } + + public final class InspectorInfo { + ctor public InspectorInfo(); + method public String? getName(); + method public androidx.compose.ui.platform.ValueElementSequence getProperties(); + method public Object? getValue(); + method public void setName(String?); + method public void setValue(Object?); + property public final String? name; + property public final androidx.compose.ui.platform.ValueElementSequence properties; + property public final Object? value; + } + + public abstract class InspectorValueInfo implements androidx.compose.ui.platform.InspectableValue { + ctor public InspectorValueInfo(kotlin.jvm.functions.Function1 info); + property public kotlin.sequences.Sequence inspectableElements; + property public String? nameFallback; + property public Object? valueOverride; + } + + public final class NestedScrollInteropConnectionKt { + method @androidx.compose.runtime.Composable public static androidx.compose.ui.input.nestedscroll.NestedScrollConnection rememberNestedScrollInteropConnection(optional android.view.View hostView); + } + + @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public fun interface PlatformTextInputInterceptor { + method public suspend Object? interceptStartInputMethod(androidx.compose.ui.platform.PlatformTextInputMethodRequest request, androidx.compose.ui.platform.PlatformTextInputSession nextHandler, kotlin.coroutines.Continuation); + } + + public fun interface PlatformTextInputMethodRequest { + method public android.view.inputmethod.InputConnection createInputConnection(android.view.inputmethod.EditorInfo outAttributes); + } + + public interface PlatformTextInputModifierNode extends androidx.compose.ui.node.DelegatableNode { + } + + public final class PlatformTextInputModifierNodeKt { + method @SuppressCompatibility @androidx.compose.runtime.Composable @androidx.compose.ui.ExperimentalComposeUiApi public static void InterceptPlatformTextInput(androidx.compose.ui.platform.PlatformTextInputInterceptor interceptor, kotlin.jvm.functions.Function0 content); + method public static suspend Object? establishTextInputSession(androidx.compose.ui.platform.PlatformTextInputModifierNode, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + } + + public interface PlatformTextInputSession { + method public android.view.View getView(); + method public suspend Object? startInputMethod(androidx.compose.ui.platform.PlatformTextInputMethodRequest request, kotlin.coroutines.Continuation); + property public abstract android.view.View view; + } + + public interface PlatformTextInputSessionScope extends androidx.compose.ui.platform.PlatformTextInputSession kotlinx.coroutines.CoroutineScope { + } + + @androidx.compose.runtime.Stable public interface SoftwareKeyboardController { + method public void hide(); + method public void show(); + } + + public final class TestTagKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier testTag(androidx.compose.ui.Modifier, String tag); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface TextToolbar { + method public androidx.compose.ui.platform.TextToolbarStatus getStatus(); + method public void hide(); + method public void showMenu(androidx.compose.ui.geometry.Rect rect, optional kotlin.jvm.functions.Function0? onCopyRequested, optional kotlin.jvm.functions.Function0? onPasteRequested, optional kotlin.jvm.functions.Function0? onCutRequested, optional kotlin.jvm.functions.Function0? onSelectAllRequested); + property public abstract androidx.compose.ui.platform.TextToolbarStatus status; + } + + public enum TextToolbarStatus { + enum_constant public static final androidx.compose.ui.platform.TextToolbarStatus Hidden; + enum_constant public static final androidx.compose.ui.platform.TextToolbarStatus Shown; + } + + public interface UriHandler { + method public void openUri(String uri); + } + + public final class ValueElement { + ctor public ValueElement(String name, Object? value); + method public String component1(); + method public Object? component2(); + method public androidx.compose.ui.platform.ValueElement copy(String name, Object? value); + method public String getName(); + method public Object? getValue(); + property public final String name; + property public final Object? value; + } + + public final class ValueElementSequence implements kotlin.sequences.Sequence { + ctor public ValueElementSequence(); + method public java.util.Iterator iterator(); + method public operator void set(String name, Object? value); + } + + public interface ViewCompositionStrategy { + method public kotlin.jvm.functions.Function0 installFor(androidx.compose.ui.platform.AbstractComposeView view); + field public static final androidx.compose.ui.platform.ViewCompositionStrategy.Companion Companion; + } + + public static final class ViewCompositionStrategy.Companion { + method public androidx.compose.ui.platform.ViewCompositionStrategy getDefault(); + property public final androidx.compose.ui.platform.ViewCompositionStrategy Default; + } + + public static final class ViewCompositionStrategy.DisposeOnDetachedFromWindow implements androidx.compose.ui.platform.ViewCompositionStrategy { + method public kotlin.jvm.functions.Function0 installFor(androidx.compose.ui.platform.AbstractComposeView view); + field public static final androidx.compose.ui.platform.ViewCompositionStrategy.DisposeOnDetachedFromWindow INSTANCE; + } + + public static final class ViewCompositionStrategy.DisposeOnDetachedFromWindowOrReleasedFromPool implements androidx.compose.ui.platform.ViewCompositionStrategy { + method public kotlin.jvm.functions.Function0 installFor(androidx.compose.ui.platform.AbstractComposeView view); + field public static final androidx.compose.ui.platform.ViewCompositionStrategy.DisposeOnDetachedFromWindowOrReleasedFromPool INSTANCE; + } + + public static final class ViewCompositionStrategy.DisposeOnLifecycleDestroyed implements androidx.compose.ui.platform.ViewCompositionStrategy { + ctor public ViewCompositionStrategy.DisposeOnLifecycleDestroyed(androidx.lifecycle.Lifecycle lifecycle); + ctor public ViewCompositionStrategy.DisposeOnLifecycleDestroyed(androidx.lifecycle.LifecycleOwner lifecycleOwner); + method public kotlin.jvm.functions.Function0 installFor(androidx.compose.ui.platform.AbstractComposeView view); + } + + public static final class ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed implements androidx.compose.ui.platform.ViewCompositionStrategy { + method public kotlin.jvm.functions.Function0 installFor(androidx.compose.ui.platform.AbstractComposeView view); + field public static final androidx.compose.ui.platform.ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed INSTANCE; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface ViewConfiguration { + method public long getDoubleTapMinTimeMillis(); + method public long getDoubleTapTimeoutMillis(); + method public default float getHandwritingGestureLineMargin(); + method public default float getHandwritingSlop(); + method public long getLongPressTimeoutMillis(); + method public default float getMaximumFlingVelocity(); + method public default long getMinimumTouchTargetSize(); + method public float getTouchSlop(); + property public abstract long doubleTapMinTimeMillis; + property public abstract long doubleTapTimeoutMillis; + property public default float handwritingGestureLineMargin; + property public default float handwritingSlop; + property public abstract long longPressTimeoutMillis; + property public default float maximumFlingVelocity; + property public default long minimumTouchTargetSize; + property public abstract float touchSlop; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface ViewRootForInspector { + method public default androidx.compose.ui.platform.AbstractComposeView? getSubCompositionView(); + method public default android.view.View? getViewRoot(); + property public default androidx.compose.ui.platform.AbstractComposeView? subCompositionView; + property public default android.view.View? viewRoot; + } + + @VisibleForTesting public interface ViewRootForTest extends androidx.compose.ui.node.RootForTest { + method public boolean getHasPendingMeasureOrLayout(); + method public android.view.View getView(); + method public void invalidateDescendants(); + method public boolean isLifecycleInResumedState(); + property public abstract boolean hasPendingMeasureOrLayout; + property public abstract boolean isLifecycleInResumedState; + property public abstract android.view.View view; + field public static final androidx.compose.ui.platform.ViewRootForTest.Companion Companion; + } + + public static final class ViewRootForTest.Companion { + method public kotlin.jvm.functions.Function1? getOnViewCreatedCallback(); + method public void setOnViewCreatedCallback(kotlin.jvm.functions.Function1?); + property public final kotlin.jvm.functions.Function1? onViewCreatedCallback; + } + + @androidx.compose.runtime.Stable public interface WindowInfo { + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public default int getKeyboardModifiers(); + method public boolean isWindowFocused(); + property public abstract boolean isWindowFocused; + property @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public default int keyboardModifiers; + } + + @SuppressCompatibility @androidx.compose.ui.InternalComposeUiApi public fun interface WindowRecomposerFactory { + method public androidx.compose.runtime.Recomposer createRecomposer(android.view.View windowRootView); + field public static final androidx.compose.ui.platform.WindowRecomposerFactory.Companion Companion; + } + + public static final class WindowRecomposerFactory.Companion { + method public androidx.compose.ui.platform.WindowRecomposerFactory getLifecycleAware(); + property public final androidx.compose.ui.platform.WindowRecomposerFactory LifecycleAware; + } + + @SuppressCompatibility @androidx.compose.ui.InternalComposeUiApi public final class WindowRecomposerPolicy { + method public void setFactory(androidx.compose.ui.platform.WindowRecomposerFactory factory); + method public inline R withFactory(androidx.compose.ui.platform.WindowRecomposerFactory factory, kotlin.jvm.functions.Function0 block); + field public static final androidx.compose.ui.platform.WindowRecomposerPolicy INSTANCE; + } + + public final class WindowRecomposer_androidKt { + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.runtime.Recomposer createLifecycleAwareWindowRecomposer(android.view.View, optional kotlin.coroutines.CoroutineContext coroutineContext, optional androidx.lifecycle.Lifecycle? lifecycle); + method public static androidx.compose.runtime.CompositionContext? findViewTreeCompositionContext(android.view.View); + method public static androidx.compose.runtime.CompositionContext? getCompositionContext(android.view.View); + method public static void setCompositionContext(android.view.View, androidx.compose.runtime.CompositionContext?); + } + +} + +package androidx.compose.ui.res { + + public final class ColorResources_androidKt { + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static long colorResource(@ColorRes int id); + } + + public final class FontResources_androidKt { + method @Deprecated @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static androidx.compose.ui.text.font.Typeface fontResource(androidx.compose.ui.text.font.FontFamily fontFamily); + } + + public final class ImageResources_androidKt { + method public static androidx.compose.ui.graphics.ImageBitmap imageResource(androidx.compose.ui.graphics.ImageBitmap.Companion, android.content.res.Resources res, @DrawableRes int id); + method @androidx.compose.runtime.Composable public static androidx.compose.ui.graphics.ImageBitmap imageResource(androidx.compose.ui.graphics.ImageBitmap.Companion, @DrawableRes int id); + } + + public final class PainterResources_androidKt { + method @androidx.compose.runtime.Composable public static androidx.compose.ui.graphics.painter.Painter painterResource(@DrawableRes int id); + } + + public final class PrimitiveResources_androidKt { + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static boolean booleanResource(@BoolRes int id); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static float dimensionResource(@DimenRes int id); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static int[] integerArrayResource(@ArrayRes int id); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static int integerResource(@IntegerRes int id); + } + + public final class ResourceResolutionException extends java.lang.RuntimeException { + ctor public ResourceResolutionException(String message, Throwable cause); + } + + public final class StringResources_androidKt { + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static String pluralStringResource(@PluralsRes int id, int count); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static String pluralStringResource(@PluralsRes int id, int count, java.lang.Object... formatArgs); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static String[] stringArrayResource(@ArrayRes int id); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static String stringResource(@StringRes int id); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static String stringResource(@StringRes int id, java.lang.Object... formatArgs); + } + + public final class VectorResources_androidKt { + method @kotlin.jvm.Throws(exceptionClasses=XmlPullParserException::class) public static androidx.compose.ui.graphics.vector.ImageVector vectorResource(androidx.compose.ui.graphics.vector.ImageVector.Companion, optional android.content.res.Resources.Theme? theme, android.content.res.Resources res, int resId) throws org.xmlpull.v1.XmlPullParserException; + method @androidx.compose.runtime.Composable public static androidx.compose.ui.graphics.vector.ImageVector vectorResource(androidx.compose.ui.graphics.vector.ImageVector.Companion, @DrawableRes int id); + } + +} + +package androidx.compose.ui.semantics { + + public final class AccessibilityAction> { + ctor public AccessibilityAction(String? label, T? action); + method public T? getAction(); + method public String? getLabel(); + property public final T? action; + property public final String? label; + } + + public final class CollectionInfo { + ctor public CollectionInfo(int rowCount, int columnCount); + method public int getColumnCount(); + method public int getRowCount(); + property public final int columnCount; + property public final int rowCount; + } + + public final class CollectionItemInfo { + ctor public CollectionItemInfo(int rowIndex, int rowSpan, int columnIndex, int columnSpan); + method public int getColumnIndex(); + method public int getColumnSpan(); + method public int getRowIndex(); + method public int getRowSpan(); + property public final int columnIndex; + property public final int columnSpan; + property public final int rowIndex; + property public final int rowSpan; + } + + public final class CustomAccessibilityAction { + ctor public CustomAccessibilityAction(String label, kotlin.jvm.functions.Function0 action); + method public kotlin.jvm.functions.Function0 getAction(); + method public String getLabel(); + property public final kotlin.jvm.functions.Function0 action; + property public final String label; + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class LiveRegionMode { + field public static final androidx.compose.ui.semantics.LiveRegionMode.Companion Companion; + } + + public static final class LiveRegionMode.Companion { + method public int getAssertive(); + method public int getPolite(); + property public final int Assertive; + property public final int Polite; + } + + public final class ProgressBarRangeInfo { + ctor public ProgressBarRangeInfo(float current, kotlin.ranges.ClosedFloatingPointRange range, optional int steps); + method public float getCurrent(); + method public kotlin.ranges.ClosedFloatingPointRange getRange(); + method public int getSteps(); + property public final float current; + property public final kotlin.ranges.ClosedFloatingPointRange range; + property public final int steps; + field public static final androidx.compose.ui.semantics.ProgressBarRangeInfo.Companion Companion; + } + + public static final class ProgressBarRangeInfo.Companion { + method public androidx.compose.ui.semantics.ProgressBarRangeInfo getIndeterminate(); + property public final androidx.compose.ui.semantics.ProgressBarRangeInfo Indeterminate; + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class Role { + field public static final androidx.compose.ui.semantics.Role.Companion Companion; + } + + public static final class Role.Companion { + method public int getButton(); + method public int getCheckbox(); + method public int getDropdownList(); + method public int getImage(); + method public int getRadioButton(); + method public int getSwitch(); + method public int getTab(); + property public final int Button; + property public final int Checkbox; + property public final int DropdownList; + property public final int Image; + property public final int RadioButton; + property public final int Switch; + property public final int Tab; + } + + public final class ScrollAxisRange { + ctor public ScrollAxisRange(kotlin.jvm.functions.Function0 value, kotlin.jvm.functions.Function0 maxValue, optional boolean reverseScrolling); + method public kotlin.jvm.functions.Function0 getMaxValue(); + method public boolean getReverseScrolling(); + method public kotlin.jvm.functions.Function0 getValue(); + property public final kotlin.jvm.functions.Function0 maxValue; + property public final boolean reverseScrolling; + property public final kotlin.jvm.functions.Function0 value; + } + + public final class SemanticsActions { + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getClearTextSubstitution(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getCollapse(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getCopyText(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey> getCustomActions(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getCutText(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getDismiss(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getExpand(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey,java.lang.Boolean>>> getGetScrollViewportLength(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey,java.lang.Boolean>>> getGetTextLayoutResult(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getInsertTextAtCursor(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getOnClick(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getOnImeAction(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getOnLongClick(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getPageDown(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getPageLeft(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getPageRight(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getPageUp(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getPasteText(); + method @Deprecated public androidx.compose.ui.semantics.SemanticsPropertyKey>> getPerformImeAction(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getRequestFocus(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getScrollBy(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey,java.lang.Object?>> getScrollByOffset(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getScrollToIndex(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getSetProgress(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getSetSelection(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getSetText(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getSetTextSubstitution(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getShowTextSubstitution(); + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> ClearTextSubstitution; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> Collapse; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> CopyText; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey> CustomActions; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> CutText; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> Dismiss; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> Expand; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey,java.lang.Boolean>>> GetScrollViewportLength; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey,java.lang.Boolean>>> GetTextLayoutResult; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> InsertTextAtCursor; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> OnClick; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> OnImeAction; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> OnLongClick; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> PageDown; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> PageLeft; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> PageRight; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> PageUp; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> PasteText; + property @Deprecated public final androidx.compose.ui.semantics.SemanticsPropertyKey>> PerformImeAction; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> RequestFocus; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> ScrollBy; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey,java.lang.Object?>> ScrollByOffset; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> ScrollToIndex; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> SetProgress; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> SetSelection; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> SetText; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> SetTextSubstitution; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> ShowTextSubstitution; + field public static final androidx.compose.ui.semantics.SemanticsActions INSTANCE; + } + + public final class SemanticsConfiguration implements java.lang.Iterable,? extends java.lang.Object?>> kotlin.jvm.internal.markers.KMappedMarker androidx.compose.ui.semantics.SemanticsPropertyReceiver { + ctor public SemanticsConfiguration(); + method public operator boolean contains(androidx.compose.ui.semantics.SemanticsPropertyKey key); + method public androidx.compose.ui.semantics.SemanticsConfiguration copy(); + method public operator T get(androidx.compose.ui.semantics.SemanticsPropertyKey key); + method public T getOrElse(androidx.compose.ui.semantics.SemanticsPropertyKey key, kotlin.jvm.functions.Function0 defaultValue); + method public T? getOrElseNullable(androidx.compose.ui.semantics.SemanticsPropertyKey key, kotlin.jvm.functions.Function0 defaultValue); + method public boolean isClearingSemantics(); + method public boolean isMergingSemanticsOfDescendants(); + method public java.util.Iterator,java.lang.Object?>> iterator(); + method public void set(androidx.compose.ui.semantics.SemanticsPropertyKey key, T value); + method public void setClearingSemantics(boolean); + method public void setMergingSemanticsOfDescendants(boolean); + property public final boolean isClearingSemantics; + property public final boolean isMergingSemanticsOfDescendants; + } + + public final class SemanticsConfigurationKt { + method public static T? getOrNull(androidx.compose.ui.semantics.SemanticsConfiguration, androidx.compose.ui.semantics.SemanticsPropertyKey key); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface SemanticsModifier extends androidx.compose.ui.Modifier.Element { + method @Deprecated public default int getId(); + method public androidx.compose.ui.semantics.SemanticsConfiguration getSemanticsConfiguration(); + property @Deprecated public default int id; + property public abstract androidx.compose.ui.semantics.SemanticsConfiguration semanticsConfiguration; + } + + public final class SemanticsModifierKt { + method public static androidx.compose.ui.Modifier clearAndSetSemantics(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 properties); + method public static androidx.compose.ui.Modifier semantics(androidx.compose.ui.Modifier, optional boolean mergeDescendants, kotlin.jvm.functions.Function1 properties); + } + + public final class SemanticsNode { + method public int getAlignmentLinePosition(androidx.compose.ui.layout.AlignmentLine alignmentLine); + method public androidx.compose.ui.geometry.Rect getBoundsInRoot(); + method public androidx.compose.ui.geometry.Rect getBoundsInWindow(); + method public java.util.List getChildren(); + method public androidx.compose.ui.semantics.SemanticsConfiguration getConfig(); + method public int getId(); + method public androidx.compose.ui.layout.LayoutInfo getLayoutInfo(); + method public boolean getMergingEnabled(); + method public androidx.compose.ui.semantics.SemanticsNode? getParent(); + method public long getPositionInRoot(); + method public long getPositionInWindow(); + method public long getPositionOnScreen(); + method public androidx.compose.ui.node.RootForTest? getRoot(); + method public long getSize(); + method public androidx.compose.ui.geometry.Rect getTouchBoundsInRoot(); + method public boolean isRoot(); + property public final androidx.compose.ui.geometry.Rect boundsInRoot; + property public final androidx.compose.ui.geometry.Rect boundsInWindow; + property public final java.util.List children; + property public final androidx.compose.ui.semantics.SemanticsConfiguration config; + property public final int id; + property public final boolean isRoot; + property public final androidx.compose.ui.layout.LayoutInfo layoutInfo; + property public final boolean mergingEnabled; + property public final androidx.compose.ui.semantics.SemanticsNode? parent; + property public final long positionInRoot; + property public final long positionInWindow; + property public final long positionOnScreen; + property public final androidx.compose.ui.node.RootForTest? root; + property public final long size; + property public final androidx.compose.ui.geometry.Rect touchBoundsInRoot; + } + + public final class SemanticsOwner { + method public androidx.compose.ui.semantics.SemanticsNode getRootSemanticsNode(); + method public androidx.compose.ui.semantics.SemanticsNode getUnmergedRootSemanticsNode(); + property public final androidx.compose.ui.semantics.SemanticsNode rootSemanticsNode; + property public final androidx.compose.ui.semantics.SemanticsNode unmergedRootSemanticsNode; + } + + public final class SemanticsOwnerKt { + method @Deprecated public static java.util.List getAllSemanticsNodes(androidx.compose.ui.semantics.SemanticsOwner, boolean mergingEnabled); + method public static java.util.List getAllSemanticsNodes(androidx.compose.ui.semantics.SemanticsOwner, boolean mergingEnabled, optional boolean skipDeactivatedNodes); + } + + public final class SemanticsProperties { + method public androidx.compose.ui.semantics.SemanticsPropertyKey getCollectionInfo(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getCollectionItemInfo(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey> getContentDescription(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getDisabled(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getEditableText(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getError(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getFocused(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getHeading(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getHorizontalScrollAxisRange(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getImeAction(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey> getIndexForKey(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getInvisibleToUser(); + method @Deprecated public androidx.compose.ui.semantics.SemanticsPropertyKey getIsContainer(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getIsDialog(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getIsEditable(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getIsPopup(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getIsShowingTextSubstitution(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getIsTraversalGroup(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getLiveRegion(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getMaxTextLength(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getPaneTitle(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getPassword(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getProgressBarRangeInfo(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getRole(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getSelectableGroup(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getSelected(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getStateDescription(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getTestTag(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey> getText(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getTextSelectionRange(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getTextSubstitution(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getToggleableState(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getTraversalIndex(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getVerticalScrollAxisRange(); + property public final androidx.compose.ui.semantics.SemanticsPropertyKey CollectionInfo; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey CollectionItemInfo; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey> ContentDescription; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey Disabled; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey EditableText; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey Error; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey Focused; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey Heading; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey HorizontalScrollAxisRange; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey ImeAction; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey> IndexForKey; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey InvisibleToUser; + property @Deprecated public final androidx.compose.ui.semantics.SemanticsPropertyKey IsContainer; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey IsDialog; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey IsEditable; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey IsPopup; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey IsShowingTextSubstitution; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey IsTraversalGroup; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey LiveRegion; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey MaxTextLength; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey PaneTitle; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey Password; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey ProgressBarRangeInfo; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey Role; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey SelectableGroup; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey Selected; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey StateDescription; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey TestTag; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey> Text; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey TextSelectionRange; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey TextSubstitution; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey ToggleableState; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey TraversalIndex; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey VerticalScrollAxisRange; + field public static final androidx.compose.ui.semantics.SemanticsProperties INSTANCE; + } + + @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public final class SemanticsPropertiesAndroid { + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public androidx.compose.ui.semantics.SemanticsPropertyKey getTestTagsAsResourceId(); + property @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public final androidx.compose.ui.semantics.SemanticsPropertyKey TestTagsAsResourceId; + field public static final androidx.compose.ui.semantics.SemanticsPropertiesAndroid INSTANCE; + } + + public final class SemanticsPropertiesKt { + method public static void clearTextSubstitution(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function0? action); + method public static void collapse(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function0? action); + method public static void copyText(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function0? action); + method public static void cutText(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function0? action); + method public static void dialog(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static void disabled(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static void dismiss(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function0? action); + method public static void error(androidx.compose.ui.semantics.SemanticsPropertyReceiver, String description); + method public static void expand(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function0? action); + method public static androidx.compose.ui.semantics.CollectionInfo getCollectionInfo(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static androidx.compose.ui.semantics.CollectionItemInfo getCollectionItemInfo(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static String getContentDescription(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static java.util.List getCustomActions(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static androidx.compose.ui.text.AnnotatedString getEditableText(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static boolean getFocused(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static androidx.compose.ui.semantics.ScrollAxisRange getHorizontalScrollAxisRange(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method @Deprecated public static int getImeAction(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static int getLiveRegion(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static int getMaxTextLength(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static String getPaneTitle(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static androidx.compose.ui.semantics.ProgressBarRangeInfo getProgressBarRangeInfo(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static int getRole(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static void getScrollViewportLength(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function0 action); + method public static boolean getSelected(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static String getStateDescription(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static String getTestTag(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static androidx.compose.ui.text.AnnotatedString getText(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static void getTextLayoutResult(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function1,java.lang.Boolean>? action); + method public static long getTextSelectionRange(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static androidx.compose.ui.text.AnnotatedString getTextSubstitution(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static androidx.compose.ui.state.ToggleableState getToggleableState(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static float getTraversalIndex(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static androidx.compose.ui.semantics.ScrollAxisRange getVerticalScrollAxisRange(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static void heading(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static void indexForKey(androidx.compose.ui.semantics.SemanticsPropertyReceiver, kotlin.jvm.functions.Function1 mapping); + method public static void insertTextAtCursor(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function1? action); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static void invisibleToUser(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method @Deprecated public static boolean isContainer(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static boolean isEditable(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static boolean isShowingTextSubstitution(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static boolean isTraversalGroup(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static void onClick(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function0? action); + method public static void onImeAction(androidx.compose.ui.semantics.SemanticsPropertyReceiver, int imeActionType, optional String? label, kotlin.jvm.functions.Function0? action); + method public static void onLongClick(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function0? action); + method public static void pageDown(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function0? action); + method public static void pageLeft(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function0? action); + method public static void pageRight(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function0? action); + method public static void pageUp(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function0? action); + method public static void password(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static void pasteText(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function0? action); + method @Deprecated public static void performImeAction(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function0? action); + method public static void popup(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static void requestFocus(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function0? action); + method public static void scrollBy(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function2? action); + method public static void scrollByOffset(androidx.compose.ui.semantics.SemanticsPropertyReceiver, kotlin.jvm.functions.Function2,? extends java.lang.Object?> action); + method public static void scrollToIndex(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function1 action); + method public static void selectableGroup(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static void setCollectionInfo(androidx.compose.ui.semantics.SemanticsPropertyReceiver, androidx.compose.ui.semantics.CollectionInfo); + method public static void setCollectionItemInfo(androidx.compose.ui.semantics.SemanticsPropertyReceiver, androidx.compose.ui.semantics.CollectionItemInfo); + method @Deprecated public static void setContainer(androidx.compose.ui.semantics.SemanticsPropertyReceiver, boolean); + method public static void setContentDescription(androidx.compose.ui.semantics.SemanticsPropertyReceiver, String); + method public static void setCustomActions(androidx.compose.ui.semantics.SemanticsPropertyReceiver, java.util.List); + method public static void setEditable(androidx.compose.ui.semantics.SemanticsPropertyReceiver, boolean); + method public static void setEditableText(androidx.compose.ui.semantics.SemanticsPropertyReceiver, androidx.compose.ui.text.AnnotatedString); + method public static void setFocused(androidx.compose.ui.semantics.SemanticsPropertyReceiver, boolean); + method public static void setHorizontalScrollAxisRange(androidx.compose.ui.semantics.SemanticsPropertyReceiver, androidx.compose.ui.semantics.ScrollAxisRange); + method @Deprecated public static void setImeAction(androidx.compose.ui.semantics.SemanticsPropertyReceiver, int); + method public static void setLiveRegion(androidx.compose.ui.semantics.SemanticsPropertyReceiver, int); + method public static void setMaxTextLength(androidx.compose.ui.semantics.SemanticsPropertyReceiver, int); + method public static void setPaneTitle(androidx.compose.ui.semantics.SemanticsPropertyReceiver, String); + method public static void setProgress(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function1? action); + method public static void setProgressBarRangeInfo(androidx.compose.ui.semantics.SemanticsPropertyReceiver, androidx.compose.ui.semantics.ProgressBarRangeInfo); + method public static void setRole(androidx.compose.ui.semantics.SemanticsPropertyReceiver, int); + method public static void setSelected(androidx.compose.ui.semantics.SemanticsPropertyReceiver, boolean); + method public static void setSelection(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function3? action); + method public static void setShowingTextSubstitution(androidx.compose.ui.semantics.SemanticsPropertyReceiver, boolean); + method public static void setStateDescription(androidx.compose.ui.semantics.SemanticsPropertyReceiver, String); + method public static void setTestTag(androidx.compose.ui.semantics.SemanticsPropertyReceiver, String); + method public static void setText(androidx.compose.ui.semantics.SemanticsPropertyReceiver, androidx.compose.ui.text.AnnotatedString); + method public static void setText(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function1? action); + method public static void setTextSelectionRange(androidx.compose.ui.semantics.SemanticsPropertyReceiver, long); + method public static void setTextSubstitution(androidx.compose.ui.semantics.SemanticsPropertyReceiver, androidx.compose.ui.text.AnnotatedString); + method public static void setTextSubstitution(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function1? action); + method public static void setToggleableState(androidx.compose.ui.semantics.SemanticsPropertyReceiver, androidx.compose.ui.state.ToggleableState); + method public static void setTraversalGroup(androidx.compose.ui.semantics.SemanticsPropertyReceiver, boolean); + method public static void setTraversalIndex(androidx.compose.ui.semantics.SemanticsPropertyReceiver, float); + method public static void setVerticalScrollAxisRange(androidx.compose.ui.semantics.SemanticsPropertyReceiver, androidx.compose.ui.semantics.ScrollAxisRange); + method public static void showTextSubstitution(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function1? action); + } + + public final class SemanticsProperties_androidKt { + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static boolean getTestTagsAsResourceId(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static void setTestTagsAsResourceId(androidx.compose.ui.semantics.SemanticsPropertyReceiver, boolean); + } + + public final class SemanticsPropertyKey { + ctor public SemanticsPropertyKey(String name, optional kotlin.jvm.functions.Function2 mergePolicy); + method public String getName(); + method public operator T getValue(androidx.compose.ui.semantics.SemanticsPropertyReceiver thisRef, kotlin.reflect.KProperty property); + method public T? merge(T? parentValue, T childValue); + method public operator void setValue(androidx.compose.ui.semantics.SemanticsPropertyReceiver thisRef, kotlin.reflect.KProperty property, T value); + property public final String name; + } + + public interface SemanticsPropertyReceiver { + method public operator void set(androidx.compose.ui.semantics.SemanticsPropertyKey key, T value); + } + +} + +package androidx.compose.ui.state { + + public enum ToggleableState { + enum_constant public static final androidx.compose.ui.state.ToggleableState Indeterminate; + enum_constant public static final androidx.compose.ui.state.ToggleableState Off; + enum_constant public static final androidx.compose.ui.state.ToggleableState On; + } + + public final class ToggleableStateKt { + method public static androidx.compose.ui.state.ToggleableState ToggleableState(boolean value); + } + +} + +package androidx.compose.ui.text { + + public final class TextMeasurerHelperKt { + method @androidx.compose.runtime.Composable public static androidx.compose.ui.text.TextMeasurer rememberTextMeasurer(optional int cacheSize); + } + +} + +package androidx.compose.ui.viewinterop { + + public final class AndroidView_androidKt { + method @androidx.compose.runtime.Composable @androidx.compose.ui.UiComposable public static void AndroidView(kotlin.jvm.functions.Function1 factory, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1 update); + method @androidx.compose.runtime.Composable @androidx.compose.ui.UiComposable public static void AndroidView(kotlin.jvm.functions.Function1 factory, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1? onReset, optional kotlin.jvm.functions.Function1 onRelease, optional kotlin.jvm.functions.Function1 update); + method public static kotlin.jvm.functions.Function1 getNoOpUpdate(); + property public static final kotlin.jvm.functions.Function1 NoOpUpdate; + } + +} + +package androidx.compose.ui.window { + + public final class AndroidDialog_androidKt { + method @androidx.compose.runtime.Composable public static void Dialog(kotlin.jvm.functions.Function0 onDismissRequest, optional androidx.compose.ui.window.DialogProperties properties, kotlin.jvm.functions.Function0 content); + } + + public final class AndroidPopup_androidKt { + method @androidx.compose.runtime.Composable public static void Popup(optional androidx.compose.ui.Alignment alignment, optional long offset, optional kotlin.jvm.functions.Function0? onDismissRequest, optional androidx.compose.ui.window.PopupProperties properties, kotlin.jvm.functions.Function0 content); + method @androidx.compose.runtime.Composable public static void Popup(androidx.compose.ui.window.PopupPositionProvider popupPositionProvider, optional kotlin.jvm.functions.Function0? onDismissRequest, optional androidx.compose.ui.window.PopupProperties properties, kotlin.jvm.functions.Function0 content); + method @org.jetbrains.annotations.TestOnly public static boolean isPopupLayout(android.view.View view, optional String? testTag); + } + + @androidx.compose.runtime.Immutable public final class DialogProperties { + ctor @Deprecated public DialogProperties(optional boolean dismissOnBackPress, optional boolean dismissOnClickOutside, optional androidx.compose.ui.window.SecureFlagPolicy securePolicy); + ctor public DialogProperties(optional boolean dismissOnBackPress, optional boolean dismissOnClickOutside, optional androidx.compose.ui.window.SecureFlagPolicy securePolicy, optional boolean usePlatformDefaultWidth, optional boolean decorFitsSystemWindows); + ctor public DialogProperties(optional boolean dismissOnBackPress, optional boolean dismissOnClickOutside, optional boolean usePlatformDefaultWidth); + method public boolean getDecorFitsSystemWindows(); + method public boolean getDismissOnBackPress(); + method public boolean getDismissOnClickOutside(); + method public androidx.compose.ui.window.SecureFlagPolicy getSecurePolicy(); + method public boolean getUsePlatformDefaultWidth(); + property public final boolean decorFitsSystemWindows; + property public final boolean dismissOnBackPress; + property public final boolean dismissOnClickOutside; + property public final androidx.compose.ui.window.SecureFlagPolicy securePolicy; + property public final boolean usePlatformDefaultWidth; + } + + public interface DialogWindowProvider { + method public android.view.Window getWindow(); + property public abstract android.view.Window window; + } + + @androidx.compose.runtime.Immutable public interface PopupPositionProvider { + method public long calculatePosition(androidx.compose.ui.unit.IntRect anchorBounds, long windowSize, androidx.compose.ui.unit.LayoutDirection layoutDirection, long popupContentSize); + } + + @androidx.compose.runtime.Immutable public final class PopupProperties { + ctor public PopupProperties(optional boolean focusable, optional boolean dismissOnBackPress, optional boolean dismissOnClickOutside, optional androidx.compose.ui.window.SecureFlagPolicy securePolicy, optional boolean excludeFromSystemGesture, optional boolean clippingEnabled); + ctor public PopupProperties(optional boolean focusable, optional boolean dismissOnBackPress, optional boolean dismissOnClickOutside, optional androidx.compose.ui.window.SecureFlagPolicy securePolicy, optional boolean excludeFromSystemGesture, optional boolean clippingEnabled, optional boolean usePlatformDefaultWidth); + ctor public PopupProperties(optional boolean focusable, optional boolean dismissOnBackPress, optional boolean dismissOnClickOutside, optional boolean clippingEnabled); + ctor public PopupProperties(int flags, optional boolean inheritSecurePolicy, optional boolean dismissOnBackPress, optional boolean dismissOnClickOutside, optional boolean excludeFromSystemGesture, optional boolean usePlatformDefaultWidth); + method public boolean getClippingEnabled(); + method public boolean getDismissOnBackPress(); + method public boolean getDismissOnClickOutside(); + method public boolean getExcludeFromSystemGesture(); + method public boolean getFocusable(); + method public androidx.compose.ui.window.SecureFlagPolicy getSecurePolicy(); + method public boolean getUsePlatformDefaultWidth(); + property public final boolean clippingEnabled; + property public final boolean dismissOnBackPress; + property public final boolean dismissOnClickOutside; + property public final boolean excludeFromSystemGesture; + property public final boolean focusable; + property public final androidx.compose.ui.window.SecureFlagPolicy securePolicy; + property public final boolean usePlatformDefaultWidth; + } + + public enum SecureFlagPolicy { + enum_constant public static final androidx.compose.ui.window.SecureFlagPolicy Inherit; + enum_constant public static final androidx.compose.ui.window.SecureFlagPolicy SecureOff; + enum_constant public static final androidx.compose.ui.window.SecureFlagPolicy SecureOn; + } + +} + diff --git a/compose/ui/ui/api/current.txt b/compose/ui/ui/api/current.txt index 1b754133b63dd..1bc86979d9cbf 100644 --- a/compose/ui/ui/api/current.txt +++ b/compose/ui/ui/api/current.txt @@ -2009,8 +2009,11 @@ package androidx.compose.ui.input.pointer.util { public final class VelocityTrackerKt { method public static void addPointerInputChange(androidx.compose.ui.input.pointer.util.VelocityTracker, androidx.compose.ui.input.pointer.PointerInputChange event); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static boolean getVelocityTrackerAddPointsFix(); method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static boolean getVelocityTrackerStrategyUseImpulse(); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static void setVelocityTrackerAddPointsFix(boolean); method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static void setVelocityTrackerStrategyUseImpulse(boolean); + property @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static final boolean VelocityTrackerAddPointsFix; property @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static final boolean VelocityTrackerStrategyUseImpulse; } diff --git a/compose/ui/ui/api/desktop/ui.api b/compose/ui/ui/api/desktop/ui.api index 1b30fd4e3fa58..77fb6f6ae788c 100644 --- a/compose/ui/ui/api/desktop/ui.api +++ b/compose/ui/ui/api/desktop/ui.api @@ -2267,7 +2267,9 @@ public final class androidx/compose/ui/input/pointer/util/VelocityTracker1D { public final class androidx/compose/ui/input/pointer/util/VelocityTrackerKt { public static final fun addPointerInputChange (Landroidx/compose/ui/input/pointer/util/VelocityTracker;Landroidx/compose/ui/input/pointer/PointerInputChange;)V + public static final fun getVelocityTrackerAddPointsFix ()Z public static final fun getVelocityTrackerStrategyUseImpulse ()Z + public static final fun setVelocityTrackerAddPointsFix (Z)V public static final fun setVelocityTrackerStrategyUseImpulse (Z)V } @@ -3286,6 +3288,7 @@ public abstract interface class androidx/compose/ui/platform/PlatformContext { public fun convertLocalToWindowPosition-MK-Hz9U (J)J public fun convertScreenToLocalPosition-MK-Hz9U (J)J public fun convertWindowToLocalPosition-MK-Hz9U (J)J + public fun getDragAndDropManager ()Landroidx/compose/ui/platform/PlatformDragAndDropManager; public abstract fun getInputModeManager ()Landroidx/compose/ui/input/InputModeManager; public fun getMeasureDrawLayerBounds ()Z public fun getParentFocusManager ()Landroidx/compose/ui/focus/FocusManager; @@ -3298,7 +3301,8 @@ public abstract interface class androidx/compose/ui/platform/PlatformContext { public fun isWindowTransparent ()Z public fun requestFocus ()Z public fun setPointerIcon (Landroidx/compose/ui/input/pointer/PointerIcon;)V - public fun startDrag-12SF9DM (Landroidx/compose/ui/draganddrop/DragAndDropTransferData;JLkotlin/jvm/functions/Function1;)Z + public fun textInputSession (Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun textInputSession$suspendImpl (Landroidx/compose/ui/platform/PlatformContext;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; } public final class androidx/compose/ui/platform/PlatformContext$Companion { @@ -3317,6 +3321,24 @@ public abstract interface class androidx/compose/ui/platform/PlatformContext$Sem public abstract fun onSemanticsOwnerRemoved (Landroidx/compose/ui/semantics/SemanticsOwner;)V } +public abstract interface class androidx/compose/ui/platform/PlatformDragAndDropManager { + public fun isRequestDragAndDropTransferSupported ()Z + public fun requestDragAndDropTransfer-Uv8p0NA (Landroidx/compose/ui/platform/PlatformDragAndDropSource;J)V +} + +public abstract interface class androidx/compose/ui/platform/PlatformDragAndDropSource { + public abstract fun startDragAndDropTransfer-d-4ec7I (Landroidx/compose/ui/platform/PlatformDragAndDropSource$StartTransferScope;JLkotlin/jvm/functions/Function0;)V +} + +public abstract interface class androidx/compose/ui/platform/PlatformDragAndDropSource$StartTransferScope { + public abstract fun startDragAndDropTransfer-12SF9DM (Landroidx/compose/ui/draganddrop/DragAndDropTransferData;JLkotlin/jvm/functions/Function1;)Z +} + +public abstract interface class androidx/compose/ui/platform/PlatformDragAndDropTarget : androidx/compose/ui/draganddrop/DragAndDropTarget { + public abstract fun acceptDragAndDropTransfer (Landroidx/compose/ui/draganddrop/DragAndDropEvent;)Z + public abstract fun getHasEligibleDropTarget ()Z +} + public final class androidx/compose/ui/platform/PlatformInsets { public static final field $stable I public static final field Companion Landroidx/compose/ui/platform/PlatformInsets$Companion; @@ -3360,6 +3382,10 @@ public abstract interface class androidx/compose/ui/platform/PlatformTextInputIn } public abstract interface class androidx/compose/ui/platform/PlatformTextInputMethodRequest { + public abstract fun getImeOptions ()Landroidx/compose/ui/text/input/ImeOptions; + public abstract fun getOnEditCommand ()Lkotlin/jvm/functions/Function1; + public abstract fun getOnImeAction ()Lkotlin/jvm/functions/Function1; + public abstract fun getState ()Landroidx/compose/ui/text/input/TextFieldValue; } public abstract interface class androidx/compose/ui/platform/PlatformTextInputModifierNode : androidx/compose/ui/node/DelegatableNode { @@ -3515,7 +3541,7 @@ public abstract interface class androidx/compose/ui/scene/ComposeScene { public abstract fun createLayer (Landroidx/compose/ui/unit/Density;Landroidx/compose/ui/unit/LayoutDirection;ZLandroidx/compose/runtime/CompositionContext;)Landroidx/compose/ui/scene/ComposeSceneLayer; public abstract fun getCompositionLocalContext ()Landroidx/compose/runtime/CompositionLocalContext; public abstract fun getDensity ()Landroidx/compose/ui/unit/Density; - public abstract fun getDropTarget ()Landroidx/compose/ui/scene/ComposeSceneDropTarget; + public abstract fun getDragAndDropTarget ()Landroidx/compose/ui/scene/ComposeSceneDragAndDropTarget; public abstract fun getFocusManager ()Landroidx/compose/ui/scene/ComposeSceneFocusManager; public abstract fun getLayoutDirection ()Landroidx/compose/ui/unit/LayoutDirection; public abstract fun getSize-bOM6tXw ()Landroidx/compose/ui/unit/IntSize; @@ -3545,13 +3571,17 @@ public final class androidx/compose/ui/scene/ComposeSceneContext$Companion { public final fun getEmpty ()Landroidx/compose/ui/scene/ComposeSceneContext; } -public final class androidx/compose/ui/scene/ComposeSceneDropTarget { +public final class androidx/compose/ui/scene/ComposeSceneDragAndDropTarget : androidx/compose/ui/draganddrop/DragAndDropTarget { public static final field $stable I - public final fun onChanged (Landroidx/compose/ui/draganddrop/DragAndDropEvent;)V - public final fun onDrop (Landroidx/compose/ui/draganddrop/DragAndDropEvent;)Z - public final fun onEntered (Landroidx/compose/ui/draganddrop/DragAndDropEvent;)Z - public final fun onExited (Landroidx/compose/ui/draganddrop/DragAndDropEvent;)V - public final fun onMoved (Landroidx/compose/ui/draganddrop/DragAndDropEvent;)V + public final fun acceptDragAndDropTransfer (Landroidx/compose/ui/draganddrop/DragAndDropEvent;)Z + public final fun getHasEligibleDropTarget ()Z + public fun onChanged (Landroidx/compose/ui/draganddrop/DragAndDropEvent;)V + public fun onDrop (Landroidx/compose/ui/draganddrop/DragAndDropEvent;)Z + public fun onEnded (Landroidx/compose/ui/draganddrop/DragAndDropEvent;)V + public fun onEntered (Landroidx/compose/ui/draganddrop/DragAndDropEvent;)V + public fun onExited (Landroidx/compose/ui/draganddrop/DragAndDropEvent;)V + public fun onMoved (Landroidx/compose/ui/draganddrop/DragAndDropEvent;)V + public fun onStarted (Landroidx/compose/ui/draganddrop/DragAndDropEvent;)V } public final class androidx/compose/ui/scene/ComposeSceneFocusManager { diff --git a/compose/ui/ui/api/res-1.7.0-beta07.txt b/compose/ui/ui/api/res-1.7.0-beta07.txt new file mode 100644 index 0000000000000..ba71b418b6f37 --- /dev/null +++ b/compose/ui/ui/api/res-1.7.0-beta07.txt @@ -0,0 +1 @@ +id hide_in_inspector_tag diff --git a/compose/ui/ui/api/restricted_1.7.0-beta07.txt b/compose/ui/ui/api/restricted_1.7.0-beta07.txt new file mode 100644 index 0000000000000..13916ccdf7631 --- /dev/null +++ b/compose/ui/ui/api/restricted_1.7.0-beta07.txt @@ -0,0 +1,3796 @@ +// Signature format: 4.0 +package androidx.compose.ui { + + public final class AbsoluteAlignment { + method public androidx.compose.ui.Alignment getBottomLeft(); + method public androidx.compose.ui.Alignment getBottomRight(); + method public androidx.compose.ui.Alignment getCenterLeft(); + method public androidx.compose.ui.Alignment getCenterRight(); + method public androidx.compose.ui.Alignment.Horizontal getLeft(); + method public androidx.compose.ui.Alignment.Horizontal getRight(); + method public androidx.compose.ui.Alignment getTopLeft(); + method public androidx.compose.ui.Alignment getTopRight(); + property public final androidx.compose.ui.Alignment BottomLeft; + property public final androidx.compose.ui.Alignment BottomRight; + property public final androidx.compose.ui.Alignment CenterLeft; + property public final androidx.compose.ui.Alignment CenterRight; + property public final androidx.compose.ui.Alignment.Horizontal Left; + property public final androidx.compose.ui.Alignment.Horizontal Right; + property public final androidx.compose.ui.Alignment TopLeft; + property public final androidx.compose.ui.Alignment TopRight; + field public static final androidx.compose.ui.AbsoluteAlignment INSTANCE; + } + + @androidx.compose.runtime.Stable public fun interface Alignment { + method public long align(long size, long space, androidx.compose.ui.unit.LayoutDirection layoutDirection); + field public static final androidx.compose.ui.Alignment.Companion Companion; + } + + public static final class Alignment.Companion { + method public androidx.compose.ui.Alignment.Vertical getBottom(); + method public androidx.compose.ui.Alignment getBottomCenter(); + method public androidx.compose.ui.Alignment getBottomEnd(); + method public androidx.compose.ui.Alignment getBottomStart(); + method public androidx.compose.ui.Alignment getCenter(); + method public androidx.compose.ui.Alignment getCenterEnd(); + method public androidx.compose.ui.Alignment.Horizontal getCenterHorizontally(); + method public androidx.compose.ui.Alignment getCenterStart(); + method public androidx.compose.ui.Alignment.Vertical getCenterVertically(); + method public androidx.compose.ui.Alignment.Horizontal getEnd(); + method public androidx.compose.ui.Alignment.Horizontal getStart(); + method public androidx.compose.ui.Alignment.Vertical getTop(); + method public androidx.compose.ui.Alignment getTopCenter(); + method public androidx.compose.ui.Alignment getTopEnd(); + method public androidx.compose.ui.Alignment getTopStart(); + property public final androidx.compose.ui.Alignment.Vertical Bottom; + property public final androidx.compose.ui.Alignment BottomCenter; + property public final androidx.compose.ui.Alignment BottomEnd; + property public final androidx.compose.ui.Alignment BottomStart; + property public final androidx.compose.ui.Alignment Center; + property public final androidx.compose.ui.Alignment CenterEnd; + property public final androidx.compose.ui.Alignment.Horizontal CenterHorizontally; + property public final androidx.compose.ui.Alignment CenterStart; + property public final androidx.compose.ui.Alignment.Vertical CenterVertically; + property public final androidx.compose.ui.Alignment.Horizontal End; + property public final androidx.compose.ui.Alignment.Horizontal Start; + property public final androidx.compose.ui.Alignment.Vertical Top; + property public final androidx.compose.ui.Alignment TopCenter; + property public final androidx.compose.ui.Alignment TopEnd; + property public final androidx.compose.ui.Alignment TopStart; + } + + @androidx.compose.runtime.Stable public static fun interface Alignment.Horizontal { + method public int align(int size, int space, androidx.compose.ui.unit.LayoutDirection layoutDirection); + } + + @androidx.compose.runtime.Stable public static fun interface Alignment.Vertical { + method public int align(int size, int space); + } + + @androidx.compose.runtime.Immutable public final class BiasAbsoluteAlignment implements androidx.compose.ui.Alignment { + ctor public BiasAbsoluteAlignment(float horizontalBias, float verticalBias); + method public long align(long size, long space, androidx.compose.ui.unit.LayoutDirection layoutDirection); + method public float component1(); + method public float component2(); + method public androidx.compose.ui.BiasAbsoluteAlignment copy(float horizontalBias, float verticalBias); + method public float getHorizontalBias(); + method public float getVerticalBias(); + property public final float horizontalBias; + property public final float verticalBias; + } + + @androidx.compose.runtime.Immutable public static final class BiasAbsoluteAlignment.Horizontal implements androidx.compose.ui.Alignment.Horizontal { + ctor public BiasAbsoluteAlignment.Horizontal(float bias); + method public int align(int size, int space, androidx.compose.ui.unit.LayoutDirection layoutDirection); + method public float component1(); + method public androidx.compose.ui.BiasAbsoluteAlignment.Horizontal copy(float bias); + method public float getBias(); + property public final float bias; + } + + @androidx.compose.runtime.Immutable public final class BiasAlignment implements androidx.compose.ui.Alignment { + ctor public BiasAlignment(float horizontalBias, float verticalBias); + method public long align(long size, long space, androidx.compose.ui.unit.LayoutDirection layoutDirection); + method public float component1(); + method public float component2(); + method public androidx.compose.ui.BiasAlignment copy(float horizontalBias, float verticalBias); + method public float getHorizontalBias(); + method public float getVerticalBias(); + property public final float horizontalBias; + property public final float verticalBias; + } + + @androidx.compose.runtime.Immutable public static final class BiasAlignment.Horizontal implements androidx.compose.ui.Alignment.Horizontal { + ctor public BiasAlignment.Horizontal(float bias); + method public int align(int size, int space, androidx.compose.ui.unit.LayoutDirection layoutDirection); + method public float component1(); + method public androidx.compose.ui.BiasAlignment.Horizontal copy(float bias); + method public float getBias(); + property public final float bias; + } + + @androidx.compose.runtime.Immutable public static final class BiasAlignment.Vertical implements androidx.compose.ui.Alignment.Vertical { + ctor public BiasAlignment.Vertical(float bias); + method public int align(int size, int space); + method public float component1(); + method public androidx.compose.ui.BiasAlignment.Vertical copy(float bias); + method public float getBias(); + property public final float bias; + } + + public final class CombinedModifier implements androidx.compose.ui.Modifier { + ctor public CombinedModifier(androidx.compose.ui.Modifier outer, androidx.compose.ui.Modifier inner); + method public boolean all(kotlin.jvm.functions.Function1 predicate); + method public boolean any(kotlin.jvm.functions.Function1 predicate); + method public R foldIn(R initial, kotlin.jvm.functions.Function2 operation); + method public R foldOut(R initial, kotlin.jvm.functions.Function2 operation); + } + + public final class ComposedModifierKt { + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier composed(androidx.compose.ui.Modifier, String fullyQualifiedName, Object? key1, Object? key2, Object? key3, optional kotlin.jvm.functions.Function1 inspectorInfo, kotlin.jvm.functions.Function1 factory); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier composed(androidx.compose.ui.Modifier, String fullyQualifiedName, Object? key1, Object? key2, optional kotlin.jvm.functions.Function1 inspectorInfo, kotlin.jvm.functions.Function1 factory); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier composed(androidx.compose.ui.Modifier, String fullyQualifiedName, Object? key1, optional kotlin.jvm.functions.Function1 inspectorInfo, kotlin.jvm.functions.Function1 factory); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier composed(androidx.compose.ui.Modifier, String fullyQualifiedName, Object?[] keys, optional kotlin.jvm.functions.Function1 inspectorInfo, kotlin.jvm.functions.Function1 factory); + method public static androidx.compose.ui.Modifier composed(androidx.compose.ui.Modifier, optional kotlin.jvm.functions.Function1 inspectorInfo, kotlin.jvm.functions.Function1 factory); + method @Deprecated public static androidx.compose.ui.Modifier materialize(androidx.compose.runtime.Composer, androidx.compose.ui.Modifier modifier); + method public static androidx.compose.ui.Modifier materializeModifier(androidx.compose.runtime.Composer, androidx.compose.ui.Modifier modifier); + } + + @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface Modifier { + method public boolean all(kotlin.jvm.functions.Function1 predicate); + method public boolean any(kotlin.jvm.functions.Function1 predicate); + method public R foldIn(R initial, kotlin.jvm.functions.Function2 operation); + method public R foldOut(R initial, kotlin.jvm.functions.Function2 operation); + method public default infix androidx.compose.ui.Modifier then(androidx.compose.ui.Modifier other); + field public static final androidx.compose.ui.Modifier.Companion Companion; + } + + public static final class Modifier.Companion implements androidx.compose.ui.Modifier { + method public boolean all(kotlin.jvm.functions.Function1 predicate); + method public boolean any(kotlin.jvm.functions.Function1 predicate); + method public R foldIn(R initial, kotlin.jvm.functions.Function2 operation); + method public R foldOut(R initial, kotlin.jvm.functions.Function2 operation); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public static interface Modifier.Element extends androidx.compose.ui.Modifier { + method public default boolean all(kotlin.jvm.functions.Function1 predicate); + method public default boolean any(kotlin.jvm.functions.Function1 predicate); + method public default R foldIn(R initial, kotlin.jvm.functions.Function2 operation); + method public default R foldOut(R initial, kotlin.jvm.functions.Function2 operation); + } + + public abstract static class Modifier.Node implements androidx.compose.ui.node.DelegatableNode { + ctor public Modifier.Node(); + method public final kotlinx.coroutines.CoroutineScope getCoroutineScope(); + method public final androidx.compose.ui.Modifier.Node getNode(); + method public boolean getShouldAutoInvalidate(); + method public final boolean isAttached(); + method public void onAttach(); + method public void onDetach(); + method public void onReset(); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public final void sideEffect(kotlin.jvm.functions.Function0 effect); + property public final kotlinx.coroutines.CoroutineScope coroutineScope; + property public final boolean isAttached; + property public final androidx.compose.ui.Modifier.Node node; + property public boolean shouldAutoInvalidate; + } + + @androidx.compose.runtime.Stable public interface MotionDurationScale extends kotlin.coroutines.CoroutineContext.Element { + method public default kotlin.coroutines.CoroutineContext.Key getKey(); + method public float getScaleFactor(); + property public default kotlin.coroutines.CoroutineContext.Key key; + property public abstract float scaleFactor; + field public static final androidx.compose.ui.MotionDurationScale.Key Key; + } + + public static final class MotionDurationScale.Key implements kotlin.coroutines.CoroutineContext.Key { + } + + @androidx.compose.runtime.ComposableTargetMarker(description="UI Composable") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FILE, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER, kotlin.annotation.AnnotationTarget.TYPE, kotlin.annotation.AnnotationTarget.TYPE_PARAMETER}) public @interface UiComposable { + } + + public final class ZIndexModifierKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier zIndex(androidx.compose.ui.Modifier, float zIndex); + } + +} + +package androidx.compose.ui.autofill { + + @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public interface Autofill { + method public void cancelAutofillForNode(androidx.compose.ui.autofill.AutofillNode autofillNode); + method public void requestAutofillForNode(androidx.compose.ui.autofill.AutofillNode autofillNode); + } + + @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public final class AutofillNode { + ctor public AutofillNode(optional java.util.List autofillTypes, optional androidx.compose.ui.geometry.Rect? boundingBox, kotlin.jvm.functions.Function1? onFill); + method public java.util.List getAutofillTypes(); + method public androidx.compose.ui.geometry.Rect? getBoundingBox(); + method public int getId(); + method public kotlin.jvm.functions.Function1? getOnFill(); + method public void setBoundingBox(androidx.compose.ui.geometry.Rect?); + property public final java.util.List autofillTypes; + property public final androidx.compose.ui.geometry.Rect? boundingBox; + property public final int id; + property public final kotlin.jvm.functions.Function1? onFill; + } + + @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public final class AutofillTree { + ctor public AutofillTree(); + method public java.util.Map getChildren(); + method public kotlin.Unit? performAutofill(int id, String value); + method public operator void plusAssign(androidx.compose.ui.autofill.AutofillNode autofillNode); + property public final java.util.Map children; + } + + @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public enum AutofillType { + enum_constant public static final androidx.compose.ui.autofill.AutofillType AddressAuxiliaryDetails; + enum_constant public static final androidx.compose.ui.autofill.AutofillType AddressCountry; + enum_constant public static final androidx.compose.ui.autofill.AutofillType AddressLocality; + enum_constant public static final androidx.compose.ui.autofill.AutofillType AddressRegion; + enum_constant public static final androidx.compose.ui.autofill.AutofillType AddressStreet; + enum_constant public static final androidx.compose.ui.autofill.AutofillType BirthDateDay; + enum_constant public static final androidx.compose.ui.autofill.AutofillType BirthDateFull; + enum_constant public static final androidx.compose.ui.autofill.AutofillType BirthDateMonth; + enum_constant public static final androidx.compose.ui.autofill.AutofillType BirthDateYear; + enum_constant public static final androidx.compose.ui.autofill.AutofillType CreditCardExpirationDate; + enum_constant public static final androidx.compose.ui.autofill.AutofillType CreditCardExpirationDay; + enum_constant public static final androidx.compose.ui.autofill.AutofillType CreditCardExpirationMonth; + enum_constant public static final androidx.compose.ui.autofill.AutofillType CreditCardExpirationYear; + enum_constant public static final androidx.compose.ui.autofill.AutofillType CreditCardNumber; + enum_constant public static final androidx.compose.ui.autofill.AutofillType CreditCardSecurityCode; + enum_constant public static final androidx.compose.ui.autofill.AutofillType EmailAddress; + enum_constant public static final androidx.compose.ui.autofill.AutofillType Gender; + enum_constant public static final androidx.compose.ui.autofill.AutofillType NewPassword; + enum_constant public static final androidx.compose.ui.autofill.AutofillType NewUsername; + enum_constant public static final androidx.compose.ui.autofill.AutofillType Password; + enum_constant public static final androidx.compose.ui.autofill.AutofillType PersonFirstName; + enum_constant public static final androidx.compose.ui.autofill.AutofillType PersonFullName; + enum_constant public static final androidx.compose.ui.autofill.AutofillType PersonLastName; + enum_constant public static final androidx.compose.ui.autofill.AutofillType PersonMiddleInitial; + enum_constant public static final androidx.compose.ui.autofill.AutofillType PersonMiddleName; + enum_constant public static final androidx.compose.ui.autofill.AutofillType PersonNamePrefix; + enum_constant public static final androidx.compose.ui.autofill.AutofillType PersonNameSuffix; + enum_constant public static final androidx.compose.ui.autofill.AutofillType PhoneCountryCode; + enum_constant public static final androidx.compose.ui.autofill.AutofillType PhoneNumber; + enum_constant public static final androidx.compose.ui.autofill.AutofillType PhoneNumberDevice; + enum_constant public static final androidx.compose.ui.autofill.AutofillType PhoneNumberNational; + enum_constant public static final androidx.compose.ui.autofill.AutofillType PostalAddress; + enum_constant public static final androidx.compose.ui.autofill.AutofillType PostalCode; + enum_constant public static final androidx.compose.ui.autofill.AutofillType PostalCodeExtended; + enum_constant public static final androidx.compose.ui.autofill.AutofillType SmsOtpCode; + enum_constant public static final androidx.compose.ui.autofill.AutofillType Username; + } + +} + +package androidx.compose.ui.contentcapture { + + @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public sealed interface ContentCaptureManager { + field public static final androidx.compose.ui.contentcapture.ContentCaptureManager.Companion Companion; + } + + public static final class ContentCaptureManager.Companion { + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public boolean isEnabled(); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public void setEnabled(boolean); + property @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public final boolean isEnabled; + } + +} + +package androidx.compose.ui.draganddrop { + + public final class DragAndDropEvent { + ctor public DragAndDropEvent(android.view.DragEvent dragEvent); + } + + public interface DragAndDropModifierNode extends androidx.compose.ui.node.DelegatableNode androidx.compose.ui.draganddrop.DragAndDropTarget { + method public boolean acceptDragAndDropTransfer(androidx.compose.ui.draganddrop.DragAndDropEvent startEvent); + method public void drag(androidx.compose.ui.draganddrop.DragAndDropTransferData transferData, long decorationSize, kotlin.jvm.functions.Function1 drawDragDecoration); + } + + public final class DragAndDropNodeKt { + method public static androidx.compose.ui.draganddrop.DragAndDropModifierNode DragAndDropModifierNode(); + method public static androidx.compose.ui.draganddrop.DragAndDropModifierNode DragAndDropModifierNode(kotlin.jvm.functions.Function1 shouldStartDragAndDrop, androidx.compose.ui.draganddrop.DragAndDropTarget target); + } + + public interface DragAndDropTarget { + method public default void onChanged(androidx.compose.ui.draganddrop.DragAndDropEvent event); + method public boolean onDrop(androidx.compose.ui.draganddrop.DragAndDropEvent event); + method public default void onEnded(androidx.compose.ui.draganddrop.DragAndDropEvent event); + method public default void onEntered(androidx.compose.ui.draganddrop.DragAndDropEvent event); + method public default void onExited(androidx.compose.ui.draganddrop.DragAndDropEvent event); + method public default void onMoved(androidx.compose.ui.draganddrop.DragAndDropEvent event); + method public default void onStarted(androidx.compose.ui.draganddrop.DragAndDropEvent event); + } + + public final class DragAndDropTransferData { + ctor public DragAndDropTransferData(android.content.ClipData clipData, optional Object? localState, optional int flags); + method public android.content.ClipData getClipData(); + method public int getFlags(); + method public Object? getLocalState(); + property public final android.content.ClipData clipData; + property public final int flags; + property public final Object? localState; + } + + public final class DragAndDrop_androidKt { + method public static java.util.Set mimeTypes(androidx.compose.ui.draganddrop.DragAndDropEvent); + method public static android.view.DragEvent toAndroidDragEvent(androidx.compose.ui.draganddrop.DragAndDropEvent); + } + +} + +package androidx.compose.ui.draw { + + public final class AlphaKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier alpha(androidx.compose.ui.Modifier, float alpha); + } + + public final class BlurKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier blur(androidx.compose.ui.Modifier, float radius, optional androidx.compose.ui.graphics.Shape edgeTreatment); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier blur(androidx.compose.ui.Modifier, float radiusX, float radiusY, optional androidx.compose.ui.graphics.Shape edgeTreatment); + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class BlurredEdgeTreatment { + ctor public BlurredEdgeTreatment(androidx.compose.ui.graphics.Shape? shape); + method public androidx.compose.ui.graphics.Shape? getShape(); + property public final androidx.compose.ui.graphics.Shape? shape; + field public static final androidx.compose.ui.draw.BlurredEdgeTreatment.Companion Companion; + } + + public static final class BlurredEdgeTreatment.Companion { + method public androidx.compose.ui.graphics.Shape getRectangle(); + method public androidx.compose.ui.graphics.Shape getUnbounded(); + property public final androidx.compose.ui.graphics.Shape Rectangle; + property public final androidx.compose.ui.graphics.Shape Unbounded; + } + + public interface BuildDrawCacheParams { + method public androidx.compose.ui.unit.Density getDensity(); + method public androidx.compose.ui.unit.LayoutDirection getLayoutDirection(); + method public long getSize(); + property public abstract androidx.compose.ui.unit.Density density; + property public abstract androidx.compose.ui.unit.LayoutDirection layoutDirection; + property public abstract long size; + } + + public sealed interface CacheDrawModifierNode extends androidx.compose.ui.node.DrawModifierNode { + method public void invalidateDrawCache(); + } + + public final class CacheDrawScope implements androidx.compose.ui.unit.Density { + method public float getDensity(); + method public float getFontScale(); + method public androidx.compose.ui.unit.LayoutDirection getLayoutDirection(); + method public long getSize(); + method public androidx.compose.ui.graphics.layer.GraphicsLayer obtainGraphicsLayer(); + method public androidx.compose.ui.draw.DrawResult onDrawBehind(kotlin.jvm.functions.Function1 block); + method public androidx.compose.ui.draw.DrawResult onDrawWithContent(kotlin.jvm.functions.Function1 block); + method public void record(androidx.compose.ui.graphics.layer.GraphicsLayer, optional androidx.compose.ui.unit.Density density, optional androidx.compose.ui.unit.LayoutDirection layoutDirection, optional long size, kotlin.jvm.functions.Function1 block); + property public float density; + property public float fontScale; + property public final androidx.compose.ui.unit.LayoutDirection layoutDirection; + property public final long size; + } + + public final class ClipKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier clip(androidx.compose.ui.Modifier, androidx.compose.ui.graphics.Shape shape); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier clipToBounds(androidx.compose.ui.Modifier); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface DrawCacheModifier extends androidx.compose.ui.draw.DrawModifier { + method public void onBuildCache(androidx.compose.ui.draw.BuildDrawCacheParams params); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface DrawModifier extends androidx.compose.ui.Modifier.Element { + method public void draw(androidx.compose.ui.graphics.drawscope.ContentDrawScope); + } + + public final class DrawModifierKt { + method public static androidx.compose.ui.draw.CacheDrawModifierNode CacheDrawModifierNode(kotlin.jvm.functions.Function1 onBuildDrawCache); + method public static androidx.compose.ui.Modifier drawBehind(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 onDraw); + method public static androidx.compose.ui.Modifier drawWithCache(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 onBuildDrawCache); + method public static androidx.compose.ui.Modifier drawWithContent(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 onDraw); + } + + public final class DrawResult { + } + + public final class PainterModifierKt { + method public static androidx.compose.ui.Modifier paint(androidx.compose.ui.Modifier, androidx.compose.ui.graphics.painter.Painter painter, optional boolean sizeToIntrinsics, optional androidx.compose.ui.Alignment alignment, optional androidx.compose.ui.layout.ContentScale contentScale, optional float alpha, optional androidx.compose.ui.graphics.ColorFilter? colorFilter); + } + + public final class RotateKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier rotate(androidx.compose.ui.Modifier, float degrees); + } + + public final class ScaleKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier scale(androidx.compose.ui.Modifier, float scale); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier scale(androidx.compose.ui.Modifier, float scaleX, float scaleY); + } + + public final class ShadowKt { + method @Deprecated @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier shadow(androidx.compose.ui.Modifier, float elevation, optional androidx.compose.ui.graphics.Shape shape, optional boolean clip); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier shadow(androidx.compose.ui.Modifier, float elevation, optional androidx.compose.ui.graphics.Shape shape, optional boolean clip, optional long ambientColor, optional long spotColor); + } + +} + +package androidx.compose.ui.focus { + + public final class FocusChangedModifierKt { + method public static androidx.compose.ui.Modifier onFocusChanged(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 onFocusChanged); + } + + @kotlin.jvm.JvmInline public final value class FocusDirection { + field public static final androidx.compose.ui.focus.FocusDirection.Companion Companion; + } + + public static final class FocusDirection.Companion { + method public int getDown(); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public int getEnter(); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public int getExit(); + method public int getLeft(); + method public int getNext(); + method public int getPrevious(); + method public int getRight(); + method public int getUp(); + property public final int Down; + property @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public final int Enter; + property @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public final int Exit; + property public final int Left; + property public final int Next; + property public final int Previous; + property public final int Right; + property public final int Up; + } + + @Deprecated @kotlin.jvm.JvmDefaultWithCompatibility public interface FocusEventModifier extends androidx.compose.ui.Modifier.Element { + method @Deprecated public void onFocusEvent(androidx.compose.ui.focus.FocusState focusState); + } + + public final class FocusEventModifierKt { + method public static androidx.compose.ui.Modifier onFocusEvent(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 onFocusEvent); + } + + public interface FocusEventModifierNode extends androidx.compose.ui.node.DelegatableNode { + method public void onFocusEvent(androidx.compose.ui.focus.FocusState focusState); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface FocusManager { + method public void clearFocus(optional boolean force); + method public boolean moveFocus(int focusDirection); + } + + public final class FocusModifierKt { + method @Deprecated public static androidx.compose.ui.Modifier focusModifier(androidx.compose.ui.Modifier); + method public static androidx.compose.ui.Modifier focusTarget(androidx.compose.ui.Modifier); + } + + @Deprecated public final class FocusOrder { + ctor @Deprecated public FocusOrder(); + method @Deprecated public androidx.compose.ui.focus.FocusRequester getDown(); + method @Deprecated public androidx.compose.ui.focus.FocusRequester getEnd(); + method @Deprecated public androidx.compose.ui.focus.FocusRequester getLeft(); + method @Deprecated public androidx.compose.ui.focus.FocusRequester getNext(); + method @Deprecated public androidx.compose.ui.focus.FocusRequester getPrevious(); + method @Deprecated public androidx.compose.ui.focus.FocusRequester getRight(); + method @Deprecated public androidx.compose.ui.focus.FocusRequester getStart(); + method @Deprecated public androidx.compose.ui.focus.FocusRequester getUp(); + method @Deprecated public void setDown(androidx.compose.ui.focus.FocusRequester); + method @Deprecated public void setEnd(androidx.compose.ui.focus.FocusRequester); + method @Deprecated public void setLeft(androidx.compose.ui.focus.FocusRequester); + method @Deprecated public void setNext(androidx.compose.ui.focus.FocusRequester); + method @Deprecated public void setPrevious(androidx.compose.ui.focus.FocusRequester); + method @Deprecated public void setRight(androidx.compose.ui.focus.FocusRequester); + method @Deprecated public void setStart(androidx.compose.ui.focus.FocusRequester); + method @Deprecated public void setUp(androidx.compose.ui.focus.FocusRequester); + property @Deprecated public final androidx.compose.ui.focus.FocusRequester down; + property @Deprecated public final androidx.compose.ui.focus.FocusRequester end; + property @Deprecated public final androidx.compose.ui.focus.FocusRequester left; + property @Deprecated public final androidx.compose.ui.focus.FocusRequester next; + property @Deprecated public final androidx.compose.ui.focus.FocusRequester previous; + property @Deprecated public final androidx.compose.ui.focus.FocusRequester right; + property @Deprecated public final androidx.compose.ui.focus.FocusRequester start; + property @Deprecated public final androidx.compose.ui.focus.FocusRequester up; + } + + @Deprecated @kotlin.jvm.JvmDefaultWithCompatibility public interface FocusOrderModifier extends androidx.compose.ui.Modifier.Element { + method @Deprecated public void populateFocusOrder(androidx.compose.ui.focus.FocusOrder focusOrder); + } + + public final class FocusOrderModifierKt { + method @Deprecated public static androidx.compose.ui.Modifier focusOrder(androidx.compose.ui.Modifier, androidx.compose.ui.focus.FocusRequester focusRequester); + method @Deprecated public static androidx.compose.ui.Modifier focusOrder(androidx.compose.ui.Modifier, androidx.compose.ui.focus.FocusRequester focusRequester, kotlin.jvm.functions.Function1 focusOrderReceiver); + method @Deprecated public static androidx.compose.ui.Modifier focusOrder(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 focusOrderReceiver); + } + + public interface FocusProperties { + method public boolean getCanFocus(); + method public default androidx.compose.ui.focus.FocusRequester getDown(); + method public default androidx.compose.ui.focus.FocusRequester getEnd(); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public default kotlin.jvm.functions.Function1 getEnter(); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public default kotlin.jvm.functions.Function1 getExit(); + method public default androidx.compose.ui.focus.FocusRequester getLeft(); + method public default androidx.compose.ui.focus.FocusRequester getNext(); + method public default androidx.compose.ui.focus.FocusRequester getPrevious(); + method public default androidx.compose.ui.focus.FocusRequester getRight(); + method public default androidx.compose.ui.focus.FocusRequester getStart(); + method public default androidx.compose.ui.focus.FocusRequester getUp(); + method public void setCanFocus(boolean); + method public default void setDown(androidx.compose.ui.focus.FocusRequester); + method public default void setEnd(androidx.compose.ui.focus.FocusRequester); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public default void setEnter(kotlin.jvm.functions.Function1); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public default void setExit(kotlin.jvm.functions.Function1); + method public default void setLeft(androidx.compose.ui.focus.FocusRequester); + method public default void setNext(androidx.compose.ui.focus.FocusRequester); + method public default void setPrevious(androidx.compose.ui.focus.FocusRequester); + method public default void setRight(androidx.compose.ui.focus.FocusRequester); + method public default void setStart(androidx.compose.ui.focus.FocusRequester); + method public default void setUp(androidx.compose.ui.focus.FocusRequester); + property public abstract boolean canFocus; + property public default androidx.compose.ui.focus.FocusRequester down; + property public default androidx.compose.ui.focus.FocusRequester end; + property @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public default kotlin.jvm.functions.Function1 enter; + property @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public default kotlin.jvm.functions.Function1 exit; + property public default androidx.compose.ui.focus.FocusRequester left; + property public default androidx.compose.ui.focus.FocusRequester next; + property public default androidx.compose.ui.focus.FocusRequester previous; + property public default androidx.compose.ui.focus.FocusRequester right; + property public default androidx.compose.ui.focus.FocusRequester start; + property public default androidx.compose.ui.focus.FocusRequester up; + } + + public final class FocusPropertiesKt { + method public static androidx.compose.ui.Modifier focusProperties(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 scope); + } + + public interface FocusPropertiesModifierNode extends androidx.compose.ui.node.DelegatableNode { + method public void applyFocusProperties(androidx.compose.ui.focus.FocusProperties focusProperties); + } + + public final class FocusPropertiesModifierNodeKt { + method public static void invalidateFocusProperties(androidx.compose.ui.focus.FocusPropertiesModifierNode); + } + + @androidx.compose.runtime.Stable public final class FocusRequester { + ctor public FocusRequester(); + method public boolean captureFocus(); + method public boolean freeFocus(); + method public void requestFocus(); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public boolean restoreFocusedChild(); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public boolean saveFocusedChild(); + field public static final androidx.compose.ui.focus.FocusRequester.Companion Companion; + } + + public static final class FocusRequester.Companion { + method public androidx.compose.ui.focus.FocusRequester.Companion.FocusRequesterFactory createRefs(); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public androidx.compose.ui.focus.FocusRequester getCancel(); + method public androidx.compose.ui.focus.FocusRequester getDefault(); + property @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public final androidx.compose.ui.focus.FocusRequester Cancel; + property public final androidx.compose.ui.focus.FocusRequester Default; + } + + public static final class FocusRequester.Companion.FocusRequesterFactory { + method public operator androidx.compose.ui.focus.FocusRequester component1(); + method public operator androidx.compose.ui.focus.FocusRequester component10(); + method public operator androidx.compose.ui.focus.FocusRequester component11(); + method public operator androidx.compose.ui.focus.FocusRequester component12(); + method public operator androidx.compose.ui.focus.FocusRequester component13(); + method public operator androidx.compose.ui.focus.FocusRequester component14(); + method public operator androidx.compose.ui.focus.FocusRequester component15(); + method public operator androidx.compose.ui.focus.FocusRequester component16(); + method public operator androidx.compose.ui.focus.FocusRequester component2(); + method public operator androidx.compose.ui.focus.FocusRequester component3(); + method public operator androidx.compose.ui.focus.FocusRequester component4(); + method public operator androidx.compose.ui.focus.FocusRequester component5(); + method public operator androidx.compose.ui.focus.FocusRequester component6(); + method public operator androidx.compose.ui.focus.FocusRequester component7(); + method public operator androidx.compose.ui.focus.FocusRequester component8(); + method public operator androidx.compose.ui.focus.FocusRequester component9(); + field public static final androidx.compose.ui.focus.FocusRequester.Companion.FocusRequesterFactory INSTANCE; + } + + @Deprecated @kotlin.jvm.JvmDefaultWithCompatibility public interface FocusRequesterModifier extends androidx.compose.ui.Modifier.Element { + method @Deprecated public androidx.compose.ui.focus.FocusRequester getFocusRequester(); + property @Deprecated public abstract androidx.compose.ui.focus.FocusRequester focusRequester; + } + + public final class FocusRequesterModifierKt { + method public static androidx.compose.ui.Modifier focusRequester(androidx.compose.ui.Modifier, androidx.compose.ui.focus.FocusRequester focusRequester); + } + + public interface FocusRequesterModifierNode extends androidx.compose.ui.node.DelegatableNode { + } + + public final class FocusRequesterModifierNodeKt { + method public static boolean captureFocus(androidx.compose.ui.focus.FocusRequesterModifierNode); + method public static boolean freeFocus(androidx.compose.ui.focus.FocusRequesterModifierNode); + method public static boolean requestFocus(androidx.compose.ui.focus.FocusRequesterModifierNode); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static boolean restoreFocusedChild(androidx.compose.ui.focus.FocusRequesterModifierNode); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static boolean saveFocusedChild(androidx.compose.ui.focus.FocusRequesterModifierNode); + } + + public final class FocusRestorerKt { + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier focusRestorer(androidx.compose.ui.Modifier, optional kotlin.jvm.functions.Function0? onRestoreFailed); + } + + public interface FocusState { + method public boolean getHasFocus(); + method public boolean isCaptured(); + method public boolean isFocused(); + property public abstract boolean hasFocus; + property public abstract boolean isCaptured; + property public abstract boolean isFocused; + } + + public sealed interface FocusTargetModifierNode extends androidx.compose.ui.node.DelegatableNode { + method public androidx.compose.ui.focus.FocusState getFocusState(); + property public abstract androidx.compose.ui.focus.FocusState focusState; + } + + public final class FocusTargetModifierNodeKt { + method public static androidx.compose.ui.focus.FocusTargetModifierNode FocusTargetModifierNode(); + } + +} + +package androidx.compose.ui.graphics { + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class CompositingStrategy { + field public static final androidx.compose.ui.graphics.CompositingStrategy.Companion Companion; + } + + public static final class CompositingStrategy.Companion { + method public int getAuto(); + method public int getModulateAlpha(); + method public int getOffscreen(); + property public final int Auto; + property public final int ModulateAlpha; + property public final int Offscreen; + } + + public final class GraphicsLayerModifierKt { + method @Deprecated @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier graphicsLayer(androidx.compose.ui.Modifier, optional float scaleX, optional float scaleY, optional float alpha, optional float translationX, optional float translationY, optional float shadowElevation, optional float rotationX, optional float rotationY, optional float rotationZ, optional float cameraDistance, optional long transformOrigin, optional androidx.compose.ui.graphics.Shape shape, optional boolean clip); + method @Deprecated @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier graphicsLayer(androidx.compose.ui.Modifier, optional float scaleX, optional float scaleY, optional float alpha, optional float translationX, optional float translationY, optional float shadowElevation, optional float rotationX, optional float rotationY, optional float rotationZ, optional float cameraDistance, optional long transformOrigin, optional androidx.compose.ui.graphics.Shape shape, optional boolean clip, optional androidx.compose.ui.graphics.RenderEffect? renderEffect); + method @Deprecated @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier graphicsLayer(androidx.compose.ui.Modifier, optional float scaleX, optional float scaleY, optional float alpha, optional float translationX, optional float translationY, optional float shadowElevation, optional float rotationX, optional float rotationY, optional float rotationZ, optional float cameraDistance, optional long transformOrigin, optional androidx.compose.ui.graphics.Shape shape, optional boolean clip, optional androidx.compose.ui.graphics.RenderEffect? renderEffect, optional long ambientShadowColor, optional long spotShadowColor); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier graphicsLayer(androidx.compose.ui.Modifier, optional float scaleX, optional float scaleY, optional float alpha, optional float translationX, optional float translationY, optional float shadowElevation, optional float rotationX, optional float rotationY, optional float rotationZ, optional float cameraDistance, optional long transformOrigin, optional androidx.compose.ui.graphics.Shape shape, optional boolean clip, optional androidx.compose.ui.graphics.RenderEffect? renderEffect, optional long ambientShadowColor, optional long spotShadowColor, optional int compositingStrategy); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier graphicsLayer(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 block); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier toolingGraphicsLayer(androidx.compose.ui.Modifier); + } + + @androidx.compose.ui.layout.PlacementScopeMarker @kotlin.jvm.JvmDefaultWithCompatibility public interface GraphicsLayerScope extends androidx.compose.ui.unit.Density { + method public float getAlpha(); + method public default long getAmbientShadowColor(); + method public float getCameraDistance(); + method public boolean getClip(); + method public default int getCompositingStrategy(); + method public default androidx.compose.ui.graphics.RenderEffect? getRenderEffect(); + method public float getRotationX(); + method public float getRotationY(); + method public float getRotationZ(); + method public float getScaleX(); + method public float getScaleY(); + method public float getShadowElevation(); + method public androidx.compose.ui.graphics.Shape getShape(); + method public default long getSize(); + method public default long getSpotShadowColor(); + method public long getTransformOrigin(); + method public float getTranslationX(); + method public float getTranslationY(); + method public void setAlpha(float); + method public default void setAmbientShadowColor(long); + method public void setCameraDistance(float); + method public void setClip(boolean); + method public default void setCompositingStrategy(int); + method public default void setRenderEffect(androidx.compose.ui.graphics.RenderEffect?); + method public void setRotationX(float); + method public void setRotationY(float); + method public void setRotationZ(float); + method public void setScaleX(float); + method public void setScaleY(float); + method public void setShadowElevation(float); + method public void setShape(androidx.compose.ui.graphics.Shape); + method public default void setSpotShadowColor(long); + method public void setTransformOrigin(long); + method public void setTranslationX(float); + method public void setTranslationY(float); + property public abstract float alpha; + property public default long ambientShadowColor; + property public abstract float cameraDistance; + property public abstract boolean clip; + property public default int compositingStrategy; + property public default androidx.compose.ui.graphics.RenderEffect? renderEffect; + property public abstract float rotationX; + property public abstract float rotationY; + property public abstract float rotationZ; + property public abstract float scaleX; + property public abstract float scaleY; + property public abstract float shadowElevation; + property public abstract androidx.compose.ui.graphics.Shape shape; + property public default long size; + property public default long spotShadowColor; + property public abstract long transformOrigin; + property public abstract float translationX; + property public abstract float translationY; + } + + public final class GraphicsLayerScopeKt { + method public static androidx.compose.ui.graphics.GraphicsLayerScope GraphicsLayerScope(); + method public static long getDefaultShadowColor(); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ComposableOpenTarget(index=0xffffffff) public static androidx.compose.ui.graphics.layer.GraphicsLayer rememberGraphicsLayer(); + property public static final long DefaultShadowColor; + field public static final float DefaultCameraDistance = 8.0f; + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class TransformOrigin { + method @androidx.compose.runtime.Stable public inline operator float component1(); + method @androidx.compose.runtime.Stable public inline operator float component2(); + method public long copy(optional float pivotFractionX, optional float pivotFractionY); + method public float getPivotFractionX(); + method public float getPivotFractionY(); + property public final float pivotFractionX; + property public final float pivotFractionY; + field public static final androidx.compose.ui.graphics.TransformOrigin.Companion Companion; + } + + public static final class TransformOrigin.Companion { + method public long getCenter(); + property public final long Center; + } + + public final class TransformOriginKt { + method public static long TransformOrigin(float pivotFractionX, float pivotFractionY); + } + +} + +package androidx.compose.ui.graphics.vector { + + @androidx.compose.runtime.Immutable public final class ImageVector { + method public boolean getAutoMirror(); + method public float getDefaultHeight(); + method public float getDefaultWidth(); + method public String getName(); + method public androidx.compose.ui.graphics.vector.VectorGroup getRoot(); + method public int getTintBlendMode(); + method public long getTintColor(); + method public float getViewportHeight(); + method public float getViewportWidth(); + property public final boolean autoMirror; + property public final float defaultHeight; + property public final float defaultWidth; + property public final String name; + property public final androidx.compose.ui.graphics.vector.VectorGroup root; + property public final int tintBlendMode; + property public final long tintColor; + property public final float viewportHeight; + property public final float viewportWidth; + field public static final androidx.compose.ui.graphics.vector.ImageVector.Companion Companion; + } + + public static final class ImageVector.Builder { + ctor @Deprecated public ImageVector.Builder(optional String name, float defaultWidth, float defaultHeight, float viewportWidth, float viewportHeight, optional long tintColor, optional int tintBlendMode); + ctor public ImageVector.Builder(optional String name, float defaultWidth, float defaultHeight, float viewportWidth, float viewportHeight, optional long tintColor, optional int tintBlendMode, optional boolean autoMirror); + method public androidx.compose.ui.graphics.vector.ImageVector.Builder addGroup(optional String name, optional float rotate, optional float pivotX, optional float pivotY, optional float scaleX, optional float scaleY, optional float translationX, optional float translationY, optional java.util.List clipPathData); + method public androidx.compose.ui.graphics.vector.ImageVector.Builder addPath(java.util.List pathData, optional int pathFillType, optional String name, optional androidx.compose.ui.graphics.Brush? fill, optional float fillAlpha, optional androidx.compose.ui.graphics.Brush? stroke, optional float strokeAlpha, optional float strokeLineWidth, optional int strokeLineCap, optional int strokeLineJoin, optional float strokeLineMiter, optional float trimPathStart, optional float trimPathEnd, optional float trimPathOffset); + method public androidx.compose.ui.graphics.vector.ImageVector build(); + method public androidx.compose.ui.graphics.vector.ImageVector.Builder clearGroup(); + } + + public static final class ImageVector.Companion { + } + + public final class ImageVectorKt { + method public static inline androidx.compose.ui.graphics.vector.ImageVector.Builder group(androidx.compose.ui.graphics.vector.ImageVector.Builder, optional String name, optional float rotate, optional float pivotX, optional float pivotY, optional float scaleX, optional float scaleY, optional float translationX, optional float translationY, optional java.util.List clipPathData, kotlin.jvm.functions.Function1 block); + method public static inline androidx.compose.ui.graphics.vector.ImageVector.Builder path(androidx.compose.ui.graphics.vector.ImageVector.Builder, optional String name, optional androidx.compose.ui.graphics.Brush? fill, optional float fillAlpha, optional androidx.compose.ui.graphics.Brush? stroke, optional float strokeAlpha, optional float strokeLineWidth, optional int strokeLineCap, optional int strokeLineJoin, optional float strokeLineMiter, optional int pathFillType, kotlin.jvm.functions.Function1 pathBuilder); + } + + public abstract sealed class VNode { + method public abstract void draw(androidx.compose.ui.graphics.drawscope.DrawScope); + method public final void invalidate(); + } + + public final class VectorApplier extends androidx.compose.runtime.AbstractApplier { + ctor public VectorApplier(androidx.compose.ui.graphics.vector.VNode root); + method public void insertBottomUp(int index, androidx.compose.ui.graphics.vector.VNode instance); + method public void insertTopDown(int index, androidx.compose.ui.graphics.vector.VNode instance); + method public void move(int from, int to, int count); + method protected void onClear(); + method public void remove(int index, int count); + } + + @androidx.compose.runtime.ComposableTargetMarker(description="Vector Composable") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.FILE, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER, kotlin.annotation.AnnotationTarget.TYPE, kotlin.annotation.AnnotationTarget.TYPE_PARAMETER}) public @interface VectorComposable { + } + + public final class VectorComposeKt { + method @androidx.compose.runtime.Composable @androidx.compose.ui.graphics.vector.VectorComposable public static void Group(optional String name, optional float rotation, optional float pivotX, optional float pivotY, optional float scaleX, optional float scaleY, optional float translationX, optional float translationY, optional java.util.List clipPathData, kotlin.jvm.functions.Function0 content); + method @androidx.compose.runtime.Composable @androidx.compose.ui.graphics.vector.VectorComposable public static void Path(java.util.List pathData, optional int pathFillType, optional String name, optional androidx.compose.ui.graphics.Brush? fill, optional float fillAlpha, optional androidx.compose.ui.graphics.Brush? stroke, optional float strokeAlpha, optional float strokeLineWidth, optional int strokeLineCap, optional int strokeLineJoin, optional float strokeLineMiter, optional float trimPathStart, optional float trimPathEnd, optional float trimPathOffset); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface VectorConfig { + method public default T getOrDefault(androidx.compose.ui.graphics.vector.VectorProperty property, T defaultValue); + } + + @androidx.compose.runtime.Immutable public final class VectorGroup extends androidx.compose.ui.graphics.vector.VectorNode implements java.lang.Iterable kotlin.jvm.internal.markers.KMappedMarker { + method public operator androidx.compose.ui.graphics.vector.VectorNode get(int index); + method public java.util.List getClipPathData(); + method public String getName(); + method public float getPivotX(); + method public float getPivotY(); + method public float getRotation(); + method public float getScaleX(); + method public float getScaleY(); + method public int getSize(); + method public float getTranslationX(); + method public float getTranslationY(); + method public java.util.Iterator iterator(); + property public final java.util.List clipPathData; + property public final String name; + property public final float pivotX; + property public final float pivotY; + property public final float rotation; + property public final float scaleX; + property public final float scaleY; + property public final int size; + property public final float translationX; + property public final float translationY; + } + + public final class VectorKt { + method public static inline java.util.List PathData(kotlin.jvm.functions.Function1 block); + method public static java.util.List addPathNodes(String? pathStr); + method public static int getDefaultFillType(); + method public static int getDefaultStrokeLineCap(); + method public static int getDefaultStrokeLineJoin(); + method public static int getDefaultTintBlendMode(); + method public static long getDefaultTintColor(); + method public static java.util.List getEmptyPath(); + property public static final int DefaultFillType; + property public static final int DefaultStrokeLineCap; + property public static final int DefaultStrokeLineJoin; + property public static final int DefaultTintBlendMode; + property public static final long DefaultTintColor; + property public static final java.util.List EmptyPath; + field public static final String DefaultGroupName = ""; + field public static final String DefaultPathName = ""; + field public static final float DefaultPivotX = 0.0f; + field public static final float DefaultPivotY = 0.0f; + field public static final float DefaultRotation = 0.0f; + field public static final float DefaultScaleX = 1.0f; + field public static final float DefaultScaleY = 1.0f; + field public static final float DefaultStrokeLineMiter = 4.0f; + field public static final float DefaultStrokeLineWidth = 0.0f; + field public static final float DefaultTranslationX = 0.0f; + field public static final float DefaultTranslationY = 0.0f; + field public static final float DefaultTrimPathEnd = 1.0f; + field public static final float DefaultTrimPathOffset = 0.0f; + field public static final float DefaultTrimPathStart = 0.0f; + } + + public abstract sealed class VectorNode { + } + + public final class VectorPainter extends androidx.compose.ui.graphics.painter.Painter { + method public long getIntrinsicSize(); + method protected void onDraw(androidx.compose.ui.graphics.drawscope.DrawScope); + property public long intrinsicSize; + } + + public final class VectorPainterKt { + method @androidx.compose.runtime.Composable public static void RenderVectorGroup(androidx.compose.ui.graphics.vector.VectorGroup group, optional java.util.Map configs); + method @androidx.compose.runtime.Composable public static androidx.compose.ui.graphics.vector.VectorPainter rememberVectorPainter(androidx.compose.ui.graphics.vector.ImageVector image); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ComposableOpenTarget(index=0xffffffff) public static androidx.compose.ui.graphics.vector.VectorPainter rememberVectorPainter(float defaultWidth, float defaultHeight, optional float viewportWidth, optional float viewportHeight, optional String name, optional long tintColor, optional int tintBlendMode, optional boolean autoMirror, kotlin.jvm.functions.Function2 content); + method @Deprecated @androidx.compose.runtime.Composable @androidx.compose.runtime.ComposableOpenTarget(index=0xffffffff) public static androidx.compose.ui.graphics.vector.VectorPainter rememberVectorPainter(float defaultWidth, float defaultHeight, optional float viewportWidth, optional float viewportHeight, optional String name, optional long tintColor, optional int tintBlendMode, kotlin.jvm.functions.Function2 content); + field public static final String RootGroupName = "VectorRootGroup"; + } + + @androidx.compose.runtime.Immutable public final class VectorPath extends androidx.compose.ui.graphics.vector.VectorNode { + method public androidx.compose.ui.graphics.Brush? getFill(); + method public float getFillAlpha(); + method public String getName(); + method public java.util.List getPathData(); + method public int getPathFillType(); + method public androidx.compose.ui.graphics.Brush? getStroke(); + method public float getStrokeAlpha(); + method public int getStrokeLineCap(); + method public int getStrokeLineJoin(); + method public float getStrokeLineMiter(); + method public float getStrokeLineWidth(); + method public float getTrimPathEnd(); + method public float getTrimPathOffset(); + method public float getTrimPathStart(); + property public final androidx.compose.ui.graphics.Brush? fill; + property public final float fillAlpha; + property public final String name; + property public final java.util.List pathData; + property public final int pathFillType; + property public final androidx.compose.ui.graphics.Brush? stroke; + property public final float strokeAlpha; + property public final int strokeLineCap; + property public final int strokeLineJoin; + property public final float strokeLineMiter; + property public final float strokeLineWidth; + property public final float trimPathEnd; + property public final float trimPathOffset; + property public final float trimPathStart; + } + + public abstract sealed class VectorProperty { + } + + public static final class VectorProperty.Fill extends androidx.compose.ui.graphics.vector.VectorProperty { + field public static final androidx.compose.ui.graphics.vector.VectorProperty.Fill INSTANCE; + } + + public static final class VectorProperty.FillAlpha extends androidx.compose.ui.graphics.vector.VectorProperty { + field public static final androidx.compose.ui.graphics.vector.VectorProperty.FillAlpha INSTANCE; + } + + public static final class VectorProperty.PathData extends androidx.compose.ui.graphics.vector.VectorProperty> { + field public static final androidx.compose.ui.graphics.vector.VectorProperty.PathData INSTANCE; + } + + public static final class VectorProperty.PivotX extends androidx.compose.ui.graphics.vector.VectorProperty { + field public static final androidx.compose.ui.graphics.vector.VectorProperty.PivotX INSTANCE; + } + + public static final class VectorProperty.PivotY extends androidx.compose.ui.graphics.vector.VectorProperty { + field public static final androidx.compose.ui.graphics.vector.VectorProperty.PivotY INSTANCE; + } + + public static final class VectorProperty.Rotation extends androidx.compose.ui.graphics.vector.VectorProperty { + field public static final androidx.compose.ui.graphics.vector.VectorProperty.Rotation INSTANCE; + } + + public static final class VectorProperty.ScaleX extends androidx.compose.ui.graphics.vector.VectorProperty { + field public static final androidx.compose.ui.graphics.vector.VectorProperty.ScaleX INSTANCE; + } + + public static final class VectorProperty.ScaleY extends androidx.compose.ui.graphics.vector.VectorProperty { + field public static final androidx.compose.ui.graphics.vector.VectorProperty.ScaleY INSTANCE; + } + + public static final class VectorProperty.Stroke extends androidx.compose.ui.graphics.vector.VectorProperty { + field public static final androidx.compose.ui.graphics.vector.VectorProperty.Stroke INSTANCE; + } + + public static final class VectorProperty.StrokeAlpha extends androidx.compose.ui.graphics.vector.VectorProperty { + field public static final androidx.compose.ui.graphics.vector.VectorProperty.StrokeAlpha INSTANCE; + } + + public static final class VectorProperty.StrokeLineWidth extends androidx.compose.ui.graphics.vector.VectorProperty { + field public static final androidx.compose.ui.graphics.vector.VectorProperty.StrokeLineWidth INSTANCE; + } + + public static final class VectorProperty.TranslateX extends androidx.compose.ui.graphics.vector.VectorProperty { + field public static final androidx.compose.ui.graphics.vector.VectorProperty.TranslateX INSTANCE; + } + + public static final class VectorProperty.TranslateY extends androidx.compose.ui.graphics.vector.VectorProperty { + field public static final androidx.compose.ui.graphics.vector.VectorProperty.TranslateY INSTANCE; + } + + public static final class VectorProperty.TrimPathEnd extends androidx.compose.ui.graphics.vector.VectorProperty { + field public static final androidx.compose.ui.graphics.vector.VectorProperty.TrimPathEnd INSTANCE; + } + + public static final class VectorProperty.TrimPathOffset extends androidx.compose.ui.graphics.vector.VectorProperty { + field public static final androidx.compose.ui.graphics.vector.VectorProperty.TrimPathOffset INSTANCE; + } + + public static final class VectorProperty.TrimPathStart extends androidx.compose.ui.graphics.vector.VectorProperty { + field public static final androidx.compose.ui.graphics.vector.VectorProperty.TrimPathStart INSTANCE; + } + +} + +package androidx.compose.ui.hapticfeedback { + + public interface HapticFeedback { + method public void performHapticFeedback(int hapticFeedbackType); + } + + @kotlin.jvm.JvmInline public final value class HapticFeedbackType { + ctor public HapticFeedbackType(int value); + field public static final androidx.compose.ui.hapticfeedback.HapticFeedbackType.Companion Companion; + } + + public static final class HapticFeedbackType.Companion { + method public int getLongPress(); + method public int getTextHandleMove(); + method public java.util.List values(); + property public final int LongPress; + property public final int TextHandleMove; + } + +} + +package androidx.compose.ui.input { + + @kotlin.jvm.JvmInline public final value class InputMode { + field public static final androidx.compose.ui.input.InputMode.Companion Companion; + } + + public static final class InputMode.Companion { + method public int getKeyboard(); + method public int getTouch(); + property public final int Keyboard; + property public final int Touch; + } + + public interface InputModeManager { + method public int getInputMode(); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public boolean requestInputMode(int inputMode); + property public abstract int inputMode; + } + +} + +package androidx.compose.ui.input.key { + + @kotlin.jvm.JvmInline public final value class Key { + ctor public Key(long keyCode); + method public long getKeyCode(); + property public final long keyCode; + field public static final androidx.compose.ui.input.key.Key.Companion Companion; + } + + public static final class Key.Companion { + method public long getA(); + method public long getAllApps(); + method public long getAltLeft(); + method public long getAltRight(); + method public long getApostrophe(); + method public long getAppSwitch(); + method public long getAssist(); + method public long getAt(); + method public long getAvReceiverInput(); + method public long getAvReceiverPower(); + method public long getB(); + method public long getBack(); + method public long getBackslash(); + method public long getBackspace(); + method public long getBookmark(); + method public long getBreak(); + method public long getBrightnessDown(); + method public long getBrightnessUp(); + method public long getBrowser(); + method public long getButton1(); + method public long getButton10(); + method public long getButton11(); + method public long getButton12(); + method public long getButton13(); + method public long getButton14(); + method public long getButton15(); + method public long getButton16(); + method public long getButton2(); + method public long getButton3(); + method public long getButton4(); + method public long getButton5(); + method public long getButton6(); + method public long getButton7(); + method public long getButton8(); + method public long getButton9(); + method public long getButtonA(); + method public long getButtonB(); + method public long getButtonC(); + method public long getButtonL1(); + method public long getButtonL2(); + method public long getButtonMode(); + method public long getButtonR1(); + method public long getButtonR2(); + method public long getButtonSelect(); + method public long getButtonStart(); + method public long getButtonThumbLeft(); + method public long getButtonThumbRight(); + method public long getButtonX(); + method public long getButtonY(); + method public long getButtonZ(); + method public long getC(); + method public long getCalculator(); + method public long getCalendar(); + method public long getCall(); + method public long getCamera(); + method public long getCapsLock(); + method public long getCaptions(); + method public long getChannelDown(); + method public long getChannelUp(); + method public long getClear(); + method public long getComma(); + method public long getContacts(); + method public long getCopy(); + method public long getCtrlLeft(); + method public long getCtrlRight(); + method public long getCut(); + method public long getD(); + method public long getDelete(); + method public long getDirectionCenter(); + method public long getDirectionDown(); + method public long getDirectionDownLeft(); + method public long getDirectionDownRight(); + method public long getDirectionLeft(); + method public long getDirectionRight(); + method public long getDirectionUp(); + method public long getDirectionUpLeft(); + method public long getDirectionUpRight(); + method public long getDvr(); + method public long getE(); + method public long getEight(); + method public long getEisu(); + method public long getEndCall(); + method public long getEnter(); + method public long getEnvelope(); + method public long getEquals(); + method public long getEscape(); + method public long getF(); + method public long getF1(); + method public long getF10(); + method public long getF11(); + method public long getF12(); + method public long getF2(); + method public long getF3(); + method public long getF4(); + method public long getF5(); + method public long getF6(); + method public long getF7(); + method public long getF8(); + method public long getF9(); + method public long getFive(); + method public long getFocus(); + method public long getForward(); + method public long getFour(); + method public long getFunction(); + method public long getG(); + method public long getGrave(); + method public long getGuide(); + method public long getH(); + method public long getHeadsetHook(); + method public long getHelp(); + method public long getHenkan(); + method public long getHome(); + method public long getI(); + method public long getInfo(); + method public long getInsert(); + method public long getJ(); + method public long getK(); + method public long getKana(); + method public long getKatakanaHiragana(); + method public long getL(); + method public long getLanguageSwitch(); + method public long getLastChannel(); + method public long getLeftBracket(); + method public long getM(); + method public long getMannerMode(); + method public long getMediaAudioTrack(); + method public long getMediaClose(); + method public long getMediaEject(); + method public long getMediaFastForward(); + method public long getMediaNext(); + method public long getMediaPause(); + method public long getMediaPlay(); + method public long getMediaPlayPause(); + method public long getMediaPrevious(); + method public long getMediaRecord(); + method public long getMediaRewind(); + method public long getMediaSkipBackward(); + method public long getMediaSkipForward(); + method public long getMediaStepBackward(); + method public long getMediaStepForward(); + method public long getMediaStop(); + method public long getMediaTopMenu(); + method public long getMenu(); + method public long getMetaLeft(); + method public long getMetaRight(); + method public long getMicrophoneMute(); + method public long getMinus(); + method public long getMoveEnd(); + method public long getMoveHome(); + method public long getMuhenkan(); + method public long getMultiply(); + method public long getMusic(); + method public long getN(); + method public long getNavigateIn(); + method public long getNavigateNext(); + method public long getNavigateOut(); + method public long getNavigatePrevious(); + method public long getNine(); + method public long getNotification(); + method public long getNumLock(); + method public long getNumPad0(); + method public long getNumPad1(); + method public long getNumPad2(); + method public long getNumPad3(); + method public long getNumPad4(); + method public long getNumPad5(); + method public long getNumPad6(); + method public long getNumPad7(); + method public long getNumPad8(); + method public long getNumPad9(); + method public long getNumPadAdd(); + method public long getNumPadComma(); + method public long getNumPadDivide(); + method public long getNumPadDot(); + method public long getNumPadEnter(); + method public long getNumPadEquals(); + method public long getNumPadLeftParenthesis(); + method public long getNumPadMultiply(); + method public long getNumPadRightParenthesis(); + method public long getNumPadSubtract(); + method public long getNumber(); + method public long getO(); + method public long getOne(); + method public long getP(); + method public long getPageDown(); + method public long getPageUp(); + method public long getPairing(); + method public long getPaste(); + method public long getPeriod(); + method public long getPictureSymbols(); + method public long getPlus(); + method public long getPound(); + method public long getPower(); + method public long getPrintScreen(); + method public long getProfileSwitch(); + method public long getProgramBlue(); + method public long getProgramGreen(); + method public long getProgramRed(); + method public long getProgramYellow(); + method public long getQ(); + method public long getR(); + method public long getRefresh(); + method public long getRightBracket(); + method public long getRo(); + method public long getS(); + method public long getScrollLock(); + method public long getSearch(); + method public long getSemicolon(); + method public long getSetTopBoxInput(); + method public long getSetTopBoxPower(); + method public long getSettings(); + method public long getSeven(); + method public long getShiftLeft(); + method public long getShiftRight(); + method public long getSix(); + method public long getSlash(); + method public long getSleep(); + method public long getSoftLeft(); + method public long getSoftRight(); + method public long getSoftSleep(); + method public long getSpacebar(); + method public long getStem1(); + method public long getStem2(); + method public long getStem3(); + method public long getStemPrimary(); + method public long getSwitchCharset(); + method public long getSymbol(); + method public long getSystemNavigationDown(); + method public long getSystemNavigationLeft(); + method public long getSystemNavigationRight(); + method public long getSystemNavigationUp(); + method public long getT(); + method public long getTab(); + method public long getThree(); + method public long getThumbsDown(); + method public long getThumbsUp(); + method public long getToggle2D3D(); + method public long getTv(); + method public long getTvAntennaCable(); + method public long getTvAudioDescription(); + method public long getTvAudioDescriptionMixingVolumeDown(); + method public long getTvAudioDescriptionMixingVolumeUp(); + method public long getTvContentsMenu(); + method public long getTvDataService(); + method public long getTvInput(); + method public long getTvInputComponent1(); + method public long getTvInputComponent2(); + method public long getTvInputComposite1(); + method public long getTvInputComposite2(); + method public long getTvInputHdmi1(); + method public long getTvInputHdmi2(); + method public long getTvInputHdmi3(); + method public long getTvInputHdmi4(); + method public long getTvInputVga1(); + method public long getTvMediaContextMenu(); + method public long getTvNetwork(); + method public long getTvNumberEntry(); + method public long getTvPower(); + method public long getTvRadioService(); + method public long getTvSatellite(); + method public long getTvSatelliteBs(); + method public long getTvSatelliteCs(); + method public long getTvSatelliteService(); + method public long getTvTeletext(); + method public long getTvTerrestrialAnalog(); + method public long getTvTerrestrialDigital(); + method public long getTvTimerProgramming(); + method public long getTvZoomMode(); + method public long getTwo(); + method public long getU(); + method public long getUnknown(); + method public long getV(); + method public long getVoiceAssist(); + method public long getVolumeDown(); + method public long getVolumeMute(); + method public long getVolumeUp(); + method public long getW(); + method public long getWakeUp(); + method public long getWindow(); + method public long getX(); + method public long getY(); + method public long getYen(); + method public long getZ(); + method public long getZenkakuHankaru(); + method public long getZero(); + method public long getZoomIn(); + method public long getZoomOut(); + property public final long A; + property public final long AllApps; + property public final long AltLeft; + property public final long AltRight; + property public final long Apostrophe; + property public final long AppSwitch; + property public final long Assist; + property public final long At; + property public final long AvReceiverInput; + property public final long AvReceiverPower; + property public final long B; + property public final long Back; + property public final long Backslash; + property public final long Backspace; + property public final long Bookmark; + property public final long Break; + property public final long BrightnessDown; + property public final long BrightnessUp; + property public final long Browser; + property public final long Button1; + property public final long Button10; + property public final long Button11; + property public final long Button12; + property public final long Button13; + property public final long Button14; + property public final long Button15; + property public final long Button16; + property public final long Button2; + property public final long Button3; + property public final long Button4; + property public final long Button5; + property public final long Button6; + property public final long Button7; + property public final long Button8; + property public final long Button9; + property public final long ButtonA; + property public final long ButtonB; + property public final long ButtonC; + property public final long ButtonL1; + property public final long ButtonL2; + property public final long ButtonMode; + property public final long ButtonR1; + property public final long ButtonR2; + property public final long ButtonSelect; + property public final long ButtonStart; + property public final long ButtonThumbLeft; + property public final long ButtonThumbRight; + property public final long ButtonX; + property public final long ButtonY; + property public final long ButtonZ; + property public final long C; + property public final long Calculator; + property public final long Calendar; + property public final long Call; + property public final long Camera; + property public final long CapsLock; + property public final long Captions; + property public final long ChannelDown; + property public final long ChannelUp; + property public final long Clear; + property public final long Comma; + property public final long Contacts; + property public final long Copy; + property public final long CtrlLeft; + property public final long CtrlRight; + property public final long Cut; + property public final long D; + property public final long Delete; + property public final long DirectionCenter; + property public final long DirectionDown; + property public final long DirectionDownLeft; + property public final long DirectionDownRight; + property public final long DirectionLeft; + property public final long DirectionRight; + property public final long DirectionUp; + property public final long DirectionUpLeft; + property public final long DirectionUpRight; + property public final long Dvr; + property public final long E; + property public final long Eight; + property public final long Eisu; + property public final long EndCall; + property public final long Enter; + property public final long Envelope; + property public final long Equals; + property public final long Escape; + property public final long F; + property public final long F1; + property public final long F10; + property public final long F11; + property public final long F12; + property public final long F2; + property public final long F3; + property public final long F4; + property public final long F5; + property public final long F6; + property public final long F7; + property public final long F8; + property public final long F9; + property public final long Five; + property public final long Focus; + property public final long Forward; + property public final long Four; + property public final long Function; + property public final long G; + property public final long Grave; + property public final long Guide; + property public final long H; + property public final long HeadsetHook; + property public final long Help; + property public final long Henkan; + property public final long Home; + property public final long I; + property public final long Info; + property public final long Insert; + property public final long J; + property public final long K; + property public final long Kana; + property public final long KatakanaHiragana; + property public final long L; + property public final long LanguageSwitch; + property public final long LastChannel; + property public final long LeftBracket; + property public final long M; + property public final long MannerMode; + property public final long MediaAudioTrack; + property public final long MediaClose; + property public final long MediaEject; + property public final long MediaFastForward; + property public final long MediaNext; + property public final long MediaPause; + property public final long MediaPlay; + property public final long MediaPlayPause; + property public final long MediaPrevious; + property public final long MediaRecord; + property public final long MediaRewind; + property public final long MediaSkipBackward; + property public final long MediaSkipForward; + property public final long MediaStepBackward; + property public final long MediaStepForward; + property public final long MediaStop; + property public final long MediaTopMenu; + property public final long Menu; + property public final long MetaLeft; + property public final long MetaRight; + property public final long MicrophoneMute; + property public final long Minus; + property public final long MoveEnd; + property public final long MoveHome; + property public final long Muhenkan; + property public final long Multiply; + property public final long Music; + property public final long N; + property public final long NavigateIn; + property public final long NavigateNext; + property public final long NavigateOut; + property public final long NavigatePrevious; + property public final long Nine; + property public final long Notification; + property public final long NumLock; + property public final long NumPad0; + property public final long NumPad1; + property public final long NumPad2; + property public final long NumPad3; + property public final long NumPad4; + property public final long NumPad5; + property public final long NumPad6; + property public final long NumPad7; + property public final long NumPad8; + property public final long NumPad9; + property public final long NumPadAdd; + property public final long NumPadComma; + property public final long NumPadDivide; + property public final long NumPadDot; + property public final long NumPadEnter; + property public final long NumPadEquals; + property public final long NumPadLeftParenthesis; + property public final long NumPadMultiply; + property public final long NumPadRightParenthesis; + property public final long NumPadSubtract; + property public final long Number; + property public final long O; + property public final long One; + property public final long P; + property public final long PageDown; + property public final long PageUp; + property public final long Pairing; + property public final long Paste; + property public final long Period; + property public final long PictureSymbols; + property public final long Plus; + property public final long Pound; + property public final long Power; + property public final long PrintScreen; + property public final long ProfileSwitch; + property public final long ProgramBlue; + property public final long ProgramGreen; + property public final long ProgramRed; + property public final long ProgramYellow; + property public final long Q; + property public final long R; + property public final long Refresh; + property public final long RightBracket; + property public final long Ro; + property public final long S; + property public final long ScrollLock; + property public final long Search; + property public final long Semicolon; + property public final long SetTopBoxInput; + property public final long SetTopBoxPower; + property public final long Settings; + property public final long Seven; + property public final long ShiftLeft; + property public final long ShiftRight; + property public final long Six; + property public final long Slash; + property public final long Sleep; + property public final long SoftLeft; + property public final long SoftRight; + property public final long SoftSleep; + property public final long Spacebar; + property public final long Stem1; + property public final long Stem2; + property public final long Stem3; + property public final long StemPrimary; + property public final long SwitchCharset; + property public final long Symbol; + property public final long SystemNavigationDown; + property public final long SystemNavigationLeft; + property public final long SystemNavigationRight; + property public final long SystemNavigationUp; + property public final long T; + property public final long Tab; + property public final long Three; + property public final long ThumbsDown; + property public final long ThumbsUp; + property public final long Toggle2D3D; + property public final long Tv; + property public final long TvAntennaCable; + property public final long TvAudioDescription; + property public final long TvAudioDescriptionMixingVolumeDown; + property public final long TvAudioDescriptionMixingVolumeUp; + property public final long TvContentsMenu; + property public final long TvDataService; + property public final long TvInput; + property public final long TvInputComponent1; + property public final long TvInputComponent2; + property public final long TvInputComposite1; + property public final long TvInputComposite2; + property public final long TvInputHdmi1; + property public final long TvInputHdmi2; + property public final long TvInputHdmi3; + property public final long TvInputHdmi4; + property public final long TvInputVga1; + property public final long TvMediaContextMenu; + property public final long TvNetwork; + property public final long TvNumberEntry; + property public final long TvPower; + property public final long TvRadioService; + property public final long TvSatellite; + property public final long TvSatelliteBs; + property public final long TvSatelliteCs; + property public final long TvSatelliteService; + property public final long TvTeletext; + property public final long TvTerrestrialAnalog; + property public final long TvTerrestrialDigital; + property public final long TvTimerProgramming; + property public final long TvZoomMode; + property public final long Two; + property public final long U; + property public final long Unknown; + property public final long V; + property public final long VoiceAssist; + property public final long VolumeDown; + property public final long VolumeMute; + property public final long VolumeUp; + property public final long W; + property public final long WakeUp; + property public final long Window; + property public final long X; + property public final long Y; + property public final long Yen; + property public final long Z; + property public final long ZenkakuHankaru; + property public final long Zero; + property public final long ZoomIn; + property public final long ZoomOut; + } + + @kotlin.jvm.JvmInline public final value class KeyEvent { + ctor public KeyEvent(android.view.KeyEvent nativeKeyEvent); + method public android.view.KeyEvent getNativeKeyEvent(); + property public final android.view.KeyEvent nativeKeyEvent; + } + + @kotlin.jvm.JvmInline public final value class KeyEventType { + field public static final androidx.compose.ui.input.key.KeyEventType.Companion Companion; + } + + public static final class KeyEventType.Companion { + method public int getKeyDown(); + method public int getKeyUp(); + method public int getUnknown(); + property public final int KeyDown; + property public final int KeyUp; + property public final int Unknown; + } + + public final class KeyEvent_androidKt { + method public static long getKey(android.view.KeyEvent); + method public static int getType(android.view.KeyEvent); + method public static int getUtf16CodePoint(android.view.KeyEvent); + method public static boolean isAltPressed(android.view.KeyEvent); + method public static boolean isCtrlPressed(android.view.KeyEvent); + method public static boolean isMetaPressed(android.view.KeyEvent); + method public static boolean isShiftPressed(android.view.KeyEvent); + } + + public final class KeyInputModifierKt { + method public static androidx.compose.ui.Modifier onKeyEvent(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 onKeyEvent); + method public static androidx.compose.ui.Modifier onPreviewKeyEvent(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 onPreviewKeyEvent); + } + + public interface KeyInputModifierNode extends androidx.compose.ui.node.DelegatableNode { + method public boolean onKeyEvent(android.view.KeyEvent event); + method public boolean onPreKeyEvent(android.view.KeyEvent event); + } + + public final class Key_androidKt { + method public static long Key(int nativeKeyCode); + method public static int getNativeKeyCode(long); + } + + @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public interface SoftKeyboardInterceptionModifierNode extends androidx.compose.ui.node.DelegatableNode { + method public boolean onInterceptKeyBeforeSoftKeyboard(android.view.KeyEvent event); + method public boolean onPreInterceptKeyBeforeSoftKeyboard(android.view.KeyEvent event); + } + + public final class SoftwareKeyboardInterceptionModifierKt { + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier onInterceptKeyBeforeSoftKeyboard(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 onInterceptKeyBeforeSoftKeyboard); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier onPreInterceptKeyBeforeSoftKeyboard(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 onPreInterceptKeyBeforeSoftKeyboard); + } + +} + +package androidx.compose.ui.input.nestedscroll { + + @kotlin.jvm.JvmDefaultWithCompatibility public interface NestedScrollConnection { + method public default suspend Object? onPostFling(long consumed, long available, kotlin.coroutines.Continuation); + method public default long onPostScroll(long consumed, long available, int source); + method public default suspend Object? onPreFling(long available, kotlin.coroutines.Continuation); + method public default long onPreScroll(long available, int source); + } + + public final class NestedScrollDispatcher { + ctor public NestedScrollDispatcher(); + method public suspend Object? dispatchPostFling(long consumed, long available, kotlin.coroutines.Continuation); + method public long dispatchPostScroll(long consumed, long available, int source); + method public suspend Object? dispatchPreFling(long available, kotlin.coroutines.Continuation); + method public long dispatchPreScroll(long available, int source); + method public kotlinx.coroutines.CoroutineScope getCoroutineScope(); + property public final kotlinx.coroutines.CoroutineScope coroutineScope; + } + + public final class NestedScrollModifierKt { + method public static androidx.compose.ui.Modifier nestedScroll(androidx.compose.ui.Modifier, androidx.compose.ui.input.nestedscroll.NestedScrollConnection connection, optional androidx.compose.ui.input.nestedscroll.NestedScrollDispatcher? dispatcher); + } + + public final class NestedScrollNodeKt { + method public static androidx.compose.ui.node.DelegatableNode nestedScrollModifierNode(androidx.compose.ui.input.nestedscroll.NestedScrollConnection connection, androidx.compose.ui.input.nestedscroll.NestedScrollDispatcher? dispatcher); + } + + @kotlin.jvm.JvmInline public final value class NestedScrollSource { + field public static final androidx.compose.ui.input.nestedscroll.NestedScrollSource.Companion Companion; + } + + public static final class NestedScrollSource.Companion { + method @Deprecated public int getDrag(); + method @Deprecated public int getFling(); + method @Deprecated @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public int getRelocate(); + method public int getSideEffect(); + method public int getUserInput(); + method @Deprecated public int getWheel(); + property @Deprecated public final int Drag; + property @Deprecated public final int Fling; + property @Deprecated @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public final int Relocate; + property public final int SideEffect; + property public final int UserInput; + property @Deprecated public final int Wheel; + } + +} + +package androidx.compose.ui.input.pointer { + + @kotlin.coroutines.RestrictsSuspension @kotlin.jvm.JvmDefaultWithCompatibility public interface AwaitPointerEventScope extends androidx.compose.ui.unit.Density { + method public suspend Object? awaitPointerEvent(optional androidx.compose.ui.input.pointer.PointerEventPass pass, kotlin.coroutines.Continuation); + method public androidx.compose.ui.input.pointer.PointerEvent getCurrentEvent(); + method public default long getExtendedTouchPadding(); + method public long getSize(); + method public androidx.compose.ui.platform.ViewConfiguration getViewConfiguration(); + method public default suspend Object? withTimeout(long timeMillis, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + method public default suspend Object? withTimeoutOrNull(long timeMillis, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + property public abstract androidx.compose.ui.input.pointer.PointerEvent currentEvent; + property public default long extendedTouchPadding; + property public abstract long size; + property public abstract androidx.compose.ui.platform.ViewConfiguration viewConfiguration; + } + + @Deprecated public final class ConsumedData { + ctor @Deprecated public ConsumedData(optional @Deprecated boolean positionChange, optional @Deprecated boolean downChange); + method @Deprecated public boolean getDownChange(); + method @Deprecated public boolean getPositionChange(); + method @Deprecated public void setDownChange(boolean); + method @Deprecated public void setPositionChange(boolean); + property @Deprecated public final boolean downChange; + property @Deprecated public final boolean positionChange; + } + + @SuppressCompatibility @androidx.compose.runtime.Immutable @androidx.compose.ui.ExperimentalComposeUiApi public final class HistoricalChange { + ctor public HistoricalChange(long uptimeMillis, long position); + method public long getPosition(); + method public long getUptimeMillis(); + property public final long position; + property public final long uptimeMillis; + } + + @kotlin.jvm.JvmInline public final value class PointerButtons { + ctor public PointerButtons(int packedValue); + } + + public final class PointerEvent { + ctor public PointerEvent(java.util.List changes); + method public java.util.List component1(); + method public androidx.compose.ui.input.pointer.PointerEvent copy(java.util.List changes, android.view.MotionEvent? motionEvent); + method public int getButtons(); + method public java.util.List getChanges(); + method public int getKeyboardModifiers(); + method public int getType(); + property public final int buttons; + property public final java.util.List changes; + property public final int keyboardModifiers; + property public final int type; + } + + public final class PointerEventKt { + method @Deprecated public static boolean anyChangeConsumed(androidx.compose.ui.input.pointer.PointerInputChange); + method public static boolean changedToDown(androidx.compose.ui.input.pointer.PointerInputChange); + method public static boolean changedToDownIgnoreConsumed(androidx.compose.ui.input.pointer.PointerInputChange); + method public static boolean changedToUp(androidx.compose.ui.input.pointer.PointerInputChange); + method public static boolean changedToUpIgnoreConsumed(androidx.compose.ui.input.pointer.PointerInputChange); + method @Deprecated public static void consumeAllChanges(androidx.compose.ui.input.pointer.PointerInputChange); + method @Deprecated public static void consumeDownChange(androidx.compose.ui.input.pointer.PointerInputChange); + method @Deprecated public static void consumePositionChange(androidx.compose.ui.input.pointer.PointerInputChange); + method @Deprecated public static boolean isOutOfBounds(androidx.compose.ui.input.pointer.PointerInputChange, long size); + method public static boolean isOutOfBounds(androidx.compose.ui.input.pointer.PointerInputChange, long size, long extendedTouchPadding); + method public static long positionChange(androidx.compose.ui.input.pointer.PointerInputChange); + method @Deprecated public static boolean positionChangeConsumed(androidx.compose.ui.input.pointer.PointerInputChange); + method public static long positionChangeIgnoreConsumed(androidx.compose.ui.input.pointer.PointerInputChange); + method public static boolean positionChanged(androidx.compose.ui.input.pointer.PointerInputChange); + method public static boolean positionChangedIgnoreConsumed(androidx.compose.ui.input.pointer.PointerInputChange); + } + + public enum PointerEventPass { + enum_constant public static final androidx.compose.ui.input.pointer.PointerEventPass Final; + enum_constant public static final androidx.compose.ui.input.pointer.PointerEventPass Initial; + enum_constant public static final androidx.compose.ui.input.pointer.PointerEventPass Main; + } + + public final class PointerEventTimeoutCancellationException extends java.util.concurrent.CancellationException { + ctor public PointerEventTimeoutCancellationException(long time); + } + + @kotlin.jvm.JvmInline public final value class PointerEventType { + field public static final androidx.compose.ui.input.pointer.PointerEventType.Companion Companion; + } + + public static final class PointerEventType.Companion { + method public int getEnter(); + method public int getExit(); + method public int getMove(); + method public int getPress(); + method public int getRelease(); + method public int getScroll(); + method public int getUnknown(); + property public final int Enter; + property public final int Exit; + property public final int Move; + property public final int Press; + property public final int Release; + property public final int Scroll; + property public final int Unknown; + } + + public final class PointerEvent_androidKt { + method public static boolean getAreAnyPressed(int); + method public static int indexOfFirstPressed(int); + method public static int indexOfLastPressed(int); + method public static boolean isAltGraphPressed(int); + method public static boolean isAltPressed(int); + method public static boolean isBackPressed(int); + method public static boolean isCapsLockOn(int); + method public static boolean isCtrlPressed(int); + method public static boolean isForwardPressed(int); + method public static boolean isFunctionPressed(int); + method public static boolean isMetaPressed(int); + method public static boolean isNumLockOn(int); + method public static boolean isPressed(int, int buttonIndex); + method public static boolean isPrimaryPressed(int); + method public static boolean isScrollLockOn(int); + method public static boolean isSecondaryPressed(int); + method public static boolean isShiftPressed(int); + method public static boolean isSymPressed(int); + method public static boolean isTertiaryPressed(int); + } + + @androidx.compose.runtime.Stable public interface PointerIcon { + field public static final androidx.compose.ui.input.pointer.PointerIcon.Companion Companion; + } + + public static final class PointerIcon.Companion { + method public androidx.compose.ui.input.pointer.PointerIcon getCrosshair(); + method public androidx.compose.ui.input.pointer.PointerIcon getDefault(); + method public androidx.compose.ui.input.pointer.PointerIcon getHand(); + method public androidx.compose.ui.input.pointer.PointerIcon getText(); + property public final androidx.compose.ui.input.pointer.PointerIcon Crosshair; + property public final androidx.compose.ui.input.pointer.PointerIcon Default; + property public final androidx.compose.ui.input.pointer.PointerIcon Hand; + property public final androidx.compose.ui.input.pointer.PointerIcon Text; + } + + public final class PointerIconKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier pointerHoverIcon(androidx.compose.ui.Modifier, androidx.compose.ui.input.pointer.PointerIcon icon, optional boolean overrideDescendants); + } + + public final class PointerIcon_androidKt { + method public static androidx.compose.ui.input.pointer.PointerIcon PointerIcon(android.view.PointerIcon pointerIcon); + method public static androidx.compose.ui.input.pointer.PointerIcon PointerIcon(int pointerIconType); + } + + @kotlin.jvm.JvmInline public final value class PointerId { + ctor public PointerId(long value); + method public long getValue(); + property public final long value; + } + + @androidx.compose.runtime.Immutable public final class PointerInputChange { + ctor public PointerInputChange(long id, long uptimeMillis, long position, boolean pressed, float pressure, long previousUptimeMillis, long previousPosition, boolean previousPressed, boolean isInitiallyConsumed, optional int type, optional long scrollDelta); + ctor @Deprecated public PointerInputChange(long id, long uptimeMillis, long position, boolean pressed, long previousUptimeMillis, long previousPosition, boolean previousPressed, androidx.compose.ui.input.pointer.ConsumedData consumed, optional int type); + ctor public PointerInputChange(long id, long uptimeMillis, long position, boolean pressed, long previousUptimeMillis, long previousPosition, boolean previousPressed, boolean isInitiallyConsumed, optional int type, optional long scrollDelta); + method public void consume(); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public androidx.compose.ui.input.pointer.PointerInputChange copy(optional long id, optional long currentTime, optional long currentPosition, optional boolean currentPressed, optional float pressure, optional long previousTime, optional long previousPosition, optional boolean previousPressed, optional int type, optional java.util.List historical, optional long scrollDelta); + method public androidx.compose.ui.input.pointer.PointerInputChange copy(optional long id, optional long currentTime, optional long currentPosition, optional boolean currentPressed, optional float pressure, optional long previousTime, optional long previousPosition, optional boolean previousPressed, optional int type, optional long scrollDelta); + method @Deprecated public androidx.compose.ui.input.pointer.PointerInputChange copy(optional long id, optional long currentTime, optional long currentPosition, optional boolean currentPressed, optional long previousTime, optional long previousPosition, optional boolean previousPressed, optional androidx.compose.ui.input.pointer.ConsumedData consumed, optional int type); + method @Deprecated public androidx.compose.ui.input.pointer.PointerInputChange copy(optional long id, optional long currentTime, optional long currentPosition, optional boolean currentPressed, optional long previousTime, optional long previousPosition, optional boolean previousPressed, androidx.compose.ui.input.pointer.ConsumedData consumed, optional int type, optional long scrollDelta); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public androidx.compose.ui.input.pointer.PointerInputChange copy(optional long id, optional long currentTime, optional long currentPosition, optional boolean currentPressed, optional long previousTime, optional long previousPosition, optional boolean previousPressed, optional int type, java.util.List historical, optional long scrollDelta); + method public androidx.compose.ui.input.pointer.PointerInputChange copy(optional long id, optional long currentTime, optional long currentPosition, optional boolean currentPressed, optional long previousTime, optional long previousPosition, optional boolean previousPressed, optional int type, optional long scrollDelta); + method @Deprecated public androidx.compose.ui.input.pointer.ConsumedData getConsumed(); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public java.util.List getHistorical(); + method public long getId(); + method public long getPosition(); + method public boolean getPressed(); + method public float getPressure(); + method public long getPreviousPosition(); + method public boolean getPreviousPressed(); + method public long getPreviousUptimeMillis(); + method public long getScrollDelta(); + method public int getType(); + method public long getUptimeMillis(); + method public boolean isConsumed(); + property @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public final java.util.List historical; + property public final long id; + property public final boolean isConsumed; + property public final long position; + property public final boolean pressed; + property public final float pressure; + property public final long previousPosition; + property public final boolean previousPressed; + property public final long previousUptimeMillis; + property public final long scrollDelta; + property public final int type; + property public final long uptimeMillis; + } + + public abstract class PointerInputFilter { + ctor public PointerInputFilter(); + method public boolean getInterceptOutOfBoundsChildEvents(); + method public boolean getShareWithSiblings(); + method public final long getSize(); + method public abstract void onCancel(); + method public abstract void onPointerEvent(androidx.compose.ui.input.pointer.PointerEvent pointerEvent, androidx.compose.ui.input.pointer.PointerEventPass pass, long bounds); + property public boolean interceptOutOfBoundsChildEvents; + property public boolean shareWithSiblings; + property public final long size; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface PointerInputModifier extends androidx.compose.ui.Modifier.Element { + method public androidx.compose.ui.input.pointer.PointerInputFilter getPointerInputFilter(); + property public abstract androidx.compose.ui.input.pointer.PointerInputFilter pointerInputFilter; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface PointerInputScope extends androidx.compose.ui.unit.Density { + method public suspend Object? awaitPointerEventScope(kotlin.jvm.functions.Function2,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + method public default long getExtendedTouchPadding(); + method public default boolean getInterceptOutOfBoundsChildEvents(); + method public long getSize(); + method public androidx.compose.ui.platform.ViewConfiguration getViewConfiguration(); + method public default void setInterceptOutOfBoundsChildEvents(boolean); + property public default long extendedTouchPadding; + property public default boolean interceptOutOfBoundsChildEvents; + property public abstract long size; + property public abstract androidx.compose.ui.platform.ViewConfiguration viewConfiguration; + } + + public final class PointerInteropFilter_androidKt { + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier motionEventSpy(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 watcher); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier pointerInteropFilter(androidx.compose.ui.Modifier, optional androidx.compose.ui.input.pointer.RequestDisallowInterceptTouchEvent? requestDisallowInterceptTouchEvent, kotlin.jvm.functions.Function1 onTouchEvent); + } + + @kotlin.jvm.JvmInline public final value class PointerKeyboardModifiers { + ctor public PointerKeyboardModifiers(int packedValue); + } + + @kotlin.jvm.JvmInline public final value class PointerType { + field public static final androidx.compose.ui.input.pointer.PointerType.Companion Companion; + } + + public static final class PointerType.Companion { + method public int getEraser(); + method public int getMouse(); + method public int getStylus(); + method public int getTouch(); + method public int getUnknown(); + property public final int Eraser; + property public final int Mouse; + property public final int Stylus; + property public final int Touch; + property public final int Unknown; + } + + @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public final class RequestDisallowInterceptTouchEvent implements kotlin.jvm.functions.Function1 { + ctor public RequestDisallowInterceptTouchEvent(); + method public void invoke(boolean disallowIntercept); + } + + public final class SuspendingPointerInputFilterKt { + method public static androidx.compose.ui.input.pointer.SuspendingPointerInputModifierNode SuspendingPointerInputModifierNode(kotlin.jvm.functions.Function2,? extends java.lang.Object?> pointerInputHandler); + method public static androidx.compose.ui.Modifier pointerInput(androidx.compose.ui.Modifier, Object? key1, Object? key2, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block); + method public static androidx.compose.ui.Modifier pointerInput(androidx.compose.ui.Modifier, Object? key1, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block); + method public static androidx.compose.ui.Modifier pointerInput(androidx.compose.ui.Modifier, Object?[] keys, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block); + method @Deprecated public static androidx.compose.ui.Modifier pointerInput(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block); + } + + public sealed interface SuspendingPointerInputModifierNode extends androidx.compose.ui.node.PointerInputModifierNode { + method public kotlin.jvm.functions.Function2,java.lang.Object?> getPointerInputHandler(); + method public void resetPointerInputHandler(); + method public void setPointerInputHandler(kotlin.jvm.functions.Function2,? extends java.lang.Object?>); + property public abstract kotlin.jvm.functions.Function2,java.lang.Object?> pointerInputHandler; + } + +} + +package androidx.compose.ui.input.pointer.util { + + public final class VelocityTracker { + ctor public VelocityTracker(); + method public void addPosition(long timeMillis, long position); + method public long calculateVelocity(); + method public long calculateVelocity(long maximumVelocity); + method public void resetTracking(); + } + + public final class VelocityTracker1D { + ctor public VelocityTracker1D(boolean isDataDifferential); + method public void addDataPoint(long timeMillis, float dataPoint); + method public float calculateVelocity(); + method public float calculateVelocity(float maximumVelocity); + method public boolean isDataDifferential(); + method public void resetTracking(); + property public final boolean isDataDifferential; + } + + public final class VelocityTrackerKt { + method public static void addPointerInputChange(androidx.compose.ui.input.pointer.util.VelocityTracker, androidx.compose.ui.input.pointer.PointerInputChange event); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static boolean getVelocityTrackerAddPointsFix(); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static boolean getVelocityTrackerStrategyUseImpulse(); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static void setVelocityTrackerAddPointsFix(boolean); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static void setVelocityTrackerStrategyUseImpulse(boolean); + property @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static final boolean VelocityTrackerAddPointsFix; + property @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static final boolean VelocityTrackerStrategyUseImpulse; + } + +} + +package androidx.compose.ui.input.rotary { + + public final class RotaryInputModifierKt { + method public static androidx.compose.ui.Modifier onPreRotaryScrollEvent(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 onPreRotaryScrollEvent); + method public static androidx.compose.ui.Modifier onRotaryScrollEvent(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 onRotaryScrollEvent); + } + + public interface RotaryInputModifierNode extends androidx.compose.ui.node.DelegatableNode { + method public boolean onPreRotaryScrollEvent(androidx.compose.ui.input.rotary.RotaryScrollEvent event); + method public boolean onRotaryScrollEvent(androidx.compose.ui.input.rotary.RotaryScrollEvent event); + } + + public final class RotaryScrollEvent { + method public float getHorizontalScrollPixels(); + method public int getInputDeviceId(); + method public long getUptimeMillis(); + method public float getVerticalScrollPixels(); + property public final float horizontalScrollPixels; + property public final int inputDeviceId; + property public final long uptimeMillis; + property public final float verticalScrollPixels; + } + +} + +package androidx.compose.ui.layout { + + @androidx.compose.runtime.Immutable public abstract sealed class AlignmentLine { + field public static final androidx.compose.ui.layout.AlignmentLine.Companion Companion; + field public static final int Unspecified = -2147483648; // 0x80000000 + } + + public static final class AlignmentLine.Companion { + } + + public final class AlignmentLineKt { + method public static androidx.compose.ui.layout.HorizontalAlignmentLine getFirstBaseline(); + method public static androidx.compose.ui.layout.HorizontalAlignmentLine getLastBaseline(); + property public static final androidx.compose.ui.layout.HorizontalAlignmentLine FirstBaseline; + property public static final androidx.compose.ui.layout.HorizontalAlignmentLine LastBaseline; + } + + public sealed interface ApproachIntrinsicMeasureScope extends androidx.compose.ui.layout.IntrinsicMeasureScope { + method public long getLookaheadConstraints(); + method public long getLookaheadSize(); + property public abstract long lookaheadConstraints; + property public abstract long lookaheadSize; + } + + public interface ApproachLayoutModifierNode extends androidx.compose.ui.node.LayoutModifierNode { + method public androidx.compose.ui.layout.MeasureResult approachMeasure(androidx.compose.ui.layout.ApproachMeasureScope, androidx.compose.ui.layout.Measurable measurable, long constraints); + method public boolean isMeasurementApproachInProgress(long lookaheadSize); + method public default boolean isPlacementApproachInProgress(androidx.compose.ui.layout.Placeable.PlacementScope, androidx.compose.ui.layout.LayoutCoordinates lookaheadCoordinates); + method public default int maxApproachIntrinsicHeight(androidx.compose.ui.layout.ApproachIntrinsicMeasureScope, androidx.compose.ui.layout.IntrinsicMeasurable measurable, int width); + method public default int maxApproachIntrinsicWidth(androidx.compose.ui.layout.ApproachIntrinsicMeasureScope, androidx.compose.ui.layout.IntrinsicMeasurable measurable, int height); + method public default androidx.compose.ui.layout.MeasureResult measure(androidx.compose.ui.layout.MeasureScope, androidx.compose.ui.layout.Measurable measurable, long constraints); + method public default int minApproachIntrinsicHeight(androidx.compose.ui.layout.ApproachIntrinsicMeasureScope, androidx.compose.ui.layout.IntrinsicMeasurable measurable, int width); + method public default int minApproachIntrinsicWidth(androidx.compose.ui.layout.ApproachIntrinsicMeasureScope, androidx.compose.ui.layout.IntrinsicMeasurable measurable, int height); + } + + public sealed interface ApproachMeasureScope extends androidx.compose.ui.layout.ApproachIntrinsicMeasureScope androidx.compose.ui.layout.MeasureScope { + } + + public interface BeyondBoundsLayout { + method public T? layout(int direction, kotlin.jvm.functions.Function1 block); + } + + public static interface BeyondBoundsLayout.BeyondBoundsScope { + method public boolean getHasMoreContent(); + property public abstract boolean hasMoreContent; + } + + @kotlin.jvm.JvmInline public static final value class BeyondBoundsLayout.LayoutDirection { + field public static final androidx.compose.ui.layout.BeyondBoundsLayout.LayoutDirection.Companion Companion; + } + + public static final class BeyondBoundsLayout.LayoutDirection.Companion { + method public int getAbove(); + method public int getAfter(); + method public int getBefore(); + method public int getBelow(); + method public int getLeft(); + method public int getRight(); + property public final int Above; + property public final int After; + property public final int Before; + property public final int Below; + property public final int Left; + property public final int Right; + } + + public final class BeyondBoundsLayoutKt { + method public static androidx.compose.ui.modifier.ProvidableModifierLocal getModifierLocalBeyondBoundsLayout(); + property public static final androidx.compose.ui.modifier.ProvidableModifierLocal ModifierLocalBeyondBoundsLayout; + } + + @androidx.compose.runtime.Stable public interface ContentScale { + method public long computeScaleFactor(long srcSize, long dstSize); + field public static final androidx.compose.ui.layout.ContentScale.Companion Companion; + } + + public static final class ContentScale.Companion { + method public androidx.compose.ui.layout.ContentScale getCrop(); + method public androidx.compose.ui.layout.ContentScale getFillBounds(); + method public androidx.compose.ui.layout.ContentScale getFillHeight(); + method public androidx.compose.ui.layout.ContentScale getFillWidth(); + method public androidx.compose.ui.layout.ContentScale getFit(); + method public androidx.compose.ui.layout.ContentScale getInside(); + method public androidx.compose.ui.layout.FixedScale getNone(); + property public final androidx.compose.ui.layout.ContentScale Crop; + property public final androidx.compose.ui.layout.ContentScale FillBounds; + property public final androidx.compose.ui.layout.ContentScale FillHeight; + property public final androidx.compose.ui.layout.ContentScale FillWidth; + property public final androidx.compose.ui.layout.ContentScale Fit; + property public final androidx.compose.ui.layout.ContentScale Inside; + property public final androidx.compose.ui.layout.FixedScale None; + } + + @androidx.compose.runtime.Immutable public final class FixedScale implements androidx.compose.ui.layout.ContentScale { + ctor public FixedScale(float value); + method public float component1(); + method public long computeScaleFactor(long srcSize, long dstSize); + method public androidx.compose.ui.layout.FixedScale copy(float value); + method public float getValue(); + property public final float value; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface GraphicLayerInfo { + method public long getLayerId(); + method public default long getOwnerViewId(); + property public abstract long layerId; + property public default long ownerViewId; + } + + public final class HorizontalAlignmentLine extends androidx.compose.ui.layout.AlignmentLine { + ctor public HorizontalAlignmentLine(kotlin.jvm.functions.Function2 merger); + } + + public final class HorizontalRuler extends androidx.compose.ui.layout.Ruler { + ctor public HorizontalRuler(); + } + + public interface IntrinsicMeasurable { + method public Object? getParentData(); + method public int maxIntrinsicHeight(int width); + method public int maxIntrinsicWidth(int height); + method public int minIntrinsicHeight(int width); + method public int minIntrinsicWidth(int height); + property public abstract Object? parentData; + } + + public interface IntrinsicMeasureScope extends androidx.compose.ui.unit.Density { + method public androidx.compose.ui.unit.LayoutDirection getLayoutDirection(); + method public default boolean isLookingAhead(); + property public default boolean isLookingAhead; + property public abstract androidx.compose.ui.unit.LayoutDirection layoutDirection; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface LayoutCoordinates { + method public operator int get(androidx.compose.ui.layout.AlignmentLine alignmentLine); + method public default boolean getIntroducesMotionFrameOfReference(); + method public androidx.compose.ui.layout.LayoutCoordinates? getParentCoordinates(); + method public androidx.compose.ui.layout.LayoutCoordinates? getParentLayoutCoordinates(); + method public java.util.Set getProvidedAlignmentLines(); + method public long getSize(); + method public boolean isAttached(); + method public androidx.compose.ui.geometry.Rect localBoundingBoxOf(androidx.compose.ui.layout.LayoutCoordinates sourceCoordinates, optional boolean clipBounds); + method public long localPositionOf(androidx.compose.ui.layout.LayoutCoordinates sourceCoordinates, long relativeToSource); + method public default long localPositionOf(androidx.compose.ui.layout.LayoutCoordinates sourceCoordinates, optional long relativeToSource, optional boolean includeMotionFrameOfReference); + method public long localToRoot(long relativeToLocal); + method public default long localToScreen(long relativeToLocal); + method public long localToWindow(long relativeToLocal); + method public default long screenToLocal(long relativeToScreen); + method public default void transformFrom(androidx.compose.ui.layout.LayoutCoordinates sourceCoordinates, float[] matrix); + method public default void transformToScreen(float[] matrix); + method public long windowToLocal(long relativeToWindow); + property public default boolean introducesMotionFrameOfReference; + property public abstract boolean isAttached; + property public abstract androidx.compose.ui.layout.LayoutCoordinates? parentCoordinates; + property public abstract androidx.compose.ui.layout.LayoutCoordinates? parentLayoutCoordinates; + property public abstract java.util.Set providedAlignmentLines; + property public abstract long size; + } + + public final class LayoutCoordinatesKt { + method public static androidx.compose.ui.geometry.Rect boundsInParent(androidx.compose.ui.layout.LayoutCoordinates); + method public static androidx.compose.ui.geometry.Rect boundsInRoot(androidx.compose.ui.layout.LayoutCoordinates); + method public static androidx.compose.ui.geometry.Rect boundsInWindow(androidx.compose.ui.layout.LayoutCoordinates); + method public static androidx.compose.ui.layout.LayoutCoordinates findRootCoordinates(androidx.compose.ui.layout.LayoutCoordinates); + method public static long positionInParent(androidx.compose.ui.layout.LayoutCoordinates); + method public static long positionInRoot(androidx.compose.ui.layout.LayoutCoordinates); + method public static long positionInWindow(androidx.compose.ui.layout.LayoutCoordinates); + method public static long positionOnScreen(androidx.compose.ui.layout.LayoutCoordinates); + } + + public final class LayoutIdKt { + method public static Object? getLayoutId(androidx.compose.ui.layout.Measurable); + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier layoutId(androidx.compose.ui.Modifier, Object layoutId); + } + + public interface LayoutIdParentData { + method public Object getLayoutId(); + property public abstract Object layoutId; + } + + public interface LayoutInfo { + method public androidx.compose.ui.layout.LayoutCoordinates getCoordinates(); + method public androidx.compose.ui.unit.Density getDensity(); + method public int getHeight(); + method public androidx.compose.ui.unit.LayoutDirection getLayoutDirection(); + method public java.util.List getModifierInfo(); + method public androidx.compose.ui.layout.LayoutInfo? getParentInfo(); + method public int getSemanticsId(); + method public androidx.compose.ui.platform.ViewConfiguration getViewConfiguration(); + method public int getWidth(); + method public boolean isAttached(); + method public default boolean isDeactivated(); + method public boolean isPlaced(); + property public abstract androidx.compose.ui.layout.LayoutCoordinates coordinates; + property public abstract androidx.compose.ui.unit.Density density; + property public abstract int height; + property public abstract boolean isAttached; + property public default boolean isDeactivated; + property public abstract boolean isPlaced; + property public abstract androidx.compose.ui.unit.LayoutDirection layoutDirection; + property public abstract androidx.compose.ui.layout.LayoutInfo? parentInfo; + property public abstract int semanticsId; + property public abstract androidx.compose.ui.platform.ViewConfiguration viewConfiguration; + property public abstract int width; + } + + public final class LayoutKt { + method @androidx.compose.runtime.Composable @androidx.compose.ui.UiComposable public static inline void Layout(optional androidx.compose.ui.Modifier modifier, androidx.compose.ui.layout.MeasurePolicy measurePolicy); + method @androidx.compose.runtime.Composable @androidx.compose.ui.UiComposable public static inline void Layout(java.util.List> contents, optional androidx.compose.ui.Modifier modifier, androidx.compose.ui.layout.MultiContentMeasurePolicy measurePolicy); + method @androidx.compose.runtime.Composable @androidx.compose.ui.UiComposable public static inline void Layout(kotlin.jvm.functions.Function0 content, optional androidx.compose.ui.Modifier modifier, androidx.compose.ui.layout.MeasurePolicy measurePolicy); + method @Deprecated @androidx.compose.runtime.Composable @androidx.compose.ui.UiComposable public static void MultiMeasureLayout(optional androidx.compose.ui.Modifier modifier, kotlin.jvm.functions.Function0 content, androidx.compose.ui.layout.MeasurePolicy measurePolicy); + method @kotlin.PublishedApi internal static kotlin.jvm.functions.Function0 combineAsVirtualLayouts(java.util.List> contents); + method @Deprecated @kotlin.PublishedApi internal static kotlin.jvm.functions.Function1,kotlin.Unit> materializerOf(androidx.compose.ui.Modifier modifier); + method @kotlin.PublishedApi internal static kotlin.jvm.functions.Function1,kotlin.Unit> modifierMaterializerOf(androidx.compose.ui.Modifier modifier); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface LayoutModifier extends androidx.compose.ui.Modifier.Element { + method public default int maxIntrinsicHeight(androidx.compose.ui.layout.IntrinsicMeasureScope, androidx.compose.ui.layout.IntrinsicMeasurable measurable, int width); + method public default int maxIntrinsicWidth(androidx.compose.ui.layout.IntrinsicMeasureScope, androidx.compose.ui.layout.IntrinsicMeasurable measurable, int height); + method public androidx.compose.ui.layout.MeasureResult measure(androidx.compose.ui.layout.MeasureScope, androidx.compose.ui.layout.Measurable measurable, long constraints); + method public default int minIntrinsicHeight(androidx.compose.ui.layout.IntrinsicMeasureScope, androidx.compose.ui.layout.IntrinsicMeasurable measurable, int width); + method public default int minIntrinsicWidth(androidx.compose.ui.layout.IntrinsicMeasureScope, androidx.compose.ui.layout.IntrinsicMeasurable measurable, int height); + } + + public final class LayoutModifierKt { + method public static androidx.compose.ui.Modifier layout(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function3 measure); + } + + public interface LookaheadScope { + method public androidx.compose.ui.layout.LayoutCoordinates getLookaheadScopeCoordinates(androidx.compose.ui.layout.Placeable.PlacementScope); + method public default long localLookaheadPositionOf(androidx.compose.ui.layout.LayoutCoordinates, androidx.compose.ui.layout.LayoutCoordinates sourceCoordinates, optional long relativeToSource, optional boolean includeMotionFrameOfReference); + method public androidx.compose.ui.layout.LayoutCoordinates toLookaheadCoordinates(androidx.compose.ui.layout.LayoutCoordinates); + } + + public final class LookaheadScopeKt { + method @androidx.compose.runtime.Composable @androidx.compose.ui.UiComposable public static void LookaheadScope(kotlin.jvm.functions.Function1 content); + method public static androidx.compose.ui.Modifier approachLayout(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 isMeasurementApproachInProgress, optional kotlin.jvm.functions.Function2 isPlacementApproachInProgress, kotlin.jvm.functions.Function3 approachMeasure); + } + + public interface Measurable extends androidx.compose.ui.layout.IntrinsicMeasurable { + method public androidx.compose.ui.layout.Placeable measure(long constraints); + } + + @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public fun interface MeasurePolicy { + method public default int maxIntrinsicHeight(androidx.compose.ui.layout.IntrinsicMeasureScope, java.util.List measurables, int width); + method public default int maxIntrinsicWidth(androidx.compose.ui.layout.IntrinsicMeasureScope, java.util.List measurables, int height); + method public androidx.compose.ui.layout.MeasureResult measure(androidx.compose.ui.layout.MeasureScope, java.util.List measurables, long constraints); + method public default int minIntrinsicHeight(androidx.compose.ui.layout.IntrinsicMeasureScope, java.util.List measurables, int width); + method public default int minIntrinsicWidth(androidx.compose.ui.layout.IntrinsicMeasureScope, java.util.List measurables, int height); + } + + public interface MeasureResult { + method public java.util.Map getAlignmentLines(); + method public int getHeight(); + method public default kotlin.jvm.functions.Function1? getRulers(); + method public int getWidth(); + method public void placeChildren(); + property public abstract java.util.Map alignmentLines; + property public abstract int height; + property public default kotlin.jvm.functions.Function1? rulers; + property public abstract int width; + } + + @androidx.compose.ui.layout.MeasureScopeMarker @kotlin.jvm.JvmDefaultWithCompatibility public interface MeasureScope extends androidx.compose.ui.layout.IntrinsicMeasureScope { + method public default androidx.compose.ui.layout.MeasureResult layout(int width, int height, optional java.util.Map alignmentLines, kotlin.jvm.functions.Function1 placementBlock); + method public default androidx.compose.ui.layout.MeasureResult layout(int width, int height, optional java.util.Map alignmentLines, optional kotlin.jvm.functions.Function1? rulers, kotlin.jvm.functions.Function1 placementBlock); + } + + @kotlin.DslMarker public @interface MeasureScopeMarker { + } + + public interface Measured { + method public operator int get(androidx.compose.ui.layout.AlignmentLine alignmentLine); + method public int getMeasuredHeight(); + method public int getMeasuredWidth(); + method public default Object? getParentData(); + property public abstract int measuredHeight; + property public abstract int measuredWidth; + property public default Object? parentData; + } + + public final class ModifierInfo { + ctor public ModifierInfo(androidx.compose.ui.Modifier modifier, androidx.compose.ui.layout.LayoutCoordinates coordinates, optional Object? extra); + method public androidx.compose.ui.layout.LayoutCoordinates getCoordinates(); + method public Object? getExtra(); + method public androidx.compose.ui.Modifier getModifier(); + property public final androidx.compose.ui.layout.LayoutCoordinates coordinates; + property public final Object? extra; + property public final androidx.compose.ui.Modifier modifier; + } + + @androidx.compose.runtime.Stable public fun interface MultiContentMeasurePolicy { + method public default int maxIntrinsicHeight(androidx.compose.ui.layout.IntrinsicMeasureScope, java.util.List> measurables, int width); + method public default int maxIntrinsicWidth(androidx.compose.ui.layout.IntrinsicMeasureScope, java.util.List> measurables, int height); + method public androidx.compose.ui.layout.MeasureResult measure(androidx.compose.ui.layout.MeasureScope, java.util.List> measurables, long constraints); + method public default int minIntrinsicHeight(androidx.compose.ui.layout.IntrinsicMeasureScope, java.util.List> measurables, int width); + method public default int minIntrinsicWidth(androidx.compose.ui.layout.IntrinsicMeasureScope, java.util.List> measurables, int height); + } + + public final class MultiContentMeasurePolicyKt { + method @kotlin.PublishedApi internal static androidx.compose.ui.layout.MeasurePolicy createMeasurePolicy(androidx.compose.ui.layout.MultiContentMeasurePolicy measurePolicy); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface OnGloballyPositionedModifier extends androidx.compose.ui.Modifier.Element { + method public void onGloballyPositioned(androidx.compose.ui.layout.LayoutCoordinates coordinates); + } + + public final class OnGloballyPositionedModifierKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier onGloballyPositioned(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 onGloballyPositioned); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface OnPlacedModifier extends androidx.compose.ui.Modifier.Element { + method public void onPlaced(androidx.compose.ui.layout.LayoutCoordinates coordinates); + } + + public final class OnPlacedModifierKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier onPlaced(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 onPlaced); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface OnRemeasuredModifier extends androidx.compose.ui.Modifier.Element { + method public void onRemeasured(long size); + } + + public final class OnRemeasuredModifierKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier onSizeChanged(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 onSizeChanged); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface ParentDataModifier extends androidx.compose.ui.Modifier.Element { + method public Object? modifyParentData(androidx.compose.ui.unit.Density, Object? parentData); + } + + @androidx.compose.runtime.Stable public interface PinnableContainer { + method public androidx.compose.ui.layout.PinnableContainer.PinnedHandle pin(); + } + + public static fun interface PinnableContainer.PinnedHandle { + method public void release(); + } + + public final class PinnableContainerKt { + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalPinnableContainer(); + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalPinnableContainer; + } + + public abstract class Placeable implements androidx.compose.ui.layout.Measured { + ctor public Placeable(); + method protected final long getApparentToRealOffset(); + method public final int getHeight(); + method public int getMeasuredHeight(); + method protected final long getMeasuredSize(); + method public int getMeasuredWidth(); + method protected final long getMeasurementConstraints(); + method public final int getWidth(); + method protected void placeAt(long position, float zIndex, androidx.compose.ui.graphics.layer.GraphicsLayer layer); + method protected abstract void placeAt(long position, float zIndex, kotlin.jvm.functions.Function1? layerBlock); + method protected final void setMeasuredSize(long); + method protected final void setMeasurementConstraints(long); + property protected final long apparentToRealOffset; + property public final int height; + property public int measuredHeight; + property protected final long measuredSize; + property public int measuredWidth; + property protected final long measurementConstraints; + property public final int width; + } + + @androidx.compose.ui.layout.PlacementScopeMarker public abstract static class Placeable.PlacementScope { + ctor public Placeable.PlacementScope(); + method public float current(androidx.compose.ui.layout.Ruler, float defaultValue); + method public androidx.compose.ui.layout.LayoutCoordinates? getCoordinates(); + method protected abstract androidx.compose.ui.unit.LayoutDirection getParentLayoutDirection(); + method protected abstract int getParentWidth(); + method public final void place(androidx.compose.ui.layout.Placeable, int x, int y, optional float zIndex); + method public final void place(androidx.compose.ui.layout.Placeable, long position, optional float zIndex); + method public final void placeRelative(androidx.compose.ui.layout.Placeable, int x, int y, optional float zIndex); + method public final void placeRelative(androidx.compose.ui.layout.Placeable, long position, optional float zIndex); + method public final void placeRelativeWithLayer(androidx.compose.ui.layout.Placeable, int x, int y, androidx.compose.ui.graphics.layer.GraphicsLayer layer, optional float zIndex); + method public final void placeRelativeWithLayer(androidx.compose.ui.layout.Placeable, int x, int y, optional float zIndex, optional kotlin.jvm.functions.Function1 layerBlock); + method public final void placeRelativeWithLayer(androidx.compose.ui.layout.Placeable, long position, androidx.compose.ui.graphics.layer.GraphicsLayer layer, optional float zIndex); + method public final void placeRelativeWithLayer(androidx.compose.ui.layout.Placeable, long position, optional float zIndex, optional kotlin.jvm.functions.Function1 layerBlock); + method public final void placeWithLayer(androidx.compose.ui.layout.Placeable, int x, int y, androidx.compose.ui.graphics.layer.GraphicsLayer layer, optional float zIndex); + method public final void placeWithLayer(androidx.compose.ui.layout.Placeable, int x, int y, optional float zIndex, optional kotlin.jvm.functions.Function1 layerBlock); + method public final void placeWithLayer(androidx.compose.ui.layout.Placeable, long position, androidx.compose.ui.graphics.layer.GraphicsLayer layer, optional float zIndex); + method public final void placeWithLayer(androidx.compose.ui.layout.Placeable, long position, optional float zIndex, optional kotlin.jvm.functions.Function1 layerBlock); + method public final void withMotionFrameOfReferencePlacement(kotlin.jvm.functions.Function1 block); + property public androidx.compose.ui.layout.LayoutCoordinates? coordinates; + property protected abstract androidx.compose.ui.unit.LayoutDirection parentLayoutDirection; + property protected abstract int parentWidth; + } + + @kotlin.DslMarker public @interface PlacementScopeMarker { + } + + public interface Remeasurement { + method public void forceRemeasure(); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface RemeasurementModifier extends androidx.compose.ui.Modifier.Element { + method public void onRemeasurementAvailable(androidx.compose.ui.layout.Remeasurement remeasurement); + } + + public abstract sealed class Ruler { + } + + @androidx.compose.ui.layout.MeasureScopeMarker public interface RulerScope extends androidx.compose.ui.unit.Density { + method public androidx.compose.ui.layout.LayoutCoordinates getCoordinates(); + method public infix void provides(androidx.compose.ui.layout.Ruler, float value); + method public infix void providesRelative(androidx.compose.ui.layout.VerticalRuler, float value); + property public abstract androidx.compose.ui.layout.LayoutCoordinates coordinates; + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class ScaleFactor { + method @androidx.compose.runtime.Stable public inline operator float component1(); + method @androidx.compose.runtime.Stable public inline operator float component2(); + method public long copy(optional float scaleX, optional float scaleY); + method @androidx.compose.runtime.Stable public operator long div(float operand); + method public float getScaleX(); + method public float getScaleY(); + method @androidx.compose.runtime.Stable public operator long times(float operand); + property @androidx.compose.runtime.Stable public final float scaleX; + property @androidx.compose.runtime.Stable public final float scaleY; + field public static final androidx.compose.ui.layout.ScaleFactor.Companion Companion; + } + + public static final class ScaleFactor.Companion { + method public long getUnspecified(); + property public final long Unspecified; + } + + public final class ScaleFactorKt { + method @androidx.compose.runtime.Stable public static long ScaleFactor(float scaleX, float scaleY); + method @androidx.compose.runtime.Stable public static operator long div(long, long scaleFactor); + method public static inline boolean isSpecified(long); + method public static inline boolean isUnspecified(long); + method @androidx.compose.runtime.Stable public static long lerp(long start, long stop, float fraction); + method public static inline long takeOrElse(long, kotlin.jvm.functions.Function0 block); + method @androidx.compose.runtime.Stable public static operator long times(long, long scaleFactor); + method @androidx.compose.runtime.Stable public static operator long times(long, long size); + } + + public final class SubcomposeLayoutKt { + method @androidx.compose.runtime.Composable @androidx.compose.ui.UiComposable public static void SubcomposeLayout(androidx.compose.ui.layout.SubcomposeLayoutState state, optional androidx.compose.ui.Modifier modifier, kotlin.jvm.functions.Function2 measurePolicy); + method @androidx.compose.runtime.Composable public static void SubcomposeLayout(optional androidx.compose.ui.Modifier modifier, kotlin.jvm.functions.Function2 measurePolicy); + method public static androidx.compose.ui.layout.SubcomposeSlotReusePolicy SubcomposeSlotReusePolicy(int maxSlotsToRetainForReuse); + } + + public final class SubcomposeLayoutState { + ctor public SubcomposeLayoutState(); + ctor public SubcomposeLayoutState(androidx.compose.ui.layout.SubcomposeSlotReusePolicy slotReusePolicy); + ctor @Deprecated public SubcomposeLayoutState(int maxSlotsToRetainForReuse); + method public androidx.compose.ui.layout.SubcomposeLayoutState.PrecomposedSlotHandle precompose(Object? slotId, kotlin.jvm.functions.Function0 content); + } + + public static interface SubcomposeLayoutState.PrecomposedSlotHandle { + method public void dispose(); + method public default int getPlaceablesCount(); + method public default void premeasure(int index, long constraints); + method public default void traverseDescendants(Object? key, kotlin.jvm.functions.Function1 block); + property public default int placeablesCount; + } + + public interface SubcomposeMeasureScope extends androidx.compose.ui.layout.MeasureScope { + method public java.util.List subcompose(Object? slotId, kotlin.jvm.functions.Function0 content); + } + + public interface SubcomposeSlotReusePolicy { + method public boolean areCompatible(Object? slotId, Object? reusableSlotId); + method public void getSlotsToRetain(androidx.compose.ui.layout.SubcomposeSlotReusePolicy.SlotIdsSet slotIds); + } + + public static final class SubcomposeSlotReusePolicy.SlotIdsSet implements java.util.Collection kotlin.jvm.internal.markers.KMappedMarker { + method public void clear(); + method public java.util.Iterator iterator(); + method public boolean remove(Object? slotId); + method public boolean removeAll(java.util.Collection slotIds); + method public boolean removeAll(kotlin.jvm.functions.Function1 predicate); + method public boolean retainAll(java.util.Collection slotIds); + method public boolean retainAll(kotlin.jvm.functions.Function1 predicate); + } + + public final class VerticalAlignmentLine extends androidx.compose.ui.layout.AlignmentLine { + ctor public VerticalAlignmentLine(kotlin.jvm.functions.Function2 merger); + } + + public final class VerticalRuler extends androidx.compose.ui.layout.Ruler { + ctor public VerticalRuler(); + } + +} + +package androidx.compose.ui.modifier { + + @androidx.compose.runtime.Stable public abstract sealed class ModifierLocal { + } + + @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface ModifierLocalConsumer extends androidx.compose.ui.Modifier.Element { + method public void onModifierLocalsUpdated(androidx.compose.ui.modifier.ModifierLocalReadScope scope); + } + + public final class ModifierLocalConsumerKt { + method @SuppressCompatibility @androidx.compose.runtime.Stable @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier modifierLocalConsumer(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 consumer); + } + + public final class ModifierLocalKt { + method public static androidx.compose.ui.modifier.ProvidableModifierLocal modifierLocalOf(kotlin.jvm.functions.Function0 defaultFactory); + } + + public abstract sealed class ModifierLocalMap { + } + + public interface ModifierLocalModifierNode extends androidx.compose.ui.modifier.ModifierLocalReadScope androidx.compose.ui.node.DelegatableNode { + method public default T getCurrent(androidx.compose.ui.modifier.ModifierLocal); + method public default androidx.compose.ui.modifier.ModifierLocalMap getProvidedValues(); + method public default void provide(androidx.compose.ui.modifier.ModifierLocal key, T value); + property public default androidx.compose.ui.modifier.ModifierLocalMap providedValues; + } + + public final class ModifierLocalModifierNodeKt { + method public static androidx.compose.ui.modifier.ModifierLocalMap modifierLocalMapOf(); + method public static androidx.compose.ui.modifier.ModifierLocalMap modifierLocalMapOf(androidx.compose.ui.modifier.ModifierLocal key1, androidx.compose.ui.modifier.ModifierLocal key2, androidx.compose.ui.modifier.ModifierLocal... keys); + method @Deprecated public static androidx.compose.ui.modifier.ModifierLocalMap modifierLocalMapOf(androidx.compose.ui.modifier.ModifierLocal... keys); + method public static androidx.compose.ui.modifier.ModifierLocalMap modifierLocalMapOf(androidx.compose.ui.modifier.ModifierLocal key); + method public static androidx.compose.ui.modifier.ModifierLocalMap modifierLocalMapOf(kotlin.Pair,?> entry1, kotlin.Pair,?> entry2, kotlin.Pair,?>... entries); + method @Deprecated public static androidx.compose.ui.modifier.ModifierLocalMap modifierLocalMapOf(kotlin.Pair,?>... entries); + method public static androidx.compose.ui.modifier.ModifierLocalMap modifierLocalMapOf(kotlin.Pair,? extends T> entry); + } + + @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface ModifierLocalProvider extends androidx.compose.ui.Modifier.Element { + method public androidx.compose.ui.modifier.ProvidableModifierLocal getKey(); + method public T getValue(); + property public abstract androidx.compose.ui.modifier.ProvidableModifierLocal key; + property public abstract T value; + } + + public final class ModifierLocalProviderKt { + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier modifierLocalProvider(androidx.compose.ui.Modifier, androidx.compose.ui.modifier.ProvidableModifierLocal key, kotlin.jvm.functions.Function0 value); + } + + public interface ModifierLocalReadScope { + method public T getCurrent(androidx.compose.ui.modifier.ModifierLocal); + } + + @androidx.compose.runtime.Stable public final class ProvidableModifierLocal extends androidx.compose.ui.modifier.ModifierLocal { + ctor public ProvidableModifierLocal(kotlin.jvm.functions.Function0 defaultFactory); + } + +} + +package androidx.compose.ui.node { + + @kotlin.PublishedApi internal interface ComposeUiNode { + method public int getCompositeKeyHash(); + method public androidx.compose.runtime.CompositionLocalMap getCompositionLocalMap(); + method public androidx.compose.ui.unit.Density getDensity(); + method public androidx.compose.ui.unit.LayoutDirection getLayoutDirection(); + method public androidx.compose.ui.layout.MeasurePolicy getMeasurePolicy(); + method public androidx.compose.ui.Modifier getModifier(); + method public androidx.compose.ui.platform.ViewConfiguration getViewConfiguration(); + method public void setCompositeKeyHash(int); + method public void setCompositionLocalMap(androidx.compose.runtime.CompositionLocalMap); + method public void setDensity(androidx.compose.ui.unit.Density); + method public void setLayoutDirection(androidx.compose.ui.unit.LayoutDirection); + method public void setMeasurePolicy(androidx.compose.ui.layout.MeasurePolicy); + method public void setModifier(androidx.compose.ui.Modifier); + method public void setViewConfiguration(androidx.compose.ui.platform.ViewConfiguration); + property public abstract int compositeKeyHash; + property public abstract androidx.compose.runtime.CompositionLocalMap compositionLocalMap; + property public abstract androidx.compose.ui.unit.Density density; + property public abstract androidx.compose.ui.unit.LayoutDirection layoutDirection; + property public abstract androidx.compose.ui.layout.MeasurePolicy measurePolicy; + property public abstract androidx.compose.ui.Modifier modifier; + property public abstract androidx.compose.ui.platform.ViewConfiguration viewConfiguration; + field public static final androidx.compose.ui.node.ComposeUiNode.Companion Companion; + } + + public static final class ComposeUiNode.Companion { + method public kotlin.jvm.functions.Function0 getConstructor(); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public kotlin.jvm.functions.Function2 getSetCompositeKeyHash(); + method public kotlin.jvm.functions.Function2 getSetDensity(); + method public kotlin.jvm.functions.Function2 getSetLayoutDirection(); + method public kotlin.jvm.functions.Function2 getSetMeasurePolicy(); + method public kotlin.jvm.functions.Function2 getSetModifier(); + method public kotlin.jvm.functions.Function2 getSetResolvedCompositionLocals(); + method public kotlin.jvm.functions.Function2 getSetViewConfiguration(); + method public kotlin.jvm.functions.Function0 getVirtualConstructor(); + property public final kotlin.jvm.functions.Function0 Constructor; + property @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public final kotlin.jvm.functions.Function2 SetCompositeKeyHash; + property public final kotlin.jvm.functions.Function2 SetDensity; + property public final kotlin.jvm.functions.Function2 SetLayoutDirection; + property public final kotlin.jvm.functions.Function2 SetMeasurePolicy; + property public final kotlin.jvm.functions.Function2 SetModifier; + property public final kotlin.jvm.functions.Function2 SetResolvedCompositionLocals; + property public final kotlin.jvm.functions.Function2 SetViewConfiguration; + property public final kotlin.jvm.functions.Function0 VirtualConstructor; + } + + public interface CompositionLocalConsumerModifierNode extends androidx.compose.ui.node.DelegatableNode { + } + + public final class CompositionLocalConsumerModifierNodeKt { + method public static T currentValueOf(androidx.compose.ui.node.CompositionLocalConsumerModifierNode, androidx.compose.runtime.CompositionLocal local); + } + + public interface DelegatableNode { + method public androidx.compose.ui.Modifier.Node getNode(); + property public abstract androidx.compose.ui.Modifier.Node node; + } + + public final class DelegatableNodeKt { + method public static void invalidateSubtree(androidx.compose.ui.node.DelegatableNode); + method public static androidx.compose.ui.unit.Density requireDensity(androidx.compose.ui.node.DelegatableNode); + method public static androidx.compose.ui.graphics.GraphicsContext requireGraphicsContext(androidx.compose.ui.node.DelegatableNode); + method public static androidx.compose.ui.layout.LayoutCoordinates requireLayoutCoordinates(androidx.compose.ui.node.DelegatableNode); + method public static androidx.compose.ui.unit.LayoutDirection requireLayoutDirection(androidx.compose.ui.node.DelegatableNode); + } + + public final class DelegatableNode_androidKt { + method public static android.view.View requireView(androidx.compose.ui.node.DelegatableNode); + } + + public abstract class DelegatingNode extends androidx.compose.ui.Modifier.Node { + ctor public DelegatingNode(); + method protected final T delegate(T delegatableNode); + method protected final void undelegate(androidx.compose.ui.node.DelegatableNode instance); + } + + public interface DrawModifierNode extends androidx.compose.ui.node.DelegatableNode { + method public void draw(androidx.compose.ui.graphics.drawscope.ContentDrawScope); + method public default void onMeasureResultChanged(); + } + + public final class DrawModifierNodeKt { + method public static void invalidateDraw(androidx.compose.ui.node.DrawModifierNode); + } + + public interface GlobalPositionAwareModifierNode extends androidx.compose.ui.node.DelegatableNode { + method public void onGloballyPositioned(androidx.compose.ui.layout.LayoutCoordinates coordinates); + } + + @SuppressCompatibility @kotlin.RequiresOptIn(message="This API is internal to library.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER, kotlin.annotation.AnnotationTarget.PROPERTY_SETTER}) public @interface InternalCoreApi { + } + + @SuppressCompatibility @androidx.compose.ui.InternalComposeUiApi public sealed interface InteroperableComposeUiNode { + method public android.view.View? getInteropView(); + } + + public interface LayoutAwareModifierNode extends androidx.compose.ui.node.DelegatableNode { + method public default void onPlaced(androidx.compose.ui.layout.LayoutCoordinates coordinates); + method public default void onRemeasured(long size); + } + + public interface LayoutModifierNode extends androidx.compose.ui.node.DelegatableNode { + method public default int maxIntrinsicHeight(androidx.compose.ui.layout.IntrinsicMeasureScope, androidx.compose.ui.layout.IntrinsicMeasurable measurable, int width); + method public default int maxIntrinsicWidth(androidx.compose.ui.layout.IntrinsicMeasureScope, androidx.compose.ui.layout.IntrinsicMeasurable measurable, int height); + method public androidx.compose.ui.layout.MeasureResult measure(androidx.compose.ui.layout.MeasureScope, androidx.compose.ui.layout.Measurable measurable, long constraints); + method public default int minIntrinsicHeight(androidx.compose.ui.layout.IntrinsicMeasureScope, androidx.compose.ui.layout.IntrinsicMeasurable measurable, int width); + method public default int minIntrinsicWidth(androidx.compose.ui.layout.IntrinsicMeasureScope, androidx.compose.ui.layout.IntrinsicMeasurable measurable, int height); + } + + public final class LayoutModifierNodeKt { + method public static void invalidateLayer(androidx.compose.ui.node.LayoutModifierNode); + method public static void invalidateMeasurement(androidx.compose.ui.node.LayoutModifierNode); + method public static void invalidatePlacement(androidx.compose.ui.node.LayoutModifierNode); + method public static void remeasureSync(androidx.compose.ui.node.LayoutModifierNode); + } + + public abstract class ModifierNodeElement implements androidx.compose.ui.platform.InspectableValue androidx.compose.ui.Modifier.Element { + ctor public ModifierNodeElement(); + method public abstract N create(); + method public abstract boolean equals(Object? other); + method public final kotlin.sequences.Sequence getInspectableElements(); + method public final String? getNameFallback(); + method public final Object? getValueOverride(); + method public abstract int hashCode(); + method public void inspectableProperties(androidx.compose.ui.platform.InspectorInfo); + method public abstract void update(N node); + property public final kotlin.sequences.Sequence inspectableElements; + property public final String? nameFallback; + property public final Object? valueOverride; + } + + public interface ObserverModifierNode extends androidx.compose.ui.node.DelegatableNode { + method public void onObservedReadsChanged(); + } + + public final class ObserverModifierNodeKt { + method public static void observeReads(T, kotlin.jvm.functions.Function0 block); + } + + public interface ParentDataModifierNode extends androidx.compose.ui.node.DelegatableNode { + method public Object? modifyParentData(androidx.compose.ui.unit.Density, Object? parentData); + } + + public final class ParentDataModifierNodeKt { + method public static void invalidateParentData(androidx.compose.ui.node.ParentDataModifierNode); + } + + public interface PointerInputModifierNode extends androidx.compose.ui.node.DelegatableNode { + method public default boolean interceptOutOfBoundsChildEvents(); + method public void onCancelPointerInput(); + method public default void onDensityChange(); + method public void onPointerEvent(androidx.compose.ui.input.pointer.PointerEvent pointerEvent, androidx.compose.ui.input.pointer.PointerEventPass pass, long bounds); + method public default void onViewConfigurationChange(); + method public default boolean sharePointerInputWithSiblings(); + } + + public final class Ref { + ctor public Ref(); + method public T? getValue(); + method public void setValue(T?); + property public final T? value; + } + + public interface RootForTest { + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public default void forceAccessibilityForTesting(boolean enable); + method public androidx.compose.ui.unit.Density getDensity(); + method public androidx.compose.ui.semantics.SemanticsOwner getSemanticsOwner(); + method @Deprecated public androidx.compose.ui.text.input.TextInputService getTextInputService(); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public default void measureAndLayoutForTest(); + method public boolean sendKeyEvent(android.view.KeyEvent keyEvent); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public default void setAccessibilityEventBatchIntervalMillis(long intervalMillis); + property public abstract androidx.compose.ui.unit.Density density; + property public abstract androidx.compose.ui.semantics.SemanticsOwner semanticsOwner; + property @Deprecated public abstract androidx.compose.ui.text.input.TextInputService textInputService; + } + + public interface SemanticsModifierNode extends androidx.compose.ui.node.DelegatableNode { + method public void applySemantics(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public default boolean getShouldClearDescendantSemantics(); + method public default boolean getShouldMergeDescendantSemantics(); + property public default boolean shouldClearDescendantSemantics; + property public default boolean shouldMergeDescendantSemantics; + } + + public final class SemanticsModifierNodeKt { + method public static void invalidateSemantics(androidx.compose.ui.node.SemanticsModifierNode); + } + + public interface TraversableNode extends androidx.compose.ui.node.DelegatableNode { + method public Object getTraverseKey(); + property public abstract Object traverseKey; + field public static final androidx.compose.ui.node.TraversableNode.Companion Companion; + } + + public static final class TraversableNode.Companion { + } + + public enum TraversableNode.Companion.TraverseDescendantsAction { + enum_constant public static final androidx.compose.ui.node.TraversableNode.Companion.TraverseDescendantsAction CancelTraversal; + enum_constant public static final androidx.compose.ui.node.TraversableNode.Companion.TraverseDescendantsAction ContinueTraversal; + enum_constant public static final androidx.compose.ui.node.TraversableNode.Companion.TraverseDescendantsAction SkipSubtreeAndContinueTraversal; + } + + public final class TraversableNodeKt { + method public static androidx.compose.ui.node.TraversableNode? findNearestAncestor(androidx.compose.ui.node.DelegatableNode, Object? key); + method public static T? findNearestAncestor(T); + method public static void traverseAncestors(androidx.compose.ui.node.DelegatableNode, Object? key, kotlin.jvm.functions.Function1 block); + method public static void traverseAncestors(T, kotlin.jvm.functions.Function1 block); + method public static void traverseChildren(androidx.compose.ui.node.DelegatableNode, Object? key, kotlin.jvm.functions.Function1 block); + method public static void traverseChildren(T, kotlin.jvm.functions.Function1 block); + method public static void traverseDescendants(androidx.compose.ui.node.DelegatableNode, Object? key, kotlin.jvm.functions.Function1 block); + method public static void traverseDescendants(T, kotlin.jvm.functions.Function1 block); + } + +} + +package androidx.compose.ui.platform { + + public abstract class AbstractComposeView extends android.view.ViewGroup { + ctor public AbstractComposeView(android.content.Context context); + ctor public AbstractComposeView(android.content.Context context, optional android.util.AttributeSet? attrs); + ctor public AbstractComposeView(android.content.Context context, optional android.util.AttributeSet? attrs, optional int defStyleAttr); + method @androidx.compose.runtime.Composable @androidx.compose.ui.UiComposable public abstract void Content(); + method public final void createComposition(); + method public final void disposeComposition(); + method public final boolean getHasComposition(); + method protected boolean getShouldCreateCompositionOnAttachedToWindow(); + method public final boolean getShowLayoutBounds(); + method protected final void onLayout(boolean changed, int left, int top, int right, int bottom); + method protected final void onMeasure(int widthMeasureSpec, int heightMeasureSpec); + method public final void setParentCompositionContext(androidx.compose.runtime.CompositionContext? parent); + method public final void setShowLayoutBounds(boolean); + method public final void setViewCompositionStrategy(androidx.compose.ui.platform.ViewCompositionStrategy strategy); + property public final boolean hasComposition; + property protected boolean shouldCreateCompositionOnAttachedToWindow; + property public final boolean showLayoutBounds; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface AccessibilityManager { + method public long calculateRecommendedTimeoutMillis(long originalTimeoutMillis, optional boolean containsIcons, optional boolean containsText, optional boolean containsControls); + } + + public final class AndroidClipboardManager_androidKt { + method public static androidx.compose.ui.platform.ClipEntry toClipEntry(android.content.ClipData); + method public static androidx.compose.ui.platform.ClipMetadata toClipMetadata(android.content.ClipDescription); + } + + public final class AndroidComposeViewAccessibilityDelegateCompat_androidKt { + method @Deprecated @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static boolean getDisableContentCapture(); + method @Deprecated @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static void setDisableContentCapture(boolean); + property @Deprecated @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static final boolean DisableContentCapture; + } + + public final class AndroidCompositionLocals_androidKt { + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalConfiguration(); + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalContext(); + method @Deprecated public static androidx.compose.runtime.ProvidableCompositionLocal getLocalLifecycleOwner(); + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalSavedStateRegistryOwner(); + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalView(); + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalConfiguration; + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalContext; + property @Deprecated public static final androidx.compose.runtime.ProvidableCompositionLocal LocalLifecycleOwner; + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalSavedStateRegistryOwner; + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalView; + } + + public final class AndroidUiDispatcher extends kotlinx.coroutines.CoroutineDispatcher { + method public void dispatch(kotlin.coroutines.CoroutineContext context, Runnable block); + method public android.view.Choreographer getChoreographer(); + method public androidx.compose.runtime.MonotonicFrameClock getFrameClock(); + property public final android.view.Choreographer choreographer; + property public final androidx.compose.runtime.MonotonicFrameClock frameClock; + field public static final androidx.compose.ui.platform.AndroidUiDispatcher.Companion Companion; + } + + public static final class AndroidUiDispatcher.Companion { + method public kotlin.coroutines.CoroutineContext getCurrentThread(); + method public kotlin.coroutines.CoroutineContext getMain(); + property public final kotlin.coroutines.CoroutineContext CurrentThread; + property public final kotlin.coroutines.CoroutineContext Main; + } + + public final class AndroidUiFrameClock implements androidx.compose.runtime.MonotonicFrameClock { + ctor public AndroidUiFrameClock(android.view.Choreographer choreographer); + method public android.view.Choreographer getChoreographer(); + method public suspend Object? withFrameNanos(kotlin.jvm.functions.Function1 onFrame, kotlin.coroutines.Continuation); + property public final android.view.Choreographer choreographer; + } + + public final class AndroidUriHandler implements androidx.compose.ui.platform.UriHandler { + ctor public AndroidUriHandler(android.content.Context context); + method public void openUri(String uri); + } + + public final class AndroidViewConfiguration implements androidx.compose.ui.platform.ViewConfiguration { + ctor public AndroidViewConfiguration(android.view.ViewConfiguration viewConfiguration); + method public long getDoubleTapMinTimeMillis(); + method public long getDoubleTapTimeoutMillis(); + method public long getLongPressTimeoutMillis(); + method public float getTouchSlop(); + property public long doubleTapMinTimeMillis; + property public long doubleTapTimeoutMillis; + property public float handwritingGestureLineMargin; + property public float handwritingSlop; + property public long longPressTimeoutMillis; + property public float maximumFlingVelocity; + property public float touchSlop; + } + + public final class ClipEntry { + ctor public ClipEntry(android.content.ClipData clipData); + method public android.content.ClipData getClipData(); + method public androidx.compose.ui.platform.ClipMetadata getClipMetadata(); + property public final android.content.ClipData clipData; + property public final androidx.compose.ui.platform.ClipMetadata clipMetadata; + } + + public final class ClipMetadata { + ctor public ClipMetadata(android.content.ClipDescription clipDescription); + method public android.content.ClipDescription getClipDescription(); + property public final android.content.ClipDescription clipDescription; + } + + public final class ClipboardExtensions_androidKt { + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static android.net.Uri? firstUriOrNull(androidx.compose.ui.platform.ClipEntry); + } + + public interface ClipboardManager { + method public default androidx.compose.ui.platform.ClipEntry? getClip(); + method public default android.content.ClipboardManager getNativeClipboard(); + method public androidx.compose.ui.text.AnnotatedString? getText(); + method public default boolean hasText(); + method public default void setClip(androidx.compose.ui.platform.ClipEntry? clipEntry); + method public void setText(androidx.compose.ui.text.AnnotatedString annotatedString); + property public default android.content.ClipboardManager nativeClipboard; + } + + public final class ComposeView extends androidx.compose.ui.platform.AbstractComposeView { + ctor public ComposeView(android.content.Context context); + ctor public ComposeView(android.content.Context context, optional android.util.AttributeSet? attrs); + ctor public ComposeView(android.content.Context context, optional android.util.AttributeSet? attrs, optional int defStyleAttr); + method @androidx.compose.runtime.Composable public void Content(); + method public void setContent(kotlin.jvm.functions.Function0 content); + property protected boolean shouldCreateCompositionOnAttachedToWindow; + } + + public final class CompositionLocalsKt { + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalAccessibilityManager(); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.runtime.ProvidableCompositionLocal getLocalAutofill(); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.runtime.ProvidableCompositionLocal getLocalAutofillTree(); + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalClipboardManager(); + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalDensity(); + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalFocusManager(); + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalFontFamilyResolver(); + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalGraphicsContext(); + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalHapticFeedback(); + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalInputModeManager(); + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalLayoutDirection(); + method public static androidx.compose.runtime.CompositionLocal getLocalScrollCaptureInProgress(); + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalSoftwareKeyboardController(); + method @Deprecated public static androidx.compose.runtime.ProvidableCompositionLocal getLocalTextInputService(); + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalTextToolbar(); + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalUriHandler(); + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalViewConfiguration(); + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalWindowInfo(); + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalAccessibilityManager; + property @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static final androidx.compose.runtime.ProvidableCompositionLocal LocalAutofill; + property @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static final androidx.compose.runtime.ProvidableCompositionLocal LocalAutofillTree; + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalClipboardManager; + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalDensity; + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalFocusManager; + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalFontFamilyResolver; + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalGraphicsContext; + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalHapticFeedback; + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalInputModeManager; + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalLayoutDirection; + property public static final androidx.compose.runtime.CompositionLocal LocalScrollCaptureInProgress; + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalSoftwareKeyboardController; + property @Deprecated public static final androidx.compose.runtime.ProvidableCompositionLocal LocalTextInputService; + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalTextToolbar; + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalUriHandler; + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalViewConfiguration; + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalWindowInfo; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface InfiniteAnimationPolicy extends kotlin.coroutines.CoroutineContext.Element { + method public default kotlin.coroutines.CoroutineContext.Key getKey(); + method public suspend Object? onInfiniteOperation(kotlin.jvm.functions.Function1,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + property public default kotlin.coroutines.CoroutineContext.Key key; + field public static final androidx.compose.ui.platform.InfiniteAnimationPolicy.Key Key; + } + + public static final class InfiniteAnimationPolicy.Key implements kotlin.coroutines.CoroutineContext.Key { + } + + public final class InspectableModifier extends androidx.compose.ui.platform.InspectorValueInfo implements androidx.compose.ui.Modifier.Element { + ctor public InspectableModifier(kotlin.jvm.functions.Function1 inspectorInfo); + method public androidx.compose.ui.platform.InspectableModifier.End getEnd(); + property public final androidx.compose.ui.platform.InspectableModifier.End end; + } + + public final class InspectableModifier.End implements androidx.compose.ui.Modifier.Element { + ctor public InspectableModifier.End(); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface InspectableValue { + method public default kotlin.sequences.Sequence getInspectableElements(); + method public default String? getNameFallback(); + method public default Object? getValueOverride(); + property public default kotlin.sequences.Sequence inspectableElements; + property public default String? nameFallback; + property public default Object? valueOverride; + } + + public final class InspectableValueKt { + method public static inline kotlin.jvm.functions.Function1 debugInspectorInfo(kotlin.jvm.functions.Function1 definitions); + method public static kotlin.jvm.functions.Function1 getNoInspectorInfo(); + method @Deprecated public static inline androidx.compose.ui.Modifier inspectable(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 inspectorInfo, kotlin.jvm.functions.Function1 factory); + method @kotlin.PublishedApi internal static androidx.compose.ui.Modifier inspectableWrapper(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 inspectorInfo, androidx.compose.ui.Modifier wrapped); + method public static boolean isDebugInspectorInfoEnabled(); + method public static void setDebugInspectorInfoEnabled(boolean); + property public static final kotlin.jvm.functions.Function1 NoInspectorInfo; + property public static final boolean isDebugInspectorInfoEnabled; + } + + public final class InspectionModeKt { + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalInspectionMode(); + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalInspectionMode; + } + + public final class InspectorInfo { + ctor public InspectorInfo(); + method public String? getName(); + method public androidx.compose.ui.platform.ValueElementSequence getProperties(); + method public Object? getValue(); + method public void setName(String?); + method public void setValue(Object?); + property public final String? name; + property public final androidx.compose.ui.platform.ValueElementSequence properties; + property public final Object? value; + } + + public abstract class InspectorValueInfo implements androidx.compose.ui.platform.InspectableValue { + ctor public InspectorValueInfo(kotlin.jvm.functions.Function1 info); + property public kotlin.sequences.Sequence inspectableElements; + property public String? nameFallback; + property public Object? valueOverride; + } + + public final class JvmActuals_jvmKt { + method @kotlin.PublishedApi internal static inline R synchronized(Object lock, kotlin.jvm.functions.Function0 block); + } + + public final class NestedScrollInteropConnectionKt { + method @androidx.compose.runtime.Composable public static androidx.compose.ui.input.nestedscroll.NestedScrollConnection rememberNestedScrollInteropConnection(optional android.view.View hostView); + } + + @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public fun interface PlatformTextInputInterceptor { + method public suspend Object? interceptStartInputMethod(androidx.compose.ui.platform.PlatformTextInputMethodRequest request, androidx.compose.ui.platform.PlatformTextInputSession nextHandler, kotlin.coroutines.Continuation); + } + + public fun interface PlatformTextInputMethodRequest { + method public android.view.inputmethod.InputConnection createInputConnection(android.view.inputmethod.EditorInfo outAttributes); + } + + public interface PlatformTextInputModifierNode extends androidx.compose.ui.node.DelegatableNode { + } + + public final class PlatformTextInputModifierNodeKt { + method @SuppressCompatibility @androidx.compose.runtime.Composable @androidx.compose.ui.ExperimentalComposeUiApi public static void InterceptPlatformTextInput(androidx.compose.ui.platform.PlatformTextInputInterceptor interceptor, kotlin.jvm.functions.Function0 content); + method public static suspend Object? establishTextInputSession(androidx.compose.ui.platform.PlatformTextInputModifierNode, kotlin.jvm.functions.Function2,? extends java.lang.Object?> block, kotlin.coroutines.Continuation); + } + + public interface PlatformTextInputSession { + method public android.view.View getView(); + method public suspend Object? startInputMethod(androidx.compose.ui.platform.PlatformTextInputMethodRequest request, kotlin.coroutines.Continuation); + property public abstract android.view.View view; + } + + public interface PlatformTextInputSessionScope extends androidx.compose.ui.platform.PlatformTextInputSession kotlinx.coroutines.CoroutineScope { + } + + @androidx.compose.runtime.Stable public interface SoftwareKeyboardController { + method public void hide(); + method public void show(); + } + + public final class TestTagKt { + method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier testTag(androidx.compose.ui.Modifier, String tag); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface TextToolbar { + method public androidx.compose.ui.platform.TextToolbarStatus getStatus(); + method public void hide(); + method public void showMenu(androidx.compose.ui.geometry.Rect rect, optional kotlin.jvm.functions.Function0? onCopyRequested, optional kotlin.jvm.functions.Function0? onPasteRequested, optional kotlin.jvm.functions.Function0? onCutRequested, optional kotlin.jvm.functions.Function0? onSelectAllRequested); + property public abstract androidx.compose.ui.platform.TextToolbarStatus status; + } + + public enum TextToolbarStatus { + enum_constant public static final androidx.compose.ui.platform.TextToolbarStatus Hidden; + enum_constant public static final androidx.compose.ui.platform.TextToolbarStatus Shown; + } + + public interface UriHandler { + method public void openUri(String uri); + } + + public final class ValueElement { + ctor public ValueElement(String name, Object? value); + method public String component1(); + method public Object? component2(); + method public androidx.compose.ui.platform.ValueElement copy(String name, Object? value); + method public String getName(); + method public Object? getValue(); + property public final String name; + property public final Object? value; + } + + public final class ValueElementSequence implements kotlin.sequences.Sequence { + ctor public ValueElementSequence(); + method public java.util.Iterator iterator(); + method public operator void set(String name, Object? value); + } + + public interface ViewCompositionStrategy { + method public kotlin.jvm.functions.Function0 installFor(androidx.compose.ui.platform.AbstractComposeView view); + field public static final androidx.compose.ui.platform.ViewCompositionStrategy.Companion Companion; + } + + public static final class ViewCompositionStrategy.Companion { + method public androidx.compose.ui.platform.ViewCompositionStrategy getDefault(); + property public final androidx.compose.ui.platform.ViewCompositionStrategy Default; + } + + public static final class ViewCompositionStrategy.DisposeOnDetachedFromWindow implements androidx.compose.ui.platform.ViewCompositionStrategy { + method public kotlin.jvm.functions.Function0 installFor(androidx.compose.ui.platform.AbstractComposeView view); + field public static final androidx.compose.ui.platform.ViewCompositionStrategy.DisposeOnDetachedFromWindow INSTANCE; + } + + public static final class ViewCompositionStrategy.DisposeOnDetachedFromWindowOrReleasedFromPool implements androidx.compose.ui.platform.ViewCompositionStrategy { + method public kotlin.jvm.functions.Function0 installFor(androidx.compose.ui.platform.AbstractComposeView view); + field public static final androidx.compose.ui.platform.ViewCompositionStrategy.DisposeOnDetachedFromWindowOrReleasedFromPool INSTANCE; + } + + public static final class ViewCompositionStrategy.DisposeOnLifecycleDestroyed implements androidx.compose.ui.platform.ViewCompositionStrategy { + ctor public ViewCompositionStrategy.DisposeOnLifecycleDestroyed(androidx.lifecycle.Lifecycle lifecycle); + ctor public ViewCompositionStrategy.DisposeOnLifecycleDestroyed(androidx.lifecycle.LifecycleOwner lifecycleOwner); + method public kotlin.jvm.functions.Function0 installFor(androidx.compose.ui.platform.AbstractComposeView view); + } + + public static final class ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed implements androidx.compose.ui.platform.ViewCompositionStrategy { + method public kotlin.jvm.functions.Function0 installFor(androidx.compose.ui.platform.AbstractComposeView view); + field public static final androidx.compose.ui.platform.ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed INSTANCE; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface ViewConfiguration { + method public long getDoubleTapMinTimeMillis(); + method public long getDoubleTapTimeoutMillis(); + method public default float getHandwritingGestureLineMargin(); + method public default float getHandwritingSlop(); + method public long getLongPressTimeoutMillis(); + method public default float getMaximumFlingVelocity(); + method public default long getMinimumTouchTargetSize(); + method public float getTouchSlop(); + property public abstract long doubleTapMinTimeMillis; + property public abstract long doubleTapTimeoutMillis; + property public default float handwritingGestureLineMargin; + property public default float handwritingSlop; + property public abstract long longPressTimeoutMillis; + property public default float maximumFlingVelocity; + property public default long minimumTouchTargetSize; + property public abstract float touchSlop; + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface ViewRootForInspector { + method public default androidx.compose.ui.platform.AbstractComposeView? getSubCompositionView(); + method public default android.view.View? getViewRoot(); + property public default androidx.compose.ui.platform.AbstractComposeView? subCompositionView; + property public default android.view.View? viewRoot; + } + + @VisibleForTesting public interface ViewRootForTest extends androidx.compose.ui.node.RootForTest { + method public boolean getHasPendingMeasureOrLayout(); + method public android.view.View getView(); + method public void invalidateDescendants(); + method public boolean isLifecycleInResumedState(); + property public abstract boolean hasPendingMeasureOrLayout; + property public abstract boolean isLifecycleInResumedState; + property public abstract android.view.View view; + field public static final androidx.compose.ui.platform.ViewRootForTest.Companion Companion; + } + + public static final class ViewRootForTest.Companion { + method public kotlin.jvm.functions.Function1? getOnViewCreatedCallback(); + method public void setOnViewCreatedCallback(kotlin.jvm.functions.Function1?); + property public final kotlin.jvm.functions.Function1? onViewCreatedCallback; + } + + @androidx.compose.runtime.Stable public interface WindowInfo { + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public default int getKeyboardModifiers(); + method public boolean isWindowFocused(); + property public abstract boolean isWindowFocused; + property @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public default int keyboardModifiers; + } + + @SuppressCompatibility @androidx.compose.ui.InternalComposeUiApi public fun interface WindowRecomposerFactory { + method public androidx.compose.runtime.Recomposer createRecomposer(android.view.View windowRootView); + field public static final androidx.compose.ui.platform.WindowRecomposerFactory.Companion Companion; + } + + public static final class WindowRecomposerFactory.Companion { + method public androidx.compose.ui.platform.WindowRecomposerFactory getLifecycleAware(); + property public final androidx.compose.ui.platform.WindowRecomposerFactory LifecycleAware; + } + + @SuppressCompatibility @androidx.compose.ui.InternalComposeUiApi public final class WindowRecomposerPolicy { + method @kotlin.PublishedApi internal boolean compareAndSetFactory(androidx.compose.ui.platform.WindowRecomposerFactory expected, androidx.compose.ui.platform.WindowRecomposerFactory factory); + method @kotlin.PublishedApi internal androidx.compose.ui.platform.WindowRecomposerFactory getAndSetFactory(androidx.compose.ui.platform.WindowRecomposerFactory factory); + method public void setFactory(androidx.compose.ui.platform.WindowRecomposerFactory factory); + method public inline R withFactory(androidx.compose.ui.platform.WindowRecomposerFactory factory, kotlin.jvm.functions.Function0 block); + field public static final androidx.compose.ui.platform.WindowRecomposerPolicy INSTANCE; + } + + public final class WindowRecomposer_androidKt { + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.runtime.Recomposer createLifecycleAwareWindowRecomposer(android.view.View, optional kotlin.coroutines.CoroutineContext coroutineContext, optional androidx.lifecycle.Lifecycle? lifecycle); + method public static androidx.compose.runtime.CompositionContext? findViewTreeCompositionContext(android.view.View); + method public static androidx.compose.runtime.CompositionContext? getCompositionContext(android.view.View); + method public static void setCompositionContext(android.view.View, androidx.compose.runtime.CompositionContext?); + } + +} + +package androidx.compose.ui.res { + + public final class ColorResources_androidKt { + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static long colorResource(@ColorRes int id); + } + + public final class FontResources_androidKt { + method @Deprecated @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static androidx.compose.ui.text.font.Typeface fontResource(androidx.compose.ui.text.font.FontFamily fontFamily); + } + + public final class ImageResources_androidKt { + method public static androidx.compose.ui.graphics.ImageBitmap imageResource(androidx.compose.ui.graphics.ImageBitmap.Companion, android.content.res.Resources res, @DrawableRes int id); + method @androidx.compose.runtime.Composable public static androidx.compose.ui.graphics.ImageBitmap imageResource(androidx.compose.ui.graphics.ImageBitmap.Companion, @DrawableRes int id); + } + + public final class PainterResources_androidKt { + method @androidx.compose.runtime.Composable public static androidx.compose.ui.graphics.painter.Painter painterResource(@DrawableRes int id); + } + + public final class PrimitiveResources_androidKt { + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static boolean booleanResource(@BoolRes int id); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static float dimensionResource(@DimenRes int id); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static int[] integerArrayResource(@ArrayRes int id); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static int integerResource(@IntegerRes int id); + } + + public final class ResourceResolutionException extends java.lang.RuntimeException { + ctor public ResourceResolutionException(String message, Throwable cause); + } + + public final class StringResources_androidKt { + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static String pluralStringResource(@PluralsRes int id, int count); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static String pluralStringResource(@PluralsRes int id, int count, java.lang.Object... formatArgs); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static String[] stringArrayResource(@ArrayRes int id); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static String stringResource(@StringRes int id); + method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public static String stringResource(@StringRes int id, java.lang.Object... formatArgs); + } + + public final class VectorResources_androidKt { + method @kotlin.jvm.Throws(exceptionClasses=XmlPullParserException::class) public static androidx.compose.ui.graphics.vector.ImageVector vectorResource(androidx.compose.ui.graphics.vector.ImageVector.Companion, optional android.content.res.Resources.Theme? theme, android.content.res.Resources res, int resId) throws org.xmlpull.v1.XmlPullParserException; + method @androidx.compose.runtime.Composable public static androidx.compose.ui.graphics.vector.ImageVector vectorResource(androidx.compose.ui.graphics.vector.ImageVector.Companion, @DrawableRes int id); + } + +} + +package androidx.compose.ui.semantics { + + public final class AccessibilityAction> { + ctor public AccessibilityAction(String? label, T? action); + method public T? getAction(); + method public String? getLabel(); + property public final T? action; + property public final String? label; + } + + public final class CollectionInfo { + ctor public CollectionInfo(int rowCount, int columnCount); + method public int getColumnCount(); + method public int getRowCount(); + property public final int columnCount; + property public final int rowCount; + } + + public final class CollectionItemInfo { + ctor public CollectionItemInfo(int rowIndex, int rowSpan, int columnIndex, int columnSpan); + method public int getColumnIndex(); + method public int getColumnSpan(); + method public int getRowIndex(); + method public int getRowSpan(); + property public final int columnIndex; + property public final int columnSpan; + property public final int rowIndex; + property public final int rowSpan; + } + + public final class CustomAccessibilityAction { + ctor public CustomAccessibilityAction(String label, kotlin.jvm.functions.Function0 action); + method public kotlin.jvm.functions.Function0 getAction(); + method public String getLabel(); + property public final kotlin.jvm.functions.Function0 action; + property public final String label; + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class LiveRegionMode { + field public static final androidx.compose.ui.semantics.LiveRegionMode.Companion Companion; + } + + public static final class LiveRegionMode.Companion { + method public int getAssertive(); + method public int getPolite(); + property public final int Assertive; + property public final int Polite; + } + + public final class ProgressBarRangeInfo { + ctor public ProgressBarRangeInfo(float current, kotlin.ranges.ClosedFloatingPointRange range, optional int steps); + method public float getCurrent(); + method public kotlin.ranges.ClosedFloatingPointRange getRange(); + method public int getSteps(); + property public final float current; + property public final kotlin.ranges.ClosedFloatingPointRange range; + property public final int steps; + field public static final androidx.compose.ui.semantics.ProgressBarRangeInfo.Companion Companion; + } + + public static final class ProgressBarRangeInfo.Companion { + method public androidx.compose.ui.semantics.ProgressBarRangeInfo getIndeterminate(); + property public final androidx.compose.ui.semantics.ProgressBarRangeInfo Indeterminate; + } + + @androidx.compose.runtime.Immutable @kotlin.jvm.JvmInline public final value class Role { + field public static final androidx.compose.ui.semantics.Role.Companion Companion; + } + + public static final class Role.Companion { + method public int getButton(); + method public int getCheckbox(); + method public int getDropdownList(); + method public int getImage(); + method public int getRadioButton(); + method public int getSwitch(); + method public int getTab(); + property public final int Button; + property public final int Checkbox; + property public final int DropdownList; + property public final int Image; + property public final int RadioButton; + property public final int Switch; + property public final int Tab; + } + + public final class ScrollAxisRange { + ctor public ScrollAxisRange(kotlin.jvm.functions.Function0 value, kotlin.jvm.functions.Function0 maxValue, optional boolean reverseScrolling); + method public kotlin.jvm.functions.Function0 getMaxValue(); + method public boolean getReverseScrolling(); + method public kotlin.jvm.functions.Function0 getValue(); + property public final kotlin.jvm.functions.Function0 maxValue; + property public final boolean reverseScrolling; + property public final kotlin.jvm.functions.Function0 value; + } + + public final class SemanticsActions { + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getClearTextSubstitution(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getCollapse(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getCopyText(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey> getCustomActions(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getCutText(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getDismiss(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getExpand(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey,java.lang.Boolean>>> getGetScrollViewportLength(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey,java.lang.Boolean>>> getGetTextLayoutResult(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getInsertTextAtCursor(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getOnClick(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getOnImeAction(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getOnLongClick(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getPageDown(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getPageLeft(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getPageRight(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getPageUp(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getPasteText(); + method @Deprecated public androidx.compose.ui.semantics.SemanticsPropertyKey>> getPerformImeAction(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getRequestFocus(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getScrollBy(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey,java.lang.Object?>> getScrollByOffset(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getScrollToIndex(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getSetProgress(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getSetSelection(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getSetText(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getSetTextSubstitution(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey>> getShowTextSubstitution(); + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> ClearTextSubstitution; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> Collapse; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> CopyText; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey> CustomActions; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> CutText; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> Dismiss; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> Expand; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey,java.lang.Boolean>>> GetScrollViewportLength; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey,java.lang.Boolean>>> GetTextLayoutResult; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> InsertTextAtCursor; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> OnClick; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> OnImeAction; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> OnLongClick; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> PageDown; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> PageLeft; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> PageRight; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> PageUp; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> PasteText; + property @Deprecated public final androidx.compose.ui.semantics.SemanticsPropertyKey>> PerformImeAction; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> RequestFocus; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> ScrollBy; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey,java.lang.Object?>> ScrollByOffset; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> ScrollToIndex; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> SetProgress; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> SetSelection; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> SetText; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> SetTextSubstitution; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey>> ShowTextSubstitution; + field public static final androidx.compose.ui.semantics.SemanticsActions INSTANCE; + } + + public final class SemanticsConfiguration implements java.lang.Iterable,? extends java.lang.Object?>> kotlin.jvm.internal.markers.KMappedMarker androidx.compose.ui.semantics.SemanticsPropertyReceiver { + ctor public SemanticsConfiguration(); + method public operator boolean contains(androidx.compose.ui.semantics.SemanticsPropertyKey key); + method public androidx.compose.ui.semantics.SemanticsConfiguration copy(); + method public operator T get(androidx.compose.ui.semantics.SemanticsPropertyKey key); + method public T getOrElse(androidx.compose.ui.semantics.SemanticsPropertyKey key, kotlin.jvm.functions.Function0 defaultValue); + method public T? getOrElseNullable(androidx.compose.ui.semantics.SemanticsPropertyKey key, kotlin.jvm.functions.Function0 defaultValue); + method public boolean isClearingSemantics(); + method public boolean isMergingSemanticsOfDescendants(); + method public java.util.Iterator,java.lang.Object?>> iterator(); + method public void set(androidx.compose.ui.semantics.SemanticsPropertyKey key, T value); + method public void setClearingSemantics(boolean); + method public void setMergingSemanticsOfDescendants(boolean); + property public final boolean isClearingSemantics; + property public final boolean isMergingSemanticsOfDescendants; + } + + public final class SemanticsConfigurationKt { + method public static T? getOrNull(androidx.compose.ui.semantics.SemanticsConfiguration, androidx.compose.ui.semantics.SemanticsPropertyKey key); + } + + @kotlin.jvm.JvmDefaultWithCompatibility public interface SemanticsModifier extends androidx.compose.ui.Modifier.Element { + method @Deprecated public default int getId(); + method public androidx.compose.ui.semantics.SemanticsConfiguration getSemanticsConfiguration(); + property @Deprecated public default int id; + property public abstract androidx.compose.ui.semantics.SemanticsConfiguration semanticsConfiguration; + } + + public final class SemanticsModifierKt { + method public static androidx.compose.ui.Modifier clearAndSetSemantics(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1 properties); + method public static androidx.compose.ui.Modifier semantics(androidx.compose.ui.Modifier, optional boolean mergeDescendants, kotlin.jvm.functions.Function1 properties); + } + + public final class SemanticsNode { + method public int getAlignmentLinePosition(androidx.compose.ui.layout.AlignmentLine alignmentLine); + method public androidx.compose.ui.geometry.Rect getBoundsInRoot(); + method public androidx.compose.ui.geometry.Rect getBoundsInWindow(); + method public java.util.List getChildren(); + method public androidx.compose.ui.semantics.SemanticsConfiguration getConfig(); + method public int getId(); + method public androidx.compose.ui.layout.LayoutInfo getLayoutInfo(); + method public boolean getMergingEnabled(); + method public androidx.compose.ui.semantics.SemanticsNode? getParent(); + method public long getPositionInRoot(); + method public long getPositionInWindow(); + method public long getPositionOnScreen(); + method public androidx.compose.ui.node.RootForTest? getRoot(); + method public long getSize(); + method public androidx.compose.ui.geometry.Rect getTouchBoundsInRoot(); + method public boolean isRoot(); + property public final androidx.compose.ui.geometry.Rect boundsInRoot; + property public final androidx.compose.ui.geometry.Rect boundsInWindow; + property public final java.util.List children; + property public final androidx.compose.ui.semantics.SemanticsConfiguration config; + property public final int id; + property public final boolean isRoot; + property public final androidx.compose.ui.layout.LayoutInfo layoutInfo; + property public final boolean mergingEnabled; + property public final androidx.compose.ui.semantics.SemanticsNode? parent; + property public final long positionInRoot; + property public final long positionInWindow; + property public final long positionOnScreen; + property public final androidx.compose.ui.node.RootForTest? root; + property public final long size; + property public final androidx.compose.ui.geometry.Rect touchBoundsInRoot; + } + + public final class SemanticsOwner { + method public androidx.compose.ui.semantics.SemanticsNode getRootSemanticsNode(); + method public androidx.compose.ui.semantics.SemanticsNode getUnmergedRootSemanticsNode(); + property public final androidx.compose.ui.semantics.SemanticsNode rootSemanticsNode; + property public final androidx.compose.ui.semantics.SemanticsNode unmergedRootSemanticsNode; + } + + public final class SemanticsOwnerKt { + method @Deprecated public static java.util.List getAllSemanticsNodes(androidx.compose.ui.semantics.SemanticsOwner, boolean mergingEnabled); + method public static java.util.List getAllSemanticsNodes(androidx.compose.ui.semantics.SemanticsOwner, boolean mergingEnabled, optional boolean skipDeactivatedNodes); + } + + public final class SemanticsProperties { + method public androidx.compose.ui.semantics.SemanticsPropertyKey getCollectionInfo(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getCollectionItemInfo(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey> getContentDescription(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getDisabled(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getEditableText(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getError(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getFocused(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getHeading(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getHorizontalScrollAxisRange(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getImeAction(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey> getIndexForKey(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getInvisibleToUser(); + method @Deprecated public androidx.compose.ui.semantics.SemanticsPropertyKey getIsContainer(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getIsDialog(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getIsEditable(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getIsPopup(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getIsShowingTextSubstitution(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getIsTraversalGroup(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getLiveRegion(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getMaxTextLength(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getPaneTitle(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getPassword(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getProgressBarRangeInfo(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getRole(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getSelectableGroup(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getSelected(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getStateDescription(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getTestTag(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey> getText(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getTextSelectionRange(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getTextSubstitution(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getToggleableState(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getTraversalIndex(); + method public androidx.compose.ui.semantics.SemanticsPropertyKey getVerticalScrollAxisRange(); + property public final androidx.compose.ui.semantics.SemanticsPropertyKey CollectionInfo; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey CollectionItemInfo; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey> ContentDescription; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey Disabled; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey EditableText; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey Error; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey Focused; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey Heading; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey HorizontalScrollAxisRange; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey ImeAction; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey> IndexForKey; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey InvisibleToUser; + property @Deprecated public final androidx.compose.ui.semantics.SemanticsPropertyKey IsContainer; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey IsDialog; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey IsEditable; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey IsPopup; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey IsShowingTextSubstitution; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey IsTraversalGroup; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey LiveRegion; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey MaxTextLength; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey PaneTitle; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey Password; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey ProgressBarRangeInfo; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey Role; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey SelectableGroup; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey Selected; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey StateDescription; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey TestTag; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey> Text; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey TextSelectionRange; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey TextSubstitution; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey ToggleableState; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey TraversalIndex; + property public final androidx.compose.ui.semantics.SemanticsPropertyKey VerticalScrollAxisRange; + field public static final androidx.compose.ui.semantics.SemanticsProperties INSTANCE; + } + + @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public final class SemanticsPropertiesAndroid { + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public androidx.compose.ui.semantics.SemanticsPropertyKey getTestTagsAsResourceId(); + property @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public final androidx.compose.ui.semantics.SemanticsPropertyKey TestTagsAsResourceId; + field public static final androidx.compose.ui.semantics.SemanticsPropertiesAndroid INSTANCE; + } + + public final class SemanticsPropertiesKt { + method public static void clearTextSubstitution(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function0? action); + method public static void collapse(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function0? action); + method public static void copyText(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function0? action); + method public static void cutText(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function0? action); + method public static void dialog(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static void disabled(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static void dismiss(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function0? action); + method public static void error(androidx.compose.ui.semantics.SemanticsPropertyReceiver, String description); + method public static void expand(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function0? action); + method public static androidx.compose.ui.semantics.CollectionInfo getCollectionInfo(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static androidx.compose.ui.semantics.CollectionItemInfo getCollectionItemInfo(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static String getContentDescription(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static java.util.List getCustomActions(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static androidx.compose.ui.text.AnnotatedString getEditableText(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static boolean getFocused(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static androidx.compose.ui.semantics.ScrollAxisRange getHorizontalScrollAxisRange(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method @Deprecated public static int getImeAction(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static int getLiveRegion(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static int getMaxTextLength(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static String getPaneTitle(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static androidx.compose.ui.semantics.ProgressBarRangeInfo getProgressBarRangeInfo(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static int getRole(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static void getScrollViewportLength(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function0 action); + method public static boolean getSelected(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static String getStateDescription(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static String getTestTag(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static androidx.compose.ui.text.AnnotatedString getText(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static void getTextLayoutResult(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function1,java.lang.Boolean>? action); + method public static long getTextSelectionRange(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static androidx.compose.ui.text.AnnotatedString getTextSubstitution(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static androidx.compose.ui.state.ToggleableState getToggleableState(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static float getTraversalIndex(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static androidx.compose.ui.semantics.ScrollAxisRange getVerticalScrollAxisRange(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static void heading(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static void indexForKey(androidx.compose.ui.semantics.SemanticsPropertyReceiver, kotlin.jvm.functions.Function1 mapping); + method public static void insertTextAtCursor(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function1? action); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static void invisibleToUser(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method @Deprecated public static boolean isContainer(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static boolean isEditable(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static boolean isShowingTextSubstitution(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static boolean isTraversalGroup(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static void onClick(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function0? action); + method public static void onImeAction(androidx.compose.ui.semantics.SemanticsPropertyReceiver, int imeActionType, optional String? label, kotlin.jvm.functions.Function0? action); + method public static void onLongClick(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function0? action); + method public static void pageDown(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function0? action); + method public static void pageLeft(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function0? action); + method public static void pageRight(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function0? action); + method public static void pageUp(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function0? action); + method public static void password(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static void pasteText(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function0? action); + method @Deprecated public static void performImeAction(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function0? action); + method public static void popup(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static void requestFocus(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function0? action); + method public static void scrollBy(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function2? action); + method public static void scrollByOffset(androidx.compose.ui.semantics.SemanticsPropertyReceiver, kotlin.jvm.functions.Function2,? extends java.lang.Object?> action); + method public static void scrollToIndex(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function1 action); + method public static void selectableGroup(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method public static void setCollectionInfo(androidx.compose.ui.semantics.SemanticsPropertyReceiver, androidx.compose.ui.semantics.CollectionInfo); + method public static void setCollectionItemInfo(androidx.compose.ui.semantics.SemanticsPropertyReceiver, androidx.compose.ui.semantics.CollectionItemInfo); + method @Deprecated public static void setContainer(androidx.compose.ui.semantics.SemanticsPropertyReceiver, boolean); + method public static void setContentDescription(androidx.compose.ui.semantics.SemanticsPropertyReceiver, String); + method public static void setCustomActions(androidx.compose.ui.semantics.SemanticsPropertyReceiver, java.util.List); + method public static void setEditable(androidx.compose.ui.semantics.SemanticsPropertyReceiver, boolean); + method public static void setEditableText(androidx.compose.ui.semantics.SemanticsPropertyReceiver, androidx.compose.ui.text.AnnotatedString); + method public static void setFocused(androidx.compose.ui.semantics.SemanticsPropertyReceiver, boolean); + method public static void setHorizontalScrollAxisRange(androidx.compose.ui.semantics.SemanticsPropertyReceiver, androidx.compose.ui.semantics.ScrollAxisRange); + method @Deprecated public static void setImeAction(androidx.compose.ui.semantics.SemanticsPropertyReceiver, int); + method public static void setLiveRegion(androidx.compose.ui.semantics.SemanticsPropertyReceiver, int); + method public static void setMaxTextLength(androidx.compose.ui.semantics.SemanticsPropertyReceiver, int); + method public static void setPaneTitle(androidx.compose.ui.semantics.SemanticsPropertyReceiver, String); + method public static void setProgress(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function1? action); + method public static void setProgressBarRangeInfo(androidx.compose.ui.semantics.SemanticsPropertyReceiver, androidx.compose.ui.semantics.ProgressBarRangeInfo); + method public static void setRole(androidx.compose.ui.semantics.SemanticsPropertyReceiver, int); + method public static void setSelected(androidx.compose.ui.semantics.SemanticsPropertyReceiver, boolean); + method public static void setSelection(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function3? action); + method public static void setShowingTextSubstitution(androidx.compose.ui.semantics.SemanticsPropertyReceiver, boolean); + method public static void setStateDescription(androidx.compose.ui.semantics.SemanticsPropertyReceiver, String); + method public static void setTestTag(androidx.compose.ui.semantics.SemanticsPropertyReceiver, String); + method public static void setText(androidx.compose.ui.semantics.SemanticsPropertyReceiver, androidx.compose.ui.text.AnnotatedString); + method public static void setText(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function1? action); + method public static void setTextSelectionRange(androidx.compose.ui.semantics.SemanticsPropertyReceiver, long); + method public static void setTextSubstitution(androidx.compose.ui.semantics.SemanticsPropertyReceiver, androidx.compose.ui.text.AnnotatedString); + method public static void setTextSubstitution(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function1? action); + method public static void setToggleableState(androidx.compose.ui.semantics.SemanticsPropertyReceiver, androidx.compose.ui.state.ToggleableState); + method public static void setTraversalGroup(androidx.compose.ui.semantics.SemanticsPropertyReceiver, boolean); + method public static void setTraversalIndex(androidx.compose.ui.semantics.SemanticsPropertyReceiver, float); + method public static void setVerticalScrollAxisRange(androidx.compose.ui.semantics.SemanticsPropertyReceiver, androidx.compose.ui.semantics.ScrollAxisRange); + method public static void showTextSubstitution(androidx.compose.ui.semantics.SemanticsPropertyReceiver, optional String? label, kotlin.jvm.functions.Function1? action); + } + + public final class SemanticsProperties_androidKt { + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static boolean getTestTagsAsResourceId(androidx.compose.ui.semantics.SemanticsPropertyReceiver); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static void setTestTagsAsResourceId(androidx.compose.ui.semantics.SemanticsPropertyReceiver, boolean); + } + + public final class SemanticsPropertyKey { + ctor public SemanticsPropertyKey(String name, optional kotlin.jvm.functions.Function2 mergePolicy); + method public String getName(); + method public operator T getValue(androidx.compose.ui.semantics.SemanticsPropertyReceiver thisRef, kotlin.reflect.KProperty property); + method public T? merge(T? parentValue, T childValue); + method public operator void setValue(androidx.compose.ui.semantics.SemanticsPropertyReceiver thisRef, kotlin.reflect.KProperty property, T value); + property public final String name; + } + + public interface SemanticsPropertyReceiver { + method public operator void set(androidx.compose.ui.semantics.SemanticsPropertyKey key, T value); + } + +} + +package androidx.compose.ui.state { + + public enum ToggleableState { + enum_constant public static final androidx.compose.ui.state.ToggleableState Indeterminate; + enum_constant public static final androidx.compose.ui.state.ToggleableState Off; + enum_constant public static final androidx.compose.ui.state.ToggleableState On; + } + + public final class ToggleableStateKt { + method public static androidx.compose.ui.state.ToggleableState ToggleableState(boolean value); + } + +} + +package androidx.compose.ui.text { + + public final class TextMeasurerHelperKt { + method @androidx.compose.runtime.Composable public static androidx.compose.ui.text.TextMeasurer rememberTextMeasurer(optional int cacheSize); + } + +} + +package androidx.compose.ui.viewinterop { + + public final class AndroidView_androidKt { + method @androidx.compose.runtime.Composable @androidx.compose.ui.UiComposable public static void AndroidView(kotlin.jvm.functions.Function1 factory, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1 update); + method @androidx.compose.runtime.Composable @androidx.compose.ui.UiComposable public static void AndroidView(kotlin.jvm.functions.Function1 factory, optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function1? onReset, optional kotlin.jvm.functions.Function1 onRelease, optional kotlin.jvm.functions.Function1 update); + method public static kotlin.jvm.functions.Function1 getNoOpUpdate(); + property public static final kotlin.jvm.functions.Function1 NoOpUpdate; + } + +} + +package androidx.compose.ui.window { + + public final class AndroidDialog_androidKt { + method @androidx.compose.runtime.Composable public static void Dialog(kotlin.jvm.functions.Function0 onDismissRequest, optional androidx.compose.ui.window.DialogProperties properties, kotlin.jvm.functions.Function0 content); + } + + public final class AndroidPopup_androidKt { + method @androidx.compose.runtime.Composable public static void Popup(optional androidx.compose.ui.Alignment alignment, optional long offset, optional kotlin.jvm.functions.Function0? onDismissRequest, optional androidx.compose.ui.window.PopupProperties properties, kotlin.jvm.functions.Function0 content); + method @androidx.compose.runtime.Composable public static void Popup(androidx.compose.ui.window.PopupPositionProvider popupPositionProvider, optional kotlin.jvm.functions.Function0? onDismissRequest, optional androidx.compose.ui.window.PopupProperties properties, kotlin.jvm.functions.Function0 content); + method @org.jetbrains.annotations.TestOnly public static boolean isPopupLayout(android.view.View view, optional String? testTag); + } + + @androidx.compose.runtime.Immutable public final class DialogProperties { + ctor @Deprecated public DialogProperties(optional boolean dismissOnBackPress, optional boolean dismissOnClickOutside, optional androidx.compose.ui.window.SecureFlagPolicy securePolicy); + ctor public DialogProperties(optional boolean dismissOnBackPress, optional boolean dismissOnClickOutside, optional androidx.compose.ui.window.SecureFlagPolicy securePolicy, optional boolean usePlatformDefaultWidth, optional boolean decorFitsSystemWindows); + ctor public DialogProperties(optional boolean dismissOnBackPress, optional boolean dismissOnClickOutside, optional boolean usePlatformDefaultWidth); + method public boolean getDecorFitsSystemWindows(); + method public boolean getDismissOnBackPress(); + method public boolean getDismissOnClickOutside(); + method public androidx.compose.ui.window.SecureFlagPolicy getSecurePolicy(); + method public boolean getUsePlatformDefaultWidth(); + property public final boolean decorFitsSystemWindows; + property public final boolean dismissOnBackPress; + property public final boolean dismissOnClickOutside; + property public final androidx.compose.ui.window.SecureFlagPolicy securePolicy; + property public final boolean usePlatformDefaultWidth; + } + + public interface DialogWindowProvider { + method public android.view.Window getWindow(); + property public abstract android.view.Window window; + } + + @androidx.compose.runtime.Immutable public interface PopupPositionProvider { + method public long calculatePosition(androidx.compose.ui.unit.IntRect anchorBounds, long windowSize, androidx.compose.ui.unit.LayoutDirection layoutDirection, long popupContentSize); + } + + @androidx.compose.runtime.Immutable public final class PopupProperties { + ctor public PopupProperties(optional boolean focusable, optional boolean dismissOnBackPress, optional boolean dismissOnClickOutside, optional androidx.compose.ui.window.SecureFlagPolicy securePolicy, optional boolean excludeFromSystemGesture, optional boolean clippingEnabled); + ctor public PopupProperties(optional boolean focusable, optional boolean dismissOnBackPress, optional boolean dismissOnClickOutside, optional androidx.compose.ui.window.SecureFlagPolicy securePolicy, optional boolean excludeFromSystemGesture, optional boolean clippingEnabled, optional boolean usePlatformDefaultWidth); + ctor public PopupProperties(optional boolean focusable, optional boolean dismissOnBackPress, optional boolean dismissOnClickOutside, optional boolean clippingEnabled); + ctor public PopupProperties(int flags, optional boolean inheritSecurePolicy, optional boolean dismissOnBackPress, optional boolean dismissOnClickOutside, optional boolean excludeFromSystemGesture, optional boolean usePlatformDefaultWidth); + method public boolean getClippingEnabled(); + method public boolean getDismissOnBackPress(); + method public boolean getDismissOnClickOutside(); + method public boolean getExcludeFromSystemGesture(); + method public boolean getFocusable(); + method public androidx.compose.ui.window.SecureFlagPolicy getSecurePolicy(); + method public boolean getUsePlatformDefaultWidth(); + property public final boolean clippingEnabled; + property public final boolean dismissOnBackPress; + property public final boolean dismissOnClickOutside; + property public final boolean excludeFromSystemGesture; + property public final boolean focusable; + property public final androidx.compose.ui.window.SecureFlagPolicy securePolicy; + property public final boolean usePlatformDefaultWidth; + } + + public enum SecureFlagPolicy { + enum_constant public static final androidx.compose.ui.window.SecureFlagPolicy Inherit; + enum_constant public static final androidx.compose.ui.window.SecureFlagPolicy SecureOff; + enum_constant public static final androidx.compose.ui.window.SecureFlagPolicy SecureOn; + } + +} + diff --git a/compose/ui/ui/api/restricted_current.txt b/compose/ui/ui/api/restricted_current.txt index 9ab5ea20df18f..13916ccdf7631 100644 --- a/compose/ui/ui/api/restricted_current.txt +++ b/compose/ui/ui/api/restricted_current.txt @@ -2009,8 +2009,11 @@ package androidx.compose.ui.input.pointer.util { public final class VelocityTrackerKt { method public static void addPointerInputChange(androidx.compose.ui.input.pointer.util.VelocityTracker, androidx.compose.ui.input.pointer.PointerInputChange event); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static boolean getVelocityTrackerAddPointsFix(); method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static boolean getVelocityTrackerStrategyUseImpulse(); + method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static void setVelocityTrackerAddPointsFix(boolean); method @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static void setVelocityTrackerStrategyUseImpulse(boolean); + property @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static final boolean VelocityTrackerAddPointsFix; property @SuppressCompatibility @androidx.compose.ui.ExperimentalComposeUiApi public static final boolean VelocityTrackerStrategyUseImpulse; } diff --git a/compose/ui/ui/src/androidInstrumentedTest/kotlin/androidx/compose/ui/viewinterop/VelocityTrackingListParityTest.kt b/compose/ui/ui/src/androidInstrumentedTest/kotlin/androidx/compose/ui/viewinterop/VelocityTrackingListParityTest.kt index aa834f132f4f2..b5aa683cc67ed 100644 --- a/compose/ui/ui/src/androidInstrumentedTest/kotlin/androidx/compose/ui/viewinterop/VelocityTrackingListParityTest.kt +++ b/compose/ui/ui/src/androidInstrumentedTest/kotlin/androidx/compose/ui/viewinterop/VelocityTrackingListParityTest.kt @@ -33,9 +33,11 @@ import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyListState import androidx.compose.material.Text import androidx.compose.runtime.Composable +import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier import androidx.compose.ui.background import androidx.compose.ui.graphics.Color +import androidx.compose.ui.input.pointer.util.VelocityTrackerAddPointsFix import androidx.compose.ui.platform.ComposeView import androidx.compose.ui.test.junit4.createAndroidComposeRule import androidx.compose.ui.tests.R @@ -71,10 +73,12 @@ class VelocityTrackingListParityTest { private var latestComposeVelocity = 0f private var latestRVState = -1 + @OptIn(ExperimentalComposeUiApi::class) @Before fun setUp() { layoutManager = null latestComposeVelocity = 0f + VelocityTrackerAddPointsFix = true } @Test diff --git a/compose/ui/ui/src/androidInstrumentedTest/kotlin/androidx/compose/ui/viewinterop/VelocityTrackingParityTest.kt b/compose/ui/ui/src/androidInstrumentedTest/kotlin/androidx/compose/ui/viewinterop/VelocityTrackingParityTest.kt index 0ac851083c558..26ccbea4da5aa 100644 --- a/compose/ui/ui/src/androidInstrumentedTest/kotlin/androidx/compose/ui/viewinterop/VelocityTrackingParityTest.kt +++ b/compose/ui/ui/src/androidInstrumentedTest/kotlin/androidx/compose/ui/viewinterop/VelocityTrackingParityTest.kt @@ -44,6 +44,7 @@ import androidx.compose.ui.input.pointer.PointerInputChange import androidx.compose.ui.input.pointer.changedToUpIgnoreConsumed import androidx.compose.ui.input.pointer.pointerInput import androidx.compose.ui.input.pointer.positionChangedIgnoreConsumed +import androidx.compose.ui.input.pointer.util.VelocityTrackerAddPointsFix import androidx.compose.ui.input.pointer.util.addPointerInputChange import androidx.compose.ui.platform.ComposeView import androidx.compose.ui.platform.LocalViewConfiguration @@ -95,6 +96,7 @@ class VelocityTrackingParityTest { @Before fun setUp() { latestComposeVelocity = Velocity.Zero + VelocityTrackerAddPointsFix = true } fun tearDown() { diff --git a/compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat.android.kt b/compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat.android.kt index d90175a5bc109..c63d0c54f7dee 100644 --- a/compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat.android.kt +++ b/compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat.android.kt @@ -759,6 +759,15 @@ internal class AndroidComposeViewAccessibilityDelegateCompat(val view: AndroidCo ) { // set classname info.className = ClassName + + // Set a classname for text nodes before setting a classname based on a role ensuring that + // the latter if present wins (see b/343392125) + if (semanticsNode.unmergedConfig.contains(SemanticsProperties.EditableText)) { + info.className = TextFieldClassName + } + if (semanticsNode.unmergedConfig.contains(SemanticsProperties.Text)) { + info.className = TextClassName + } val role = semanticsNode.unmergedConfig.getOrNull(SemanticsProperties.Role) role?.let { if (semanticsNode.isFake || semanticsNode.replacedChildren.isEmpty()) { @@ -1357,7 +1366,7 @@ internal class AndroidComposeViewAccessibilityDelegateCompat(val view: AndroidCo } } - if (node.unmergedConfig.contains(SemanticsActions.SetText)) { + if (node.unmergedConfig.contains(SemanticsProperties.EditableText)) { stateDescription = createStateDescriptionForTextField(node) } @@ -2621,7 +2630,7 @@ internal class AndroidComposeViewAccessibilityDelegateCompat(val view: AndroidCo val newNodeIsPassword = newNode.unmergedConfig.contains(SemanticsProperties.Password) val oldNodeIsTextfield = - oldNode.unmergedConfig.contains(SemanticsActions.SetText) + oldNode.unmergedConfig.contains(SemanticsProperties.EditableText) // (b/247891690) We won't send a text change event when we only toggle // the password visibility of the node @@ -3150,7 +3159,7 @@ internal class AndroidComposeViewAccessibilityDelegateCompat(val view: AndroidCo .fastJoinToString(",") } - if (node.unmergedConfig.contains(SemanticsActions.SetText)) { + if (node.unmergedConfig.contains(SemanticsProperties.EditableText)) { return node.unmergedConfig.getTextForTextField()?.text } @@ -3282,16 +3291,21 @@ private val SemanticsNode.isRtl get() = layoutInfo.layoutDirection == LayoutDire private fun SemanticsNode.excludeLineAndPageGranularities(): Boolean { // text field that is not in focus - if (unmergedConfig.contains(SemanticsActions.SetText) && - unmergedConfig.getOrNull(SemanticsProperties.Focused) != true) return true + + if ( + unmergedConfig.contains(SemanticsProperties.EditableText) && + unmergedConfig.getOrNull(SemanticsProperties.Focused) != true + ) + return true // text nodes that are part of the 'merged' text field, for example hint or label. - val ancestor = layoutNode.findClosestParentNode { - // looking for text field merging node - val ancestorSemanticsConfiguration = it.collapsedSemantics - ancestorSemanticsConfiguration?.isMergingSemanticsOfDescendants == true && - ancestorSemanticsConfiguration.contains(SemanticsActions.SetText) - } + val ancestor = + layoutNode.findClosestParentNode { + // looking for text field merging node + val ancestorSemanticsConfiguration = it.collapsedSemantics + ancestorSemanticsConfiguration?.isMergingSemanticsOfDescendants == true && + ancestorSemanticsConfiguration.contains(SemanticsProperties.EditableText) + } return ancestor != null && ancestor.collapsedSemantics?.getOrNull(SemanticsProperties.Focused) != true } diff --git a/compose/ui/ui/src/androidUnitTest/kotlin/androidx/compose/ui/input/pointer/util/VelocityTrackerTest.kt b/compose/ui/ui/src/androidUnitTest/kotlin/androidx/compose/ui/input/pointer/util/VelocityTrackerTest.kt index d0a159abad043..ec6985af07d97 100644 --- a/compose/ui/ui/src/androidUnitTest/kotlin/androidx/compose/ui/input/pointer/util/VelocityTrackerTest.kt +++ b/compose/ui/ui/src/androidUnitTest/kotlin/androidx/compose/ui/input/pointer/util/VelocityTrackerTest.kt @@ -119,6 +119,15 @@ class VelocityTrackerTest { assertThat(tracker.calculateVelocity()).isEqualTo(Velocity.Zero) } + @Test // b/355160589 + fun calculateVelocity_twoPoints_sameTimeStamp_returnsZero() { + val tracker = VelocityTracker() + tracker.addPosition(1000L, Offset(100f, 0f)) + tracker.addPosition(1000L, Offset(200f, 0f)) + tracker.addPosition(1000L, Offset(300f, 0f)) + assertThat(tracker.calculateVelocity()).isEqualTo(Velocity.Zero) + } + @Test fun resetTracking_resetsTracking() { val tracker = VelocityTracker() diff --git a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/draganddrop/DragAndDropManager.kt b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/draganddrop/DragAndDropManager.kt index 0735927c18b72..695920c76d6c1 100644 --- a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/draganddrop/DragAndDropManager.kt +++ b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/draganddrop/DragAndDropManager.kt @@ -16,49 +16,27 @@ package androidx.compose.ui.draganddrop -import androidx.compose.ui.Modifier -import androidx.compose.ui.geometry.Size -import androidx.compose.ui.graphics.drawscope.DrawScope +import androidx.compose.ui.geometry.Offset internal interface DragAndDropManager { /** - * A [Modifier] that can be added to the [Owners][androidx.compose.ui.node.Owner] modifier - * list that contains the modifiers required by drag and drop. - * (Eg, a root drag and drop modifier). + * Returns a boolean value indicating whether requesting drag and drop transfer is supported. If + * it's not, the transfer might be initiated only be system and calling + * [requestDragAndDropTransfer] will throw an error. */ - val modifier: Modifier + val isRequestDragAndDropTransferSupported: Boolean + get() = false /** - * Initiates a drag-and-drop operation for transferring data. - * - * @param transferData the data to be transferred after successful completion of the - * drag and drop gesture. - * - * @param decorationSize the size of the drag decoration to be drawn. - * - * @param drawDragDecoration provides the visual representation of the item dragged during the - * drag and drop gesture. - * - * @return true if the method completes successfully, or false if it fails anywhere. - * Returning false means the system was unable to do a drag because of another - * ongoing operation or some other reasons. + * Requests a drag and drop transfer. It might throw [UnsupportedOperationException] in case if + * the operation is not supported. [isRequestDragAndDropTransferSupported] can be used to check + * if it might be performed. */ - fun drag( - transferData: DragAndDropTransferData, - decorationSize: Size, - drawDragDecoration: DrawScope.() -> Unit, - ): Boolean - - /** - * Called to notify this [DragAndDropManager] that a [DragAndDropModifierNode] is interested - * in receiving events for a particular drag and drop session. - */ - fun registerNodeInterest(node: DragAndDropModifierNode) - - /** - * Called to check if a [DragAndDropModifierNode] has previously registered interest for a - * drag and drop session. - */ - fun isInterestedNode(node: DragAndDropModifierNode): Boolean + fun requestDragAndDropTransfer(node: DragAndDropNode, offset: Offset) { + throw UnsupportedOperationException( + "requestDragAndDropTransfer is not supported in the current environment. " + + "A Drag & Drop transfer will be initiated by the platform itself" + ) + } } diff --git a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/draganddrop/DragAndDropNode.kt b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/draganddrop/DragAndDropNode.kt index fde33cc217c15..33604fd5926dd 100644 --- a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/draganddrop/DragAndDropNode.kt +++ b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/draganddrop/DragAndDropNode.kt @@ -19,10 +19,12 @@ package androidx.compose.ui.draganddrop import androidx.compose.ui.Modifier import androidx.compose.ui.geometry.Offset import androidx.compose.ui.geometry.Size +import androidx.compose.ui.geometry.toRect import androidx.compose.ui.graphics.drawscope.DrawScope import androidx.compose.ui.internal.checkPrecondition import androidx.compose.ui.layout.positionInRoot import androidx.compose.ui.node.DelegatableNode +import androidx.compose.ui.node.ModifierNodeElement import androidx.compose.ui.node.TraversableNode import androidx.compose.ui.node.TraversableNode.Companion.TraverseDescendantsAction import androidx.compose.ui.node.TraversableNode.Companion.TraverseDescendantsAction.CancelTraversal @@ -31,6 +33,8 @@ import androidx.compose.ui.node.TraversableNode.Companion.TraverseDescendantsAct import androidx.compose.ui.node.requireLayoutNode import androidx.compose.ui.node.requireOwner import androidx.compose.ui.node.traverseDescendants +import androidx.compose.ui.platform.InspectorInfo +import androidx.compose.ui.unit.toSize import kotlin.js.JsName /** @@ -77,7 +81,7 @@ interface DragAndDropModifierNode : DelegatableNode, DragAndDropTarget { */ @JsName("funDragAndDropModifierNode") -fun DragAndDropModifierNode(): DragAndDropModifierNode = DragAndDropNode { null } +fun DragAndDropModifierNode(): DragAndDropModifierNode = DragAndDropNode(onStartTransfer = null) /** * Creates a [Modifier.Node] for receiving transfer data from platform drag and drop sessions. All @@ -93,43 +97,86 @@ fun DragAndDropModifierNode(): DragAndDropModifierNode = DragAndDropNode { null fun DragAndDropModifierNode( shouldStartDragAndDrop: (event: DragAndDropEvent) -> Boolean, target: DragAndDropTarget -): DragAndDropModifierNode = DragAndDropNode { startEvent -> - if (shouldStartDragAndDrop(startEvent)) target - else null +): DragAndDropModifierNode = + DragAndDropNode( + onDropTargetValidate = { event -> if (shouldStartDragAndDrop(event)) target else null } + ) + +/** A scope that allows starting a drag and drop session. */ +internal interface DragAndDropStartTransferScope { + /** + * Initiates a drag-and-drop operation for transferring data. + * + * @param transferData the data to be transferred after successful completion of the drag and + * drop gesture. + * @param decorationSize the size of the drag decoration to be drawn. + * @param drawDragDecoration provides the visual representation of the item dragged during the + * drag and drop gesture. + * @return true if the method completes successfully, or false if it fails anywhere. Returning + * false means the system was unable to do a drag because of another ongoing operation or some + * other reasons. + */ + fun startDragAndDropTransfer( + transferData: DragAndDropTransferData, + decorationSize: Size, + drawDragDecoration: DrawScope.() -> Unit, + ): Boolean } /** - * Core implementation of drag and drop. This [Modifier.Node] implements tree traversal for - * drag and drop, as well as hit testing and propagation of events for drag or drop gestures. + * Core implementation of drag and drop. This [Modifier.Node] implements tree traversal for drag and + * drop, as well as hit testing and propagation of events for drag or drop gestures. * * It uses the [DragAndDropEvent] as a representation of a single mutable drag and drop session. * - * The implementation implicitly maintains a sorted tree of nodes where the order of traversal - * is determined by the proximity to the last event. That is, after finding a receiving node, - * the next event will follow the same path the previous event did unless a fork is found and - * another node should receive the event. + * The implementation implicitly maintains a sorted tree of nodes where the order of traversal is + * determined by the proximity to the last event. That is, after finding a receiving node, the next + * event will follow the same path the previous event did unless a fork is found and another node + * should receive the event. + * + * This optimizes traversal for the common case of move events where the event remains within a + * single node, or moves to a sibling of the node. * - * This optimizes traversal for the common case of move events where the event remains within - * a single node, or moves to a sibling of the node. + * This intended to be used directly only by [DragAndDropManager]. + * + * @param onStartTransfer A lambda function that is called when a drag-and-drop transfer is started. + * It takes an [Offset] representing the position of the input pointer. + * @param onDropTargetValidate A lambda function that is used to validate the drop target during + * a drag-and-drop operation. It takes a [DragAndDropEvent] and returns a [DragAndDropTarget] if + * the target is valid, or `null` otherwise. */ internal class DragAndDropNode( - private val onDragAndDropStart: (event: DragAndDropEvent) -> DragAndDropTarget? -) : Modifier.Node(), + private var onStartTransfer: (DragAndDropStartTransferScope.(Offset) -> Unit)? = null, + private val onDropTargetValidate: ((DragAndDropEvent) -> DragAndDropTarget?)? = null, +) : + Modifier.Node(), TraversableNode, - DragAndDropModifierNode { - companion object { + DragAndDropModifierNode, + DragAndDropTarget { + private companion object { private object DragAndDropTraversableKey } override val traverseKey: Any = DragAndDropTraversableKey - /** Child currently receiving drag gestures for dropping into **/ - private var lastChildDragAndDropModifierNode: DragAndDropModifierNode? = null + private val dragAndDropManager: DragAndDropManager + get() = requireOwner().dragAndDropManager + + /** Child currently receiving drag gestures for dropping into */ + private var lastChildDragAndDropModifierNode: DragAndDropNode? = null - /** This as a drop target if eligible for processing **/ + /** This as a drop target if eligible for processing */ private var thisDragAndDropTarget: DragAndDropTarget? = null + /** + * Indicates whether there is a child that is eligible to receive a drop gesture immediately. + * This is true if the last move happened over a child that is interested in receiving a drop. + */ + val hasEligibleDropTarget: Boolean + get() = lastChildDragAndDropModifierNode != null || thisDragAndDropTarget != null + // start Node + override fun onDetach() { // Clean up thisDragAndDropTarget = null @@ -138,6 +185,45 @@ internal class DragAndDropNode( // end Node + /** + * Initiates a drag-and-drop operation for transferring data. + * + * @param offset the offset value representing position of the input pointer. + * @param isTransferStarted a lambda function that returns true if the drag-and-drop transfer + * has started, or false otherwise. + */ + fun DragAndDropStartTransferScope.startDragAndDropTransfer( + offset: Offset, + isTransferStarted: () -> Boolean + ) { + val nodeCoordinates = requireLayoutNode().coordinates + traverseSelfAndDescendants { currentNode -> + // TODO: b/303904810 unattached nodes should not be found from an attached + // root drag and drop node + if (!currentNode.isAttached) { + return@traverseSelfAndDescendants SkipSubtreeAndContinueTraversal + } + + val onStartTransfer = + currentNode.onStartTransfer ?: return@traverseSelfAndDescendants ContinueTraversal + + if (offset != Offset.Unspecified) { + val currentCoordinates = currentNode.requireLayoutNode().coordinates + val localPosition = currentCoordinates.localPositionOf(nodeCoordinates, offset) + if (!currentCoordinates.size.toSize().toRect().contains(localPosition)) { + return@traverseSelfAndDescendants ContinueTraversal + } + } + onStartTransfer.invoke(this, offset) + + if (isTransferStarted()) { + CancelTraversal + } else { + ContinueTraversal + } + } + } + // start DragAndDropModifierNode override fun drag( @@ -145,13 +231,21 @@ internal class DragAndDropNode( decorationSize: Size, drawDragDecoration: DrawScope.() -> Unit, ) { - requireOwner().dragAndDropManager.drag( - transferData = transferData, - decorationSize = decorationSize, - drawDragDecoration = drawDragDecoration - ) + checkPrecondition(onStartTransfer == null) + onStartTransfer = { + startDragAndDropTransfer(transferData, decorationSize, drawDragDecoration) + } + dragAndDropManager.requestDragAndDropTransfer(this, Offset.Unspecified) + onStartTransfer = null } + /** + * The entry point to register interest in a drag and drop session for receiving data. + * + * @return true to indicate interest in the contents of a drag and drop session, false indicates + * no interest. If false is returned, this [Modifier] will not receive any [DragAndDropTarget] + * events. + */ override fun acceptDragAndDropTransfer(startEvent: DragAndDropEvent): Boolean { var handled = false traverseSelfAndDescendants { currentNode -> @@ -167,12 +261,9 @@ internal class DragAndDropNode( } // Start receiving events - currentNode.thisDragAndDropTarget = currentNode.onDragAndDropStart(startEvent) + currentNode.thisDragAndDropTarget = currentNode.onDropTargetValidate?.invoke(startEvent) val accepted = currentNode.thisDragAndDropTarget != null - if (accepted) { - requireOwner().dragAndDropManager.registerNodeInterest(currentNode) - } handled = handled || accepted ContinueTraversal } @@ -183,11 +274,9 @@ internal class DragAndDropNode( // start DropTarget - override fun onStarted(event: DragAndDropEvent) { - when (val self = thisDragAndDropTarget) { - null -> lastChildDragAndDropModifierNode?.onStarted(event = event) - else -> self.onStarted(event = event) - } + override fun onStarted(event: DragAndDropEvent) = traverseSelfAndDescendants { currentNode -> + currentNode.thisDragAndDropTarget?.onStarted(event = event) + ContinueTraversal } override fun onEntered(event: DragAndDropEvent) { @@ -198,17 +287,19 @@ internal class DragAndDropNode( } override fun onMoved(event: DragAndDropEvent) { - val currentChildNode: DragAndDropModifierNode? = lastChildDragAndDropModifierNode - val newChildNode: DragAndDropModifierNode? = when { - // Moved within child. - currentChildNode?.contains(event.positionInRoot) == true -> currentChildNode - // Position is now outside active child, maybe it entered a different one. - else -> firstDescendantOrNull { child -> - // Only dispatch to children who previously accepted the onStart gesture - requireOwner().dragAndDropManager.isInterestedNode(child) && - child.contains(event.positionInRoot) + val currentChildNode: DragAndDropNode? = lastChildDragAndDropModifierNode + val newChildNode: DragAndDropNode? = + when { + // Moved within child. + currentChildNode?.contains(event.positionInRoot) == true -> currentChildNode + // Position is now outside active child, maybe it entered a different one. + else -> + firstDescendantOrNull { child -> + // Only dispatch to children who previously accepted the onStart gesture + child.thisDragAndDropTarget != null && + child.contains(event.positionInRoot) + } } - } when { // Left us and went to a child. @@ -268,6 +359,7 @@ internal class DragAndDropNode( currentNode.lastChildDragAndDropModifierNode = null ContinueTraversal } + // end DropTarget } diff --git a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/input/pointer/util/VelocityTracker.kt b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/input/pointer/util/VelocityTracker.kt index c28cdefc8414c..cbda0f7323cc6 100644 --- a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/input/pointer/util/VelocityTracker.kt +++ b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/input/pointer/util/VelocityTracker.kt @@ -297,7 +297,7 @@ class VelocityTracker1D internal constructor( } val velocity = calculateVelocity() - return if (velocity == 0.0f) { + return if (velocity == 0.0f || velocity.isNaN()) { 0.0f } else if (velocity > 0) { velocity.coerceAtMost(maximumVelocity) @@ -382,7 +382,52 @@ internal expect fun VelocityTracker1D.shouldUseDataPoints( * * @param event Pointer change to track. */ +@OptIn(ExperimentalComposeUiApi::class) fun VelocityTracker.addPointerInputChange(event: PointerInputChange) { + if (VelocityTrackerAddPointsFix) { + addPointerInputChangeWithFix(event) + } else { + addPointerInputChangeLegacy(event) + } +} + +@OptIn(ExperimentalComposeUiApi::class) +private fun VelocityTracker.addPointerInputChangeLegacy(event: PointerInputChange) { + + // Register down event as the starting point for the accumulator + if (event.changedToDownIgnoreConsumed()) { + currentPointerPositionAccumulator = event.position + resetTracking() + } + + // To calculate delta, for each step we want to do currentPosition - previousPosition. + // Initially the previous position is the previous position of the current event + var previousPointerPosition = event.previousPosition + @OptIn(ExperimentalComposeUiApi::class) + event.historical.fastForEach { + // Historical data happens within event.position and event.previousPosition + // That means, event.previousPosition < historical data < event.position + // Initially, the first delta will happen between the previousPosition and + // the first position in historical delta. For subsequent historical data, the + // deltas happen between themselves. That's why we need to update previousPointerPosition + // everytime. + val historicalDelta = it.position - previousPointerPosition + previousPointerPosition = it.position + + // Update the current position with the historical delta and add it to the tracker + currentPointerPositionAccumulator += historicalDelta + addPosition(it.uptimeMillis, currentPointerPositionAccumulator) + } + + // For the last position in the event + // If there's historical data, the delta is event.position - lastHistoricalPoint + // If there's no historical data, the delta is event.position - event.previousPosition + val delta = event.position - previousPointerPosition + currentPointerPositionAccumulator += delta + addPosition(event.uptimeMillis, currentPointerPositionAccumulator) +} + +private fun VelocityTracker.addPointerInputChangeWithFix(event: PointerInputChange) { // If this is ACTION_DOWN: Reset the tracking. if (event.changedToDownIgnoreConsumed()) { resetTracking() @@ -669,6 +714,21 @@ private inline operator fun Matrix.set(row: Int, col: Int, value: Float) { this[row][col] = value } +/** + * A flag to indicate that we'll use the fix of how we add points to the velocity tracker. + * + * This is an experiment flag and will be removed once the experiments with the fix a finished. The + * final goal is that we will use the true path once the flag is removed. If you find any issues + * with the new fix, flip this flag to false to confirm they are newly introduced then file a bug. + * Tracking bug: (b/318621681) + */ +@Suppress("GetterSetterNames", "OPT_IN_MARKER_ON_WRONG_TARGET") +@get:Suppress("GetterSetterNames") +@get:ExperimentalComposeUiApi +@set:ExperimentalComposeUiApi +@ExperimentalComposeUiApi +var VelocityTrackerAddPointsFix: Boolean = true + /** * Selecting flag to enable impulse strategy for the velocity trackers. * This is an experiment flag and will be removed once the experiments with the fix a finished. The diff --git a/compose/ui/ui/src/desktopMain/kotlin/androidx/compose/ui/platform/AwtDragAndDropManager.desktop.kt b/compose/ui/ui/src/desktopMain/kotlin/androidx/compose/ui/platform/AwtDragAndDropManager.desktop.kt index 47c1b3af47a43..cef75472c1423 100644 --- a/compose/ui/ui/src/desktopMain/kotlin/androidx/compose/ui/platform/AwtDragAndDropManager.desktop.kt +++ b/compose/ui/ui/src/desktopMain/kotlin/androidx/compose/ui/platform/AwtDragAndDropManager.desktop.kt @@ -31,7 +31,7 @@ import androidx.compose.ui.graphics.ImageBitmap import androidx.compose.ui.graphics.drawscope.CanvasDrawScope import androidx.compose.ui.graphics.drawscope.DrawScope import androidx.compose.ui.graphics.toAwtImage -import androidx.compose.ui.scene.ComposeScene +import androidx.compose.ui.scene.ComposeSceneDragAndDropTarget import androidx.compose.ui.unit.Density import androidx.compose.ui.unit.IntOffset import androidx.compose.ui.unit.LayoutDirection @@ -47,6 +47,7 @@ import java.awt.dnd.DropTargetDragEvent import java.awt.dnd.DropTargetDropEvent import java.awt.dnd.DropTargetEvent import java.awt.dnd.DropTargetListener +import java.awt.event.InputEvent import java.awt.event.MouseEvent import java.awt.image.BufferedImage import javax.swing.JComponent @@ -81,10 +82,8 @@ internal fun DragAndDropTransferAction.Companion.fromAwtAction( */ internal class AwtDragAndDropManager( private val rootContainer: JComponent, - private val getScene: () -> ComposeScene -) { - private val scene get() = getScene() - + private val dragAndDropTarget: () -> ComposeSceneDragAndDropTarget +) : PlatformDragAndDropManager { private val density: Density get() = rootContainer.density @@ -99,7 +98,33 @@ internal class AwtDragAndDropManager( ) } - fun startDrag( + override val isRequestDragAndDropTransferSupported: Boolean + get() = true + + override fun requestDragAndDropTransfer(source: PlatformDragAndDropSource, offset: Offset) { + var isTransferStarted = false + val startTransferScope = object : PlatformDragAndDropSource.StartTransferScope { + override fun startDragAndDropTransfer( + transferData: DragAndDropTransferData, + decorationSize: Size, + drawDragDecoration: DrawScope.() -> Unit + ): Boolean { + isTransferStarted = startDrag( + transferData = transferData, + decorationSize = decorationSize, + drawDragDecoration = drawDragDecoration + ) + return isTransferStarted + } + } + with(source) { + startTransferScope.startDragAndDropTransfer(offset) { + isTransferStarted + } + } + } + + private fun startDrag( transferData: DragAndDropTransferData, decorationSize: Size, drawDragDecoration: DrawScope.() -> Unit @@ -152,40 +177,61 @@ internal class AwtDragAndDropManager( */ private val dropTargetListener = object : DropTargetListener { override fun dragEnter(dtde: DropTargetDragEvent) { + val event = DragAndDropEvent(dtde) + val dragAndDropTarget = dragAndDropTarget() + // There's no drag-start event in AWT, so start in dragEnter, and stop in dragExit - val accepted = scene.dropTarget.onEntered(DragAndDropEvent(dtde)) - if (!accepted) { + val acceptedTransfer = dragAndDropTarget.acceptDragAndDropTransfer(event) + if (acceptedTransfer) { + dragAndDropTarget.onStarted(event) + dragAndDropTarget.onEntered(event) + } else { dtde.rejectDrag() } } override fun dragExit(dte: DropTargetEvent) { - scene.dropTarget.onExited(DragAndDropEvent(dte)) + val event = DragAndDropEvent(dte) + val dragAndDropTarget = dragAndDropTarget() + dragAndDropTarget.onExited(event) + dragAndDropTarget.onEnded(event) } override fun dragOver(dtde: DropTargetDragEvent) { - scene.dropTarget.onMoved(DragAndDropEvent(dtde)) + val event = DragAndDropEvent(dtde) + val dragAndDropTarget = dragAndDropTarget() + dragAndDropTarget.onMoved(event) + if (dragAndDropTarget.hasEligibleDropTarget) { + dtde.acceptDrag(dtde.dropAction) + } else { + dtde.rejectDrag() + } } override fun dropActionChanged(dtde: DropTargetDragEvent) { - scene.dropTarget.onChanged(DragAndDropEvent(dtde)) + val event = DragAndDropEvent(dtde) + val dragAndDropTarget = dragAndDropTarget() + dragAndDropTarget.onChanged(event) } override fun drop(dtde: DropTargetDropEvent) { - val accepted = scene.dropTarget.onDrop(DragAndDropEvent(dtde)) + val event = DragAndDropEvent(dtde) + val dragAndDropTarget = dragAndDropTarget() + val accepted = dragAndDropTarget.onDrop(event) + dragAndDropTarget.onEnded(event) dtde.acceptDrop(dtde.dropAction) dtde.dropComplete(accepted) } private fun DragAndDropEvent(dragEvent: DropTargetDragEvent) = DragAndDropEvent( - nativeEvent = dragEvent, action = DragAndDropTransferAction.fromAwtAction(dragEvent.dropAction), + nativeEvent = dragEvent, positionInRootImpl = dragEvent.location.toOffset() ) private fun DragAndDropEvent(dropEvent: DropTargetDropEvent) = DragAndDropEvent( - nativeEvent = dropEvent, action = DragAndDropTransferAction.fromAwtAction(dropEvent.dropAction), + nativeEvent = dropEvent, positionInRootImpl = dropEvent.location.toOffset() ) @@ -256,7 +302,7 @@ internal class ComposeTransferHandler(private val rootContainer: JComponent) : T false ), // This seems to be ignored, and the initial action is MOVE regardless - DnDConstants.ACTION_MOVE + MOVE ) } @@ -305,7 +351,7 @@ private interface PlatformAdaptations { /** * Returns the image to represent the dragged object, given its rendering at the size specified - * by the `decorationSize` argument passed to [DragAndDropManager.drag]. + * by the `decorationSize` argument passed to [DragAndDropManager.requestDragAndDropTransfer]. */ fun dragImage(image: BufferedImage, density: Float): Image diff --git a/compose/ui/ui/src/desktopMain/kotlin/androidx/compose/ui/platform/DesktopPlatformInput.desktop.kt b/compose/ui/ui/src/desktopMain/kotlin/androidx/compose/ui/platform/DesktopPlatformInput.desktop.kt index 5711ce5b1c94c..c50e465f54500 100644 --- a/compose/ui/ui/src/desktopMain/kotlin/androidx/compose/ui/platform/DesktopPlatformInput.desktop.kt +++ b/compose/ui/ui/src/desktopMain/kotlin/androidx/compose/ui/platform/DesktopPlatformInput.desktop.kt @@ -43,7 +43,7 @@ internal class DesktopTextInputService(private val component: PlatformComponent) data class CurrentInput( var value: TextFieldValue, val onEditCommand: ((List) -> Unit), - val onImeActionPerformed: ((ImeAction) -> Unit), + val onImeActionPerformed: (ImeAction) -> Unit, val imeAction: ImeAction, var focusedRect: Rect? = null ) @@ -64,7 +64,10 @@ internal class DesktopTextInputService(private val component: PlatformComponent) onImeActionPerformed: (ImeAction) -> Unit ) { val input = CurrentInput( - value, onEditCommand, onImeActionPerformed, imeOptions.imeAction + value = value, + onEditCommand = onEditCommand, + onImeActionPerformed = onImeActionPerformed, + imeAction = imeOptions.imeAction ) currentInput = input @@ -83,14 +86,12 @@ internal class DesktopTextInputService(private val component: PlatformComponent) } override fun updateState(oldValue: TextFieldValue?, newValue: TextFieldValue) { - currentInput?.let { input -> - input.value = newValue - } + currentInput?.value = newValue } // TODO(https://github.com/JetBrains/compose-jb/issues/2040): probably the position of input method // popup isn't correct now - @Deprecated("This method should not be called, used BringIntoViewRequester instead.") + @Deprecated("This method should not be called, use BringIntoViewRequester instead.") override fun notifyFocusedRect(rect: Rect) { currentInput?.let { input -> input.focusedRect = rect diff --git a/compose/ui/ui/src/desktopMain/kotlin/androidx/compose/ui/scene/ComposeSceneMediator.desktop.kt b/compose/ui/ui/src/desktopMain/kotlin/androidx/compose/ui/scene/ComposeSceneMediator.desktop.kt index 844e975e60d84..b60bf4a366636 100644 --- a/compose/ui/ui/src/desktopMain/kotlin/androidx/compose/ui/scene/ComposeSceneMediator.desktop.kt +++ b/compose/ui/ui/src/desktopMain/kotlin/androidx/compose/ui/scene/ComposeSceneMediator.desktop.kt @@ -20,19 +20,18 @@ import androidx.compose.ui.input.key.KeyEvent as ComposeKeyEvent import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalContext import androidx.compose.ui.ComposeFeatureFlags +import androidx.compose.ui.InternalComposeUiApi +import androidx.compose.ui.SessionMutex import androidx.compose.ui.awt.AwtEventListener import androidx.compose.ui.awt.AwtEventListeners import androidx.compose.ui.awt.OnlyValidPrimaryMouseButtonFilter import androidx.compose.ui.awt.isFocusGainedHandledBySwingPanel import androidx.compose.ui.awt.runOnEDTThread -import androidx.compose.ui.draganddrop.DragAndDropTransferData import androidx.compose.ui.focus.FocusDirection import androidx.compose.ui.focus.FocusManager import androidx.compose.ui.geometry.Offset import androidx.compose.ui.geometry.Rect -import androidx.compose.ui.geometry.Size import androidx.compose.ui.graphics.asComposeCanvas -import androidx.compose.ui.graphics.drawscope.DrawScope import androidx.compose.ui.input.key.internal import androidx.compose.ui.input.key.toComposeEvent import androidx.compose.ui.input.pointer.AwtCursor @@ -48,6 +47,9 @@ import androidx.compose.ui.platform.DesktopTextInputService import androidx.compose.ui.platform.EmptyViewConfiguration import androidx.compose.ui.platform.PlatformComponent import androidx.compose.ui.platform.PlatformContext +import androidx.compose.ui.platform.PlatformDragAndDropManager +import androidx.compose.ui.platform.PlatformTextInputMethodRequest +import androidx.compose.ui.platform.PlatformTextInputSessionScope import androidx.compose.ui.platform.PlatformWindowContext import androidx.compose.ui.platform.ViewConfiguration import androidx.compose.ui.platform.WindowInfo @@ -55,7 +57,6 @@ import androidx.compose.ui.platform.a11y.AccessibilityController import androidx.compose.ui.platform.a11y.ComposeSceneAccessible import androidx.compose.ui.scene.skia.SkiaLayerComponent import androidx.compose.ui.semantics.SemanticsOwner -import androidx.compose.ui.text.input.PlatformTextInputService import androidx.compose.ui.unit.Density import androidx.compose.ui.unit.IntSize import androidx.compose.ui.unit.LayoutDirection @@ -90,6 +91,8 @@ import javax.swing.JComponent import javax.swing.SwingUtilities import kotlin.coroutines.CoroutineContext import kotlin.math.roundToInt +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.suspendCancellableCoroutine import org.jetbrains.skia.Canvas import org.jetbrains.skiko.ClipRectangle import org.jetbrains.skiko.ExperimentalSkikoApi @@ -333,7 +336,9 @@ internal class ComposeSceneMediator( */ private var keyboardModifiersRequireUpdate = false - private val dragAndDropManager = AwtDragAndDropManager(container, getScene = { scene }) + private val dragAndDropManager = AwtDragAndDropManager(container) { + scene.dragAndDropTarget + } init { // Transparency is used during redrawer creation that triggered by [addNotify], so @@ -682,7 +687,18 @@ internal class ComposeSceneMediator( override val measureDrawLayerBounds: Boolean = this@ComposeSceneMediator.measureDrawLayerBounds override val viewConfiguration: ViewConfiguration = DesktopViewConfiguration() - override val textInputService: PlatformTextInputService = this@ComposeSceneMediator.textInputService + override val textInputService = this@ComposeSceneMediator.textInputService + + private val textInputSessionMutex = SessionMutex() + + override suspend fun textInputSession( + session: suspend PlatformTextInputSessionScope.() -> Nothing + ): Nothing = textInputSessionMutex.withSessionCancellingPrevious( + sessionInitializer = { + DesktopTextInputSession(coroutineScope = it) + }, + session = session + ) override fun setPointerIcon(pointerIcon: PointerIcon) { contentComponent.cursor = @@ -700,14 +716,8 @@ internal class ComposeSceneMediator( return true } - override fun startDrag( - transferData: DragAndDropTransferData, - decorationSize: Size, - drawDragDecoration: DrawScope.() -> Unit - ) = dragAndDropManager.startDrag( - transferData, decorationSize, drawDragDecoration - ) - + override val dragAndDropManager: PlatformDragAndDropManager + get() = this@ComposeSceneMediator.dragAndDropManager override val rootForTestListener get() = this@ComposeSceneMediator.rootForTestListener override val semanticsOwnerListener @@ -740,6 +750,35 @@ internal class ComposeSceneMediator( get() = contentComponent.density } + @OptIn(InternalComposeUiApi::class) + private inner class DesktopTextInputSession( + coroutineScope: CoroutineScope, + ) : PlatformTextInputSessionScope, CoroutineScope by coroutineScope { + + private val innerSessionMutex = SessionMutex() + + override suspend fun startInputMethod( + request: PlatformTextInputMethodRequest + ): Nothing = innerSessionMutex.withSessionCancellingPrevious( + // This session has no data, just init/dispose tasks. + sessionInitializer = { null } + ) { + (suspendCancellableCoroutine { continuation -> + textInputService.startInput( + value = request.state, + imeOptions = request.imeOptions, + onEditCommand = request.onEditCommand, + onImeActionPerformed = request.onImeAction ?: {} + ) + + continuation.invokeOnCancellation { + textInputService.stopInput() + } + }) + } + } + + private class InvisibleComponent : Component() { fun requestFocusTemporary(): Boolean { return super.requestFocus(true) diff --git a/compose/ui/ui/src/desktopTest/kotlin/androidx/compose/ui/window/window/WindowInputEventTest.kt b/compose/ui/ui/src/desktopTest/kotlin/androidx/compose/ui/window/window/WindowInputEventTest.kt index f9c54ceff5c82..31ee9da63db95 100644 --- a/compose/ui/ui/src/desktopTest/kotlin/androidx/compose/ui/window/window/WindowInputEventTest.kt +++ b/compose/ui/ui/src/desktopTest/kotlin/androidx/compose/ui/window/window/WindowInputEventTest.kt @@ -490,42 +490,6 @@ class WindowInputEventTest { assertThat(deltas.all { it == Offset(0f, 1f) }).isTrue() } - @Test - fun `catch only the first scroll event in one frame`() = runApplicationTest { - lateinit var window: ComposeWindow - - val deltas = mutableListOf() - - launchTestApplication { - Window( - onCloseRequest = ::exitApplication, - state = rememberWindowState(width = 200.dp, height = 100.dp) - ) { - window = this.window - - Box( - Modifier - .fillMaxSize() - .onFirstPointerEvent(PointerEventType.Scroll) { - deltas.add(it.changes.first().scrollDelta) - } - ) - } - } - - awaitIdle() - assertThat(deltas.size).isEqualTo(0) - - val eventCount = 500 - - repeat(eventCount) { - window.sendMouseWheelEvent(100, 50, WHEEL_UNIT_SCROLL, wheelRotation = 1.0) - } - awaitIdle() - assertThat(deltas.size).isEqualTo(1) - assertThat(deltas.first()).isEqualTo(Offset(0f, 1f)) - } - @Test(timeout = 5000) fun `receive buttons and modifiers`() = runApplicationTest { lateinit var window: ComposeWindow diff --git a/compose/ui/ui/src/desktopTest/kotlin/androidx/compose/ui/window/window/WindowTypeTest.kt b/compose/ui/ui/src/desktopTest/kotlin/androidx/compose/ui/window/window/WindowTypeTest.kt index deb50733a4d60..5fe4a8b3867bb 100644 --- a/compose/ui/ui/src/desktopTest/kotlin/androidx/compose/ui/window/window/WindowTypeTest.kt +++ b/compose/ui/ui/src/desktopTest/kotlin/androidx/compose/ui/window/window/WindowTypeTest.kt @@ -16,27 +16,41 @@ package androidx.compose.ui.window.window -import androidx.compose.material.TextField +import androidx.compose.foundation.border +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.text.BasicTextField +import androidx.compose.foundation.text.input.TextFieldState +import androidx.compose.material.Text +import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.awt.ComposeWindow import androidx.compose.ui.focus.FocusRequester import androidx.compose.ui.focus.focusRequester +import androidx.compose.ui.graphics.Color import androidx.compose.ui.sendInputEvent import androidx.compose.ui.sendKeyEvent import androidx.compose.ui.sendKeyTypedEvent import androidx.compose.ui.text.TextRange import androidx.compose.ui.text.input.TextFieldValue +import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Window import androidx.compose.ui.window.WindowTestScope import androidx.compose.ui.window.runApplicationTest import com.google.common.truth.Truth.assertThat import java.awt.event.KeyEvent.KEY_PRESSED import java.awt.event.KeyEvent.KEY_RELEASED -import org.junit.Test +import org.junit.experimental.theories.DataPoint +import org.junit.experimental.theories.Theories +import org.junit.experimental.theories.Theory +import org.junit.runner.RunWith /** * Tests for emulate input to the native window on various systems. @@ -45,154 +59,163 @@ import org.junit.Test * All tests can run on all OSes. * The OS names in test names just represent a unique order of input events on these OSes. */ +@RunWith(Theories::class) class WindowTypeTest { - @Test - fun `q, w, space, backspace 4x (English)`() = runTypeTest { + @Theory + internal fun `q, w, space, backspace 4x (English)`( + textFieldKind: TextFieldKind + ) = runTypeTest(textFieldKind, "English") { // q window.sendKeyEvent(81, 'q', KEY_PRESSED) window.sendKeyTypedEvent('q') window.sendKeyEvent(81, 'q', KEY_RELEASED) - assert(text, "q", selection = TextRange(1), composition = null) + assertStateEquals("q", selection = TextRange(1), composition = null) // w window.sendKeyEvent(87, 'w', KEY_PRESSED) window.sendKeyTypedEvent('w') window.sendKeyEvent(87, 'w', KEY_RELEASED) - assert(text, "qw", selection = TextRange(2), composition = null) + assertStateEquals("qw", selection = TextRange(2), composition = null) // space window.sendKeyEvent(32, ' ', KEY_PRESSED) window.sendKeyTypedEvent(' ') window.sendKeyEvent(32, ' ', KEY_RELEASED) - assert(text, "qw ", selection = TextRange(3), composition = null) + assertStateEquals("qw ", selection = TextRange(3), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "qw", selection = TextRange(2), composition = null) + assertStateEquals("qw", selection = TextRange(2), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "q", selection = TextRange(1), composition = null) + assertStateEquals("q", selection = TextRange(1), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "", selection = TextRange(0), composition = null) + assertStateEquals("", selection = TextRange(0), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "", selection = TextRange(0), composition = null) + assertStateEquals("", selection = TextRange(0), composition = null) } - @Test - fun `q, w, space, backspace 4x (Russian)`() = runTypeTest { + @Theory + internal fun `q, w, space, backspace 4x (Russian)`( + textFieldKind: TextFieldKind + ) = runTypeTest(textFieldKind, "Russian") { // q window.sendKeyEvent(81, 'й', KEY_PRESSED) window.sendKeyTypedEvent('й') window.sendKeyEvent(81, 'й', KEY_RELEASED) - assert(text, "й", selection = TextRange(1), composition = null) + assertStateEquals("й", selection = TextRange(1), composition = null) // w window.sendKeyEvent(87, 'ц', KEY_PRESSED) window.sendKeyTypedEvent('ц') window.sendKeyEvent(87, 'ц', KEY_RELEASED) - assert(text, "йц", selection = TextRange(2), composition = null) + assertStateEquals("йц", selection = TextRange(2), composition = null) // space window.sendKeyEvent(32, ' ', KEY_PRESSED) window.sendKeyTypedEvent(' ') window.sendKeyEvent(32, ' ', KEY_RELEASED) - assert(text, "йц ", selection = TextRange(3), composition = null) + assertStateEquals("йц ", selection = TextRange(3), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "йц", selection = TextRange(2), composition = null) + assertStateEquals("йц", selection = TextRange(2), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "й", selection = TextRange(1), composition = null) + assertStateEquals("й", selection = TextRange(1), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "", selection = TextRange(0), composition = null) + assertStateEquals("", selection = TextRange(0), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "", selection = TextRange(0), composition = null) + assertStateEquals("", selection = TextRange(0), composition = null) } - @Test - fun `f, g, space, backspace 4x (Arabic)`() = runTypeTest { + @Theory + internal fun `f, g, space, backspace 4x (Arabic)`( + textFieldKind: TextFieldKind + ) = runTypeTest(textFieldKind, "Arabic") { // q window.sendKeyEvent(70, 'ب', KEY_PRESSED) window.sendKeyTypedEvent('ب') window.sendKeyEvent(70, 'ب', KEY_RELEASED) - assert(text, "ب", selection = TextRange(1), composition = null) + assertStateEquals("ب", selection = TextRange(1), composition = null) // w window.sendKeyEvent(71, 'ل', KEY_PRESSED) window.sendKeyTypedEvent('ل') window.sendKeyEvent(71, 'ل', KEY_RELEASED) - assert(text, "بل", selection = TextRange(2), composition = null) + assertStateEquals("بل", selection = TextRange(2), composition = null) // space window.sendKeyEvent(32, ' ', KEY_PRESSED) window.sendKeyTypedEvent(' ') window.sendKeyEvent(32, ' ', KEY_RELEASED) - assert(text, "بل ", selection = TextRange(3), composition = null) + assertStateEquals("بل ", selection = TextRange(3), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "بل", selection = TextRange(2), composition = null) + assertStateEquals("بل", selection = TextRange(2), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "ب", selection = TextRange(1), composition = null) + assertStateEquals("ب", selection = TextRange(1), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "", selection = TextRange(0), composition = null) + assertStateEquals("", selection = TextRange(0), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "", selection = TextRange(0), composition = null) + assertStateEquals("", selection = TextRange(0), composition = null) } - @Test - fun `q, w, space, backspace 4x (Korean, Windows)`() = runTypeTest { + @Theory + internal fun `q, w, space, backspace 4x (Korean, Windows)`( + textFieldKind: TextFieldKind + ) = runTypeTest(textFieldKind, "Korean, Windows") { // q window.sendInputEvent("ㅂ", 0) window.sendKeyEvent(81, 'q', KEY_RELEASED) - assert(text, "ㅂ", selection = TextRange(1), composition = TextRange(0, 1)) + assertStateEquals("ㅂ", selection = TextRange(1), composition = TextRange(0, 1)) // w window.sendInputEvent("ㅂ", 1) window.sendInputEvent("ㅈ", 0) window.sendKeyEvent(87, 'w', KEY_RELEASED) - assert(text, "ㅂㅈ", selection = TextRange(2), composition = TextRange(1, 2)) + assertStateEquals("ㅂㅈ", selection = TextRange(2), composition = TextRange(1, 2)) // space window.sendInputEvent(null, 0) @@ -200,76 +223,80 @@ class WindowTypeTest { window.sendKeyEvent(32, ' ', KEY_PRESSED) window.sendKeyTypedEvent(' ') window.sendKeyEvent(32, ' ', KEY_RELEASED) - assert(text, "ㅂㅈ ", selection = TextRange(3), composition = null) + assertStateEquals("ㅂㅈ ", selection = TextRange(3), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "ㅂㅈ", selection = TextRange(2), composition = null) + assertStateEquals("ㅂㅈ", selection = TextRange(2), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "ㅂ", selection = TextRange(1), composition = null) + assertStateEquals("ㅂ", selection = TextRange(1), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "", selection = TextRange(0), composition = null) + assertStateEquals("", selection = TextRange(0), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "", selection = TextRange(0), composition = null) + assertStateEquals("", selection = TextRange(0), composition = null) } - @Test - fun `q, w, backspace 3x (Korean, Windows)`() = runTypeTest { + @Theory + internal fun `q, w, backspace 3x (Korean, Windows)`( + textFieldKind: TextFieldKind + ) = runTypeTest(textFieldKind, "Korean, Windows") { // q window.sendInputEvent("ㅂ", 0) window.sendKeyEvent(81, 'q', KEY_RELEASED) - assert(text, "ㅂ", selection = TextRange(1), composition = TextRange(0, 1)) + assertStateEquals("ㅂ", selection = TextRange(1), composition = TextRange(0, 1)) // w window.sendInputEvent("ㅂ", 1) window.sendInputEvent("ㅈ", 0) window.sendKeyEvent(87, 'w', KEY_RELEASED) - assert(text, "ㅂㅈ", selection = TextRange(2), composition = TextRange(1, 2)) + assertStateEquals("ㅂㅈ", selection = TextRange(2), composition = TextRange(1, 2)) // backspace window.sendInputEvent(null, 0) window.sendInputEvent(null, 0) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "ㅂ", selection = TextRange(1), composition = null) + assertStateEquals("ㅂ", selection = TextRange(1), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "", selection = TextRange(0), composition = null) + assertStateEquals("", selection = TextRange(0), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "", selection = TextRange(0), composition = null) + assertStateEquals("", selection = TextRange(0), composition = null) } - @Test - fun `f, g, space, backspace 3x (Korean, Windows)`() = runTypeTest { + @Theory + internal fun `f, g, space, backspace 3x (Korean, Windows)`( + textFieldKind: TextFieldKind + ) = runTypeTest(textFieldKind, "Korean, Windows") { // f window.sendInputEvent("ㄹ", 0) window.sendKeyEvent(81, 'f', KEY_RELEASED) - assert(text, "ㄹ", selection = TextRange(1), composition = TextRange(0, 1)) + assertStateEquals("ㄹ", selection = TextRange(1), composition = TextRange(0, 1)) // g window.sendInputEvent("ㅀ", 0) window.sendKeyEvent(87, 'g', KEY_RELEASED) - assert(text, "ㅀ", selection = TextRange(1), composition = TextRange(0, 1)) + assertStateEquals("ㅀ", selection = TextRange(1), composition = TextRange(0, 1)) // space window.sendInputEvent(null, 0) @@ -277,115 +304,121 @@ class WindowTypeTest { window.sendKeyEvent(32, ' ', KEY_PRESSED) window.sendKeyTypedEvent(' ') window.sendKeyEvent(32, ' ', KEY_RELEASED) - assert(text, "ㅀ ", selection = TextRange(2), composition = null) + assertStateEquals("ㅀ ", selection = TextRange(2), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "ㅀ", selection = TextRange(1), composition = null) + assertStateEquals("ㅀ", selection = TextRange(1), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "", selection = TextRange(0), composition = null) + assertStateEquals("", selection = TextRange(0), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "", selection = TextRange(0), composition = null) + assertStateEquals("", selection = TextRange(0), composition = null) } - @Test - fun `f, g, backspace 2x (Korean, Windows)`() = runTypeTest { + @Theory + internal fun `f, g, backspace 2x (Korean, Windows)`( + textFieldKind: TextFieldKind + ) = runTypeTest(textFieldKind, "Korean, Windows") { // f window.sendInputEvent("ㄹ", 0) window.sendKeyEvent(81, 'f', KEY_RELEASED) - assert(text, "ㄹ", selection = TextRange(1), composition = TextRange(0, 1)) + assertStateEquals("ㄹ", selection = TextRange(1), composition = TextRange(0, 1)) // g window.sendInputEvent("ㅀ", 0) window.sendKeyEvent(87, 'g', KEY_RELEASED) - assert(text, "ㅀ", selection = TextRange(1), composition = TextRange(0, 1)) + assertStateEquals("ㅀ", selection = TextRange(1), composition = TextRange(0, 1)) // backspace window.sendInputEvent("ㄹ", 0) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "ㄹ", selection = TextRange(1), composition = TextRange(0, 1)) + assertStateEquals("ㄹ", selection = TextRange(1), composition = TextRange(0, 1)) // backspace window.sendInputEvent(null, 0) window.sendInputEvent(null, 0) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "", selection = TextRange(0), composition = null) + assertStateEquals("", selection = TextRange(0), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "", selection = TextRange(0), composition = null) + assertStateEquals("", selection = TextRange(0), composition = null) } - @Test - fun `q, w, space, backspace 4x (Korean, macOS)`() = runTypeTest { + @Theory + internal fun `q, w, space, backspace 4x (Korean, macOS)`( + textFieldKind: TextFieldKind + ) = runTypeTest(textFieldKind, "Korean, macOS") { // q window.sendInputEvent("ㅂ", 0) window.sendKeyEvent(81, 'ㅂ', KEY_RELEASED) - assert(text, "ㅂ", selection = TextRange(1), composition = TextRange(0, 1)) + assertStateEquals("ㅂ", selection = TextRange(1), composition = TextRange(0, 1)) // w window.sendInputEvent("ㅂ", 0) window.sendInputEvent("ㅂ", 1) window.sendInputEvent("ㅈ", 0) window.sendKeyEvent(87, 'ㅈ', KEY_RELEASED) - assert(text, "ㅂㅈ", selection = TextRange(2), composition = TextRange(1, 2)) + assertStateEquals("ㅂㅈ", selection = TextRange(2), composition = TextRange(1, 2)) // space window.sendInputEvent("ㅈ ", 0) window.sendInputEvent("ㅈ ", 2) window.sendKeyEvent(32, ' ', KEY_RELEASED) - assert(text, "ㅂㅈ ", selection = TextRange(3), composition = null) + assertStateEquals("ㅂㅈ ", selection = TextRange(3), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "ㅂㅈ", selection = TextRange(2), composition = null) + assertStateEquals("ㅂㅈ", selection = TextRange(2), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "ㅂ", selection = TextRange(1), composition = null) + assertStateEquals("ㅂ", selection = TextRange(1), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "", selection = TextRange(0), composition = null) + assertStateEquals("", selection = TextRange(0), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "", selection = TextRange(0), composition = null) + assertStateEquals("", selection = TextRange(0), composition = null) } - @Test - fun `q, w, backspace 3x (Korean, macOS)`() = runTypeTest { + @Theory + internal fun `q, w, backspace 3x (Korean, macOS)`( + textFieldKind: TextFieldKind + ) = runTypeTest(textFieldKind, "Korean, macOS") { // q window.sendInputEvent("ㅂ", 0) window.sendKeyEvent(81, 'ㅂ', KEY_RELEASED) - assert(text, "ㅂ", selection = TextRange(1), composition = TextRange(0, 1)) + assertStateEquals("ㅂ", selection = TextRange(1), composition = TextRange(0, 1)) // w window.sendInputEvent("ㅂ", 0) window.sendInputEvent("ㅂ", 1) window.sendInputEvent("ㅈ", 0) window.sendKeyEvent(87, 'ㅈ', KEY_RELEASED) - assert(text, "ㅂㅈ", selection = TextRange(2), composition = TextRange(1, 2)) + assertStateEquals("ㅂㅈ", selection = TextRange(2), composition = TextRange(1, 2)) // backspace window.sendInputEvent("ㅈ", 0) @@ -393,75 +426,79 @@ class WindowTypeTest { window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "ㅂ", selection = TextRange(1), composition = null) + assertStateEquals("ㅂ", selection = TextRange(1), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "", selection = TextRange(0), composition = null) + assertStateEquals("", selection = TextRange(0), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "", selection = TextRange(0), composition = null) + assertStateEquals("", selection = TextRange(0), composition = null) } - // f, g on macOs prints 2 separate symbols (comparing to Windows), so we test t + y - @Test - fun `t, y, space, backspace 3x (Korean, MacOS)`() = runTypeTest { + // f, g on macOS prints 2 separate symbols (comparing to Windows), so we test t + y + @Theory + internal fun `t, y, space, backspace 3x (Korean, macOS)`( + textFieldKind: TextFieldKind + ) = runTypeTest(textFieldKind, "Korean, macOS") { // t window.sendInputEvent("ㅅ", 0) window.sendKeyEvent(84, 'ㅅ', KEY_RELEASED) - assert(text, "ㅅ", selection = TextRange(1), composition = TextRange(0, 1)) + assertStateEquals("ㅅ", selection = TextRange(1), composition = TextRange(0, 1)) // y window.sendInputEvent("쇼", 0) window.sendKeyEvent(89, 'ㅛ', KEY_RELEASED) - assert(text, "쇼", selection = TextRange(1), composition = TextRange(0, 1)) + assertStateEquals("쇼", selection = TextRange(1), composition = TextRange(0, 1)) // space window.sendInputEvent("쇼 ", 0) window.sendInputEvent("쇼 ", 2) window.sendKeyEvent(32, ' ', KEY_RELEASED) - assert(text, "쇼 ", selection = TextRange(2), composition = null) + assertStateEquals("쇼 ", selection = TextRange(2), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "쇼", selection = TextRange(1), composition = null) + assertStateEquals("쇼", selection = TextRange(1), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "", selection = TextRange(0), composition = null) + assertStateEquals("", selection = TextRange(0), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "", selection = TextRange(0), composition = null) + assertStateEquals("", selection = TextRange(0), composition = null) } - @Test - fun `t, y, backspace 2x (Korean, MacOS)`() = runTypeTest { + @Theory + internal fun `t, y, backspace 2x (Korean, macOS)`( + textFieldKind: TextFieldKind + ) = runTypeTest(textFieldKind, "Korean, macOS") { // t window.sendInputEvent("ㅅ", 0) window.sendKeyEvent(84, 'ㅅ', KEY_RELEASED) - assert(text, "ㅅ", selection = TextRange(1), composition = TextRange(0, 1)) + assertStateEquals("ㅅ", selection = TextRange(1), composition = TextRange(0, 1)) // y window.sendInputEvent("쇼", 0) window.sendKeyEvent(89, 'ㅛ', KEY_RELEASED) - assert(text, "쇼", selection = TextRange(1), composition = TextRange(0, 1)) + assertStateEquals("쇼", selection = TextRange(1), composition = TextRange(0, 1)) // backspace window.sendInputEvent("ㅅ", 0) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "ㅅ", selection = TextRange(1), composition = TextRange(0, 1)) + assertStateEquals("ㅅ", selection = TextRange(1), composition = TextRange(0, 1)) // backspace window.sendInputEvent("ㅅ", 0) @@ -469,28 +506,30 @@ class WindowTypeTest { window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "", selection = TextRange(0), composition = null) + assertStateEquals("", selection = TextRange(0), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "", selection = TextRange(0), composition = null) + assertStateEquals("", selection = TextRange(0), composition = null) } - @Test - fun `q, w, space, backspace 4x (Korean, Linux)`() = runTypeTest { + @Theory + internal fun `q, w, space, backspace 4x (Korean, Linux)`( + textFieldKind: TextFieldKind + ) = runTypeTest(textFieldKind, "Korean, Linux") { // q window.sendInputEvent("ㅂ", 0) window.sendKeyEvent(0, 'ㅂ', KEY_RELEASED) - assert(text, "ㅂ", selection = TextRange(1), composition = TextRange(0, 1)) + assertStateEquals("ㅂ", selection = TextRange(1), composition = TextRange(0, 1)) // w window.sendInputEvent(null, 0) window.sendInputEvent("ㅂ", 1) window.sendInputEvent("ㅈ", 0) window.sendKeyEvent(0, 'ㅈ', KEY_RELEASED) - assert(text, "ㅂㅈ", selection = TextRange(2), composition = TextRange(1, 2)) + assertStateEquals("ㅂㅈ", selection = TextRange(2), composition = TextRange(1, 2)) // space window.sendInputEvent(null, 0) @@ -498,201 +537,308 @@ class WindowTypeTest { window.sendKeyEvent(32, ' ', KEY_PRESSED) window.sendKeyTypedEvent(' ') window.sendKeyEvent(32, ' ', KEY_RELEASED) - assert(text, "ㅂㅈ ", selection = TextRange(3), composition = null) + assertStateEquals("ㅂㅈ ", selection = TextRange(3), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "ㅂㅈ", selection = TextRange(2), composition = null) + assertStateEquals("ㅂㅈ", selection = TextRange(2), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "ㅂ", selection = TextRange(1), composition = null) + assertStateEquals("ㅂ", selection = TextRange(1), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "", selection = TextRange(0), composition = null) + assertStateEquals("", selection = TextRange(0), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "", selection = TextRange(0), composition = null) + assertStateEquals("", selection = TextRange(0), composition = null) } - @Test - fun `q, w, space, backspace 3x (Chinese, Windows)`() = runTypeTest { + @Theory + internal fun `q, w, space, backspace 3x (Chinese, Windows)`( + textFieldKind: TextFieldKind + ) = runTypeTest(textFieldKind, "Chinese, Windows") { // q window.sendInputEvent("q", 0) window.sendKeyEvent(81, 'q', KEY_RELEASED) - assert(text, "q", selection = TextRange(1), composition = TextRange(0, 1)) + assertStateEquals("q", selection = TextRange(1), composition = TextRange(0, 1)) // w window.sendInputEvent("q'w", 0) window.sendKeyEvent(87, 'w', KEY_RELEASED) - assert(text, "q'w", selection = TextRange(3), composition = TextRange(0, 3)) + assertStateEquals("q'w", selection = TextRange(3), composition = TextRange(0, 3)) // space window.sendInputEvent("請問", 2) window.sendInputEvent(null, 0) window.sendKeyEvent(32, ' ', KEY_RELEASED) - assert(text, "請問", selection = TextRange(2), composition = null) + assertStateEquals("請問", selection = TextRange(2), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "請", selection = TextRange(1), composition = null) + assertStateEquals("請", selection = TextRange(1), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "", selection = TextRange(0), composition = null) + assertStateEquals("", selection = TextRange(0), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "", selection = TextRange(0), composition = null) + assertStateEquals("", selection = TextRange(0), composition = null) } - @Test - fun `q, w, backspace 3x (Chinese, Windows)`() = runTypeTest { + @Theory + internal fun `q, w, backspace 3x (Chinese, Windows)`( + textFieldKind: TextFieldKind + ) = runTypeTest(textFieldKind, "Chinese, Windows") { // q window.sendInputEvent("q", 0) window.sendKeyEvent(81, 'q', KEY_RELEASED) - assert(text, "q", selection = TextRange(1), composition = TextRange(0, 1)) + assertStateEquals("q", selection = TextRange(1), composition = TextRange(0, 1)) // w window.sendInputEvent("q'w", 0) window.sendKeyEvent(87, 'w', KEY_RELEASED) - assert(text, "q'w", selection = TextRange(3), composition = TextRange(0, 3)) + assertStateEquals("q'w", selection = TextRange(3), composition = TextRange(0, 3)) // backspace window.sendInputEvent("q", 0) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "q", selection = TextRange(1), composition = TextRange(0, 1)) + assertStateEquals("q", selection = TextRange(1), composition = TextRange(0, 1)) // backspace window.sendInputEvent(null, 0) window.sendInputEvent(null, 0) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "", selection = TextRange(0), composition = null) + assertStateEquals("", selection = TextRange(0), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "", selection = TextRange(0), composition = null) + assertStateEquals("", selection = TextRange(0), composition = null) } - @Test - fun `q, w, space, backspace 3x (Chinese, macOS)`() = runTypeTest { + @Theory + internal fun `q, w, space, backspace 3x (Chinese, macOS)`( + textFieldKind: TextFieldKind + ) = runTypeTest(textFieldKind, "Chinese, macOS") { // q window.sendInputEvent("q", 0) window.sendKeyEvent(81, 'q', KEY_RELEASED) - assert(text, "q", selection = TextRange(1), composition = TextRange(0, 1)) + assertStateEquals("q", selection = TextRange(1), composition = TextRange(0, 1)) // w window.sendInputEvent("q w", 0) window.sendKeyEvent(87, 'w', KEY_RELEASED) - assert(text, "q w", selection = TextRange(3), composition = TextRange(0, 3)) + assertStateEquals("q w", selection = TextRange(3), composition = TextRange(0, 3)) // space window.sendInputEvent("请问", 2) window.sendKeyEvent(32, ' ', KEY_RELEASED) - assert(text, "请问", selection = TextRange(2), composition = null) + assertStateEquals("请问", selection = TextRange(2), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "请", selection = TextRange(1), composition = null) + assertStateEquals("请", selection = TextRange(1), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "", selection = TextRange(0), composition = null) + assertStateEquals("", selection = TextRange(0), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "", selection = TextRange(0), composition = null) + assertStateEquals("", selection = TextRange(0), composition = null) } - @Test - fun `q, w, backspace 3x (Chinese, macOS)`() = runTypeTest { + @Theory + internal fun `q, w, backspace 3x (Chinese, macOS)`( + textFieldKind: TextFieldKind + ) = runTypeTest(textFieldKind, "Chinese, macOS") { // q window.sendInputEvent("q", 0) window.sendKeyEvent(81, 'q', KEY_RELEASED) - assert(text, "q", selection = TextRange(1), composition = TextRange(0, 1)) + assertStateEquals("q", selection = TextRange(1), composition = TextRange(0, 1)) // w window.sendInputEvent("q w", 0) window.sendKeyEvent(87, 'w', KEY_RELEASED) - assert(text, "q w", selection = TextRange(3), composition = TextRange(0, 3)) + assertStateEquals("q w", selection = TextRange(3), composition = TextRange(0, 3)) // backspace window.sendInputEvent("q", 0) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "q", selection = TextRange(1), composition = TextRange(0, 1)) + assertStateEquals("q", selection = TextRange(1), composition = TextRange(0, 1)) // backspace window.sendInputEvent("", 0) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "", selection = TextRange(0), composition = null) + assertStateEquals("", selection = TextRange(0), composition = null) // backspace window.sendKeyEvent(8, Char(8), KEY_PRESSED) window.sendKeyTypedEvent(Char(8)) window.sendKeyEvent(8, Char(8), KEY_RELEASED) - assert(text, "", selection = TextRange(0), composition = null) + assertStateEquals("", selection = TextRange(0), composition = null) } - private class TypeTestScope(val windowTestScope: WindowTestScope) { - lateinit var window: ComposeWindow - var text by mutableStateOf(TextFieldValue()) + internal interface TypeTestScope { + val windowTestScope: WindowTestScope + val window: ComposeWindow + val text: String + + @Composable + fun TextField() + + suspend fun assertStateEquals(actual: String, selection: TextRange, composition: TextRange?) + } - private fun runTypeTest(body: suspend TypeTestScope.() -> Unit) = runApplicationTest( + private fun runTypeTest( + textFieldKind: TextFieldKind = TextField1, + name: String, + body: suspend TypeTestScope.() -> Unit + ) = runApplicationTest( hasAnimations = true, animationsDelayMillis = 100 ) { - val scope = TypeTestScope(this) + var scope: TypeTestScope? = null launchTestApplication { Window(onCloseRequest = ::exitApplication) { - scope.window = this.window - val focusRequester = FocusRequester() - TextField( - value = scope.text, - onValueChange = { scope.text = it }, - modifier = Modifier.focusRequester(focusRequester) - ) - - LaunchedEffect(focusRequester) { - focusRequester.requestFocus() + Box( + contentAlignment = Alignment.Center, + modifier = Modifier.fillMaxSize() + ) { + if (scope == null) { + scope = textFieldKind.createScope(this@runApplicationTest, window) + } + Column(horizontalAlignment = Alignment.CenterHorizontally) { + Text("$name ($scope)") + Box(Modifier.border(1.dp, Color.Black).padding(8.dp)) { + scope!!.TextField() + } + } } } } awaitIdle() - scope.body() + scope!!.body() } - private suspend fun TypeTestScope.assert( - actual: TextFieldValue, text: String, selection: TextRange, composition: TextRange? - ) { - windowTestScope.awaitIdle() - assertThat(actual.text).isEqualTo(text) - assertThat(actual.selection).isEqualTo(selection) - assertThat(actual.composition).isEqualTo(composition) + internal fun interface TextFieldKind { + fun createScope(windowTestScope: WindowTestScope, window: ComposeWindow): TypeTestScope + } + + companion object { + @JvmField + @DataPoint + internal val TextField1: TextFieldKind = TextFieldKind { windowTestScope, window -> + object : TypeTestScope { + override val windowTestScope: WindowTestScope + get() = windowTestScope + + override val window: ComposeWindow + get() = window + + private var textFieldValue by mutableStateOf(TextFieldValue()) + + override val text: String + get() = textFieldValue.text + + @Composable + override fun TextField() { + val focusRequester = FocusRequester() + BasicTextField( + value = textFieldValue, + onValueChange = { textFieldValue = it }, + modifier = Modifier.focusRequester(focusRequester) + ) + + LaunchedEffect(focusRequester) { + focusRequester.requestFocus() + } + } + + override suspend fun assertStateEquals( + actual: String, + selection: TextRange, + composition: TextRange? + ) { + windowTestScope.awaitIdle() + assertThat(textFieldValue.text).isEqualTo(actual) + assertThat(textFieldValue.selection).isEqualTo(selection) + assertThat(textFieldValue.composition).isEqualTo(composition) + } + + override fun toString() = "TextField1" + } + } + + @JvmField + @DataPoint + internal val TextField2: TextFieldKind = TextFieldKind { windowTestScope, window -> + object : TypeTestScope { + override val windowTestScope: WindowTestScope + get() = windowTestScope + + override val window: ComposeWindow + get() = window + + private val textFieldState = TextFieldState() + + override val text: String + get() = textFieldState.text.toString() + + @Composable + override fun TextField() { + val focusRequester = FocusRequester() + BasicTextField( + state = textFieldState, + modifier = Modifier.focusRequester(focusRequester) + ) + + LaunchedEffect(focusRequester) { + focusRequester.requestFocus() + } + } + + override suspend fun assertStateEquals( + actual: String, + selection: TextRange, + composition: TextRange? + ) { + windowTestScope.awaitIdle() + assertThat(textFieldState.text.toString()).isEqualTo(actual) + assertThat(textFieldState.selection).isEqualTo(selection) + assertThat(textFieldState.composition).isEqualTo(composition) + + } + + override fun toString() = "TextField2" + } + } } } diff --git a/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/node/DragAndDropOwner.skiko.kt b/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/node/DragAndDropOwner.skiko.kt new file mode 100644 index 0000000000000..bde1416f9a347 --- /dev/null +++ b/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/node/DragAndDropOwner.skiko.kt @@ -0,0 +1,87 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.compose.ui.node + +import androidx.compose.ui.Modifier +import androidx.compose.ui.draganddrop.DragAndDropEvent +import androidx.compose.ui.draganddrop.DragAndDropManager +import androidx.compose.ui.draganddrop.DragAndDropNode +import androidx.compose.ui.draganddrop.DragAndDropStartTransferScope +import androidx.compose.ui.draganddrop.DragAndDropTransferData +import androidx.compose.ui.geometry.Offset +import androidx.compose.ui.geometry.Size +import androidx.compose.ui.graphics.drawscope.DrawScope +import androidx.compose.ui.platform.InspectorInfo +import androidx.compose.ui.platform.PlatformDragAndDropManager +import androidx.compose.ui.platform.PlatformDragAndDropSource +import androidx.compose.ui.platform.PlatformDragAndDropTarget + +/** + * The actual [DragAndDropManager] implementation tied to a specific + * [androidx.compose.ui.node.RootNodeOwner]. + */ +internal class DragAndDropOwner( + private val platformDragAndDropManager: PlatformDragAndDropManager +) : DragAndDropManager { + val rootDragAndDropNode = DragAndDropNode() + val modifier: Modifier = RootDragAndDropElement(rootDragAndDropNode) + + override val isRequestDragAndDropTransferSupported: Boolean + get() = platformDragAndDropManager.isRequestDragAndDropTransferSupported + + override fun requestDragAndDropTransfer(node: DragAndDropNode, offset: Offset) { + platformDragAndDropManager.requestDragAndDropTransfer(node.asPlatformDragAndDropSource(), offset) + } +} + +private fun DragAndDropNode.asPlatformDragAndDropSource(): PlatformDragAndDropSource = + object : PlatformDragAndDropSource { + override fun PlatformDragAndDropSource.StartTransferScope.startDragAndDropTransfer( + offset: Offset, + isTransferStarted: () -> Boolean + ) { + asDragAndDropStartTransferScope().startDragAndDropTransfer(offset, isTransferStarted) + } + } + +private fun PlatformDragAndDropSource.StartTransferScope.asDragAndDropStartTransferScope(): DragAndDropStartTransferScope = + object : DragAndDropStartTransferScope { + override fun startDragAndDropTransfer( + transferData: DragAndDropTransferData, + decorationSize: Size, + drawDragDecoration: DrawScope.() -> Unit + ): Boolean = + this@asDragAndDropStartTransferScope.startDragAndDropTransfer( + transferData = transferData, + decorationSize = decorationSize, + drawDragDecoration = drawDragDecoration + ) + } + +private class RootDragAndDropElement( + private val dragAndDropNode: DragAndDropNode +) : ModifierNodeElement() { + override fun create() = dragAndDropNode + override fun update(node: DragAndDropNode) = Unit + + override fun InspectorInfo.inspectableProperties() { + name = "RootDragAndDropNode" + } + + override fun equals(other: Any?) = other === this + override fun hashCode(): Int = dragAndDropNode.hashCode() +} diff --git a/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/node/RootNodeOwner.skiko.kt b/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/node/RootNodeOwner.skiko.kt index 8b11dcdaca182..cb8ba2c335b54 100644 --- a/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/node/RootNodeOwner.skiko.kt +++ b/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/node/RootNodeOwner.skiko.kt @@ -73,7 +73,6 @@ import androidx.compose.ui.platform.RenderNodeLayer import androidx.compose.ui.scene.ComposeScene import androidx.compose.ui.scene.ComposeSceneInputHandler import androidx.compose.ui.scene.ComposeScenePointer -import androidx.compose.ui.scene.OwnerDragAndDropManager import androidx.compose.ui.semantics.EmptySemanticsElement import androidx.compose.ui.semantics.EmptySemanticsModifier import androidx.compose.ui.semantics.SemanticsOwner @@ -110,7 +109,7 @@ internal class RootNodeOwner( density: Density, layoutDirection: LayoutDirection, size: IntSize?, - private val coroutineContext: CoroutineContext, + coroutineContext: CoroutineContext, val platformContext: PlatformContext, private val snapshotInvalidationTracker: SnapshotInvalidationTracker, private val inputHandler: ComposeSceneInputHandler, @@ -132,8 +131,7 @@ internal class RootNodeOwner( animateRootNodeOffsetChanges = true }, ) - - val dragAndDropManager = OwnerDragAndDropManager(platformContext) + val dragAndDropOwner = DragAndDropOwner(platformContext.dragAndDropManager) private val rootSemanticsNode = EmptySemanticsModifier() @@ -150,7 +148,7 @@ internal class RootNodeOwner( } } .then(focusOwner.modifier) - .then(dragAndDropManager.modifier) + .then(dragAndDropOwner.modifier) .semantics { // This makes the reported role of the root node "PANEL", which is ignored by VoiceOver // (which is what we want). @@ -401,18 +399,15 @@ internal class RootNodeOwner( override val autofillTree = AutofillTree() override val autofill: Autofill? get() = null override val density get() = this@RootNodeOwner.density - override val textInputService = TextInputService(platformContext.textInputService) + override val textInputService = + TextInputService(platformContext.textInputService) override val softwareKeyboardController = DelegatingSoftwareKeyboardController(textInputService) - // TODO https://youtrack.jetbrains.com/issue/COMPOSE-733/Merge-1.6.-Apply-changes-for-the-new-text-input override suspend fun textInputSession( session: suspend PlatformTextInputSessionScope.() -> Nothing - ): Nothing { - awaitCancellation() - } - - override val dragAndDropManager = this@RootNodeOwner.dragAndDropManager + ) = platformContext.textInputSession(session) + override val dragAndDropManager = this@RootNodeOwner.dragAndDropOwner override val pointerIconService = PointerIconServiceImpl() override val focusOwner get() = this@RootNodeOwner.focusOwner override val windowInfo get() = platformContext.windowInfo @@ -664,6 +659,7 @@ internal class RootNodeOwner( private inner class PlatformRootForTestImpl : PlatformRootForTest { override val density get() = this@RootNodeOwner.density + @Suppress("OVERRIDE_DEPRECATION") override val textInputService get() = owner.textInputService override val semanticsOwner get() = this@RootNodeOwner.semanticsOwner override val visibleBounds: Rect diff --git a/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/platform/PlatformContext.skiko.kt b/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/platform/PlatformContext.skiko.kt index 0305a6d288768..08cc483526e59 100644 --- a/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/platform/PlatformContext.skiko.kt +++ b/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/platform/PlatformContext.skiko.kt @@ -20,12 +20,17 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.InternalComposeUiApi +import androidx.compose.ui.Modifier +import androidx.compose.ui.draganddrop.DragAndDropManager +import androidx.compose.ui.draganddrop.DragAndDropModifierNode +import androidx.compose.ui.draganddrop.DragAndDropTarget import androidx.compose.ui.draganddrop.DragAndDropTransferData import androidx.compose.ui.focus.FocusDirection import androidx.compose.ui.focus.FocusManager import androidx.compose.ui.geometry.Offset import androidx.compose.ui.geometry.Rect import androidx.compose.ui.geometry.Size +import androidx.compose.ui.graphics.Matrix import androidx.compose.ui.graphics.drawscope.DrawScope import androidx.compose.ui.input.InputMode import androidx.compose.ui.input.InputModeManager @@ -38,12 +43,17 @@ import androidx.compose.ui.scene.ComposeScene import androidx.compose.ui.scene.CanvasLayersComposeScene import androidx.compose.ui.semantics.SemanticsNode import androidx.compose.ui.semantics.SemanticsOwner +import androidx.compose.ui.text.TextLayoutResult import androidx.compose.ui.text.input.EditCommand import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.text.input.ImeOptions +import androidx.compose.ui.text.input.OffsetMapping import androidx.compose.ui.text.input.PlatformTextInputService import androidx.compose.ui.text.input.TextFieldValue +import androidx.compose.ui.text.input.TextInputService +import androidx.compose.ui.text.input.TextInputSession import kotlin.reflect.KProperty +import kotlinx.coroutines.awaitCancellation /** * Platform context that provides platform-specific bindings. @@ -107,20 +117,20 @@ interface PlatformContext { val viewConfiguration: ViewConfiguration get() = EmptyViewConfiguration val inputModeManager: InputModeManager val textInputService: PlatformTextInputService get() = EmptyPlatformTextInputService + + suspend fun textInputSession( + session: suspend PlatformTextInputSessionScope.() -> Nothing + ): Nothing { + awaitCancellation() + } + val textToolbar: TextToolbar get() = EmptyTextToolbar fun setPointerIcon(pointerIcon: PointerIcon) = Unit val parentFocusManager: FocusManager get() = EmptyFocusManager fun requestFocus(): Boolean = true - /** - * Starts a drag-and-drop session with the Compose app as the source of the transfer. - */ - fun startDrag( - transferData: DragAndDropTransferData, - decorationSize: Size, - drawDragDecoration: DrawScope.() -> Unit - ): Boolean = false + val dragAndDropManager: PlatformDragAndDropManager get() = EmptyDragAndDropManager /** * The listener to track [RootForTest]s. @@ -240,6 +250,8 @@ private object EmptyFocusManager : FocusManager { override fun moveFocus(focusDirection: FocusDirection) = false } +private object EmptyDragAndDropManager : PlatformDragAndDropManager + /** * Helper delegate to re-send missing events to a new listener. */ @@ -273,3 +285,4 @@ internal class DelegateRootForTestListener : PlatformContext.RootForTestListener } } } + diff --git a/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/platform/PlatformDragAndDropManager.skiko.kt b/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/platform/PlatformDragAndDropManager.skiko.kt new file mode 100644 index 0000000000000..4d3e00f0cf666 --- /dev/null +++ b/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/platform/PlatformDragAndDropManager.skiko.kt @@ -0,0 +1,113 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.compose.ui.platform + +import androidx.compose.ui.InternalComposeUiApi +import androidx.compose.ui.Modifier +import androidx.compose.ui.draganddrop.DragAndDropEvent +import androidx.compose.ui.draganddrop.DragAndDropModifierNode +import androidx.compose.ui.draganddrop.DragAndDropTarget +import androidx.compose.ui.draganddrop.DragAndDropTransferData +import androidx.compose.ui.geometry.Offset +import androidx.compose.ui.geometry.Size +import androidx.compose.ui.graphics.drawscope.DrawScope + +/** A platform implementation for drag and drop functionality. */ +// TODO: Combine with [DragAndDropManager] +@InternalComposeUiApi +interface PlatformDragAndDropManager { + + /** + * Returns a boolean value indicating whether requesting drag and drop transfer is supported. If + * it's not, the transfer might be initiated only be system and calling + * [requestDragAndDropTransfer] will throw an error. + */ + val isRequestDragAndDropTransferSupported: Boolean + get() = false + + /** + * Requests a drag and drop transfer. It might throw [UnsupportedOperationException] in case if + * the operation is not supported. [isRequestDragAndDropTransferSupported] can be used to check + * if it might be performed. + */ + fun requestDragAndDropTransfer(source: PlatformDragAndDropSource, offset: Offset) { + throw UnsupportedOperationException( + "requestDragAndDropTransfer is not supported in the current environment. " + + "A Drag & Drop transfer will be initiated by the platform itself" + ) + } +} + +// TODO: Combine with [DragAndDropStartTransferScope] +@InternalComposeUiApi +interface PlatformDragAndDropSource { + /** + * Initiates a drag-and-drop operation for transferring data. + * + * @param offset the offset value representing position of the input pointer. + * @param isTransferStarted a lambda function that returns true if the drag-and-drop transfer + * has started, or false otherwise. + */ + fun StartTransferScope.startDragAndDropTransfer( + offset: Offset, + isTransferStarted: () -> Boolean + ) + + /** A scope that allows starting a drag and drop session. */ + interface StartTransferScope { + /** + * Initiates a drag-and-drop operation for transferring data. + * + * @param transferData the data to be transferred after successful completion of the drag and + * drop gesture. + * @param decorationSize the size of the drag decoration to be drawn. + * @param drawDragDecoration provides the visual representation of the item dragged during the + * drag and drop gesture. + * @return true if the method completes successfully, or false if it fails anywhere. Returning + * false means the system was unable to do a drag because of another ongoing operation or some + * other reasons. + */ + fun startDragAndDropTransfer( + transferData: DragAndDropTransferData, + decorationSize: Size, + drawDragDecoration: DrawScope.() -> Unit, + ): Boolean + } +} + +@InternalComposeUiApi +interface PlatformDragAndDropTarget : DragAndDropTarget { + /** + * Indicates whether there is a child that is eligible to receive a drop gesture immediately. + * This is true if the last move happened over a child that is interested in receiving a drop. + */ + val hasEligibleDropTarget: Boolean + + /** + * The entry point to register interest in a drag and drop session for receiving data. + * + * @return true to indicate interest in the contents of a drag and drop session, false + * indicates no interest. If false is returned, this [Modifier] will not receive any + * [DragAndDropTarget] events. + * + * All [DragAndDropModifierNode] instances in the hierarchy will be given an opportunity + * to participate in a drag and drop session via this method. + */ + fun acceptDragAndDropTransfer( + startEvent: DragAndDropEvent + ): Boolean +} diff --git a/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/platform/PlatformTextInputMethodRequest.skiko.kt b/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/platform/PlatformTextInputMethodRequest.skiko.kt index 704e5c4101b41..6c1fab23db247 100644 --- a/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/platform/PlatformTextInputMethodRequest.skiko.kt +++ b/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/platform/PlatformTextInputMethodRequest.skiko.kt @@ -16,4 +16,19 @@ package androidx.compose.ui.platform -actual interface PlatformTextInputMethodRequest \ No newline at end of file +import androidx.compose.ui.ExperimentalComposeUiApi +import androidx.compose.ui.text.input.EditCommand +import androidx.compose.ui.text.input.ImeAction +import androidx.compose.ui.text.input.ImeOptions +import androidx.compose.ui.text.input.TextFieldValue + +actual interface PlatformTextInputMethodRequest { + @ExperimentalComposeUiApi + val state: TextFieldValue + @ExperimentalComposeUiApi + val imeOptions: ImeOptions + @ExperimentalComposeUiApi + val onEditCommand: (List) -> Unit + @ExperimentalComposeUiApi + val onImeAction: ((ImeAction) -> Unit)? +} diff --git a/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/platform/PlatformTextInputSession.skiko.kt b/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/platform/PlatformTextInputSession.skiko.kt index 5c54a5d6e57f7..33cc317a626de 100644 --- a/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/platform/PlatformTextInputSession.skiko.kt +++ b/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/platform/PlatformTextInputSession.skiko.kt @@ -16,7 +16,6 @@ package androidx.compose.ui.platform -// TODO(https://youtrack.jetbrains.com/issue/COMPOSE-733/Merge-1.6.-Apply-changes-for-the-new-text-input) implement actual interface PlatformTextInputSession { actual suspend fun startInputMethod(request: PlatformTextInputMethodRequest): Nothing } diff --git a/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/scene/BaseComposeScene.skiko.kt b/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/scene/BaseComposeScene.skiko.kt index 2690589dd206d..74ef37bb01917 100644 --- a/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/scene/BaseComposeScene.skiko.kt +++ b/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/scene/BaseComposeScene.skiko.kt @@ -40,8 +40,8 @@ import androidx.compose.ui.node.SnapshotInvalidationTracker import androidx.compose.ui.platform.GlobalSnapshotManager import androidx.compose.ui.platform.PlatformContext import androidx.compose.ui.util.trace -import kotlin.coroutines.CoroutineContext import kotlin.concurrent.Volatile +import kotlin.coroutines.CoroutineContext /** * BaseComposeScene is an internal abstract class that implements the ComposeScene interface. @@ -89,6 +89,7 @@ internal abstract class BaseComposeScene( snapshotInvalidationTracker.sendAndPerformSnapshotChanges() snapshotInvalidationTracker.performSnapshotChangesSynchronously(block) } finally { + snapshotInvalidationTracker.sendAndPerformSnapshotChanges() isInvalidationDisabled = false }.also { updateInvalidations() @@ -205,6 +206,7 @@ internal abstract class BaseComposeScene( nativeEvent = nativeEvent, button = button ) + recomposer.performScheduledEffects() } // TODO(demin): return Boolean (when it is consumed) @@ -229,10 +231,13 @@ internal abstract class BaseComposeScene( nativeEvent = nativeEvent, button = button ) + recomposer.performScheduledEffects() } override fun sendKeyEvent(keyEvent: KeyEvent): Boolean = postponeInvalidation("BaseComposeScene:sendKeyEvent") { - inputHandler.onKeyEvent(keyEvent) + inputHandler.onKeyEvent(keyEvent).also { + recomposer.performScheduledEffects() + } } private fun doMeasureAndLayout() { diff --git a/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/scene/CanvasLayersComposeScene.skiko.kt b/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/scene/CanvasLayersComposeScene.skiko.kt index e80eecd0041af..5f73dc5b5b4bb 100644 --- a/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/scene/CanvasLayersComposeScene.skiko.kt +++ b/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/scene/CanvasLayersComposeScene.skiko.kt @@ -154,13 +154,9 @@ private class CanvasLayersComposeSceneImpl( forEachLayer { it.owner.adjustedFocusAreaInsets = value } } - override val focusManager: ComposeSceneFocusManager = ComposeSceneFocusManager( - focusOwner = { focusedOwner.focusOwner } - ) + override val focusManager = ComposeSceneFocusManager { focusedOwner.focusOwner } - override val dropTarget = ComposeSceneDropTarget( - activeDragAndDropManager = { focusedOwner.dragAndDropManager } - ) + override val dragAndDropTarget = ComposeSceneDragAndDropTarget { focusedOwner.dragAndDropOwner } private val layers = mutableListOf() private val _layersCopyCache = CopiedList { diff --git a/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/scene/ComposeScene.skiko.kt b/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/scene/ComposeScene.skiko.kt index 24eaf6f3c822c..df67d70034f72 100644 --- a/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/scene/ComposeScene.skiko.kt +++ b/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/scene/ComposeScene.skiko.kt @@ -128,7 +128,7 @@ interface ComposeScene { * The object through which drag-and-drop implementations report drop-target events to the * scene. */ - val dropTarget: ComposeSceneDropTarget + val dragAndDropTarget: ComposeSceneDragAndDropTarget /** * Close all resources and subscriptions. Not calling this method when [ComposeScene] is no diff --git a/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/scene/ComposeSceneDragAndDropTarget.skiko.kt b/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/scene/ComposeSceneDragAndDropTarget.skiko.kt new file mode 100644 index 0000000000000..e48052fb69d1b --- /dev/null +++ b/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/scene/ComposeSceneDragAndDropTarget.skiko.kt @@ -0,0 +1,89 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.compose.ui.scene + +import androidx.compose.ui.InternalComposeUiApi +import androidx.compose.ui.draganddrop.DragAndDropEvent +import androidx.compose.ui.draganddrop.DragAndDropNode +import androidx.compose.ui.draganddrop.DragAndDropTarget +import androidx.compose.ui.node.DragAndDropOwner + +/** + * The object provided by [ComposeScene] to allow reporting drop-target events to it. + */ +@InternalComposeUiApi +class ComposeSceneDragAndDropTarget internal constructor( + private val dragAndDropOwner: () -> DragAndDropOwner, +) : DragAndDropTarget { + private var startedNode: DragAndDropNode? = null + private val currentNode: DragAndDropNode + get() = dragAndDropOwner().rootDragAndDropNode + + val hasEligibleDropTarget: Boolean + get() = currentNode.hasEligibleDropTarget + + fun acceptDragAndDropTransfer(startEvent: DragAndDropEvent): Boolean { + ensureStarted(null, startEvent) + return currentNode.acceptDragAndDropTransfer(startEvent) + } + + override fun onDrop(event: DragAndDropEvent): Boolean { + val node = currentNode + ensureStarted(node, event) + return node.onDrop(event) + } + + override fun onStarted(event: DragAndDropEvent) { + ensureStarted(currentNode, event) + } + + override fun onEntered(event: DragAndDropEvent) { + val node = currentNode + ensureStarted(node, event) + node.onEntered(event) + } + + override fun onMoved(event: DragAndDropEvent) { + val node = currentNode + ensureStarted(node, event) + node.onMoved(event) + } + + override fun onExited(event: DragAndDropEvent) { + val node = currentNode + ensureStarted(node, event) + node.onExited(event) + } + + override fun onChanged(event: DragAndDropEvent) { + val node = currentNode + ensureStarted(node, event) + node.onChanged(event) + } + + override fun onEnded(event: DragAndDropEvent) { + ensureStarted(null, event) + } + + private fun ensureStarted(node: DragAndDropNode?, event: DragAndDropEvent) { + if (startedNode != node) { + startedNode?.onEnded(event) + startedNode = node + startedNode?.onStarted(event) + } + } +} diff --git a/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/scene/OwnerDragAndDropManager.skiko.kt b/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/scene/OwnerDragAndDropManager.skiko.kt deleted file mode 100644 index 8b9f98e907105..0000000000000 --- a/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/scene/OwnerDragAndDropManager.skiko.kt +++ /dev/null @@ -1,130 +0,0 @@ -/* - * Copyright 2024 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package androidx.compose.ui.scene - -import androidx.collection.ArraySet -import androidx.compose.ui.InternalComposeUiApi -import androidx.compose.ui.Modifier -import androidx.compose.ui.draganddrop.DragAndDropEvent -import androidx.compose.ui.draganddrop.DragAndDropManager -import androidx.compose.ui.draganddrop.DragAndDropModifierNode -import androidx.compose.ui.draganddrop.DragAndDropNode -import androidx.compose.ui.draganddrop.DragAndDropTransferData -import androidx.compose.ui.geometry.Size -import androidx.compose.ui.graphics.drawscope.DrawScope -import androidx.compose.ui.node.ModifierNodeElement -import androidx.compose.ui.platform.InspectorInfo -import androidx.compose.ui.platform.PlatformContext - -/** - * The object provided by [ComposeScene] to allow reporting drop-target events to it. - */ -@InternalComposeUiApi -class ComposeSceneDropTarget internal constructor( - private val activeDragAndDropManager: () -> OwnerDragAndDropManager, -) { - fun onEntered(event: DragAndDropEvent): Boolean = - activeDragAndDropManager().onEntered(event) - - fun onExited(event: DragAndDropEvent): Unit = - activeDragAndDropManager().onExited(event) - - fun onMoved(event: DragAndDropEvent): Unit = - activeDragAndDropManager().onMoved(event) - - fun onChanged(event: DragAndDropEvent): Unit = - activeDragAndDropManager().onChanged(event) - - fun onDrop(event: DragAndDropEvent): Boolean = - activeDragAndDropManager().onDrop(event) -} - -/** - * The actual [DragAndDropManager] implementation tied to a specific - * [androidx.compose.ui.node.RootNodeOwner]. - */ -internal class OwnerDragAndDropManager( - private val platformContext: PlatformContext -) : DragAndDropManager { - private val rootDragAndDropNode = DragAndDropNode { null } - private val interestedNodes = ArraySet() - - override val modifier: Modifier = DragAndDropModifier(rootDragAndDropNode) - - override fun drag( - transferData: DragAndDropTransferData, - decorationSize: Size, - drawDragDecoration: DrawScope.() -> Unit - ): Boolean { - return platformContext.startDrag(transferData, decorationSize, drawDragDecoration) - } - - override fun registerNodeInterest(node: DragAndDropModifierNode) { - interestedNodes.add(node) - } - - override fun isInterestedNode(node: DragAndDropModifierNode): Boolean { - return interestedNodes.contains(node) - } - - fun onEntered(event: DragAndDropEvent): Boolean { - val accepted = rootDragAndDropNode.acceptDragAndDropTransfer(event) - interestedNodes.forEach { it.onStarted(event) } - rootDragAndDropNode.onEntered(event) - return accepted - } - - fun onExited(event: DragAndDropEvent) { - rootDragAndDropNode.onExited(event) - endDrag(event) - } - - fun onMoved(event: DragAndDropEvent) { - rootDragAndDropNode.onMoved(event) - } - - fun onChanged(event: DragAndDropEvent) { - rootDragAndDropNode.onChanged(event) - } - - fun onDrop(event: DragAndDropEvent): Boolean { - val accepted = rootDragAndDropNode.onDrop(event) - endDrag(event) - return accepted - } - - private fun endDrag(event: DragAndDropEvent) { - rootDragAndDropNode.onEnded(event) - interestedNodes.clear() - } -} - -private class DragAndDropModifier( - val dragAndDropNode: DragAndDropNode -) : ModifierNodeElement() { - override fun create() = dragAndDropNode - - override fun update(node: DragAndDropNode) = Unit - - override fun InspectorInfo.inspectableProperties() { - name = "RootDragAndDropNode" - } - - override fun hashCode(): Int = dragAndDropNode.hashCode() - - override fun equals(other: Any?) = other === this -} diff --git a/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/scene/PlatformLayersComposeScene.skiko.kt b/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/scene/PlatformLayersComposeScene.skiko.kt index 5bf3b29e5cb26..d4a8b326ab190 100644 --- a/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/scene/PlatformLayersComposeScene.skiko.kt +++ b/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/scene/PlatformLayersComposeScene.skiko.kt @@ -133,13 +133,9 @@ private class PlatformLayersComposeSceneImpl( mainOwner.adjustedFocusAreaInsets = value } - override val focusManager: ComposeSceneFocusManager = ComposeSceneFocusManager( - focusOwner = { mainOwner.focusOwner } - ) + override val focusManager = ComposeSceneFocusManager { mainOwner.focusOwner } - override val dropTarget = ComposeSceneDropTarget( - activeDragAndDropManager = { mainOwner.dragAndDropManager } - ) + override val dragAndDropTarget = ComposeSceneDragAndDropTarget { mainOwner.dragAndDropOwner } init { onOwnerAppended(mainOwner) diff --git a/compose/ui/ui/src/skikoTest/kotlin/androidx/compose/ui/platform/RenderPhasesTest.kt b/compose/ui/ui/src/skikoTest/kotlin/androidx/compose/ui/platform/RenderPhasesTest.kt index 710cc0cd4f659..3bbdc32706332 100644 --- a/compose/ui/ui/src/skikoTest/kotlin/androidx/compose/ui/platform/RenderPhasesTest.kt +++ b/compose/ui/ui/src/skikoTest/kotlin/androidx/compose/ui/platform/RenderPhasesTest.kt @@ -17,13 +17,18 @@ package androidx.compose.ui.platform import androidx.compose.foundation.Canvas +import androidx.compose.foundation.ScrollState +import androidx.compose.foundation.focusable +import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.size +import androidx.compose.foundation.verticalScroll import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.neverEqualPolicy +import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import androidx.compose.runtime.snapshots.Snapshot @@ -31,9 +36,18 @@ import androidx.compose.runtime.withFrameMillis import androidx.compose.runtime.withFrameNanos import androidx.compose.ui.Modifier import androidx.compose.ui.draw.drawBehind +import androidx.compose.ui.focus.FocusRequester +import androidx.compose.ui.focus.focusRequester import androidx.compose.ui.geometry.Offset +import androidx.compose.ui.input.key.InternalKeyEvent +import androidx.compose.ui.input.key.Key +import androidx.compose.ui.input.key.KeyEvent +import androidx.compose.ui.input.key.KeyEventType +import androidx.compose.ui.input.key.onKeyEvent +import androidx.compose.ui.input.pointer.EmptyPointerKeyboardModifiers import androidx.compose.ui.input.pointer.PointerEventType import androidx.compose.ui.input.pointer.onPointerEvent +import androidx.compose.ui.input.pointer.pointerInput import androidx.compose.ui.layout.Layout import androidx.compose.ui.scene.BaseComposeScene import androidx.compose.ui.test.ExperimentalTestApi @@ -41,10 +55,13 @@ import androidx.compose.ui.test.InternalTestApi import androidx.compose.ui.test.onNodeWithTag import androidx.compose.ui.test.performMouseInput import androidx.compose.ui.test.runInternalSkikoComposeUiTest +import androidx.compose.ui.touch import androidx.compose.ui.unit.dp import kotlin.test.Test import kotlin.test.assertContentEquals import kotlin.test.assertEquals +import kotlin.test.assertFalse +import kotlin.test.assertNotEquals import kotlin.test.assertTrue import kotlinx.coroutines.launch import kotlinx.coroutines.test.StandardTestDispatcher @@ -322,4 +339,165 @@ class RenderPhasesTest { actual = events ) } + + @Test + fun dragPointerEventHandlesScrollUpdatesSynchronously() = runInternalSkikoComposeUiTest( + coroutineDispatcher = StandardTestDispatcher() + ) { + val scrollState = ScrollState(0) + setContent { + Box(modifier = Modifier.size(100.dp).verticalScroll(scrollState)) { + Box(Modifier.size(200.dp)) + } + } + + assertFalse(scene.hasInvalidations()) + assertEquals(0, scrollState.value) + + scene.sendPointerEvent( + eventType = PointerEventType.Press, + pointers = listOf( + touch(50f, 50f, pressed = true) + ) + ) + scene.sendPointerEvent( + eventType = PointerEventType.Move, + pointers = listOf( + touch(50f, 10f, pressed = true) + ) + ) + assertTrue(scene.hasInvalidations()) + assertNotEquals(0, scrollState.value) + } + + @Test + fun scrollPointerEventHandlesScrollUpdatesSynchronously() = runInternalSkikoComposeUiTest( + coroutineDispatcher = StandardTestDispatcher() + ) { + val scrollState = ScrollState(0) + setContent { + Box(modifier = Modifier.size(100.dp).verticalScroll(scrollState)) { + Box(Modifier.size(200.dp)) + } + } + + assertFalse(scene.hasInvalidations()) + assertEquals(0, scrollState.value) + + scene.sendPointerEvent( + eventType = PointerEventType.Scroll, + position = Offset(50f, 50f), + scrollDelta = Offset(0f, 40f) + ) + + assertTrue(scene.hasInvalidations()) + assertNotEquals(0, scrollState.value) + } + + @Test + fun pointerPressEventProcessesScheduledCoroutines() = runInternalSkikoComposeUiTest( + coroutineDispatcher = StandardTestDispatcher() + ) { + var pointerHandledAfterDelay by mutableStateOf(false) + setContent { + val coroutineScope = rememberCoroutineScope() + Box( + modifier = Modifier + .fillMaxSize() + .pointerInput(Unit) { + awaitPointerEventScope { + awaitPointerEvent() + coroutineScope.launch { + pointerHandledAfterDelay = true + } + } + } + ) + } + + assertFalse(pointerHandledAfterDelay) + + scene.sendPointerEvent( + eventType = PointerEventType.Press, + pointers = listOf( + touch(50f, 50f, pressed = true) + ) + ) + + assertTrue(pointerHandledAfterDelay) + } + + @Test + fun pointerScrollEventProcessesScheduledCoroutines() = runInternalSkikoComposeUiTest( + coroutineDispatcher = StandardTestDispatcher() + ) { + var pointerHandledAfterDelay by mutableStateOf(false) + setContent { + val coroutineScope = rememberCoroutineScope() + Box( + modifier = Modifier + .fillMaxSize() + .pointerInput(Unit) { + awaitPointerEventScope { + awaitPointerEvent() + coroutineScope.launch { + pointerHandledAfterDelay = true + } + } + } + ) + } + + assertFalse(pointerHandledAfterDelay) + + scene.sendPointerEvent( + eventType = PointerEventType.Scroll, + position = Offset(50f, 50f), + scrollDelta = Offset(0f, 40f) + ) + + assertTrue(pointerHandledAfterDelay) + } + + @Test + fun keyEventsProcessesScheduledCoroutines() = runInternalSkikoComposeUiTest( + coroutineDispatcher = StandardTestDispatcher() + ) { + var keyHandledAfterDelay by mutableStateOf(false) + setContent { + val coroutineScope = rememberCoroutineScope() + val focusRequester = remember { FocusRequester() } + val interactionSource = remember { MutableInteractionSource() } + Box( + modifier = Modifier + .focusRequester(focusRequester) + .focusable(interactionSource = interactionSource) + .onKeyEvent { keyEvent: KeyEvent -> + coroutineScope.launch { + keyHandledAfterDelay = true + } + true + } + ) + LaunchedEffect(Unit) { + focusRequester.requestFocus() + } + } + + assertFalse(keyHandledAfterDelay) + + scene.sendKeyEvent( + KeyEvent( + nativeKeyEvent = InternalKeyEvent( + key = Key.A, + type = KeyEventType.KeyDown, + codePoint = 0, + modifiers = EmptyPointerKeyboardModifiers(), + nativeEvent = null + ) + ) + ) + + assertTrue(keyHandledAfterDelay) + } } \ No newline at end of file diff --git a/compose/ui/ui/src/uikitInstrumentedTest/kotlin/android/compose/ui/keyboard/KeyboardInsetsTest.kt b/compose/ui/ui/src/uikitInstrumentedTest/kotlin/androidx/compose/ui/keyboard/KeyboardInsetsTest.kt similarity index 99% rename from compose/ui/ui/src/uikitInstrumentedTest/kotlin/android/compose/ui/keyboard/KeyboardInsetsTest.kt rename to compose/ui/ui/src/uikitInstrumentedTest/kotlin/androidx/compose/ui/keyboard/KeyboardInsetsTest.kt index 838b402bccb91..89d4a006c2ad1 100644 --- a/compose/ui/ui/src/uikitInstrumentedTest/kotlin/android/compose/ui/keyboard/KeyboardInsetsTest.kt +++ b/compose/ui/ui/src/uikitInstrumentedTest/kotlin/androidx/compose/ui/keyboard/KeyboardInsetsTest.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package androidx.compose.ui.window +package androidx.compose.ui.keyboard import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column diff --git a/compose/ui/ui/src/uikitInstrumentedTest/kotlin/android/compose/ui/test/UIKitInstrumentedTest.kt b/compose/ui/ui/src/uikitInstrumentedTest/kotlin/androidx/compose/ui/test/UIKitInstrumentedTest.kt similarity index 100% rename from compose/ui/ui/src/uikitInstrumentedTest/kotlin/android/compose/ui/test/UIKitInstrumentedTest.kt rename to compose/ui/ui/src/uikitInstrumentedTest/kotlin/androidx/compose/ui/test/UIKitInstrumentedTest.kt diff --git a/compose/ui/ui/src/uikitMain/kotlin/androidx/compose/ui/platform/UIKitTextInputService.uikit.kt b/compose/ui/ui/src/uikitMain/kotlin/androidx/compose/ui/platform/UIKitTextInputService.uikit.kt index 78924cc85b24a..e654c7decee48 100644 --- a/compose/ui/ui/src/uikitMain/kotlin/androidx/compose/ui/platform/UIKitTextInputService.uikit.kt +++ b/compose/ui/ui/src/uikitMain/kotlin/androidx/compose/ui/platform/UIKitTextInputService.uikit.kt @@ -137,7 +137,7 @@ internal class UIKitTextInputService( currentImeActionHandler = onImeActionPerformed attachIntermediateTextInputView() - textUIView?.input = createSkikoInput(value) + textUIView?.input = createSkikoInput() textUIView?.inputTraits = getUITextInputTraits(imeOptions) showSoftwareKeyboard() @@ -248,9 +248,7 @@ internal class UIKitTextInputService( private fun sendEditCommand(vararg commands: EditCommand) { val commandList = commands.toList() _tempCurrentInputSession?.apply(commandList) - currentInput?.let { input -> - input.onEditCommand(commandList) - } + currentInput?.onEditCommand?.invoke(commandList) } private fun getCursorPos(): Int? { @@ -360,7 +358,7 @@ internal class UIKitTextInputService( textUIView = null } - private fun createSkikoInput(value: TextFieldValue) = object : IOSSkikoInput { + private fun createSkikoInput() = object : IOSSkikoInput { private var floatingCursorTranslation : Offset? = null diff --git a/compose/ui/ui/src/uikitMain/kotlin/androidx/compose/ui/scene/ComposeSceneMediator.uikit.kt b/compose/ui/ui/src/uikitMain/kotlin/androidx/compose/ui/scene/ComposeSceneMediator.uikit.kt index 4d96f3a3799c2..24c9e86ac322a 100644 --- a/compose/ui/ui/src/uikitMain/kotlin/androidx/compose/ui/scene/ComposeSceneMediator.uikit.kt +++ b/compose/ui/ui/src/uikitMain/kotlin/androidx/compose/ui/scene/ComposeSceneMediator.uikit.kt @@ -21,12 +21,9 @@ import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.ExperimentalComposeApi import androidx.compose.runtime.MutableState import androidx.compose.runtime.mutableStateOf -import androidx.compose.ui.draganddrop.DragAndDropTransferData import androidx.compose.ui.geometry.Offset import androidx.compose.ui.geometry.Rect -import androidx.compose.ui.geometry.Size import androidx.compose.ui.graphics.asComposeCanvas -import androidx.compose.ui.graphics.drawscope.DrawScope import androidx.compose.ui.input.InputMode import androidx.compose.ui.input.key.Key import androidx.compose.ui.input.key.KeyEvent @@ -723,14 +720,6 @@ internal class ComposeSceneMediator( positionOnScreen ) - override fun startDrag( - transferData: DragAndDropTransferData, - decorationSize: Size, - drawDragDecoration: DrawScope.() -> Unit - ): Boolean { - TODO("Drag&drop isn't implemented") - } - override val measureDrawLayerBounds get() = this@ComposeSceneMediator.measureDrawLayerBounds override val viewConfiguration get() = this@ComposeSceneMediator.viewConfiguration override val inputModeManager = DefaultInputModeManager(InputMode.Touch) diff --git a/compose/ui/ui/src/webCommonW3C/kotlin/androidx/compose/ui/platform/WebImeInputService.kt b/compose/ui/ui/src/webCommonW3C/kotlin/androidx/compose/ui/platform/WebImeInputService.kt index fc333c57467ed..6b171102b3ee1 100644 --- a/compose/ui/ui/src/webCommonW3C/kotlin/androidx/compose/ui/platform/WebImeInputService.kt +++ b/compose/ui/ui/src/webCommonW3C/kotlin/androidx/compose/ui/platform/WebImeInputService.kt @@ -39,9 +39,9 @@ internal class WebImeInputService(parentInputService: InputAwareInputService) : ) { backingTextArea = BackingTextArea( - imeOptions, - onEditCommand, - onImeActionPerformed, + imeOptions = imeOptions, + onEditCommand = onEditCommand, + onImeActionPerformed = onImeActionPerformed, processKeyboardEvent = this@WebImeInputService::processKeyboardEvent ) backingTextArea?.register() diff --git a/compose/ui/ui/src/webCommonW3C/kotlin/androidx/compose/ui/platform/WebTextInputService.kt b/compose/ui/ui/src/webCommonW3C/kotlin/androidx/compose/ui/platform/WebTextInputService.kt index 7c64c60f4e94f..6bfa043470f7f 100644 --- a/compose/ui/ui/src/webCommonW3C/kotlin/androidx/compose/ui/platform/WebTextInputService.kt +++ b/compose/ui/ui/src/webCommonW3C/kotlin/androidx/compose/ui/platform/WebTextInputService.kt @@ -18,7 +18,6 @@ package androidx.compose.ui.platform import androidx.compose.ui.geometry.Offset import androidx.compose.ui.geometry.Rect -import androidx.compose.ui.input.key.KeyEvent import androidx.compose.ui.text.input.EditCommand import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.text.input.ImeOptions diff --git a/compose/ui/ui/src/webCommonW3C/kotlin/androidx/compose/ui/window/ComposeWindow.web.kt b/compose/ui/ui/src/webCommonW3C/kotlin/androidx/compose/ui/window/ComposeWindow.web.kt index 8a1a918ad9584..088e09a9b7643 100644 --- a/compose/ui/ui/src/webCommonW3C/kotlin/androidx/compose/ui/window/ComposeWindow.web.kt +++ b/compose/ui/ui/src/webCommonW3C/kotlin/androidx/compose/ui/window/ComposeWindow.web.kt @@ -22,13 +22,10 @@ import androidx.compose.runtime.InternalComposeApi import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.LocalSystemTheme -import androidx.compose.ui.draganddrop.DragAndDropTransferData import androidx.compose.ui.events.EventTargetListener import androidx.compose.ui.geometry.Offset import androidx.compose.ui.geometry.Rect -import androidx.compose.ui.geometry.Size import androidx.compose.ui.graphics.asComposeCanvas -import androidx.compose.ui.graphics.drawscope.DrawScope import androidx.compose.ui.input.InputMode import androidx.compose.ui.input.InputModeManager import androidx.compose.ui.input.key.toComposeEvent @@ -212,14 +209,6 @@ internal class ComposeWindow( canvas.style.cursor = pointerIcon.id } } - - override fun startDrag( - transferData: DragAndDropTransferData, - decorationSize: Size, - drawDragDecoration: DrawScope.() -> Unit - ): Boolean { - TODO("Drag&drop isn't implemented") - } } private val skiaLayer: SkiaLayer = SkiaLayer().apply { diff --git a/compose/ui/ui/src/webTest/kotlin/androidx/compose/ui/OnCanvasTests.kt b/compose/ui/ui/src/webTest/kotlin/androidx/compose/ui/OnCanvasTests.kt index b53f3a4e57b07..65bf1e0517d00 100644 --- a/compose/ui/ui/src/webTest/kotlin/androidx/compose/ui/OnCanvasTests.kt +++ b/compose/ui/ui/src/webTest/kotlin/androidx/compose/ui/OnCanvasTests.kt @@ -25,6 +25,7 @@ import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.launch import org.w3c.dom.HTMLCanvasElement +import org.w3c.dom.events.Event /** * An interface with helper functions to initialise the tests @@ -35,7 +36,7 @@ private const val canvasId: String = "canvasApp" internal interface OnCanvasTests { fun getCanvas() = document.getElementById(canvasId) as HTMLCanvasElement - fun resetCanvas(): HTMLCanvasElement { + private fun resetCanvas() { /** TODO: [kotlin.test.AfterTest] is fixed only in kotlin 2.0 see https://youtrack.jetbrains.com/issue/KT-61888 */ @@ -46,12 +47,19 @@ internal interface OnCanvasTests { canvas.setAttribute("tabindex", "0") document.body!!.appendChild(canvas) - return canvas } fun createComposeWindow(content: @Composable () -> Unit) { + resetCanvas() CanvasBasedWindow(canvasElementId = canvasId, content = content) } + + fun dispatchEvents(vararg events: Any) { + val canvas = getCanvas() + for (event in events) { + canvas.dispatchEvent(event as Event) + } + } } internal fun Channel.sendFromScope(value: T, scope: CoroutineScope = GlobalScope) { diff --git a/compose/ui/ui/src/webTest/kotlin/androidx/compose/ui/SelectionContainerTests.kt b/compose/ui/ui/src/webTest/kotlin/androidx/compose/ui/SelectionContainerTests.kt index 096b0000b16e5..1065a3e46e1d0 100644 --- a/compose/ui/ui/src/webTest/kotlin/androidx/compose/ui/SelectionContainerTests.kt +++ b/compose/ui/ui/src/webTest/kotlin/androidx/compose/ui/SelectionContainerTests.kt @@ -28,12 +28,10 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.platform.LocalViewConfiguration import androidx.compose.ui.platform.ViewConfiguration -import kotlin.test.BeforeTest import kotlin.test.Test import kotlin.test.assertEquals import kotlin.test.assertFalse import kotlin.test.assertTrue -import kotlinx.browser.document import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.channels.BufferOverflow import kotlinx.coroutines.channels.Channel @@ -46,11 +44,6 @@ import org.w3c.dom.events.MouseEventInit class SelectionContainerTests : OnCanvasTests { - @BeforeTest - fun setup() { - resetCanvas() - } - private fun HTMLCanvasElement.doClick() { dispatchEvent(MouseEvent("mousedown", MouseEventInit(5, 5, 5, 5, buttons = 1, button = 1))) dispatchEvent(MouseEvent("mouseup", MouseEventInit(5, 5, 5, 5, buttons = 0, button = 1))) diff --git a/compose/ui/ui/src/webTest/kotlin/androidx/compose/ui/TextTests.kt b/compose/ui/ui/src/webTest/kotlin/androidx/compose/ui/TextTests.kt index d8b74f700401f..4c8cb02a8daa0 100644 --- a/compose/ui/ui/src/webTest/kotlin/androidx/compose/ui/TextTests.kt +++ b/compose/ui/ui/src/webTest/kotlin/androidx/compose/ui/TextTests.kt @@ -23,18 +23,12 @@ import androidx.compose.ui.layout.FirstBaseline import androidx.compose.ui.layout.onGloballyPositioned import androidx.compose.ui.platform.LocalDensity import kotlin.math.abs -import kotlin.test.BeforeTest import kotlin.test.Test import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.test.runTest class TextTests : OnCanvasTests { - @BeforeTest - fun setup() { - resetCanvas() - } - companion object { private fun assertApproximatelyEqual( expected: Float, diff --git a/compose/ui/ui/src/webTest/kotlin/androidx/compose/ui/input/TextInputTests.kt b/compose/ui/ui/src/webTest/kotlin/androidx/compose/ui/input/TextInputTests.kt index e0cd09f342d7b..7460ab1ecd4eb 100644 --- a/compose/ui/ui/src/webTest/kotlin/androidx/compose/ui/input/TextInputTests.kt +++ b/compose/ui/ui/src/webTest/kotlin/androidx/compose/ui/input/TextInputTests.kt @@ -28,7 +28,6 @@ import androidx.compose.ui.events.keyDownEvent import androidx.compose.ui.focus.FocusRequester import androidx.compose.ui.focus.focusRequester import androidx.compose.ui.sendFromScope -import kotlin.test.BeforeTest import kotlin.test.Test import kotlin.test.assertEquals import kotlin.test.assertNotNull @@ -40,11 +39,6 @@ import kotlinx.coroutines.test.runTest class TextInputTests : OnCanvasTests { - @BeforeTest - fun setup() { - resetCanvas() - } - @Test fun keyboardEventPassedToTextField() = runTest { @@ -79,38 +73,43 @@ class TextInputTests : OnCanvasTests { assertNull(document.querySelector("textarea")) - val canvas = getCanvas() + dispatchEvents( + keyDownEvent("s"), + keyDownEvent("t"), + keyDownEvent("e"), + keyDownEvent("p"), + keyDownEvent("1") + ) - canvas.dispatchEvent(keyDownEvent("s")) - canvas.dispatchEvent(keyDownEvent("t")) - canvas.dispatchEvent(keyDownEvent("e")) - canvas.dispatchEvent(keyDownEvent("p")) - canvas.dispatchEvent(keyDownEvent("1")) assertEquals("step1", textInputChannel.receive()) assertNull(document.querySelector("textarea")) // trigger virtual keyboard - canvas.dispatchEvent(createTouchEvent("touchstart")) + dispatchEvents(createTouchEvent("touchstart")) secondFocusRequester.requestFocus() assertNotNull(document.querySelector("textarea")) - canvas.dispatchEvent(keyDownEvent("s")) - canvas.dispatchEvent(keyDownEvent("t")) - canvas.dispatchEvent(keyDownEvent("e")) - canvas.dispatchEvent(keyDownEvent("p")) - canvas.dispatchEvent(keyDownEvent("2")) + dispatchEvents( + keyDownEvent("s"), + keyDownEvent("t"), + keyDownEvent("e"), + keyDownEvent("p"), + keyDownEvent("2") + ) assertEquals("step2", textInputChannel.receive()) val backingField = document.querySelector("textarea")!! - backingField.dispatchEvent(keyDownEvent("s")) - backingField.dispatchEvent(keyDownEvent("t")) - backingField.dispatchEvent(keyDownEvent("e")) - backingField.dispatchEvent(keyDownEvent("p")) - backingField.dispatchEvent(keyDownEvent("3")) + dispatchEvents( + keyDownEvent("s"), + keyDownEvent("t"), + keyDownEvent("e"), + keyDownEvent("p"), + keyDownEvent("3") + ) assertEquals("step2step3", textInputChannel.receive()) @@ -123,14 +122,16 @@ class TextInputTests : OnCanvasTests { assertEquals("step2step3step4", textInputChannel.receive()) // trigger hardware keyboard - canvas.dispatchEvent(createMouseEvent("mousedown")) + dispatchEvents(createMouseEvent("mousedown")) firstFocusRequester.requestFocus() - canvas.dispatchEvent(keyDownEvent("s")) - canvas.dispatchEvent(keyDownEvent("t")) - canvas.dispatchEvent(keyDownEvent("e")) - canvas.dispatchEvent(keyDownEvent("p")) - canvas.dispatchEvent(keyDownEvent("5")) + dispatchEvents( + keyDownEvent("s"), + keyDownEvent("t"), + keyDownEvent("e"), + keyDownEvent("p"), + keyDownEvent("5") + ) assertEquals("step1step5", textInputChannel.receive()) } diff --git a/compose/ui/ui/src/webTest/kotlin/androidx/compose/ui/window/ComposeWindowLifecycleTest.kt b/compose/ui/ui/src/webTest/kotlin/androidx/compose/ui/window/ComposeWindowLifecycleTest.kt index a238a67c729a0..cb98c32d47caa 100644 --- a/compose/ui/ui/src/webTest/kotlin/androidx/compose/ui/window/ComposeWindowLifecycleTest.kt +++ b/compose/ui/ui/src/webTest/kotlin/androidx/compose/ui/window/ComposeWindowLifecycleTest.kt @@ -21,7 +21,6 @@ import androidx.compose.ui.sendFromScope import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleEventObserver import androidx.lifecycle.LifecycleOwner -import kotlin.test.BeforeTest import kotlin.test.Ignore import kotlin.test.Test import kotlin.test.assertEquals @@ -33,12 +32,6 @@ import kotlinx.coroutines.test.runTest class ComposeWindowLifecycleTest : OnCanvasTests { - - @BeforeTest - fun setup() { - resetCanvas() - } - @Test @Ignore // ignored while investigating CI issues: this test opens a new browser window which can be the cause fun allEvents() = runTest { diff --git a/compose/ui/ui/src/webTest/kotlin/androidx/compose/ui/window/CanvasBasedWindowTests.kt b/compose/ui/ui/src/webTest/kotlin/androidx/compose/ui/window/KeyEventTests.kt similarity index 63% rename from compose/ui/ui/src/webTest/kotlin/androidx/compose/ui/window/CanvasBasedWindowTests.kt rename to compose/ui/ui/src/webTest/kotlin/androidx/compose/ui/window/KeyEventTests.kt index cbd2d59575c80..aabab3f264eab 100644 --- a/compose/ui/ui/src/webTest/kotlin/androidx/compose/ui/window/CanvasBasedWindowTests.kt +++ b/compose/ui/ui/src/webTest/kotlin/androidx/compose/ui/window/KeyEventTests.kt @@ -27,7 +27,6 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.ui.Modifier import androidx.compose.ui.OnCanvasTests import androidx.compose.ui.events.keyDownEvent -import androidx.compose.ui.events.keyDownEventUnprevented import androidx.compose.ui.focus.FocusRequester import androidx.compose.ui.focus.focusRequester import androidx.compose.ui.focus.focusTarget @@ -39,54 +38,9 @@ import androidx.compose.ui.input.key.onKeyEvent import androidx.compose.ui.input.key.onPreviewKeyEvent import androidx.compose.ui.unit.dp import kotlin.test.Test -import kotlin.test.BeforeTest import kotlin.test.assertEquals -import kotlin.test.assertTrue -import kotlin.test.assertFalse - -class CanvasBasedWindowTests : OnCanvasTests { - @BeforeTest - fun setup() { - resetCanvas() - } - - @Test - fun testPreventDefault() { - val fr = FocusRequester() - var changedValue = "" - createComposeWindow { - TextField( - value = "", - onValueChange = { changedValue = it }, - modifier = Modifier.fillMaxSize().focusRequester(fr) - ) - SideEffect { - fr.requestFocus() - } - } - - val stack = mutableListOf() - val canvas = getCanvas() - - canvas.addEventListener("keydown", { event -> - stack.add(event.defaultPrevented) - }) - - // dispatchEvent synchronously invokes all the listeners - canvas.dispatchEvent(keyDownEvent("c")) - assertEquals(1, stack.size) - assertTrue(stack.last()) - - canvas.dispatchEvent(keyDownEventUnprevented()) - assertEquals(2, stack.size) - assertFalse(stack.last()) - - // copy shortcut should not be prevented (we let browser create a corresponding event) - canvas.dispatchEvent(keyDownEvent("c", metaKey = true, ctrlKey = true)) - assertEquals(3, stack.size) - assertFalse(stack.last()) - } +class KeyEventTests : OnCanvasTests { @Test // https://github.com/JetBrains/compose-multiplatform/issues/3644 fun keyMappingIsValid() { @@ -94,11 +48,13 @@ class CanvasBasedWindowTests : OnCanvasTests { var mapping = "" var k: Key? = null createComposeWindow { - Box(Modifier.size(1000.dp).background(Color.Red).focusRequester(fr).focusTarget().onKeyEvent { - k = it.key - mapping = it.key.toString() - false - }) { + Box( + Modifier.size(1000.dp).background(Color.Red).focusRequester(fr).focusTarget() + .onKeyEvent { + k = it.key + mapping = it.key.toString() + false + }) { Text("Try to press different keys and look at the console...") } SideEffect { @@ -113,10 +69,9 @@ class CanvasBasedWindowTests : OnCanvasTests { Key.V, Key.W, Key.X, Key.Y, Key.Z ) - val canvas = getCanvas() ('a'..'z').forEachIndexed { index, c -> - canvas.dispatchEvent(keyDownEvent(c.toString())) + dispatchEvents(keyDownEvent(c.toString())) assertEquals(listOfKeys[index], k) } @@ -127,7 +82,7 @@ class CanvasBasedWindowTests : OnCanvasTests { ('0'..'9').forEachIndexed { index, c -> val id = c.toString() - canvas.dispatchEvent(keyDownEvent(id, code = "Digit${id}" )) + dispatchEvents(keyDownEvent(id, code = "Digit${id}")) assertEquals(listOfNumbers[index], k) } } @@ -155,18 +110,18 @@ class CanvasBasedWindowTests : OnCanvasTests { } } - val canvas = getCanvas() - - canvas.dispatchEvent(keyDownEvent("t")) + dispatchEvents(keyDownEvent("t")) assertEquals(Key.T, lastKeyEvent!!.key) assertEquals("", textValue.value) stopPropagation = false - canvas.dispatchEvent(keyDownEvent("t")) - canvas.dispatchEvent(keyDownEvent("e")) - canvas.dispatchEvent(keyDownEvent("s")) - canvas.dispatchEvent(keyDownEvent("t")) - canvas.dispatchEvent(keyDownEvent("x")) + dispatchEvents( + keyDownEvent("t"), + keyDownEvent("e"), + keyDownEvent("s"), + keyDownEvent("t"), + keyDownEvent("x") + ) assertEquals(Key.X, lastKeyEvent!!.key) assertEquals("testx", textValue.value) } diff --git a/compose/ui/ui/src/webTest/kotlin/androidx/compose/ui/window/MouseEventsTest.kt b/compose/ui/ui/src/webTest/kotlin/androidx/compose/ui/window/MouseEventsTest.kt index 95bffa429f697..d6ebc889db4e9 100644 --- a/compose/ui/ui/src/webTest/kotlin/androidx/compose/ui/window/MouseEventsTest.kt +++ b/compose/ui/ui/src/webTest/kotlin/androidx/compose/ui/window/MouseEventsTest.kt @@ -27,7 +27,6 @@ import androidx.compose.ui.input.pointer.PointerButton import androidx.compose.ui.input.pointer.PointerEvent import androidx.compose.ui.input.pointer.PointerEventType import androidx.compose.ui.input.pointer.pointerInput -import kotlin.test.BeforeTest import kotlin.test.Test import kotlin.test.assertEquals import kotlinx.coroutines.NonCancellable.isActive @@ -37,11 +36,6 @@ import org.w3c.dom.events.MouseEventInit class MouseEventsTest : OnCanvasTests { - @BeforeTest - fun setup() { - resetCanvas() - } - @Test fun testPointerEvents() = runTest { val pointerEvents = mutableListOf() @@ -60,11 +54,11 @@ class MouseEventsTest : OnCanvasTests { ) {} } - val canvas = getCanvas() - - canvas.dispatchEvent(MouseEvent("mouseenter", MouseEventInit(100, 100))) - canvas.dispatchEvent(MouseEvent("mousedown", MouseEventInit(100, 100, button = 0, buttons = 1))) - canvas.dispatchEvent(MouseEvent("mouseup", MouseEventInit(100, 100, button = 0, buttons = 0))) + dispatchEvents( + MouseEvent("mouseenter", MouseEventInit(100, 100)), + MouseEvent("mousedown", MouseEventInit(100, 100, button = 0, buttons = 1)), + MouseEvent("mouseup", MouseEventInit(100, 100, button = 0, buttons = 0)) + ) assertEquals(3, pointerEvents.size) assertEquals(PointerEventType.Enter, pointerEvents[0].type) @@ -75,8 +69,11 @@ class MouseEventsTest : OnCanvasTests { assertEquals(PointerEventType.Release, pointerEvents[2].type) assertEquals(PointerButton.Primary, pointerEvents[2].button) - canvas.dispatchEvent(MouseEvent("mousedown", MouseEventInit(100, 100, button = 2, buttons = 2))) - canvas.dispatchEvent(MouseEvent("mouseup", MouseEventInit(100, 100, button = 2, buttons = 0))) + dispatchEvents( + MouseEvent("mousedown", MouseEventInit(100, 100, button = 2, buttons = 2)), + MouseEvent("mouseup", MouseEventInit(100, 100, button = 2, buttons = 0)) + ) + assertEquals(5, pointerEvents.size) // Check for secondary button @@ -101,17 +98,19 @@ class MouseEventsTest : OnCanvasTests { ) {} } - val canvas = getCanvas() - - canvas.dispatchEvent(MouseEvent("mouseenter", MouseEventInit(100, 100))) - canvas.dispatchEvent(MouseEvent("mousedown", MouseEventInit(100, 100, button = 0, buttons = 1))) - canvas.dispatchEvent(MouseEvent("mouseup", MouseEventInit(100, 100, button = 0, buttons = 0))) + dispatchEvents( + MouseEvent("mouseenter", MouseEventInit(100, 100)), + MouseEvent("mousedown", MouseEventInit(100, 100, button = 0, buttons = 1)), + MouseEvent("mouseup", MouseEventInit(100, 100, button = 0, buttons = 0)) + ) assertEquals(1, primaryClickedCounter) assertEquals(0, secondaryClickedCounter) - canvas.dispatchEvent(MouseEvent("mousedown", MouseEventInit(100, 100, button = 2, buttons = 2))) - canvas.dispatchEvent(MouseEvent("mouseup", MouseEventInit(100, 100, button = 2, buttons = 0))) + dispatchEvents( + MouseEvent("mousedown", MouseEventInit(100, 100, button = 2, buttons = 2)), + MouseEvent("mouseup", MouseEventInit(100, 100, button = 2, buttons = 0)) + ) assertEquals(1, primaryClickedCounter) assertEquals(1, secondaryClickedCounter) @@ -137,17 +136,15 @@ class MouseEventsTest : OnCanvasTests { assertEquals(null, event) - val canvas = getCanvas() - - canvas.dispatchEvent(MouseEvent("mouseenter", MouseEventInit(100, 100))) + dispatchEvents(MouseEvent("mouseenter", MouseEventInit(100, 100))) assertEquals(PointerEventType.Enter, event!!.type) assertEquals(null, event!!.button) - canvas.dispatchEvent(MouseEvent("mousemove", MouseEventInit(101, 101, clientX = 101, clientY = 101))) + dispatchEvents(MouseEvent("mousemove", MouseEventInit(101, 101, clientX = 101, clientY = 101))) assertEquals(PointerEventType.Move, event!!.type) assertEquals(null, event!!.button) - canvas.dispatchEvent(MouseEvent("mouseleave", MouseEventInit(0, 0, clientX = 0, clientY = 0))) + dispatchEvents(MouseEvent("mouseleave", MouseEventInit(0, 0, clientX = 0, clientY = 0))) assertEquals(PointerEventType.Exit, event!!.type) assertEquals(null, event!!.button) } diff --git a/compose/ui/ui/src/webTest/kotlin/androidx/compose/ui/window/PreventDefaultTest.kt b/compose/ui/ui/src/webTest/kotlin/androidx/compose/ui/window/PreventDefaultTest.kt new file mode 100644 index 0000000000000..63d69bf568ab1 --- /dev/null +++ b/compose/ui/ui/src/webTest/kotlin/androidx/compose/ui/window/PreventDefaultTest.kt @@ -0,0 +1,76 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.compose.ui.window + +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.material.TextField +import androidx.compose.runtime.SideEffect +import androidx.compose.ui.Modifier +import androidx.compose.ui.OnCanvasTests +import androidx.compose.ui.events.keyDownEvent +import androidx.compose.ui.events.keyDownEventUnprevented +import androidx.compose.ui.focus.FocusRequester +import androidx.compose.ui.focus.focusRequester +import kotlin.test.BeforeTest +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertFalse +import kotlin.test.assertTrue + +class PreventDefaultTest : OnCanvasTests { + + @Test + fun testPreventDefault() { + val fr = FocusRequester() + var changedValue = "" + createComposeWindow { + TextField( + value = "", + onValueChange = { changedValue = it }, + modifier = Modifier.fillMaxSize().focusRequester(fr) + ) + SideEffect { + fr.requestFocus() + } + } + + var stack = mutableListOf() + + getCanvas().addEventListener("keydown", { event -> + stack.add(event.defaultPrevented) + }) + + // dispatchEvent synchronously invokes all the listeners + dispatchEvents(keyDownEvent("c")) + assertEquals(1, stack.size) + assertTrue(stack.last()) + + dispatchEvents(keyDownEventUnprevented()) + assertEquals(2, stack.size) + assertFalse(stack.last()) + + assertEquals(changedValue, "c") + + // copy shortcut should not be prevented (we let browser create a corresponding event) + dispatchEvents(keyDownEvent("c", metaKey = true, ctrlKey = true)) + assertEquals(3, stack.size) + assertFalse(stack.last()) + + assertEquals(changedValue, "c") + + } +} \ No newline at end of file diff --git a/core/core-bundle/src/commonMain/kotlin/androidx.core.bundle/Bundle.kt b/core/core-bundle/src/commonMain/kotlin/androidx/core/bundle/Bundle.kt similarity index 88% rename from core/core-bundle/src/commonMain/kotlin/androidx.core.bundle/Bundle.kt rename to core/core-bundle/src/commonMain/kotlin/androidx/core/bundle/Bundle.kt index a979d0b4c5702..9246d51c6fdd4 100644 --- a/core/core-bundle/src/commonMain/kotlin/androidx.core.bundle/Bundle.kt +++ b/core/core-bundle/src/commonMain/kotlin/androidx/core/bundle/Bundle.kt @@ -41,8 +41,9 @@ expect class Bundle() { fun putDouble(key: String?, value: Double) fun putString(key: String?, value: String?) fun putCharSequence(key: String?, value: CharSequence?) - fun putIntegerArrayList(key: String?, value: ArrayList?) - fun putStringArrayList(key: String?, value: ArrayList?) + fun putBundle(key: String?, value: Bundle?) + fun putIntegerArrayList(key: String?, value: ArrayList?) + fun putStringArrayList(key: String?, value: ArrayList?) fun putBooleanArray(key: String?, value: BooleanArray?) fun putByteArray(key: String?, value: ByteArray?) fun putShortArray(key: String?, value: ShortArray?) @@ -51,9 +52,8 @@ expect class Bundle() { fun putLongArray(key: String?, value: LongArray?) fun putFloatArray(key: String?, value: FloatArray?) fun putDoubleArray(key: String?, value: DoubleArray?) - fun putStringArray(key: String?, value: Array?) - fun putCharSequenceArray(key: String?, value: Array?) - fun putBundle(key: String?, value: Bundle?) + fun putStringArray(key: String?, value: Array?) + fun putCharSequenceArray(key: String?, value: Array?) fun getBoolean(key: String?): Boolean fun getBoolean(key: String?, defaultValue: Boolean): Boolean @@ -75,8 +75,9 @@ expect class Bundle() { fun getString(key: String?, defaultValue: String): String fun getCharSequence(key: String?): CharSequence? fun getCharSequence(key: String?, defaultValue: CharSequence): CharSequence - fun getIntegerArrayList(key: String?): ArrayList? - fun getStringArrayList(key: String?): ArrayList? + fun getBundle(key: String?): Bundle? + fun getIntegerArrayList(key: String?): ArrayList? + fun getStringArrayList(key: String?): ArrayList? fun getBooleanArray(key: String?): BooleanArray? fun getByteArray(key: String?): ByteArray? fun getShortArray(key: String?): ShortArray? @@ -85,9 +86,8 @@ expect class Bundle() { fun getLongArray(key: String?): LongArray? fun getFloatArray(key: String?): FloatArray? fun getDoubleArray(key: String?): DoubleArray? - fun getStringArray(key: String?): Array? - fun getCharSequenceArray(key: String?): Array? - fun getBundle(key: String?): Bundle? + fun getStringArray(key: String?): Array? + fun getCharSequenceArray(key: String?): Array? @Deprecated("Use the type-safe specific APIs depending on the type of the item to be retrieved") operator fun get(key: String?): Any? @@ -95,5 +95,7 @@ expect class Bundle() { /** * Returns a new [Bundle] with the given key/value pairs as elements. + * + * @throws IllegalArgumentException When a value is not a supported type of [Bundle]. */ expect fun bundleOf(vararg pairs: Pair): Bundle diff --git a/core/core-bundle/src/jbMain/kotlin/androidx/core/bundle/Bundle.jb.kt b/core/core-bundle/src/jbMain/kotlin/androidx/core/bundle/Bundle.jb.kt index 1f1b0d447b100..9954b35e697f0 100644 --- a/core/core-bundle/src/jbMain/kotlin/androidx/core/bundle/Bundle.jb.kt +++ b/core/core-bundle/src/jbMain/kotlin/androidx/core/bundle/Bundle.jb.kt @@ -19,19 +19,20 @@ package androidx.core.bundle import kotlin.reflect.KClass @Suppress("ReplaceGetOrSet") -actual class Bundle { - private val mMap: MutableMap - actual constructor() { mMap = LinkedHashMap() } - actual constructor(initialCapacity: Int) { mMap = LinkedHashMap(initialCapacity) } - actual constructor(bundle: Bundle) { mMap = LinkedHashMap(bundle.mMap) } - - actual fun size() = mMap.size - actual fun isEmpty() = mMap.isEmpty() - actual fun clear() = mMap.clear() - actual fun containsKey(key: String?) = mMap.containsKey(key) - actual fun remove(key: String?) { mMap.remove(key) } - actual fun keySet(): Set = mMap.keys - actual fun putAll(bundle: Bundle) { mMap.putAll(bundle.mMap) } +actual class Bundle internal constructor( + private val bundleData: MutableMap +) { + actual constructor() : this(bundleData = LinkedHashMap()) + actual constructor(initialCapacity: Int) : this(bundleData = LinkedHashMap(initialCapacity)) + actual constructor(bundle: Bundle) : this(bundleData = LinkedHashMap(bundle.bundleData)) + + actual fun size(): Int = bundleData.size + actual fun isEmpty(): Boolean = bundleData.isEmpty() + actual fun clear() { bundleData.clear() } + actual fun containsKey(key: String?): Boolean = bundleData.containsKey(key) + actual fun remove(key: String?) { bundleData.remove(key) } + actual fun keySet(): Set = bundleData.keys + actual fun putAll(bundle: Bundle) { bundleData.putAll(bundle.bundleData) } actual fun putBoolean(key: String?, value: Boolean) { setObject(key, value) } actual fun putByte(key: String?, value: Byte) { setObject(key, value) } @@ -43,8 +44,9 @@ actual class Bundle { actual fun putDouble(key: String?, value: Double) { setObject(key, value) } actual fun putString(key: String?, value: String?) { setObject(key, value) } actual fun putCharSequence(key: String?, value: CharSequence?) { setObject(key, value) } - actual fun putIntegerArrayList(key: String?, value: ArrayList?) { setObject(key, value) } - actual fun putStringArrayList(key: String?, value: ArrayList?) { setObject(key, value) } + actual fun putBundle(key: String?, value: Bundle?) { setObject(key, value) } + actual fun putIntegerArrayList(key: String?, value: ArrayList?) { setObject(key, value) } + actual fun putStringArrayList(key: String?, value: ArrayList?) { setObject(key, value) } actual fun putBooleanArray(key: String?, value: BooleanArray?) { setObject(key, value) } actual fun putByteArray(key: String?, value: ByteArray?) { setObject(key, value) } actual fun putShortArray(key: String?, value: ShortArray?) { setObject(key, value) } @@ -53,12 +55,15 @@ actual class Bundle { actual fun putLongArray(key: String?, value: LongArray?) { setObject(key, value) } actual fun putFloatArray(key: String?, value: FloatArray?) { setObject(key, value) } actual fun putDoubleArray(key: String?, value: DoubleArray?) { setObject(key, value) } - actual fun putStringArray(key: String?, value: Array?) { setObject(key, value) } - actual fun putCharSequenceArray(key: String?, value: Array?) { setObject(key, value) } - actual fun putBundle(key: String?, value: Bundle?) { setObject(key, value) } + actual fun putStringArray(key: String?, value: Array?) { setObject(key, value) } + actual fun putCharSequenceArray(key: String?, value: Array?) { setObject(key, value) } - private inline fun setObject(key: String?, value: Any?) { - mMap[key] = value + // Narrowed alternative of Android's [putParcelableArray] + fun putBundleArray(key: String?, value: Array?) { setObject(key, value) } + + @Suppress("NOTHING_TO_INLINE", "KotlinRedundantDiagnosticSuppress") + private inline fun setObject(key: String?, value: T) { + bundleData[key] = value } actual fun getBoolean(key: String?): Boolean = getBoolean(key, defaultValue = false) @@ -84,8 +89,9 @@ actual class Bundle { actual fun getCharSequence(key: String?): CharSequence? = getObject(key) actual fun getCharSequence(key: String?, defaultValue: CharSequence): CharSequence = getCharSequence(key) ?: defaultValue - actual fun getIntegerArrayList(key: String?): ArrayList? = getArrayList(key) - actual fun getStringArrayList(key: String?): ArrayList? = getArrayList(key) + actual fun getBundle(key: String?): Bundle? = getObject(key) + actual fun getIntegerArrayList(key: String?): ArrayList? = getArrayList(key) + actual fun getStringArrayList(key: String?): ArrayList? = getArrayList(key) actual fun getBooleanArray(key: String?): BooleanArray? = getObject(key) actual fun getByteArray(key: String?): ByteArray? = getObject(key) actual fun getShortArray(key: String?): ShortArray? = getObject(key) @@ -94,51 +100,53 @@ actual class Bundle { actual fun getLongArray(key: String?): LongArray? = getObject(key) actual fun getFloatArray(key: String?): FloatArray? = getObject(key) actual fun getDoubleArray(key: String?): DoubleArray? = getObject(key) - actual fun getStringArray(key: String?): Array? = getArray(key) - actual fun getCharSequenceArray(key: String?): Array? = getArray(key) - actual fun getBundle(key: String?): Bundle? = getObject(key) + actual fun getStringArray(key: String?): Array? = getArray(key) + actual fun getCharSequenceArray(key: String?): Array? = getArray(key) + + // Narrowed alternative of Android's [getParcelableArray] + fun getBundleArray(key: String?): Array? = getArray(key) @Deprecated("Use the type-safe specific APIs depending on the type of the item to be retrieved") - actual operator fun get(key: String?): Any? = mMap.get(key) + actual operator fun get(key: String?): Any? = bundleData.get(key) - private inline fun getObject(key: String?): T? { - val o = mMap.get(key) ?: return null + private inline fun getObject(key: String?): T? { + val value = bundleData.get(key) ?: return null return try { - o as T? + value as T? } catch (e: ClassCastException) { - typeWarning(key, o, T::class.canonicalName!!, e) + typeWarning(key, value, T::class.canonicalName!!, e) null } } - private inline fun getObject(key: String?, defaultValue: T): T { - val o = mMap.get(key) ?: return defaultValue + private inline fun getObject(key: String?, defaultValue: T): T { + val value = bundleData.get(key) ?: return defaultValue return try { - o as T + value as T } catch (e: ClassCastException) { - typeWarning(key, o, T::class.canonicalName!!, defaultValue, e) + typeWarning(key, value, T::class.canonicalName!!, defaultValue, e) defaultValue } } @Suppress("UNCHECKED_CAST") - private inline fun getArrayList(key: String?): ArrayList? { - val o = mMap.get(key) ?: return null + private inline fun getArrayList(key: String?): ArrayList? { + val value = bundleData.get(key) ?: return null return try { - o as ArrayList? + value as ArrayList? } catch (e: ClassCastException) { - typeWarning(key, o, "ArrayList<" + T::class.canonicalName!! + ">", e) + typeWarning(key, value, "ArrayList<" + T::class.canonicalName!! + ">", e) null } } @Suppress("UNCHECKED_CAST") - private inline fun getArray(key: String?): Array? { - val o = mMap.get(key) ?: return null + private inline fun getArray(key: String?): Array? { + val value = bundleData.get(key) ?: return null return try { - o as Array? + value as Array? } catch (e: ClassCastException) { - typeWarning(key, o, "Array<" + T::class.canonicalName!! + ">", e) + typeWarning(key, value, "Array<" + T::class.canonicalName!! + ">", e) null } } @@ -172,6 +180,8 @@ actual class Bundle { private fun typeWarning(key: String?, value: Any?, className: String, e: RuntimeException) { typeWarning(key, value, className, "", e) } + + override fun toString(): String = "$bundleData" } actual fun bundleOf(vararg pairs: Pair): Bundle = Bundle(pairs.size).apply { @@ -191,10 +201,23 @@ actual fun bundleOf(vararg pairs: Pair): Bundle = Bundle(pairs.siz // References is Bundle -> putBundle(key, value) + is String -> putString(key, value) is CharSequence -> putCharSequence(key, value) // Scalar arrays + is BooleanArray -> putBooleanArray(key, value) is ByteArray -> putByteArray(key, value) + is CharArray -> putCharArray(key, value) + is DoubleArray -> putDoubleArray(key, value) + is FloatArray -> putFloatArray(key, value) + is IntArray -> putIntArray(key, value) + is LongArray -> putLongArray(key, value) + is ShortArray -> putShortArray(key, value) + + else -> { + val valueType = value::class.canonicalName + throw IllegalArgumentException("Illegal value type $valueType for key \"$key\"") + } } } } diff --git a/gradle.properties b/gradle.properties index 0568bd0e7d3e6..e6cc2276e2530 100644 --- a/gradle.properties +++ b/gradle.properties @@ -101,22 +101,22 @@ jetbrains.compose.compiler.version=1.5.14.1-beta02 # To know which version, should be used, see compose/frameworks/support/libraryversions.toml artifactRedirecting.publication=true # Look for `COMPOSE` in libraryversions.toml -artifactRedirecting.androidx.compose.version=1.7.0-beta06 +artifactRedirecting.androidx.compose.version=1.7.0-rc01 # Look for `COMPOSE_MATERIAL3` in libraryversions.toml -artifactRedirecting.androidx.compose.material3.version=1.3.0-beta05 -artifactRedirecting.androidx.compose.foundation.version=1.7.0-beta06 -artifactRedirecting.androidx.compose.material.version=1.7.0-beta06 +artifactRedirecting.androidx.compose.material3.version=1.3.0-rc01 +artifactRedirecting.androidx.compose.foundation.version=1.7.0-rc01 +artifactRedirecting.androidx.compose.material.version=1.7.0-rc01 # The latest version is not published yet: https://mvnrepository.com/artifact/androidx.compose.material/material-navigation artifactRedirecting.androidx.compose.material.material-navigation.version=1.7.0-beta01 # Look for `COMPOSE_MATERIAL3_COMMON` in libraryversions.toml artifactRedirecting.androidx.compose.material3.common.version=1.0.0-alpha01 # Look for `COMPOSE_MATERIAL3_ADAPTIVE` in libraryversions.toml -artifactRedirecting.androidx.compose.material3.adaptive.version=1.0.0-beta04 +artifactRedirecting.androidx.compose.material3.adaptive.version=1.0.0-rc01 # We use artifactRedirecting not only for Compose libs: artifactRedirecting.androidx.collection.version=1.4.0 artifactRedirecting.androidx.annotation.version=1.8.0 -artifactRedirecting.androidx.lifecycle.version=2.8.0 -artifactRedirecting.androidx.navigation.version=2.8.0-beta05 +artifactRedirecting.androidx.lifecycle.version=2.8.4 +artifactRedirecting.androidx.navigation.version=2.8.0-rc01 artifactRedirecting.androidx.savedstate.version=1.2.1 artifactRedirecting.androidx.window.core.version=1.3.0 diff --git a/libraryversions.toml b/libraryversions.toml index 49fda2c7cc0ea..4b32a5505e54b 100644 --- a/libraryversions.toml +++ b/libraryversions.toml @@ -20,10 +20,10 @@ CAMERA_TESTING = "1.0.0-alpha01" CARDVIEW = "1.1.0-alpha01" CAR_APP = "1.7.0-alpha01" COLLECTION = "1.4.0" -COMPOSE = "1.7.0-beta06" +COMPOSE = "1.7.0-rc01" COMPOSE_COMPILER = "1.5.4" -COMPOSE_MATERIAL3 = "1.3.0-beta05" -COMPOSE_MATERIAL3_ADAPTIVE = "1.0.0-beta04" +COMPOSE_MATERIAL3 = "1.3.0-rc01" +COMPOSE_MATERIAL3_ADAPTIVE = "1.0.0-rc01" COMPOSE_MATERIAL3_ADAPTIVE_NAVIGATION_SUITE = "1.0.0-alpha07" COMPOSE_MATERIAL3_COMMON = "1.0.0-alpha01" COMPOSE_RUNTIME_TRACING = "1.0.0-alpha05" @@ -91,14 +91,14 @@ LEANBACK_PREFERENCE = "1.2.0-alpha03" LEANBACK_TAB = "1.1.0-beta01" LEGACY = "1.1.0-alpha01" LIBYUV = "0.1.0-dev01" -LIFECYCLE = "2.8.0" +LIFECYCLE = "2.8.4" LIFECYCLE_EXTENSIONS = "2.2.0" LOADER = "1.2.0-alpha01" MEDIA = "1.7.0-rc01" MEDIA2 = "1.3.0-alpha01" MEDIAROUTER = "1.7.0-alpha01" METRICS = "1.0.0-alpha05" -NAVIGATION = "2.8.0-beta05" +NAVIGATION = "2.8.0-rc01" PAGING = "3.3.0-alpha03" PALETTE = "1.1.0-alpha01" PERCENTLAYOUT = "1.1.0-alpha01" diff --git a/lifecycle/lifecycle-livedata/src/main/java/androidx/lifecycle/FlowLiveData.kt b/lifecycle/lifecycle-livedata/src/main/java/androidx/lifecycle/FlowLiveData.kt index 51e541090c07e..08036d026db6d 100644 --- a/lifecycle/lifecycle-livedata/src/main/java/androidx/lifecycle/FlowLiveData.kt +++ b/lifecycle/lifecycle-livedata/src/main/java/androidx/lifecycle/FlowLiveData.kt @@ -109,6 +109,7 @@ public fun LiveData.asFlow(): Flow = callbackFlow { } try { + withContext(Dispatchers.Main.immediate) { observeForever(observer) } awaitCancellation() } finally { withContext(Dispatchers.Main.immediate + NonCancellable) { diff --git a/lifecycle/lifecycle-livedata/src/test/java/androidx/lifecycle/LiveDataAsFlowTest.kt b/lifecycle/lifecycle-livedata/src/test/java/androidx/lifecycle/LiveDataAsFlowTest.kt index 53806ab865c85..f6d8aa8edc11e 100644 --- a/lifecycle/lifecycle-livedata/src/test/java/androidx/lifecycle/LiveDataAsFlowTest.kt +++ b/lifecycle/lifecycle-livedata/src/test/java/androidx/lifecycle/LiveDataAsFlowTest.kt @@ -54,6 +54,45 @@ class LiveDataAsFlowTest { assertThat(ld.hasActiveObservers()).isFalse() } + @Test + fun checkCancellationFromInitialValue() { + val ld = MutableLiveData() + ld.value = 1 + val flow = ld.asFlow() + // check that flow creation didn't make livedata active + assertThat(ld.hasActiveObservers()).isFalse() + // Collect only a single value to get the initial value and cancel immediately + val job = testScope.launch { assertThat(flow.take(1).toList()).isEqualTo(listOf(1)) } + scopes.triggerAllActions() + mainScope.launch { + // This should never be received by the take(1) + ld.value = 2 + } + scopes.triggerAllActions() + // Verify that the job completing removes the observer + assertThat(job.isCompleted).isTrue() + assertThat(ld.hasActiveObservers()).isFalse() + } + + @Test + fun checkCancellationAfterJobCompletes() { + val ld = MutableLiveData() + ld.value = 1 + val flow = ld.asFlow() + // check that flow creation didn't make livedata active + assertThat(ld.hasActiveObservers()).isFalse() + val job = testScope.launch { assertThat(flow.take(2).toList()).isEqualTo(listOf(1, 2)) } + scopes.triggerAllActions() + mainScope.launch { + // Receiving this should complete the job and remove the observer + ld.value = 2 + } + scopes.triggerAllActions() + // Verify that the job completing removes the observer + assertThat(job.isCompleted).isTrue() + assertThat(ld.hasActiveObservers()).isFalse() + } + @Test fun dispatchMultiple() { val ld = MutableLiveData() diff --git a/lifecycle/lifecycle-runtime-compose/build.gradle b/lifecycle/lifecycle-runtime-compose/build.gradle index 670e6cd29bcb9..f0ac5bfcc4b34 100644 --- a/lifecycle/lifecycle-runtime-compose/build.gradle +++ b/lifecycle/lifecycle-runtime-compose/build.gradle @@ -68,6 +68,20 @@ kotlin { implementation(libs.kotlinStdlib) } } + + nonAndroidMain.dependsOn(commonMain) + desktopMain.dependsOn(nonAndroidMain) + nativeMain.dependsOn(nonAndroidMain) + jsMain.dependsOn(nonAndroidMain) + wasmJsMain.dependsOn(nonAndroidMain) + + targets.all { target -> + if (target.platformType == org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType.native) { + target.compilations["main"].defaultSourceSet { + dependsOn(nativeMain) + } + } + } } } diff --git a/lifecycle/lifecycle-runtime-compose/proguard-rules.pro b/lifecycle/lifecycle-runtime-compose/proguard-rules.pro new file mode 100644 index 0000000000000..437d1a0ba4efe --- /dev/null +++ b/lifecycle/lifecycle-runtime-compose/proguard-rules.pro @@ -0,0 +1,18 @@ +# Workaround for https://issuetracker.google.com/issues/346808608 +# +# `androidx.lifecycle.compose.LocalLifecycleOwner` will reflectively lookup for +# `androidx.compose.ui.platform.LocalLifecycleOwner` to ensure backward compatibility +# when using Lifecycle 2.8+ with Compose 1.6. +# +# We need to keep the getter if the code using this is included. +# +# We need to suppress `ShrinkerUnresolvedReference` because the `LocalComposition` is in a +# different module. +# +#noinspection ShrinkerUnresolvedReference +-if public class androidx.compose.ui.platform.AndroidCompositionLocals_androidKt { + public static *** getLocalLifecycleOwner(); +} +-keep public class androidx.compose.ui.platform.AndroidCompositionLocals_androidKt { + public static *** getLocalLifecycleOwner(); +} diff --git a/lifecycle/lifecycle-runtime-compose/src/androidInstrumentedTest/kotlin/androidx/lifecycle/compose/CollectAsStateWithLifecycleTests.kt b/lifecycle/lifecycle-runtime-compose/src/androidInstrumentedTest/kotlin/androidx/lifecycle/compose/CollectAsStateWithLifecycleTests.kt index e9387cd1bbed0..3ade16ca06cb9 100644 --- a/lifecycle/lifecycle-runtime-compose/src/androidInstrumentedTest/kotlin/androidx/lifecycle/compose/CollectAsStateWithLifecycleTests.kt +++ b/lifecycle/lifecycle-runtime-compose/src/androidInstrumentedTest/kotlin/androidx/lifecycle/compose/CollectAsStateWithLifecycleTests.kt @@ -16,99 +16,99 @@ package androidx.lifecycle.compose -import androidx.compose.ui.test.junit4.createComposeRule +import androidx.compose.runtime.Composable +import androidx.compose.runtime.CompositionLocalProvider +import androidx.compose.ui.test.ExperimentalTestApi +import androidx.compose.ui.test.runComposeUiTest +import androidx.kruth.assertThat import androidx.lifecycle.Lifecycle import androidx.lifecycle.testing.TestLifecycleOwner -import androidx.test.ext.junit.runners.AndroidJUnit4 -import androidx.test.filters.MediumTest -import com.google.common.truth.Truth.assertThat +import kotlin.test.Test import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow -import kotlinx.coroutines.runBlocking -import org.junit.Rule -import org.junit.Test -import org.junit.runner.RunWith -@MediumTest -@RunWith(AndroidJUnit4::class) +@OptIn(ExperimentalTestApi::class) class CollectAsStateWithLifecycleTests { - @get:Rule - val rule = createComposeRule() - @Test - fun test_flowState_getsInitialValue() { + fun test_flowState_getsInitialValue() = runComposeUiTest { val _sharedFlow = MutableSharedFlow() val flow: Flow = _sharedFlow var realValue: String? = null - rule.setContent { - realValue = flow.collectAsStateWithLifecycle("0").value + setContent { + withLifecycleOwner { + realValue = flow.collectAsStateWithLifecycle("0").value + } } - rule.runOnIdle { + runOnIdle { assertThat(realValue).isEqualTo("0") } } @Test - fun test_stateFlowState_getsInitialValue() { + fun test_stateFlowState_getsInitialValue() = runComposeUiTest { val stateFlow: StateFlow = MutableStateFlow("0") var realValue: String? = null - rule.setContent { - realValue = stateFlow.collectAsStateWithLifecycle().value + setContent { + withLifecycleOwner { + realValue = stateFlow.collectAsStateWithLifecycle().value + } } - rule.runOnIdle { + runOnIdle { assertThat(realValue).isEqualTo("0") } } @Test - fun test_flowState_getsSubsequentFlowEmissions() { - val _sharedFlow = MutableSharedFlow() + fun test_flowState_getsSubsequentFlowEmissions() = runComposeUiTest { + val _sharedFlow = MutableSharedFlow(extraBufferCapacity = 1) val flow: Flow = _sharedFlow var realValue: String? = null - rule.setContent { - realValue = flow.collectAsStateWithLifecycle("0").value + setContent { + withLifecycleOwner(Lifecycle.State.RESUMED) { + realValue = flow.collectAsStateWithLifecycle("0").value + } } - runBlocking { - _sharedFlow.emit("1") - } - rule.runOnIdle { + assertThat(_sharedFlow.tryEmit("1")).isTrue() + runOnIdle { assertThat(realValue).isEqualTo("1") } } @Test - fun test_stateFlowState_getsSubsequentFlowEmissions() { + fun test_stateFlowState_getsSubsequentFlowEmissions() = runComposeUiTest { val stateFlow = MutableStateFlow("0") var realValue: String? = null - rule.setContent { - realValue = stateFlow.collectAsStateWithLifecycle().value + setContent { + withLifecycleOwner(Lifecycle.State.RESUMED) { + realValue = stateFlow.collectAsStateWithLifecycle().value + } } stateFlow.value = "1" - rule.runOnIdle { + runOnIdle { assertThat(realValue).isEqualTo("1") } } @Test - fun test_flowState_doesNotGetEmissionsBelowMinState() { + fun test_flowState_doesNotGetEmissionsBelowMinState() = runComposeUiTest { val lifecycleOwner = TestLifecycleOwner(Lifecycle.State.CREATED) val _stateFlow = MutableStateFlow("initialValue") val flow: Flow = _stateFlow var realValue: String? = null - rule.setContent { + setContent { realValue = flow.collectAsStateWithLifecycle( initialValue = "0", lifecycle = lifecycleOwner.lifecycle @@ -117,18 +117,18 @@ class CollectAsStateWithLifecycleTests { _stateFlow.value = "1" _stateFlow.value = "2" - rule.runOnIdle { + runOnIdle { assertThat(realValue).isEqualTo("0") } } @Test - fun test_stateFlowState_doesNotGetEmissionsBelowMinState() { + fun test_stateFlowState_doesNotGetEmissionsBelowMinState() = runComposeUiTest { val lifecycleOwner = TestLifecycleOwner(Lifecycle.State.CREATED) val stateFlow = MutableStateFlow("0") var realValue: String? = null - rule.setContent { + setContent { realValue = stateFlow.collectAsStateWithLifecycle( lifecycle = lifecycleOwner.lifecycle ).value @@ -137,78 +137,74 @@ class CollectAsStateWithLifecycleTests { stateFlow.value = "1" stateFlow.value = "2" - rule.runOnIdle { + runOnIdle { assertThat(realValue).isEqualTo("0") } } @Test - fun test_flowState_getsEmissionsWhenAboveMinState() { + fun test_flowState_getsEmissionsWhenAboveMinState() = runComposeUiTest { val lifecycleOwner = TestLifecycleOwner(Lifecycle.State.CREATED) - val _sharedFlow = MutableSharedFlow() + val _sharedFlow = MutableSharedFlow(extraBufferCapacity = 2) val flow: Flow = _sharedFlow var realValue: String? = null - rule.setContent { + setContent { realValue = flow.collectAsStateWithLifecycle( initialValue = "0", lifecycle = lifecycleOwner.lifecycle ).value } - runBlocking { - _sharedFlow.emit("1") - } - rule.runOnIdle { + assertThat(_sharedFlow.tryEmit("1")).isTrue() + runOnIdle { assertThat(realValue).isEqualTo("0") } lifecycleOwner.currentState = Lifecycle.State.RESUMED - runBlocking { - _sharedFlow.emit("2") - } - rule.runOnIdle { + assertThat(_sharedFlow.tryEmit("2")) + runOnIdle { assertThat(realValue).isEqualTo("2") } } @Test - fun test_stateFlowState_getsEmissionsWhenAboveMinState() { + fun test_stateFlowState_getsEmissionsWhenAboveMinState() = runComposeUiTest { val lifecycleOwner = TestLifecycleOwner(Lifecycle.State.RESUMED) val stateFlow = MutableStateFlow("0") var realValue: String? = null - rule.setContent { + setContent { realValue = stateFlow.collectAsStateWithLifecycle( lifecycle = lifecycleOwner.lifecycle ).value } - rule.runOnIdle { + runOnIdle { assertThat(realValue).isEqualTo("0") } stateFlow.value = "1" stateFlow.value = "2" - rule.runOnIdle { + runOnIdle { assertThat(realValue).isEqualTo("2") } } @Test - fun test_stateFlowState_getsLastEmissionWhenLifecycleIsAboveMin() { + fun test_stateFlowState_getsLastEmissionWhenLifecycleIsAboveMin() = runComposeUiTest { val lifecycleOwner = TestLifecycleOwner(Lifecycle.State.CREATED) val stateFlow = MutableStateFlow("0") var realValue: String? = null - rule.setContent { + setContent { realValue = stateFlow.collectAsStateWithLifecycle( lifecycle = lifecycleOwner.lifecycle ).value } - rule.runOnIdle { + runOnIdle { assertThat(realValue).isEqualTo("0") } @@ -216,8 +212,17 @@ class CollectAsStateWithLifecycleTests { stateFlow.value = "2" lifecycleOwner.currentState = Lifecycle.State.RESUMED - rule.runOnIdle { + runOnIdle { assertThat(realValue).isEqualTo("2") } } + + @Composable + private fun withLifecycleOwner( + state: Lifecycle.State = Lifecycle.State.CREATED, + content: @Composable () -> Unit + ) { + val lifecycleOwner = TestLifecycleOwner(state) + CompositionLocalProvider(LocalLifecycleOwner provides lifecycleOwner, content = content) + } } diff --git a/lifecycle/lifecycle-runtime-compose/src/androidInstrumentedTest/kotlin/androidx/lifecycle/compose/DropUnlessLifecycleTest.kt b/lifecycle/lifecycle-runtime-compose/src/androidInstrumentedTest/kotlin/androidx/lifecycle/compose/DropUnlessLifecycleTest.kt index fcedadb3d4cf7..c045baeeaef3a 100644 --- a/lifecycle/lifecycle-runtime-compose/src/androidInstrumentedTest/kotlin/androidx/lifecycle/compose/DropUnlessLifecycleTest.kt +++ b/lifecycle/lifecycle-runtime-compose/src/androidInstrumentedTest/kotlin/androidx/lifecycle/compose/DropUnlessLifecycleTest.kt @@ -17,22 +17,15 @@ package androidx.lifecycle.compose import androidx.compose.runtime.CompositionLocalProvider -import androidx.compose.ui.test.junit4.createComposeRule +import androidx.compose.ui.test.ExperimentalTestApi +import androidx.compose.ui.test.runComposeUiTest +import androidx.kruth.assertThat import androidx.lifecycle.Lifecycle.State import androidx.lifecycle.testing.TestLifecycleOwner -import androidx.test.ext.junit.runners.AndroidJUnit4 -import androidx.test.filters.MediumTest -import com.google.common.truth.Truth.assertThat -import org.junit.Rule -import org.junit.Test -import org.junit.runner.RunWith - -@MediumTest -@RunWith(AndroidJUnit4::class) -class DropUnlessLifecycleTest { +import kotlin.test.Test - @get:Rule - val composeTestRule = createComposeRule() +@OptIn(ExperimentalTestApi::class) +class DropUnlessLifecycleTest { //region dropUnlessStarted @Test @@ -60,14 +53,17 @@ class DropUnlessLifecycleTest { testDropUnlessStarted(currentLifecycleState = State.DESTROYED, shouldInvoke = false) } - private fun testDropUnlessStarted(currentLifecycleState: State, shouldInvoke: Boolean) { + private fun testDropUnlessStarted( + currentLifecycleState: State, + shouldInvoke: Boolean + ) = runComposeUiTest { val lifecycleOwner = TestLifecycleOwner(State.CREATED).apply { currentState = currentLifecycleState } var hasBeenInvoked = false - composeTestRule.waitForIdle() - composeTestRule.setContent { + waitForIdle() + setContent { CompositionLocalProvider(LocalLifecycleOwner provides lifecycleOwner) { val underTest = dropUnlessStarted { hasBeenInvoked = true @@ -76,7 +72,7 @@ class DropUnlessLifecycleTest { } } - composeTestRule.runOnIdle { + runOnIdle { assertThat(hasBeenInvoked).isEqualTo(shouldInvoke) } } @@ -108,14 +104,17 @@ class DropUnlessLifecycleTest { testDropUnlessResumed(currentLifecycleState = State.DESTROYED, shouldInvoke = false) } - private fun testDropUnlessResumed(currentLifecycleState: State, shouldInvoke: Boolean) { + private fun testDropUnlessResumed( + currentLifecycleState: State, + shouldInvoke: Boolean + ) = runComposeUiTest { val lifecycleOwner = TestLifecycleOwner(State.CREATED).apply { currentState = currentLifecycleState } var hasBeenInvoked = false - composeTestRule.waitForIdle() - composeTestRule.setContent { + waitForIdle() + setContent { CompositionLocalProvider(LocalLifecycleOwner provides lifecycleOwner) { val underTest = dropUnlessResumed { hasBeenInvoked = true @@ -124,7 +123,7 @@ class DropUnlessLifecycleTest { } } - composeTestRule.runOnIdle { + runOnIdle { assertThat(hasBeenInvoked).isEqualTo(shouldInvoke) } } diff --git a/lifecycle/lifecycle-runtime-compose/src/androidInstrumentedTest/kotlin/androidx/lifecycle/compose/LifecycleEffectTest.kt b/lifecycle/lifecycle-runtime-compose/src/androidInstrumentedTest/kotlin/androidx/lifecycle/compose/LifecycleEffectTest.kt index b51ec62dc6ed2..bd2c77e596d1f 100644 --- a/lifecycle/lifecycle-runtime-compose/src/androidInstrumentedTest/kotlin/androidx/lifecycle/compose/LifecycleEffectTest.kt +++ b/lifecycle/lifecycle-runtime-compose/src/androidInstrumentedTest/kotlin/androidx/lifecycle/compose/LifecycleEffectTest.kt @@ -18,144 +18,186 @@ package androidx.lifecycle.compose import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.MutableState +import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember -import androidx.compose.ui.test.junit4.createComposeRule +import androidx.compose.runtime.setValue +import androidx.compose.ui.test.ExperimentalTestApi +import androidx.compose.ui.test.runComposeUiTest +import androidx.kruth.assertThat +import androidx.kruth.assertWithMessage import androidx.lifecycle.Lifecycle import androidx.lifecycle.testing.TestLifecycleOwner -import androidx.test.ext.junit.runners.AndroidJUnit4 -import androidx.test.filters.LargeTest -import androidx.test.internal.runner.junit4.statement.UiThreadStatement.runOnUiThread -import com.google.common.truth.Truth.assertThat -import com.google.common.truth.Truth.assertWithMessage -import org.junit.Before -import org.junit.Rule -import org.junit.Test -import org.junit.runner.RunWith - -@LargeTest -@OptIn(kotlinx.coroutines.ExperimentalCoroutinesApi::class) -@RunWith(AndroidJUnit4::class) +import kotlin.test.BeforeTest +import kotlin.test.Test + +@OptIn(ExperimentalTestApi::class) class LifecycleEffectTest { private lateinit var lifecycleOwner: TestLifecycleOwner - @get:Rule - val composeTestRule = createComposeRule() - - @Before + @BeforeTest fun setup() { lifecycleOwner = TestLifecycleOwner() } @Test - fun lifecycleEventEffectTest_noEvent() { + fun lifecycleEventEffectTest_noEvent() = runComposeUiTest { var stopCount = 0 - composeTestRule.waitForIdle() - composeTestRule.setContent { + waitForIdle() + setContent { CompositionLocalProvider(LocalLifecycleOwner provides lifecycleOwner) { - LifecycleEventEffect(Lifecycle.Event.ON_STOP) { - stopCount++ - } + LifecycleEventEffect(Lifecycle.Event.ON_STOP) { stopCount++ } } } - composeTestRule.runOnIdle { - assertWithMessage("Lifecycle should not have been stopped") - .that(stopCount) - .isEqualTo(0) + runOnIdle { + assertWithMessage("Lifecycle should not have been stopped").that(stopCount).isEqualTo(0) } } @Test - fun lifecycleEventEffectTest_localLifecycleOwner() { + fun lifecycleEventEffectTest_localLifecycleOwner() = runComposeUiTest { val expectedEvent = Lifecycle.Event.ON_STOP var stopCount = 0 - composeTestRule.waitForIdle() - composeTestRule.setContent { + waitForIdle() + setContent { CompositionLocalProvider(LocalLifecycleOwner provides lifecycleOwner) { - LifecycleEventEffect(expectedEvent) { - stopCount++ - } + LifecycleEventEffect(expectedEvent) { stopCount++ } } } - composeTestRule.runOnIdle { + runOnIdle { lifecycleOwner.handleLifecycleEvent(expectedEvent) - assertWithMessage("Lifecycle should have been stopped") - .that(stopCount) - .isEqualTo(1) + assertWithMessage("Lifecycle should have been stopped").that(stopCount).isEqualTo(1) } } @Test - fun lifecycleEventEffectTest_customLifecycleOwner() { + fun lifecycleEventEffectTest_customLifecycleOwner() = runComposeUiTest { val expectedEvent = Lifecycle.Event.ON_STOP var stopCount = 0 - composeTestRule.waitForIdle() - composeTestRule.setContent { - LifecycleEventEffect(expectedEvent, lifecycleOwner) { - stopCount++ + waitForIdle() + setContent { LifecycleEventEffect(expectedEvent, lifecycleOwner) { stopCount++ } } + + runOnIdle { + lifecycleOwner.handleLifecycleEvent(expectedEvent) + assertWithMessage("Lifecycle should have been stopped").that(stopCount).isEqualTo(1) + } + } + + @Test + fun lifecycleEventEffectTest_onPause_beforeOnDispose_isIdempotent() = runComposeUiTest { + lifecycleOwner = TestLifecycleOwner(Lifecycle.State.INITIALIZED) + + var visible by mutableStateOf(true) + var stopCount = 0 + + waitForIdle() + setContent { + if (visible) { + LifecycleEventEffect(Lifecycle.Event.ON_PAUSE, lifecycleOwner) { stopCount++ } } } - composeTestRule.runOnIdle { - lifecycleOwner.handleLifecycleEvent(expectedEvent) - assertWithMessage("Lifecycle should have been stopped") - .that(stopCount) - .isEqualTo(1) + runOnIdle { + lifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_RESUME) + lifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_PAUSE) + visible = false } + + runOnIdle { assertThat(stopCount).isEqualTo(1) } } @Test - fun lifecycleStartEffectTest() { + fun lifecycleEventEffectTest_onDestroy_beforeOnDispose_isIdempotent() = runComposeUiTest { + lifecycleOwner = TestLifecycleOwner(Lifecycle.State.INITIALIZED) + + var visible by mutableStateOf(true) + var stopCount = 0 + + waitForIdle() + setContent { + if (visible) { + LifecycleEventEffect(Lifecycle.Event.ON_PAUSE, lifecycleOwner) { stopCount++ } + } + } + + runOnIdle { + lifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_RESUME) + lifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_DESTROY) + visible = false + } + + runOnIdle { assertThat(stopCount).isEqualTo(1) } + } + + @Test + fun lifecycleEventEffectTest_onDispose_beforeOnDestroy_isIdempotent() = runComposeUiTest { + lifecycleOwner = TestLifecycleOwner(Lifecycle.State.INITIALIZED) + + var visible by mutableStateOf(true) + var stopCount = 0 + + waitForIdle() + setContent { + if (visible) { + LifecycleEventEffect(Lifecycle.Event.ON_PAUSE, lifecycleOwner) { stopCount++ } + } + } + + runOnIdle { + lifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_RESUME) + visible = false + lifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_DESTROY) + } + + runOnIdle { assertThat(stopCount).isEqualTo(1) } + } + + @Test + fun lifecycleStartEffectTest() = runComposeUiTest { lifecycleOwner = TestLifecycleOwner(Lifecycle.State.INITIALIZED) var startCount = 0 var stopCount = 0 - composeTestRule.waitForIdle() - composeTestRule.setContent { + waitForIdle() + setContent { CompositionLocalProvider(LocalLifecycleOwner provides lifecycleOwner) { LifecycleStartEffect(key1 = null) { startCount++ - onStopOrDispose { - stopCount++ - } + onStopOrDispose { stopCount++ } } } } - composeTestRule.runOnIdle { + runOnIdle { assertWithMessage("Lifecycle should not be started (or stopped)") .that(startCount) .isEqualTo(0) lifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_START) - assertWithMessage("Lifecycle should have been started") - .that(startCount) - .isEqualTo(1) + assertWithMessage("Lifecycle should have been started").that(startCount).isEqualTo(1) lifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_STOP) - assertWithMessage("Lifecycle should have been stopped") - .that(stopCount) - .isEqualTo(1) + assertWithMessage("Lifecycle should have been stopped").that(stopCount).isEqualTo(1) } } @Test - fun lifecycleStartEffectTest_disposal() { + fun lifecycleStartEffectTest_disposal() = runComposeUiTest { lifecycleOwner = TestLifecycleOwner(Lifecycle.State.INITIALIZED) var startCount = 0 var stopCount = 0 var disposalCount = 0 lateinit var state: MutableState - composeTestRule.waitForIdle() - composeTestRule.setContent { + waitForIdle() + setContent { CompositionLocalProvider(LocalLifecycleOwner provides lifecycleOwner) { state = remember { mutableStateOf(true) } if (state.value) { @@ -174,15 +216,13 @@ class LifecycleEffectTest { } } - composeTestRule.runOnIdle { + runOnIdle { assertWithMessage("Lifecycle should not yet be started (or stopped)") .that(startCount) .isEqualTo(0) lifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_START) - assertWithMessage("Lifecycle should have been started") - .that(startCount) - .isEqualTo(1) + assertWithMessage("Lifecycle should have been started").that(startCount).isEqualTo(1) } runOnUiThread { @@ -190,14 +230,12 @@ class LifecycleEffectTest { state.value = false } - composeTestRule.runOnIdle { + runOnIdle { assertWithMessage("ON_START effect work should have been cleaned up") .that(disposalCount) .isEqualTo(1) - assertWithMessage("Lifecycle should not have been stopped") - .that(stopCount) - .isEqualTo(0) + assertWithMessage("Lifecycle should not have been stopped").that(stopCount).isEqualTo(0) assertWithMessage("Lifecycle should not have been re-started") .that(startCount) @@ -206,15 +244,15 @@ class LifecycleEffectTest { } @Test - fun lifecycleStartEffectTest_disposal_onKeyChange() { + fun lifecycleStartEffectTest_disposal_onKeyChange() = runComposeUiTest { lifecycleOwner = TestLifecycleOwner(Lifecycle.State.INITIALIZED) val key = mutableStateOf(true) var startCount = 0 var stopCount = 0 var disposalCount = 0 - composeTestRule.waitForIdle() - composeTestRule.setContent { + waitForIdle() + setContent { CompositionLocalProvider(LocalLifecycleOwner provides lifecycleOwner) { LifecycleStartEffect(key.value) { startCount++ @@ -230,15 +268,13 @@ class LifecycleEffectTest { } } - composeTestRule.runOnIdle { + runOnIdle { assertWithMessage("Lifecycle should not yet be started (or stopped)") .that(startCount) .isEqualTo(0) lifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_START) - assertWithMessage("Lifecycle should have been started") - .that(startCount) - .isEqualTo(1) + assertWithMessage("Lifecycle should have been started").that(startCount).isEqualTo(1) } runOnUiThread { @@ -246,14 +282,12 @@ class LifecycleEffectTest { key.value = false } - composeTestRule.runOnIdle { + runOnIdle { assertWithMessage("ON_START effect work should have been cleaned up") .that(disposalCount) .isEqualTo(1) - assertWithMessage("Lifecycle should have been re-started") - .that(startCount) - .isEqualTo(2) + assertWithMessage("Lifecycle should have been re-started").that(startCount).isEqualTo(2) assertWithMessage("Lifecycle should never have been stopped (only disposed)") .that(stopCount) @@ -262,27 +296,27 @@ class LifecycleEffectTest { } @Test - fun lifecycleStartEffectTest_disposal_onLifecycleOwner() { + fun lifecycleStartEffectTest_disposal_onLifecycleOwner() = runComposeUiTest { val secondLifecycleOwner = TestLifecycleOwner() val ownerToUse = mutableStateOf("first") val startedLifecycles = mutableListOf() val stoppedLifecycles = mutableListOf() - composeTestRule.waitForIdle() - composeTestRule.setContent { - CompositionLocalProvider(LocalLifecycleOwner provides - if (ownerToUse.value == "first") lifecycleOwner else secondLifecycleOwner) { + waitForIdle() + setContent { + CompositionLocalProvider( + LocalLifecycleOwner provides + if (ownerToUse.value == "first") lifecycleOwner else secondLifecycleOwner + ) { LifecycleStartEffect(key1 = null) { startedLifecycles += lifecycle - onStopOrDispose { - stoppedLifecycles += lifecycle - } + onStopOrDispose { stoppedLifecycles += lifecycle } } } } - composeTestRule.runOnIdle { + runOnIdle { assertWithMessage("Lifecycle should be started") .that(startedLifecycles) .containsExactly(lifecycleOwner.lifecycle) @@ -290,7 +324,7 @@ class LifecycleEffectTest { ownerToUse.value = "second" } - composeTestRule.runOnIdle { + runOnIdle { assertWithMessage("Swapped out LifecycleOwner should be stopped") .that(stoppedLifecycles) .containsExactly(lifecycleOwner.lifecycle) @@ -303,112 +337,171 @@ class LifecycleEffectTest { } @Test - fun lifecycleStartEffectTest_effectsLambdaUpdate() { + fun lifecycleStartEffectTest_effectsLambdaUpdate() = runComposeUiTest { lifecycleOwner = TestLifecycleOwner(Lifecycle.State.INITIALIZED) val state = mutableStateOf("default") - composeTestRule.waitForIdle() - composeTestRule.setContent { + waitForIdle() + setContent { CompositionLocalProvider(LocalLifecycleOwner provides lifecycleOwner) { LifecycleStartEffect(key1 = null) { state.value += " started" - onStopOrDispose { - state.value += " disposed" - } + onStopOrDispose { state.value += " disposed" } } } } - runOnUiThread { - state.value = "updated" - } + runOnUiThread { state.value = "updated" } - composeTestRule.runOnIdle { + runOnIdle { lifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_START) lifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_CREATE) - assertThat(state.value) - .isEqualTo("updated started disposed") + assertThat(state.value).isEqualTo("updated started disposed") } } @Test - fun lifecycleStartEffectTest_effectsLambdaAndKeyChange() { + fun lifecycleStartEffectTest_effectsLambdaAndKeyChange() = runComposeUiTest { lifecycleOwner = TestLifecycleOwner(Lifecycle.State.INITIALIZED) var state = mutableStateOf("default") - composeTestRule.waitForIdle() - composeTestRule.setContent { + waitForIdle() + setContent { CompositionLocalProvider(LocalLifecycleOwner provides lifecycleOwner) { LifecycleStartEffect(key1 = state) { state.value += " started" - onStopOrDispose { - state.value += " disposed" - } + onStopOrDispose { state.value += " disposed" } } } } - runOnUiThread { - state = mutableStateOf("changed") - } + runOnUiThread { state = mutableStateOf("changed") } - composeTestRule.runOnIdle { + runOnIdle { lifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_START) lifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_CREATE) - assertThat(state.value) - .isEqualTo("changed started disposed") + assertThat(state.value).isEqualTo("changed started disposed") + } + } + + @Test + fun lifecycleStartEffect_onStop_beforeOnDispose_isIdempotent() = runComposeUiTest { + lifecycleOwner = TestLifecycleOwner(Lifecycle.State.INITIALIZED) + + var visible by mutableStateOf(true) + var stopCount = 0 + + waitForIdle() + setContent { + CompositionLocalProvider(LocalLifecycleOwner provides lifecycleOwner) { + if (visible) { + LifecycleStartEffect(key1 = "key1") { onStopOrDispose { stopCount++ } } + } + } + } + + runOnIdle { + lifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_START) + lifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_STOP) + visible = false + } + + runOnIdle { assertThat(stopCount).isEqualTo(1) } + } + + @Test + fun lifecycleStartEffect_onDestroy_beforeOnDispose_isIdempotent() = runComposeUiTest { + lifecycleOwner = TestLifecycleOwner(Lifecycle.State.INITIALIZED) + + var visible by mutableStateOf(true) + var stopCount = 0 + + waitForIdle() + setContent { + CompositionLocalProvider(LocalLifecycleOwner provides lifecycleOwner) { + if (visible) { + LifecycleStartEffect(key1 = "key1") { onStopOrDispose { stopCount++ } } + } + } + } + + runOnIdle { + lifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_START) + lifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_DESTROY) + visible = false + } + + runOnIdle { assertThat(stopCount).isEqualTo(1) } + } + + @Test + fun lifecycleStartEffect_onDispose_beforeOnDestroy_isIdempotent() = runComposeUiTest { + lifecycleOwner = TestLifecycleOwner(Lifecycle.State.INITIALIZED) + + var visible by mutableStateOf(true) + var stopCount = 0 + + waitForIdle() + setContent { + CompositionLocalProvider(LocalLifecycleOwner provides lifecycleOwner) { + if (visible) { + LifecycleStartEffect(key1 = "key1") { onStopOrDispose { stopCount++ } } + } + } + } + + runOnIdle { + lifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_START) + visible = false + lifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_DESTROY) } + + runOnIdle { assertThat(stopCount).isEqualTo(1) } } @Test - fun lifecycleResumeEffectTest() { + fun lifecycleResumeEffectTest() = runComposeUiTest { var resumeCount = 0 var pauseCount = 0 - composeTestRule.waitForIdle() - composeTestRule.setContent { + waitForIdle() + setContent { CompositionLocalProvider(LocalLifecycleOwner provides lifecycleOwner) { LifecycleResumeEffect(key1 = null) { resumeCount++ - onPauseOrDispose { - pauseCount++ - } + onPauseOrDispose { pauseCount++ } } } } - composeTestRule.runOnIdle { + runOnIdle { assertWithMessage("Lifecycle should not be resumed (or paused)") .that(resumeCount) .isEqualTo(0) lifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_RESUME) - assertWithMessage("Lifecycle should have been resumed") - .that(resumeCount) - .isEqualTo(1) + assertWithMessage("Lifecycle should have been resumed").that(resumeCount).isEqualTo(1) lifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_PAUSE) - assertWithMessage("Lifecycle should have been paused") - .that(pauseCount) - .isEqualTo(1) + assertWithMessage("Lifecycle should have been paused").that(pauseCount).isEqualTo(1) } } @Test - fun lifecycleResumeEffectTest_disposal() { + fun lifecycleResumeEffectTest_disposal() = runComposeUiTest { lifecycleOwner = TestLifecycleOwner(Lifecycle.State.INITIALIZED) var resumeCount = 0 var pauseCount = 0 var disposalCount = 0 lateinit var state: MutableState - composeTestRule.waitForIdle() - composeTestRule.setContent { + waitForIdle() + setContent { CompositionLocalProvider(LocalLifecycleOwner provides lifecycleOwner) { state = remember { mutableStateOf(true) } if (state.value) { @@ -427,15 +520,13 @@ class LifecycleEffectTest { } } - composeTestRule.runOnIdle { + runOnIdle { assertWithMessage("Lifecycle should not be resumed (or paused)") .that(resumeCount) .isEqualTo(0) lifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_RESUME) - assertWithMessage("Lifecycle should have been resumed") - .that(resumeCount) - .isEqualTo(1) + assertWithMessage("Lifecycle should have been resumed").that(resumeCount).isEqualTo(1) } runOnUiThread { @@ -443,14 +534,12 @@ class LifecycleEffectTest { state.value = false } - composeTestRule.runOnIdle { + runOnIdle { assertWithMessage("ON_RESUME effect work should have been cleaned up") .that(disposalCount) .isEqualTo(1) - assertWithMessage("Lifecycle should not have been paused") - .that(pauseCount) - .isEqualTo(0) + assertWithMessage("Lifecycle should not have been paused").that(pauseCount).isEqualTo(0) assertWithMessage("Lifecycle should not have been resumed") .that(resumeCount) @@ -459,15 +548,15 @@ class LifecycleEffectTest { } @Test - fun lifecycleResumeEffectTest_disposal_onKeyChange() { + fun lifecycleResumeEffectTest_disposal_onKeyChange() = runComposeUiTest { lifecycleOwner = TestLifecycleOwner(Lifecycle.State.INITIALIZED) val key = mutableStateOf(true) var resumeCount = 0 var pauseCount = 0 var disposalCount = 0 - composeTestRule.waitForIdle() - composeTestRule.setContent { + waitForIdle() + setContent { CompositionLocalProvider(LocalLifecycleOwner provides lifecycleOwner) { LifecycleResumeEffect(key.value) { resumeCount++ @@ -483,15 +572,13 @@ class LifecycleEffectTest { } } - composeTestRule.runOnIdle { + runOnIdle { assertWithMessage("Lifecycle should not yet be resumed (or paused)") .that(resumeCount) .isEqualTo(0) lifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_RESUME) - assertWithMessage("Lifecycle should have been resumed") - .that(resumeCount) - .isEqualTo(1) + assertWithMessage("Lifecycle should have been resumed").that(resumeCount).isEqualTo(1) } runOnUiThread { @@ -499,7 +586,7 @@ class LifecycleEffectTest { key.value = false } - composeTestRule.runOnIdle { + runOnIdle { assertWithMessage("ON_RESUME effect work should have been cleaned up") .that(disposalCount) .isEqualTo(1) @@ -515,28 +602,28 @@ class LifecycleEffectTest { } @Test - fun lifecycleResumeEffectTest_disposal_onLifecycleOwnerChange() { + fun lifecycleResumeEffectTest_disposal_onLifecycleOwnerChange() = runComposeUiTest { lifecycleOwner.currentState = Lifecycle.State.RESUMED val secondLifecycleOwner = TestLifecycleOwner(Lifecycle.State.RESUMED) val ownerToUse = mutableStateOf("first") val resumedLifecycles = mutableListOf() val pausedLifecycles = mutableListOf() - composeTestRule.waitForIdle() - composeTestRule.setContent { - CompositionLocalProvider(LocalLifecycleOwner provides - if (ownerToUse.value == "first") lifecycleOwner else secondLifecycleOwner) { + waitForIdle() + setContent { + CompositionLocalProvider( + LocalLifecycleOwner provides + if (ownerToUse.value == "first") lifecycleOwner else secondLifecycleOwner + ) { LifecycleResumeEffect(key1 = null) { resumedLifecycles += lifecycle - onPauseOrDispose { - pausedLifecycles += lifecycle - } + onPauseOrDispose { pausedLifecycles += lifecycle } } } } - composeTestRule.runOnIdle { + runOnIdle { assertWithMessage("Lifecycle should be resumed") .that(resumedLifecycles) .containsExactly(lifecycleOwner.lifecycle) @@ -544,7 +631,7 @@ class LifecycleEffectTest { ownerToUse.value = "second" } - composeTestRule.runOnIdle { + runOnIdle { assertWithMessage("Swapped out LifecycleOwner should be paused") .that(pausedLifecycles) .containsExactly(lifecycleOwner.lifecycle) @@ -557,64 +644,154 @@ class LifecycleEffectTest { } @Test - fun lifecycleResumeEffectTest_effectsLambdaUpdate() { + fun lifecycleResumeEffectTest_effectsLambdaUpdate() = runComposeUiTest { lifecycleOwner = TestLifecycleOwner(Lifecycle.State.INITIALIZED) val state = mutableStateOf("default") - composeTestRule.waitForIdle() - composeTestRule.setContent { + waitForIdle() + setContent { CompositionLocalProvider(LocalLifecycleOwner provides lifecycleOwner) { LifecycleResumeEffect(key1 = null) { state.value += " resumed" - onPauseOrDispose { - state.value += " disposed" - } + onPauseOrDispose { state.value += " disposed" } } } } - runOnUiThread { - state.value = "updated" - } + runOnUiThread { state.value = "updated" } - composeTestRule.runOnIdle { + runOnIdle { lifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_RESUME) lifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_CREATE) - assertThat(state.value) - .isEqualTo("updated resumed disposed") + assertThat(state.value).isEqualTo("updated resumed disposed") } } @Test - fun lifecycleResumeEffectTest_effectsLambdaAndKeyChange() { + fun lifecycleResumeEffectTest_effectsLambdaAndKeyChange() = runComposeUiTest { lifecycleOwner = TestLifecycleOwner(Lifecycle.State.INITIALIZED) var state = mutableStateOf("default") - composeTestRule.waitForIdle() - composeTestRule.setContent { + waitForIdle() + setContent { CompositionLocalProvider(LocalLifecycleOwner provides lifecycleOwner) { LifecycleResumeEffect(key1 = state) { state.value += " resumed" - onPauseOrDispose { - state.value += " disposed" - } + onPauseOrDispose { state.value += " disposed" } } } } - runOnUiThread { - state = mutableStateOf("changed") - } + runOnUiThread { state = mutableStateOf("changed") } - composeTestRule.runOnIdle { + runOnIdle { lifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_RESUME) lifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_CREATE) - assertThat(state.value) - .isEqualTo("changed resumed disposed") + assertThat(state.value).isEqualTo("changed resumed disposed") + } + } + + @Test + fun lifecycleResumeEffect_onPause_beforeOnDispose_isIdempotent() = runComposeUiTest { + lifecycleOwner = TestLifecycleOwner(Lifecycle.State.INITIALIZED) + + var visible by mutableStateOf(true) + var stopCount = 0 + + waitForIdle() + setContent { + CompositionLocalProvider(LocalLifecycleOwner provides lifecycleOwner) { + if (visible) { + LifecycleResumeEffect(key1 = "key1") { onPauseOrDispose { stopCount++ } } + } + } } + + runOnIdle { + lifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_RESUME) + lifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_PAUSE) + visible = false + } + + runOnIdle { assertThat(stopCount).isEqualTo(1) } + } + + @Test + fun lifecycleResumeEffect_onDispose_beforeOnPause_isIdempotent() = runComposeUiTest { + lifecycleOwner = TestLifecycleOwner(Lifecycle.State.INITIALIZED) + + var visible by mutableStateOf(true) + var stopCount = 0 + + waitForIdle() + setContent { + CompositionLocalProvider(LocalLifecycleOwner provides lifecycleOwner) { + if (visible) { + LifecycleResumeEffect(key1 = "key1") { onPauseOrDispose { stopCount++ } } + } + } + } + + runOnIdle { + lifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_RESUME) + visible = false + lifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_PAUSE) + } + + runOnIdle { assertThat(stopCount).isEqualTo(1) } + } + + @Test + fun lifecycleResumeEffect_onDestroy_beforeOnDispose_isIdempotent() = runComposeUiTest { + lifecycleOwner = TestLifecycleOwner(Lifecycle.State.INITIALIZED) + + var visible by mutableStateOf(true) + var stopCount = 0 + + waitForIdle() + setContent { + CompositionLocalProvider(LocalLifecycleOwner provides lifecycleOwner) { + if (visible) { + LifecycleResumeEffect(key1 = "key1") { onPauseOrDispose { stopCount++ } } + } + } + } + + runOnIdle { + lifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_RESUME) + lifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_DESTROY) + visible = false + } + + runOnIdle { assertThat(stopCount).isEqualTo(1) } + } + + @Test + fun lifecycleResumeEffect_onDispose_beforeOnDestroy_isIdempotent() = runComposeUiTest { + lifecycleOwner = TestLifecycleOwner(Lifecycle.State.INITIALIZED) + + var visible by mutableStateOf(true) + var stopCount = 0 + + waitForIdle() + setContent { + CompositionLocalProvider(LocalLifecycleOwner provides lifecycleOwner) { + if (visible) { + LifecycleResumeEffect(key1 = "key1") { onPauseOrDispose { stopCount++ } } + } + } + } + + runOnIdle { + lifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_RESUME) + visible = false + lifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_DESTROY) + } + + runOnIdle { assertThat(stopCount).isEqualTo(1) } } } diff --git a/lifecycle/lifecycle-runtime-compose/src/androidInstrumentedTest/kotlin/androidx/lifecycle/compose/LifecycleExtTest.kt b/lifecycle/lifecycle-runtime-compose/src/androidInstrumentedTest/kotlin/androidx/lifecycle/compose/LifecycleExtTest.kt index 21777bbe65eca..1fbdb2a6a5266 100644 --- a/lifecycle/lifecycle-runtime-compose/src/androidInstrumentedTest/kotlin/androidx/lifecycle/compose/LifecycleExtTest.kt +++ b/lifecycle/lifecycle-runtime-compose/src/androidInstrumentedTest/kotlin/androidx/lifecycle/compose/LifecycleExtTest.kt @@ -16,19 +16,15 @@ package androidx.lifecycle.compose -import androidx.compose.ui.test.junit4.createComposeRule +import androidx.compose.ui.test.ExperimentalTestApi +import androidx.compose.ui.test.runComposeUiTest +import androidx.kruth.assertThat import androidx.lifecycle.Lifecycle import androidx.lifecycle.testing.TestLifecycleOwner -import androidx.test.ext.junit.runners.AndroidJUnit4 -import androidx.test.filters.MediumTest -import com.google.common.truth.Truth.assertThat +import kotlin.test.Test import kotlinx.coroutines.test.UnconfinedTestDispatcher -import org.junit.Rule -import org.junit.Test -import org.junit.runner.RunWith -@MediumTest -@RunWith(AndroidJUnit4::class) +@OptIn(ExperimentalTestApi::class) class LifecycleExtTest { @OptIn(kotlinx.coroutines.ExperimentalCoroutinesApi::class) @@ -37,27 +33,24 @@ class LifecycleExtTest { UnconfinedTestDispatcher() ) - @get:Rule - val rule = createComposeRule() - @Test - fun lifecycleCollectAsState() { + fun lifecycleCollectAsState() = runComposeUiTest { val lifecycle = lifecycleOwner.lifecycle assertThat(lifecycle.currentStateFlow.value).isEqualTo(Lifecycle.State.INITIALIZED) var realStateValue: Lifecycle.State? = null - rule.setContent { + setContent { realStateValue = lifecycle.currentStateAsState().value } - rule.runOnIdle { + runOnIdle { assertThat(realStateValue).isEqualTo(Lifecycle.State.INITIALIZED) } // TODO(b/280362188): commenting this portion out until bug is fixed /* lifecycleOwner.currentState = Lifecycle.State.RESUMED - rule.runOnIdle { + runOnIdle { assertThat(realStateValue).isEqualTo(Lifecycle.State.RESUMED) } */ diff --git a/lifecycle/lifecycle-runtime-compose/src/androidMain/kotlin/androidx/lifecycle/compose/LocalLifecycleOwner.android.kt b/lifecycle/lifecycle-runtime-compose/src/androidMain/kotlin/androidx/lifecycle/compose/LocalLifecycleOwner.android.kt new file mode 100644 index 0000000000000..36cc0095c0b5a --- /dev/null +++ b/lifecycle/lifecycle-runtime-compose/src/androidMain/kotlin/androidx/lifecycle/compose/LocalLifecycleOwner.android.kt @@ -0,0 +1,65 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:JvmName("LocalLifecycleOwnerKt") + +package androidx.lifecycle.compose + +import androidx.compose.runtime.ProvidableCompositionLocal +import androidx.compose.runtime.staticCompositionLocalOf +import androidx.lifecycle.LifecycleOwner + +/** + * The CompositionLocal containing the current [LifecycleOwner]. + * + * **Important:** For backward compatibility with Compose 1.6.*, we will use reflection to access + * the [LocalLifecycleOwner] from the older `androidx.compose.ui.platform` package on Android + * targets. This will be cached for efficiency and has a included custom Proguard rule to prevent + * obfuscation issues. + * + * When using Compose 1.7.*, the [LocalLifecycleOwner] is directly accessed from the new package. + * + * Please note that backward compatibility reflection will be removed once Compose 1.7.* is stable. + * A Gradle dependency constraint will be put in place to ensure smooth migration for clients. + */ +@Suppress("CompositionLocalNaming") +public actual val LocalLifecycleOwner: ProvidableCompositionLocal = run { + val compositionLocalFromComposeUi = runCatching { + // Use the `LifecycleOwner` class to find the `classLoader` from the `Application`. + val classLoader = LifecycleOwner::class.java.classLoader!! + // Top-level class name from Compose UI 1.6.* that holds the old `LocalLifecycleOwner`. + val className = "androidx.compose.ui.platform.AndroidCompositionLocals_androidKt" + // The Java getter used when accessing the `LocalLifecycleOwner` property in Kotlin. + val methodName = "getLocalLifecycleOwner" + + val methodRef = classLoader.loadClass(className).getMethod(methodName) + if (methodRef.annotations.none { it is Deprecated }) { + // If the method IS NOT deprecated, we are running with Compose 1.6.*. + // We use reflection to access the older `LocalLifecycleOwner` from `compose-ui`. + @Suppress("UNCHECKED_CAST", "BanUncheckedReflection") + methodRef.invoke(null) as? ProvidableCompositionLocal + } else { + // If the method IS deprecated, we are running with Compose 1.7.*. + // The new `LocalLifecycleOwner` is available, no reflection needed. + null + } + } + + return@run compositionLocalFromComposeUi.getOrNull() + ?: staticCompositionLocalOf { + error("CompositionLocal LocalLifecycleOwner not present") + } +} diff --git a/lifecycle/lifecycle-runtime-compose/src/commonMain/kotlin/androidx/lifecycle/compose/LifecycleEffect.kt b/lifecycle/lifecycle-runtime-compose/src/commonMain/kotlin/androidx/lifecycle/compose/LifecycleEffect.kt index a05c160ffb8ad..72d2c8fae2232 100644 --- a/lifecycle/lifecycle-runtime-compose/src/commonMain/kotlin/androidx/lifecycle/compose/LifecycleEffect.kt +++ b/lifecycle/lifecycle-runtime-compose/src/commonMain/kotlin/androidx/lifecycle/compose/LifecycleEffect.kt @@ -360,12 +360,11 @@ private fun LifecycleStartEffectImpl( var effectResult: LifecycleStopOrDisposeEffectResult? = null val observer = LifecycleEventObserver { _, event -> when (event) { - Lifecycle.Event.ON_START -> with(scope) { - effectResult = effects() + Lifecycle.Event.ON_START -> with(scope) { effectResult = effects() } + Lifecycle.Event.ON_STOP -> { + effectResult?.runStopOrDisposeEffect() + effectResult = null } - - Lifecycle.Event.ON_STOP -> effectResult?.runStopOrDisposeEffect() - else -> {} } } @@ -693,12 +692,11 @@ private fun LifecycleResumeEffectImpl( var effectResult: LifecyclePauseOrDisposeEffectResult? = null val observer = LifecycleEventObserver { _, event -> when (event) { - Lifecycle.Event.ON_RESUME -> with(scope) { - effectResult = effects() + Lifecycle.Event.ON_RESUME -> with(scope) { effectResult = effects() } + Lifecycle.Event.ON_PAUSE -> { + effectResult?.runPauseOrOnDisposeEffect() + effectResult = null } - - Lifecycle.Event.ON_PAUSE -> effectResult?.runPauseOrOnDisposeEffect() - else -> {} } } diff --git a/lifecycle/lifecycle-runtime-compose/src/commonMain/kotlin/androidx/lifecycle/compose/LocalLifecycleOwner.kt b/lifecycle/lifecycle-runtime-compose/src/commonMain/kotlin/androidx/lifecycle/compose/LocalLifecycleOwner.kt index d558fc27616f5..435090ba57a7b 100644 --- a/lifecycle/lifecycle-runtime-compose/src/commonMain/kotlin/androidx/lifecycle/compose/LocalLifecycleOwner.kt +++ b/lifecycle/lifecycle-runtime-compose/src/commonMain/kotlin/androidx/lifecycle/compose/LocalLifecycleOwner.kt @@ -16,15 +16,8 @@ package androidx.lifecycle.compose -import androidx.compose.runtime.staticCompositionLocalOf +import androidx.compose.runtime.ProvidableCompositionLocal import androidx.lifecycle.LifecycleOwner -/** - * The CompositionLocal containing the current [LifecycleOwner]. - * - * Note: On Android, it works only with Compose UI 1.7.0-alpha05 or above. - * Please use [androidx.compose.ui.platform.LocalLifecycleOwner] on Compose 1.6.* - */ -val LocalLifecycleOwner = staticCompositionLocalOf { - error("CompositionLocal LocalLifecycleOwner not present") -} +/** The CompositionLocal containing the current [LifecycleOwner]. */ +public expect val LocalLifecycleOwner: ProvidableCompositionLocal diff --git a/lifecycle/lifecycle-runtime-compose/src/nonAndroidMain/kotlin/androidx/lifecycle/compose/LocalLifecycleOwner.nonAndroid.kt b/lifecycle/lifecycle-runtime-compose/src/nonAndroidMain/kotlin/androidx/lifecycle/compose/LocalLifecycleOwner.nonAndroid.kt new file mode 100644 index 0000000000000..07eda1dd7e6bc --- /dev/null +++ b/lifecycle/lifecycle-runtime-compose/src/nonAndroidMain/kotlin/androidx/lifecycle/compose/LocalLifecycleOwner.nonAndroid.kt @@ -0,0 +1,29 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:JvmName("LocalLifecycleOwnerKt") + +package androidx.lifecycle.compose + +import androidx.compose.runtime.ProvidableCompositionLocal +import androidx.compose.runtime.staticCompositionLocalOf +import androidx.lifecycle.LifecycleOwner +import kotlin.jvm.JvmName + +public actual val LocalLifecycleOwner: ProvidableCompositionLocal = + staticCompositionLocalOf { + error("CompositionLocal LocalLifecycleOwner not present") + } diff --git a/lifecycle/lifecycle-viewmodel-compose/build.gradle b/lifecycle/lifecycle-viewmodel-compose/build.gradle index defa76c111861..84d4dd8521471 100644 --- a/lifecycle/lifecycle-viewmodel-compose/build.gradle +++ b/lifecycle/lifecycle-viewmodel-compose/build.gradle @@ -77,6 +77,10 @@ kotlin { jbMain.dependsOn(commonMain) nativeMain.dependsOn(jbMain) + webMain.dependsOn(jbMain) + jsMain.dependsOn(webMain) + wasmJsMain.dependsOn(webMain) + targets.all { target -> if (target.platformType !in [KotlinPlatformType.androidJvm, KotlinPlatformType.common]) { target.compilations["main"].defaultSourceSet { diff --git a/lifecycle/lifecycle-viewmodel-compose/src/androidInstrumentedTest/kotlin/androidx/lifecycle/viewmodel/compose/SavedStateHandleSaverTest.android.kt b/lifecycle/lifecycle-viewmodel-compose/src/androidInstrumentedTest/kotlin/androidx/lifecycle/viewmodel/compose/SavedStateHandleSaverTest.android.kt index 1463fc713f502..4d9bc0980e326 100644 --- a/lifecycle/lifecycle-viewmodel-compose/src/androidInstrumentedTest/kotlin/androidx/lifecycle/viewmodel/compose/SavedStateHandleSaverTest.android.kt +++ b/lifecycle/lifecycle-viewmodel-compose/src/androidInstrumentedTest/kotlin/androidx/lifecycle/viewmodel/compose/SavedStateHandleSaverTest.android.kt @@ -312,6 +312,76 @@ class SavedStateHandleSaverTest { assertThat(getCount!!()).isEqualTo(1) assertThat(savedStateHandle?.keys()).isEqualTo(setOf("count")) } + + @OptIn(SavedStateHandleSaveableApi::class) + @Test + fun noConflictKeys_delegate_simpleRestore() { + activityTestRuleScenario.scenario.onActivity { activity -> + activity.setContent { + val viewModel = viewModel(activity) + val firstClass = FirstClass(viewModel.savedStateHandle) + val secondClass = SecondClass(viewModel.savedStateHandle) + assertThat(firstClass.savedProperty).isEqualTo("One") + assertThat(secondClass.savedProperty).isEqualTo("Two") + } + } + + activityTestRuleScenario.scenario.recreate() + + activityTestRuleScenario.scenario.onActivity { activity -> + activity.setContent { + val viewModel = viewModel(activity) + val firstClass = FirstClass(viewModel.savedStateHandle) + val secondClass = SecondClass(viewModel.savedStateHandle) + assertThat(firstClass.savedProperty).isEqualTo("One") + assertThat(secondClass.savedProperty).isEqualTo("Two") + } + } + } + + @OptIn(SavedStateHandleSaveableApi::class) + @Test + fun conflictKeys_local_delegate_simpleRestore() { + + fun firstFunction(handle: SavedStateHandle): String { + val localProperty by handle.saveable { mutableStateOf("One") } + return localProperty + } + + fun secondFunction(handle: SavedStateHandle): String { + val localProperty by handle.saveable { mutableStateOf("Two") } + return localProperty + } + + activityTestRuleScenario.scenario.onActivity { activity -> + activity.setContent { + val savedStateHandle = viewModel(activity).savedStateHandle + firstFunction(savedStateHandle) + secondFunction(savedStateHandle) + } + } + + activityTestRuleScenario.scenario.recreate() + + activityTestRuleScenario.scenario.onActivity { activity -> + activity.setContent { + val savedStateHandle = viewModel(activity).savedStateHandle + // TODO(b/331695354): Fix local property saveable delegate key conflict + assertThat(firstFunction(savedStateHandle)).isEqualTo("Two") + assertThat(secondFunction(savedStateHandle)).isEqualTo("Two") + } + } + } } class SavingTestViewModel(val savedStateHandle: SavedStateHandle) : ViewModel() + +class FirstClass(savedStateHandle: SavedStateHandle) { + @OptIn(SavedStateHandleSaveableApi::class) + val savedProperty by savedStateHandle.saveable { mutableStateOf("One") } +} + +class SecondClass(savedStateHandle: SavedStateHandle) { + @OptIn(SavedStateHandleSaveableApi::class) + val savedProperty by savedStateHandle.saveable { mutableStateOf("Two") } +} diff --git a/lifecycle/lifecycle-viewmodel-compose/src/commonMain/kotlin/androidx/lifecycle/viewmodel/compose/ClassUtils.kt b/lifecycle/lifecycle-viewmodel-compose/src/commonMain/kotlin/androidx/lifecycle/viewmodel/compose/ClassUtils.kt new file mode 100644 index 0000000000000..5eef70b05fe97 --- /dev/null +++ b/lifecycle/lifecycle-viewmodel-compose/src/commonMain/kotlin/androidx/lifecycle/viewmodel/compose/ClassUtils.kt @@ -0,0 +1,21 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.lifecycle.viewmodel.compose + +import kotlin.reflect.KClass + +internal expect val KClass.canonicalName: String? \ No newline at end of file diff --git a/lifecycle/lifecycle-viewmodel-compose/src/commonMain/kotlin/androidx/lifecycle/viewmodel/compose/SavedStateHandleSaver.kt b/lifecycle/lifecycle-viewmodel-compose/src/commonMain/kotlin/androidx/lifecycle/viewmodel/compose/SavedStateHandleSaver.kt index e7cf3aa8bd257..b00682b87bbbb 100644 --- a/lifecycle/lifecycle-viewmodel-compose/src/commonMain/kotlin/androidx/lifecycle/viewmodel/compose/SavedStateHandleSaver.kt +++ b/lifecycle/lifecycle-viewmodel-compose/src/commonMain/kotlin/androidx/lifecycle/viewmodel/compose/SavedStateHandleSaver.kt @@ -118,9 +118,10 @@ fun SavedStateHandle.saveable( saver: Saver = autoSaver(), init: () -> T, ): PropertyDelegateProvider> = - PropertyDelegateProvider { _, property -> + PropertyDelegateProvider { thisRef, property -> + val classNamePrefix = if (thisRef != null) thisRef::class.canonicalName + "." else "" val value = saveable( - key = property.name, + key = classNamePrefix + property.name, saver = saver, init = init ) @@ -156,9 +157,10 @@ fun > SavedStateHandle.saveable( stateSaver: Saver = autoSaver(), init: () -> M, ): PropertyDelegateProvider> = - PropertyDelegateProvider> { _, property -> + PropertyDelegateProvider> { thisRef, property -> + val classNamePrefix = if (thisRef != null) thisRef::class.canonicalName + "." else "" val mutableState = saveable( - key = property.name, + key = classNamePrefix + property.name, stateSaver = stateSaver, init = init ) diff --git a/lifecycle/lifecycle-viewmodel-compose/src/jvmMain/kotlin/androidx/lifecycle/viewmodel/compose/ClassUtils.jvm.kt b/lifecycle/lifecycle-viewmodel-compose/src/jvmMain/kotlin/androidx/lifecycle/viewmodel/compose/ClassUtils.jvm.kt new file mode 100644 index 0000000000000..2d3d627cc87bb --- /dev/null +++ b/lifecycle/lifecycle-viewmodel-compose/src/jvmMain/kotlin/androidx/lifecycle/viewmodel/compose/ClassUtils.jvm.kt @@ -0,0 +1,22 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.lifecycle.viewmodel.compose + +import kotlin.reflect.KClass + +internal actual val KClass.canonicalName: String? + get() = qualifiedName diff --git a/lifecycle/lifecycle-viewmodel-compose/src/nativeMain/kotlin/androidx/lifecycle/viewmodel/compose/ClassUtils.native.kt b/lifecycle/lifecycle-viewmodel-compose/src/nativeMain/kotlin/androidx/lifecycle/viewmodel/compose/ClassUtils.native.kt new file mode 100644 index 0000000000000..2d3d627cc87bb --- /dev/null +++ b/lifecycle/lifecycle-viewmodel-compose/src/nativeMain/kotlin/androidx/lifecycle/viewmodel/compose/ClassUtils.native.kt @@ -0,0 +1,22 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.lifecycle.viewmodel.compose + +import kotlin.reflect.KClass + +internal actual val KClass.canonicalName: String? + get() = qualifiedName diff --git a/lifecycle/lifecycle-viewmodel-compose/src/webMain/kotlin/androidx/lifecycle/viewmodel/compose/ClassUtils.web.kt b/lifecycle/lifecycle-viewmodel-compose/src/webMain/kotlin/androidx/lifecycle/viewmodel/compose/ClassUtils.web.kt new file mode 100644 index 0000000000000..ba24e83f4e9e5 --- /dev/null +++ b/lifecycle/lifecycle-viewmodel-compose/src/webMain/kotlin/androidx/lifecycle/viewmodel/compose/ClassUtils.web.kt @@ -0,0 +1,22 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.lifecycle.viewmodel.compose + +import kotlin.reflect.KClass + +internal actual val KClass.canonicalName: String? + get() = simpleName // `qualifiedName` reflection API is not supported yet in JavaScript \ No newline at end of file diff --git a/lifecycle/lifecycle-viewmodel/api/desktop/lifecycle-viewmodel.api b/lifecycle/lifecycle-viewmodel/api/desktop/lifecycle-viewmodel.api index 767e8da8ab9c4..e9134700c8858 100644 --- a/lifecycle/lifecycle-viewmodel/api/desktop/lifecycle-viewmodel.api +++ b/lifecycle/lifecycle-viewmodel/api/desktop/lifecycle-viewmodel.api @@ -50,6 +50,17 @@ public abstract interface class androidx/lifecycle/ViewModelProvider$Factory { public fun create (Lkotlin/reflect/KClass;Landroidx/lifecycle/viewmodel/CreationExtras;)Landroidx/lifecycle/ViewModel; } +public class androidx/lifecycle/ViewModelProvider$NewInstanceFactory : androidx/lifecycle/ViewModelProvider$Factory { + public static final field Companion Landroidx/lifecycle/ViewModelProvider$NewInstanceFactory$Companion; + public fun ()V + public fun create (Lkotlin/reflect/KClass;Landroidx/lifecycle/viewmodel/CreationExtras;)Landroidx/lifecycle/ViewModel; + public static final fun getInstance ()Landroidx/lifecycle/ViewModelProvider$NewInstanceFactory; +} + +public final class androidx/lifecycle/ViewModelProvider$NewInstanceFactory$Companion { + public final fun getInstance ()Landroidx/lifecycle/ViewModelProvider$NewInstanceFactory; +} + public class androidx/lifecycle/ViewModelProvider$OnRequeryFactory { public fun ()V public fun onRequery (Landroidx/lifecycle/ViewModel;)V diff --git a/lifecycle/lifecycle-viewmodel/src/androidInstrumentedTest/kotlin/androidx/lifecycle/AndroidViewModelProviderTest.kt b/lifecycle/lifecycle-viewmodel/src/androidInstrumentedTest/kotlin/androidx/lifecycle/AndroidViewModelProviderTest.kt new file mode 100644 index 0000000000000..e5b765c03b04c --- /dev/null +++ b/lifecycle/lifecycle-viewmodel/src/androidInstrumentedTest/kotlin/androidx/lifecycle/AndroidViewModelProviderTest.kt @@ -0,0 +1,76 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.lifecycle + +import androidx.kruth.assertThat +import androidx.kruth.assertThrows +import androidx.lifecycle.viewmodel.CreationExtras +import androidx.lifecycle.viewmodel.MutableCreationExtras +import androidx.test.ext.junit.runners.AndroidJUnit4 +import androidx.test.filters.SmallTest +import kotlin.reflect.KClass +import org.junit.Test +import org.junit.runner.RunWith + +@RunWith(AndroidJUnit4::class) +@SmallTest +class AndroidViewModelProviderTest { + + /** @see androidx.lifecycle.viewmodel.createViewModel */ + @Test + fun get_throwsNotImplementedError_shouldFallbackToAvoidDesugaringIssues() { + val extras = MutableCreationExtras() + val factory = NotImplementedErrorFactory() + val provider = ViewModelProvider(ViewModelStore(), factory, extras) + val expectedModelClass = ViewModel::class + + assertThrows { provider[expectedModelClass.java] } + assertThat(factory.createInvocations).hasSize(expectedSize = 3) + + val (actualModelClass1, actualCreationExtras1) = factory.createInvocations[0] + assertThat(actualModelClass1).isEqualTo(expectedModelClass) + assertThat(actualCreationExtras1).isInstanceOf() + + val (actualViewModelClass2, actualCreationExtras2) = factory.createInvocations[1] + assertThat(actualViewModelClass2).isEqualTo(expectedModelClass.java) + assertThat(actualCreationExtras2).isInstanceOf() + + val (actualModelClass3, actualCreationExtras3) = factory.createInvocations[2] + assertThat(actualModelClass3).isEqualTo(expectedModelClass.java) + assertThat(actualCreationExtras3).isNull() + } + + private class NotImplementedErrorFactory : ViewModelProvider.Factory { + + val createInvocations = mutableListOf>() + + override fun create(modelClass: KClass, extras: CreationExtras): T { + createInvocations += listOf(modelClass, extras) + throw AbstractMethodError("abstract method `ViewModelProvider.Factory.create`") + } + + override fun create(modelClass: Class, extras: CreationExtras): T { + createInvocations += listOf(modelClass, extras) + throw AbstractMethodError("abstract method `ViewModelProvider.Factory.create`") + } + + override fun create(modelClass: Class): T { + createInvocations += listOf(modelClass, null) + throw IllegalArgumentException("Cannot create an instance of $modelClass") + } + } +} diff --git a/lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/viewmodel/internal/ViewModelProviderImpl.android.kt b/lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/viewmodel/internal/ViewModelProviderImpl.android.kt new file mode 100644 index 0000000000000..8cf9e80c0a141 --- /dev/null +++ b/lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/viewmodel/internal/ViewModelProviderImpl.android.kt @@ -0,0 +1,42 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.lifecycle.viewmodel + +import androidx.lifecycle.ViewModel +import androidx.lifecycle.ViewModelProvider +import kotlin.reflect.KClass + +internal actual fun createViewModel( + factory: ViewModelProvider.Factory, + modelClass: KClass, + extras: CreationExtras +): VM { + // Android targets using `compileOnly` dependencies may encounter AGP desugaring + // issues where `Factory.create` throws an `AbstractMethodError`. This is resolved by an + // Android-specific implementation that first attempts all `ViewModelProvider.Factory.create` + // method overloads before allowing the exception to propagate. + // (See b/230454566 and b/341792251 for more details). + return try { + factory.create(modelClass, extras) + } catch (e: AbstractMethodError) { + try { + factory.create(modelClass.java, extras) + } catch (e: AbstractMethodError) { + factory.create(modelClass.java) + } + } +} diff --git a/lifecycle/lifecycle-viewmodel/src/commonMain/kotlin/androidx/lifecycle/viewmodel/internal/ViewModelProviderImpl.kt b/lifecycle/lifecycle-viewmodel/src/commonMain/kotlin/androidx/lifecycle/viewmodel/internal/ViewModelProviderImpl.kt index 08ff65842c7be..7745a55e1616c 100644 --- a/lifecycle/lifecycle-viewmodel/src/commonMain/kotlin/androidx/lifecycle/viewmodel/internal/ViewModelProviderImpl.kt +++ b/lifecycle/lifecycle-viewmodel/src/commonMain/kotlin/androidx/lifecycle/viewmodel/internal/ViewModelProviderImpl.kt @@ -61,12 +61,26 @@ internal class ViewModelProviderImpl( } val extras = MutableCreationExtras(extras) extras[ViewModelProviders.ViewModelKey] = key - // AGP has some desugaring issues associated with compileOnly dependencies so we need to - // fall back to the other create method to keep from crashing. - return try { - factory.create(modelClass, extras) - } catch (e: Error) { // There is no `AbstractMethodError` on KMP, using common ancestor. - factory.create(modelClass, CreationExtras.Empty) - }.also { newViewModel -> store.put(key, newViewModel) } + + return createViewModel(factory, modelClass, extras).also { vm -> store.put(key, vm) } } } + +/** + * Returns a new instance of a [ViewModel]. + * + * **Important:** Android targets using `compileOnly` dependencies may encounter AGP desugaring + * issues where `Factory.create` throws an `AbstractMethodError`. This is resolved by an + * Android-specific implementation that first attempts all `ViewModelProvider.Factory.create` + * method overloads before allowing the exception to propagate. + * + * @see b/230454566 + * @see b/341792251 + * @see leakcanary/issues/2314 + * @see leakcanary/issues/2677 + */ +internal expect fun createViewModel( + factory: ViewModelProvider.Factory, + modelClass: KClass, + extras: CreationExtras, +): VM diff --git a/lifecycle/lifecycle-viewmodel/src/desktopMain/kotlin/androidx/lifecycle/ViewModelProvider.desktop.kt b/lifecycle/lifecycle-viewmodel/src/desktopMain/kotlin/androidx/lifecycle/ViewModelProvider.desktop.kt index 03b0a058e1847..2d2668ce432d0 100644 --- a/lifecycle/lifecycle-viewmodel/src/desktopMain/kotlin/androidx/lifecycle/ViewModelProvider.desktop.kt +++ b/lifecycle/lifecycle-viewmodel/src/desktopMain/kotlin/androidx/lifecycle/ViewModelProvider.desktop.kt @@ -19,7 +19,9 @@ package androidx.lifecycle import androidx.annotation.MainThread import androidx.annotation.RestrictTo import androidx.lifecycle.viewmodel.CreationExtras +import androidx.lifecycle.viewmodel.CreationExtras.Key import androidx.lifecycle.viewmodel.ViewModelProviderImpl +import androidx.lifecycle.viewmodel.internal.JvmViewModelProviders import androidx.lifecycle.viewmodel.internal.ViewModelProviders import kotlin.reflect.KClass @@ -49,6 +51,41 @@ public actual class ViewModelProvider private constructor( public actual open fun onRequery(viewModel: ViewModel) {} } + /** Simple factory, which calls empty constructor on the give class. */ + public open class NewInstanceFactory + /** + * Construct a new [NewInstanceFactory] instance. + * + * Use [NewInstanceFactory.instance] to get a default instance of [NewInstanceFactory]. + */ + @Suppress("SingletonConstructor") + constructor() : Factory { + + public override fun create( + modelClass: KClass, + extras: CreationExtras, + ): T = JvmViewModelProviders.createViewModel(modelClass.java) + + public companion object { + private var _instance: NewInstanceFactory? = null + + /** + * Retrieve a singleton instance of NewInstanceFactory. + * + * @return A valid [NewInstanceFactory] + */ + @JvmStatic + public val instance: NewInstanceFactory + @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP) + get() { + if (_instance == null) { + _instance = NewInstanceFactory() + } + return _instance!! + } + } + } + public actual companion object { @JvmStatic public actual fun create( diff --git a/lifecycle/lifecycle-viewmodel/src/desktopMain/kotlin/androidx/lifecycle/viewmodel/internal/ViewModelProviderImpl.desktop.kt b/lifecycle/lifecycle-viewmodel/src/desktopMain/kotlin/androidx/lifecycle/viewmodel/internal/ViewModelProviderImpl.desktop.kt new file mode 100644 index 0000000000000..c2cde5457d6c4 --- /dev/null +++ b/lifecycle/lifecycle-viewmodel/src/desktopMain/kotlin/androidx/lifecycle/viewmodel/internal/ViewModelProviderImpl.desktop.kt @@ -0,0 +1,27 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.lifecycle.viewmodel + +import androidx.lifecycle.ViewModel +import androidx.lifecycle.ViewModelProvider +import kotlin.reflect.KClass + +internal actual fun createViewModel( + factory: ViewModelProvider.Factory, + modelClass: KClass, + extras: CreationExtras +): VM = factory.create(modelClass, extras) diff --git a/lifecycle/lifecycle-viewmodel/src/nonJvmMain/kotlin/androidx/lifecycle/viewmodel/internal/ViewModelProviderImpl.nonJvm.kt b/lifecycle/lifecycle-viewmodel/src/nonJvmMain/kotlin/androidx/lifecycle/viewmodel/internal/ViewModelProviderImpl.nonJvm.kt new file mode 100644 index 0000000000000..c2cde5457d6c4 --- /dev/null +++ b/lifecycle/lifecycle-viewmodel/src/nonJvmMain/kotlin/androidx/lifecycle/viewmodel/internal/ViewModelProviderImpl.nonJvm.kt @@ -0,0 +1,27 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.lifecycle.viewmodel + +import androidx.lifecycle.ViewModel +import androidx.lifecycle.ViewModelProvider +import kotlin.reflect.KClass + +internal actual fun createViewModel( + factory: ViewModelProvider.Factory, + modelClass: KClass, + extras: CreationExtras +): VM = factory.create(modelClass, extras) diff --git a/navigation/integration-tests/testapp/lint-baseline.xml b/navigation/integration-tests/testapp/lint-baseline.xml index b1b8eb91aa669..ef3607de4ba6a 100644 --- a/navigation/integration-tests/testapp/lint-baseline.xml +++ b/navigation/integration-tests/testapp/lint-baseline.xml @@ -1,23 +1,5 @@ - - - - - - - - - + - + + errorLine1=" @Test fun navGraphDestinations_withRoutes() = inflateNavGraph_withRoutes(1)" + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -13,8 +13,8 @@ + errorLine1=" @Test fun navGraphDestinations_withRoutes10() = inflateNavGraph_withRoutes(10)" + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -22,8 +22,8 @@ + errorLine1=" @Test fun navGraphDestinations_withRoutes50() = inflateNavGraph_withRoutes(50)" + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -31,8 +31,8 @@ + errorLine1=" @Test fun navGraphDestinations_withRoutes100() = inflateNavGraph_withRoutes(100)" + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> diff --git a/navigation/navigation-common-ktx/api/2.8.0-beta06.txt b/navigation/navigation-common-ktx/api/2.8.0-beta06.txt new file mode 100644 index 0000000000000..e6f50d0d0fd11 --- /dev/null +++ b/navigation/navigation-common-ktx/api/2.8.0-beta06.txt @@ -0,0 +1 @@ +// Signature format: 4.0 diff --git a/navigation/navigation-common-ktx/api/2.8.0-beta07.txt b/navigation/navigation-common-ktx/api/2.8.0-beta07.txt new file mode 100644 index 0000000000000..e6f50d0d0fd11 --- /dev/null +++ b/navigation/navigation-common-ktx/api/2.8.0-beta07.txt @@ -0,0 +1 @@ +// Signature format: 4.0 diff --git a/navigation/navigation-common-ktx/api/res-2.8.0-beta06.txt b/navigation/navigation-common-ktx/api/res-2.8.0-beta06.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/navigation/navigation-common-ktx/api/res-2.8.0-beta07.txt b/navigation/navigation-common-ktx/api/res-2.8.0-beta07.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/navigation/navigation-common-ktx/api/restricted_2.8.0-beta06.txt b/navigation/navigation-common-ktx/api/restricted_2.8.0-beta06.txt new file mode 100644 index 0000000000000..e6f50d0d0fd11 --- /dev/null +++ b/navigation/navigation-common-ktx/api/restricted_2.8.0-beta06.txt @@ -0,0 +1 @@ +// Signature format: 4.0 diff --git a/navigation/navigation-common-ktx/api/restricted_2.8.0-beta07.txt b/navigation/navigation-common-ktx/api/restricted_2.8.0-beta07.txt new file mode 100644 index 0000000000000..e6f50d0d0fd11 --- /dev/null +++ b/navigation/navigation-common-ktx/api/restricted_2.8.0-beta07.txt @@ -0,0 +1 @@ +// Signature format: 4.0 diff --git a/navigation/navigation-common-ktx/build.gradle b/navigation/navigation-common-ktx/build.gradle index 142ea225ce42b..50189b130265e 100644 --- a/navigation/navigation-common-ktx/build.gradle +++ b/navigation/navigation-common-ktx/build.gradle @@ -43,7 +43,6 @@ androidx { type = LibraryType.PUBLISHED_LIBRARY_ONLY_USED_BY_KOTLIN_CONSUMERS inceptionYear = "2018" description = "Android Navigation-Common-Ktx" - metalavaK2UastEnabled = true } android { diff --git a/navigation/navigation-common-lint/build.gradle b/navigation/navigation-common-lint/build.gradle index 8521b455715eb..d1f28014d2bbd 100644 --- a/navigation/navigation-common-lint/build.gradle +++ b/navigation/navigation-common-lint/build.gradle @@ -21,6 +21,8 @@ * Please use that script when creating a new project, rather than copying an existing project and * modifying its settings. */ + +import androidx.build.BundleInsideHelper import androidx.build.LibraryType plugins { @@ -28,9 +30,12 @@ plugins { id("kotlin") } +BundleInsideHelper.forInsideLintJar(project) + dependencies { compileOnly(libs.kotlinStdlib) compileOnly(libs.androidLintApi) + bundleInside(projectOrArtifact(":navigation:navigation-lint-common")) testImplementation(libs.kotlinStdlib) testImplementation(libs.androidLint) diff --git a/navigation/navigation-common-lint/src/main/java/androidx/navigation/common/lint/WrongStartDestinationTypeDetector.kt b/navigation/navigation-common-lint/src/main/java/androidx/navigation/common/lint/WrongStartDestinationTypeDetector.kt index 3b0403c757139..fec9b9fd6b480 100644 --- a/navigation/navigation-common-lint/src/main/java/androidx/navigation/common/lint/WrongStartDestinationTypeDetector.kt +++ b/navigation/navigation-common-lint/src/main/java/androidx/navigation/common/lint/WrongStartDestinationTypeDetector.kt @@ -16,6 +16,9 @@ package androidx.navigation.common.lint +import androidx.navigation.lint.common.BaseWrongStartDestinationTypeDetector +import androidx.navigation.lint.common.createWrongStartDestinationTypeIssue + class WrongStartDestinationTypeDetector : BaseWrongStartDestinationTypeDetector( methodNames = listOf("navigation", "setStartDestination"), diff --git a/navigation/navigation-common-lint/src/test/java/androidx/navigation/common/lint/WrongStartDestinationTypeDetectorTest.kt b/navigation/navigation-common-lint/src/test/java/androidx/navigation/common/lint/WrongStartDestinationTypeDetectorTest.kt index 647068d6b4d4e..5e1ca05b7a04c 100644 --- a/navigation/navigation-common-lint/src/test/java/androidx/navigation/common/lint/WrongStartDestinationTypeDetectorTest.kt +++ b/navigation/navigation-common-lint/src/test/java/androidx/navigation/common/lint/WrongStartDestinationTypeDetectorTest.kt @@ -17,12 +17,22 @@ package androidx.navigation.common.lint import com.android.tools.lint.checks.infrastructure.LintDetectorTest +import com.android.tools.lint.checks.infrastructure.LintDetectorTest.compiled +import com.android.tools.lint.checks.infrastructure.LintDetectorTest.kotlin +import com.android.tools.lint.checks.infrastructure.TestFile import com.android.tools.lint.checks.infrastructure.TestMode import com.android.tools.lint.detector.api.Detector import com.android.tools.lint.detector.api.Issue import org.junit.Test +import org.junit.runner.RunWith +import org.junit.runners.Parameterized -class WrongStartDestinationTypeDetectorTest : LintDetectorTest() { +@RunWith(Parameterized::class) +class WrongStartDestinationTypeDetectorTest(private val testFile: TestFile) : LintDetectorTest() { + + private companion object { + @JvmStatic @Parameterized.Parameters public fun data() = listOf(SOURCECODE, BYTECODE) + } @Test fun testEmptyConstructorNoError() { @@ -42,11 +52,14 @@ class WrongStartDestinationTypeDetectorTest : LintDetectorTest() { builder.navigation(startDestination = TestClass()) provider.navigation(startDestination = TestClass()) {} navGraph.setStartDestination(startDestRoute = TestClass()) + builder.navigation(startDestination = TestClassComp()) + provider.navigation(startDestination = TestClassComp()) {} + navGraph.setStartDestination(startDestRoute = TestClassComp()) } """ ) .indented(), - byteCode, + testFile, ) .skipTestModes(TestMode.FULLY_QUALIFIED) .run() @@ -74,11 +87,17 @@ class WrongStartDestinationTypeDetectorTest : LintDetectorTest() { builder.navigation(startDestination = Outer.InnerClass(15)) builder.navigation(startDestination = InterfaceChildClass(true)) builder.navigation(startDestination = AbstractChildClass(true)) + builder.navigation(startDestination = TestClassWithArgComp(15)) + builder.navigation(startDestination = TestClassComp::class) + builder.navigation(startDestination = OuterComp.InnerClassComp::class) + builder.navigation(startDestination = OuterComp.InnerClassComp(15)) + builder.navigation(startDestination = InterfaceChildClassComp(true)) + builder.navigation(startDestination = AbstractChildClassComp(true)) } """ ) .indented(), - byteCode, + testFile, ) .run() .expectClean() @@ -104,11 +123,13 @@ class WrongStartDestinationTypeDetectorTest : LintDetectorTest() { builder.navigation(startDestination = Outer.InnerObject::class) builder.navigation(startDestination = InterfaceChildObject) builder.navigation(startDestination = AbstractChildObject) + builder.navigation(startDestination = OuterComp.InnerObject::class) + builder.navigation(startDestination = AbstractChildObjectComp) } """ ) .indented(), - byteCode, + testFile, ) .run() .expectClean() @@ -134,11 +155,18 @@ class WrongStartDestinationTypeDetectorTest : LintDetectorTest() { builder.navigation(startDestination = AbstractChildClass) builder.navigation(startDestination = TestInterface) builder.navigation(startDestination = TestAbstract) + // classes with companion object to simulate marked with @Serializable + builder.navigation(startDestination = TestClassComp) + builder.navigation(startDestination = TestClassWithArgComp) + builder.navigation(startDestination = OuterComp.InnerClassComp) + builder.navigation(startDestination = InterfaceChildClassComp) + builder.navigation(startDestination = AbstractChildClassComp) + builder.navigation(startDestination = TestAbstractComp) } """ ) .indented(), - byteCode, + testFile, ) .run() .expect( @@ -185,7 +213,43 @@ If the class TestAbstract does not contain arguments, you can also pass in its KClass reference TestAbstract::class [WrongStartDestinationType] builder.navigation(startDestination = TestAbstract) ~~~~~~~~~~~~ -7 errors, 0 warnings +src/com/example/test.kt:16: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class [WrongStartDestinationType] + builder.navigation(startDestination = TestClassComp) + ~~~~~~~~~~~~~ +src/com/example/test.kt:17: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class [WrongStartDestinationType] + builder.navigation(startDestination = TestClassWithArgComp) + ~~~~~~~~~~~~~~~~~~~~ +src/com/example/test.kt:18: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class [WrongStartDestinationType] + builder.navigation(startDestination = OuterComp.InnerClassComp) + ~~~~~~~~~~~~~~~~~~~~~~~~ +src/com/example/test.kt:19: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class [WrongStartDestinationType] + builder.navigation(startDestination = InterfaceChildClassComp) + ~~~~~~~~~~~~~~~~~~~~~~~ +src/com/example/test.kt:20: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class [WrongStartDestinationType] + builder.navigation(startDestination = AbstractChildClassComp) + ~~~~~~~~~~~~~~~~~~~~~~ +src/com/example/test.kt:21: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class [WrongStartDestinationType] + builder.navigation(startDestination = TestAbstractComp) + ~~~~~~~~~~~~~~~~ +13 errors, 0 warnings """ ) } @@ -210,11 +274,17 @@ you can also pass in its KClass reference TestAbstract::class [WrongStartDestina provider.navigation(startDestination = Outer.InnerClass(15)) {} provider.navigation(startDestination = InterfaceChildClass(true)) {} provider.navigation(startDestination = AbstractChildClass(true)) {} + provider.navigation(startDestination = TestClassWithArgComp(15)) {} + provider.navigation(startDestination = TestClassComp::class) {} + provider.navigation(startDestination = OuterComp.InnerClassComp::class) {} + provider.navigation(startDestination = OuterComp.InnerClassComp(15)) {} + provider.navigation(startDestination = InterfaceChildClassComp(true)) {} + provider.navigation(startDestination = AbstractChildClassComp(true)) {} } """ ) .indented(), - byteCode, + testFile, ) .run() .expectClean() @@ -239,11 +309,14 @@ you can also pass in its KClass reference TestAbstract::class [WrongStartDestina provider.navigation(startDestination = Outer.InnerObject::class) {} provider.navigation(startDestination = InterfaceChildObject) {} provider.navigation(startDestination = AbstractChildObject) {} + provider.navigation(startDestination = OuterComp) {} + provider.navigation(startDestination = OuterComp.InnerObject) {} + provider.navigation(startDestination = OuterComp.InnerObject::class) {} } """ ) .indented(), - byteCode, + testFile, ) .run() .expectClean() @@ -268,11 +341,17 @@ you can also pass in its KClass reference TestAbstract::class [WrongStartDestina provider.navigation(startDestination = AbstractChildClass) {} provider.navigation(startDestination = TestInterface) provider.navigation(startDestination = TestAbstract) + provider.navigation(startDestination = TestClassComp) {} + provider.navigation(startDestination = TestClassWithArgComp) {} + provider.navigation(startDestination = OuterComp.InnerClassComp) {} + provider.navigation(startDestination = InterfaceChildClassComp) {} + provider.navigation(startDestination = AbstractChildClassComp) {} + provider.navigation(startDestination = TestAbstractComp) } """ ) .indented(), - byteCode, + testFile, ) .run() .expect( @@ -319,7 +398,43 @@ If the class TestAbstract does not contain arguments, you can also pass in its KClass reference TestAbstract::class [WrongStartDestinationType] provider.navigation(startDestination = TestAbstract) ~~~~~~~~~~~~ -7 errors, 0 warnings +src/com/example/test.kt:14: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class [WrongStartDestinationType] + provider.navigation(startDestination = TestClassComp) {} + ~~~~~~~~~~~~~ +src/com/example/test.kt:15: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class [WrongStartDestinationType] + provider.navigation(startDestination = TestClassWithArgComp) {} + ~~~~~~~~~~~~~~~~~~~~ +src/com/example/test.kt:16: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class [WrongStartDestinationType] + provider.navigation(startDestination = OuterComp.InnerClassComp) {} + ~~~~~~~~~~~~~~~~~~~~~~~~ +src/com/example/test.kt:17: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class [WrongStartDestinationType] + provider.navigation(startDestination = InterfaceChildClassComp) {} + ~~~~~~~~~~~~~~~~~~~~~~~ +src/com/example/test.kt:18: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class [WrongStartDestinationType] + provider.navigation(startDestination = AbstractChildClassComp) {} + ~~~~~~~~~~~~~~~~~~~~~~ +src/com/example/test.kt:19: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class [WrongStartDestinationType] + provider.navigation(startDestination = TestAbstractComp) + ~~~~~~~~~~~~~~~~ +13 errors, 0 warnings """ ) } @@ -344,11 +459,17 @@ you can also pass in its KClass reference TestAbstract::class [WrongStartDestina navGraph.setStartDestination(startDestRoute = Outer.InnerClass(15)) navGraph.setStartDestination(startDestRoute = InterfaceChildClass(true)) navGraph.setStartDestination(startDestRoute = AbstractChildClass(true)) + navGraph.setStartDestination(startDestRoute = TestClassWithArgComp(15)) + navGraph.setStartDestination(startDestRoute = TestClassComp::class) + navGraph.setStartDestination(startDestRoute = OuterComp.InnerClassComp::class) + navGraph.setStartDestination(startDestRoute = OuterComp.InnerClassComp(15)) + navGraph.setStartDestination(startDestRoute = InterfaceChildClassComp(true)) + navGraph.setStartDestination(startDestRoute = AbstractChildClassComp(true)) } """ ) .indented(), - byteCode, + testFile, ) .run() .expectClean() @@ -373,11 +494,13 @@ you can also pass in its KClass reference TestAbstract::class [WrongStartDestina navGraph.setStartDestination(startDestRoute = Outer.InnerObject::class) navGraph.setStartDestination(startDestRoute = InterfaceChildObject) navGraph.setStartDestination(startDestRoute = AbstractChildObject) + navGraph.setStartDestination(startDestRoute = OuterComp.InnerObject::class) + navGraph.setStartDestination(startDestRoute = AbstractChildObjectComp) } """ ) .indented(), - byteCode, + testFile, ) .run() .expectClean() @@ -401,12 +524,19 @@ you can also pass in its KClass reference TestAbstract::class [WrongStartDestina navGraph.setStartDestination(startDestRoute = InterfaceChildClass) navGraph.setStartDestination(startDestRoute = AbstractChildClass) navGraph.setStartDestination(startDestRoute = TestInterface) - navGraph.setStartDestination(startDestRoute = InterfaceChildClass) + navGraph.setStartDestination(startDestRoute = TestAbstract) + // classes with companion object to simulate marked with @Serializable + navGraph.setStartDestination(startDestRoute = TestClassComp) + navGraph.setStartDestination(startDestRoute = TestClassWithArgComp) + navGraph.setStartDestination(startDestRoute = OuterComp.InnerClassComp) + navGraph.setStartDestination(startDestRoute = InterfaceChildClassComp) + navGraph.setStartDestination(startDestRoute = AbstractChildClassComp) + navGraph.setStartDestination(startDestRoute = TestAbstractComp) } """ ) .indented(), - byteCode, + testFile, ) .run() .expect( @@ -448,18 +578,61 @@ you can also pass in its KClass reference TestInterface::class [WrongStartDestin navGraph.setStartDestination(startDestRoute = TestInterface) ~~~~~~~~~~~~~ src/com/example/test.kt:13: Error: StartDestination should not be a simple class name reference. -Did you mean to call its constructor InterfaceChildClass(...)? -If the class InterfaceChildClass does not contain arguments, -you can also pass in its KClass reference InterfaceChildClass::class [WrongStartDestinationType] - navGraph.setStartDestination(startDestRoute = InterfaceChildClass) - ~~~~~~~~~~~~~~~~~~~ -7 errors, 0 warnings +Did you mean to call its constructor TestAbstract(...)? +If the class TestAbstract does not contain arguments, +you can also pass in its KClass reference TestAbstract::class [WrongStartDestinationType] + navGraph.setStartDestination(startDestRoute = TestAbstract) + ~~~~~~~~~~~~ +src/com/example/test.kt:15: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class [WrongStartDestinationType] + navGraph.setStartDestination(startDestRoute = TestClassComp) + ~~~~~~~~~~~~~ +src/com/example/test.kt:16: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class [WrongStartDestinationType] + navGraph.setStartDestination(startDestRoute = TestClassWithArgComp) + ~~~~~~~~~~~~~~~~~~~~ +src/com/example/test.kt:17: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class [WrongStartDestinationType] + navGraph.setStartDestination(startDestRoute = OuterComp.InnerClassComp) + ~~~~~~~~~~~~~~~~~~~~~~~~ +src/com/example/test.kt:18: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class [WrongStartDestinationType] + navGraph.setStartDestination(startDestRoute = InterfaceChildClassComp) + ~~~~~~~~~~~~~~~~~~~~~~~ +src/com/example/test.kt:19: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class [WrongStartDestinationType] + navGraph.setStartDestination(startDestRoute = AbstractChildClassComp) + ~~~~~~~~~~~~~~~~~~~~~~ +src/com/example/test.kt:20: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class [WrongStartDestinationType] + navGraph.setStartDestination(startDestRoute = TestAbstractComp) + ~~~~~~~~~~~~~~~~ +13 errors, 0 warnings """ ) } - private val sourceCode = - """ + override fun getDetector(): Detector = WrongStartDestinationTypeDetector() + + override fun getIssues(): MutableList = + mutableListOf(WrongStartDestinationTypeDetector.WrongStartDestinationType) +} + +private val SOURCECODE = + kotlin( + """ package androidx.navigation import kotlin.reflect.KClass @@ -496,6 +669,7 @@ public inline fun NavigatorProvider.navigation( builder: NavGraphBuilder.() -> Unit ): NavGraph = NavGraph() +// source code for classes val classInstanceRef = TestClass() val classInstanceWithArgRef = TestClassWithArg(15) @@ -526,79 +700,180 @@ abstract class TestAbstract class AbstractChildClass(val arg: Boolean): TestAbstract() object AbstractChildObject: TestAbstract() +// classes with companion object to simulate classes marked with @Serializable +class TestClassComp { companion object } + +class TestClassWithArgComp(val arg: Int) { companion object } + +object OuterComp { + data object InnerObject + + data class InnerClassComp ( + val innerArg: Int, + ) { companion object } +} + +class InterfaceChildClassComp(val arg: Boolean): TestInterface { companion object } + +abstract class TestAbstractComp { companion object } +class AbstractChildClassComp(val arg: Boolean): TestAbstractComp() { companion object } +object AbstractChildObjectComp: TestAbstractComp() """ + ) + .indented() - // Stub - private val byteCode = - compiled( - "libs/StartDestinationLint.jar", - kotlin(sourceCode).indented(), - 0x8f4dea5e, - """ +// Stub +private val BYTECODE = + compiled( + "libs/StartDestinationLint.jar", + SOURCECODE, + 0xbfec49d0, + """ META-INF/main.kotlin_module: H4sIAAAAAAAA/2NgYGBmYGBgBGJOBijgUuQSTsxLKcrPTKnQy0ssy0xPLMnM zxPi8ksscy9KLMjwLuES5eJOzs/VS61IzC3ISRViC0ktLvEuUWLQYgAAL/WN klIAAAA= """, - """ + """ androidx/navigation/AbstractChildClass.class: - H4sIAAAAAAAA/41Qz28SQRh9M7sssIAs+ItStbW2hnIQ2njTNFISDQn2UBsO - cBrYDUyAXbMzkB75Wzx7MdGYeDDEo3+U8ZulGg8cPMyb7828vO/73s9f374D - eI4jhqci9ONI+teNUCzlWGgZhY3WUOlYjHR7Imd+eyaUSoMx7G/TXgVK/9Gn - YTE4L2Uo9RmDXesf9xis2nEvjxTSLmxkiIt4zMD6ebjIZcGRJ6meSMVQ6/7f - NC+oyzjQLWNE9n2GUnca6ZkMG28DLXyhBUn4fGnRmsxA1gCo7ZTer6VhTar8 - E4bz9ars8gpPznrlci/n8oxVWa9OeZOdF8qOx6u8af344HDPviz9ZRlSV+1M - ynOM0ynDwdbx/w2IpqIhchdi+SYW7yfPppp2b0d+wFDsyjC4WMyHQXwlhjN6 - KXejkZj1RCwNv3l030WLeBS8lobsXC5CLedBTypJv60wjHTSVOGEgrWTlcsm - Z6o41Sk4hPvEzohzut36V2Tru19Q+JRoHhMaDfAKB4T3NircQtEkSJVxo8Dh - 0dl4NUywdKfqn1H4uNUmvxHc2HA8SXAPh4nCDJnC7QGsDu50cLdDbe9TiUoH - O6gOwBR28WCAtEJR4aGCq/BIwVHwFEq/ASCFXj3QAgAA + H4sIAAAAAAAA/41Qz28SQRT+ZnZZYAFZ8BelamttDeUgtPGmaaQkGhLsoTYc + 4DSwG5gAu2ZnID3yt3j2YqIx8WCIR/8o45ulGg8cPMx773vz5XvvfT9/ffsO + 4DmOGJ6K0I8j6V83QrGUY6FlFDZaQ6VjMdLtiZz57ZlQKg3GsL+NexUo/Yef + hsXgvJSh1GcMdq1/3GOwase9PFJIu7CRISziMQPr5+EilwVHnqh6IhVDrft/ + 27ygKeNAt4wQyfcZSt1ppGcybLwNtPCFFkTh86VFZzITsiaAxk6pfy0NalLl + nzCcr1dll1d48tYrl3s5l2esynp1ypvsvFB2PF7lTevHB4d79mXpL8oQu2pn + Up5jlE4ZDrau/69BtBUtkbsQyzexeD95NtV0ezvyA4ZiV4bBxWI+DOIrMZxR + p9yNRmLWE7E0+KbpvosW8Sh4LQ3YuVyEWs6DnlSSflthGOlkqMIJGWsnJ5eN + z1RxqlNwKO4TOiPMKbv1r8jWd7+g8CnhPKZoOEALBxTvbVi4haJxkCqjRobD + o7fRahhjKafqn1H4uFUmvyHcyHA8SeIeDim/SpZM4fYAVgd3OrjbobH3qUSl + gx1UB2AKu3gwQFqhqPBQwVV4pOAoeAql3yqWmbDQAgAA """, - """ + """ + androidx/navigation/AbstractChildClassComp$Companion.class: + H4sIAAAAAAAA/51Sy24TQRCsmXX82BhwEh4274eRkkhk4yjiEoQUjECWnCCF + yJcc0Hh3iMfenY1mx1aOPvEh/EFOSByQlSMfhehZG7gCl57uqq7unZr9/uPr + NwC7eMqwK3RkUhWdB1pM1KmwKtXBfj+zRoS2PVBx1I5FlrXT5KzpgtDUUAJj + qA3FRASx0KfBu/5QhrYEj6H4QmllXzJ46xu9KpZQ9FFAiaFgBypjeN79n4V7 + DK317ii1sdLBcJIESltptIiD1/KjGMe2nWqaMA5tag6EGUmzt9Hzwd3itWb4 + h/yQ5CzD1r9NY1j5JTiQVkTCCsJ4MvHISOZCxQUwsBHh58pV25RFLYbmbOr7 + vM59XqNsNi1ffvLqs+kO32avSmV++bnIa9z17jA3YfPvHSrhDkPlt00My4di + 8taIs8HWyJLn7TSSDNe6SsvDcdKX5lj0Y0JWu2ko4p4wytULsNrRWpp8tqSX + 8t+nYxPKN8pxjaOxtiqRPZUpat7XOrX5h2Vokc0Fd3c6uXtwusIDqgJnBp1L + m19QvsjphxSLOXiMRxSr8wZU4AM1RtnyQvyMTr4QVy9yY53g5hycC/LsCq4S + 5+ExVX4uuot7aOBJvvA+mvmPTh5Qb+0EXgcrHax2sIbrlOJGh2beOgHLUEeD + +Ax+htsZij8BRr5n4CUDAAA= + """, + """ + androidx/navigation/AbstractChildClassComp.class: + H4sIAAAAAAAA/5VSS08TURT+7vQ1HYqUiljABwpiqcgUQlwIIcEaSZPSBZIm + wuq2Hcul0ztk7m3Dkt/i2g1RQ6KJIS79UcZzpxUSZYGLOeeeM9/5zvPnr6/f + AaxhlaHIZSsMROvElbwv2lyLQLpbDaVD3tTlQ+G3yj5Xqhx0j1NgDPPX4fc8 + pS9jImSMIbkhpNCbDPHC/mKdIVZYrGeQQMpBHDbZPGwzsP0MHIykYSFDUH0o + FMNS9eZVrVOmtqe3DBml2GewN5r+MPXazXnmjeCSACncZlgpVDuBJh73qN91 + hdReKLnvvvbe855PTUri6DV1EO7wsOOF64Pe7jiYwCRD+pKM4cV/NHNVxHoG + eUyZsUwzzFWDsO0eeboRciGVy6UMdMSj3Fqgaz3fpzGM/6l4x9O8xTUnn9Xt + x2jVzIi0EaCRd8h/IoxVoldrhWH74jTnWHkr+i5OHSs74lh2PH9xOptatUrs + JUu9Gs0ls9a0VYr9+JC0svHd8UvLppDpuJ3IJg0dHdXCtS3/fSVUHlUzUuP9 + 7ZAfHy53NMPMbk9q0fUqsi+UaPje1lWrdB7loOUxjFWF9Gq9bsML9zhhGHLV + oMn9Og+FsYfOTEVKL4xm61Gw8zbohU3vjTD/poZ56v9kwQrNPE6zsTBlVkAl + PiMrSfoe6Zy5VtIxshORd4msTUJbpJ3iOdLFmS8YPYsYng8jgT0sk5wcoHAL + Y2YX9DJstDpk6RtwuWZFpBPFzxj9eC1NZgAY0thUVGoYnEe0ZGS+YeIdO8fd + T5g5izwxIjYJGV2oFTVWiriL1DBQJv99YnxwgFgFDyuYreARHtMTcxXM48kB + mMICnh7AVhhTKCg4CosKSYWswrhC/jfYorpPVwQAAA== + """, + """ androidx/navigation/AbstractChildObject.class: - H4sIAAAAAAAA/41Sy27TQBQ9M0kcxwn0waMJ5VFapFIWuK3YUSGFCJAlYyQa - RUJdjR9qpnFs5JlEXWbFh/AHFYtKIKEIdnwU4o4JD4ku8Mj3zrlz5tyZY3/7 - /vEzgEe4x7AtsrjIZXzqZmIqj4WWeeZ2Q6ULEeneUKbxq/AkiXQdjGHjInI/ - UfrXhjoqDNaBzKR+wlC5vzNooQbLQRV1hqoeSsWw4/9nz8cM9kGUlmoOuJGw - veCw3w16z1q4BKdBxcsMW35eHLsniQ4LITPliizLdamq3CDXwSRNSWrFH+Wa - xNyXiRax0IJqfDytkBPMhIYJYGAjqp9Kg3ZpFu9Rg/nMcXibl+98Zn99x9vz - 2T7fZU/rNv/y3uLL3FD3GTYvvNzfHlHbZiCmLwrxdvhwpBnWX08yLceJl02l - kmGadP+cn0zr5XHCsOTLLAkm4zAp+oI4DKt+Hol0IApp8KLoHOaTIkqeSwM6 - C+HBP7LYI+eq5XU7xkjKtwlZlJcpcxq1Et0h5BpTKNcenMM+K5c3FmSgi7sU - Wz8JaJAUYKP5e/Masc3T/AT+5hytD1g6Kwscm2W8ha3yX6QPRAKrR6h4uOLh - qodruE5TrHloo3MEpnAD67Su4CjcVLB+AMKW4JLIAgAA + H4sIAAAAAAAA/41Sy27TQBQ9M0kcxwm0lEcTCrS0SFAWuK3YUSGlESBLxkg0 + ioS6Gj/UTOPYyDOJusyKD+EPKhaVQEIR7PgoxB0THhJd4JHvnXPnzLkzx/72 + /eNnAI9xj+G+yOIil/Gpm4mpPBZa5pnbDZUuRKR7Q5nGr8KTJNJ1MIaNi8j9 + ROlfG+qoMFj7MpP6KUPlwfaghRosB1XUGap6KBXDtv+fPZ8w2PtRWqo54EbC + 9oLDfjfoPWvhEpwGFS8zbPl5ceyeJDoshMyUK7Is16WqcoNcB5M0Jakr/ijX + JOa+TLSIhRZU4+NphZxgJjRMAAMbUf1UGrRDs3iXGsxnjsPbvHznM/vrO96e + z/b4Djuo2/zLe4svc0PdY9i88HJ/e0Rtm4GYvijE2+GjkWZYez3JtBwnXjaV + SoZp0v1zfjKtl8cJw5IvsySYjMOk6AviMKz4eSTSgSikwYuic5hPiih5Lg3o + LIQH/8hil5yrltftGCMp3yFkUV6mzGnUSrROyDWmUK49PId9Vi5vLMjAAe5S + bP0koEFSgI3m782rxDZP8xP4m3O0PmDprCxwbJbxNrbKf5E+EAmsHKHi4aqH + ax6u4wZNseqhjc4RmMJNrNG6gqNwS8H6AX2Z6w7IAgAA """, - """ + """ + androidx/navigation/AbstractChildObjectComp.class: + H4sIAAAAAAAA/5VSW2sTQRT+ZnLbbKKt9dLEem8RL+i2xTeLEIPKwrqCjQHp + 02x2aabZzJSdSehjnvwh/oPiQ0FBgr75o8Sza6igfXGXPbf5znc43+yPn5+/ + AniCDYaHQsWZlvGRp8RU7gsrtfI6kbGZGNjuUKbxm+ggoVCPD2tgDBtnNfQS + Y0+bCmSJobojlbTPGEr37vebqKDqoowaQ9kOpWF4FPzH7KcMzs4gLRhd8JzG + 8cPdXifsvmjiHNw6Fc8zrAc62/cOEhtlQirjCaW0LZiNF2obTtKUqC4EI22J + zHudWBELK6jGx9MSqcJyU88NGNiI6kcyzzYpirdowHzmurzFi28+c75/4K35 + bJtvsuc1h3/7WOXLPIduM9w9c8G/taLRjVBMX2XicPh4ZBnW3k6UlePEV1Np + ZJQmnT87kHhdHScMS4FUSTgZR0nWE4RhWAn0QKR9kck8XxTdXT3JBslLmSft + BXH/H1pskXrlYuV2Lib5G5RVyS+T5/RWiuwmZV4uDPnKgxM4x8XxrQUYeIfb + ZJu/AagTFeCgcdq8Suj8aXwBf3+C5icsHRcFjjuFvY714t+kSyKClT2UfFz0 + ccnHZVyhEKs+WmjvgRlcxRqdG7gG1wyqvwCOLhDu2AIAAA== + """, + """ androidx/navigation/InterfaceChildClass.class: - H4sIAAAAAAAA/41Qz28SQRT+ZhZYWKgsVCtt/VWrtnBwaePNprEl0ZBgTWrD - AU4Du8KUZdfsDKRH/hbPXkw0Jh4M8egfZXxDSRMTDh7mvfe99833fvz+8+Mn - gBfYY9gTkZ/E0r/yIjGVA6FlHHnNSAfJB9EPGkMZ+o1QKGWDMbiXYiq8UEQD - 713vMuhrGxbDziqJi0DpGxkbaYbMkYykPmZI7XeqbQZrv9ouwEbOQQoOYZEM - GFingALWcuC4RVQ9lIqh2vrPKV9Sm0GgT4wS6XcYSq1RrEMZeW8DLXyhBVH4 - eGrR/syYnDGgviPKX0mD6hT5Bwyn81nZ4RW+ePOZw928w7NWZT475HV2ulbO - uHyL161fnzLcTZ2XblCW2FupbNrNGKVDht2V8/9zIhqLpsifiembRHwcPh9p - 2r4R+wFDsSWj4Gwy7gXJheiFlCm34r4I2yKRBi+Tzvt4kvSD19KAzfNJpOU4 - aEslqXoSRbFedFU4oNOmqFeGXtncmlbmFNvIkn1M6JgwJ+/UviNf2/6G4pcF - Z5es+QUc4QnZjWsWXJTMESkyanRz0l1fannmtuTTta8ofl4pU7gmLGU4ni7s - Dp6Rf0W121S704XVxEYTd5uoYJNCbDWxjXtdMIX7eNCFrVBSeKhQUHikkFUo - K6z/BWy7OjDsAgAA + H4sIAAAAAAAA/41Qz28SQRT+ZhZYWKgsVCul/qpVWzi4tPGmNrZNNCRYk9pw + gNPArjBl2TU7A+mRv8WzFxONiQdDPPpHGd9Q0sSEg4d5733vffO9H7///PgJ + 4Bl2GXZF5Cex9C+9SEzlQGgZR14z0kHyQfSDk6EM/ZNQKGWDMbgXYiq8UEQD + 713vIuhrGxbD9iqJ80DpaxkbaYbMCxlJfciQ2uvU2gzWXq1dgI2cgxQcwiIZ + MLBOAQWs5cBxg6h6KBVDrfWfUz6nNoNAHxkl0u8wlFqjWIcy8t4GWvhCC6Lw + 8dSi/ZkxOWNAfUeUv5QGNSjy9xmO57Oywyt88eYzh7t5h2etynx2wBvseK2c + cXmVN6xfnzLcTZ2VrlGW2NVUNu1mjNIBw87K+f85EY1FU+RPxfRNIj4On440 + bX8S+wFDsSWj4HQy7gXJueiFlCm34r4I2yKRBi+Tzvt4kvSD19KAzbNJpOU4 + aEslqXoURbFedFXYp9OmqFeGXtncmlbmFNvIkn1I6JAwJ+/UvyNf3/qG4pcF + Z4es+QW8xCOyG1csuCiZI1Jk1OjmpLu+1PLMbcmn619R/LxSpnBFWMpwPF7Y + bTwh/4pqN6l2qwuriY0mbjdRwSaFqDaxhTtdMIW7uNeFrVBSuK9QUHigkFUo + K6z/BWao/b3sAgAA """, - """ + """ + androidx/navigation/InterfaceChildClassComp$Companion.class: + H4sIAAAAAAAA/51Sy27TQBQ9M07zcAO4LY+E9yNILYi6qUAsipAgCGQpbcVD + 2XSBJva0mcQeV/Yk6jIrPoQ/6AqJBYq65KMQd5wA67K5c+8599zrOeOfv77/ + APAUDxmeCR1lqYpOfC0m6kgYlWo/0EZmhyKUnYGKo04s8ryTJsctG4SmjgoY + gzcUE+HHQh/5+/2hDE0FDkP5hdLKvGRw1jd6dSyh7KKECkPJDFTO8Lz7Xxt3 + GNrr3VFqYqX94STxlVVoEftv5KEYx6aT6txk49Ck2a7IRjLb2ei54HbzWiv8 + R35OCpZh83zTGFb+CHalEZEwgjCeTByyktlQswEMbET4ibLVFmVRm6E1m7ou + b3CXe5TNptWzL05jNt3mW+x1pcrPvpa5x23vNrMTHp/DogpuMNT++sSwvCcm + 7zJxPNgcGXK9k0aS4VJXabk3Tvoy+yT6MSGr3TQUcU9kytYLsB5oLbNitqS3 + cj+m4yyUb5Xlmh/G2qhE9lSuqPmV1qkpvixHm3wu2cvTye2T0x3uUOVbN+hc + evQN1dOCvkuxXIDvcY9ifd6AGlzAY5QtL8RP6OQLcf20cNYKrs7BuaDILuAi + cQ7uU+UWopu4hSYeFAtvo1X86+QB9XoHcAKsBFgNsIbLlOJKQDOvHYDlaKBJ + fA43x/Uc5d8GoYhiKAMAAA== + """, + """ + androidx/navigation/InterfaceChildClassComp.class: + H4sIAAAAAAAA/5VS308TQRD+9lp67VGkLYql+AMEtRThADEmQkiwRtKk1Iik + ifC0bZey7XWP3G0bHvlbfPaFqCHRxBAf/aOMs6XCgyaGh5vZmZv55psfP399 + /Q5gFasM81w1Al82jl3Fe7LJtfSVW1JaBAe8LoqH0msUPR6GRb9zZIMxpFq8 + x12Pq6b7ptYSdW0jwjD9L5hdEepLKBtDDLF1qaTeYIjm9+aqDJH8XDUJGwkH + UThk86DJwPaSSGIkAQs3KFQfypBhoXwNpmtUqin0pkGjGnsM8fW6N6j97BpA + s0ZwRRE2bjEs58ttXxOQ2+p1XGlyFPfcV+KAdz1d9FWog25d+8E2D9oiWLvo + 7raDcWQZEpdgDM+v084Vi7Ukcpg0k7nDMFP2g6bbEroWcKlClyvl6z5Q6FZ8 + Xel6Hg0i/YfyttC8wTUnn9XpRegCmBEJI0BTb5P/WBpriV6NZYat85OMY2Wt + /nd+4lipYceKR7PnJ1P2irXEXjD75UgmlrJy1lLkx4eYlYrupC+tOKXkovGh + VMzArRi+/70S4kZUhiu8txXwo8PFtmaY3OkqLTuipHoylDVPbF71SedR9BuC + YbQslah0OzUR7HKKYciU/Tr3qjyQxh44kyWlRNAfrKBk553fDeritTT/JgZ1 + qn9VwTINPErEYqQnzAbovUCDipG+Rzpj7pV0hGwbcZKLZG1QtEXaKZxhuDD5 + BaOnZFlwB5nAWyyRHL+IQgppswp6GTTaHOGODbBcsyHSQ4XPGP34T5jkRcAA + Jo6bSAySs+jvGMlvGH/PzjDxCXdP+54ItWYKsj6JHDW30sd+gqeki+S/T4hT + +4iUMF3CgxJmMEtPPCzhER7vg4XIY24f8RDpEIUQyRDzoTEzIcZC5H4Dj/nZ + kW0EAAA= + """, + """ androidx/navigation/InterfaceChildObject.class: - H4sIAAAAAAAA/41STW/TQBB9u0kTxwk0LV8J5asUUOkBtxU3ClKJAFkKRmqj - SKinjb0kmzhrZG+iHnPih/APKg6VQEIR3PhRiFkTygEksLUz897OvN0Z+9v3 - j58BPMQ9hk2hozRR0bGnxVT1hVGJ9nxtZPpGhLI1UHH0qjeUoSmDMdSHYiq8 - WOi+94stMKz/TaMjM3OmU8YSQ2lPaWWeMBQ273drKMNxUUSFoWgGKmPYav/v - XR4xOHthnMu54FbD8YPDzn7QelbDMmoVIusMG+0k7XtDaXqpUDrzhNaJyWUz - L0hMMIljklppjxJDYt5LaUQkjCCOj6cFGhGzpmINGNiI+GNl0TZF0Q4dMJ+5 - Lm/wfM1nztd3vDGf7fJt9rTs8C/vS7zObequvcs/p0TnVgMxfZGKt4MHI8Ow - djDRRo2lr6cqU71Y7v9ugMbWSiLJsNxWWgaTcU+mHUE5DKvtJBRxV6TK4gXp - HiaTNJTPlQXNhXD3D1ns0OiK1G2JVtPOkvwtatniVfKcXvp0hNYJeXYu5Je2 - TuGe5Nu3F8nAY2yQrf1MQJUiUOG5s+IrlG2f6ifw16c4/wErJznBcSe3N3E3 - /08ZLpDAxSMUfFzycdmn0gaFaPq4irUjsAzXcJ32M9Qy3Mjg/AA8NOf95AIA + H4sIAAAAAAAA/41STW/TQBB9u0kTxwk0LV8JBUopoNIDbituVJVKBMhSMBKN + IqGeNvaSbOKskb2JesyJH8I/qDhUAglFcONHIWZNKAeQwNbOzHs783Zn7G/f + P34G8Aj3GbaEjtJERSeeFlPVF0Yl2vO1kekbEcrWQMXRy95QhqYMxlAfiqnw + YqH73i+2wLDxN42OzMy5ThlLDKV9pZU5YChsPejWUIbjoogKQ9EMVMaw3f7f + uzxmcPbDOJdzwa2G4wdHncOg9bSGZdQqRNYZNttJ2veG0vRSoXTmCa0Tk8tm + XpCYYBLHJLXSHiWGxLwX0ohIGEEcH08LNCJmTcUaMLAR8SfKoh2Kol06YD5z + Xd7g+ZrPnK/veGM+2+M77EnZ4V/el3id29Q9e5d/TonOrQZi+jwVbwcPR4Zh + 7dVEGzWWvp6qTPViefi7ARpbK4kkw3JbaRlMxj2ZdgTlMKy2k1DEXZEqixek + e5RM0lA+UxY0F8LdP2SxS6MrUrclWk07S/K3qWWLV8lzeunTEdog5Nm5kF/a + PoN7mm/fWSQDB9gkW/uZgCpFoMIL58XXKNs+1U/gr89w8QNWTnOC425u13Ev + /08ZLpHA5WMUfFzxcdWn0gaFaPq4jrVjsAw3cJP2M9Qy3Mrg/ACDO+xh5AIA AA== """, - """ + """ androidx/navigation/NavDestination.class: H4sIAAAAAAAA/4VRy07CQBQ9M0CBivJQEXwkalyoC4vEncbERzQkiIkaNq4G 2sBAmZp2aFjyLf6BKxMXhrj0o4y3lb2bk/O4d+bOne+fj08AJ9hi2BXK9j1p @@ -610,7 +885,7 @@ object AbstractChildObject: TestAbstract() vwJkYcb5Roxr2Iy/isanLPeMRAOLDSw1kEeBKIoN6l9+BguwglXKA5gBygGM X6tGzkfnAQAA """, - """ + """ androidx/navigation/NavDestinationBuilder.class: H4sIAAAAAAAA/41QTW/TQBSct86nE4hToKR8tZV6oEHCoeoprSpRIlAkUySK cslpE1vpNs4aeddRj/kt/ANOSBxQxJEfhXg2OXGhl3kzs7P79r1fv7//AHCM @@ -623,7 +898,7 @@ object AbstractChildObject: TestAbstract() ZSLwhLFSmG08ZWz+DcBFg6uDZ0XKwW5RH2GPa58zTc7cGcMZ4u4QrSE8tJli a4h7uD8GGTzA9hhlg4bBQ4OOwY5B9Q/QTbpQiwIAAA== """, - """ + """ androidx/navigation/NavGraph.class: H4sIAAAAAAAA/31SW28SQRT+ZinLQi/Q1tYW26pttbTVLjY+SdPES6oYRC2E lz4NMKEDy6zZHUgf+S3+A580Phjioz/KeGahiql1kzmX79y+2TM/fn79BuAx @@ -640,7 +915,7 @@ object AbstractChildObject: TestAbstract() bFS+PEoZlxsrjZsU34uyZ7FvMENiLgIeRPI+HpI+IXSFJq+eIVZEtohbRaxh nUxsFHEbd87AzNU2z5AMkQqxFcIOMR1iO8S9SKZDzPwCFg2MhPgDAAA= """, - """ + """ androidx/navigation/NavGraphBuilder.class: H4sIAAAAAAAA/61TW08TQRT+Zre0S6nSLgKlIoKAXGUL8lZCIhhNQ0ViTRPD g5m2a5my3SUz04ZHfov/wCeND4b46I8ynl2WS6IlPPiw5zbf+c6ZM2d//f7+ @@ -659,41 +934,41 @@ object AbstractChildObject: TestAbstract() g1H1C5kmeQkxsRHpVTwnXabTKer18SHMMqbLmCnjCWbJxFwZ83h6CKawgMVD pBUmFJYUlhWGFAoKIworCpMKjxRSfwCslzbYagUAAA== """, - """ + """ androidx/navigation/NavGraphKt.class: - H4sIAAAAAAAA/71W31MTVxT+bn6QzRrIEoxAEBCJMaCYGPEnSIsomgpIBbHW - tnZJlrAQdp29m4x96TB96Eunf4AvPvQv0PqgU2Y6DH3rH9X23GVDQgKEmc74 - kHvPPfd853zn3HPv5u9//vgTwCgKDH2qkbdMPf8qZahlvaDaummk5tTyfUt9 - ufrQDoAxKGtqWU0VVaOQerS8puVI62WQqwCGW8mZoxzdKenFvGaNzdR7Ghta - YpgfX7zVuDPxf1y2jNurOp+QIFGK66Zd1I3UWnkjpRu2ZhlqMZU1bEs3uJ7j - AcgM0dyqllufM+25UrE4r1rqhkaGDOeTjf5rNAvCSYEihhBCq4wTaKNycVu1 - 7Lsat3XD4SxBYQjH9fhKvLZmLEu2ccFzn/rcsdJmiDQyY/jl0KIJ0bTmLbOs - H1y2xrRmagq3UjJywhVPTbvS5bGhI5kSm+1PyGZ85Hjt4np5YujUYs1TGJwx - rUJqTbOXLZX6JaUahmmru7HddiGr+FFWZKIuFzUyCyzvspDQw3D6qMgB9Iom - 1onlBIM3KTqsH2dk9GGAuvKYZWXwW2bJ1vY3i1tPhjPNDphwVf/xvLailoo2 - w5tP2WTZAy54s0Prqb9VL0qZ0T36HQXNniqqnGcNuqlGTnusrTAMJA92u0j3 - 2LEmv0quAdbfBBTCRYwE4cElhlh94Ke6vTppFRxHyWbxXWOi0Zk7zEnieC5C - yOCKIDXK0EWksoahWY0lOYzSI2opK14FEaWofrCLgwk1OAjhBm4KQrcYpPFc - 0e373iOzCeC2jAlxH+LHyTqAzxl8yezuVbojYxJTh0Dr+QVwT8a0MG+vtOus - Zqt51VYpd89G2UufUyaGoBhAb/u6EDy0+UoXUpqk/GWGf7c378jbm7KnyyN7 - JG/jrHicbcW1qZi6otJWo4kNKKGYJ916Vpa2N5W2LjbsSYfpp2RalHbaCD/Y - +VmK3XaMIqTvqOgzsuRRTsZ8XSwdzXQqp2IdEV+EcM7Ymu7c+a3FI3UJ9F8f - 2fbm2XZiQzhGeonix3wE95LWR0p/VdmiBEgpkTJYVcrKiZ2fPAHZL+28zqSZ - KEOGORVapC9zs4scqZS79k3qqyjvvbI1+oSbRmV38YeX4pntPvRMA3hGf1yq - B8twohLt0jo9DT2PS4atb2hZo6xznR7tyepDTs0zZebpLQ3P6IY2V9pY1qxF - 8bALmmZOLS6pli7WrjK4oBfo+1+ySI7X+937i7EvQOuCrebWZ9WXrotQlalG - 2/KCWbJy2rQu9rpdl0sNRHGZLpKPms6LmHh9qNjf0qqF5m6aY+LyN+jo/tXp - Ako3/LTy4DtazdIsGjk8HAl+RPhCpJ1G7+13osvxwoW1IYjvST5Dpm20jqCD - dgmEk4iKi0GSglO0ozq4AESITiIrQpik8dPcWxtiJHJaBLrm20Lfsw84+3Zf - wCgGnYCjBIxCcgKKzHsp4KATsNcNKKQ4zjl0etGDBFHcJdG1L+tl+nX73EVl - jFVkJYjzSJIs+P5K4BaaE1Gf/8fX8LPZZsS9yDkjCzoZRByu/VSGASpcP33b - q9n01WSTwJCbTWIvm8ReNgk3m24M44J7WqcdG8D3O1JvHfKVioFQtfl2I+30 - Sx3qaj3qfB3qGq43osbqUUP7UBLGqTV2izfldBMwuIUJKs9n75HawuQzJfwB - d9/j6hamHfn+e4y923Pa5oDOQSY6p8i5F3lay7Q7ja/xnIJozpF+gxWay6R/ - QKXMPoc3iy+yeJjFDGazmMOjLObx5XMwjsdYICDHRY4RjmGOCxwZjiscabpJ - HDc4bnJc47jO4edY5HjijFFOf/SxxDHIEXc0PRxPOb76Dzb5xaFeDQAA + H4sIAAAAAAAA/71W31MTVxT+bn6QzRrIEoyQICASY0QxMeJPkBZRNBWQCmKt + be2SLGEh7Dp7Nxn70mH60JdO/4C+9KF/gdYHnTLTYehb/6i25y4bEhIgzHTG + h9x77rnnO+c75557N3//88efAEZRZOhXjYJl6oXXaUOt6EXV1k0jPadWHljq + q9VHdgCMQVlTK2q6pBrF9OPlNS1PWi+DXAMw3E7NHOXoblkvFTRrbKbR09iF + JYb58cXbzTsT/8dl27i9qvMJCRKluG7aJd1Ir1U20rpha5ahltI5w7Z0g+t5 + HoDMEM2vavn1OdOeK5dK86qlbmhkyHA+1ey/TrMgnBQpYgghtMs4gQ4qF7dV + y76ncVs3HM4SFIZwQk+sJOprxnJkmxA896nPHStthkgzM4afDi2aEE1r3jIr + +sFla05rpq5wK2UjL1zx9LQrXRm7cCRTYrP9EdmMjxyvXVwvTw2dWqx1CkMz + plVMr2n2sqVSv6RVwzBtdTe22y5klTjKikzU5ZJGZoHlXRYSehlOHxU5gD7R + xDqxnGDwpkSHDeCMjH4MUlces6wMfsss29r+ZnHryXCm1QETruY/UdBW1HLJ + Zvj1YzZZ7oAL3urQehtv1ctydnSPfldRs6dKKuc5g26qkdeeaCsMg6mD3S7S + PXasya+Sb4INtACFcAkjQXhwmSHeGPiZbq9OWkXHUapVfNeYaHTnD3OSPJ6L + ELK4KkiNMvQQqZxhaFZzSQ6j9JhaykrUQEQpqh/s4mBCTQ5CuIlbgtBtBmk8 + X3L7vu/IbAK4I2NC3IfEcbIO4FMGXyq3e5XuypjE1CHQRn4B3JcxLcw7q+06 + q9lqQbVVyt2zUfHS55SJISgG0Nu+LgQPbb7WhZQhqXCF4d/tzbvy9qbs6fHI + HsnbPCseZ1txbaqmrqh01Gnig0oo7sm0n5Wl7U2lo4cNezJh+inZNqWTNsIP + d36U4nccowjpu6r6rCx5lJNxXw/LRLPdyql4V8QXIZwztme6d35r80g9Av3X + B7a9ebaT2BCOkV6i+HEfwb2k9ZHSX1O2KQFSSqQM1pSycmLnB09A9ks7v2Qz + TJQhy5wKLdKXudVFjlTLXf8m9VeV91/bGn3CTaO6u/jdK/HMxg490wCe0x+X + 2sEynKhGu7xOT0Pvk7Jh6xtazqjoXKdHe7L2kFPzTJkFekvDM7qhzZU3ljVr + UTzsgqaZV0tLqqWLtasMLuhF+v6XLZITjX73/mLsC9C+YKv59Vn1lesiVGOq + 0ba8YJatvDati72Y63KpiSiu0EXyUdN5ERevDxX7a1q10RyjOS4uf5OO7l+D + LqDE4KeVB9/QapZm0cjh4UjwA8IXI500eu+8FV2Oly6sA0F8S/IZMu2gdQRd + tEsgnERUXAySFJyiHdXBBSBCdBNZEcIkjZ/mvvoQI5HTItB13xb6n7/H2Tf7 + AkYx5AQcJWAUkhNQZN5HAYecgH1uQCElcM6h04deJIniLomefVkv0y/mcxfV + MV6VlSDOI0Wy4PszgdtoTkZ9/u9/gZ/NtiLuRd4ZWdDJIOJwHaAyDFLhBujb + Xsumvy6bJC642ST3sknuZZN0s4lhGBfd0zrt2AC+35F+45CvVkzY1+cbQ8bp + lwbUtUZUqgF1HTeaUWONqOF9KAnj1Bq7xZtyugkY2sIEleeTd0hvYfK5En6P + e+9wbQvTjvzgHcbe7jntcEBJyETnFDn3okBrmXan8SVeUBDNOdKvsEJzhfQP + qZS5F/Dm8FkOj3KYwWwOc3icwzw+fwHG8QQLBOS4xDHCMcxxkSPLcZUjQzeJ + 4ybHLY7rHDc4/ByLHE+dMcrpjz6WOIY4Eo6ml+MZxxf/AV3xdy9eDQAA """, - """ + """ androidx/navigation/NavigatorProvider.class: H4sIAAAAAAAA/41Ry0rDQBQ9M2nTGqt9+Gp9gC7Ex8LU4k4RVFAC9YFKN66m Tahj0xlJpqXLfot/4EpwIcWlHyXeRD/AzeE8Zrhn7nx9v38AOMAaw6ZQfqSl @@ -705,9 +980,9 @@ object AbstractChildObject: TestAbstract() mbDwewBTcNJ8JcUlrKYfRvUpKzzA8jDjYdZDESWiKHuoYO4BLMY8FiiP4cRY jGH/AKZPGqDtAQAA """, - """ + """ androidx/navigation/Outer$InnerClass.class: - H4sIAAAAAAAA/41U32/bVBT+rp0fjpu2Tttt/RE2oKEk6Ta3ZaNj7QZtoatL + H4sIAAAAAAAA/41U32/bVBT+rp0fjpu2Tttt/RE2oKEk6Ta3ZWNl7QZtoatL mo4WVYzycpOYxG1qB9upxgvq0/6ESfCChBBPfRgStIhJqGxv/E0IcW7sJSMd VSX7nnOPz/nOd88513/98/sfAG5gkyHD7YrrWJWHus33rSr3LcfW15u+6WYM 2zbdpTr3vDgYg7bD97le53ZVXy/tmGU/DpkhNm/Zln+XIZI1clsMcja3lUQU @@ -724,53 +999,134 @@ object AbstractChildObject: TestAbstract() XN6oXd+lexIJ+tZfsGyz2Nwrme6norSiok6Z17e4a4l9aBzbaNq+tWca9r7l WWRa6LSFoXfT5+XdNd4IvTPd3ve5y/dMYvWfsGSHnUlbddNpumVz2RIQIyHE 1ql0NEcS/cbE6QfEr4s0hXT6IdC6Srtl+i6RVPPHSOTHfkXvz7ST8DGtfRDN - fpfiZ5EgWaDdxcCbvvWLsSBNoNIUQaM3wNTFtJCM5n9B72EbLtYyzrZgkoFD - CJMici+Cx7uD2SsD6KdCsCJgmlgKTomnkB6MHePSk3ZQQDbRJpsIya6FbC4A - WgLDGAlzT4TFSqUj33wLRTCYz48dYSyALNIqgwkEutZh+tskBbX0U1x5cIzX - B948woSIPEJOyx3h6hGuP+k6Rjpk9BIPWvV2DSbCGrQY/IYb3WVQwniGm9SW - gMcXJEW7MvnJnxCNHE7+Cek7ROXDyRNIawLoKr3fC0sk6Emx1T45rvyNVJz2 - nYpl2hXL4BbeozzrpMcFqdlWDe63Qulm4R5WqHyftAANbJD8jOy3qVNz25AN - zBu4Y+Au3icVHxhYwOI2mIclfLiNfk88H3lQW2vMg+Yh5WHAw6CHmy3jLQ+6 - hzTp/wKll0bx9QcAAA== + vkXxs0iQLNDuYuBN3/rFWJAmUGmKoNEbYOpiWkhG87+g97ANF2sZZ1swycAh + hEkRuRfB493B7JUB9FMhWBEwTSwFp8RTSA/GjnHpSTsoIJtok02EZNdCNhcA + LYFhjIS5J8JipdKRb76FIhjM58eOMBZAFmmVwQQCXesw/W2Sglr6Ka48OMbr + A28eYUJEHiGn5Y5w9QjXn3QdIx0yeokHrXq7BhNhDVoMfsON7jIoYTzDTbwb + 8viCpGhXJj/5E6KRw8k/IX2HqHw4eQJpTQBdpfd7YYkEPSm22ifHlb+RitO+ + U7FMu2IZ6td7lGed9LggdatVg/utULpZuIcVKt8nLUADGyQ/I/tt6tTcNmQD + 8wbuGLiL90nFBwYWsLgN5mEJH26j3xPPRx7U1hrzoHlIeRjwMOjhZss460H3 + kCb9X5rxH871BwAA """, - """ + """ androidx/navigation/Outer$InnerObject.class: - H4sIAAAAAAAA/41TS08TURT+7p0+plMe5SFPxQcgLShTEFcQEyQ+hpRiLMEo - q0s70oEygzO3DUtW7ty6cOnCFQuJCxJNDErc+KOI5w6jIARj0t7znTPnnO/M - d+78PPr8FcAU7jIMC7fie05l23RFw1kT0vFcc7EubX/Icl3bX1xdt8syCcaQ - WRcNYdaEu2b+jmoMiRnHdeQ9Bi2bW25CHAkDMSQZYrLqBAwjhf9imGbQpVeS - vuOuMXRmc4UTtuMoZQwWPH/NXLflqi8cNzCF63oybBiYRU8W67UaZaVPtdXR - Qo2rIqjOeRU7HNLSfkwdvaHB7Vd1UaMJL2ULZ99sOveCYehfbEQlVms20cU9 - WbV9hvbzXYh6plwL9THAlSi6VSwtzRbnHjShD0aKgv0MbYUNT1KauWBLURFS - UCHfbGi0I6aOlDrAwDYovu0oL0+oMsHw8mBnwOA93OCZgx2D6wqkI6sbKpRp - 0Q9fGz0HO5M8z+4ndf79fYJn+HxHRuvj+diknon3xXpYnj0+fKvNpzIJiiYJ - M8I64ZTCim2SqRl6L9xmEjnSvigaj3yxVR3fkAz9T+uudDZty204gUNyzZ5I - SBfkeCWtBce1i/XNVdtfUpIqJb2yqC0L31F+FGwuSVHeWBBbkT90tvcT4YtN - mwb5i6QpvAxzNREENrlGyav7Zfuho1r0Ri2Wzw2HCdpMLBS9Vy2K7C3yEmSb - ycbpaTz0bpNnqtWo6Og+9D0CHONRsvrITDqbjhOQolaqaZoiPCy+HhVr7a0f - w0cn6VqUfpqZvkK0Rbwnpe27F5QydKAzYrLIcrLdo2MfEI/tjn0Df4e4tjt2 - AP4sthsOnqczBp7Uw2ZdxwVRM4W66M9IHajLTJ8OAR09f6ToDguA9Bfw5/vo - /YTLe2FAwySdSkeOUbSQqndCvjESSI3GcIXkGViBZuGqhWsWvd0Nghi0MITh - FbAANzGyAiNQv2yARICOEHQFyIQgTecvRvQ+5dsEAAA= + H4sIAAAAAAAA/41US08TURT+7p0+plMe5SFPxQcgBZQpCCuICRIfQ0oxlmCU + 1W070oEygzO3DUtW7ty6cOnCFQuJCxJNDErc+KOI5w6jIERj0t77nXPPOd+Z + 79yZH8efvgCYxgzDsHArvudUdkxXNJx1IR3PNZfr0vaHLNe1/eXShl2WSTCG + zIZoCLMm3HXzl1djSMw5riPvMmjZ0dUmxJEwEEOSISarTsAwkv8vhlkGXXpF + 6TvuOkNndjR/ynbipYjBvOevmxu2LPnCcQNTuK4nw4KBWfBkoV6rUVT6TFkd + LVS4KoLqglexwyYt7fv08Wtq3H5ZFzXq8FI2f/7JZkefMwz9i42oRKlmE13c + k1XbZ2i/WIWo58q1UB8DXImiW4Xiynxh4X4T+mCkyNnP0Jbf9CSFmUu2FBUh + BSXyrYZGM2JqSakFDGyT/DuOsnKEKpMMLw53Bwzeww2eOdw1uK5AOtp1Q7ky + LfrRK6PncHeK59i9pM6/vUvwDF/syGh9PBeb0jPxvlgPy7FHR2+0xVQmQd4k + YUZYJ5xSWLFNMdVD71+nmcQoaV8QjYe+2K5ObEqG/id1VzpbtuU2nMAhueZP + JaQLcjKS1rzj2oX6Vsn2V5SkSkmvLGqrwneUHTmbi1KUN5fEdmQPna/9WPhi + y6ZG/iBpCi/DQk0EgU2mUfTqftl+4KgSvVGJ1QvNYZImEwtF71WDov0WWQna + m2mP02k8tG6TZarRKO/YAfR9AhwTUTAwQ8dA00kAUlRKFU2Th4fJ16Nkrb31 + Q3h0Gq5F4WeZ6S1EW8R7mtq+95dUhg50RkwW7Zz27rHx94jH9sa/gr9FXNsb + PwR/GtsLG8/RGgNP6mGxrpOEqJhCXfRnpA7UZaZXh4COnt9SdIcJQPoz+LMD + 9H7E5f3QoWGKVqUjxxhaSNU7Id84fYVUawxXSJ6BNWgWrlq4ZtHT3SCIQQtD + GF4DC3ATI2swAvXLBkgE6AhBV4BMCNK0/gRLa5P62wQAAA== """, - """ + """ androidx/navigation/Outer.class: - H4sIAAAAAAAA/4VRy27TQBQ9M87DcQxNw6MJoeXRFJoi4bawKhVSiQBZSlOJ - VpFQVpNklE7ijJHtRF1mxYfwBxWLSiChCHZ8FOLaDWSBKjzyPXMf59yZOz9/ - ffkG4DmeMJSF7gW+6p05WkxUX0TK187ROJJBFoyhMBAT4XhC952jzkB2oywM - hsy+0ip6yWBs1lo20shYSCHLkIpOVchQaVyp+oLB3O96Cd8Cj0mm2zw+OWjW - X9u4BitHwesM6w0/6DsDGXUCoXToCK39KNEJnaYfNceeR1LLjaEfkZhzKCPR - E5GgGB9NDLodi00uNmBgQ4qfqdjbpl1vh6E2m9oWL3GLF2ZTi5uG+eMjL82m - u3yb7XEj9Spr8u+fMrzAY8Iui2UsV2sZ1D0R0iXziXM5FYbqlTeuLkhZ3GPY - +E/lnzk/oBZNMXkbiA+nT4fUovJurCM1kq6eqFB1PHmwmAmNvu73JMNSQ2nZ - HI86MjgRVMNQbPhd4bVEoGJ/HrQXh5JEto79cdCVb1ScK8/7tP7pgh16nFQy - 0XL8VoRV8jKEBUJOK514G+Q58dwJ01sXMM+T9KN5MfAMj8nalwXIkRRgIv+X - vELV8Zf/Cv7+AvZnLJ0nAQObZIuUvk//Kp3jIeEaYS1psY4twj2SWSbhYhuG - ixsubrq4hdu0xYqLEsptsBB3UGkjHcIKcTdEJsRqiLXfdJuyTB0DAAA= + H4sIAAAAAAAA/4VSy27TQBQ9M87DcQxNw6MJoeXRFJoi4bZiVSqkEgGyFFyJ + VpFQVpPESqdxxsh2oi6z4kP4g4pFJZBQBDs+CnHHDWSBKmz5nrmPc+7MHf/8 + 9eUbgGd4wlAVqh+Fsn/mKDGRA5HIUDmH48SP8mAMpVMxEU4g1MA57J76vSQP + gyG3L5VMXjAYm422jSxyFjLIM2SSExkz1FpXqj5nMPd7Qcq3wDXJdL2j4wOv + +crGNVgFCl5nWG+F0cA59ZNuJKSKHaFUmKQ6seOFiTcOApJabg3DhMSct34i + +iIRFOOjiUGnY9oUtAEDG1L8TGpvm1b9HYbGbGpbvMItXppNLW4a5o+PvDKb + 7vJttseNzMu8yb9/yvES14RdpmUsVyk/agYipkMWU+dyKgz1K09cX5DyuMew + 8Z/KP3N+QC08MXkTiQ8nT4fUovZurBI58l01kbHsBv7BYiY0+mbY9xmWWlL5 + 3njU9aNjQTUM5VbYE0FbRFL786C92JRPZOsoHEc9/7XUueq8T/ufLtihy8mk + E63quyKsk5cjLBFyerOpt0Geo+dOmN26gHmeph/Ni/W/95isfVmAAkkBJop/ + yStUrZ/iV/D3F7A/Y+k8DRjYJFum9H36VmkfDwnXCBtpi3VsEe6RzDIJlzsw + XNxwcdPFLdymJVZcVFDtgMW4g1oH2RhWjLsxcjFWY6z9BuhHh3wdAwAA """, - """ + """ + androidx/navigation/OuterComp$InnerClassComp$Companion.class: + H4sIAAAAAAAA/51Ty27TUBA9Y6dx4oaStjwSoJRHgBRB3VQIIRUhQRAoUppK + gLLpAt0kpr2JfV3Z11GXWfEh/EFXSCxQ1CUfhZjrBCo2SGUzc2bOnBl7xv7x + 89t3AE9QJzwVahBHcnDsKTGWB0LLSHl7qfbjZhQe1VpKMQpEkmShMUJxiQMi + lIdiLLxAqANvrzf0+9qBTcg/l0rqFwS7vtEtYQF5Fzk4hJw+lAnhWfv/Ru4Q + GvX2KNKBVN5wHHpSsUSJwHvtfxJpoJuRSnSc9nUU74p45Mc7G10Xlhm9Wuuf + kR/DjCVsnq8bYfm3YNfXYiC04JwVjm1eJhlTNAYEGnH+WJpoi9GgQahNJ65r + VSzXKjOaTgqnn+3KdLJtbdErp2CdfslbZcvUbpPp8Og8O3JwnbD2T4WDNcLS + 3zJC8c9yCYsdMX4bi6PDzZHmWzWjgU+42JbK76Rhz48/iF7AmZV21BdBV8TS + xPNk6ayxzxd230dp3PffSMNV36VKy9DvykRy8UulIp09XIIGHydnNsbeMh8K + v/gdjjyzQvYLD7+icJLRd9nms2QHNbalWQGKcIEyMVqcix+zt+bi0kl2DiO4 + MkvOBBm6gCXmbNzjaIXZG7iJdVQzdIv9/WzwbTzIfhXeBWvK+7BbWG5hpYVV + XGKIyy3ufXUflKCCKvMJ3ATXEuR/Ae6K/YtnAwAA + """, + """ + androidx/navigation/OuterComp$InnerClassComp.class: + H4sIAAAAAAAA/5VUW08bVxD+zvq2XgysIRcCpEmLm5pLWKBJSsFpuKSEpTak + kNIQ2oeDvTULZpfurlH6UuUpPyFS+1KpD33iIVFbqIpU0eStv6mqOmd3MWAi + JEv2OTOzM998Z2bO+ee/P/8CcAtfMwxwq+TYZumpZvEds8w907a0hapnONP2 + 1nZGtyySKtx1hZoAY1A3+A7XKtwqawtrG0bRSyDCEM+Zlul9whDN6r3LDJFs + 73IKMSQURCEzyKZAmnTKDExPQUFTEhJS5O+tmy7DYL4RIuMMTWXD02uYlE5n + UIr0zbYMyxsm4KK9/R3DMPFpFLsnbztlbcPw1hxuWq7GLcv2/ChXm7e9+Wql + Mi4OF1foDJcYUiJVpmR8w6sVj8HJNpZQ1/P1NR1vkHMK7bgg2HRSqT17yXNM + i8pyIdt7Ajqw0vku19umqmalZDgJvKPgmmhXx2n87FH37sp4l5rNt7cNq8Rw + M3sW/mzGEJ1I9iAjErzP0C3acp7jB8IxKxynz3fsE479KXTjqpBuUgHWubs+ + bZcMhvRxpG55RlmccSgYUppCDSMKhvEhncj4tsorNIcXs2/pxROGzHkjQfPA + 1yoGVTZme+uGw9B2FoV45YqV8JbcaaS7GbFwi1wSGBcTnd+0PULSNna2NJOO + 5Vi8ot0Pxm+aGHlOtejZToE7m1Sk4CLeVZADZU7WwBhGGxqyYxpU9wlMigs8 + RSU+YlMwPF7iHieK0tZOhF4YJpakWEDXfpPsT02hUQekEl3R3cNn1xWpQ1Ik + 9fCZQj9JlRVJjtPeRHuE9hYyy6+fyx3k2joiDbEx1jrV3BZXpU5pKPL657ik + RueSakJos2+eR+baVZnkw2cjsiwFTmRmZE6SrIzIalNntIMNsdk3LyIUmAo8 + XjCSm0luEfJiugYvU/7OqBxT44LzCBMnuXpu1RJ4yNByunT0XM3znQcO314f + 3KQXomuxannmlqFbO6Zr0uhMHo8TTWcwu6150zLmq1trhvNIjJeYKrvIK8vc + MYUeGpuXPF7cLPDtUM/UYz/kDt8yiN2pJKljhgapypJddYrGjCkgroQQy2fI + 0W2R6EEHrVfEDFA1HpEWp/0i7W3iYRc9Jz3mW78gbYa8JdqVvn0k+7p+R/Mr + H2GZ1haIgcgTZoGi8viStEuBN31rFaNDkkClSYNK/wBTExNFe6zvNzTv1uDi + vrHgw6QChxAmTeSOgnvqg9lbA+hJJVgRMEwsBafkAaSVrn1cflkLCsgma2ST + IdkTZVGT6KByBblvhAVMd0e//wGyYJDr69pDVwD5mNYImECgBy1MP0a7oNZ9 + gGsr+7je9t4ebojIPfSqvXsY2MPgy7pjdIeMTraHUdnSNR5BDXwGf+BWfRnk + MJ7hNu6EPL6iXbQr09f/C2LR3f6/If2IWGS3/xBSQQAN0P8nYYkGPXnsty+S + kP9FOkH6ccUytYplMIqPKc8KyQlB6iM//RgSIdUOPykRO0Buhe3j3q+YfuVb + InjiT52Yr8+xSEXOkTRB+6qffokog2SG+9TXT1cR0TGj44GOWegkYk7HZ8iT + g0tDM78K1UWriwUXir/GXWFJu2hz0e7itm8cdaG56Pblif8BqzOQX0wJAAA= + """, + """ + androidx/navigation/OuterComp$InnerObject.class: + H4sIAAAAAAAA/41US08TURT+7p0+plMe5SFPxQdVKVWmoK4gJkh8DKnFCMEo + q0s70oF2BmduG5as/AkuXLrQDQuJCxJNTJWdP8p47nQUhEhM2nu/c+455zvz + nTvz4+fnrwBu4w5DTrgV33MqO6Yrms6GkI7nmksNafsLXn07a7mu7S+tb9pl + mQRjyGyKpjBrwt0wf3s1hsSc4zryLoM2kVvtQBwJAzEkGWKy6gQM+eJ/s8wy + 6NJblr7jbjD0T+SKR4xtL0WMFz1/w9y05bovHDcwhet6MiwamCVPlhq1GkWl + j5XV0UWFqyKoLngVO2zU0twPhTlq3n7VEDXq8txE8eTTzeZeMGTPYiMqsV6z + iS7uyartM/SerkLUc+VaqJEBroTRrdLyynxp4X4HRmCkyDnK0FPc8iSFmY9t + KSpCCkrk9aZGs2JqSakFDGyL/DuOsgqEKtMML1u7YwYf4gbPtHYNriuQjnbd + UK5Ml3742hhq7c7wAruX1Pn3dwme4Yt9GW2EF2IzeiY+EhtiBfbo8I22mMok + yJskzAjrhFMKK7YZpnq4cOZEk8iR/iXRfOiL7erUlmQYfdpwpVO3LbfpBA5J + Nn8kI12U9li6i45rlxr1ddtfUbIqNb2yqK0K31F25OxclqK89VhsR3b2ZO0n + whd1m5r5i6QjvBALNREENpnGstfwy/YDR5UYjkqsnmoO0zSdWCj8sBoW7TfI + StDeSXucTuOhdZMsU41HeScPoO8T4JiKgoFFOgY62gFIUSlVNE0eHiZfjpK1 + 3u6P4dFRuBaFH2emtxE9Ee9Rau/eP1IZ+tAfMVm0c9oHJ/PvEY/t5b+Bv0Vc + 28u3wJ/F9sLGC7TGwJN6WGygnRAVU2iA/ozUgbrQ9PoQ0DH0R4rBMAFIfwF/ + foDhTzi/Hzo0zNCqdOSYRBepeivky9MXSbVGl4vkGVuDZuGihUsWPd0Vghi3 + kMXVNbAA13B9DUagfhMBEgH6QjAQIBOCNK2/ALLTKT3nBAAA + """, + """ + androidx/navigation/OuterComp.class: + H4sIAAAAAAAA/41RW2sTQRT+ZjaXzWZt03hpYm2rtmpTxW2LT7UINagsxC3Y + EpA8TZIlnWQzW3Y2oY958of4D4oPBQUJ+uaPEs9uo0WE4g57vjm378w558fP + z18BPMNjhmWhulEou6eOEmPZE7EMlXMwiv2oHg5P8mAMpb4YCycQqucctPt+ + J87DYMjtSSXjFwzGRq1pI4uchQzyDJn4WGqG1caVzM8ZzL1OkHJY4Emi6XqH + R/te/ZWNa7AKZJxjWGuEUc/p+3E7ElJpRygVximXdrww9kZBQFQLjUEYE5nz + 1o9FV8SCbHw4NqhLlohCIsDABmQ/lYm2RbfuNkNtOrEtXuEWL00nFjcN8/sH + XplOdvgW2+VG5mXe5N8+5niJJwk7LKGZc5WiNgKhddILQzE1XEyH4cmVna// + nZzHKj3iPzJ+z/4elfPE+E0kTo6fDqjc0ruRiuXQd9VYatkO/P3LGdE66mHX + Z5hvSOV7o2Hbj44ExTCUG2FHBE0RyUSfGe3Lx/mUbB2Go6jjv5aJrzqr0/yn + CrZpWZl0wtVkd4TrpOUIS4ScTjbVHpDmJHsgzG6ewzxL3Q9nwYCLRyTtiwAU + iAowUfyTvEjRyVf8Av7+HPYnzJ+lBgMbJMvkvkv/Mr3jPuEKYS0tsYZNwl2i + WSDicguGi+subri4iVt0xaKLCqotMI3bWGohq2Fp3NHIaSxrrPwCZxVYTTUD + AAA= + """, + """ androidx/navigation/TestAbstract.class: - H4sIAAAAAAAA/4VRy04CMRQ9LTDKiAo+wUeiLoy6cJS402jQREOCmChhw6ow + H4sIAAAAAAAA/4VRy04CMRQ9LTDKiAo+wUeiLoy6cJS40xjRREOCmChhw6ow Ey2PjpmWiUu+xT9wZeLCEJd+lPF2ZO/m5Dxum3Pb75+PTwAn2GTYEsqPQum/ eErE8lEYGSqvEWhTaWsTiY6ZAmPId0UsvL5Qj95duxtYN8XgnEklzTlDam+/ mUMGjos0phjS5klqhp3af5efMhRqvdD0pfJuAyN8YQR5fBCnqCCzkLUABtYj @@ -778,37 +1134,132 @@ object AbstractChildObject: TestAbstract() /HTYM9TvKvQDhvmaVEF9OGgHUUO0++Qs1MKO6DdFJK2emO5DOIw6wbW0onQ/ VEYOgqbUktKKUqFJ9tLpbXBaf9LWvgZhkZSXaCBz8I7pNyIcJUInMS+wRpj7 G0AWbpKvJ7iKjeSbqD5luRZSVcxWMVfFPPJEUahiAYstMI0lLFOu4WqsaDi/ - +rnGr+MBAAA= + +liLRuMBAAA= """, - """ + """ + androidx/navigation/TestAbstractComp$Companion.class: + H4sIAAAAAAAA/5VSy24TMRQ99qR5TAOkLY+EV3kEqUWi01TsipBKEChSWiRa + ZdMFciamdTLjqWwn6jIrPoQ/6AqJBYq65KMQ15MAW7q5r3PPvfaxf/76/gPA + Szxj2BJ6YDI1OI+0mKgT4VSmoyNp3V7fOiNi187Ss6Y3QhNUAmOoDcVERInQ + J9GH/lDGroSAofhKaeVeMwQbm70qllAMUUCJoeBOlWXY7l5t1S5Da6M7ylyi + dDScpJHSThotkuit/CzGCbVr4o1jl5l9YUbS7G72QnC/cq0Z/wM/pTlKd73a + NIaVP4R96cRAOEE1nk4CEo95U/EGDGxE9XPls22KBi2G5mwahrzOQ16jaDYt + X34J6rPpDt9mb0plfvm1yGvc9+4wP6H5P9qUcI+h8lcghuUDMXlvxNnp1siR + zu1sIBludJWWB+O0L82R6CdUWe1msUh6wiifL4rVjtbStBNhraTXCQ+zsYnl + O+WxxsexdiqVPWUVNe9pnbn8SBYtErjgb02e+0emw69TFnkZyC89/4byRQ4/ + IlvMi4d4TLY6b0AFIVBjFC0vyC/I8wW5epFL6gm358U5IY+u4TphAZ5QFuak + +3iABp7mCx+imX9r0oB6a8cIOljpYLWDNdykELc6NPPOMZhFHQ3CLUKLuxbF + 3++scPYTAwAA + """, + """ + androidx/navigation/TestAbstractComp.class: + H4sIAAAAAAAA/41RW08TQRg9s9vrspUWb0W8gFQEHlggJiZCTBCjaVJKIoTE + 8DRtxzLtdpbMzDY89rf4D4gPJJqYxkd/lPHbpcKDL335znyXc77L/P7z/SeA + V1hnqHHV0ZHsXASKD2WXWxmp4FgYu9cyVvO23Y8G53kwhnKPD3kQctUNDls9 + 0bZ5uAy5Xamkfcvgrq6d+Mgi5yGDPEPGnknDsNKYpsEOQ2G3HU6kNqah1BLD + FaXy8Bm2Vhv9yJJC0BsOAqms0IqHwXvxhcchERQx47aN9AHXfaF3roe946GE + WYbijRjD5lQT37bf8VHBXBEO7jIsNyLdDXrCtjSXygRcqcimCiZoRrYZhyHt + Wvk364GwvMMtp5gzGLr0KSwxxcSAgfUpfiETb5NenS2653jke07V8ZzyeOQ5 + BaewUh2PFt1tZ5O9Ye677K+vOafsJNXbLNGYafLhR83Pzzb6lmHhU6ysHIi6 + GkojW6HYux2Q/mw/6giG2YZUohkPWkIfc6phmGtEbR6ecC0TfxL060oJvR9y + YwSRvaMo1m3xQSa5+Umfk/+6ZJboUpl0vfnkcITL5OUI7xM6hNnUq5EXJEcg + zK5foXCZpl9MioEjrJD1rwtQhEdYwMwNuYr0jPB/oPSZXaH8Dfcu04iLl2Q9 + qiuRYoUGWU21n2ON8DXFH5Diw1O4dVTrmK/jERboicd1PMHTUzCDZ1g8RcbA + M1gyyBlU/gL0PzRmVwMAAA== + """, + """ androidx/navigation/TestClass.class: - H4sIAAAAAAAA/31Ru07DMBQ9dmgKoUBaXuW9AgMBxAZCAiRQpAASoC5MbmMV - t6mDYrfq2G/hD5iQGFDFyEchbgIzy9F5XFvn2l/f7x8AjrDBsCF0nKUqHgZa - DFRbWJXq4EEae5EIY8pgDH5HDESQCN0Obpsd2bJlOAzuidLKnjI42zuNCkpw - PUygzDBhn5Rh2Ir+vfmYoRp1U5soHVxLK2JhBXm8N3CoGsthKgcwsC75Q5Wr - fWLxAcPmeOR5vM497hMbj+rj0SHfZ+elzxeX+zyfOmT52ekbMbjKxPPTXtdS - tYs0lgxzkdLypt9ryuxBNBNyalHaEklDZCrXf6Z3n/azlrxUuVi562urerKh - jKL0TOvUFisZHIDT5n9d84cgrJMKCg2Udt8w+UqEY4XQLcwAq4SV3wFMwSvy - tQKXsV58D9WnrPIIJ8RMiNkQc/CJohqihvlHMIMFLFJu4BksGbg/2IItFdsB + H4sIAAAAAAAA/31Ru07DMBQ9dmhKQ4GUZ3mvwEDaig2EBEigSAEkQF2Y3CYC + 09RBsVsx9lv4AyYkBlQx8lGI68DMcnQe19a59tf3+weAfWwwbAgV55mMnwMl + hvJeGJmp4DbR5jQVWpfBGPxHMRRBKtR9cNV5TLqmDIfBPZRKmiMGZ3unXUUJ + rocJlBkmzIPUDFvRvzcfMNSiXmZSqYKLxIhYGEEe7w8dqsYsVCyAgfXIf5ZW + NYjFTYbN8cjzeJ173Cc2HtXHoxZvsJPS54vLfW6nWsyenboUw/NcPD3s9QxV + O83ihGE2kiq5HPQ7SX4rOik5c1HWFWlb5NLqP9O7yQZ5NzmTVqxcD5SR/aQt + taT0WKnMFCtpNMFp87+u9iEI66SCQgOl3TdMvhLhWCF0C7OBVcLq7wAq8Ip8 + rcBlrBffQ/Upq97BCTEdYibELHyiqIWYw/wdmMYCFinX8DSWNNwfvyv/UtsB AAA= """, - """ + """ + androidx/navigation/TestClassComp$Companion.class: + H4sIAAAAAAAA/5VSy24TMRQ99qR5TAOkLY+Ed9sgtaB2mopdERKEhyKlrQRV + Nl0gJzGtkxlPZTtRl1nxIfxBV0gsUNQlH4W4ngRYom6u7z3nnns9x/Pz1/cf + AJ7jCcMzofsmVf3zSIuxOhFOpTo6ktY1Y2FtM03O6j4ITXgBjKEyEGMRxUKf + RIfdgey5AgKG/AullXvJEGxsdspYQD5EDgWGnDtVlmGrfYU9ewyNjfYwdbHS + 0WCcREo7abSIozfysxjFrplq68yo51KzL8xQmr3NTgju963Ue//IT0nGMmxf + bRrD0h/BvnSiL5wgjCfjgGxjPpR8AAMbEn6ufLVDWb/BUJ9OwpBXecgrlE0n + xcsvQXU62eU77HWhyC+/5nmF+95d5ies/teYAu4xlP66w7B4IMbvjTg73R46 + criZ9iXDjbbS8mCUdKU5Et2YkOV22hNxRxjl6zlYbmktTTZb0ruEH9OR6cl3 + ynO1DyPtVCI7yipqfqV16rL7WDTI3Zz/ZDq5f166+SOqIu8BnQtPv6F4kdGP + KeYz8C1WKZZnDSghBCqMssW5eItOPheXLzI/veD2DJwJsuwarhMXYI2qMBPd + xwPUsJ4tfIh69jeTB9RbOUbQwlILyy2s4CaluNWimXeOwSyqqBFvEVrctcj/ + Bj3L7PkKAwAA + """, + """ + androidx/navigation/TestClassComp.class: + H4sIAAAAAAAA/4VRXU8TQRQ9s9vPZZEWv4r4AYJaMLqUmJgIMdH6kU1KTZQ0 + MX2atiNMu50lM9MNj/wW/wHxgUQTQ3z0RxnvLhUefODlnrlnzj33zp3ff77/ + BPAM6wzLXA10LAeHgeKJ3ONWxirYFcY2I25MMx4fFMEYKkOe8CDiai/40BuK + vi3CZShsSyXtSwa3vtbxkUfBQw5Fhpzdl4ZhpXWp+xZDabsfTX0eX6pfTQNX + xBfhMzTqrVFsqTwYJuNAKiu04lHwRnzhk8g2Y2WsnvRtrHe4Hgm9dTbmFQ+z + mGMon5sxPLl81oveWz6qmC/DwdX0lbHeC4bC9jSXygRcqdhm5SZox7Y9iSJ6 + ZfXfoDvC8gG3nDhnnLj0ESwN5TSAgY2IP5RptkGnQYNh9fTI95ya4zmV0yPP + KTm106Mld9PZYC+Y+zr/62vBqTipdpOlDjNtnrzX/GD/6cgyLH6cKCvHIlSJ + NLIXiVcX49FHNeOBYJhrSSXak3FP6F1OGob5VtznUYdrmeZT0g+VEjrbh6Bi + 71M80X3xTqZ3C9M+nf+6oEF7ymWPW0jXRrhCWYHwOqFDmM+yVcqCdAWE+fUT + lI6z6wdTMfAWDyn6ZwKU4RGWMHNeXEO2RPg/MPuZnaDyDdeOM8bFI4oe6WbJ + sUqD1DPv+1gjfE78DXK82YUbohZiIcQtLNIRt0Pcwd0umME9LHWRM/AMlg0K + BtW/kzCVQUkDAAA= + """, + """ androidx/navigation/TestClassWithArg.class: - H4sIAAAAAAAA/41QTW/TQBScXSeO4ybECV9pChRoVbU54LTiBqoIkUCWQpFK - FQ45bWIr2caxkXcT9ZjfwpkLEgiJA4o48qMQb52KEwcke96b59E8v/n1+/sP - AE+xz7AvkjBLZXjlJ2IpJ0LLNPEvIqV7sVDqvdTTbjYpgTF4l2Ip/FgkE//t - 6DIa6xIsBvu5TKQ+ZSgcBkcDBuvwaFBBESUXBTjERTZhYEEFLrbK4KiQVE+l - Yjjo/8/uZ7RjEumusSHzgKHen6U6lon/JtIiFFqQhM+XFp3EDJQNgJbOaH4l - DetQFx4z9Narhsub3OXeeuXSwz3H5Y7VXK9OeIe9rDZsj7d4x/r50eZe4bz+ - lzmkbhWcomcbqxNmFmydieXrTHyYPplpuqqXhhFDrS+T6GwxH0XZhRjFNGn0 - 07GIByKThl8P3XfpIhtHr6Qh2+eLRMt5NJBK0tdukqQ6T0PhmCIr5Oc0TILU - ceqLsAl3iZ0S51Td9jeU2ztfUf2cax4SGg3I4RHhnY0KN1Az6VBn3ChMePRu - vHwTGtVi+wuqn/5pU9kIrm04Huf4AHtUX+Q/WcTNIawAtwLcDmjtXWrRDLCN - 1hBMYQf3higp1BTuK7g52gqeQv0Pkn5Ve5gCAAA= + H4sIAAAAAAAA/41QTY/SUBQ977WU0gEp+MUw6vgxMTMsLEPcaSYiiaYJjsk4 + wQWrBzTlDdCavgeZJb/FtRsTjYkLQ1z6o4z3lYkrFybtuffcnpzbe379/v4D + wFMcMByIZJKlcnIZJGIlY6FlmgTnkdK9uVDqvdTTbhYXwRj8C7ESwVwkcfB2 + dBGNdREWg/NcJlKfMNiH4dGAwTo8GpRRQNGDDZe4yGIGFpbhYacEjjJJ9VQq + hsf9/9n9jHbEke4aGzIPGWr9WarnMgneRFpMhBYk4YuVRScxAyUDoKUzml9K + w9rUTY4Zept13eMN7nF/s/bo4b7rcddqbNYd3mYvK3XH503etn5+dLhvn9X+ + MpfUTdst+I6x6jCzYOdUrF5n4sP0yUzTVb10EjFU+zKJTpeLUZSdi9GcJvV+ + Ohbzgcik4VdD7126zMbRK2nI7tky0XIRDaSS9LWbJKnO01A4psjs/Jy6SZA6 + Tn0BDuE+sRPinKrX+oZSa+8rKp9zzX1CowE6eEB4a6vCNVRNOtQZNwoTPr1b + r8CERrXQ+oLKp3/alLeCKxuOhznewyOqL/KfLOD6EFaIGyFuhrT2NrVohNhF + cwimsIc7QxQVqgp3FbwcHQVfofYHzU1tNpgCAAA= """, - """ + """ + androidx/navigation/TestClassWithArgComp$Companion.class: + H4sIAAAAAAAA/5VSTW8TMRB93k3zsQ2QtnwkfBeClCLRbaLeipBKEFWktEi0 + CoceKicxiZNdb2U7UY858UP4Bz0hcUBRj/woxHgT4Eov45n35s2sn/fnr+8/ + AOziBUODq75OZP8iVHwqB9zKRIUnwthmxI35JO1wXw+aSXxedYEronNgDKUR + n/Iw4moQfuiORM/m4DNkX0sl7RsGv7bVKWIF2QAZ5BgydigNw277+uv2GOq1 + 9jixkVThaBqHUlmhFY/Cd+Izn0S2mShj9aRnE33I9Vjova1OAM+t3aj2/pFn + ccoybF9vGsPaH8GhsLzPLSfMi6c+mchcKLgABjYm/EK6aoeyfp2hOp8FgVf2 + Aq9E2XyWv/ril+ezhrfD3uby3tXXrFfyXG+DuQm1//UnhwcMhb8mMawe8emB + 5ufD7bElv5tJXzDcaksljiZxV+gT3o0IWW8nPR51uJauXoLFllJCpysEvVJw + nEx0T7yXjqt8nCgrY9GRRlLzvlKJTT/LoE4mZ9zN6fTcY9MFnlAVOivoXHn5 + DfnLlH5KMZuCB9ikWFw0oIAAKDHKVpfiV3R6S3HxMrXVCe4uwIUgzW7gJnE+ + nlEVpKKHeIQKnqcLH6Oa/uLkAfWWTuG3sNbCegsbuE0p7rRo5r1TMIMyKsQb + BAb3DbK/Ae9ImxYfAwAA + """, + """ + androidx/navigation/TestClassWithArgComp.class: + H4sIAAAAAAAA/41SW08TQRT+ZnvZ7VJkqYgFvKCglqpsITwJIcEadZNSEyQ1 + hqdpO5Zpt7Nkd9rwyG/x2ReihkQTQ3z0RxnPbis86APJ7jlzzpzzfecyv35/ + +wFgA2sMJa7aYSDbx67iQ9nhWgbK3ReRrvo8it5JfbgTdqpB/8gEY3C6fMhd + n6uO+6bZFS1tIsWQ3ZJK6m2GdMlbaTCkSiuNPDIwbaRhkc3DDgPz8rAxkYOB + PIXqQxkxlGtX5d8kno7QOzEUEXgM1lbLHxOvXxVlORZc0bWJ6wxrpVov0ITi + dod9VyotQsV994X4wAe+rgYq0uGgpYNwl4c9EW6O+rphYwazDLkLMIaNKzdy + WcJmHkXMxQOZZ1iqBWHH7QrdDLlUkcuVCnSCErn1QNcHvk8jmP5b767QvM01 + J5/RH6ZonSwWuViAht0j/7GMrQqd2rTp1+cnBdsoGrbhnJ/Y9BmOZRtWunh+ + smiuGxX2jJnPJwtZx5g3KqmfH7OGk96bvrAsSplPWxknG+Ots5hlos6Hr0J+ + dLja0wwLewOlZV94aigj2fTFzmULtPBq0BYMUzWpRH3Qb4pwn1MMQ6EWtLjf + 4KGM7bEz7yklwmR0gpLtt8EgbImXMr6bG/M0/mHBGs0yTT0bmItHSyWWycqS + vkW6EL8/0imyM4n3MVnbFG2QtstnyJUXvmLyNEF4Ms4EXuEpydlRFK5hKp4x + nWI0Wgkc+kdYbjx60pnyF0x++i9MfhQwhrGoKHOcXESyPOS/Y+Y9O8PNz1g4 + TTwprCaEjN6dkTTmJtgrqJCukv82Id45QMrDXQ+LHu7hPh2x5GEZDw7AIjzE + owNYEaYilCLYicxGcCJMRyj+AVa+iyYTBAAA + """, + """ androidx/navigation/TestGraph.class: - H4sIAAAAAAAA/32S32oTQRTGv5kkm80m2rT+aWKtVduLquC2xTuLUIvKwrqC + H4sIAAAAAAAA/32S32oTQRTGv5kkm80m2rT+aWKtVduLKuK2xTuLUIvKwrqC DQHp1SQ7pJNsZmV3svQyVz6Ib1C8KChI0DsfSjyzBr0Q3IVzzvfNmR97Dvvj 5+evAJ5gh2FT6DhLVXzua1GokTAq1X5P5uZVJt6f1cEY2mNRCD8ReuS/GYzl 0NRRYXAOlVbmGUNl90G/hRocD1XUGarmTOUMW+F/yU8Z3MNhUjI8cHvRDaKT @@ -818,9 +1269,9 @@ object AbstractChildObject: TestAbstract() kmElVFpGs+lAZj1BPQxrYToUSV9kyuql6Z2ks2woXyoruktw/x8s9mkx1XKa rt0T5TukHMptypzeWqm2SPl2Zsq1h5dwL8rju8tm4BHuUWz9bkCDUICL5p/L 69Rtn+YX8HeXaH3CykVpcNwv4ya2y9+I9k+AtVNUAlwLcD3ADdykEusBOuie - guW4hQ06z+HluJ3D+QVOlj18gwIAAA== + guW4hQ06z+HluJ3D+QXkdVzrgwIAAA== """, - """ + """ androidx/navigation/TestInterface.class: H4sIAAAAAAAA/4WOz07CQBDGv9kqheKfopLg0Xi3QLx58qJpgpqo8dLT0C64 tGxNd2k48lweDGcfyrjFB3Am+eabmeQ38/3z+QXgGn3CBeusKlW2jjTXas5W @@ -829,24 +1280,18 @@ object AbstractChildObject: TestAbstract() 95Hr+4o/3q9ySwheylWVyjtVSML580pbtZRvyqhpIW+1Lu2OY1ruCvbwFwKn Oz3Bmasjx9x32UrgxfBjtGN0EDiLbowDHCYggyMcJxAGoUHvFzaSAvhMAQAA """, - """ + """ androidx/navigation/TestObject.class: - H4sIAAAAAAAA/32Sz27TQBDGv90kjuMEGsqfJhTaQnsAJHBbcaNCKhUgS8ZI - NIqEetrEq3QTZ43sjdVjTjwIb1BxqAQSiuDGQyFmTYADErY0M9+3sz95Rv7+ - 49MXAI+xw7AhdJylKj7ztSjUSBiVar8nc/N6MJZDUwdjaI9FIfxE6JH/260w - OAdKK/OUoXLvfr+FGhwPVdQZquZU5Qxb4f/RTxjcg2FSQjxwe9MNouPeYXT0 - vIVL8BpkXmbYDtNs5I+lGWRC6dwXWqemhOV+lJpoliSEuhJOUkMw/5U0IhZG - kMenRYXmZDY0bAADm5B/pqzapSreY9hZzD2Pd7jH21Qt5u6397yzmO/zXfas - 7vKvHxze5rZ3n1lCMxLFy0y8O300MQzrb2baqKkMdKFyNUjk4d/Po1UcpbFk - WAmVltFsOpBZT1APw2qYDkXSF5myeml6x+ksG8oXyoruEtz/B4s9Wky1nKZr - 90R5g5RDuU2Z01sr1SYp385MufbgAu55eby1bAYe4g7F1q8GNAgFuGj+ubxG - 3fZpfgZ/e4HWR6yclwbH3TLexnb5I9H+CbB6gkqAqwGuBbiOG1RiLUAH3ROw - HDexTuc5vBy3cjg/AW9Vq0qFAgAA + H4sIAAAAAAAA/32Sz27TQBDGv90kjuMEGsqfJhRKoT0Ah7qtuFEhlQqQJWMk + GkWqetrEq3QTZ43sjdVjTjwIb1BxqAQSiuDGQyFmTYADErY0M9+3sz95Rv7+ + 49MXAE+wzbAhdJylKj73tSjUSBiVar8nc/NmMJZDUwdjaI9FIfxE6JH/260w + OAdKK/OMofLwUb+FGhwPVdQZquZM5Qyb4f/RTxncg2FSQjxwe9MNouPeYXT0 + ooUr8BpkXmXYCtNs5I+lGWRC6dwXWqemhOV+lJpoliSEuhZOUkMw/7U0IhZG + kMenRYXmZDY0bAADm5B/rqzapSreY9hezD2Pd7jH21Qt5u6397yzmO/zXfa8 + 7vKvHxze5rZ3n1lCMxLFq0y8O9uZGIb1tzNt1FQGulC5GiTy8O/n0SqO0lgy + rIRKy2g2HcisJ6iHYTVMhyLpi0xZvTS943SWDeVLZUV3Ce7/g8UeLaZaTtO1 + e6K8Qcqh3KbM6a2V6h4p385Mufb4Eu5Feby5bAZ2cJ9i61cDGoQCXDT/XF6j + bvs0P4OfXKL1ESsXpcHxoIx3sVX+SLR/AqyeohLgeoAbAW7iFpVYC9BB9xQs + x22s03kOL8edHM5P0Fqg1oUCAAA= """ - ) - - override fun getDetector(): Detector = WrongStartDestinationTypeDetector() - - override fun getIssues(): MutableList = - mutableListOf(WrongStartDestinationTypeDetector.WrongStartDestinationType) -} + ) diff --git a/navigation/navigation-common/api/2.8.0-beta06.txt b/navigation/navigation-common/api/2.8.0-beta06.txt new file mode 100644 index 0000000000000..bb6ad19c9c790 --- /dev/null +++ b/navigation/navigation-common/api/2.8.0-beta06.txt @@ -0,0 +1,594 @@ +// Signature format: 4.0 +package androidx.navigation { + + public final class ActionOnlyNavDirections implements androidx.navigation.NavDirections { + ctor public ActionOnlyNavDirections(int actionId); + method public int component1(); + method public androidx.navigation.ActionOnlyNavDirections copy(int actionId); + method public int getActionId(); + method public android.os.Bundle getArguments(); + property public int actionId; + property public android.os.Bundle arguments; + } + + @androidx.navigation.NavOptionsDsl public final class AnimBuilder { + ctor public AnimBuilder(); + method public int getEnter(); + method public int getExit(); + method public int getPopEnter(); + method public int getPopExit(); + method public void setEnter(int); + method public void setExit(int); + method public void setPopEnter(int); + method public void setPopExit(int); + property public final int enter; + property public final int exit; + property public final int popEnter; + property public final int popExit; + } + + public abstract class CollectionNavType extends androidx.navigation.NavType { + ctor public CollectionNavType(boolean isNullableAllowed); + method public abstract T emptyCollection(); + method public abstract java.util.List serializeAsValues(T value); + } + + public interface FloatingWindow { + } + + public final class NamedNavArgument { + method public operator String component1(); + method public operator androidx.navigation.NavArgument component2(); + method public androidx.navigation.NavArgument getArgument(); + method public String getName(); + property public final androidx.navigation.NavArgument argument; + property public final String name; + } + + public final class NamedNavArgumentKt { + method public static androidx.navigation.NamedNavArgument navArgument(String name, kotlin.jvm.functions.Function1 builder); + } + + public final class NavAction { + ctor public NavAction(@IdRes int destinationId); + ctor public NavAction(@IdRes int destinationId, optional androidx.navigation.NavOptions? navOptions); + ctor public NavAction(@IdRes int destinationId, optional androidx.navigation.NavOptions? navOptions, optional android.os.Bundle? defaultArguments); + method public android.os.Bundle? getDefaultArguments(); + method public int getDestinationId(); + method public androidx.navigation.NavOptions? getNavOptions(); + method public void setDefaultArguments(android.os.Bundle?); + method public void setNavOptions(androidx.navigation.NavOptions?); + property public final android.os.Bundle? defaultArguments; + property public final int destinationId; + property public final androidx.navigation.NavOptions? navOptions; + } + + @androidx.navigation.NavDestinationDsl public final class NavActionBuilder { + ctor public NavActionBuilder(); + method public java.util.Map getDefaultArguments(); + method public int getDestinationId(); + method public void navOptions(kotlin.jvm.functions.Function1 optionsBuilder); + method public void setDestinationId(int); + property public final java.util.Map defaultArguments; + property public final int destinationId; + } + + public interface NavArgs { + } + + public final class NavArgsLazy implements kotlin.Lazy { + ctor public NavArgsLazy(kotlin.reflect.KClass navArgsClass, kotlin.jvm.functions.Function0 argumentProducer); + method public Args getValue(); + method public boolean isInitialized(); + property public Args value; + } + + public final class NavArgument { + method public Object? getDefaultValue(); + method public androidx.navigation.NavType getType(); + method public boolean isDefaultValuePresent(); + method public boolean isNullable(); + property public final Object? defaultValue; + property public final boolean isDefaultValuePresent; + property public final boolean isNullable; + property public final androidx.navigation.NavType type; + } + + public static final class NavArgument.Builder { + ctor public NavArgument.Builder(); + method public androidx.navigation.NavArgument build(); + method public androidx.navigation.NavArgument.Builder setDefaultValue(Object? defaultValue); + method public androidx.navigation.NavArgument.Builder setIsNullable(boolean isNullable); + method public androidx.navigation.NavArgument.Builder setType(androidx.navigation.NavType type); + } + + @androidx.navigation.NavDestinationDsl public final class NavArgumentBuilder { + ctor public NavArgumentBuilder(); + method public androidx.navigation.NavArgument build(); + method public Object? getDefaultValue(); + method public boolean getNullable(); + method public androidx.navigation.NavType getType(); + method public void setDefaultValue(Object?); + method public void setNullable(boolean); + method public void setType(androidx.navigation.NavType); + property public final Object? defaultValue; + property public final boolean nullable; + property public final androidx.navigation.NavType type; + } + + public final class NavBackStackEntry implements androidx.lifecycle.HasDefaultViewModelProviderFactory androidx.lifecycle.LifecycleOwner androidx.savedstate.SavedStateRegistryOwner androidx.lifecycle.ViewModelStoreOwner { + method public android.os.Bundle? getArguments(); + method public androidx.lifecycle.ViewModelProvider.Factory getDefaultViewModelProviderFactory(); + method public androidx.navigation.NavDestination getDestination(); + method public String getId(); + method public androidx.lifecycle.Lifecycle getLifecycle(); + method @MainThread public androidx.lifecycle.SavedStateHandle getSavedStateHandle(); + method public androidx.savedstate.SavedStateRegistry getSavedStateRegistry(); + method public androidx.lifecycle.ViewModelStore getViewModelStore(); + property public final android.os.Bundle? arguments; + property public androidx.lifecycle.viewmodel.CreationExtras defaultViewModelCreationExtras; + property public androidx.lifecycle.ViewModelProvider.Factory defaultViewModelProviderFactory; + property public final androidx.navigation.NavDestination destination; + property public final String id; + property public androidx.lifecycle.Lifecycle lifecycle; + property @MainThread public final androidx.lifecycle.SavedStateHandle savedStateHandle; + property public androidx.savedstate.SavedStateRegistry savedStateRegistry; + property public androidx.lifecycle.ViewModelStore viewModelStore; + field public static final androidx.navigation.NavBackStackEntry.Companion Companion; + } + + public static final class NavBackStackEntry.Companion { + } + + public final class NavBackStackEntryKt { + method public static inline T toRoute(androidx.navigation.NavBackStackEntry); + } + + public final class NavDeepLink { + method public String? getAction(); + method public String? getMimeType(); + method public String? getUriPattern(); + property public final String? action; + property public final String? mimeType; + property public final String? uriPattern; + } + + public static final class NavDeepLink.Builder { + method public androidx.navigation.NavDeepLink build(); + method public static androidx.navigation.NavDeepLink.Builder fromAction(String action); + method public static androidx.navigation.NavDeepLink.Builder fromMimeType(String mimeType); + method public static androidx.navigation.NavDeepLink.Builder fromUriPattern(String uriPattern); + method public androidx.navigation.NavDeepLink.Builder setAction(String action); + method public androidx.navigation.NavDeepLink.Builder setMimeType(String mimeType); + method public androidx.navigation.NavDeepLink.Builder setUriPattern(String uriPattern); + method public inline androidx.navigation.NavDeepLink.Builder setUriPattern(String basePath, optional java.util.Map> typeMap); + } + + @kotlin.DslMarker public @interface NavDeepLinkDsl { + } + + @androidx.navigation.NavDeepLinkDsl public final class NavDeepLinkDslBuilder { + ctor public NavDeepLinkDslBuilder(); + method public String? getAction(); + method public String? getMimeType(); + method public String? getUriPattern(); + method public void setAction(String?); + method public void setMimeType(String?); + method public void setUriPattern(String?); + property public final String? action; + property public final String? mimeType; + property public final String? uriPattern; + } + + public final class NavDeepLinkDslBuilderKt { + method public static inline androidx.navigation.NavDeepLink navDeepLink(String basePath, optional java.util.Map> typeMap, optional kotlin.jvm.functions.Function1 deepLinkBuilder); + method public static androidx.navigation.NavDeepLink navDeepLink(kotlin.jvm.functions.Function1 deepLinkBuilder); + } + + public class NavDeepLinkRequest { + method public String? getAction(); + method public String? getMimeType(); + method public android.net.Uri? getUri(); + property public String? action; + property public String? mimeType; + property public android.net.Uri? uri; + } + + public static final class NavDeepLinkRequest.Builder { + method public androidx.navigation.NavDeepLinkRequest build(); + method public static androidx.navigation.NavDeepLinkRequest.Builder fromAction(String action); + method public static androidx.navigation.NavDeepLinkRequest.Builder fromMimeType(String mimeType); + method public static androidx.navigation.NavDeepLinkRequest.Builder fromUri(android.net.Uri uri); + method public androidx.navigation.NavDeepLinkRequest.Builder setAction(String action); + method public androidx.navigation.NavDeepLinkRequest.Builder setMimeType(String mimeType); + method public androidx.navigation.NavDeepLinkRequest.Builder setUri(android.net.Uri uri); + field public static final androidx.navigation.NavDeepLinkRequest.Builder.Companion Companion; + } + + public static final class NavDeepLinkRequest.Builder.Companion { + method public androidx.navigation.NavDeepLinkRequest.Builder fromAction(String action); + method public androidx.navigation.NavDeepLinkRequest.Builder fromMimeType(String mimeType); + method public androidx.navigation.NavDeepLinkRequest.Builder fromUri(android.net.Uri uri); + } + + public class NavDestination { + ctor public NavDestination(androidx.navigation.Navigator navigator); + ctor public NavDestination(String navigatorName); + method public final void addArgument(String argumentName, androidx.navigation.NavArgument argument); + method public final void addDeepLink(androidx.navigation.NavDeepLink navDeepLink); + method public final void addDeepLink(String uriPattern); + method public final String? fillInLabel(android.content.Context context, android.os.Bundle? bundle); + method public final androidx.navigation.NavAction? getAction(@IdRes int id); + method public final java.util.Map getArguments(); + method public static final kotlin.sequences.Sequence getHierarchy(androidx.navigation.NavDestination); + method @IdRes public final int getId(); + method public final CharSequence? getLabel(); + method public final String getNavigatorName(); + method public final androidx.navigation.NavGraph? getParent(); + method public final String? getRoute(); + method public boolean hasDeepLink(android.net.Uri deepLink); + method public boolean hasDeepLink(androidx.navigation.NavDeepLinkRequest deepLinkRequest); + method public static final boolean hasRoute(androidx.navigation.NavDestination, kotlin.reflect.KClass route); + method @CallSuper public void onInflate(android.content.Context context, android.util.AttributeSet attrs); + method protected static final Class parseClassFromName(android.content.Context context, String name, Class expectedClassType); + method public final void putAction(@IdRes int actionId, androidx.navigation.NavAction action); + method public final void putAction(@IdRes int actionId, @IdRes int destId); + method public final void removeAction(@IdRes int actionId); + method public final void removeArgument(String argumentName); + method public final void setId(@IdRes int); + method public final void setLabel(CharSequence?); + method public final void setRoute(String?); + property public final java.util.Map arguments; + property @IdRes public final int id; + property public final CharSequence? label; + property public final String navigatorName; + property public final androidx.navigation.NavGraph? parent; + property public final String? route; + field public static final androidx.navigation.NavDestination.Companion Companion; + } + + @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.ANNOTATION_CLASS, kotlin.annotation.AnnotationTarget.CLASS}) public static @interface NavDestination.ClassType { + method public abstract Class value(); + property public abstract Class value; + } + + public static final class NavDestination.Companion { + method public kotlin.sequences.Sequence getHierarchy(androidx.navigation.NavDestination); + method public inline boolean hasRoute(androidx.navigation.NavDestination); + method public boolean hasRoute(androidx.navigation.NavDestination, kotlin.reflect.KClass route); + method protected Class parseClassFromName(android.content.Context context, String name, Class expectedClassType); + } + + @androidx.navigation.NavDestinationDsl public class NavDestinationBuilder { + ctor @Deprecated public NavDestinationBuilder(androidx.navigation.Navigator navigator, @IdRes int id); + ctor public NavDestinationBuilder(androidx.navigation.Navigator navigator, String? route); + ctor public NavDestinationBuilder(androidx.navigation.Navigator navigator, kotlin.reflect.KClass? route, java.util.Map> typeMap); + method @Deprecated public final void action(int actionId, kotlin.jvm.functions.Function1 actionBuilder); + method public final void argument(String name, androidx.navigation.NavArgument argument); + method public final void argument(String name, kotlin.jvm.functions.Function1 argumentBuilder); + method public D build(); + method public final void deepLink(androidx.navigation.NavDeepLink navDeepLink); + method public final void deepLink(String uriPattern); + method public inline void deepLink(String basePath, kotlin.jvm.functions.Function1 navDeepLink); + method public final void deepLink(kotlin.jvm.functions.Function1 navDeepLink); + method public inline void deepLinkSafeArgs(String basePath); + method public final int getId(); + method public final CharSequence? getLabel(); + method protected final androidx.navigation.Navigator getNavigator(); + method public final String? getRoute(); + method protected D instantiateDestination(); + method public final void setLabel(CharSequence?); + property public final int id; + property public final CharSequence? label; + property protected final androidx.navigation.Navigator navigator; + property public final String? route; + } + + @kotlin.DslMarker public @interface NavDestinationDsl { + } + + public interface NavDirections { + method @IdRes public int getActionId(); + method public android.os.Bundle getArguments(); + property @IdRes public abstract int actionId; + property public abstract android.os.Bundle arguments; + } + + public class NavGraph extends androidx.navigation.NavDestination implements java.lang.Iterable kotlin.jvm.internal.markers.KMappedMarker { + ctor public NavGraph(androidx.navigation.Navigator navGraphNavigator); + method public final void addAll(androidx.navigation.NavGraph other); + method public final void addDestination(androidx.navigation.NavDestination node); + method public final void addDestinations(androidx.navigation.NavDestination... nodes); + method public final void addDestinations(java.util.Collection nodes); + method public final void clear(); + method public inline androidx.navigation.NavDestination? findNode(); + method public final androidx.navigation.NavDestination? findNode(@IdRes int resId); + method public final androidx.navigation.NavDestination? findNode(String? route); + method public final androidx.navigation.NavDestination? findNode(T? route); + method public static final androidx.navigation.NavDestination findStartDestination(androidx.navigation.NavGraph); + method @Deprecated @IdRes public final int getStartDestination(); + method @IdRes public final int getStartDestinationId(); + method public final String? getStartDestinationRoute(); + method public final java.util.Iterator iterator(); + method public final void remove(androidx.navigation.NavDestination node); + method public inline void setStartDestination(); + method public final void setStartDestination(int startDestId); + method public final void setStartDestination(String startDestRoute); + method public final void setStartDestination(T startDestRoute); + property @IdRes public final int startDestinationId; + property public final String? startDestinationRoute; + field public static final androidx.navigation.NavGraph.Companion Companion; + } + + public static final class NavGraph.Companion { + method public androidx.navigation.NavDestination findStartDestination(androidx.navigation.NavGraph); + } + + @androidx.navigation.NavDestinationDsl public class NavGraphBuilder extends androidx.navigation.NavDestinationBuilder { + ctor @Deprecated public NavGraphBuilder(androidx.navigation.NavigatorProvider provider, @IdRes int id, @IdRes int startDestination); + ctor public NavGraphBuilder(androidx.navigation.NavigatorProvider provider, Object startDestination, kotlin.reflect.KClass? route, java.util.Map> typeMap); + ctor public NavGraphBuilder(androidx.navigation.NavigatorProvider provider, String startDestination, String? route); + ctor public NavGraphBuilder(androidx.navigation.NavigatorProvider provider, kotlin.reflect.KClass startDestination, kotlin.reflect.KClass? route, java.util.Map> typeMap); + method public final void addDestination(androidx.navigation.NavDestination destination); + method public androidx.navigation.NavGraph build(); + method public final void destination(androidx.navigation.NavDestinationBuilder navDestination); + method public final androidx.navigation.NavigatorProvider getProvider(); + method public final operator void unaryPlus(androidx.navigation.NavDestination); + property public final androidx.navigation.NavigatorProvider provider; + } + + public final class NavGraphBuilderKt { + method @Deprecated public static inline void navigation(androidx.navigation.NavGraphBuilder, @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1 builder); + method public static inline void navigation(androidx.navigation.NavGraphBuilder, Object startDestination, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method public static inline void navigation(androidx.navigation.NavGraphBuilder, String startDestination, String route, kotlin.jvm.functions.Function1 builder); + method public static inline void navigation(androidx.navigation.NavGraphBuilder, kotlin.reflect.KClass startDestination, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method @Deprecated public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, Object startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, String startDestination, optional String? route, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, kotlin.reflect.KClass startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public final class NavGraphKt { + method public static operator boolean contains(androidx.navigation.NavGraph, @IdRes int id); + method public static operator boolean contains(androidx.navigation.NavGraph, String route); + method public static inline operator boolean contains(androidx.navigation.NavGraph, kotlin.reflect.KClass route); + method public static operator boolean contains(androidx.navigation.NavGraph, T route); + method public static inline operator androidx.navigation.NavDestination get(androidx.navigation.NavGraph, @IdRes int id); + method public static inline operator androidx.navigation.NavDestination get(androidx.navigation.NavGraph, String route); + method public static inline operator androidx.navigation.NavDestination get(androidx.navigation.NavGraph, kotlin.reflect.KClass route); + method public static inline operator androidx.navigation.NavDestination get(androidx.navigation.NavGraph, T route); + method public static inline operator void minusAssign(androidx.navigation.NavGraph, androidx.navigation.NavDestination node); + method public static inline operator void plusAssign(androidx.navigation.NavGraph, androidx.navigation.NavDestination node); + method public static inline operator void plusAssign(androidx.navigation.NavGraph, androidx.navigation.NavGraph other); + } + + @androidx.navigation.Navigator.Name("navigation") public class NavGraphNavigator extends androidx.navigation.Navigator { + ctor public NavGraphNavigator(androidx.navigation.NavigatorProvider navigatorProvider); + method public androidx.navigation.NavGraph createDestination(); + method public final kotlinx.coroutines.flow.StateFlow> getBackStack(); + property public final kotlinx.coroutines.flow.StateFlow> backStack; + } + + public final class NavOptions { + method @AnimRes @AnimatorRes public int getEnterAnim(); + method @AnimRes @AnimatorRes public int getExitAnim(); + method @AnimRes @AnimatorRes public int getPopEnterAnim(); + method @AnimRes @AnimatorRes public int getPopExitAnim(); + method @Deprecated @IdRes public int getPopUpTo(); + method @IdRes public int getPopUpToId(); + method public String? getPopUpToRoute(); + method public kotlin.reflect.KClass? getPopUpToRouteClass(); + method public Object? getPopUpToRouteObject(); + method public boolean isPopUpToInclusive(); + method public boolean shouldLaunchSingleTop(); + method public boolean shouldPopUpToSaveState(); + method public boolean shouldRestoreState(); + property @AnimRes @AnimatorRes public final int enterAnim; + property @AnimRes @AnimatorRes public final int exitAnim; + property @AnimRes @AnimatorRes public final int popEnterAnim; + property @AnimRes @AnimatorRes public final int popExitAnim; + property @IdRes public final int popUpToId; + property public final String? popUpToRoute; + property public final kotlin.reflect.KClass? popUpToRouteClass; + property public final Object? popUpToRouteObject; + } + + public static final class NavOptions.Builder { + ctor public NavOptions.Builder(); + method public androidx.navigation.NavOptions build(); + method public androidx.navigation.NavOptions.Builder setEnterAnim(@AnimRes @AnimatorRes int enterAnim); + method public androidx.navigation.NavOptions.Builder setExitAnim(@AnimRes @AnimatorRes int exitAnim); + method public androidx.navigation.NavOptions.Builder setLaunchSingleTop(boolean singleTop); + method public androidx.navigation.NavOptions.Builder setPopEnterAnim(@AnimRes @AnimatorRes int popEnterAnim); + method public androidx.navigation.NavOptions.Builder setPopExitAnim(@AnimRes @AnimatorRes int popExitAnim); + method public inline androidx.navigation.NavOptions.Builder setPopUpTo(boolean inclusive, optional boolean saveState); + method public androidx.navigation.NavOptions.Builder setPopUpTo(@IdRes int destinationId, boolean inclusive); + method public androidx.navigation.NavOptions.Builder setPopUpTo(@IdRes int destinationId, boolean inclusive, optional boolean saveState); + method public androidx.navigation.NavOptions.Builder setPopUpTo(String? route, boolean inclusive); + method public androidx.navigation.NavOptions.Builder setPopUpTo(String? route, boolean inclusive, optional boolean saveState); + method public androidx.navigation.NavOptions.Builder setPopUpTo(T route, boolean inclusive); + method public androidx.navigation.NavOptions.Builder setPopUpTo(T route, boolean inclusive, optional boolean saveState); + method public androidx.navigation.NavOptions.Builder setRestoreState(boolean restoreState); + } + + @androidx.navigation.NavOptionsDsl public final class NavOptionsBuilder { + ctor public NavOptionsBuilder(); + method public void anim(kotlin.jvm.functions.Function1 animBuilder); + method public boolean getLaunchSingleTop(); + method @Deprecated public int getPopUpTo(); + method public int getPopUpToId(); + method public String? getPopUpToRoute(); + method public kotlin.reflect.KClass? getPopUpToRouteClass(); + method public Object? getPopUpToRouteObject(); + method public boolean getRestoreState(); + method public void popUpTo(@IdRes int id, optional kotlin.jvm.functions.Function1 popUpToBuilder); + method public void popUpTo(String route, optional kotlin.jvm.functions.Function1 popUpToBuilder); + method public inline void popUpTo(optional kotlin.jvm.functions.Function1 popUpToBuilder); + method public void popUpTo(T route, optional kotlin.jvm.functions.Function1 popUpToBuilder); + method public void setLaunchSingleTop(boolean); + method @Deprecated public void setPopUpTo(int); + method public void setRestoreState(boolean); + property public final boolean launchSingleTop; + property @Deprecated public final int popUpTo; + property public final int popUpToId; + property public final String? popUpToRoute; + property public final kotlin.reflect.KClass? popUpToRouteClass; + property public final Object? popUpToRouteObject; + property public final boolean restoreState; + } + + public final class NavOptionsBuilderKt { + method public static androidx.navigation.NavOptions navOptions(kotlin.jvm.functions.Function1 optionsBuilder); + } + + @kotlin.DslMarker public @interface NavOptionsDsl { + } + + public abstract class NavType { + ctor public NavType(boolean isNullableAllowed); + method public static androidx.navigation.NavType fromArgType(String? type, String? packageName); + method public abstract operator T? get(android.os.Bundle bundle, String key); + method public String getName(); + method public boolean isNullableAllowed(); + method public abstract T parseValue(String value); + method public T parseValue(String value, T previousValue); + method public abstract void put(android.os.Bundle bundle, String key, T value); + method public String serializeAsValue(T value); + method public boolean valueEquals(T value, T other); + property public boolean isNullableAllowed; + property public String name; + field public static final androidx.navigation.NavType BoolArrayType; + field public static final androidx.navigation.NavType?> BoolListType; + field public static final androidx.navigation.NavType BoolType; + field public static final androidx.navigation.NavType.Companion Companion; + field public static final androidx.navigation.NavType FloatArrayType; + field public static final androidx.navigation.NavType?> FloatListType; + field public static final androidx.navigation.NavType FloatType; + field public static final androidx.navigation.NavType IntArrayType; + field public static final androidx.navigation.NavType?> IntListType; + field public static final androidx.navigation.NavType IntType; + field public static final androidx.navigation.NavType LongArrayType; + field public static final androidx.navigation.NavType?> LongListType; + field public static final androidx.navigation.NavType LongType; + field public static final androidx.navigation.NavType ReferenceType; + field public static final androidx.navigation.NavType StringArrayType; + field public static final androidx.navigation.NavType?> StringListType; + field public static final androidx.navigation.NavType StringType; + } + + public static final class NavType.Companion { + method public androidx.navigation.NavType fromArgType(String? type, String? packageName); + } + + public static final class NavType.EnumType> extends androidx.navigation.NavType.SerializableType { + ctor public NavType.EnumType(Class type); + property public String name; + } + + public static final class NavType.ParcelableArrayType extends androidx.navigation.NavType { + ctor public NavType.ParcelableArrayType(Class type); + method public D[]? get(android.os.Bundle bundle, String key); + method public D[] parseValue(String value); + method public void put(android.os.Bundle bundle, String key, D[]? value); + method public boolean valueEquals(D[]? value, D[]? other); + property public String name; + } + + public static final class NavType.ParcelableType extends androidx.navigation.NavType { + ctor public NavType.ParcelableType(Class type); + method public D? get(android.os.Bundle bundle, String key); + method public D parseValue(String value); + method public void put(android.os.Bundle bundle, String key, D value); + property public String name; + } + + public static final class NavType.SerializableArrayType extends androidx.navigation.NavType { + ctor public NavType.SerializableArrayType(Class type); + method public D[]? get(android.os.Bundle bundle, String key); + method public D[] parseValue(String value); + method public void put(android.os.Bundle bundle, String key, D[]? value); + method public boolean valueEquals(D[]? value, D[]? other); + property public String name; + } + + public static class NavType.SerializableType extends androidx.navigation.NavType { + ctor public NavType.SerializableType(Class type); + method public D? get(android.os.Bundle bundle, String key); + method public D parseValue(String value); + method public void put(android.os.Bundle bundle, String key, D value); + property public String name; + } + + public abstract class Navigator { + ctor public Navigator(); + method public abstract D createDestination(); + method protected final androidx.navigation.NavigatorState getState(); + method public final boolean isAttached(); + method public androidx.navigation.NavDestination? navigate(D destination, android.os.Bundle? args, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras); + method public void navigate(java.util.List entries, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras); + method @CallSuper public void onAttach(androidx.navigation.NavigatorState state); + method public void onLaunchSingleTop(androidx.navigation.NavBackStackEntry backStackEntry); + method public void onRestoreState(android.os.Bundle savedState); + method public android.os.Bundle? onSaveState(); + method public boolean popBackStack(); + method public void popBackStack(androidx.navigation.NavBackStackEntry popUpTo, boolean savedState); + property public final boolean isAttached; + property protected final androidx.navigation.NavigatorState state; + } + + public static interface Navigator.Extras { + } + + @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.RUNTIME) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.ANNOTATION_CLASS, kotlin.annotation.AnnotationTarget.CLASS}) public static @interface Navigator.Name { + method public abstract String value(); + property public abstract String value; + } + + public class NavigatorProvider { + ctor public NavigatorProvider(); + method public final androidx.navigation.Navigator? addNavigator(androidx.navigation.Navigator navigator); + method @CallSuper public androidx.navigation.Navigator? addNavigator(String name, androidx.navigation.Navigator navigator); + method public final > T getNavigator(Class navigatorClass); + method @CallSuper public > T getNavigator(String name); + } + + public final class NavigatorProviderKt { + method public static inline operator > T get(androidx.navigation.NavigatorProvider, String name); + method public static inline operator > T get(androidx.navigation.NavigatorProvider, kotlin.reflect.KClass clazz); + method public static inline operator void plusAssign(androidx.navigation.NavigatorProvider, androidx.navigation.Navigator navigator); + method public static inline operator androidx.navigation.Navigator? set(androidx.navigation.NavigatorProvider, String name, androidx.navigation.Navigator navigator); + } + + public abstract class NavigatorState { + ctor public NavigatorState(); + method public abstract androidx.navigation.NavBackStackEntry createBackStackEntry(androidx.navigation.NavDestination destination, android.os.Bundle? arguments); + method public final kotlinx.coroutines.flow.StateFlow> getBackStack(); + method public final kotlinx.coroutines.flow.StateFlow> getTransitionsInProgress(); + method public void markTransitionComplete(androidx.navigation.NavBackStackEntry entry); + method @CallSuper public void onLaunchSingleTop(androidx.navigation.NavBackStackEntry backStackEntry); + method @CallSuper public void onLaunchSingleTopWithTransition(androidx.navigation.NavBackStackEntry backStackEntry); + method public void pop(androidx.navigation.NavBackStackEntry popUpTo, boolean saveState); + method public void popWithTransition(androidx.navigation.NavBackStackEntry popUpTo, boolean saveState); + method @CallSuper public void prepareForTransition(androidx.navigation.NavBackStackEntry entry); + method public void push(androidx.navigation.NavBackStackEntry backStackEntry); + method public void pushWithTransition(androidx.navigation.NavBackStackEntry backStackEntry); + property public final kotlinx.coroutines.flow.StateFlow> backStack; + property public final kotlinx.coroutines.flow.StateFlow> transitionsInProgress; + } + + @androidx.navigation.NavOptionsDsl public final class PopUpToBuilder { + ctor public PopUpToBuilder(); + method public boolean getInclusive(); + method public boolean getSaveState(); + method public void setInclusive(boolean); + method public void setSaveState(boolean); + property public final boolean inclusive; + property public final boolean saveState; + } + + public final class SavedStateHandleKt { + method public static inline T toRoute(androidx.lifecycle.SavedStateHandle, optional java.util.Map> typeMap); + } + +} + diff --git a/navigation/navigation-common/api/2.8.0-beta07.txt b/navigation/navigation-common/api/2.8.0-beta07.txt new file mode 100644 index 0000000000000..bb6ad19c9c790 --- /dev/null +++ b/navigation/navigation-common/api/2.8.0-beta07.txt @@ -0,0 +1,594 @@ +// Signature format: 4.0 +package androidx.navigation { + + public final class ActionOnlyNavDirections implements androidx.navigation.NavDirections { + ctor public ActionOnlyNavDirections(int actionId); + method public int component1(); + method public androidx.navigation.ActionOnlyNavDirections copy(int actionId); + method public int getActionId(); + method public android.os.Bundle getArguments(); + property public int actionId; + property public android.os.Bundle arguments; + } + + @androidx.navigation.NavOptionsDsl public final class AnimBuilder { + ctor public AnimBuilder(); + method public int getEnter(); + method public int getExit(); + method public int getPopEnter(); + method public int getPopExit(); + method public void setEnter(int); + method public void setExit(int); + method public void setPopEnter(int); + method public void setPopExit(int); + property public final int enter; + property public final int exit; + property public final int popEnter; + property public final int popExit; + } + + public abstract class CollectionNavType extends androidx.navigation.NavType { + ctor public CollectionNavType(boolean isNullableAllowed); + method public abstract T emptyCollection(); + method public abstract java.util.List serializeAsValues(T value); + } + + public interface FloatingWindow { + } + + public final class NamedNavArgument { + method public operator String component1(); + method public operator androidx.navigation.NavArgument component2(); + method public androidx.navigation.NavArgument getArgument(); + method public String getName(); + property public final androidx.navigation.NavArgument argument; + property public final String name; + } + + public final class NamedNavArgumentKt { + method public static androidx.navigation.NamedNavArgument navArgument(String name, kotlin.jvm.functions.Function1 builder); + } + + public final class NavAction { + ctor public NavAction(@IdRes int destinationId); + ctor public NavAction(@IdRes int destinationId, optional androidx.navigation.NavOptions? navOptions); + ctor public NavAction(@IdRes int destinationId, optional androidx.navigation.NavOptions? navOptions, optional android.os.Bundle? defaultArguments); + method public android.os.Bundle? getDefaultArguments(); + method public int getDestinationId(); + method public androidx.navigation.NavOptions? getNavOptions(); + method public void setDefaultArguments(android.os.Bundle?); + method public void setNavOptions(androidx.navigation.NavOptions?); + property public final android.os.Bundle? defaultArguments; + property public final int destinationId; + property public final androidx.navigation.NavOptions? navOptions; + } + + @androidx.navigation.NavDestinationDsl public final class NavActionBuilder { + ctor public NavActionBuilder(); + method public java.util.Map getDefaultArguments(); + method public int getDestinationId(); + method public void navOptions(kotlin.jvm.functions.Function1 optionsBuilder); + method public void setDestinationId(int); + property public final java.util.Map defaultArguments; + property public final int destinationId; + } + + public interface NavArgs { + } + + public final class NavArgsLazy implements kotlin.Lazy { + ctor public NavArgsLazy(kotlin.reflect.KClass navArgsClass, kotlin.jvm.functions.Function0 argumentProducer); + method public Args getValue(); + method public boolean isInitialized(); + property public Args value; + } + + public final class NavArgument { + method public Object? getDefaultValue(); + method public androidx.navigation.NavType getType(); + method public boolean isDefaultValuePresent(); + method public boolean isNullable(); + property public final Object? defaultValue; + property public final boolean isDefaultValuePresent; + property public final boolean isNullable; + property public final androidx.navigation.NavType type; + } + + public static final class NavArgument.Builder { + ctor public NavArgument.Builder(); + method public androidx.navigation.NavArgument build(); + method public androidx.navigation.NavArgument.Builder setDefaultValue(Object? defaultValue); + method public androidx.navigation.NavArgument.Builder setIsNullable(boolean isNullable); + method public androidx.navigation.NavArgument.Builder setType(androidx.navigation.NavType type); + } + + @androidx.navigation.NavDestinationDsl public final class NavArgumentBuilder { + ctor public NavArgumentBuilder(); + method public androidx.navigation.NavArgument build(); + method public Object? getDefaultValue(); + method public boolean getNullable(); + method public androidx.navigation.NavType getType(); + method public void setDefaultValue(Object?); + method public void setNullable(boolean); + method public void setType(androidx.navigation.NavType); + property public final Object? defaultValue; + property public final boolean nullable; + property public final androidx.navigation.NavType type; + } + + public final class NavBackStackEntry implements androidx.lifecycle.HasDefaultViewModelProviderFactory androidx.lifecycle.LifecycleOwner androidx.savedstate.SavedStateRegistryOwner androidx.lifecycle.ViewModelStoreOwner { + method public android.os.Bundle? getArguments(); + method public androidx.lifecycle.ViewModelProvider.Factory getDefaultViewModelProviderFactory(); + method public androidx.navigation.NavDestination getDestination(); + method public String getId(); + method public androidx.lifecycle.Lifecycle getLifecycle(); + method @MainThread public androidx.lifecycle.SavedStateHandle getSavedStateHandle(); + method public androidx.savedstate.SavedStateRegistry getSavedStateRegistry(); + method public androidx.lifecycle.ViewModelStore getViewModelStore(); + property public final android.os.Bundle? arguments; + property public androidx.lifecycle.viewmodel.CreationExtras defaultViewModelCreationExtras; + property public androidx.lifecycle.ViewModelProvider.Factory defaultViewModelProviderFactory; + property public final androidx.navigation.NavDestination destination; + property public final String id; + property public androidx.lifecycle.Lifecycle lifecycle; + property @MainThread public final androidx.lifecycle.SavedStateHandle savedStateHandle; + property public androidx.savedstate.SavedStateRegistry savedStateRegistry; + property public androidx.lifecycle.ViewModelStore viewModelStore; + field public static final androidx.navigation.NavBackStackEntry.Companion Companion; + } + + public static final class NavBackStackEntry.Companion { + } + + public final class NavBackStackEntryKt { + method public static inline T toRoute(androidx.navigation.NavBackStackEntry); + } + + public final class NavDeepLink { + method public String? getAction(); + method public String? getMimeType(); + method public String? getUriPattern(); + property public final String? action; + property public final String? mimeType; + property public final String? uriPattern; + } + + public static final class NavDeepLink.Builder { + method public androidx.navigation.NavDeepLink build(); + method public static androidx.navigation.NavDeepLink.Builder fromAction(String action); + method public static androidx.navigation.NavDeepLink.Builder fromMimeType(String mimeType); + method public static androidx.navigation.NavDeepLink.Builder fromUriPattern(String uriPattern); + method public androidx.navigation.NavDeepLink.Builder setAction(String action); + method public androidx.navigation.NavDeepLink.Builder setMimeType(String mimeType); + method public androidx.navigation.NavDeepLink.Builder setUriPattern(String uriPattern); + method public inline androidx.navigation.NavDeepLink.Builder setUriPattern(String basePath, optional java.util.Map> typeMap); + } + + @kotlin.DslMarker public @interface NavDeepLinkDsl { + } + + @androidx.navigation.NavDeepLinkDsl public final class NavDeepLinkDslBuilder { + ctor public NavDeepLinkDslBuilder(); + method public String? getAction(); + method public String? getMimeType(); + method public String? getUriPattern(); + method public void setAction(String?); + method public void setMimeType(String?); + method public void setUriPattern(String?); + property public final String? action; + property public final String? mimeType; + property public final String? uriPattern; + } + + public final class NavDeepLinkDslBuilderKt { + method public static inline androidx.navigation.NavDeepLink navDeepLink(String basePath, optional java.util.Map> typeMap, optional kotlin.jvm.functions.Function1 deepLinkBuilder); + method public static androidx.navigation.NavDeepLink navDeepLink(kotlin.jvm.functions.Function1 deepLinkBuilder); + } + + public class NavDeepLinkRequest { + method public String? getAction(); + method public String? getMimeType(); + method public android.net.Uri? getUri(); + property public String? action; + property public String? mimeType; + property public android.net.Uri? uri; + } + + public static final class NavDeepLinkRequest.Builder { + method public androidx.navigation.NavDeepLinkRequest build(); + method public static androidx.navigation.NavDeepLinkRequest.Builder fromAction(String action); + method public static androidx.navigation.NavDeepLinkRequest.Builder fromMimeType(String mimeType); + method public static androidx.navigation.NavDeepLinkRequest.Builder fromUri(android.net.Uri uri); + method public androidx.navigation.NavDeepLinkRequest.Builder setAction(String action); + method public androidx.navigation.NavDeepLinkRequest.Builder setMimeType(String mimeType); + method public androidx.navigation.NavDeepLinkRequest.Builder setUri(android.net.Uri uri); + field public static final androidx.navigation.NavDeepLinkRequest.Builder.Companion Companion; + } + + public static final class NavDeepLinkRequest.Builder.Companion { + method public androidx.navigation.NavDeepLinkRequest.Builder fromAction(String action); + method public androidx.navigation.NavDeepLinkRequest.Builder fromMimeType(String mimeType); + method public androidx.navigation.NavDeepLinkRequest.Builder fromUri(android.net.Uri uri); + } + + public class NavDestination { + ctor public NavDestination(androidx.navigation.Navigator navigator); + ctor public NavDestination(String navigatorName); + method public final void addArgument(String argumentName, androidx.navigation.NavArgument argument); + method public final void addDeepLink(androidx.navigation.NavDeepLink navDeepLink); + method public final void addDeepLink(String uriPattern); + method public final String? fillInLabel(android.content.Context context, android.os.Bundle? bundle); + method public final androidx.navigation.NavAction? getAction(@IdRes int id); + method public final java.util.Map getArguments(); + method public static final kotlin.sequences.Sequence getHierarchy(androidx.navigation.NavDestination); + method @IdRes public final int getId(); + method public final CharSequence? getLabel(); + method public final String getNavigatorName(); + method public final androidx.navigation.NavGraph? getParent(); + method public final String? getRoute(); + method public boolean hasDeepLink(android.net.Uri deepLink); + method public boolean hasDeepLink(androidx.navigation.NavDeepLinkRequest deepLinkRequest); + method public static final boolean hasRoute(androidx.navigation.NavDestination, kotlin.reflect.KClass route); + method @CallSuper public void onInflate(android.content.Context context, android.util.AttributeSet attrs); + method protected static final Class parseClassFromName(android.content.Context context, String name, Class expectedClassType); + method public final void putAction(@IdRes int actionId, androidx.navigation.NavAction action); + method public final void putAction(@IdRes int actionId, @IdRes int destId); + method public final void removeAction(@IdRes int actionId); + method public final void removeArgument(String argumentName); + method public final void setId(@IdRes int); + method public final void setLabel(CharSequence?); + method public final void setRoute(String?); + property public final java.util.Map arguments; + property @IdRes public final int id; + property public final CharSequence? label; + property public final String navigatorName; + property public final androidx.navigation.NavGraph? parent; + property public final String? route; + field public static final androidx.navigation.NavDestination.Companion Companion; + } + + @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.ANNOTATION_CLASS, kotlin.annotation.AnnotationTarget.CLASS}) public static @interface NavDestination.ClassType { + method public abstract Class value(); + property public abstract Class value; + } + + public static final class NavDestination.Companion { + method public kotlin.sequences.Sequence getHierarchy(androidx.navigation.NavDestination); + method public inline boolean hasRoute(androidx.navigation.NavDestination); + method public boolean hasRoute(androidx.navigation.NavDestination, kotlin.reflect.KClass route); + method protected Class parseClassFromName(android.content.Context context, String name, Class expectedClassType); + } + + @androidx.navigation.NavDestinationDsl public class NavDestinationBuilder { + ctor @Deprecated public NavDestinationBuilder(androidx.navigation.Navigator navigator, @IdRes int id); + ctor public NavDestinationBuilder(androidx.navigation.Navigator navigator, String? route); + ctor public NavDestinationBuilder(androidx.navigation.Navigator navigator, kotlin.reflect.KClass? route, java.util.Map> typeMap); + method @Deprecated public final void action(int actionId, kotlin.jvm.functions.Function1 actionBuilder); + method public final void argument(String name, androidx.navigation.NavArgument argument); + method public final void argument(String name, kotlin.jvm.functions.Function1 argumentBuilder); + method public D build(); + method public final void deepLink(androidx.navigation.NavDeepLink navDeepLink); + method public final void deepLink(String uriPattern); + method public inline void deepLink(String basePath, kotlin.jvm.functions.Function1 navDeepLink); + method public final void deepLink(kotlin.jvm.functions.Function1 navDeepLink); + method public inline void deepLinkSafeArgs(String basePath); + method public final int getId(); + method public final CharSequence? getLabel(); + method protected final androidx.navigation.Navigator getNavigator(); + method public final String? getRoute(); + method protected D instantiateDestination(); + method public final void setLabel(CharSequence?); + property public final int id; + property public final CharSequence? label; + property protected final androidx.navigation.Navigator navigator; + property public final String? route; + } + + @kotlin.DslMarker public @interface NavDestinationDsl { + } + + public interface NavDirections { + method @IdRes public int getActionId(); + method public android.os.Bundle getArguments(); + property @IdRes public abstract int actionId; + property public abstract android.os.Bundle arguments; + } + + public class NavGraph extends androidx.navigation.NavDestination implements java.lang.Iterable kotlin.jvm.internal.markers.KMappedMarker { + ctor public NavGraph(androidx.navigation.Navigator navGraphNavigator); + method public final void addAll(androidx.navigation.NavGraph other); + method public final void addDestination(androidx.navigation.NavDestination node); + method public final void addDestinations(androidx.navigation.NavDestination... nodes); + method public final void addDestinations(java.util.Collection nodes); + method public final void clear(); + method public inline androidx.navigation.NavDestination? findNode(); + method public final androidx.navigation.NavDestination? findNode(@IdRes int resId); + method public final androidx.navigation.NavDestination? findNode(String? route); + method public final androidx.navigation.NavDestination? findNode(T? route); + method public static final androidx.navigation.NavDestination findStartDestination(androidx.navigation.NavGraph); + method @Deprecated @IdRes public final int getStartDestination(); + method @IdRes public final int getStartDestinationId(); + method public final String? getStartDestinationRoute(); + method public final java.util.Iterator iterator(); + method public final void remove(androidx.navigation.NavDestination node); + method public inline void setStartDestination(); + method public final void setStartDestination(int startDestId); + method public final void setStartDestination(String startDestRoute); + method public final void setStartDestination(T startDestRoute); + property @IdRes public final int startDestinationId; + property public final String? startDestinationRoute; + field public static final androidx.navigation.NavGraph.Companion Companion; + } + + public static final class NavGraph.Companion { + method public androidx.navigation.NavDestination findStartDestination(androidx.navigation.NavGraph); + } + + @androidx.navigation.NavDestinationDsl public class NavGraphBuilder extends androidx.navigation.NavDestinationBuilder { + ctor @Deprecated public NavGraphBuilder(androidx.navigation.NavigatorProvider provider, @IdRes int id, @IdRes int startDestination); + ctor public NavGraphBuilder(androidx.navigation.NavigatorProvider provider, Object startDestination, kotlin.reflect.KClass? route, java.util.Map> typeMap); + ctor public NavGraphBuilder(androidx.navigation.NavigatorProvider provider, String startDestination, String? route); + ctor public NavGraphBuilder(androidx.navigation.NavigatorProvider provider, kotlin.reflect.KClass startDestination, kotlin.reflect.KClass? route, java.util.Map> typeMap); + method public final void addDestination(androidx.navigation.NavDestination destination); + method public androidx.navigation.NavGraph build(); + method public final void destination(androidx.navigation.NavDestinationBuilder navDestination); + method public final androidx.navigation.NavigatorProvider getProvider(); + method public final operator void unaryPlus(androidx.navigation.NavDestination); + property public final androidx.navigation.NavigatorProvider provider; + } + + public final class NavGraphBuilderKt { + method @Deprecated public static inline void navigation(androidx.navigation.NavGraphBuilder, @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1 builder); + method public static inline void navigation(androidx.navigation.NavGraphBuilder, Object startDestination, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method public static inline void navigation(androidx.navigation.NavGraphBuilder, String startDestination, String route, kotlin.jvm.functions.Function1 builder); + method public static inline void navigation(androidx.navigation.NavGraphBuilder, kotlin.reflect.KClass startDestination, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method @Deprecated public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, Object startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, String startDestination, optional String? route, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, kotlin.reflect.KClass startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public final class NavGraphKt { + method public static operator boolean contains(androidx.navigation.NavGraph, @IdRes int id); + method public static operator boolean contains(androidx.navigation.NavGraph, String route); + method public static inline operator boolean contains(androidx.navigation.NavGraph, kotlin.reflect.KClass route); + method public static operator boolean contains(androidx.navigation.NavGraph, T route); + method public static inline operator androidx.navigation.NavDestination get(androidx.navigation.NavGraph, @IdRes int id); + method public static inline operator androidx.navigation.NavDestination get(androidx.navigation.NavGraph, String route); + method public static inline operator androidx.navigation.NavDestination get(androidx.navigation.NavGraph, kotlin.reflect.KClass route); + method public static inline operator androidx.navigation.NavDestination get(androidx.navigation.NavGraph, T route); + method public static inline operator void minusAssign(androidx.navigation.NavGraph, androidx.navigation.NavDestination node); + method public static inline operator void plusAssign(androidx.navigation.NavGraph, androidx.navigation.NavDestination node); + method public static inline operator void plusAssign(androidx.navigation.NavGraph, androidx.navigation.NavGraph other); + } + + @androidx.navigation.Navigator.Name("navigation") public class NavGraphNavigator extends androidx.navigation.Navigator { + ctor public NavGraphNavigator(androidx.navigation.NavigatorProvider navigatorProvider); + method public androidx.navigation.NavGraph createDestination(); + method public final kotlinx.coroutines.flow.StateFlow> getBackStack(); + property public final kotlinx.coroutines.flow.StateFlow> backStack; + } + + public final class NavOptions { + method @AnimRes @AnimatorRes public int getEnterAnim(); + method @AnimRes @AnimatorRes public int getExitAnim(); + method @AnimRes @AnimatorRes public int getPopEnterAnim(); + method @AnimRes @AnimatorRes public int getPopExitAnim(); + method @Deprecated @IdRes public int getPopUpTo(); + method @IdRes public int getPopUpToId(); + method public String? getPopUpToRoute(); + method public kotlin.reflect.KClass? getPopUpToRouteClass(); + method public Object? getPopUpToRouteObject(); + method public boolean isPopUpToInclusive(); + method public boolean shouldLaunchSingleTop(); + method public boolean shouldPopUpToSaveState(); + method public boolean shouldRestoreState(); + property @AnimRes @AnimatorRes public final int enterAnim; + property @AnimRes @AnimatorRes public final int exitAnim; + property @AnimRes @AnimatorRes public final int popEnterAnim; + property @AnimRes @AnimatorRes public final int popExitAnim; + property @IdRes public final int popUpToId; + property public final String? popUpToRoute; + property public final kotlin.reflect.KClass? popUpToRouteClass; + property public final Object? popUpToRouteObject; + } + + public static final class NavOptions.Builder { + ctor public NavOptions.Builder(); + method public androidx.navigation.NavOptions build(); + method public androidx.navigation.NavOptions.Builder setEnterAnim(@AnimRes @AnimatorRes int enterAnim); + method public androidx.navigation.NavOptions.Builder setExitAnim(@AnimRes @AnimatorRes int exitAnim); + method public androidx.navigation.NavOptions.Builder setLaunchSingleTop(boolean singleTop); + method public androidx.navigation.NavOptions.Builder setPopEnterAnim(@AnimRes @AnimatorRes int popEnterAnim); + method public androidx.navigation.NavOptions.Builder setPopExitAnim(@AnimRes @AnimatorRes int popExitAnim); + method public inline androidx.navigation.NavOptions.Builder setPopUpTo(boolean inclusive, optional boolean saveState); + method public androidx.navigation.NavOptions.Builder setPopUpTo(@IdRes int destinationId, boolean inclusive); + method public androidx.navigation.NavOptions.Builder setPopUpTo(@IdRes int destinationId, boolean inclusive, optional boolean saveState); + method public androidx.navigation.NavOptions.Builder setPopUpTo(String? route, boolean inclusive); + method public androidx.navigation.NavOptions.Builder setPopUpTo(String? route, boolean inclusive, optional boolean saveState); + method public androidx.navigation.NavOptions.Builder setPopUpTo(T route, boolean inclusive); + method public androidx.navigation.NavOptions.Builder setPopUpTo(T route, boolean inclusive, optional boolean saveState); + method public androidx.navigation.NavOptions.Builder setRestoreState(boolean restoreState); + } + + @androidx.navigation.NavOptionsDsl public final class NavOptionsBuilder { + ctor public NavOptionsBuilder(); + method public void anim(kotlin.jvm.functions.Function1 animBuilder); + method public boolean getLaunchSingleTop(); + method @Deprecated public int getPopUpTo(); + method public int getPopUpToId(); + method public String? getPopUpToRoute(); + method public kotlin.reflect.KClass? getPopUpToRouteClass(); + method public Object? getPopUpToRouteObject(); + method public boolean getRestoreState(); + method public void popUpTo(@IdRes int id, optional kotlin.jvm.functions.Function1 popUpToBuilder); + method public void popUpTo(String route, optional kotlin.jvm.functions.Function1 popUpToBuilder); + method public inline void popUpTo(optional kotlin.jvm.functions.Function1 popUpToBuilder); + method public void popUpTo(T route, optional kotlin.jvm.functions.Function1 popUpToBuilder); + method public void setLaunchSingleTop(boolean); + method @Deprecated public void setPopUpTo(int); + method public void setRestoreState(boolean); + property public final boolean launchSingleTop; + property @Deprecated public final int popUpTo; + property public final int popUpToId; + property public final String? popUpToRoute; + property public final kotlin.reflect.KClass? popUpToRouteClass; + property public final Object? popUpToRouteObject; + property public final boolean restoreState; + } + + public final class NavOptionsBuilderKt { + method public static androidx.navigation.NavOptions navOptions(kotlin.jvm.functions.Function1 optionsBuilder); + } + + @kotlin.DslMarker public @interface NavOptionsDsl { + } + + public abstract class NavType { + ctor public NavType(boolean isNullableAllowed); + method public static androidx.navigation.NavType fromArgType(String? type, String? packageName); + method public abstract operator T? get(android.os.Bundle bundle, String key); + method public String getName(); + method public boolean isNullableAllowed(); + method public abstract T parseValue(String value); + method public T parseValue(String value, T previousValue); + method public abstract void put(android.os.Bundle bundle, String key, T value); + method public String serializeAsValue(T value); + method public boolean valueEquals(T value, T other); + property public boolean isNullableAllowed; + property public String name; + field public static final androidx.navigation.NavType BoolArrayType; + field public static final androidx.navigation.NavType?> BoolListType; + field public static final androidx.navigation.NavType BoolType; + field public static final androidx.navigation.NavType.Companion Companion; + field public static final androidx.navigation.NavType FloatArrayType; + field public static final androidx.navigation.NavType?> FloatListType; + field public static final androidx.navigation.NavType FloatType; + field public static final androidx.navigation.NavType IntArrayType; + field public static final androidx.navigation.NavType?> IntListType; + field public static final androidx.navigation.NavType IntType; + field public static final androidx.navigation.NavType LongArrayType; + field public static final androidx.navigation.NavType?> LongListType; + field public static final androidx.navigation.NavType LongType; + field public static final androidx.navigation.NavType ReferenceType; + field public static final androidx.navigation.NavType StringArrayType; + field public static final androidx.navigation.NavType?> StringListType; + field public static final androidx.navigation.NavType StringType; + } + + public static final class NavType.Companion { + method public androidx.navigation.NavType fromArgType(String? type, String? packageName); + } + + public static final class NavType.EnumType> extends androidx.navigation.NavType.SerializableType { + ctor public NavType.EnumType(Class type); + property public String name; + } + + public static final class NavType.ParcelableArrayType extends androidx.navigation.NavType { + ctor public NavType.ParcelableArrayType(Class type); + method public D[]? get(android.os.Bundle bundle, String key); + method public D[] parseValue(String value); + method public void put(android.os.Bundle bundle, String key, D[]? value); + method public boolean valueEquals(D[]? value, D[]? other); + property public String name; + } + + public static final class NavType.ParcelableType extends androidx.navigation.NavType { + ctor public NavType.ParcelableType(Class type); + method public D? get(android.os.Bundle bundle, String key); + method public D parseValue(String value); + method public void put(android.os.Bundle bundle, String key, D value); + property public String name; + } + + public static final class NavType.SerializableArrayType extends androidx.navigation.NavType { + ctor public NavType.SerializableArrayType(Class type); + method public D[]? get(android.os.Bundle bundle, String key); + method public D[] parseValue(String value); + method public void put(android.os.Bundle bundle, String key, D[]? value); + method public boolean valueEquals(D[]? value, D[]? other); + property public String name; + } + + public static class NavType.SerializableType extends androidx.navigation.NavType { + ctor public NavType.SerializableType(Class type); + method public D? get(android.os.Bundle bundle, String key); + method public D parseValue(String value); + method public void put(android.os.Bundle bundle, String key, D value); + property public String name; + } + + public abstract class Navigator { + ctor public Navigator(); + method public abstract D createDestination(); + method protected final androidx.navigation.NavigatorState getState(); + method public final boolean isAttached(); + method public androidx.navigation.NavDestination? navigate(D destination, android.os.Bundle? args, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras); + method public void navigate(java.util.List entries, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras); + method @CallSuper public void onAttach(androidx.navigation.NavigatorState state); + method public void onLaunchSingleTop(androidx.navigation.NavBackStackEntry backStackEntry); + method public void onRestoreState(android.os.Bundle savedState); + method public android.os.Bundle? onSaveState(); + method public boolean popBackStack(); + method public void popBackStack(androidx.navigation.NavBackStackEntry popUpTo, boolean savedState); + property public final boolean isAttached; + property protected final androidx.navigation.NavigatorState state; + } + + public static interface Navigator.Extras { + } + + @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.RUNTIME) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.ANNOTATION_CLASS, kotlin.annotation.AnnotationTarget.CLASS}) public static @interface Navigator.Name { + method public abstract String value(); + property public abstract String value; + } + + public class NavigatorProvider { + ctor public NavigatorProvider(); + method public final androidx.navigation.Navigator? addNavigator(androidx.navigation.Navigator navigator); + method @CallSuper public androidx.navigation.Navigator? addNavigator(String name, androidx.navigation.Navigator navigator); + method public final > T getNavigator(Class navigatorClass); + method @CallSuper public > T getNavigator(String name); + } + + public final class NavigatorProviderKt { + method public static inline operator > T get(androidx.navigation.NavigatorProvider, String name); + method public static inline operator > T get(androidx.navigation.NavigatorProvider, kotlin.reflect.KClass clazz); + method public static inline operator void plusAssign(androidx.navigation.NavigatorProvider, androidx.navigation.Navigator navigator); + method public static inline operator androidx.navigation.Navigator? set(androidx.navigation.NavigatorProvider, String name, androidx.navigation.Navigator navigator); + } + + public abstract class NavigatorState { + ctor public NavigatorState(); + method public abstract androidx.navigation.NavBackStackEntry createBackStackEntry(androidx.navigation.NavDestination destination, android.os.Bundle? arguments); + method public final kotlinx.coroutines.flow.StateFlow> getBackStack(); + method public final kotlinx.coroutines.flow.StateFlow> getTransitionsInProgress(); + method public void markTransitionComplete(androidx.navigation.NavBackStackEntry entry); + method @CallSuper public void onLaunchSingleTop(androidx.navigation.NavBackStackEntry backStackEntry); + method @CallSuper public void onLaunchSingleTopWithTransition(androidx.navigation.NavBackStackEntry backStackEntry); + method public void pop(androidx.navigation.NavBackStackEntry popUpTo, boolean saveState); + method public void popWithTransition(androidx.navigation.NavBackStackEntry popUpTo, boolean saveState); + method @CallSuper public void prepareForTransition(androidx.navigation.NavBackStackEntry entry); + method public void push(androidx.navigation.NavBackStackEntry backStackEntry); + method public void pushWithTransition(androidx.navigation.NavBackStackEntry backStackEntry); + property public final kotlinx.coroutines.flow.StateFlow> backStack; + property public final kotlinx.coroutines.flow.StateFlow> transitionsInProgress; + } + + @androidx.navigation.NavOptionsDsl public final class PopUpToBuilder { + ctor public PopUpToBuilder(); + method public boolean getInclusive(); + method public boolean getSaveState(); + method public void setInclusive(boolean); + method public void setSaveState(boolean); + property public final boolean inclusive; + property public final boolean saveState; + } + + public final class SavedStateHandleKt { + method public static inline T toRoute(androidx.lifecycle.SavedStateHandle, optional java.util.Map> typeMap); + } + +} + diff --git a/navigation/navigation-common/api/desktop/navigation-common.api b/navigation/navigation-common/api/desktop/navigation-common.api index a9617b9bb8a85..50755ddf63018 100644 --- a/navigation/navigation-common/api/desktop/navigation-common.api +++ b/navigation/navigation-common/api/desktop/navigation-common.api @@ -212,6 +212,7 @@ public class androidx/navigation/NavGraph : androidx/navigation/NavDestination, public fun hashCode ()I public final fun iterator ()Ljava/util/Iterator; public fun matchDeepLink (Ljava/lang/String;)Landroidx/navigation/NavDestination$DeepLinkMatch; + public final fun matchDeepLinkComprehensive (Ljava/lang/String;ZZLandroidx/navigation/NavDestination;)Landroidx/navigation/NavDestination$DeepLinkMatch; public final fun remove (Landroidx/navigation/NavDestination;)V public final fun setStartDestination (I)V public final fun setStartDestination (Ljava/lang/Object;)V @@ -433,6 +434,10 @@ public final class androidx/navigation/PopUpToBuilder { public final fun setSaveState (Z)V } +public final class androidx/navigation/SavedStateHandleKt { + public static final fun internalToRoute (Landroidx/lifecycle/SavedStateHandle;Lkotlin/reflect/KClass;Ljava/util/Map;)Ljava/lang/Object; +} + public final class androidx/navigation/serialization/RouteDeserializerKt { public static final fun decodeArguments (Lkotlinx/serialization/KSerializer;Landroidx/core/bundle/Bundle;Ljava/util/Map;)Ljava/lang/Object; public static final fun decodeArguments (Lkotlinx/serialization/KSerializer;Landroidx/lifecycle/SavedStateHandle;Ljava/util/Map;)Ljava/lang/Object; diff --git a/navigation/navigation-common/api/res-2.8.0-beta06.txt b/navigation/navigation-common/api/res-2.8.0-beta06.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/navigation/navigation-common/api/res-2.8.0-beta07.txt b/navigation/navigation-common/api/res-2.8.0-beta07.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/navigation/navigation-common/api/restricted_2.8.0-beta06.txt b/navigation/navigation-common/api/restricted_2.8.0-beta06.txt new file mode 100644 index 0000000000000..bb6ad19c9c790 --- /dev/null +++ b/navigation/navigation-common/api/restricted_2.8.0-beta06.txt @@ -0,0 +1,594 @@ +// Signature format: 4.0 +package androidx.navigation { + + public final class ActionOnlyNavDirections implements androidx.navigation.NavDirections { + ctor public ActionOnlyNavDirections(int actionId); + method public int component1(); + method public androidx.navigation.ActionOnlyNavDirections copy(int actionId); + method public int getActionId(); + method public android.os.Bundle getArguments(); + property public int actionId; + property public android.os.Bundle arguments; + } + + @androidx.navigation.NavOptionsDsl public final class AnimBuilder { + ctor public AnimBuilder(); + method public int getEnter(); + method public int getExit(); + method public int getPopEnter(); + method public int getPopExit(); + method public void setEnter(int); + method public void setExit(int); + method public void setPopEnter(int); + method public void setPopExit(int); + property public final int enter; + property public final int exit; + property public final int popEnter; + property public final int popExit; + } + + public abstract class CollectionNavType extends androidx.navigation.NavType { + ctor public CollectionNavType(boolean isNullableAllowed); + method public abstract T emptyCollection(); + method public abstract java.util.List serializeAsValues(T value); + } + + public interface FloatingWindow { + } + + public final class NamedNavArgument { + method public operator String component1(); + method public operator androidx.navigation.NavArgument component2(); + method public androidx.navigation.NavArgument getArgument(); + method public String getName(); + property public final androidx.navigation.NavArgument argument; + property public final String name; + } + + public final class NamedNavArgumentKt { + method public static androidx.navigation.NamedNavArgument navArgument(String name, kotlin.jvm.functions.Function1 builder); + } + + public final class NavAction { + ctor public NavAction(@IdRes int destinationId); + ctor public NavAction(@IdRes int destinationId, optional androidx.navigation.NavOptions? navOptions); + ctor public NavAction(@IdRes int destinationId, optional androidx.navigation.NavOptions? navOptions, optional android.os.Bundle? defaultArguments); + method public android.os.Bundle? getDefaultArguments(); + method public int getDestinationId(); + method public androidx.navigation.NavOptions? getNavOptions(); + method public void setDefaultArguments(android.os.Bundle?); + method public void setNavOptions(androidx.navigation.NavOptions?); + property public final android.os.Bundle? defaultArguments; + property public final int destinationId; + property public final androidx.navigation.NavOptions? navOptions; + } + + @androidx.navigation.NavDestinationDsl public final class NavActionBuilder { + ctor public NavActionBuilder(); + method public java.util.Map getDefaultArguments(); + method public int getDestinationId(); + method public void navOptions(kotlin.jvm.functions.Function1 optionsBuilder); + method public void setDestinationId(int); + property public final java.util.Map defaultArguments; + property public final int destinationId; + } + + public interface NavArgs { + } + + public final class NavArgsLazy implements kotlin.Lazy { + ctor public NavArgsLazy(kotlin.reflect.KClass navArgsClass, kotlin.jvm.functions.Function0 argumentProducer); + method public Args getValue(); + method public boolean isInitialized(); + property public Args value; + } + + public final class NavArgument { + method public Object? getDefaultValue(); + method public androidx.navigation.NavType getType(); + method public boolean isDefaultValuePresent(); + method public boolean isNullable(); + property public final Object? defaultValue; + property public final boolean isDefaultValuePresent; + property public final boolean isNullable; + property public final androidx.navigation.NavType type; + } + + public static final class NavArgument.Builder { + ctor public NavArgument.Builder(); + method public androidx.navigation.NavArgument build(); + method public androidx.navigation.NavArgument.Builder setDefaultValue(Object? defaultValue); + method public androidx.navigation.NavArgument.Builder setIsNullable(boolean isNullable); + method public androidx.navigation.NavArgument.Builder setType(androidx.navigation.NavType type); + } + + @androidx.navigation.NavDestinationDsl public final class NavArgumentBuilder { + ctor public NavArgumentBuilder(); + method public androidx.navigation.NavArgument build(); + method public Object? getDefaultValue(); + method public boolean getNullable(); + method public androidx.navigation.NavType getType(); + method public void setDefaultValue(Object?); + method public void setNullable(boolean); + method public void setType(androidx.navigation.NavType); + property public final Object? defaultValue; + property public final boolean nullable; + property public final androidx.navigation.NavType type; + } + + public final class NavBackStackEntry implements androidx.lifecycle.HasDefaultViewModelProviderFactory androidx.lifecycle.LifecycleOwner androidx.savedstate.SavedStateRegistryOwner androidx.lifecycle.ViewModelStoreOwner { + method public android.os.Bundle? getArguments(); + method public androidx.lifecycle.ViewModelProvider.Factory getDefaultViewModelProviderFactory(); + method public androidx.navigation.NavDestination getDestination(); + method public String getId(); + method public androidx.lifecycle.Lifecycle getLifecycle(); + method @MainThread public androidx.lifecycle.SavedStateHandle getSavedStateHandle(); + method public androidx.savedstate.SavedStateRegistry getSavedStateRegistry(); + method public androidx.lifecycle.ViewModelStore getViewModelStore(); + property public final android.os.Bundle? arguments; + property public androidx.lifecycle.viewmodel.CreationExtras defaultViewModelCreationExtras; + property public androidx.lifecycle.ViewModelProvider.Factory defaultViewModelProviderFactory; + property public final androidx.navigation.NavDestination destination; + property public final String id; + property public androidx.lifecycle.Lifecycle lifecycle; + property @MainThread public final androidx.lifecycle.SavedStateHandle savedStateHandle; + property public androidx.savedstate.SavedStateRegistry savedStateRegistry; + property public androidx.lifecycle.ViewModelStore viewModelStore; + field public static final androidx.navigation.NavBackStackEntry.Companion Companion; + } + + public static final class NavBackStackEntry.Companion { + } + + public final class NavBackStackEntryKt { + method public static inline T toRoute(androidx.navigation.NavBackStackEntry); + } + + public final class NavDeepLink { + method public String? getAction(); + method public String? getMimeType(); + method public String? getUriPattern(); + property public final String? action; + property public final String? mimeType; + property public final String? uriPattern; + } + + public static final class NavDeepLink.Builder { + method public androidx.navigation.NavDeepLink build(); + method public static androidx.navigation.NavDeepLink.Builder fromAction(String action); + method public static androidx.navigation.NavDeepLink.Builder fromMimeType(String mimeType); + method public static androidx.navigation.NavDeepLink.Builder fromUriPattern(String uriPattern); + method public androidx.navigation.NavDeepLink.Builder setAction(String action); + method public androidx.navigation.NavDeepLink.Builder setMimeType(String mimeType); + method public androidx.navigation.NavDeepLink.Builder setUriPattern(String uriPattern); + method public inline androidx.navigation.NavDeepLink.Builder setUriPattern(String basePath, optional java.util.Map> typeMap); + } + + @kotlin.DslMarker public @interface NavDeepLinkDsl { + } + + @androidx.navigation.NavDeepLinkDsl public final class NavDeepLinkDslBuilder { + ctor public NavDeepLinkDslBuilder(); + method public String? getAction(); + method public String? getMimeType(); + method public String? getUriPattern(); + method public void setAction(String?); + method public void setMimeType(String?); + method public void setUriPattern(String?); + property public final String? action; + property public final String? mimeType; + property public final String? uriPattern; + } + + public final class NavDeepLinkDslBuilderKt { + method public static inline androidx.navigation.NavDeepLink navDeepLink(String basePath, optional java.util.Map> typeMap, optional kotlin.jvm.functions.Function1 deepLinkBuilder); + method public static androidx.navigation.NavDeepLink navDeepLink(kotlin.jvm.functions.Function1 deepLinkBuilder); + } + + public class NavDeepLinkRequest { + method public String? getAction(); + method public String? getMimeType(); + method public android.net.Uri? getUri(); + property public String? action; + property public String? mimeType; + property public android.net.Uri? uri; + } + + public static final class NavDeepLinkRequest.Builder { + method public androidx.navigation.NavDeepLinkRequest build(); + method public static androidx.navigation.NavDeepLinkRequest.Builder fromAction(String action); + method public static androidx.navigation.NavDeepLinkRequest.Builder fromMimeType(String mimeType); + method public static androidx.navigation.NavDeepLinkRequest.Builder fromUri(android.net.Uri uri); + method public androidx.navigation.NavDeepLinkRequest.Builder setAction(String action); + method public androidx.navigation.NavDeepLinkRequest.Builder setMimeType(String mimeType); + method public androidx.navigation.NavDeepLinkRequest.Builder setUri(android.net.Uri uri); + field public static final androidx.navigation.NavDeepLinkRequest.Builder.Companion Companion; + } + + public static final class NavDeepLinkRequest.Builder.Companion { + method public androidx.navigation.NavDeepLinkRequest.Builder fromAction(String action); + method public androidx.navigation.NavDeepLinkRequest.Builder fromMimeType(String mimeType); + method public androidx.navigation.NavDeepLinkRequest.Builder fromUri(android.net.Uri uri); + } + + public class NavDestination { + ctor public NavDestination(androidx.navigation.Navigator navigator); + ctor public NavDestination(String navigatorName); + method public final void addArgument(String argumentName, androidx.navigation.NavArgument argument); + method public final void addDeepLink(androidx.navigation.NavDeepLink navDeepLink); + method public final void addDeepLink(String uriPattern); + method public final String? fillInLabel(android.content.Context context, android.os.Bundle? bundle); + method public final androidx.navigation.NavAction? getAction(@IdRes int id); + method public final java.util.Map getArguments(); + method public static final kotlin.sequences.Sequence getHierarchy(androidx.navigation.NavDestination); + method @IdRes public final int getId(); + method public final CharSequence? getLabel(); + method public final String getNavigatorName(); + method public final androidx.navigation.NavGraph? getParent(); + method public final String? getRoute(); + method public boolean hasDeepLink(android.net.Uri deepLink); + method public boolean hasDeepLink(androidx.navigation.NavDeepLinkRequest deepLinkRequest); + method public static final boolean hasRoute(androidx.navigation.NavDestination, kotlin.reflect.KClass route); + method @CallSuper public void onInflate(android.content.Context context, android.util.AttributeSet attrs); + method protected static final Class parseClassFromName(android.content.Context context, String name, Class expectedClassType); + method public final void putAction(@IdRes int actionId, androidx.navigation.NavAction action); + method public final void putAction(@IdRes int actionId, @IdRes int destId); + method public final void removeAction(@IdRes int actionId); + method public final void removeArgument(String argumentName); + method public final void setId(@IdRes int); + method public final void setLabel(CharSequence?); + method public final void setRoute(String?); + property public final java.util.Map arguments; + property @IdRes public final int id; + property public final CharSequence? label; + property public final String navigatorName; + property public final androidx.navigation.NavGraph? parent; + property public final String? route; + field public static final androidx.navigation.NavDestination.Companion Companion; + } + + @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.ANNOTATION_CLASS, kotlin.annotation.AnnotationTarget.CLASS}) public static @interface NavDestination.ClassType { + method public abstract Class value(); + property public abstract Class value; + } + + public static final class NavDestination.Companion { + method public kotlin.sequences.Sequence getHierarchy(androidx.navigation.NavDestination); + method public inline boolean hasRoute(androidx.navigation.NavDestination); + method public boolean hasRoute(androidx.navigation.NavDestination, kotlin.reflect.KClass route); + method protected Class parseClassFromName(android.content.Context context, String name, Class expectedClassType); + } + + @androidx.navigation.NavDestinationDsl public class NavDestinationBuilder { + ctor @Deprecated public NavDestinationBuilder(androidx.navigation.Navigator navigator, @IdRes int id); + ctor public NavDestinationBuilder(androidx.navigation.Navigator navigator, String? route); + ctor public NavDestinationBuilder(androidx.navigation.Navigator navigator, kotlin.reflect.KClass? route, java.util.Map> typeMap); + method @Deprecated public final void action(int actionId, kotlin.jvm.functions.Function1 actionBuilder); + method public final void argument(String name, androidx.navigation.NavArgument argument); + method public final void argument(String name, kotlin.jvm.functions.Function1 argumentBuilder); + method public D build(); + method public final void deepLink(androidx.navigation.NavDeepLink navDeepLink); + method public final void deepLink(String uriPattern); + method public inline void deepLink(String basePath, kotlin.jvm.functions.Function1 navDeepLink); + method public final void deepLink(kotlin.jvm.functions.Function1 navDeepLink); + method public inline void deepLinkSafeArgs(String basePath); + method public final int getId(); + method public final CharSequence? getLabel(); + method protected final androidx.navigation.Navigator getNavigator(); + method public final String? getRoute(); + method protected D instantiateDestination(); + method public final void setLabel(CharSequence?); + property public final int id; + property public final CharSequence? label; + property protected final androidx.navigation.Navigator navigator; + property public final String? route; + } + + @kotlin.DslMarker public @interface NavDestinationDsl { + } + + public interface NavDirections { + method @IdRes public int getActionId(); + method public android.os.Bundle getArguments(); + property @IdRes public abstract int actionId; + property public abstract android.os.Bundle arguments; + } + + public class NavGraph extends androidx.navigation.NavDestination implements java.lang.Iterable kotlin.jvm.internal.markers.KMappedMarker { + ctor public NavGraph(androidx.navigation.Navigator navGraphNavigator); + method public final void addAll(androidx.navigation.NavGraph other); + method public final void addDestination(androidx.navigation.NavDestination node); + method public final void addDestinations(androidx.navigation.NavDestination... nodes); + method public final void addDestinations(java.util.Collection nodes); + method public final void clear(); + method public inline androidx.navigation.NavDestination? findNode(); + method public final androidx.navigation.NavDestination? findNode(@IdRes int resId); + method public final androidx.navigation.NavDestination? findNode(String? route); + method public final androidx.navigation.NavDestination? findNode(T? route); + method public static final androidx.navigation.NavDestination findStartDestination(androidx.navigation.NavGraph); + method @Deprecated @IdRes public final int getStartDestination(); + method @IdRes public final int getStartDestinationId(); + method public final String? getStartDestinationRoute(); + method public final java.util.Iterator iterator(); + method public final void remove(androidx.navigation.NavDestination node); + method public inline void setStartDestination(); + method public final void setStartDestination(int startDestId); + method public final void setStartDestination(String startDestRoute); + method public final void setStartDestination(T startDestRoute); + property @IdRes public final int startDestinationId; + property public final String? startDestinationRoute; + field public static final androidx.navigation.NavGraph.Companion Companion; + } + + public static final class NavGraph.Companion { + method public androidx.navigation.NavDestination findStartDestination(androidx.navigation.NavGraph); + } + + @androidx.navigation.NavDestinationDsl public class NavGraphBuilder extends androidx.navigation.NavDestinationBuilder { + ctor @Deprecated public NavGraphBuilder(androidx.navigation.NavigatorProvider provider, @IdRes int id, @IdRes int startDestination); + ctor public NavGraphBuilder(androidx.navigation.NavigatorProvider provider, Object startDestination, kotlin.reflect.KClass? route, java.util.Map> typeMap); + ctor public NavGraphBuilder(androidx.navigation.NavigatorProvider provider, String startDestination, String? route); + ctor public NavGraphBuilder(androidx.navigation.NavigatorProvider provider, kotlin.reflect.KClass startDestination, kotlin.reflect.KClass? route, java.util.Map> typeMap); + method public final void addDestination(androidx.navigation.NavDestination destination); + method public androidx.navigation.NavGraph build(); + method public final void destination(androidx.navigation.NavDestinationBuilder navDestination); + method public final androidx.navigation.NavigatorProvider getProvider(); + method public final operator void unaryPlus(androidx.navigation.NavDestination); + property public final androidx.navigation.NavigatorProvider provider; + } + + public final class NavGraphBuilderKt { + method @Deprecated public static inline void navigation(androidx.navigation.NavGraphBuilder, @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1 builder); + method public static inline void navigation(androidx.navigation.NavGraphBuilder, Object startDestination, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method public static inline void navigation(androidx.navigation.NavGraphBuilder, String startDestination, String route, kotlin.jvm.functions.Function1 builder); + method public static inline void navigation(androidx.navigation.NavGraphBuilder, kotlin.reflect.KClass startDestination, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method @Deprecated public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, Object startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, String startDestination, optional String? route, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, kotlin.reflect.KClass startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public final class NavGraphKt { + method public static operator boolean contains(androidx.navigation.NavGraph, @IdRes int id); + method public static operator boolean contains(androidx.navigation.NavGraph, String route); + method public static inline operator boolean contains(androidx.navigation.NavGraph, kotlin.reflect.KClass route); + method public static operator boolean contains(androidx.navigation.NavGraph, T route); + method public static inline operator androidx.navigation.NavDestination get(androidx.navigation.NavGraph, @IdRes int id); + method public static inline operator androidx.navigation.NavDestination get(androidx.navigation.NavGraph, String route); + method public static inline operator androidx.navigation.NavDestination get(androidx.navigation.NavGraph, kotlin.reflect.KClass route); + method public static inline operator androidx.navigation.NavDestination get(androidx.navigation.NavGraph, T route); + method public static inline operator void minusAssign(androidx.navigation.NavGraph, androidx.navigation.NavDestination node); + method public static inline operator void plusAssign(androidx.navigation.NavGraph, androidx.navigation.NavDestination node); + method public static inline operator void plusAssign(androidx.navigation.NavGraph, androidx.navigation.NavGraph other); + } + + @androidx.navigation.Navigator.Name("navigation") public class NavGraphNavigator extends androidx.navigation.Navigator { + ctor public NavGraphNavigator(androidx.navigation.NavigatorProvider navigatorProvider); + method public androidx.navigation.NavGraph createDestination(); + method public final kotlinx.coroutines.flow.StateFlow> getBackStack(); + property public final kotlinx.coroutines.flow.StateFlow> backStack; + } + + public final class NavOptions { + method @AnimRes @AnimatorRes public int getEnterAnim(); + method @AnimRes @AnimatorRes public int getExitAnim(); + method @AnimRes @AnimatorRes public int getPopEnterAnim(); + method @AnimRes @AnimatorRes public int getPopExitAnim(); + method @Deprecated @IdRes public int getPopUpTo(); + method @IdRes public int getPopUpToId(); + method public String? getPopUpToRoute(); + method public kotlin.reflect.KClass? getPopUpToRouteClass(); + method public Object? getPopUpToRouteObject(); + method public boolean isPopUpToInclusive(); + method public boolean shouldLaunchSingleTop(); + method public boolean shouldPopUpToSaveState(); + method public boolean shouldRestoreState(); + property @AnimRes @AnimatorRes public final int enterAnim; + property @AnimRes @AnimatorRes public final int exitAnim; + property @AnimRes @AnimatorRes public final int popEnterAnim; + property @AnimRes @AnimatorRes public final int popExitAnim; + property @IdRes public final int popUpToId; + property public final String? popUpToRoute; + property public final kotlin.reflect.KClass? popUpToRouteClass; + property public final Object? popUpToRouteObject; + } + + public static final class NavOptions.Builder { + ctor public NavOptions.Builder(); + method public androidx.navigation.NavOptions build(); + method public androidx.navigation.NavOptions.Builder setEnterAnim(@AnimRes @AnimatorRes int enterAnim); + method public androidx.navigation.NavOptions.Builder setExitAnim(@AnimRes @AnimatorRes int exitAnim); + method public androidx.navigation.NavOptions.Builder setLaunchSingleTop(boolean singleTop); + method public androidx.navigation.NavOptions.Builder setPopEnterAnim(@AnimRes @AnimatorRes int popEnterAnim); + method public androidx.navigation.NavOptions.Builder setPopExitAnim(@AnimRes @AnimatorRes int popExitAnim); + method public inline androidx.navigation.NavOptions.Builder setPopUpTo(boolean inclusive, optional boolean saveState); + method public androidx.navigation.NavOptions.Builder setPopUpTo(@IdRes int destinationId, boolean inclusive); + method public androidx.navigation.NavOptions.Builder setPopUpTo(@IdRes int destinationId, boolean inclusive, optional boolean saveState); + method public androidx.navigation.NavOptions.Builder setPopUpTo(String? route, boolean inclusive); + method public androidx.navigation.NavOptions.Builder setPopUpTo(String? route, boolean inclusive, optional boolean saveState); + method public androidx.navigation.NavOptions.Builder setPopUpTo(T route, boolean inclusive); + method public androidx.navigation.NavOptions.Builder setPopUpTo(T route, boolean inclusive, optional boolean saveState); + method public androidx.navigation.NavOptions.Builder setRestoreState(boolean restoreState); + } + + @androidx.navigation.NavOptionsDsl public final class NavOptionsBuilder { + ctor public NavOptionsBuilder(); + method public void anim(kotlin.jvm.functions.Function1 animBuilder); + method public boolean getLaunchSingleTop(); + method @Deprecated public int getPopUpTo(); + method public int getPopUpToId(); + method public String? getPopUpToRoute(); + method public kotlin.reflect.KClass? getPopUpToRouteClass(); + method public Object? getPopUpToRouteObject(); + method public boolean getRestoreState(); + method public void popUpTo(@IdRes int id, optional kotlin.jvm.functions.Function1 popUpToBuilder); + method public void popUpTo(String route, optional kotlin.jvm.functions.Function1 popUpToBuilder); + method public inline void popUpTo(optional kotlin.jvm.functions.Function1 popUpToBuilder); + method public void popUpTo(T route, optional kotlin.jvm.functions.Function1 popUpToBuilder); + method public void setLaunchSingleTop(boolean); + method @Deprecated public void setPopUpTo(int); + method public void setRestoreState(boolean); + property public final boolean launchSingleTop; + property @Deprecated public final int popUpTo; + property public final int popUpToId; + property public final String? popUpToRoute; + property public final kotlin.reflect.KClass? popUpToRouteClass; + property public final Object? popUpToRouteObject; + property public final boolean restoreState; + } + + public final class NavOptionsBuilderKt { + method public static androidx.navigation.NavOptions navOptions(kotlin.jvm.functions.Function1 optionsBuilder); + } + + @kotlin.DslMarker public @interface NavOptionsDsl { + } + + public abstract class NavType { + ctor public NavType(boolean isNullableAllowed); + method public static androidx.navigation.NavType fromArgType(String? type, String? packageName); + method public abstract operator T? get(android.os.Bundle bundle, String key); + method public String getName(); + method public boolean isNullableAllowed(); + method public abstract T parseValue(String value); + method public T parseValue(String value, T previousValue); + method public abstract void put(android.os.Bundle bundle, String key, T value); + method public String serializeAsValue(T value); + method public boolean valueEquals(T value, T other); + property public boolean isNullableAllowed; + property public String name; + field public static final androidx.navigation.NavType BoolArrayType; + field public static final androidx.navigation.NavType?> BoolListType; + field public static final androidx.navigation.NavType BoolType; + field public static final androidx.navigation.NavType.Companion Companion; + field public static final androidx.navigation.NavType FloatArrayType; + field public static final androidx.navigation.NavType?> FloatListType; + field public static final androidx.navigation.NavType FloatType; + field public static final androidx.navigation.NavType IntArrayType; + field public static final androidx.navigation.NavType?> IntListType; + field public static final androidx.navigation.NavType IntType; + field public static final androidx.navigation.NavType LongArrayType; + field public static final androidx.navigation.NavType?> LongListType; + field public static final androidx.navigation.NavType LongType; + field public static final androidx.navigation.NavType ReferenceType; + field public static final androidx.navigation.NavType StringArrayType; + field public static final androidx.navigation.NavType?> StringListType; + field public static final androidx.navigation.NavType StringType; + } + + public static final class NavType.Companion { + method public androidx.navigation.NavType fromArgType(String? type, String? packageName); + } + + public static final class NavType.EnumType> extends androidx.navigation.NavType.SerializableType { + ctor public NavType.EnumType(Class type); + property public String name; + } + + public static final class NavType.ParcelableArrayType extends androidx.navigation.NavType { + ctor public NavType.ParcelableArrayType(Class type); + method public D[]? get(android.os.Bundle bundle, String key); + method public D[] parseValue(String value); + method public void put(android.os.Bundle bundle, String key, D[]? value); + method public boolean valueEquals(D[]? value, D[]? other); + property public String name; + } + + public static final class NavType.ParcelableType extends androidx.navigation.NavType { + ctor public NavType.ParcelableType(Class type); + method public D? get(android.os.Bundle bundle, String key); + method public D parseValue(String value); + method public void put(android.os.Bundle bundle, String key, D value); + property public String name; + } + + public static final class NavType.SerializableArrayType extends androidx.navigation.NavType { + ctor public NavType.SerializableArrayType(Class type); + method public D[]? get(android.os.Bundle bundle, String key); + method public D[] parseValue(String value); + method public void put(android.os.Bundle bundle, String key, D[]? value); + method public boolean valueEquals(D[]? value, D[]? other); + property public String name; + } + + public static class NavType.SerializableType extends androidx.navigation.NavType { + ctor public NavType.SerializableType(Class type); + method public D? get(android.os.Bundle bundle, String key); + method public D parseValue(String value); + method public void put(android.os.Bundle bundle, String key, D value); + property public String name; + } + + public abstract class Navigator { + ctor public Navigator(); + method public abstract D createDestination(); + method protected final androidx.navigation.NavigatorState getState(); + method public final boolean isAttached(); + method public androidx.navigation.NavDestination? navigate(D destination, android.os.Bundle? args, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras); + method public void navigate(java.util.List entries, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras); + method @CallSuper public void onAttach(androidx.navigation.NavigatorState state); + method public void onLaunchSingleTop(androidx.navigation.NavBackStackEntry backStackEntry); + method public void onRestoreState(android.os.Bundle savedState); + method public android.os.Bundle? onSaveState(); + method public boolean popBackStack(); + method public void popBackStack(androidx.navigation.NavBackStackEntry popUpTo, boolean savedState); + property public final boolean isAttached; + property protected final androidx.navigation.NavigatorState state; + } + + public static interface Navigator.Extras { + } + + @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.RUNTIME) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.ANNOTATION_CLASS, kotlin.annotation.AnnotationTarget.CLASS}) public static @interface Navigator.Name { + method public abstract String value(); + property public abstract String value; + } + + public class NavigatorProvider { + ctor public NavigatorProvider(); + method public final androidx.navigation.Navigator? addNavigator(androidx.navigation.Navigator navigator); + method @CallSuper public androidx.navigation.Navigator? addNavigator(String name, androidx.navigation.Navigator navigator); + method public final > T getNavigator(Class navigatorClass); + method @CallSuper public > T getNavigator(String name); + } + + public final class NavigatorProviderKt { + method public static inline operator > T get(androidx.navigation.NavigatorProvider, String name); + method public static inline operator > T get(androidx.navigation.NavigatorProvider, kotlin.reflect.KClass clazz); + method public static inline operator void plusAssign(androidx.navigation.NavigatorProvider, androidx.navigation.Navigator navigator); + method public static inline operator androidx.navigation.Navigator? set(androidx.navigation.NavigatorProvider, String name, androidx.navigation.Navigator navigator); + } + + public abstract class NavigatorState { + ctor public NavigatorState(); + method public abstract androidx.navigation.NavBackStackEntry createBackStackEntry(androidx.navigation.NavDestination destination, android.os.Bundle? arguments); + method public final kotlinx.coroutines.flow.StateFlow> getBackStack(); + method public final kotlinx.coroutines.flow.StateFlow> getTransitionsInProgress(); + method public void markTransitionComplete(androidx.navigation.NavBackStackEntry entry); + method @CallSuper public void onLaunchSingleTop(androidx.navigation.NavBackStackEntry backStackEntry); + method @CallSuper public void onLaunchSingleTopWithTransition(androidx.navigation.NavBackStackEntry backStackEntry); + method public void pop(androidx.navigation.NavBackStackEntry popUpTo, boolean saveState); + method public void popWithTransition(androidx.navigation.NavBackStackEntry popUpTo, boolean saveState); + method @CallSuper public void prepareForTransition(androidx.navigation.NavBackStackEntry entry); + method public void push(androidx.navigation.NavBackStackEntry backStackEntry); + method public void pushWithTransition(androidx.navigation.NavBackStackEntry backStackEntry); + property public final kotlinx.coroutines.flow.StateFlow> backStack; + property public final kotlinx.coroutines.flow.StateFlow> transitionsInProgress; + } + + @androidx.navigation.NavOptionsDsl public final class PopUpToBuilder { + ctor public PopUpToBuilder(); + method public boolean getInclusive(); + method public boolean getSaveState(); + method public void setInclusive(boolean); + method public void setSaveState(boolean); + property public final boolean inclusive; + property public final boolean saveState; + } + + public final class SavedStateHandleKt { + method public static inline T toRoute(androidx.lifecycle.SavedStateHandle, optional java.util.Map> typeMap); + } + +} + diff --git a/navigation/navigation-common/api/restricted_2.8.0-beta07.txt b/navigation/navigation-common/api/restricted_2.8.0-beta07.txt new file mode 100644 index 0000000000000..bb6ad19c9c790 --- /dev/null +++ b/navigation/navigation-common/api/restricted_2.8.0-beta07.txt @@ -0,0 +1,594 @@ +// Signature format: 4.0 +package androidx.navigation { + + public final class ActionOnlyNavDirections implements androidx.navigation.NavDirections { + ctor public ActionOnlyNavDirections(int actionId); + method public int component1(); + method public androidx.navigation.ActionOnlyNavDirections copy(int actionId); + method public int getActionId(); + method public android.os.Bundle getArguments(); + property public int actionId; + property public android.os.Bundle arguments; + } + + @androidx.navigation.NavOptionsDsl public final class AnimBuilder { + ctor public AnimBuilder(); + method public int getEnter(); + method public int getExit(); + method public int getPopEnter(); + method public int getPopExit(); + method public void setEnter(int); + method public void setExit(int); + method public void setPopEnter(int); + method public void setPopExit(int); + property public final int enter; + property public final int exit; + property public final int popEnter; + property public final int popExit; + } + + public abstract class CollectionNavType extends androidx.navigation.NavType { + ctor public CollectionNavType(boolean isNullableAllowed); + method public abstract T emptyCollection(); + method public abstract java.util.List serializeAsValues(T value); + } + + public interface FloatingWindow { + } + + public final class NamedNavArgument { + method public operator String component1(); + method public operator androidx.navigation.NavArgument component2(); + method public androidx.navigation.NavArgument getArgument(); + method public String getName(); + property public final androidx.navigation.NavArgument argument; + property public final String name; + } + + public final class NamedNavArgumentKt { + method public static androidx.navigation.NamedNavArgument navArgument(String name, kotlin.jvm.functions.Function1 builder); + } + + public final class NavAction { + ctor public NavAction(@IdRes int destinationId); + ctor public NavAction(@IdRes int destinationId, optional androidx.navigation.NavOptions? navOptions); + ctor public NavAction(@IdRes int destinationId, optional androidx.navigation.NavOptions? navOptions, optional android.os.Bundle? defaultArguments); + method public android.os.Bundle? getDefaultArguments(); + method public int getDestinationId(); + method public androidx.navigation.NavOptions? getNavOptions(); + method public void setDefaultArguments(android.os.Bundle?); + method public void setNavOptions(androidx.navigation.NavOptions?); + property public final android.os.Bundle? defaultArguments; + property public final int destinationId; + property public final androidx.navigation.NavOptions? navOptions; + } + + @androidx.navigation.NavDestinationDsl public final class NavActionBuilder { + ctor public NavActionBuilder(); + method public java.util.Map getDefaultArguments(); + method public int getDestinationId(); + method public void navOptions(kotlin.jvm.functions.Function1 optionsBuilder); + method public void setDestinationId(int); + property public final java.util.Map defaultArguments; + property public final int destinationId; + } + + public interface NavArgs { + } + + public final class NavArgsLazy implements kotlin.Lazy { + ctor public NavArgsLazy(kotlin.reflect.KClass navArgsClass, kotlin.jvm.functions.Function0 argumentProducer); + method public Args getValue(); + method public boolean isInitialized(); + property public Args value; + } + + public final class NavArgument { + method public Object? getDefaultValue(); + method public androidx.navigation.NavType getType(); + method public boolean isDefaultValuePresent(); + method public boolean isNullable(); + property public final Object? defaultValue; + property public final boolean isDefaultValuePresent; + property public final boolean isNullable; + property public final androidx.navigation.NavType type; + } + + public static final class NavArgument.Builder { + ctor public NavArgument.Builder(); + method public androidx.navigation.NavArgument build(); + method public androidx.navigation.NavArgument.Builder setDefaultValue(Object? defaultValue); + method public androidx.navigation.NavArgument.Builder setIsNullable(boolean isNullable); + method public androidx.navigation.NavArgument.Builder setType(androidx.navigation.NavType type); + } + + @androidx.navigation.NavDestinationDsl public final class NavArgumentBuilder { + ctor public NavArgumentBuilder(); + method public androidx.navigation.NavArgument build(); + method public Object? getDefaultValue(); + method public boolean getNullable(); + method public androidx.navigation.NavType getType(); + method public void setDefaultValue(Object?); + method public void setNullable(boolean); + method public void setType(androidx.navigation.NavType); + property public final Object? defaultValue; + property public final boolean nullable; + property public final androidx.navigation.NavType type; + } + + public final class NavBackStackEntry implements androidx.lifecycle.HasDefaultViewModelProviderFactory androidx.lifecycle.LifecycleOwner androidx.savedstate.SavedStateRegistryOwner androidx.lifecycle.ViewModelStoreOwner { + method public android.os.Bundle? getArguments(); + method public androidx.lifecycle.ViewModelProvider.Factory getDefaultViewModelProviderFactory(); + method public androidx.navigation.NavDestination getDestination(); + method public String getId(); + method public androidx.lifecycle.Lifecycle getLifecycle(); + method @MainThread public androidx.lifecycle.SavedStateHandle getSavedStateHandle(); + method public androidx.savedstate.SavedStateRegistry getSavedStateRegistry(); + method public androidx.lifecycle.ViewModelStore getViewModelStore(); + property public final android.os.Bundle? arguments; + property public androidx.lifecycle.viewmodel.CreationExtras defaultViewModelCreationExtras; + property public androidx.lifecycle.ViewModelProvider.Factory defaultViewModelProviderFactory; + property public final androidx.navigation.NavDestination destination; + property public final String id; + property public androidx.lifecycle.Lifecycle lifecycle; + property @MainThread public final androidx.lifecycle.SavedStateHandle savedStateHandle; + property public androidx.savedstate.SavedStateRegistry savedStateRegistry; + property public androidx.lifecycle.ViewModelStore viewModelStore; + field public static final androidx.navigation.NavBackStackEntry.Companion Companion; + } + + public static final class NavBackStackEntry.Companion { + } + + public final class NavBackStackEntryKt { + method public static inline T toRoute(androidx.navigation.NavBackStackEntry); + } + + public final class NavDeepLink { + method public String? getAction(); + method public String? getMimeType(); + method public String? getUriPattern(); + property public final String? action; + property public final String? mimeType; + property public final String? uriPattern; + } + + public static final class NavDeepLink.Builder { + method public androidx.navigation.NavDeepLink build(); + method public static androidx.navigation.NavDeepLink.Builder fromAction(String action); + method public static androidx.navigation.NavDeepLink.Builder fromMimeType(String mimeType); + method public static androidx.navigation.NavDeepLink.Builder fromUriPattern(String uriPattern); + method public androidx.navigation.NavDeepLink.Builder setAction(String action); + method public androidx.navigation.NavDeepLink.Builder setMimeType(String mimeType); + method public androidx.navigation.NavDeepLink.Builder setUriPattern(String uriPattern); + method public inline androidx.navigation.NavDeepLink.Builder setUriPattern(String basePath, optional java.util.Map> typeMap); + } + + @kotlin.DslMarker public @interface NavDeepLinkDsl { + } + + @androidx.navigation.NavDeepLinkDsl public final class NavDeepLinkDslBuilder { + ctor public NavDeepLinkDslBuilder(); + method public String? getAction(); + method public String? getMimeType(); + method public String? getUriPattern(); + method public void setAction(String?); + method public void setMimeType(String?); + method public void setUriPattern(String?); + property public final String? action; + property public final String? mimeType; + property public final String? uriPattern; + } + + public final class NavDeepLinkDslBuilderKt { + method public static inline androidx.navigation.NavDeepLink navDeepLink(String basePath, optional java.util.Map> typeMap, optional kotlin.jvm.functions.Function1 deepLinkBuilder); + method public static androidx.navigation.NavDeepLink navDeepLink(kotlin.jvm.functions.Function1 deepLinkBuilder); + } + + public class NavDeepLinkRequest { + method public String? getAction(); + method public String? getMimeType(); + method public android.net.Uri? getUri(); + property public String? action; + property public String? mimeType; + property public android.net.Uri? uri; + } + + public static final class NavDeepLinkRequest.Builder { + method public androidx.navigation.NavDeepLinkRequest build(); + method public static androidx.navigation.NavDeepLinkRequest.Builder fromAction(String action); + method public static androidx.navigation.NavDeepLinkRequest.Builder fromMimeType(String mimeType); + method public static androidx.navigation.NavDeepLinkRequest.Builder fromUri(android.net.Uri uri); + method public androidx.navigation.NavDeepLinkRequest.Builder setAction(String action); + method public androidx.navigation.NavDeepLinkRequest.Builder setMimeType(String mimeType); + method public androidx.navigation.NavDeepLinkRequest.Builder setUri(android.net.Uri uri); + field public static final androidx.navigation.NavDeepLinkRequest.Builder.Companion Companion; + } + + public static final class NavDeepLinkRequest.Builder.Companion { + method public androidx.navigation.NavDeepLinkRequest.Builder fromAction(String action); + method public androidx.navigation.NavDeepLinkRequest.Builder fromMimeType(String mimeType); + method public androidx.navigation.NavDeepLinkRequest.Builder fromUri(android.net.Uri uri); + } + + public class NavDestination { + ctor public NavDestination(androidx.navigation.Navigator navigator); + ctor public NavDestination(String navigatorName); + method public final void addArgument(String argumentName, androidx.navigation.NavArgument argument); + method public final void addDeepLink(androidx.navigation.NavDeepLink navDeepLink); + method public final void addDeepLink(String uriPattern); + method public final String? fillInLabel(android.content.Context context, android.os.Bundle? bundle); + method public final androidx.navigation.NavAction? getAction(@IdRes int id); + method public final java.util.Map getArguments(); + method public static final kotlin.sequences.Sequence getHierarchy(androidx.navigation.NavDestination); + method @IdRes public final int getId(); + method public final CharSequence? getLabel(); + method public final String getNavigatorName(); + method public final androidx.navigation.NavGraph? getParent(); + method public final String? getRoute(); + method public boolean hasDeepLink(android.net.Uri deepLink); + method public boolean hasDeepLink(androidx.navigation.NavDeepLinkRequest deepLinkRequest); + method public static final boolean hasRoute(androidx.navigation.NavDestination, kotlin.reflect.KClass route); + method @CallSuper public void onInflate(android.content.Context context, android.util.AttributeSet attrs); + method protected static final Class parseClassFromName(android.content.Context context, String name, Class expectedClassType); + method public final void putAction(@IdRes int actionId, androidx.navigation.NavAction action); + method public final void putAction(@IdRes int actionId, @IdRes int destId); + method public final void removeAction(@IdRes int actionId); + method public final void removeArgument(String argumentName); + method public final void setId(@IdRes int); + method public final void setLabel(CharSequence?); + method public final void setRoute(String?); + property public final java.util.Map arguments; + property @IdRes public final int id; + property public final CharSequence? label; + property public final String navigatorName; + property public final androidx.navigation.NavGraph? parent; + property public final String? route; + field public static final androidx.navigation.NavDestination.Companion Companion; + } + + @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.ANNOTATION_CLASS, kotlin.annotation.AnnotationTarget.CLASS}) public static @interface NavDestination.ClassType { + method public abstract Class value(); + property public abstract Class value; + } + + public static final class NavDestination.Companion { + method public kotlin.sequences.Sequence getHierarchy(androidx.navigation.NavDestination); + method public inline boolean hasRoute(androidx.navigation.NavDestination); + method public boolean hasRoute(androidx.navigation.NavDestination, kotlin.reflect.KClass route); + method protected Class parseClassFromName(android.content.Context context, String name, Class expectedClassType); + } + + @androidx.navigation.NavDestinationDsl public class NavDestinationBuilder { + ctor @Deprecated public NavDestinationBuilder(androidx.navigation.Navigator navigator, @IdRes int id); + ctor public NavDestinationBuilder(androidx.navigation.Navigator navigator, String? route); + ctor public NavDestinationBuilder(androidx.navigation.Navigator navigator, kotlin.reflect.KClass? route, java.util.Map> typeMap); + method @Deprecated public final void action(int actionId, kotlin.jvm.functions.Function1 actionBuilder); + method public final void argument(String name, androidx.navigation.NavArgument argument); + method public final void argument(String name, kotlin.jvm.functions.Function1 argumentBuilder); + method public D build(); + method public final void deepLink(androidx.navigation.NavDeepLink navDeepLink); + method public final void deepLink(String uriPattern); + method public inline void deepLink(String basePath, kotlin.jvm.functions.Function1 navDeepLink); + method public final void deepLink(kotlin.jvm.functions.Function1 navDeepLink); + method public inline void deepLinkSafeArgs(String basePath); + method public final int getId(); + method public final CharSequence? getLabel(); + method protected final androidx.navigation.Navigator getNavigator(); + method public final String? getRoute(); + method protected D instantiateDestination(); + method public final void setLabel(CharSequence?); + property public final int id; + property public final CharSequence? label; + property protected final androidx.navigation.Navigator navigator; + property public final String? route; + } + + @kotlin.DslMarker public @interface NavDestinationDsl { + } + + public interface NavDirections { + method @IdRes public int getActionId(); + method public android.os.Bundle getArguments(); + property @IdRes public abstract int actionId; + property public abstract android.os.Bundle arguments; + } + + public class NavGraph extends androidx.navigation.NavDestination implements java.lang.Iterable kotlin.jvm.internal.markers.KMappedMarker { + ctor public NavGraph(androidx.navigation.Navigator navGraphNavigator); + method public final void addAll(androidx.navigation.NavGraph other); + method public final void addDestination(androidx.navigation.NavDestination node); + method public final void addDestinations(androidx.navigation.NavDestination... nodes); + method public final void addDestinations(java.util.Collection nodes); + method public final void clear(); + method public inline androidx.navigation.NavDestination? findNode(); + method public final androidx.navigation.NavDestination? findNode(@IdRes int resId); + method public final androidx.navigation.NavDestination? findNode(String? route); + method public final androidx.navigation.NavDestination? findNode(T? route); + method public static final androidx.navigation.NavDestination findStartDestination(androidx.navigation.NavGraph); + method @Deprecated @IdRes public final int getStartDestination(); + method @IdRes public final int getStartDestinationId(); + method public final String? getStartDestinationRoute(); + method public final java.util.Iterator iterator(); + method public final void remove(androidx.navigation.NavDestination node); + method public inline void setStartDestination(); + method public final void setStartDestination(int startDestId); + method public final void setStartDestination(String startDestRoute); + method public final void setStartDestination(T startDestRoute); + property @IdRes public final int startDestinationId; + property public final String? startDestinationRoute; + field public static final androidx.navigation.NavGraph.Companion Companion; + } + + public static final class NavGraph.Companion { + method public androidx.navigation.NavDestination findStartDestination(androidx.navigation.NavGraph); + } + + @androidx.navigation.NavDestinationDsl public class NavGraphBuilder extends androidx.navigation.NavDestinationBuilder { + ctor @Deprecated public NavGraphBuilder(androidx.navigation.NavigatorProvider provider, @IdRes int id, @IdRes int startDestination); + ctor public NavGraphBuilder(androidx.navigation.NavigatorProvider provider, Object startDestination, kotlin.reflect.KClass? route, java.util.Map> typeMap); + ctor public NavGraphBuilder(androidx.navigation.NavigatorProvider provider, String startDestination, String? route); + ctor public NavGraphBuilder(androidx.navigation.NavigatorProvider provider, kotlin.reflect.KClass startDestination, kotlin.reflect.KClass? route, java.util.Map> typeMap); + method public final void addDestination(androidx.navigation.NavDestination destination); + method public androidx.navigation.NavGraph build(); + method public final void destination(androidx.navigation.NavDestinationBuilder navDestination); + method public final androidx.navigation.NavigatorProvider getProvider(); + method public final operator void unaryPlus(androidx.navigation.NavDestination); + property public final androidx.navigation.NavigatorProvider provider; + } + + public final class NavGraphBuilderKt { + method @Deprecated public static inline void navigation(androidx.navigation.NavGraphBuilder, @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1 builder); + method public static inline void navigation(androidx.navigation.NavGraphBuilder, Object startDestination, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method public static inline void navigation(androidx.navigation.NavGraphBuilder, String startDestination, String route, kotlin.jvm.functions.Function1 builder); + method public static inline void navigation(androidx.navigation.NavGraphBuilder, kotlin.reflect.KClass startDestination, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method @Deprecated public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, Object startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, String startDestination, optional String? route, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, kotlin.reflect.KClass startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public final class NavGraphKt { + method public static operator boolean contains(androidx.navigation.NavGraph, @IdRes int id); + method public static operator boolean contains(androidx.navigation.NavGraph, String route); + method public static inline operator boolean contains(androidx.navigation.NavGraph, kotlin.reflect.KClass route); + method public static operator boolean contains(androidx.navigation.NavGraph, T route); + method public static inline operator androidx.navigation.NavDestination get(androidx.navigation.NavGraph, @IdRes int id); + method public static inline operator androidx.navigation.NavDestination get(androidx.navigation.NavGraph, String route); + method public static inline operator androidx.navigation.NavDestination get(androidx.navigation.NavGraph, kotlin.reflect.KClass route); + method public static inline operator androidx.navigation.NavDestination get(androidx.navigation.NavGraph, T route); + method public static inline operator void minusAssign(androidx.navigation.NavGraph, androidx.navigation.NavDestination node); + method public static inline operator void plusAssign(androidx.navigation.NavGraph, androidx.navigation.NavDestination node); + method public static inline operator void plusAssign(androidx.navigation.NavGraph, androidx.navigation.NavGraph other); + } + + @androidx.navigation.Navigator.Name("navigation") public class NavGraphNavigator extends androidx.navigation.Navigator { + ctor public NavGraphNavigator(androidx.navigation.NavigatorProvider navigatorProvider); + method public androidx.navigation.NavGraph createDestination(); + method public final kotlinx.coroutines.flow.StateFlow> getBackStack(); + property public final kotlinx.coroutines.flow.StateFlow> backStack; + } + + public final class NavOptions { + method @AnimRes @AnimatorRes public int getEnterAnim(); + method @AnimRes @AnimatorRes public int getExitAnim(); + method @AnimRes @AnimatorRes public int getPopEnterAnim(); + method @AnimRes @AnimatorRes public int getPopExitAnim(); + method @Deprecated @IdRes public int getPopUpTo(); + method @IdRes public int getPopUpToId(); + method public String? getPopUpToRoute(); + method public kotlin.reflect.KClass? getPopUpToRouteClass(); + method public Object? getPopUpToRouteObject(); + method public boolean isPopUpToInclusive(); + method public boolean shouldLaunchSingleTop(); + method public boolean shouldPopUpToSaveState(); + method public boolean shouldRestoreState(); + property @AnimRes @AnimatorRes public final int enterAnim; + property @AnimRes @AnimatorRes public final int exitAnim; + property @AnimRes @AnimatorRes public final int popEnterAnim; + property @AnimRes @AnimatorRes public final int popExitAnim; + property @IdRes public final int popUpToId; + property public final String? popUpToRoute; + property public final kotlin.reflect.KClass? popUpToRouteClass; + property public final Object? popUpToRouteObject; + } + + public static final class NavOptions.Builder { + ctor public NavOptions.Builder(); + method public androidx.navigation.NavOptions build(); + method public androidx.navigation.NavOptions.Builder setEnterAnim(@AnimRes @AnimatorRes int enterAnim); + method public androidx.navigation.NavOptions.Builder setExitAnim(@AnimRes @AnimatorRes int exitAnim); + method public androidx.navigation.NavOptions.Builder setLaunchSingleTop(boolean singleTop); + method public androidx.navigation.NavOptions.Builder setPopEnterAnim(@AnimRes @AnimatorRes int popEnterAnim); + method public androidx.navigation.NavOptions.Builder setPopExitAnim(@AnimRes @AnimatorRes int popExitAnim); + method public inline androidx.navigation.NavOptions.Builder setPopUpTo(boolean inclusive, optional boolean saveState); + method public androidx.navigation.NavOptions.Builder setPopUpTo(@IdRes int destinationId, boolean inclusive); + method public androidx.navigation.NavOptions.Builder setPopUpTo(@IdRes int destinationId, boolean inclusive, optional boolean saveState); + method public androidx.navigation.NavOptions.Builder setPopUpTo(String? route, boolean inclusive); + method public androidx.navigation.NavOptions.Builder setPopUpTo(String? route, boolean inclusive, optional boolean saveState); + method public androidx.navigation.NavOptions.Builder setPopUpTo(T route, boolean inclusive); + method public androidx.navigation.NavOptions.Builder setPopUpTo(T route, boolean inclusive, optional boolean saveState); + method public androidx.navigation.NavOptions.Builder setRestoreState(boolean restoreState); + } + + @androidx.navigation.NavOptionsDsl public final class NavOptionsBuilder { + ctor public NavOptionsBuilder(); + method public void anim(kotlin.jvm.functions.Function1 animBuilder); + method public boolean getLaunchSingleTop(); + method @Deprecated public int getPopUpTo(); + method public int getPopUpToId(); + method public String? getPopUpToRoute(); + method public kotlin.reflect.KClass? getPopUpToRouteClass(); + method public Object? getPopUpToRouteObject(); + method public boolean getRestoreState(); + method public void popUpTo(@IdRes int id, optional kotlin.jvm.functions.Function1 popUpToBuilder); + method public void popUpTo(String route, optional kotlin.jvm.functions.Function1 popUpToBuilder); + method public inline void popUpTo(optional kotlin.jvm.functions.Function1 popUpToBuilder); + method public void popUpTo(T route, optional kotlin.jvm.functions.Function1 popUpToBuilder); + method public void setLaunchSingleTop(boolean); + method @Deprecated public void setPopUpTo(int); + method public void setRestoreState(boolean); + property public final boolean launchSingleTop; + property @Deprecated public final int popUpTo; + property public final int popUpToId; + property public final String? popUpToRoute; + property public final kotlin.reflect.KClass? popUpToRouteClass; + property public final Object? popUpToRouteObject; + property public final boolean restoreState; + } + + public final class NavOptionsBuilderKt { + method public static androidx.navigation.NavOptions navOptions(kotlin.jvm.functions.Function1 optionsBuilder); + } + + @kotlin.DslMarker public @interface NavOptionsDsl { + } + + public abstract class NavType { + ctor public NavType(boolean isNullableAllowed); + method public static androidx.navigation.NavType fromArgType(String? type, String? packageName); + method public abstract operator T? get(android.os.Bundle bundle, String key); + method public String getName(); + method public boolean isNullableAllowed(); + method public abstract T parseValue(String value); + method public T parseValue(String value, T previousValue); + method public abstract void put(android.os.Bundle bundle, String key, T value); + method public String serializeAsValue(T value); + method public boolean valueEquals(T value, T other); + property public boolean isNullableAllowed; + property public String name; + field public static final androidx.navigation.NavType BoolArrayType; + field public static final androidx.navigation.NavType?> BoolListType; + field public static final androidx.navigation.NavType BoolType; + field public static final androidx.navigation.NavType.Companion Companion; + field public static final androidx.navigation.NavType FloatArrayType; + field public static final androidx.navigation.NavType?> FloatListType; + field public static final androidx.navigation.NavType FloatType; + field public static final androidx.navigation.NavType IntArrayType; + field public static final androidx.navigation.NavType?> IntListType; + field public static final androidx.navigation.NavType IntType; + field public static final androidx.navigation.NavType LongArrayType; + field public static final androidx.navigation.NavType?> LongListType; + field public static final androidx.navigation.NavType LongType; + field public static final androidx.navigation.NavType ReferenceType; + field public static final androidx.navigation.NavType StringArrayType; + field public static final androidx.navigation.NavType?> StringListType; + field public static final androidx.navigation.NavType StringType; + } + + public static final class NavType.Companion { + method public androidx.navigation.NavType fromArgType(String? type, String? packageName); + } + + public static final class NavType.EnumType> extends androidx.navigation.NavType.SerializableType { + ctor public NavType.EnumType(Class type); + property public String name; + } + + public static final class NavType.ParcelableArrayType extends androidx.navigation.NavType { + ctor public NavType.ParcelableArrayType(Class type); + method public D[]? get(android.os.Bundle bundle, String key); + method public D[] parseValue(String value); + method public void put(android.os.Bundle bundle, String key, D[]? value); + method public boolean valueEquals(D[]? value, D[]? other); + property public String name; + } + + public static final class NavType.ParcelableType extends androidx.navigation.NavType { + ctor public NavType.ParcelableType(Class type); + method public D? get(android.os.Bundle bundle, String key); + method public D parseValue(String value); + method public void put(android.os.Bundle bundle, String key, D value); + property public String name; + } + + public static final class NavType.SerializableArrayType extends androidx.navigation.NavType { + ctor public NavType.SerializableArrayType(Class type); + method public D[]? get(android.os.Bundle bundle, String key); + method public D[] parseValue(String value); + method public void put(android.os.Bundle bundle, String key, D[]? value); + method public boolean valueEquals(D[]? value, D[]? other); + property public String name; + } + + public static class NavType.SerializableType extends androidx.navigation.NavType { + ctor public NavType.SerializableType(Class type); + method public D? get(android.os.Bundle bundle, String key); + method public D parseValue(String value); + method public void put(android.os.Bundle bundle, String key, D value); + property public String name; + } + + public abstract class Navigator { + ctor public Navigator(); + method public abstract D createDestination(); + method protected final androidx.navigation.NavigatorState getState(); + method public final boolean isAttached(); + method public androidx.navigation.NavDestination? navigate(D destination, android.os.Bundle? args, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras); + method public void navigate(java.util.List entries, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras); + method @CallSuper public void onAttach(androidx.navigation.NavigatorState state); + method public void onLaunchSingleTop(androidx.navigation.NavBackStackEntry backStackEntry); + method public void onRestoreState(android.os.Bundle savedState); + method public android.os.Bundle? onSaveState(); + method public boolean popBackStack(); + method public void popBackStack(androidx.navigation.NavBackStackEntry popUpTo, boolean savedState); + property public final boolean isAttached; + property protected final androidx.navigation.NavigatorState state; + } + + public static interface Navigator.Extras { + } + + @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.RUNTIME) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.ANNOTATION_CLASS, kotlin.annotation.AnnotationTarget.CLASS}) public static @interface Navigator.Name { + method public abstract String value(); + property public abstract String value; + } + + public class NavigatorProvider { + ctor public NavigatorProvider(); + method public final androidx.navigation.Navigator? addNavigator(androidx.navigation.Navigator navigator); + method @CallSuper public androidx.navigation.Navigator? addNavigator(String name, androidx.navigation.Navigator navigator); + method public final > T getNavigator(Class navigatorClass); + method @CallSuper public > T getNavigator(String name); + } + + public final class NavigatorProviderKt { + method public static inline operator > T get(androidx.navigation.NavigatorProvider, String name); + method public static inline operator > T get(androidx.navigation.NavigatorProvider, kotlin.reflect.KClass clazz); + method public static inline operator void plusAssign(androidx.navigation.NavigatorProvider, androidx.navigation.Navigator navigator); + method public static inline operator androidx.navigation.Navigator? set(androidx.navigation.NavigatorProvider, String name, androidx.navigation.Navigator navigator); + } + + public abstract class NavigatorState { + ctor public NavigatorState(); + method public abstract androidx.navigation.NavBackStackEntry createBackStackEntry(androidx.navigation.NavDestination destination, android.os.Bundle? arguments); + method public final kotlinx.coroutines.flow.StateFlow> getBackStack(); + method public final kotlinx.coroutines.flow.StateFlow> getTransitionsInProgress(); + method public void markTransitionComplete(androidx.navigation.NavBackStackEntry entry); + method @CallSuper public void onLaunchSingleTop(androidx.navigation.NavBackStackEntry backStackEntry); + method @CallSuper public void onLaunchSingleTopWithTransition(androidx.navigation.NavBackStackEntry backStackEntry); + method public void pop(androidx.navigation.NavBackStackEntry popUpTo, boolean saveState); + method public void popWithTransition(androidx.navigation.NavBackStackEntry popUpTo, boolean saveState); + method @CallSuper public void prepareForTransition(androidx.navigation.NavBackStackEntry entry); + method public void push(androidx.navigation.NavBackStackEntry backStackEntry); + method public void pushWithTransition(androidx.navigation.NavBackStackEntry backStackEntry); + property public final kotlinx.coroutines.flow.StateFlow> backStack; + property public final kotlinx.coroutines.flow.StateFlow> transitionsInProgress; + } + + @androidx.navigation.NavOptionsDsl public final class PopUpToBuilder { + ctor public PopUpToBuilder(); + method public boolean getInclusive(); + method public boolean getSaveState(); + method public void setInclusive(boolean); + method public void setSaveState(boolean); + property public final boolean inclusive; + property public final boolean saveState; + } + + public final class SavedStateHandleKt { + method public static inline T toRoute(androidx.lifecycle.SavedStateHandle, optional java.util.Map> typeMap); + } + +} + diff --git a/navigation/navigation-common/src/androidInstrumentedTest/kotlin/androidx/navigation/serialization/RouteFilledTest.kt b/navigation/navigation-common/src/androidInstrumentedTest/kotlin/androidx/navigation/serialization/RouteFilledTest.kt index 37556aea786ec..775993d2434a2 100644 --- a/navigation/navigation-common/src/androidInstrumentedTest/kotlin/androidx/navigation/serialization/RouteFilledTest.kt +++ b/navigation/navigation-common/src/androidInstrumentedTest/kotlin/androidx/navigation/serialization/RouteFilledTest.kt @@ -345,6 +345,40 @@ class RouteFilledTest { .isEqualTo("$PATH_SERIAL_NAME/test") } + @Test + fun enumType() { + @Serializable + @SerialName(PATH_SERIAL_NAME) + class TestClass(val arg: TestEnum, val arg2: TestEnum) + + val clazz = TestClass(TestEnum.ONE, TestEnum.TWO) + assertThatRouteFilledFrom( + clazz, + listOf( + enumArgument("arg", TestEnum::class.java), + enumArgument("arg2", TestEnum::class.java) + ) + ) + .isEqualTo("$PATH_SERIAL_NAME/ONE/TWO") + } + + @Test + fun enumNullableType() { + @Serializable + @SerialName(PATH_SERIAL_NAME) + class TestClass(val arg: TestEnum?, val arg2: TestEnum?) + + val clazz = TestClass(TestEnum.ONE, null) + assertThatRouteFilledFrom( + clazz, + listOf( + enumArgument("arg", TestEnum::class.java), + enumArgument("arg2", TestEnum::class.java) + ) + ) + .isEqualTo("$PATH_SERIAL_NAME/ONE/null") + } + @Test fun customParamType() { @Serializable class CustomType @@ -779,7 +813,7 @@ private interface TestInterface private fun nullableIntArgument(name: String, hasDefaultValue: Boolean = false) = navArgument(name) { - type = NullableIntType + type = InternalNavType.IntNullableType nullable = true unknownDefaultValuePresent = hasDefaultValue } @@ -791,30 +825,8 @@ private fun intArrayArgument(name: String, hasDefaultValue: Boolean = false) = unknownDefaultValuePresent = hasDefaultValue } -private val NullableIntType: NavType = - object : NavType(true) { - override val name: String - get() = "nullable_integer" - - override fun put(bundle: Bundle, key: String, value: Int?) { - value?.let { bundle.putInt(key, value) } - } - - @Suppress("DEPRECATION") - override fun get(bundle: Bundle, key: String): Int? { - val value = bundle[key] - return value?.let { it as Int } - } - - override fun parseValue(value: String): Int? { - return if (value == "null") { - null - } else if (value.startsWith("0x")) { - value.substring(2).toInt(16) - } else { - value.toInt() - } - } - - override fun serializeAsValue(value: Int?): String = value?.toString() ?: "null" - } +@Serializable +private enum class TestEnum { + ONE, + TWO +} diff --git a/navigation/navigation-common/src/androidInstrumentedTest/kotlin/androidx/navigation/serialization/TestUtil.kt b/navigation/navigation-common/src/androidInstrumentedTest/kotlin/androidx/navigation/serialization/TestUtil.kt index 62a5cb52516cf..6fe7e20af7747 100644 --- a/navigation/navigation-common/src/androidInstrumentedTest/kotlin/androidx/navigation/serialization/TestUtil.kt +++ b/navigation/navigation-common/src/androidInstrumentedTest/kotlin/androidx/navigation/serialization/TestUtil.kt @@ -73,5 +73,16 @@ internal fun intArgument(name: String, hasDefaultValue: Boolean = false) = unknownDefaultValuePresent = hasDefaultValue } +internal fun > enumArgument( + name: String, + clazz: Class, + hasDefaultValue: Boolean = false +) = + navArgument(name) { + type = NavType.EnumType(clazz) + nullable = false + unknownDefaultValuePresent = hasDefaultValue + } + @OptIn(InternalSerializationApi::class) internal fun KSerializer.expectedSafeArgsId(): Int = generateHashCode() diff --git a/navigation/navigation-common/src/androidMain/kotlin/androidx/navigation/NavDestination.android.kt b/navigation/navigation-common/src/androidMain/kotlin/androidx/navigation/NavDestination.android.kt index 7afbb9d319002..a76818ba4560c 100644 --- a/navigation/navigation-common/src/androidMain/kotlin/androidx/navigation/NavDestination.android.kt +++ b/navigation/navigation-common/src/androidMain/kotlin/androidx/navigation/NavDestination.android.kt @@ -356,7 +356,12 @@ public actual open class NavDestination actual constructor( val request = NavDeepLinkRequest.Builder.fromUri(createRoute(route).toUri()).build() val matchingDeepLink = if (this is NavGraph) { - matchDeepLinkExcludingChildren(request) + matchDeepLinkComprehensive( + request, + searchChildren = false, + searchParent = false, + lastVisited = this + ) } else { matchDeepLink(request) } diff --git a/navigation/navigation-common/src/androidMain/kotlin/androidx/navigation/NavGraph.android.kt b/navigation/navigation-common/src/androidMain/kotlin/androidx/navigation/NavGraph.android.kt index 60ba83746e83b..dbbea2e7976a9 100644 --- a/navigation/navigation-common/src/androidMain/kotlin/androidx/navigation/NavGraph.android.kt +++ b/navigation/navigation-common/src/androidMain/kotlin/androidx/navigation/NavGraph.android.kt @@ -68,24 +68,49 @@ public actual open class NavGraph actual constructor(navGraphNavigator: Navigato } } + /** + * Matches deeplink with all children and parents recursively. + * + * Does not revisit graphs (whether it's a child or parent) if it has already been visited. + */ @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP) - public override fun matchDeepLink(navDeepLinkRequest: NavDeepLinkRequest): DeepLinkMatch? { + public fun matchDeepLinkComprehensive( + navDeepLinkRequest: NavDeepLinkRequest, + searchChildren: Boolean, + searchParent: Boolean, + lastVisited: NavDestination + ): DeepLinkMatch? { // First search through any deep links directly added to this NavGraph val bestMatch = super.matchDeepLink(navDeepLinkRequest) - // Then search through all child destinations for a matching deep link + + // If searchChildren is true, search through all child destinations for a matching deeplink val bestChildMatch = - mapNotNull { child -> child.matchDeepLink(navDeepLinkRequest) }.maxOrNull() + if (searchChildren) { + mapNotNull { child -> + if (child != lastVisited) child.matchDeepLink(navDeepLinkRequest) else null + } + .maxOrNull() + } else null - return listOfNotNull(bestMatch, bestChildMatch).maxOrNull() + // If searchParent is true, search through all parents (and their children) destinations + // for a matching deeplink + val bestParentMatch = + parent?.let { + if (searchParent && it != lastVisited) + it.matchDeepLinkComprehensive(navDeepLinkRequest, searchChildren, true, this) + else null + } + return listOfNotNull(bestMatch, bestChildMatch, bestParentMatch).maxOrNull() } - /** - * Only searches through deep links added directly to this graph. Does not recursively search - * through its children as [matchDeepLink] does. - */ @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP) - public fun matchDeepLinkExcludingChildren(request: NavDeepLinkRequest): DeepLinkMatch? = - super.matchDeepLink(request) + public override fun matchDeepLink(navDeepLinkRequest: NavDeepLinkRequest): DeepLinkMatch? = + matchDeepLinkComprehensive( + navDeepLinkRequest, + searchChildren = true, + searchParent = false, + lastVisited = this + ) /** * Adds a destination to this NavGraph. The destination must have an [NavDestination.id] id} diff --git a/navigation/navigation-common/src/androidMain/kotlin/androidx/navigation/NavGraphNavigator.android.kt b/navigation/navigation-common/src/androidMain/kotlin/androidx/navigation/NavGraphNavigator.android.kt index a6a650a61480a..74dc88dd39938 100644 --- a/navigation/navigation-common/src/androidMain/kotlin/androidx/navigation/NavGraphNavigator.android.kt +++ b/navigation/navigation-common/src/androidMain/kotlin/androidx/navigation/NavGraphNavigator.android.kt @@ -83,7 +83,7 @@ public actual open class NavGraphNavigator actual constructor(private val naviga "navigation destination $dest is not a direct child of this NavGraph" ) } - if (startRoute != null) { + if (startRoute != null && startRoute != startDestination.route) { val matchingArgs = startDestination.matchDeepLink(startRoute)?.matchingArgs if (matchingArgs != null && !matchingArgs.isEmpty) { val bundle = Bundle() diff --git a/navigation/navigation-common/src/androidMain/kotlin/androidx/navigation/NavType.android.kt b/navigation/navigation-common/src/androidMain/kotlin/androidx/navigation/NavType.android.kt index 248615ee30200..58b00f945b258 100644 --- a/navigation/navigation-common/src/androidMain/kotlin/androidx/navigation/NavType.android.kt +++ b/navigation/navigation-common/src/androidMain/kotlin/androidx/navigation/NavType.android.kt @@ -203,9 +203,8 @@ public actual abstract class NavType actual constructor( } val isArray = type.endsWith("[]") if (isArray) className = className.substring(0, className.length - 2) - return requireNotNull( - parseSerializableOrParcelableType(className, isArray) - ) { + val clazz = Class.forName(className) + return requireNotNull(parseSerializableOrParcelableType(clazz, isArray)) { "$className is not Serializable or Parcelable." } } catch (e: ClassNotFoundException) { @@ -218,11 +217,10 @@ public actual abstract class NavType actual constructor( @Suppress("UNCHECKED_CAST") internal fun parseSerializableOrParcelableType( - className: String, + clazz: Class<*>, isArray: Boolean - ): NavType<*>? { - val clazz = Class.forName(className) - return when { + ): NavType<*>? = + when { Parcelable::class.java.isAssignableFrom(clazz) -> { if (isArray) { ParcelableArrayType(clazz as Class) @@ -236,12 +234,11 @@ public actual abstract class NavType actual constructor( if (isArray) { SerializableArrayType(clazz as Class) } else { - return SerializableType(clazz as Class) + SerializableType(clazz as Class) } } else -> null } - } @Suppress("UNCHECKED_CAST") // needed for cast to NavType @JvmStatic diff --git a/navigation/navigation-common/src/androidUnitTest/kotlin/androidx/navigation/serialization/NavArgumentGeneratorTest.kt b/navigation/navigation-common/src/androidUnitTest/kotlin/androidx/navigation/serialization/NavArgumentGeneratorTest.kt index 4d1190caf024b..0b7db4968ab11 100644 --- a/navigation/navigation-common/src/androidUnitTest/kotlin/androidx/navigation/serialization/NavArgumentGeneratorTest.kt +++ b/navigation/navigation-common/src/androidUnitTest/kotlin/androidx/navigation/serialization/NavArgumentGeneratorTest.kt @@ -53,14 +53,17 @@ class NavArgumentGeneratorTest { } @Test - fun convertToIntNullableIllegal() { + fun convertToIntNullable() { @Serializable class TestClass(val arg: Int?) - val exception = - assertFailsWith { - serializer().generateNavArguments() + val converted = serializer().generateNavArguments() + val expected = + navArgument("arg") { + type = InternalNavType.IntNullableType + nullable = true } - assertThat(exception.message).isEqualTo("integer does not allow nullable values") + assertThat(converted).containsExactlyInOrder(expected) + assertThat(converted[0].argument.isDefaultValueUnknown).isFalse() } @Test @@ -106,14 +109,17 @@ class NavArgumentGeneratorTest { } @Test - fun convertToBooleanNullableIllegal() { + fun convertToBooleanNullable() { @Serializable class TestClass(val arg: Boolean?) - val exception = - assertFailsWith { - serializer().generateNavArguments() + val converted = serializer().generateNavArguments() + val expected = + navArgument("arg") { + type = InternalNavType.BoolNullableType + nullable = true } - assertThat(exception.message).isEqualTo("boolean does not allow nullable values") + assertThat(converted).containsExactlyInOrder(expected) + assertThat(converted[0].argument.isDefaultValueUnknown).isFalse() } @Test @@ -131,14 +137,17 @@ class NavArgumentGeneratorTest { } @Test - fun convertToFloatNullableIllegal() { + fun convertToFloatNullable() { @Serializable class TestClass(val arg: Float?) - val exception = - assertFailsWith { - serializer().generateNavArguments() + val converted = serializer().generateNavArguments() + val expected = + navArgument("arg") { + type = InternalNavType.FloatNullableType + nullable = true } - assertThat(exception.message).isEqualTo("float does not allow nullable values") + assertThat(converted).containsExactlyInOrder(expected) + assertThat(converted[0].argument.isDefaultValueUnknown).isFalse() } @Test @@ -156,14 +165,17 @@ class NavArgumentGeneratorTest { } @Test - fun convertToLongNullableIllegal() { + fun convertToLongNullable() { @Serializable class TestClass(val arg: Long?) - val exception = - assertFailsWith { - serializer().generateNavArguments() + val converted = serializer().generateNavArguments() + val expected = + navArgument("arg") { + type = InternalNavType.LongNullableType + nullable = true } - assertThat(exception.message).isEqualTo("long does not allow nullable values") + assertThat(converted).containsExactlyInOrder(expected) + assertThat(converted[0].argument.isDefaultValueUnknown).isFalse() } @Test @@ -749,21 +761,26 @@ class NavArgumentGeneratorTest { fun convertToEnum() { @Serializable class TestClass(val arg: TestEnum) - val navType = - object : NavType(false) { - override fun put(bundle: Bundle, key: String, value: TestEnum) {} + val expected = + navArgument("arg") { + type = NavType.EnumType(TestEnum::class.java) + nullable = false + } + val converted = serializer().generateNavArguments() + assertThat(converted).containsExactlyInOrder(expected) + assertThat(converted[0].argument.isDefaultValueUnknown).isFalse() + } - override fun get(bundle: Bundle, key: String) = null + @Test + fun convertToTopLevelEnum() { + @Serializable class TestClass(val arg: TestTopLevelEnum) - override fun parseValue(value: String) = TestEnum.TEST - } val expected = navArgument("arg") { - type = navType + type = NavType.EnumType(TestTopLevelEnum::class.java) nullable = false } - val converted = - serializer().generateNavArguments(mapOf(typeOf() to navType)) + val converted = serializer().generateNavArguments() assertThat(converted).containsExactlyInOrder(expected) assertThat(converted[0].argument.isDefaultValueUnknown).isFalse() } @@ -772,28 +789,46 @@ class NavArgumentGeneratorTest { fun convertToEnumNullable() { @Serializable class TestClass(val arg: TestEnum?) - val navType = - object : NavType(true) { - override val name: String - get() = "TestEnum" - - override fun put(bundle: Bundle, key: String, value: TestEnum?) {} + @Suppress("UNCHECKED_CAST") + val expected = + navArgument("arg") { + type = InternalNavType.EnumNullableType(TestEnum::class.java as Class?>) + nullable = true + } + val converted = serializer().generateNavArguments() + assertThat(converted).containsExactlyInOrder(expected) + assertThat(converted[0].argument.isDefaultValueUnknown).isFalse() + } - override fun get(bundle: Bundle, key: String) = null + @Test + fun convertToNestedEnum() { + @Serializable class TestClass(val arg: EnumWrapper.NestedEnum) - override fun parseValue(value: String) = TestEnum.TEST - } - val converted = - serializer().generateNavArguments(mapOf(typeOf() to navType)) val expected = navArgument("arg") { - type = navType - nullable = true + type = NavType.EnumType(EnumWrapper.NestedEnum::class.java) + nullable = false } + val converted = serializer().generateNavArguments() assertThat(converted).containsExactlyInOrder(expected) assertThat(converted[0].argument.isDefaultValueUnknown).isFalse() } + @Test + fun convertToEnumOverriddenSerialNameIllegal() { + @Serializable class TestClass(val arg: TestEnumCustomSerialName) + + val exception = + assertFailsWith { + serializer().generateNavArguments() + } + assertThat(exception.message) + .isEqualTo( + "Cannot find class with name \"MyCustomSerialName\". Ensure that the " + + "serialName for this argument is the default fully qualified name" + ) + } + @Test fun convertToEnumArray() { @Serializable class TestClass(val arg: Array) @@ -1313,8 +1348,24 @@ class NavArgumentGeneratorTest { } else true } - @Serializable enum class TestEnum { TEST } + + @SerialName("MyCustomSerialName") + enum class TestEnumCustomSerialName { + TEST + } + + @Serializable + private class EnumWrapper { + enum class NestedEnum { + ONE, + TWO + } + } +} + +enum class TestTopLevelEnum { + TEST } diff --git a/navigation/navigation-common/src/androidUnitTest/kotlin/androidx/navigation/serialization/NavTypeConverterTest.kt b/navigation/navigation-common/src/androidUnitTest/kotlin/androidx/navigation/serialization/NavTypeConverterTest.kt index 258467b5af2bc..5ebbcf0981622 100644 --- a/navigation/navigation-common/src/androidUnitTest/kotlin/androidx/navigation/serialization/NavTypeConverterTest.kt +++ b/navigation/navigation-common/src/androidUnitTest/kotlin/androidx/navigation/serialization/NavTypeConverterTest.kt @@ -694,7 +694,7 @@ class NavTypeConverterTest { @Test fun getNavTypeEnumSerializable() { val type = serializer().descriptor.getNavType() - assertThat(type).isEqualTo(UNKNOWN) + assertThat(type).isEqualTo(NavType.EnumType(TestEnum::class.java)) } @Test diff --git a/navigation/navigation-common/src/androidMain/kotlin/androidx/navigation/SavedStateHandle.android.kt b/navigation/navigation-common/src/commonMain/kotlin/androidx/navigation/SavedStateHandle.kt similarity index 98% rename from navigation/navigation-common/src/androidMain/kotlin/androidx/navigation/SavedStateHandle.android.kt rename to navigation/navigation-common/src/commonMain/kotlin/androidx/navigation/SavedStateHandle.kt index a8a2a8bb7b3c0..ad19215188945 100644 --- a/navigation/navigation-common/src/androidMain/kotlin/androidx/navigation/SavedStateHandle.android.kt +++ b/navigation/navigation-common/src/commonMain/kotlin/androidx/navigation/SavedStateHandle.kt @@ -14,14 +14,13 @@ * limitations under the License. */ -@file:JvmName("SavedStateHandleKt") - package androidx.navigation import androidx.annotation.RestrictTo import androidx.lifecycle.SavedStateHandle import androidx.navigation.serialization.decodeArguments import androidx.navigation.serialization.generateNavArguments +import kotlin.jvm.JvmSuppressWildcards import kotlin.reflect.KClass import kotlin.reflect.KType import kotlinx.serialization.InternalSerializationApi diff --git a/navigation/navigation-common/src/commonMain/kotlin/androidx/navigation/serialization/NavTypeConverter.kt b/navigation/navigation-common/src/commonMain/kotlin/androidx/navigation/serialization/NavTypeConverter.kt index a6d8247a11baa..ac398c6d15b17 100644 --- a/navigation/navigation-common/src/commonMain/kotlin/androidx/navigation/serialization/NavTypeConverter.kt +++ b/navigation/navigation-common/src/commonMain/kotlin/androidx/navigation/serialization/NavTypeConverter.kt @@ -28,9 +28,13 @@ import kotlinx.serialization.serializerOrNull /** Marker for Native Kotlin types with either full or partial built-in NavType support */ private enum class InternalType { INT, + INT_NULLABLE, BOOL, + BOOL_NULLABLE, FLOAT, + FLOAT_NULLABLE, LONG, + LONG_NULLABLE, STRING, INT_ARRAY, BOOL_ARRAY, @@ -53,9 +57,13 @@ internal fun SerialDescriptor.getNavType(): NavType<*> { val type = when (this.toInternalType()) { InternalType.INT -> NavType.IntType + InternalType.INT_NULLABLE -> InternalNavType.IntNullableType InternalType.BOOL -> NavType.BoolType + InternalType.BOOL_NULLABLE -> InternalNavType.BoolNullableType InternalType.FLOAT -> NavType.FloatType + InternalType.FLOAT_NULLABLE -> InternalNavType.FloatNullableType InternalType.LONG -> NavType.LongType + InternalType.LONG_NULLABLE -> InternalNavType.LongNullableType InternalType.STRING -> NavType.StringType InternalType.INT_ARRAY -> NavType.IntArrayType InternalType.BOOL_ARRAY -> NavType.BoolArrayType @@ -90,10 +98,14 @@ internal fun SerialDescriptor.getNavType(): NavType<*> { private fun SerialDescriptor.toInternalType(): InternalType { val serialName = serialName.replace("?", "") return when { - serialName == "kotlin.Int" -> InternalType.INT - serialName == "kotlin.Boolean" -> InternalType.BOOL - serialName == "kotlin.Float" -> InternalType.FLOAT - serialName == "kotlin.Long" -> InternalType.LONG + serialName == "kotlin.Int" -> + if (isNullable) InternalType.INT_NULLABLE else InternalType.INT + serialName == "kotlin.Boolean" -> + if (isNullable) InternalType.BOOL_NULLABLE else InternalType.BOOL + serialName == "kotlin.Float" -> + if (isNullable) InternalType.FLOAT_NULLABLE else InternalType.FLOAT + serialName == "kotlin.Long" -> + if (isNullable) InternalType.LONG_NULLABLE else InternalType.LONG serialName == "kotlin.String" -> InternalType.STRING serialName == "kotlin.IntArray" -> InternalType.INT_ARRAY serialName == "kotlin.BooleanArray" -> InternalType.BOOL_ARRAY @@ -110,7 +122,7 @@ private fun SerialDescriptor.toInternalType(): InternalType { /** * Match the [SerialDescriptor] of a type to a KType * - * Returns true match, false otherwise. + * Returns true if match, false otherwise. */ internal fun SerialDescriptor.matchKType(kType: KType): Boolean { if (this.isNullable != kType.isMarkedNullable) return false @@ -121,8 +133,7 @@ internal fun SerialDescriptor.matchKType(kType: KType): Boolean { "types. Please use @Serializable or @Serializable(with = ...) on the " + "class or object declaration." } - if (this.hashCode() != kTypeSerializer.descriptor.hashCode()) return false - return true + return this == kTypeSerializer.descriptor } internal object UNKNOWN : NavType(false) { @@ -135,3 +146,87 @@ internal object UNKNOWN : NavType(false) { override fun parseValue(value: String): String = "null" } + +internal object InternalNavType { + val IntNullableType = + object : NavType(true) { + override val name: String + get() = "integer_nullable" + + override fun put(bundle: Bundle, key: String, value: Int?) { + // store null as serializable inside bundle, so that decoder will use the null + // instead of default value + if (value == null) bundle.putBundle(key, null) + else IntType.put(bundle, key, value) + } + + @Suppress("DEPRECATION") + override fun get(bundle: Bundle, key: String): Int? { + return bundle[key] as? Int + } + + override fun parseValue(value: String): Int? { + return if (value == "null") null else IntType.parseValue(value) + } + } + + val BoolNullableType = + object : NavType(true) { + override val name: String + get() = "boolean_nullable" + + override fun put(bundle: Bundle, key: String, value: Boolean?) { + if (value == null) bundle.putBundle(key, null) + else BoolType.put(bundle, key, value) + } + + @Suppress("DEPRECATION") + override fun get(bundle: Bundle, key: String): Boolean? { + return bundle[key] as? Boolean + } + + override fun parseValue(value: String): Boolean? { + return if (value == "null") null else BoolType.parseValue(value) + } + } + + val FloatNullableType = + object : NavType(true) { + override val name: String + get() = "float_nullable" + + override fun put(bundle: Bundle, key: String, value: Float?) { + if (value == null) bundle.putBundle(key, null) + else FloatType.put(bundle, key, value) + } + + @Suppress("DEPRECATION") + override fun get(bundle: Bundle, key: String): Float? { + return bundle[key] as? Float + } + + override fun parseValue(value: String): Float? { + return if (value == "null") null else FloatType.parseValue(value) + } + } + + val LongNullableType = + object : NavType(true) { + override val name: String + get() = "long_nullable" + + override fun put(bundle: Bundle, key: String, value: Long?) { + if (value == null) bundle.putBundle(key, null) + else LongType.put(bundle, key, value) + } + + @Suppress("DEPRECATION") + override fun get(bundle: Bundle, key: String): Long? { + return bundle[key] as? Long + } + + override fun parseValue(value: String): Long? { + return if (value == "null") null else LongType.parseValue(value) + } + } +} diff --git a/navigation/navigation-common/src/jbMain/kotlin/androidx/navigation/NavDestination.jb.kt b/navigation/navigation-common/src/jbMain/kotlin/androidx/navigation/NavDestination.jb.kt index f9f8e798e4daa..3a5f00c349b56 100644 --- a/navigation/navigation-common/src/jbMain/kotlin/androidx/navigation/NavDestination.jb.kt +++ b/navigation/navigation-common/src/jbMain/kotlin/androidx/navigation/NavDestination.jb.kt @@ -76,8 +76,7 @@ public actual open class NavDestination actual constructor( } public actual var parent: NavGraph? = null - @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP) - public set + @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP) public set public actual var label: CharSequence? = null private val deepLinks = mutableListOf() @@ -107,8 +106,7 @@ public actual open class NavDestination actual constructor( } public actual open val displayName: String - @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP) - get() = navigatorName + @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP) get() = navigatorName public actual fun addDeepLink(uriPattern: String) { addDeepLink(NavDeepLink.Builder().setUriPattern(uriPattern).build()) @@ -127,6 +125,21 @@ public actual open class NavDestination actual constructor( @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP) public actual open fun matchDeepLink(route: String): DeepLinkMatch? { + val matchingDeepLink = + if (this is NavGraph) { + matchDeepLinkComprehensive( + route, + searchChildren = false, + searchParent = false, + lastVisited = this + ) + } else { + matchDeepLinkRequest(route) + } + return matchingDeepLink + } + + private fun matchDeepLinkRequest(route: String): DeepLinkMatch? { if (deepLinks.isEmpty()) { return null } diff --git a/navigation/navigation-common/src/jbMain/kotlin/androidx/navigation/NavGraph.jb.kt b/navigation/navigation-common/src/jbMain/kotlin/androidx/navigation/NavGraph.jb.kt index c8d425e174ce0..93e711e21df83 100644 --- a/navigation/navigation-common/src/jbMain/kotlin/androidx/navigation/NavGraph.jb.kt +++ b/navigation/navigation-common/src/jbMain/kotlin/androidx/navigation/NavGraph.jb.kt @@ -40,16 +40,44 @@ public actual open class NavGraph actual constructor(navGraphNavigator: Navigato private var startDestIdName: String? = null @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP) - public override fun matchDeepLink(route: String): DeepLinkMatch? { + public fun matchDeepLinkComprehensive( + route: String, + searchChildren: Boolean, + searchParent: Boolean, + lastVisited: NavDestination + ): DeepLinkMatch? { // First search through any deep links directly added to this NavGraph val bestMatch = super.matchDeepLink(route) - // Then search through all child destinations for a matching deep link + + // If searchChildren is true, search through all child destinations for a matching deeplink val bestChildMatch = - mapNotNull { child -> child.matchDeepLink(route) }.maxOrNull() + if (searchChildren) { + mapNotNull { child -> + if (child != lastVisited) child.matchDeepLink(route) else null + } + .maxOrNull() + } else null - return listOfNotNull(bestMatch, bestChildMatch).maxOrNull() + // If searchParent is true, search through all parents (and their children) destinations + // for a matching deeplink + val bestParentMatch = + parent?.let { + if (searchParent && it != lastVisited) + it.matchDeepLinkComprehensive(route, searchChildren, true, this) + else null + } + return listOfNotNull(bestMatch, bestChildMatch, bestParentMatch).maxOrNull() } + @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP) + public override fun matchDeepLink(route: String): DeepLinkMatch? = + matchDeepLinkComprehensive( + route, + searchChildren = true, + searchParent = false, + lastVisited = this + ) + public actual fun addDestination(node: NavDestination) { val id = node.id val innerRoute = node.route diff --git a/navigation/navigation-common/src/jbMain/kotlin/androidx/navigation/NavGraphNavigator.jb.kt b/navigation/navigation-common/src/jbMain/kotlin/androidx/navigation/NavGraphNavigator.jb.kt index ce83c9de390f9..7e31bc51dae40 100644 --- a/navigation/navigation-common/src/jbMain/kotlin/androidx/navigation/NavGraphNavigator.jb.kt +++ b/navigation/navigation-common/src/jbMain/kotlin/androidx/navigation/NavGraphNavigator.jb.kt @@ -65,7 +65,7 @@ public actual open class NavGraphNavigator actual constructor( "navigation destination $dest is not a direct child of this NavGraph" ) } - if (startRoute != null) { + if (startRoute != null && startRoute != startDestination.route) { val matchingArgs = startDestination.matchDeepLink(startRoute)?.matchingArgs if (matchingArgs != null && !matchingArgs.isEmpty()) { val bundle = Bundle() diff --git a/navigation/navigation-common/src/jbMain/kotlin/androidx/navigation/NavType.jb.kt b/navigation/navigation-common/src/jbMain/kotlin/androidx/navigation/NavType.jb.kt index d5f33d73acdb6..9e461e2efca8f 100644 --- a/navigation/navigation-common/src/jbMain/kotlin/androidx/navigation/NavType.jb.kt +++ b/navigation/navigation-common/src/jbMain/kotlin/androidx/navigation/NavType.jb.kt @@ -16,9 +16,8 @@ package androidx.navigation -import androidx.core.bundle.Bundle - import androidx.annotation.RestrictTo +import androidx.core.bundle.Bundle import androidx.navigation.internal.Uri import kotlin.jvm.JvmField import kotlin.jvm.JvmStatic @@ -581,7 +580,8 @@ public actual abstract class NavType actual constructor( get() = "string[]" override fun put(bundle: Bundle, key: String, value: Array?) { - bundle.putStringArray(key, value) + @Suppress("UNCHECKED_CAST") + bundle.putStringArray(key, value as Array?) } @Suppress("UNCHECKED_CAST", "DEPRECATION") diff --git a/navigation/navigation-compose-lint/build.gradle b/navigation/navigation-compose-lint/build.gradle index ba09d9a0f34fb..454810229f60d 100644 --- a/navigation/navigation-compose-lint/build.gradle +++ b/navigation/navigation-compose-lint/build.gradle @@ -35,7 +35,7 @@ dependencies { compileOnly(libs.androidLintMinApi) compileOnly(libs.kotlinStdlib) bundleInside(projectOrArtifact(":compose:lint:common")) - bundleInside(projectOrArtifact(":navigation:navigation-common-lint")) + bundleInside(projectOrArtifact(":navigation:navigation-lint-common")) testImplementation(projectOrArtifact(":compose:lint:common-test")) testImplementation(libs.kotlinStdlib) diff --git a/navigation/navigation-compose-lint/src/main/java/androidx/navigation/compose/lint/WrongStartDestinationTypeDetector.kt b/navigation/navigation-compose-lint/src/main/java/androidx/navigation/compose/lint/WrongStartDestinationTypeDetector.kt index e20baec4c79b9..ca68f285d175d 100644 --- a/navigation/navigation-compose-lint/src/main/java/androidx/navigation/compose/lint/WrongStartDestinationTypeDetector.kt +++ b/navigation/navigation-compose-lint/src/main/java/androidx/navigation/compose/lint/WrongStartDestinationTypeDetector.kt @@ -16,8 +16,8 @@ package androidx.navigation.compose.lint -import androidx.navigation.common.lint.BaseWrongStartDestinationTypeDetector -import androidx.navigation.common.lint.createWrongStartDestinationTypeIssue +import androidx.navigation.lint.common.BaseWrongStartDestinationTypeDetector +import androidx.navigation.lint.common.createWrongStartDestinationTypeIssue class WrongStartDestinationTypeDetector : BaseWrongStartDestinationTypeDetector( diff --git a/navigation/navigation-compose-lint/src/test/java/androidx/navigation/compose/lint/WrongStartDestinationTypeDetectorTest.kt b/navigation/navigation-compose-lint/src/test/java/androidx/navigation/compose/lint/WrongStartDestinationTypeDetectorTest.kt index 589263323e035..aa425c45fd548 100644 --- a/navigation/navigation-compose-lint/src/test/java/androidx/navigation/compose/lint/WrongStartDestinationTypeDetectorTest.kt +++ b/navigation/navigation-compose-lint/src/test/java/androidx/navigation/compose/lint/WrongStartDestinationTypeDetectorTest.kt @@ -18,12 +18,22 @@ package androidx.navigation.compose.lint import androidx.compose.lint.test.Stubs import com.android.tools.lint.checks.infrastructure.LintDetectorTest +import com.android.tools.lint.checks.infrastructure.LintDetectorTest.bytecode +import com.android.tools.lint.checks.infrastructure.LintDetectorTest.kotlin +import com.android.tools.lint.checks.infrastructure.TestFile import com.android.tools.lint.checks.infrastructure.TestMode import com.android.tools.lint.detector.api.Detector import com.android.tools.lint.detector.api.Issue import org.junit.Test +import org.junit.runner.RunWith +import org.junit.runners.Parameterized -class WrongStartDestinationTypeDetectorTest : LintDetectorTest() { +@RunWith(Parameterized::class) +class WrongStartDestinationTypeDetectorTest(private val testFile: TestFile) : LintDetectorTest() { + + private companion object { + @JvmStatic @Parameterized.Parameters public fun data() = listOf(SOURCECODE, BYTECODE) + } @Test fun testEmptyConstructorNoError() { @@ -40,11 +50,12 @@ class WrongStartDestinationTypeDetectorTest : LintDetectorTest() { fun createGraph() { val controller = NavHostController() NavHost(navController = controller, startDestination = TestClass()) + NavHost(navController = controller, startDestination = TestClassComp()) } """ ) .indented(), - byteCode, + testFile, Stubs.Composable ) .skipTestModes(TestMode.FULLY_QUALIFIED) @@ -74,11 +85,17 @@ class WrongStartDestinationTypeDetectorTest : LintDetectorTest() { NavHost(navController = controller, startDestination = Outer.InnerClass(15)) {} NavHost(navController = controller, startDestination = InterfaceChildClass(true)) {} NavHost(navController = controller, startDestination = AbstractChildClass(true)) {} + NavHost(navController = controller, startDestination = TestClassWithArgComp(15)) {} + NavHost(navController = controller, startDestination = TestClassComp::class) {} + NavHost(navController = controller, startDestination = OuterComp.InnerClassComp::class) {} + NavHost(navController = controller, startDestination = OuterComp.InnerClassComp(15)) {} + NavHost(navController = controller, startDestination = InterfaceChildClassComp(true)) {} + NavHost(navController = controller, startDestination = AbstractChildClassComp(true)) {} } """ ) .indented(), - byteCode, + testFile, Stubs.Composable ) .run() @@ -106,11 +123,13 @@ class WrongStartDestinationTypeDetectorTest : LintDetectorTest() { NavHost(navController = controller, startDestination = Outer.InnerObject::class) {} NavHost(navController = controller, startDestination = InterfaceChildObject) {} NavHost(navController = controller, startDestination = AbstractChildObject) {} + NavHost(navController = controller, startDestination = OuterComp.InnerObject::class) {} + NavHost(navController = controller, startDestination = AbstractChildObjectComp) {} } """ ) .indented(), - byteCode, + testFile, Stubs.Composable ) .run() @@ -136,11 +155,20 @@ class WrongStartDestinationTypeDetectorTest : LintDetectorTest() { NavHost(navController = controller, startDestination = Outer.InnerClass) {} NavHost(navController = controller, startDestination = InterfaceChildClass) {} NavHost(navController = controller, startDestination = AbstractChildClass) {} + NavHost(navController = controller, startDestination = TestInterface) + NavHost(navController = controller, startDestination = TestAbstract) + // classes with companion object to simulate marked with @Serializable + NavHost(navController = controller, startDestination = TestClassComp) + NavHost(navController = controller, startDestination = TestClassWithArgComp) + NavHost(navController = controller, startDestination = OuterComp.InnerClassComp) + NavHost(navController = controller, startDestination = InterfaceChildClassComp) + NavHost(navController = controller, startDestination = AbstractChildClassComp) + NavHost(navController = controller, startDestination = TestAbstractComp) } """ ) .indented(), - byteCode, + testFile, Stubs.Composable ) .run() @@ -176,14 +204,69 @@ If the class AbstractChildClass does not contain arguments, you can also pass in its KClass reference AbstractChildClass::class [WrongStartDestinationType] NavHost(navController = controller, startDestination = AbstractChildClass) {} ~~~~~~~~~~~~~~~~~~ -5 errors, 0 warnings +src/com/example/test.kt:14: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor TestInterface(...)? +If the class TestInterface does not contain arguments, +you can also pass in its KClass reference TestInterface::class [WrongStartDestinationType] + NavHost(navController = controller, startDestination = TestInterface) + ~~~~~~~~~~~~~ +src/com/example/test.kt:15: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor TestAbstract(...)? +If the class TestAbstract does not contain arguments, +you can also pass in its KClass reference TestAbstract::class [WrongStartDestinationType] + NavHost(navController = controller, startDestination = TestAbstract) + ~~~~~~~~~~~~ +src/com/example/test.kt:17: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class [WrongStartDestinationType] + NavHost(navController = controller, startDestination = TestClassComp) + ~~~~~~~~~~~~~ +src/com/example/test.kt:18: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class [WrongStartDestinationType] + NavHost(navController = controller, startDestination = TestClassWithArgComp) + ~~~~~~~~~~~~~~~~~~~~ +src/com/example/test.kt:19: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class [WrongStartDestinationType] + NavHost(navController = controller, startDestination = OuterComp.InnerClassComp) + ~~~~~~~~~~~~~~~~~~~~~~~~ +src/com/example/test.kt:20: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class [WrongStartDestinationType] + NavHost(navController = controller, startDestination = InterfaceChildClassComp) + ~~~~~~~~~~~~~~~~~~~~~~~ +src/com/example/test.kt:21: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class [WrongStartDestinationType] + NavHost(navController = controller, startDestination = AbstractChildClassComp) + ~~~~~~~~~~~~~~~~~~~~~~ +src/com/example/test.kt:22: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class [WrongStartDestinationType] + NavHost(navController = controller, startDestination = TestAbstractComp) + ~~~~~~~~~~~~~~~~ +13 errors, 0 warnings """ ) } - // Stub - private val sourceCode = - """ + override fun getDetector(): Detector = WrongStartDestinationTypeDetector() + + override fun getIssues(): MutableList = + mutableListOf(WrongStartDestinationTypeDetector.WrongStartDestinationType) +} + +// Stub +private val SOURCECODE = + kotlin( + """ package androidx.navigation import kotlin.reflect.KClass @@ -229,22 +312,42 @@ abstract class TestAbstract class AbstractChildClass(val arg: Boolean): TestAbstract() object AbstractChildObject: TestAbstract() +// classes with companion object to simulate classes marked with @Serializable +class TestClassComp { companion object } + +class TestClassWithArgComp(val arg: Int) { companion object } + +object OuterComp { + data object InnerObject + + data class InnerClassComp ( + val innerArg: Int, + ) { companion object } +} + +class InterfaceChildClassComp(val arg: Boolean): TestInterface { companion object } + +abstract class TestAbstractComp { companion object } +class AbstractChildClassComp(val arg: Boolean): TestAbstractComp() { companion object } +object AbstractChildObjectComp: TestAbstractComp() """ + ) + .indented() - private val byteCode = - bytecode( - "libs/StartDestinationLint.jar", - kotlin(sourceCode), - 0x5341e714, - """ +private val BYTECODE = + bytecode( + "libs/StartDestinationLint.jar", + SOURCECODE, + 0x90a33e02, + """ META-INF/main.kotlin_module: H4sIAAAAAAAA/2NgYGBmYGBgBGJOBijg0uISTsxLKcrPTKnQy0ssy0xPLMnM zxMS9kss88gvLnHOzyspys/JSS3yLuES5eJOzs/VS61IzC3ISRViC0ktLvEu UWLQYgAArkTi/VsAAAA= """, - """ + """ androidx/navigation/AbstractChildClass.class: - H4sIAAAAAAAA/41Qz28SQRh9M7sssAVZsCql/qi1NZQYoY03TSMlMZJgD7Xh + H4sIAAAAAAAA/41Qz28SQRh9M7sssAVZsCql/qi1NRQToY03TSMlMZJgD7Xh AKeB3dAJy26yM5Ae+Vs8ezHRmHgwxKN/lPGbpRoPHDzMm+998/K+b97PX9++ A3iBQ4anIvKTWPrXzUgs5ERoGUfN9kjpRIx150qGficUSmXBGPY2aS8Dpf/o s7AYnFcykvqUwa4PjvoMVv2oX0AGWRc2csRFMmFggwJcbOXBUSCpvpKKod77 @@ -254,11 +357,44 @@ object AbstractChildObject: TestAbstract() NgqSSzEKqVPpxWMR9kUiDb9puu/jeTIO3khDdi7mkZazoC+VpNd2FMU6na5w TAnb6d8rJnCqONUZOIR7xE6Jc7rdxlfkG7tfUPyUah4TGg3wDPuEd9cq3ELJ REmVcaPk4dFZezVNwnRnGp9R/LjRprAW3NhwPEnxEQ7ofp0umcHtIawutru4 - 06Wx96hEtYsd1IZgCru4P0RWoaTwQMFVeKjgKHgK5d/NuJIe2QIAAA== + 06Wx96hEtYsd1IZgCru4P0RWoaTwQMFVeKjgKHgK5d95zSUJ2QIAAA== """, - """ + """ + androidx/navigation/AbstractChildClassComp$Companion.class: + H4sIAAAAAAAA/51Sy27TQBQ9Y6d5mADuA0h4P4LUVqJuqopNUaUShIiUFglQ + Nl2giT20k9gzaDyJusyKD+EPukJigaIu+SjEHSfAFtjcufece+71nPH3H1+/ + AdjFY4ZdrhKjZXIWKT6RJ9xKraKDQW4Nj23nVKZJJ+V53tHZx5YLXFFDBYwh + HPIJj1KuTqLXg6GIbQU+Q/mZVNLuM/jrG/06llAOUEKFoWRPZc7wtPc/C/cY + 2uu9kbapVNFwkkVSWWEUT6MX4gMfp7ajFU0Yx1abQ25Gwuxt9AN4bvFqK/5D + vs8KlmHr36YxLP8SHArLE245YV428clI5kLNBTCwEeFn0lXblCVthtZsGgRe + wwu8kLLZtHrxyW/MpjveNnteqXoXn8te6LneHeYmbP69QxXcYqj9tolh7YhP + Xunc3cAanabCbI0smd/RiWC42pNKHI2zgTDv+CAlZKWnY572uZGuXoD1rlLC + FEsEPVnwVo9NLF5KxzXfjJWVmejLXFLzgVLaFl+Yo01+l5wJdHru5eku96iK + nCt0Lm1+QfW8oO9TLBfgPh5QrM8bUEMAhIyySwvxEzq9hbh+XjjsBNfn4FxQ + ZJdxhTgfD6kKCtFt3EETj4qFd9Eq/njygHrDY/hdLHex0sUq1ijFtS7NvHEM + lqOBJvE5ghw3c5R/AgRzNM0uAwAA + """, + """ + androidx/navigation/AbstractChildClassComp.class: + H4sIAAAAAAAA/5VSzU8TQRT/zfZ7KVIqYgE/UBBLRbYQ4kEICdaoTUoPSJoI + p2k7lqHbWbMzbTjyt3j2QtSQaGKIR/8o45ulQqIc9LDvzXv7e7/3+ePnl28A + 1rDKUOKqHQayfeQpPpAdbmSgvK2mNiFvmcqB9NsVn2tdCXrvUmAM81fhd4U2 + FzERMsaQ3JBKmk2GeHFvscEQKy42skgg5SKONNk87DCwvSxcjGTgIEtQcyA1 + w1Lt36tap0wdYbYsGaXYY0hvtPxh6rV/55m3gisCpHCdYaVY6waGeLzDQc+T + yohQcd97Lt7yvk9NKuLot0wQbvOwK8L1895uuJjAJEPmgozhyX80c1nEehYF + TNmxTDPM1YKw4x0K0wy5VNrjSgUm4tFePTD1vu/TGMZ/V7wtDG9zw8nn9AYx + WjWzImMFaORd8h9Ja5Xp1V5heHl2nHedghN9Z8eukxtxnXS8cHY8m1p1yuwp + Sz0bzSdzzrRTjn1/n3Ry8Z3xCytNIdPxdCKXtHR0VAtXtvznlVB5VM1EnQ9e + BdqO1ISB74twuWsYZnb6ysieqKqB1LLpi63LnulOKkFbMIzVpBL1fq8pwl1O + GIZ8LWhxv8FDae2hM1tVSoTRkAUFu6+DftgSL6T9NzXM0/grC1Zo+HEakoMp + uwuq9RFZSdK3SOft2ZKOkZ2IvEtkbRLaIe2WTpEpzXzG6EnE8HgYaRHLJCfP + UbiGMbsUelk22iFy9J1zeXZXpBOlTxj9cCVN9hwwpElTUalhcAHRtpH9iok3 + 7BQ3P2LmJPLEiNgmpNETo22sHHGXqGGgQv7bxHhnH7Eq7lYxW8U93Kcn5qqY + x4N9MI0FPNxHWmNMo6jhaixqJDVyGuMahV9kX+XHYAQAAA== + """, + """ androidx/navigation/AbstractChildObject.class: - H4sIAAAAAAAA/41SXWsTQRQ9M/nabKOttdrEqq2toBV02+KbRYhBcSGuYENA + H4sIAAAAAAAA/41SXWsTQRQ9M/nabKOttdrEqq2toBVx2+KbRYhBcSGuYENA +jSbHdppNjOwMwl9zJM/xH9QfCgoSNA3f5R4d40fYB/cZe+dc+fMudwz++37 x88AHuMuwz2hk8yo5DTQYqKOhFNGB+3YukwMXOdYpcnr+EQOXA2MYeMick9a 9+tADSWG6r7Syj1lKN3f7jdQQdVHGTWGsjtWlmG7+589nzB4+4O0UPPBcwkv @@ -268,14 +404,28 @@ object AbstractChildObject: TestAbstract() kQz1RFkVp7L9ZxByr2MSybDYVVpG41Ess54gDsNy1wxE2heZyvG86B+YcTaQ L1QOWnPh/j+y2CULy8XcrdxRyrcJVSkvUeb0Vgq0TijI3aFceXAO76zY3piT gYe4Q7Hxk4A6SQEeFn4fXiV2/ix8An97jsYHLJ4VBY7NIt7CVvFT0k2RwPIh - SiGuhlgJcQ3XaYnVEE20DsEsbmCN9i18i5sW1R9Ulqy20QIAAA== + SiGuhlgJcQ3XaYnVEE20DsEsbmCN9i18i5sW1R/BbKrC0QIAAA== """, - """ + """ + androidx/navigation/AbstractChildObjectComp.class: + H4sIAAAAAAAA/5VSXWsTQRQ9M/nabKOttdrE+t0ifqDbFt8sSgyKC3EFGwLS + p9ns0E6zmZGdSehjnvwh/oPiQ0FBgr75o8S7a6igfXGXvfeeO/eeyz2zP35+ + /grgMTYYHgidZEYlR4EWE7UvnDI6aMfWZWLgOgcqTd7Eh5JCM3pfA2PYOKuh + J607bSoqSwzVHaWVe8pQunuv30AFVR9l1BjK7kBZhofd/5j9hMHbGaQFow+e + 03hhtNtrR50XDZyDX6fkeYb1rsn2g0Pp4kwobQOhtXEFsw0i46JxmhLVhe7Q + OCILXksnEuEE5fhoUiJVWG7quQEDG1L+SOVok6JkiwbMpr7Pm7z4ZlPv+wfe + nE23+SZ7XvP4t49VvsTz0m2GO2cu+LdWNHolEpNXxhLULjNpKrNHQ8ew9nas + nRrJUE+UVXEq23+WIRU7JpEMi12lZTQexTLrCaphWO6agUj7IlM5nif9XTPO + BvKlykFrTtz/hxZbJGO52L2Vq0r+OqEq+SXynN5KgW4QCnKFyFfun8A7Lo5v + zouBZ7hFtvG7AHWiAjwsnDavUnX+LHwBf3eCxicsHhcJjtuFvYb14iel2yKC + 5T2UQlwMsRLiEi5TiNUQTbT2wCyuYI3OLXyLqxbVX5Ga3ibhAgAA + """, + """ androidx/navigation/InterfaceChildClass.class: - H4sIAAAAAAAA/41QTW9SQRQ9M3w8eKXyoFop9atWLbDw0cadprElMZJgTWrD + H4sIAAAAAAAA/41QTW9SQRQ9M3w8eKXyoFop9atWpbDw0cadprElMZJgTWrD AlYDb6RTHu8lbwbSJb/FtRsTjYkLQ1z6o4x3KGli0oWLufeeO2fOvXN+//nx - E8AL7DHsiShIYhVc+pGYqZEwKo78dmRk8lEMZetchUErFFo7YAzehZgJPxTR - yH8/uJBD4yDFsHOTxJnU5lrGQYYh+0pFyhwypGu9epchVat3C3CQd5GGS1gk + E8AL1BhqIgqSWAWXfiRmaiSMiiO/HRmZfBRD2TpXYdAKhdYOGIN3IWbCD0U0 + 8t8PLuTQOEgx7NwkcSa1uZZxkGHIvlKRMocM6b1evcuQ2qt3C3CQd5GGS1gk IwbWK6CA9Tw4bhHVnCvNUO/855YvacxImiOrRPo9hlJnHJtQRf47aUQgjCAK n8xS9H9mQ94G0Nwx9S+VRU2qgn2G48W87PIKX57F3OXemstzqcpifsCb7Hi9 nPV4lTdTvz5luZc+LV2jHLGr6VzGy1qlA4bdG/f/xyJai7a4fSJmb2NtWnFk @@ -283,151 +433,329 @@ object AbstractChildObject: TestAbstract() YOt0Ghk1kV2lFd0eRVFsluM19snjNA3N0ilb0+nvnGoHOYqPCR0S5pTdxnes Nba/ofhlydmlaF8BNTyhuHnFgoeSdZMqq0bmk+7GSsu3JlPONL6i+PlGmcIV YSXD8XQZd/CM8mvrDt3d6SPVxmYbd9uoYItKVNvYxr0+mMZ9POjD0ShpPNQo - aDzSyGmUNTb+AhJd9mP1AgAA + aDzSyGmUNTb+AnClX8H1AgAA """, - """ + """ + androidx/navigation/InterfaceChildClassComp$Companion.class: + H4sIAAAAAAAA/51Sy27TQBQ9Y6d5mADpA0h4P4LUgqibCsQiCAmCEJbSVgKU + TRdoYk/bSewZNJ5EXWbFh/AHXSGxQFGXfBTijlNgXTZ37j3nnns9Z/zz1/cf + AJ7iIcMzrhKjZXIcKj6Vh9xKrcJIWWEOeCx6RzJNeinP857OPrdd4Io6KmAM + jRGf8jDl6jDcG45EbCvwGcovpJL2JYO/vjGoYwnlACVUGEr2SOYMz/v/tbHL + 0Fnvj7VNpQpH0yyUTqF4Gr4RB3yS2p5WuTWT2Gqzw81YmO7GIIDnNq+243/k + p6xgGTbPN41h+Y9gR1iecMsJ87KpT1YyF2ougIGNCT+WrtqiLOkwtOezIPCa + XuA1KJvPqqdf/OZ8tu1tsdeVqnf6tew1PNe7zdyEx+ewqIIbDLW/PjGs7fLp + O527K1ij01SYzbEl+3s6EQyX+1KJ3Uk2FOYjH6aErPR1zNMBN9LVZ2A9UkqY + YomgRws+6ImJxVvpuNb7ibIyEwOZS2p+pZS2xSfm6JDhJecCnZ57e7rMHapC + ZwudS4++oXpS0Hcplguwi3sU64sG1BAADUbZhTPxEzq9M3H9pLDYCa4uwIWg + yC7iEnE+7lMVFKKbuIUWHhQLb6Nd/PTkAfU29uFHWI6wEmEVa5TiSkQzr+2D + 5WiiRXyOIMf1HOXf1GOmWzEDAAA= + """, + """ + androidx/navigation/InterfaceChildClassComp.class: + H4sIAAAAAAAA/5VSW08TQRT+Zlt6Y5G2IJbiBQS1FGELYkwsIcEatUmpCZIm + wtO0Hcq221mzM2145Lf47AtRQ6KJIT76o4xnSoUHSQwPe858Z8/5zvXX728/ + AKxjnWGJy2bgu80jR/K+2+La9aVTlloEB7whSoeu1yx5XKmS3/0QBWNItnmf + Ox6XLedtvS0aOooQw9xVNLtC6QuqKEYYIhuudPUmQzi3t1hjCOUWazaiiCcQ + RoIwD1oMbM+GjbE4LNwgV33oKoblyjUqLVKqltBbho1y7DHENhreMPfTaxAt + GMEleURxk2E1V+n4moicdr/ruCZGcs95KQ54z9MlXyod9BraD7Z50BFB8by7 + WwlMIcMQvyBjeHaddi6rKNrIYsZM5jbDfMUPWk5b6HrAXakcLqWvB0TKqfq6 + 2vM8GkTqb8nbQvMm15xsVrcfogtgRsSNAE29Q/Yj16ACvZqrDK/PjtMJK2MN + vrPjhJUcTVixcObseDa6ZhXYcxZ9MZaOJK2sVQj9/BixkuGd1AWKUUg2HBtJ + Rgzdmqn3v1dCtVEpk1Xef+MrM1Ad+J4ngpWOZpjZ6UntdkVZ9l3l1j2xddkw + 3UnJbwqG8YorRbXXrYtgl5MPQ7riN7hX44Fr8NBol6UUwWDCgoIT7/xe0BCv + XPNvepin9k8WrNLkw1RhhPS0WQW9l2liEdJ3SafN4ZIOEY4iRnKF0CZ5W6QT + +VOM5me+YvyEkAVnGAkUUSA5de6FJFJmJ/QybLRC4p0YcjlmVaRH8l8w/ulK + GvvcYUgTwyTiw+AMBsuG/R1T79kppj/jzsnAEqLWTEI2KCJLza0NuB/jCekS + 2e8R4+w+QmXMlXG/jHks0BMPyniIR/tgCjks7iOmkFLIK9gKS8rAtMKEQvYP + Y7gHcXYEAAA= + """, + """ androidx/navigation/InterfaceChildObject.class: - H4sIAAAAAAAA/41SwW7TQBB9u0kTxw00LQUSCpRSQG0PuK24USGVCISlYCQa - RUI9beIl3cTZlexN1GNOfAh/UHGoBBKK4MZHIWZNKAeQwNbOzHs783Zn7G/f - P34G8AgPGLaEjlOj4tNAi4nqC6uMDkJtZfpW9GTzRCXxq+5A9mwZjKE2EBMR - JEL3g19sgWHjbxptmdkLnTIWGEoHSiv7hKGwtd2pogzPRxEVhqI9URnDTut/ - 7/KYwTvoJbmcD+40vDA6ah9GzWdVLKFaIbLGsNkyaT8YSNtNhdJZILQ2NpfN - gsjYaJwkJLXcGhpLYsFLaUUsrCCOjyYFGhFzpuIMGNiQ+FPl0C5F8R4dMJv6 - Pq/zfM2m3td3vD6b7vNd9rTs8S/vS7zGXeq+u8s/p0TnrkZi8sJktmm0TU2S - yPTh0DKsvR5rq0Yy1BOVqW4iD393QvNrmlgyLLWUltF41JVpW1AOw0rL9ETS - EalyeE76R2ac9uRz5UBjLtz5QxZ7NMMitV2i1XBDJX+Hend4hTynl74hoQ1C - gRsQ+YWdc/hn+fbdeTKwjU2y1Z8JWKQIVHjpovg6Zbtn8RP4m3Nc/oDls5zg - uJfbddzPf1iGKySweoxCiKshroVUWqcQjRA3sHYMluEmbtF+hmqG2xm8H3Jw - I2btAgAA + H4sIAAAAAAAA/41STW/TQBB9u0kTxw00LQUSylcpoNADbituVEglAmEpGIlG + kVBPm3hJN3F2JXsT9ZgTP4R/UHGoBBKK4MaPQsyaUA4gga2dmfd25u3O2N++ + f/wM4BHuMzSFjlOj4pNAi6kaCKuMDkJtZfpW9GXrWCXxq95Q9m0ZjKE2FFMR + JEIPgl9sgWHzbxodmdlznTKWGEr7Siv7hKHQfNCtogzPRxEVhqI9VhnDdvt/ + 7/KYwdvvJ7mcD+40vDA67BxErWdVrKBaIbLGsNU26SAYSttLhdJZILQ2NpfN + gsjYaJIkJLXaHhlLYsFLaUUsrCCOj6cFGhFzpuIMGNiI+BPl0A5F8S4dMJ/5 + Pq/zfM1n3td3vD6f7fEd9rTs8S/vS7zGXeqeu8s/p0Tnrkdi+sJktmW0TU2S + yPThyDJsvJ5oq8Yy1FOVqV4iD353QvNrmVgyrLSVltFk3JNpR1AOw1rb9EXS + FalyeEH6h2aS9uVz5UBjIdz9Qxa7NMMitV2i1XBDJX+bend4jTynl74hoU1C + gRsQ+aXtM/in+fadRTLQxBbZ6s8ELFMEKrxwXnyVst2z/An8zRkufsDqaU5w + 3M3tLdzLf1iGSySwfoRCiMshroRUWqcQjRDXsHEEluE6btB+hmqGmxm8H+eK + JRLtAgAA """, - """ + """ androidx/navigation/NavHostController.class: - H4sIAAAAAAAA/41Ru0oDQRQ9d2I2yRpN1KjxBVqIj8JVsVMEFcRAVFBJYzXJ - LnGSzQzsTkLKfIt/YCVYSLD0o8S7q52NzeE87nAf8/n19g7gCGuETan9yCh/ - 6Gk5UG1pldHejRxcmdheGG0jE4ZBlAMRyh05kF4oddu7bXaCls0hQ3BOlFb2 - lJDZ3mkUkYXjYgI5woR9UjFhq/6vDseEmXrX2FBp7zqw0pdWsid6gwyPSgkU - EgCBuuwPVaL2mfkHhPXxyHVFVbiizGw8yi9Ux6NDsU/n2Y9nR5RFUndIyevK - n9Z7XcvTXhg/IJTqSgc3/V4ziB5kM2Rntm5aMmzISCX613TvTT9qBZcqEUt3 - fW1VL2ioWHF6prWx6ZYxNiD4GL9jJ7dhrLLyUg1kd1+Rf2EisMTopGYBy4zF - nwJWbpqvpLiI1fTnCJOcFR+RqWGqhukaSigzxUwNs5h7BMWoYJ7zGG6MhRjO - N+LuMN72AQAA + H4sIAAAAAAAA/41Ru0oDQRQ9d2I2cY2axFfiA7QQH4WrYqcIKoiBGEEljdUk + u+gkmxnYnYSU+Rb/wEqwkGDpR4l3Vzsbm8N53OE+5vPr7R3AEdYIm1L7kVH+ + 0NNyoB6lVUZ7DTm4MrG9MNpGJgyDKAciFDtyIL1Q6kfvptUJ2jaHDME5UVrZ + U0Jme6dZQBaOiwnkCBP2ScWErfq/OhwTSvWusaHS3nVgpS+tZE/0BhkelRKY + TAAE6rI/VInaZ+YfENbHI9cVFeGKIrPxKL9YGY8OxT6dZz+eHVEUSd0hJa/n + /7Te61qe9sL4AWG2rnTQ6PdaQXQvWyE75bppy7ApI5XoX9O9M/2oHVyqRFRv + +9qqXtBUseL0TGtj0y1jbEDwMX7HTm7DWGHlpRrI7r4i/8JEoMropGYey4yF + nwJMwk3zlRSXsJr+HGGKs8IDMjVM1zBTwyyKTFGqoYy5B1CMeSxwHsONsRjD + +QaW0s1z9gEAAA== """, - """ + """ androidx/navigation/NavHostControllerKt.class: - H4sIAAAAAAAA/41UXVPbRhQ9Kxt/KAZkE4NtAgngEANtRCj9hKalTlPUOKaT - ZOhkeFrkrSOQpY5W9uSR9/6L/oKmPKRTZjpMH/ujOr0rnJhY0OAZ6969e8+5 - R1e7959///wLwDp2GO5wrxX4Tuul6fGe0+ah43tmk/e2fRnWfS8MfNcVwaMw - DcZgHPAeN13utc2d/QNhUzTBkO6nM2zWGlei22gME20s7TLcHqBtv/OzL4UZ - dL3Q6QizHq35vis2GBYaftA2D0S4H3DHkyb3PD+MSkmz6YfNrutS1igpGJTM - IMswe+iHruOZB72O6XihCDzumhalEItjyzSuMRTtF8I+7NP8wAPeEZRIjarF - RZ+LPFUkbXqNHEYxpiOHceqXDHkQPhAydLxIXwZ5YrpikxgK8ZIME20R1l0u - peURvWeLJ+Inhrna0oW0z6h4lE1Iw47Bbr4HlMMUSlloKDNUhgv/6IQvtoJ2 - RFR7X/1+MsmYsi8jWbwaRQ4zmFWibjKUSJTleSKIt+QySTtd+qDVAYgkFZ2L - KS4WFCPIYQFVJeg2Q2bTpiPmhPcZEjV1qmf+953SWGJIbUaIHFZQ07GMDxiq - V+lEGncZkjVLnboVrOowce8S6LDmND7SaQJQer7RvxWPRchbPOTUD63TS9CE - YOqRVQ8wsEPlaLT50lHeKnktwv9yerSsnx7pWknTtUwibg3tzbYyxulRpWTk - Ktrq6FrKGCM7TtYgm99Oz+fVtrbK/v41laH0SjKjGQmKJik4MgimDJWaoWB2 - ENSNa0rSGlNqy5c2IY06gz7oBMP12N27e0jTbPrJ2fCxvJ4jHRo9W4M5Q22v - +y3BMN5wPNHsdvZF8EyNJ3VpfZu7uzxw1LofrA5zvZ0s75DmBrIELfWnfjew - xUNHUZT7FLsxMbhHRy9JnySBirqv9Prf0SpFNkO2oq5LLEYndig2gjL9U8Sy - Tast4tTIji4X9D9grBQK9HylTgCsPohmHL4nf/IsEVlMqKNCXh7Xz5GnyT5S - ca1f6exZRjGCqmo3KKZ+yd9R+S3KeFMERHZeZRnTlB1D3RpGTQyh5jAfRy0O - o4rvoDK4gxr5ClVHdA+wcILl56/x4TEqJzCfG+OvsXaMWydYj/yPj7H46i3p - WATKQyc5k0SeQIPWOu2u4wG+JVmPo44+RJMsp/gn9Ak+3UPCwmcWPrfwBTYs - bOJLC/fx1R6YxNfY2kNBYkqiJFGUmJSYkZiVmJa4IbEgUZWYk5iXGJH4RiIr - MSGRJ/8/37G4ovoHAAA= + H4sIAAAAAAAA/41UXVPbRhQ9Kxt/KAZk82WbQAI4xEAbEUo/oWmp0xQljskk + GToZnhZ56whkqaOVPXnkvf+iv6ApD+mUmQ7Tx/6oTu8KJw4WNHjGunfv3nPu + 0dXu/effP/8CsI4dhtvcawa+03xlerzrtHjo+J7Z4N1tX4Y13wsD33VF8ChM + gzEYB7zLTZd7LXNn/0DYFE0wpHvpDJvV+pXoNuqDRBtLuwy3+mjbb//sS2EG + HS902sKsRWu+74oNhoW6H7TMAxHuB9zxpMk9zw+jUtJs+GGj47qUNUwK+iUz + yDLMHvqh63jmQbdtOl4oAo+7pkUpxOLYMo1rDBP2S2Ef9mie8IC3BSVSo6px + 0e9FnimSFr1GDsMY0ZHDKPVLhjwI7wsZOl6kL4M8MV2xSQyFeEmGsZYIay6X + 0vKI3rPFU/ETw1x16ULa51Q8yiakYcdgNz4AymEKxSw0lBjKg4V/dMKXW0Er + Iqp+qH4vmWRM2ZeRLF6NIocZzCpRNxiKJMryPBHEW3KZpJ0OfdBKH0SSJpyL + KS4WFCPIYQEVJegWQ2bTpiPmhPcYElV1qmf+953SWGJIbUaIHFZQ1bGMjxgq + V+lEGncYklVLnboVrOowcfcS6KDmND7RaQJQer7euxWPRcibPOTUD63dTdCE + YOqRVQ8wsEPlaLT5ylHeKnlNwv9yerSsnx7pWlHTtUwibg3t7bYyxulRuWjk + ytrq8FrKGCE7StYgm99Oz+fVtrbK/v41laH0cjKjGQmKJik41A+mDJWaoWC2 + H9SNa0rSGlNqS5c2IY0ag97vBMN47O7dOaRpNv30bPhYXteRDo2erf6cobbX + /KZgGK07nmh02vsieK7Gk7q0vs3dXR44at0LVga53k2Wc6S5vixBS/2Z3wls + 8cBRFKUexW5MDO7S0UvSJ0mgrO4rvf4PtEqRzZAtq+sSi9GJHYgNoUT/FLFs + 02qLODWyw8sF/Q8YK4UCPV+rEwCrB8phBA/JnzxLRBZj6qiQl8f4e+Rpso9U + XOtVOnuWMBFBVbXrFFO/5O8o/xZlvC0CGOdUljBN2THUzUFUYQA1h/k4anEQ + NX4OlcFtVMlXqBqie4CFEyy/eIOPj1E+gfnCGH2DtWPcPMF65H96jMXX70hH + IpABneRMEnkCdVrrtLuO+/ieZD2OOvoADbKc4p/RJ/h8DwkLX1j40sJX2LCw + ia8t3MM3e2AS32JrDwWJKYmixITEpMSMxKzEtMR1iQWJisScxLzEkMR3ElmJ + MYk8+f8Bprsff/oHAAA= """, - """ + """ androidx/navigation/Outer$InnerClass.class: - H4sIAAAAAAAA/41U308cVRT+7uyv2WGBWaAtP9ZWy4q7S9sBbLUWWgUUGVyW - CoZY8eWyOy4DwwzO3CX1xfDUP6GJvpgY41Mf2kTB2MRg++bfZIzn7kx361IJ - ycw955455zvfPefc+euf3/8AcB1rDHnu1nzPrt03XL5v17mwPddYaQjLz5uu - a/nzDg+CFBiDvs33ueFwt26sbG5bVZFCjCE5Y7u2uMMQL5jFdYZYobieQQIp - DXGoDKotUWb9OgMzM9DQlYaCDPmLLTtgGCufhcA0Q1fdEmYLi9KYDFrV293z - XMsVkwRY9fa+YSgSj7NijpY9v25sW2LT57YbGNx1PdH0DoyKJyoNx5mWh0lq - xPk8Q0amyNesr3jDEQybhbMlMs1yZ+2mz8gxg34MyOzDVErhrQnfdun4A4Xi - S5Chlc5zodM217CdmuWncFHDJdmOgTZ24UVnbqt4gxrJ9/Yst8ZwtXAS+mS2 - CJkIjiIvwd9kyMnSn+b4lnQsSMf50x1L0nE8gxxek9pVOvwWD7bmvZrFkG1H - mq6w6vJ8E+EA0oQZmNIwibfpRNbXDe7QjJ0rvKL+X9Dsn9Z+6j3fdCyqasIT - W5bP0HcShciUdzzh2K6xbAle44KTTdndj9H9YnJJywU0/Dtkv2/LHXFVajSw - Px0fXNSUQUVT9OMDjR5FVzVFTZLsIhkj2aM+e6AOHh9MKRNsrrsvqSvDykTs - 2Y9JRY8vpfWU3C0+fxBb6tdV0slRVZXQicyMzGnStSlV7xqOD7IJtvj8YYwC - M6HHQ0Z6N+k9Ul/NtuBVojMcVxN6UnKdYvIEQ/87sCks0F1sTxaNWYXvL3qB - mPdc4XuOY/nXdujCxMMG9pZt16o0djct/zNZY1lar8qdde7bch8ZR1YbrrB3 - LdPdtwObTLPt/jB0rwle3Vnme5F3vtP7Lvf5rkX0/hOWadO0aKuteQ2/ai3Y - EmIoglg/kY4GSqH/mSxDn/yHkaaSTn8GWpdot0DfFZJa6Qjp0siv6H5COwWf - 0NoD2fXLFD+KNMky7c6H3vStV84HaRKVxgk6vSGmIceGZKL0C7ofteCSTeNo - EyYTOkQwWSL3Ini0M5i9MoD+LgQrAyaJpeSUfgrl3sgRLjxuBYVk0y2y6Yjs - csTmHKCnMYihKPdYVKxsLv7td1Alg5nSyCFGQsgKrTEwiUD3O0p/i6SklnuK - S/eO8Hrf5UOMychDFPXiIa4c4trjjmPkIkYv8aDVaNVgLKpBk8FvuN5ZBjWK - Z7iBdyIeX5KU7cqXxn9GIv5o/E8o3yMRezR+DGVZAl2h9wdpiYc9qTTbF0up - fyObon27YvlWxfK4ifcozwrpKUnq3WYN7jZD6YrhYyxS+T5tAppYJfk52W9R - p6Y3EDMxY+K2iTt4n1R8YGIWcxtgAebx4QZ6A/l8FEBrrskAeoBsgL4A/QFu - NI03AxgBcqT/CyhrMdv+BwAA + H4sIAAAAAAAA/41U31PcVBT+brI/smEXskBbfqythRV3l7YBbLUWWgUUCS5L + BYex4stlNy6BkGCSZeqLw1P/hM7oizOO4xMPdUbBsTMOtm/+TY7juZt0ty6V + YSa559yTc77z3XPOzV///P4HgJtYY8hzp+a5Vu2h7vB9q84Dy3X0lUZgennD + cUxv3ua+nwRj0Lb5Ptdt7tT1lc1tsxokITMkZizHCu4xxApGcZ1BLhTX04gj + qSIGhUGxBMqsV2dgRhoqulKQkCb/YMvyGcbK5yEwzdBVNwOjhUVpDAa16u7u + uY7pBJMEWHX3vmYoEo/zYo6WXa+ub5vBpsctx9e547hB09vXK25Qadj2tDhM + QiXOFxnSIkW+Zn7JG3bAsFk4XyLDKHfWbvqcHNPoQ7/IPkSlDNy1wLMcOn5/ + ofgSZGil81zqtM01LLtmeklcVnFFtKO/jV140Zm7Cq5SI/nenunUGK4XTkOf + zhYhE8FR5AX4Gww5UfqzHN8UjgXhOH+2Y0k4jqeRw2tCu06H3+L+1rxbMxmy + 7UjDCcy6ON9EOIA0YTqmVEziLTqR+VWD2zRjFwqvqP/nNPtntZ96zzdtk6oa + d4Mt02PoPY1CZMo7bmBbjr5sBrzGA042aXdfpvvFxJISC2j4d8j+0BI74irV + aGB/PDm4rEoDkippJwcqPZKmqJKSINlFUibZrTx7pAycHExJE2wu05vQpCFp + Qn72Q0LSYkspLSl2i88fyUt9mkI6OSqKFDqRmZE5Rbo6pWhdQ7EBNsEWnz+W + KTAdejxmpGdI7xb6arYFrxCdoZgS1xKC6xQTJxj834FNYoHuYnuyaMwqfH/R + 9YN51wk817ZN78YOXZhY2MCesuWYlcbupul9KmosSutWub3OPUvsI+PwasMJ + rF3TcPYt3yLTbLs/DJm1gFd3lvle5J3v9L7PPb5rEr3/hKXbNE3aqmtuw6ua + C5aAGIwg1k+lo4GS6H8mytAr/mGkKaTTn4HWJdot0HeJpFo6Rqo0/CsyP9NO + wse0dkN0/SrFjyBFsky7i6E3fesR80GaQKVxgkZviKmLsSEZL/2CzGELLtE0 + jjRh0qFDBJMlci+CRzuD2SsD6O9CsCJgklgKTqmnkB4MH+PSk1ZQSDbVIpuK + yC5HbC4AWgoDGIxyj0XFyuZi33wLRTCYKQ0fYTiErNAqgwkEut9R+jskBbXc + U1x5cIzXe0eOMCYij1DUike4doQbTzqOkYsYvcSDVr1Vg7GoBk0Gv+FmZxmU + KJ7hFt6OeHxBUrQrXxr/CfHY4fifkL5DXD4cP4G0LICu0fu9sMTCnlSa7ZOT + yt/IJmnfrli+VbE8buNdyrNCelKQeqdZg/vNULpi+AiLVL5PmoAGVkl+RvY7 + 1KnpDcgGZgzcNXAP75GK9w3MYm4DzMc8PthAjy+eD32ozTXhQ/OR9dHro8/H + rabxtg/dR470fwEaMaS//gcAAA== """, - """ + """ androidx/navigation/Outer$InnerObject.class: - H4sIAAAAAAAA/41US08UQRD+umcfs7M8loc8FVEWeSmzIJ4gJkg0DFkWIwSj - nHp3RxgYZnSmd8ORkzevHjx68MRB4oFEE4MSL/4oYvUwCkIwJrvdX1VX1Vfz - Vc/8PP78FcAU7jEMCq8a+E51x/RE3VkX0vE9c6km7SBveZ4dLJU37YpMgzHk - NkVdmK7w1s3fXo0hNeN4jrzPoA2PrDYgiZSBBNIMCbnhhAxDxf9imGbQpb8s - A8dbZ2gfHimesp14KWKg6Afr5qYty4FwvNAUnufLqGBolnxZqrkuRWXPlNXR - RIU3RLgx51ftqElL+zF1/IYat1/VhEsdXhkunn+y6ZHnDPl/sRGVKLs20SV9 + H4sIAAAAAAAA/41US08UQRD+umcfs7M8loc8FVRAFlBmQTxBTJBoGLIsRghG + OfXujjAwzOhM74YjJ29ePXj04ImDxAOJJgYlXvxRxOphFIRgTHa7v6quqq/m + q575efz5K4Ap3GMYEl418J3qjumJurMupON75lJN2sGg5Xl2sFTetCsyDcaQ + 2xR1YbrCWzd/ezWG1IzjOfI+g5YfWW1AEikDCaQZEnLDCRmGi//FMM2gS39Z + Bo63ztCeHymesp14KWKg6Afr5qYty4FwvNAUnufLqGBolnxZqrkuRWXPlNXR + RIU3RLgx51ftqElL+zF1/IYat1/VhEsdXskXzz/Z9MhzhsF/sRGVKLs20SV9 uWEHDK0XqxD1TMWN9DHAlSi6VVpemS3NPWxAD4wMOXsZWopbvqQwc9GWoiqk oES+XddoRkwtGbWAgW2Rf8dRVoFQdYLhxeFun8G7uMFzh7sG1xXIxrtuKFeu ST96bXQd7k7yAnuQ1vn39yme4wttOa2HFxKTei7Zk+hiBTZ/9FZbyORS5E0T ZoR1whmFFdskUz10XzrNNEZocCVRn/dDOed7MvBd1w7GtyRD75OaJ51t2/Lq - TuiQbrOnWtJNOZlNc9Hx7FJtu2wHK0pbJalfEe6qCBxlx87GZSkqW4viZWzn - z9d+LAKxbVNHf5E0RLdizhVhaJNpLPu1oGI/clSJ7rjE6oXmMEEjSkTqd6uJ - 0X6brBTtjbQn6TQZWXfIMtWMlHf0APo+AY7xOBjop2Og4SQAGSqlimbJw6Pk - G3Gy1tr8MTo6Ddfi8LPM9DqiJeY9TW3duySVoQ3tMZNFO6e9c3TsA5KJvbFv - 4O+Q1PbGDsGfJvaixgu0JsDTelSs4yQhLqZQB/0ZqQN1q+kdIqCj648UnVEC - kP0C/uwA3Z9wdT9yaJikVenIMYomUvVuxDdGnyPVGsM1kqdvDZqF6xb6LXq6 - mwQxYCGPwTWwELcwtAYjVL/hEKkQbRHoCJGLQJbWX0Nhj3HkBAAA + TuiQbrOnWtJNOZlNc9Hx7FJtu2wHK0pbJalfEe6qCBxlx87GZSkqW4viZWwP + nq/9WARi26aO/iJpiG7FnCvC0CbTWPZrQcV+5KgS3XGJ1QvNYYJGlIjU71YT + o/02WSnaG2lP0mkysu6QZaoZKe/oAfR9AhzjcTDQT8dAw0kAMlRKFc2Sh0fJ + N+JkrbX5Y3R0Gq7F4WeZ6XVES8x7mtq6d0kqQxvaYyaLdk575+jYByQTe2Pf + wN8hqe2NHYI/TexFjRdoTYCn9ahYx0lCXEyhDvozUgfqVtM7REBH1x8pOqME + IPsF/NkBuj/h6n7k0DBJq9KRYxRNpOrdiG+MPkeqNYZrJE/fGjQL/RauW/R0 + NwliwMIghtbAQtzC8BqMUP3yIVIh2iLQESIXgSytvwC7X1qw5AQAAA== """, - """ + """ androidx/navigation/Outer.class: - H4sIAAAAAAAA/4VRXWsTQRQ9M5uPzSbaNFabGNuqTbWp4LbFp1qEGhQXYgq2 - BCRPk2SIk2xnYXcS+pgnf4j/oPhQUJCgb/4o8e42mgcp7rD3zP06d+69P399 - +QbgGZ4wVITuh4Hqn7taTNRAGBVo93hsZJgFYygOxUS4vtAD97g7lD2ThcWQ - OVRamRcM1na9XUAaGQcpZBlS5oOKGKrNa1mfM9iHPT/Jd8DjJNtrnZwetRqv - CrgBJ0fGmwybzSAcuENpuqFQOnKF1oFJeCK3FZjW2PeJark5CgyRuW+lEX1h - BNn42cSi7lgscrEAAxuR/VzF2i7d+nsM9dm04PAyd3hxNnW4bdk/PvLybLrP - d9kBt1Ivszb//inDizxO2GcxjeNpLcOGLyJqMp8oV1NhqF3bcW2RlMUGw9Z/ - Iv/M+QHDSktM3gSRaQTahIHvy/DpiGpV3421UWfS0xMVqa4vjxbDoR00gr5k - WGoqLVvjs64MTwXFMJSaQU/4bRGqWJ8bC4vXSUp2ToJx2JOvVeyrzOu0/6mC - PdpSKhltJV4aYY20DGGRkNNJJ9oWaW68AML0ziXsi8T9aB4MbOAxycJVAHJE - BdjI/01epej4y38Ff3+JwmcsXSQGC9skS+S+T/8aveMh4TphPSmxiR3CA6JZ - JuJSB5aHWx5WPNzGHbpi1UMZlQ5YhLuodpCO4ES4FyETYS3C+m+Jq/qyJgMA + H4sIAAAAAAAA/4VRXU8TQRQ9M9uP7bZKqSitlaICCpi4QHxCYoKNxk3qkggh + MTxN20kduswku9OGxz75Q/wHxAcSTQzRN3+U8e5S5cEQd7L3zP06d+69P399 + +QbgGZ4wNITux0b1T30txmogrDLa3xtZGRfBGKrHYiz8SOiBv9c9lj1bhMNQ + 2FFa2RcMzuraYQV5FDzkUGTI2Q8qYWh2rmV9zuDu9KIs3wNPk9wg3D/YDduv + KrgBr0TGmwxLHRMP/GNpu7FQOvGF1sZmPIkfGhuOooioZjtDY4nMfyut6Asr + yMZPxg51x1JRSgUY2JDspyrVNujW32RYu5hUPF7nHq9eTDzuOu6Pj7x+Mdni + G2ybO7mXRZd//1TgVZ4mbLGUxgu0lnE7Egk1Wc6Uy6kwLF/b8fJVUhGLDCv/ + ifwz5wcMc6EYvzGJbRttYxNFMn46pFrNdyNt1YkM9FglqhvJ3avh0A7api8Z + ZjpKy3B00pXxgaAYhlrH9ER0KGKV6lNj5ep1kpK9fTOKe/K1Sn2NaZ3Df6pg + k7aUy0bbSJdGuExagbBKyOnkM22FND9dAGF+/RzuWeZ+NA0GWnhMsnIZgBJR + AS7Kf5PnKTr9yl/B35+j8hkzZ5nBwSrJGrnv079A73hI2CJcy0osYZ1wm2hm + ibh2BCfArQBzAW7jDl0xH6COxhFYgrtoHiGfwEtwL0EhwUKC1m8Ngp25JgMA AA== """, - """ + """ + androidx/navigation/OuterComp$InnerClassComp$Companion.class: + H4sIAAAAAAAA/51TTW/TQBB9a6dxYkJJ0wIJUD4DpAjqpqpQpSIkCEJESlsJ + UC49oE2ylE3sXWSvox5z4ofwD3pC4lBFPfKjELNOoOKCVC4zb+bNm7Fn7B8/ + v58A2EKD4SlXg1jLwVGg+FgeciO1CvZTI+KWjj7X20oRCnmSZKE1XFGJB8ZQ + HvIxD0KuDoP93lD0jQeXIf9MKmmeM7iNtW4JC8j7yMFjyJlPMmHY7vzfyB2G + ZqMz0iaUKhiOo0AqkigeBq/ER56GpqVVYuK0b3S8y+ORiHfWuj4cO3q53j8j + P0QZy7B+vm4MS78Fu8LwATecck40dmmZzJqiNWBgI8ofSRttEBo0GerTie87 + Vcd3yoSmk8LpF7c6nWw6G+ylV3BOv+adsmNrN5nt8Pg8O/JwnWH1nwoPqwyL + f8sYin+Wy7Cyx8dvdGLf28Q6DEW8PjJ0tJYeCIZLHanEXhr1RPye90LKVDq6 + z8Muj6WN58nS2QRBp/bf6TTui9fScrW3qTIyEl2ZSCp+oZQ22VMmaNKVcnZ1 + 5B37xdAG7lIU2F2SX3j0DYXjjL5HNp8lt1EnW5oVoAgfKDNCF+biJ+Sdubh0 + nN3FCq7MkjNBhi5ikTgX9ymqEHsDN3ELtQzdJv8gG3wHD7N/hnZBmvIB3DaW + 2qi0sYwVgrjcpt5XD8ASVFEjPoGf4FqC/C+Tnk+BcAMAAA== + """, + """ + androidx/navigation/OuterComp$InnerClassComp.class: + H4sIAAAAAAAA/5VUW08bVxD+zvq2XgysIRcCpEmLm5pLWKAJUHAaLillKZcU + UhpC+3Cwt2ZhvUt311b6UuUpPyFS+1KpD33iIVFbqIpU0eStv6mqOmfXmFuE + ZMk+Z2Z25pvvzMw5//z3518A7uBrhj5uF1zHLDzVbF4xi9w3HVtbKvuGO+2U + djK6bZNkcc8TagKMQd3iFa5Z3C5qSxtbRt5PIMIQz5m26X/MEM3q3asMkWz3 + agoxJBREITPIpkCadIsMTE9BQUMSElLk72+aHkP/fD1Exhkaioav1zApnc6g + 5OmbYxu2P0jAeWfnO4ZB4lMvdte84xa1LcPfcLlpexq3bccPojxt0fEXy5Y1 + Lg4XV+gMVxhSIlWmYHzDy5bP4GbrS6jr82drOl4n5xRacUmwaadS+86K75o2 + leVStvsEdGil8109a5sqm1bBcBN4R8EN0a620/jZo+7dk/EuNZvv7Bh2geF2 + 9jz8+YxVdCLZhYxI8D5Dp2jLRY4fCMescJy+2LFHOPam0InrQrpNBdjk3ua0 + UzAY0seRuu0bRXHGgXBIaQo1DCkYxId0IuPbMrdoDi9n39KLJwyZi0aC5oFv + WAZVNub4m4bL0HIehXjl8lb1lgzX092MWLhNLgmMi4me33Z8QtK2KiXNpGO5 + Nre0B+H4TRMj3y3nfcdd4O42FSm8iPcU5ECZkzUwhtG6huyYBtV9ApPiAk9R + iY/YLBg+L3CfE0WpVInQC8PEkhQL6Npvk/2pKTTqgFSgK7p7+OymIrVJiqQe + PlPoJ6myIslx2htoj9DeRGb59XO5jVybh6QBNsaapxpb4qrULg1EXv8cl9To + XFJNCG32zfPIXKsqk3z4bEiWpdCJzIzMSZKVIVltaI+2sQE2++ZFhAJToccL + RnIjyU1CXk7X4GXK3x6VY2pccB5i4iTXL6xaAg8Zmk6Xjm7iIq/MOp5oj+86 + lmW4/dv0VHQsl23fLBm6XTE9k2Zo8niuaEzDIW6eN21jsVzaMNxHYs7EeDl5 + bq1y1xR61di44vP89gLfqeqZs9gPuctLBtE8lSR1TNUgVVlxym7emDEFxLUq + xOo5cnRtJHrZQes1MQxUlkekxWm/THuLeOFF80mPBdYvSJshb4l2pWcfyZ6O + 39H4KkBYpbUJYjKGCXOEoobxJWlXQm/61ixmiCSBSiMHlf4hpiZGi/ZYz29o + 3K3BxQPjSACTCh2qMGkidxTcdTaYvTWA3laCFQGDxFJwSh5AWuvYx9WXtaCQ + bLJGNlkle6IsahJtVK4w961qAdOd0e9/gCwY5Ho69tARQj6mNQImEOhlq6Yf + o11Q6zzAjbV93Gx5bw+3ROQeutXuPfTtof/lmWN0VhmdbA+jsqVrPMIaBAz+ + wJ2zZZCr8Qx3qS0hj69oF+3K9PT+glh0t/dvSD8iFtntPYS0IID66P+TsETD + njwO2hdJyP8inSD9uGKZWsUyGMVHlGeN5IQgNRKkH0OiSrUtSErEDpBbY/u4 + /yumXwWWCJ4EUyfm63MsU5FzJE3Qvh6kXyHKIJnhAfX1k3VEdMzo+FTHLHQS + MafjM8yTg4cFLK5D9dDsYcmDEqxxT1jSHlo8tHq4GxhHPWgeOgN54n/YBk2n + VQkAAA== + """, + """ + androidx/navigation/OuterComp$InnerObject.class: + H4sIAAAAAAAA/41TS2/TQBCeXTuJ46St+6BPKI8GSBqo0wCnVkglAtVVmiJS + FUFPm8Qkbhy72Juox574CRw4coBLDlQcKoGEAr3xoxCzjiHQigop2flmPDPf + +Jv19x+fvgDAXbhHIMOcmudatQPdYR2rzrjlOvpWm5tewW3tpwzHMb2typ5Z + 5TEgBLQ91mG6zZy6/isqEYiuWo7F7xOQ0pmdJEQgqoIMMQIyb1g+gWzxv1lW + CCjcLXPPcuoEJtKZ4oCxH8WMhaLr1fU9k1c8Zjm+zhzH5UFTXy+5vNS2bcxK + /NFWgWFs3GB+o+DWzGBQQ3Le51ZxePNlm9k45YV08fTbrWSeE0idx4ZUrGKb + SBdxecP0CIyd7YLUq1U70EgFKoRRjFJ5e61UeJiEWVDjGJwjMFpsuhzT9E2T + sxrjDAtpqyPhrog44uIAAqSJ8QNLeDlEtWUCL3qH8yqdpirVeocqVQRIhFZR + RUgbVk5eqdO9wzzNkQcxhX57G6Ua3RjXpFmak/OKFpmVp0mOrJ+8ljbiWhSj + McQEsYI4LrBgyxMxw6VzNxqDDC6vxDrrrs8LrsM917ZNb6nJCcw9aTvcapmG + 07F8C7VbG+iJN6a/n5Gi5ZildqtiettCXyGrW2X2DvMs4YfBoTJn1eYm2w/9 + 1Onej5nHWiZO9RdJMrgZBZv5vomuWnbbXtV8ZIkWM2GLnTPDwTKuSQ42MCO2 + hvYWelG0Q2gj+DQSeLfR08WeRHTxGJQjBBSWwmTx5el4JvsJEMdWomkCIzQo + vhoWS2MjH4JHg3QpTP+TGT9LGA15B6Vj3X+UEhiHiZDJQEvRTi1m30FE7ma/ + An0DEamb7QF9KneDwXN4ykBjStBssl8QNhNoEv8E1QFxs/E7QqDA9G8ppoIC + gMRnoM+OYeYjXDwKAhLk8RQ6UliEYVT1TsCXRYHEaHjLUJ75XZAMuGzAFQPf + 7hpCWDAgBdd3gfhwA27uguqLX9qHqA/jAZj0QQtAAs+fAKoQrfAEAAA= + """, + """ + androidx/navigation/OuterComp.class: + H4sIAAAAAAAA/41RXU8TQRQ9M9uPZVmhVBQqAiqoFI0L6BMSE2w0blKXREgT + 06dpu8Gh2xmzM2145Mkf4j8gPpBoYoi++aOMdxeUGBPiTvaeuV/nzr33x8/P + XwE8wQOGeaF6qZa9w0CJkdwXVmoV7AxtnDb04H0ZjKFyIEYiSITaD3Y6B3HX + luEwlLakkvYZg7NSb/koouShgDJDwb6ThmGxeSnzUwZ3q5vkHB54luiG0e7e + dtR44eMKvDEyTjAsNXW6HxzEtpMKqUwglNI25zJBpG00TBKimmr2tSWy4HVs + RU9YQTY+GDnUJcvEWCbAwPpkP5SZtka33jpD/fTI9/gs93jl9MjjruN+/8Bn + T482+Brb5E7hednl3z6WeIVnCRsso5kIlaI2EmFM1gvDeG44mw7Dw0s7X/47 + uYxFesR/ZPye/W2G6UiMXmljG1rZVCdJnD7qU925N0Nl5SAO1Uga2Uni7Yth + 0V4auhczTDaliqPhoBOne4JiGKpN3RVJS6Qy08+N/sUrY0r2dvUw7cYvZear + nddp/VMF67S1Qj7qWrZEwmXSSoQVQk6nmGt3SQuyhRAWV0/gHufue+fBwGPc + J+mfBWCMqAAX43+SZyg6+8a/gL89gf8Jk8e5wcEKySq5b9E/T++4Q7hAWM9L + LGGVcJNopoi42oYT4mqI6RDXcJ2umAkxi1obzOAG5tooGngGNw1KBvMGC78A + XHUOHD4DAAA= + """, + """ androidx/navigation/TestAbstract.class: - H4sIAAAAAAAA/4VRy0oDMRQ9SduxjtXW+qovUBfiAxwVd4qgglioCirduEo7 - QWOnCUzS4rLf4h+4ElxIcelHiTejezeH87gJJzdf3+8fAA6wzLAidJwaFT9H - WvTVg3DK6OhOWnfSsi4VbTcCxlB5En0RJUI/RNetJ+ndHENwpLRyxwy5jc1m - CQUEIfIYYci7R2UZ1hr/XX7IMNnoGJcoHV1KJ2LhBHm8289RQeZh1AMYWIf8 - Z+XVLrF4j7oPB2HIazzkFWLDQXG9Nhzs8112Wvh8CXiF+7l95k9PX4n+hbHu - zGiXmiSR6U7HUdEzE0uGckNpedXrtmR6J1oJOdWGaYukKVLl9Z8Z3ppe2pbn - yov5m552qiubyipKT7Q2Lnugza+C0x7+avu1ENZIRZkGCltvKL4S4ZgnDDJz - GwuEpd8BjCLM8sUM57CU/RfDGGWle+TqGK9joo4yKkQxWUcVU/dgFtOYodwi - tJi1CH4AV4wNbewBAAA= + H4sIAAAAAAAA/4VRzS5DQRg9M21vuYqiqL8EC8HCReyIpCSiSZEg3VhNeydM + ezuT3Jk2ln0Wb2AlsZDG0kOJby57m5Pz883kzDdf3+8fAI6wxrAudJwaFT9H + WgzUo3DK6OheWldrWZeKtiuCMZQ7YiCiROjH6KbVkd7NMQQnSit3ypDb3mmW + UEAQIo8iQ949Kcuw2fjv8mOGmUbXuETp6Eo6EQsnyOO9QY4KMg/jHsDAuuQ/ + K6/2icUH1H00DENe5SEvExsNx7aqo+Eh32dnhc+XgJe5nztk/nTlWgwujXXn + RrvUJIlM97qOip6bWDJMN5SW1/1eS6b3opWQM9swbZE0Raq8/jPDO9NP2/JC + ebF029dO9WRTWUVpTWvjsgfa/AY47eGvtl8LYZVUlGmgsPuGsVciHEuEQWbu + Ypmw9DuAcYRZvpLhIlaz/2KYoKz0gFwdk3VM1TGNMlHM1DGLuQcwiwrmKbcI + LRYsgh8jsPDA7AEAAA== """, - """ + """ + androidx/navigation/TestAbstractComp$Companion.class: + H4sIAAAAAAAA/5VSy24TMRQ99qR5DAHSB5DwfgSpRaKTVOwKSCUIESktUqmy + 6QI5E1OczHiQ7URdZsWH8AddIbFAUZd8FOJ6EmBLN/d17rnXPvbPX99/AHiG + xwzbQg9NpoankRZTdSKcynR0JK3bG1hnROw6Wfq56Y3QBJXAGGojMRVRIvRJ + 9G4wkrErIWAoPldauZcMweZWv4oVFEMUUGIouE/KMrR6F1u1y9De7I0zlygd + jaZppLSTRoskei0/iklC7Zp4k9hlZl+YsTS7W/0Q3K9cb8b/wA9pjtJdLzaN + YfUPYV86MRROUI2n04DEY95UvAEDG1P9VPmsRdGwzdCcz8KQ13nIaxTNZ+Xz + L0F9PtvhLfaqVObnX4u8xn3vDvMTmv+jTQm3GCp/BWLYOBDTt5n1Z3cmSxJp + tseOBO9kQ8lwtae0PJikA2mOxCChylovi0XSF0b5fFmsdrWWppMIayU9U/g+ + m5hYvlEeaxxOtFOp7CurqHlP68zlZ7Nok9IFf33y3L823eIeZZHXg/zKk28o + n+XwfbLFvPgCD8hWFw2oIARqjKJLS/JT8nxJrp7l2nrC9UVxQcijy7hCWICH + lIU56TbuoIFH+cK7aOb/mzSg3toxgi5Wu1jrYh0bFOJal2beOAazqKNBuEVo + cdOi+Bu0qQF5HAMAAA== + """, + """ + androidx/navigation/TestAbstractComp.class: + H4sIAAAAAAAA/41RXU8TQRQ9s9vPdSstohZRAakIPLBATEwETbDG2KTUREkT + 06dpO+K02xkzM2145Lf4D4gPJJoY4qM/ynh3qfDgCy/3zP06994zv/98/wng + KTYYalz1jZb940jxiTziTmoVHQrr9rvWGd5zdT36kgdjKA/4hEcxV0fRu+5A + 9FwePkNuTyrpXjL4a+vtEFnkAmSQZ8i4z9IyrDavM2CXobDXi6dUm9dpqSWG + K0rlETJsrzWH2hFDNJiMIqmcMIrH0WvxiY9jalDUOe45bQ64GQqze7HszQAl + zDAUL8kYtq618dX43RAVzBbh4RbDSlObo2ggXNdwqWzEldIuZbBRS7vWOI7p + 1sq/XQ+E433uOMW80cSnT2GJKSYGDGxI8WOZeFv06m+TnucnYeBVvcArn58E + XsErrFbPT5b8HW+LPWf+q+yvrzmv7CXVOyzhmGvxyVttEwmc0XEszObQMSy8 + HysnR6KhJtLKbiz2rzalz6vrvmCYaUolWuNRV5hDTjUMs03d43GbG5n402DY + UEqYesytFdQcfNBj0xNvZJKbn85p/zcls0ySZdI75xMFCVfIyxHeJvQIs6lX + Iy9K1CDMbpyhcJqmH0+LgRdYJRteFKCIgLCAG5fNVaR6IvyB0kd2hvI3zJ2m + ER9PyAZUVyLGCi2ylnI/wjrhM4rfIca7HfgNVBuYb+AeFuiJ+w08wMMOmMUi + ljrIWAQWyxY5i8pfEw28C2ADAAA= + """, + """ androidx/navigation/TestClass.class: - H4sIAAAAAAAA/31Ry0oDMRQ9N7VTHavW+qrvrbpwrLhTBBXEQlVQ6cZV2gka - O01gkhaX/Rb/wJXgQopLP0q8M7p2cziPm5ubm6/v9w8AB1gnrEsTp1bHz5GR - A/0gvbYmulPOnyXSuRKIUHmSAxkl0jxE1+0n1fElFAjBkTbaHxMKW9utMooI - QoyhRBjzj9oRNpv/dj4kzDa71ifaRJfKy1h6yZ7oDQo8GmUwkQEI1GX/WWdq - j1lcJ2yMhmEoaiIUFWajYW003Bd7dFr8fAlERWRV+5Sdnb+SgwvLd1rjU5sk - Kt3tep7xzMaKMNPURl31e22V3sl2wk61aTsyaclUZ/rPDG9tP+2oc52J5Zu+ - 8bqnWtppTk+MsT5/m0MdglfwN3S2EcYaqyjXQHHnDeOvTASWGYPcXMUKY/m3 - ABMI83w1xyWs5f9EmOSsfI9CA1MNTDcwgwpTzDZQxdw9yGEeC5w7hA6LDsEP - tqQsxuQBAAA= + H4sIAAAAAAAA/31Ry0oDMRQ9N7VTHau2Put7qy4cFXeKoIJYqAoq3bhKO0HT + ThOYpMVlv8U/cCW4kOLSjxLvjK4lcDiPm+Tm5uv7/QPAIdYJ69LEqdXxc2Tk + QD9Kr62J7pXz54l0rgQiVDpyIKNEmsfoptVRbV9CgRAca6P9CaGwtd0so4gg + xBhKhDH/pB1hs/HvyUeEaqNrfaJNdKW8jKWX7IneoMCtUQYTGYBAXfafdab2 + mMX7hI3RMAxFTYSiwmw0rI2GB2KPzoqfL4GoiKzqgLK989dycGn5Tmt8apNE + pbtdzz2e21gRZhraqOt+r6XSe9lK2Jlt2LZMmjLVmf4zwzvbT9vqQmdi+bZv + vO6ppnaa01NjrM/f5rAPwSP4azqbCGONVZRroLjzhvFXJgLLjEFurvACyr8F + mECY56s5LmEt/yfCJGflBxTqmKpjuo4ZVJiiWscs5h5ADvNY4NwhdFh0CH4A + wpjRa+QBAAA= """, - """ + """ + androidx/navigation/TestClassComp$Companion.class: + H4sIAAAAAAAA/5VSy24TMRQ99qR5DAHSB5DwLgSpBbXTVOyKkCAIESktElTZ + dIGcxBQnMzaynajLrPgQ/qArJBYo6pKPQlxPCixRN/dx7j332sf++ev7DwBP + 8YjhidBDa9TwJNFiqo6FV0Ynh9L5diqca5vsczMYoQkvgTHURmIqklTo4+Rt + fyQHvoSIofhMaeWfM0Qbm70qllCMUUCJoeA/Kcew1b3Anj2G1kZ3bHyqdDKa + ZonSXlot0uSV/CgmqW8b7bydDLyx+8KOpd3b7MXgYd9qc/Cv+CHLqwzbF5vG + sPyHsC+9GAovCOPZNCLZWDCVYMDAxoSfqJDtUDRsMTTnszjmdR7zGkXzWfns + S1Sfz3b5DntZKvOzr0Ve46F3l4UJ6/8VpoRbDJW/6jCsHYjpG+PCwb01aSrt + 9tiT1G0zlAxXu0rLg0nWl/ZQ9FNCVrpmINKesCrk52C1o7W0+RJJDxS/NxM7 + kK9VqDXeTbRXmewpp6j5hdbG5wdzaJHMhXB38jy8M13hHmVJEIP80uNvKJ/m + 5ftkizmYYJ1sddGACmKgxii6dE7eIs/PydXTXNhAuL4AF4Q8uowrVIvwgLI4 + J93GHTTwMF94F838W5MG1Fs7QtTBcgcrHaxijUJc69DMG0dgDnU0qO4QO9x0 + KP4Ga0TtSRMDAAA= + """, + """ + androidx/navigation/TestClassComp.class: + H4sIAAAAAAAA/4VRXU8TQRQ9s9vPdZEWUYuogKACRheIiYkQE60xNik1UUJi + eJq2I067nTEz04ZHfov/gPhAoolpfPRHGe8sFR584OWeuefee+7H/P7z/SeA + p1hnWOKqa7TsHiWKj+Qhd1KrZE9YV0+5tXU9+FIEY6j0+IgnKVeHybt2T3Rc + ESFDYUcq6V4whKtr+zHyKETIociQc5+lZVhuXqq+zVDa6aQTnUeX5q94wxXx + RcQMm6vNvnZUnvRGg0QqJ4ziafJafOLD1NW1ss4MO06bXW76wmyfjXk1whSm + GcrnYgyPL5/1ovd2jCpmyghwzW+pzWHSE65tuFQ24Uppl5XbpKVda5imtGX1 + 36C7wvEud5y4YDAK6SOYN2VvwMD6xB9J723Qq7vJsDI+jqOgFkRBZXwcBaWg + Nj5eDLeCDfacha/yv74Wgkrgc7eYV5ht8dFbbf32zug0FeZJ3zHMvx8qJwei + oUbSynYqXl7MST9W113BMN2USrSGg7Ywe5xyGGaausPTfW6k9ydk3FBKmOww + goqjD3poOuKN9LG5SZ/9/7pgkw6Wy7ac8/cjXCavQHidMCDMZ94KeYm/BWF+ + /RSlkyx8f5Lsgw/IxmcJKCMiLOHKeXEN2TUR/8DUR3aKyjfMnmRMiIdkI8qb + IsUqDbKaad/DGuEz4m+Q4s0DhA3UGphr4Bbm6YnbDdzB3QMwiwUsHiBnEVks + WRQsqn8BnQupylIDAAA= + """, + """ androidx/navigation/TestClassWithArg.class: - H4sIAAAAAAAA/41Qz2sTQRh9M5tskjUxm1g1Ta31R5E2Bzct3pRiDIgLsUIt + H4sIAAAAAAAA/41Qz2sTQRh9M5tskjUxm1g1Tav1R5E2Bzct3pRiDIgLsUIt 8ZDTJLuk02xmYWcSeszf4tmLoAgeJHj0jxK/2RRPHoTd931v5vG++d6v399/ AHiGfYZ9oaIsldFVoMRSToWRqQrOY236idD6gzQXvWxaAmPwL8VSBIlQ0+Dd +DKemBIcBveFVNKcMBQOwsMhg3NwOKyiiJKHAsrERTZlYGEVHm5UwFElqbmQ @@ -437,23 +765,56 @@ object AbstractChildObject: TestAbstract() nYtxQifNQToRyVBk0vLrQ+99usgm8WtpyfbZQhk5j4dSS7rtKZWaPBaNI8qu kO/VtFFSx6kvwiXcI3ZCnFP1Ot9Q6ex8Re1zrnlAaDXALh4S3tmocBN1GxN1 1o1ShU//xiuw6VEtdr6g9umfNtWN4NqG41GO9/GY6sv8kUXcGsEJsRXidkhj - 71KLVohttEdgGju4N0JJo66xq+Hl6Gr4Go0/oUSxVaECAAA= + 71KLVohttEdgGjvYHaGkUde4p+Hl6Gr4Go0/q1d22KECAAA= """, - """ + """ + androidx/navigation/TestClassWithArgComp$Companion.class: + H4sIAAAAAAAA/5VSy24TMRQ9nknzGAKkDyDh/QhSikSniborQipBiEhpkWgV + Fl0gJzGtkxkb2U7UZVZ8CH/QFRILFHXJRyGuJwG2dHN97zn33Os5np+/vv8A + sIOnDC2uhkbL4Vms+FSecCe1io+Ede2EW/tButM9c9LW6ee6D1wRXQBjqIz4 + lMcJVyfxu/5IDFwBIUP+hVTSvWQIG5u9MlaQj5BDgSHnTqVl2Oleft0uQ7PR + HWuXSBWPpmkslRNG8SR+LT7xSeLaWllnJgOnzT43Y2F2N3sRAr92vT74R35M + M5Zh63LTGFb/CPaF40PuOGFBOg3JROZDyQcwsDHhZ9JX25QNmwz1+SyKgmoQ + BRXK5rPixZewOp+1gm32qlAMLr7mg0rge1vMT2j8rz8F3GEo/TWJYeOAT99q + 6+/vjE4SYbbGjoxv66FguN6VShxM0r4wR7yfELLW1QOe9LiRvl6C5Y5SwmS7 + BD1XdKgnZiDeSM/V3k+Uk6noSSupeU8p7bL7WTTJ7Zy3gM7Avzp9yQOqYu8J + nSvPvqF4ntEPKeYzsIlHFMuLBpQQARVG2ZWl+DmdwVJcPs/89YKbC3AhyLKr + uEZciMdURZnoLu6hhifZwvuoZ/86eUC9lWOEHax2sNbBOjYoxY0Ozbx1DGZR + RY14i8jitkX+N9lemKQoAwAA + """, + """ + androidx/navigation/TestClassWithArgComp.class: + H4sIAAAAAAAA/41S308TQRD+9vrrehY5KmIBf6CglqpcITwJIcEawyWlJkhq + DE/bdi3bXvfM3bbhkb/FZ1+IGhJNDPHRP8o4e1R40AeSu5mduZnv2/nmfv3+ + 9gPAOlYZylx1olB2jjzFR7LLtQyVty9iXQt4HL+V+nA76tbCwYccGIPb4yPu + BVx1vdetnmjrHFIM2U2ppN5iSJf95SZDqrzcLCCDnIM0bIp51GVgfgEOruVh + oUCl+lDGDJX6Vfk3iKcr9LaBIgKfwd5sB2PitauiLBnDFX3O4QbDarneDzWh + eL3RwJNKi0jxwHsp3vNhoGuhinU0bOsw2uVRX0Qb53PddDCNGYb8BRjD+pUH + ubzCRgElzBpB5hgW62HU9XpCtyIuVexxpUKdoMReI9SNYRCQBFN/77srNO9w + zSlnDUYpWiczJm8MSOw+5Y+kiap06tCmd86Oi45VshzLPTt26LFc27HsdOns + eCG3ZlXZc5Z7MVHMutacVU39/Ji13PTe1EVkU8tc2s64WYO3xgzLdIOPdsLY + CKWjMAhEtNLXDPN7Q6XlQPhqJGPZCsT25Sy0+VrYEQyTdalEYzhoiWifUw1D + sR62edDkkTTxOFnwlRJRoqGgZudNOIza4pU032bHPM1/WLBKoqZpeAuzRmO6 + a4WiLPnb5IvmRySfojiTZJ9QtEXVFnmncop8Zf4rJk4ShKfjThDqM7Iz51W4 + jkkjNp0MGu0GLr3nWJ7ZAflM5QsmPv0XpnBeMIax6VK5cXMJyRZR+I7pd+wU + tz5j/iTJpLCSEJL0hGgG8xLsZVTJ1yh/hxDvHiDl456PBR/38YCOWPSxhIcH + YDEe4fEB7BiTMcoxnMRmY7gxpmKU/gBa3QlZHAQAAA== + """, + """ androidx/navigation/TestGraph.class: - H4sIAAAAAAAA/31SXWsTQRQ9M/nabKONtZrEWqu2D60Pblt8swg1+LEQV7Ah - UPo0yQ7pJJsZ2Z2EPubJH+I/KD4UFCTomz9KvLMGfRDcgXvvOXPmMPfu/Pj5 - +SuAJ9hh2BQ6To2KLwItZmoorDI66MrMvkrF+/MKGEN9JGYiSIQeBm/7Izmw - FRQYykdKK/uMobC716uhhLKPIioMRXuuMoatzn+dnzJ4R4Mk9/DB3UEvjE66 - x1H7RQ3X4FeJvM6w3THpMBhJ20+F0lkgtDY298qCyNhomiRkdaMzNpbMgjfS - ilhYQRyfzArUJXOh6gIY2Jj4C+XQPlXxAcPOYu77vMl9XqdqMfe+f+DNxfyQ - 77PnFY9/+1jmde60h8w5rEdi9tpktm20TU2SyPTx2DJsvJtqqyYy1DOVqX4i - j//ek0bSNrFkWO0oLaPppC/TriANw1rHDETSE6lyeEn6J2aaDuRL5UBradz7 - xxYHNKFi3lbLDYzyPUJlynXKnFYpR1uEAtc85dKjK3iX+fb9pRho4AHF2m8B - qmQFeFj5c7hBavetfAE/vULtE1Yvc4LjYR43sZ2/J/oRZLB2hkKImyHWQ9zC - bSrRCNFE6wwswx1s0H4GP8PdDOVfjjOBnYwCAAA= + H4sIAAAAAAAA/31SXWsTQRQ9M/nabKONtbaJtVZtH9QHty2+WYQa/FhYV7Ah + IH2aZId0ks2M7E5CH/PkD/EfFB8KChL0zR8l3lmDPgjuwL33nDlzmHt3fvz8 + /BXAY+wxbAudZEYl54EWMzUUVhkddGVuX2bi/VkNjKE5EjMRpEIPgzf9kRzY + GkoM1SOllX3KULr/oNdABVUfZdQYyvZM5Qw70X+dnzB4R4O08PDB3UEvjE+6 + x3HneQNX4NeJvMqwG5lsGIyk7WdC6TwQWhtbeOVBbGw8TVOyuhaNjSWz4LW0 + IhFWEMcnsxJ1yVyouwAGNib+XDm0T1VywLC3mPs+b3GfN6lazL3vH3hrMT/k + ++xZzePfPlZ5kzvtIXMO67GYvTK57RhtM5OmMns0tgxbb6faqokM9Uzlqp/K + 47/3pJF0TCIZViOlZTyd9GXWFaRhWIvMQKQ9kSmHl6R/YqbZQL5QDrSXxr1/ + bHFAEyoXbbXdwCjfJlSl3KTMaVUKtEMocM1Trjy8hHdRbN9ZioEN3KXY+C1A + nawADyt/Dm+S2n0rX8DfXaLxCasXBcFxr4jb2C3eE/0IMlg7RSnE9RDrIW5g + g0pshmihfQqW4ya2aD+Hn+NWjuovG8mH6YwCAAA= """, - """ + """ androidx/navigation/TestInterface.class: H4sIAAAAAAAA/4WOz0rDQBDGv9lo08Z/qbZQj+LdtKU3TyKIgaqg4iWnbbIt 22x3IbsNPfa5PEjPPpS4qQ/gDHzzzQz8Zr5/Pr8ATNAnXHFdVEYWm0TzWi64 @@ -463,24 +824,18 @@ object AbstractChildObject: TestAbstract() czjAXzBc7PUcPV9HHn7os5UhSBGmaKfoIPIWRymOcZKBLE5xloFZxBbdX1Yg D5FVAQAA """, - """ + """ androidx/navigation/TestObject.class: H4sIAAAAAAAA/31SQWsTQRT+ZpJsNtto01ptYrVW20P14LbFm0WoQXEhrmBD - oPQ0yQ5xks0M7E5Cjzn5Q/wHxUNBQYLe/FHimzXqQXAX3nvfN9/72Pd2vv/4 - 9AXAE+wxbAudZEYlF6EWMzUUVhkddmVu3/RHcmCrYAyNkZiJMBV6GP5mSwze - sdLKPmMo7T/s1VGBF6CMKkPZvlM5w07n/9ZPGfzjQVqYBOCu04/i0+5J3H5R - xzUENSKvM+x2TDYMR9L2M6F0HgqtjS3M8jA2Np6mKVmtdcbGkln4WlqRCCuI - 45NZieZkLtRcAAMbE3+hHDqgKjlk2FvMg4A3ecAbVC3m/rf3vLmYH/ED9rzq - 868fPN7gTnvEnMNGLGavTG7bRtvMpKnMHo8tw9bbqbZqIiM9U7nqp/Lk73fS - TtomkQyrHaVlPJ30ZdYVpGFY75iBSHsiUw4vyeDUTLOBfKkcaC2Ne//Y4pA2 - VC7GarmFUd4m5FFuUOb0Vgp0j1DohqdceXQF/7I43lmKQe33KdZ/CVAjK8DH - yp/mTVK7Z+Uz+NkV6h+xelkQHA+KeBe7xY2iH0EG6+coRbgRYSPCTdyiEpsR - mmidg+W4jS06zxHkuJPD+wldvRYbjgIAAA== + oPQ0yQ5xks0M7E5Cjzn5Q/wHxUNBQYLe/FHimzXqQXAH3nvfN998s+/tfv/x + 6QuAJ9hj2BY6yYxKLkItZmoorDI67MrcvumP5MBWwRgaIzETYSr0MPzNlhi8 + Y6WVfcZQ2n/Yq6MCL0AZVYayfadyhp3O/62fMvjHg7QwCcDdST+KT7sncftF + HdcQ1Ii8zrDbMdkwHEnbz4TSeSi0NrYwy8PY2HiapmS11hkbS2bha2lFIqwg + jk9mJeqTuVBzAQxsTPyFcuiAquSQYW8xDwLe5AFvULWY+9/e8+ZifsQP2POq + z79+8HiDO+0Rcw4bsZi9MrltG20zk6Yyezy2DFtvp9qqiYz0TOWqn8qTv+9J + M2mbRDKsdpSW8XTSl1lXkIZhvWMGIu2JTDm8JINTM80G8qVyoLU07v1ji0Oa + ULloq+UGRnmbkEe5QZnTqhToHqHQNU+58ugK/mWxvbMUA03cp1j/JUCNrAAf + K38Ob5LaPSufwc+uUP+I1cuC4HhQxLvYLf4o+hBksH6OUoQbETYi3MQtKrEZ + 0SWtc7Act7FF+zmCHHdyeD8ByEcQb44CAAA= """ - ) - - override fun getDetector(): Detector = WrongStartDestinationTypeDetector() - - override fun getIssues(): MutableList = - mutableListOf(WrongStartDestinationTypeDetector.WrongStartDestinationType) -} + ) diff --git a/navigation/navigation-compose/api/2.8.0-beta06.txt b/navigation/navigation-compose/api/2.8.0-beta06.txt new file mode 100644 index 0000000000000..f4411f7dcdb69 --- /dev/null +++ b/navigation/navigation-compose/api/2.8.0-beta06.txt @@ -0,0 +1,94 @@ +// Signature format: 4.0 +package androidx.navigation.compose { + + @androidx.navigation.Navigator.Name("composable") public final class ComposeNavigator extends androidx.navigation.Navigator { + ctor public ComposeNavigator(); + method public androidx.navigation.compose.ComposeNavigator.Destination createDestination(); + method public kotlinx.coroutines.flow.StateFlow> getBackStack(); + method public void onTransitionComplete(androidx.navigation.NavBackStackEntry entry); + method public void prepareForTransition(androidx.navigation.NavBackStackEntry entry); + property public final kotlinx.coroutines.flow.StateFlow> backStack; + } + + @androidx.navigation.NavDestination.ClassType(Composable::class) public static final class ComposeNavigator.Destination extends androidx.navigation.NavDestination { + ctor @Deprecated public ComposeNavigator.Destination(androidx.navigation.compose.ComposeNavigator navigator, kotlin.jvm.functions.Function1 content); + ctor public ComposeNavigator.Destination(androidx.navigation.compose.ComposeNavigator navigator, kotlin.jvm.functions.Function2 content); + } + + @androidx.navigation.NavDestinationDsl public final class ComposeNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder { + ctor public ComposeNavigatorDestinationBuilder(androidx.navigation.compose.ComposeNavigator navigator, String route, kotlin.jvm.functions.Function2 content); + ctor public ComposeNavigatorDestinationBuilder(androidx.navigation.compose.ComposeNavigator navigator, kotlin.reflect.KClass route, java.util.Map> typeMap, kotlin.jvm.functions.Function2 content); + method public androidx.navigation.compose.ComposeNavigator.Destination build(); + method public kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? getEnterTransition(); + method public kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? getExitTransition(); + method public kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? getPopEnterTransition(); + method public kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? getPopExitTransition(); + method public kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? getSizeTransform(); + method protected androidx.navigation.compose.ComposeNavigator.Destination instantiateDestination(); + method public void setEnterTransition(kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>?); + method public void setExitTransition(kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>?); + method public void setPopEnterTransition(kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>?); + method public void setPopExitTransition(kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>?); + method public void setSizeTransform(kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>?); + property public final kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? enterTransition; + property public final kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? exitTransition; + property public final kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? popEnterTransition; + property public final kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? popExitTransition; + property public final kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform; + } + + public final class DialogHostKt { + method @androidx.compose.runtime.Composable public static void DialogHost(androidx.navigation.compose.DialogNavigator dialogNavigator); + } + + @androidx.navigation.Navigator.Name("dialog") public final class DialogNavigator extends androidx.navigation.Navigator { + ctor public DialogNavigator(); + method public androidx.navigation.compose.DialogNavigator.Destination createDestination(); + } + + @androidx.navigation.NavDestination.ClassType(Composable::class) public static final class DialogNavigator.Destination extends androidx.navigation.NavDestination implements androidx.navigation.FloatingWindow { + ctor public DialogNavigator.Destination(androidx.navigation.compose.DialogNavigator navigator, optional androidx.compose.ui.window.DialogProperties dialogProperties, kotlin.jvm.functions.Function1 content); + } + + @androidx.navigation.NavDestinationDsl public final class DialogNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder { + ctor public DialogNavigatorDestinationBuilder(androidx.navigation.compose.DialogNavigator navigator, String route, androidx.compose.ui.window.DialogProperties dialogProperties, kotlin.jvm.functions.Function1 content); + ctor public DialogNavigatorDestinationBuilder(androidx.navigation.compose.DialogNavigator navigator, kotlin.reflect.KClass route, java.util.Map> typeMap, androidx.compose.ui.window.DialogProperties dialogProperties, kotlin.jvm.functions.Function1 content); + method protected androidx.navigation.compose.DialogNavigator.Destination instantiateDestination(); + } + + public final class NavBackStackEntryProviderKt { + method @androidx.compose.runtime.Composable public static void LocalOwnersProvider(androidx.navigation.NavBackStackEntry, androidx.compose.runtime.saveable.SaveableStateHolder saveableStateHolder, kotlin.jvm.functions.Function0 content); + } + + public final class NavGraphBuilderKt { + method @Deprecated public static void composable(androidx.navigation.NavGraphBuilder, String route, optional java.util.List arguments, optional java.util.List deepLinks, kotlin.jvm.functions.Function1 content); + method public static void composable(androidx.navigation.NavGraphBuilder, String route, optional java.util.List arguments, optional java.util.List deepLinks, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? popExitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform, kotlin.jvm.functions.Function2 content); + method @Deprecated public static void composable(androidx.navigation.NavGraphBuilder, String route, optional java.util.List arguments, optional java.util.List deepLinks, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? popExitTransition, kotlin.jvm.functions.Function2 content); + method public static inline void composable(androidx.navigation.NavGraphBuilder, optional java.util.Map> typeMap, optional java.util.List deepLinks, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? popExitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform, kotlin.jvm.functions.Function2 content); + method public static void dialog(androidx.navigation.NavGraphBuilder, String route, optional java.util.List arguments, optional java.util.List deepLinks, optional androidx.compose.ui.window.DialogProperties dialogProperties, kotlin.jvm.functions.Function1 content); + method public static inline void dialog(androidx.navigation.NavGraphBuilder, optional java.util.Map> typeMap, optional java.util.List deepLinks, optional androidx.compose.ui.window.DialogProperties dialogProperties, kotlin.jvm.functions.Function1 content); + method public static inline void navigation(androidx.navigation.NavGraphBuilder, Object startDestination, optional java.util.Map> typeMap, optional java.util.List deepLinks, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? popExitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform, kotlin.jvm.functions.Function1 builder); + method @Deprecated public static void navigation(androidx.navigation.NavGraphBuilder, String startDestination, String route, optional java.util.List arguments, optional java.util.List deepLinks, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.EnterTransition?>? enterTransition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.ExitTransition?>? exitTransition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.EnterTransition?>? popEnterTransition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.ExitTransition?>? popExitTransition, kotlin.jvm.functions.Function1 builder); + method @Deprecated public static void navigation(androidx.navigation.NavGraphBuilder, String startDestination, String route, optional java.util.List arguments, optional java.util.List deepLinks, kotlin.jvm.functions.Function1 builder); + method public static void navigation(androidx.navigation.NavGraphBuilder, String startDestination, String route, optional java.util.List arguments, optional java.util.List deepLinks, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? popExitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform, kotlin.jvm.functions.Function1 builder); + method public static inline void navigation(androidx.navigation.NavGraphBuilder, kotlin.reflect.KClass startDestination, optional java.util.Map> typeMap, optional java.util.List deepLinks, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? popExitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform, kotlin.jvm.functions.Function1 builder); + } + + public final class NavHostControllerKt { + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State currentBackStackEntryAsState(androidx.navigation.NavController); + method @androidx.compose.runtime.Composable public static androidx.navigation.NavHostController rememberNavController(androidx.navigation.Navigator... navigators); + } + + public final class NavHostKt { + method @Deprecated @androidx.compose.runtime.Composable public static void NavHost(androidx.navigation.NavHostController navController, androidx.navigation.NavGraph graph, optional androidx.compose.ui.Modifier modifier); + method @Deprecated @androidx.compose.runtime.Composable public static void NavHost(androidx.navigation.NavHostController navController, androidx.navigation.NavGraph graph, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.Alignment contentAlignment, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.EnterTransition> enterTransition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.ExitTransition> exitTransition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.EnterTransition> popEnterTransition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.ExitTransition> popExitTransition); + method @androidx.compose.runtime.Composable public static void NavHost(androidx.navigation.NavHostController navController, androidx.navigation.NavGraph graph, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.Alignment contentAlignment, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition> enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition> exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition> popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition> popExitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform); + method @androidx.compose.runtime.Composable public static void NavHost(androidx.navigation.NavHostController navController, Object startDestination, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.Alignment contentAlignment, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition> enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition> exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition> popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition> popExitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform, kotlin.jvm.functions.Function1 builder); + method @Deprecated @androidx.compose.runtime.Composable public static void NavHost(androidx.navigation.NavHostController navController, String startDestination, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.Alignment contentAlignment, optional String? route, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.EnterTransition> enterTransition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.ExitTransition> exitTransition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.EnterTransition> popEnterTransition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.ExitTransition> popExitTransition, kotlin.jvm.functions.Function1 builder); + method @androidx.compose.runtime.Composable public static void NavHost(androidx.navigation.NavHostController navController, String startDestination, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.Alignment contentAlignment, optional String? route, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition> enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition> exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition> popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition> popExitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform, kotlin.jvm.functions.Function1 builder); + method @Deprecated @androidx.compose.runtime.Composable public static void NavHost(androidx.navigation.NavHostController navController, String startDestination, optional androidx.compose.ui.Modifier modifier, optional String? route, kotlin.jvm.functions.Function1 builder); + method @androidx.compose.runtime.Composable public static void NavHost(androidx.navigation.NavHostController navController, kotlin.reflect.KClass startDestination, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.Alignment contentAlignment, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition> enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition> exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition> popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition> popExitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform, kotlin.jvm.functions.Function1 builder); + } + +} + diff --git a/navigation/navigation-compose/api/2.8.0-beta07.txt b/navigation/navigation-compose/api/2.8.0-beta07.txt new file mode 100644 index 0000000000000..f4411f7dcdb69 --- /dev/null +++ b/navigation/navigation-compose/api/2.8.0-beta07.txt @@ -0,0 +1,94 @@ +// Signature format: 4.0 +package androidx.navigation.compose { + + @androidx.navigation.Navigator.Name("composable") public final class ComposeNavigator extends androidx.navigation.Navigator { + ctor public ComposeNavigator(); + method public androidx.navigation.compose.ComposeNavigator.Destination createDestination(); + method public kotlinx.coroutines.flow.StateFlow> getBackStack(); + method public void onTransitionComplete(androidx.navigation.NavBackStackEntry entry); + method public void prepareForTransition(androidx.navigation.NavBackStackEntry entry); + property public final kotlinx.coroutines.flow.StateFlow> backStack; + } + + @androidx.navigation.NavDestination.ClassType(Composable::class) public static final class ComposeNavigator.Destination extends androidx.navigation.NavDestination { + ctor @Deprecated public ComposeNavigator.Destination(androidx.navigation.compose.ComposeNavigator navigator, kotlin.jvm.functions.Function1 content); + ctor public ComposeNavigator.Destination(androidx.navigation.compose.ComposeNavigator navigator, kotlin.jvm.functions.Function2 content); + } + + @androidx.navigation.NavDestinationDsl public final class ComposeNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder { + ctor public ComposeNavigatorDestinationBuilder(androidx.navigation.compose.ComposeNavigator navigator, String route, kotlin.jvm.functions.Function2 content); + ctor public ComposeNavigatorDestinationBuilder(androidx.navigation.compose.ComposeNavigator navigator, kotlin.reflect.KClass route, java.util.Map> typeMap, kotlin.jvm.functions.Function2 content); + method public androidx.navigation.compose.ComposeNavigator.Destination build(); + method public kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? getEnterTransition(); + method public kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? getExitTransition(); + method public kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? getPopEnterTransition(); + method public kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? getPopExitTransition(); + method public kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? getSizeTransform(); + method protected androidx.navigation.compose.ComposeNavigator.Destination instantiateDestination(); + method public void setEnterTransition(kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>?); + method public void setExitTransition(kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>?); + method public void setPopEnterTransition(kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>?); + method public void setPopExitTransition(kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>?); + method public void setSizeTransform(kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>?); + property public final kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? enterTransition; + property public final kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? exitTransition; + property public final kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? popEnterTransition; + property public final kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? popExitTransition; + property public final kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform; + } + + public final class DialogHostKt { + method @androidx.compose.runtime.Composable public static void DialogHost(androidx.navigation.compose.DialogNavigator dialogNavigator); + } + + @androidx.navigation.Navigator.Name("dialog") public final class DialogNavigator extends androidx.navigation.Navigator { + ctor public DialogNavigator(); + method public androidx.navigation.compose.DialogNavigator.Destination createDestination(); + } + + @androidx.navigation.NavDestination.ClassType(Composable::class) public static final class DialogNavigator.Destination extends androidx.navigation.NavDestination implements androidx.navigation.FloatingWindow { + ctor public DialogNavigator.Destination(androidx.navigation.compose.DialogNavigator navigator, optional androidx.compose.ui.window.DialogProperties dialogProperties, kotlin.jvm.functions.Function1 content); + } + + @androidx.navigation.NavDestinationDsl public final class DialogNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder { + ctor public DialogNavigatorDestinationBuilder(androidx.navigation.compose.DialogNavigator navigator, String route, androidx.compose.ui.window.DialogProperties dialogProperties, kotlin.jvm.functions.Function1 content); + ctor public DialogNavigatorDestinationBuilder(androidx.navigation.compose.DialogNavigator navigator, kotlin.reflect.KClass route, java.util.Map> typeMap, androidx.compose.ui.window.DialogProperties dialogProperties, kotlin.jvm.functions.Function1 content); + method protected androidx.navigation.compose.DialogNavigator.Destination instantiateDestination(); + } + + public final class NavBackStackEntryProviderKt { + method @androidx.compose.runtime.Composable public static void LocalOwnersProvider(androidx.navigation.NavBackStackEntry, androidx.compose.runtime.saveable.SaveableStateHolder saveableStateHolder, kotlin.jvm.functions.Function0 content); + } + + public final class NavGraphBuilderKt { + method @Deprecated public static void composable(androidx.navigation.NavGraphBuilder, String route, optional java.util.List arguments, optional java.util.List deepLinks, kotlin.jvm.functions.Function1 content); + method public static void composable(androidx.navigation.NavGraphBuilder, String route, optional java.util.List arguments, optional java.util.List deepLinks, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? popExitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform, kotlin.jvm.functions.Function2 content); + method @Deprecated public static void composable(androidx.navigation.NavGraphBuilder, String route, optional java.util.List arguments, optional java.util.List deepLinks, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? popExitTransition, kotlin.jvm.functions.Function2 content); + method public static inline void composable(androidx.navigation.NavGraphBuilder, optional java.util.Map> typeMap, optional java.util.List deepLinks, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? popExitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform, kotlin.jvm.functions.Function2 content); + method public static void dialog(androidx.navigation.NavGraphBuilder, String route, optional java.util.List arguments, optional java.util.List deepLinks, optional androidx.compose.ui.window.DialogProperties dialogProperties, kotlin.jvm.functions.Function1 content); + method public static inline void dialog(androidx.navigation.NavGraphBuilder, optional java.util.Map> typeMap, optional java.util.List deepLinks, optional androidx.compose.ui.window.DialogProperties dialogProperties, kotlin.jvm.functions.Function1 content); + method public static inline void navigation(androidx.navigation.NavGraphBuilder, Object startDestination, optional java.util.Map> typeMap, optional java.util.List deepLinks, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? popExitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform, kotlin.jvm.functions.Function1 builder); + method @Deprecated public static void navigation(androidx.navigation.NavGraphBuilder, String startDestination, String route, optional java.util.List arguments, optional java.util.List deepLinks, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.EnterTransition?>? enterTransition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.ExitTransition?>? exitTransition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.EnterTransition?>? popEnterTransition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.ExitTransition?>? popExitTransition, kotlin.jvm.functions.Function1 builder); + method @Deprecated public static void navigation(androidx.navigation.NavGraphBuilder, String startDestination, String route, optional java.util.List arguments, optional java.util.List deepLinks, kotlin.jvm.functions.Function1 builder); + method public static void navigation(androidx.navigation.NavGraphBuilder, String startDestination, String route, optional java.util.List arguments, optional java.util.List deepLinks, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? popExitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform, kotlin.jvm.functions.Function1 builder); + method public static inline void navigation(androidx.navigation.NavGraphBuilder, kotlin.reflect.KClass startDestination, optional java.util.Map> typeMap, optional java.util.List deepLinks, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? popExitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform, kotlin.jvm.functions.Function1 builder); + } + + public final class NavHostControllerKt { + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State currentBackStackEntryAsState(androidx.navigation.NavController); + method @androidx.compose.runtime.Composable public static androidx.navigation.NavHostController rememberNavController(androidx.navigation.Navigator... navigators); + } + + public final class NavHostKt { + method @Deprecated @androidx.compose.runtime.Composable public static void NavHost(androidx.navigation.NavHostController navController, androidx.navigation.NavGraph graph, optional androidx.compose.ui.Modifier modifier); + method @Deprecated @androidx.compose.runtime.Composable public static void NavHost(androidx.navigation.NavHostController navController, androidx.navigation.NavGraph graph, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.Alignment contentAlignment, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.EnterTransition> enterTransition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.ExitTransition> exitTransition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.EnterTransition> popEnterTransition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.ExitTransition> popExitTransition); + method @androidx.compose.runtime.Composable public static void NavHost(androidx.navigation.NavHostController navController, androidx.navigation.NavGraph graph, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.Alignment contentAlignment, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition> enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition> exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition> popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition> popExitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform); + method @androidx.compose.runtime.Composable public static void NavHost(androidx.navigation.NavHostController navController, Object startDestination, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.Alignment contentAlignment, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition> enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition> exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition> popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition> popExitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform, kotlin.jvm.functions.Function1 builder); + method @Deprecated @androidx.compose.runtime.Composable public static void NavHost(androidx.navigation.NavHostController navController, String startDestination, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.Alignment contentAlignment, optional String? route, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.EnterTransition> enterTransition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.ExitTransition> exitTransition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.EnterTransition> popEnterTransition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.ExitTransition> popExitTransition, kotlin.jvm.functions.Function1 builder); + method @androidx.compose.runtime.Composable public static void NavHost(androidx.navigation.NavHostController navController, String startDestination, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.Alignment contentAlignment, optional String? route, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition> enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition> exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition> popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition> popExitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform, kotlin.jvm.functions.Function1 builder); + method @Deprecated @androidx.compose.runtime.Composable public static void NavHost(androidx.navigation.NavHostController navController, String startDestination, optional androidx.compose.ui.Modifier modifier, optional String? route, kotlin.jvm.functions.Function1 builder); + method @androidx.compose.runtime.Composable public static void NavHost(androidx.navigation.NavHostController navController, kotlin.reflect.KClass startDestination, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.Alignment contentAlignment, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition> enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition> exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition> popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition> popExitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform, kotlin.jvm.functions.Function1 builder); + } + +} + diff --git a/navigation/navigation-compose/api/res-2.8.0-beta06.txt b/navigation/navigation-compose/api/res-2.8.0-beta06.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/navigation/navigation-compose/api/res-2.8.0-beta07.txt b/navigation/navigation-compose/api/res-2.8.0-beta07.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/navigation/navigation-compose/api/restricted_2.8.0-beta06.txt b/navigation/navigation-compose/api/restricted_2.8.0-beta06.txt new file mode 100644 index 0000000000000..f4411f7dcdb69 --- /dev/null +++ b/navigation/navigation-compose/api/restricted_2.8.0-beta06.txt @@ -0,0 +1,94 @@ +// Signature format: 4.0 +package androidx.navigation.compose { + + @androidx.navigation.Navigator.Name("composable") public final class ComposeNavigator extends androidx.navigation.Navigator { + ctor public ComposeNavigator(); + method public androidx.navigation.compose.ComposeNavigator.Destination createDestination(); + method public kotlinx.coroutines.flow.StateFlow> getBackStack(); + method public void onTransitionComplete(androidx.navigation.NavBackStackEntry entry); + method public void prepareForTransition(androidx.navigation.NavBackStackEntry entry); + property public final kotlinx.coroutines.flow.StateFlow> backStack; + } + + @androidx.navigation.NavDestination.ClassType(Composable::class) public static final class ComposeNavigator.Destination extends androidx.navigation.NavDestination { + ctor @Deprecated public ComposeNavigator.Destination(androidx.navigation.compose.ComposeNavigator navigator, kotlin.jvm.functions.Function1 content); + ctor public ComposeNavigator.Destination(androidx.navigation.compose.ComposeNavigator navigator, kotlin.jvm.functions.Function2 content); + } + + @androidx.navigation.NavDestinationDsl public final class ComposeNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder { + ctor public ComposeNavigatorDestinationBuilder(androidx.navigation.compose.ComposeNavigator navigator, String route, kotlin.jvm.functions.Function2 content); + ctor public ComposeNavigatorDestinationBuilder(androidx.navigation.compose.ComposeNavigator navigator, kotlin.reflect.KClass route, java.util.Map> typeMap, kotlin.jvm.functions.Function2 content); + method public androidx.navigation.compose.ComposeNavigator.Destination build(); + method public kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? getEnterTransition(); + method public kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? getExitTransition(); + method public kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? getPopEnterTransition(); + method public kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? getPopExitTransition(); + method public kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? getSizeTransform(); + method protected androidx.navigation.compose.ComposeNavigator.Destination instantiateDestination(); + method public void setEnterTransition(kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>?); + method public void setExitTransition(kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>?); + method public void setPopEnterTransition(kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>?); + method public void setPopExitTransition(kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>?); + method public void setSizeTransform(kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>?); + property public final kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? enterTransition; + property public final kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? exitTransition; + property public final kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? popEnterTransition; + property public final kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? popExitTransition; + property public final kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform; + } + + public final class DialogHostKt { + method @androidx.compose.runtime.Composable public static void DialogHost(androidx.navigation.compose.DialogNavigator dialogNavigator); + } + + @androidx.navigation.Navigator.Name("dialog") public final class DialogNavigator extends androidx.navigation.Navigator { + ctor public DialogNavigator(); + method public androidx.navigation.compose.DialogNavigator.Destination createDestination(); + } + + @androidx.navigation.NavDestination.ClassType(Composable::class) public static final class DialogNavigator.Destination extends androidx.navigation.NavDestination implements androidx.navigation.FloatingWindow { + ctor public DialogNavigator.Destination(androidx.navigation.compose.DialogNavigator navigator, optional androidx.compose.ui.window.DialogProperties dialogProperties, kotlin.jvm.functions.Function1 content); + } + + @androidx.navigation.NavDestinationDsl public final class DialogNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder { + ctor public DialogNavigatorDestinationBuilder(androidx.navigation.compose.DialogNavigator navigator, String route, androidx.compose.ui.window.DialogProperties dialogProperties, kotlin.jvm.functions.Function1 content); + ctor public DialogNavigatorDestinationBuilder(androidx.navigation.compose.DialogNavigator navigator, kotlin.reflect.KClass route, java.util.Map> typeMap, androidx.compose.ui.window.DialogProperties dialogProperties, kotlin.jvm.functions.Function1 content); + method protected androidx.navigation.compose.DialogNavigator.Destination instantiateDestination(); + } + + public final class NavBackStackEntryProviderKt { + method @androidx.compose.runtime.Composable public static void LocalOwnersProvider(androidx.navigation.NavBackStackEntry, androidx.compose.runtime.saveable.SaveableStateHolder saveableStateHolder, kotlin.jvm.functions.Function0 content); + } + + public final class NavGraphBuilderKt { + method @Deprecated public static void composable(androidx.navigation.NavGraphBuilder, String route, optional java.util.List arguments, optional java.util.List deepLinks, kotlin.jvm.functions.Function1 content); + method public static void composable(androidx.navigation.NavGraphBuilder, String route, optional java.util.List arguments, optional java.util.List deepLinks, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? popExitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform, kotlin.jvm.functions.Function2 content); + method @Deprecated public static void composable(androidx.navigation.NavGraphBuilder, String route, optional java.util.List arguments, optional java.util.List deepLinks, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? popExitTransition, kotlin.jvm.functions.Function2 content); + method public static inline void composable(androidx.navigation.NavGraphBuilder, optional java.util.Map> typeMap, optional java.util.List deepLinks, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? popExitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform, kotlin.jvm.functions.Function2 content); + method public static void dialog(androidx.navigation.NavGraphBuilder, String route, optional java.util.List arguments, optional java.util.List deepLinks, optional androidx.compose.ui.window.DialogProperties dialogProperties, kotlin.jvm.functions.Function1 content); + method public static inline void dialog(androidx.navigation.NavGraphBuilder, optional java.util.Map> typeMap, optional java.util.List deepLinks, optional androidx.compose.ui.window.DialogProperties dialogProperties, kotlin.jvm.functions.Function1 content); + method public static inline void navigation(androidx.navigation.NavGraphBuilder, Object startDestination, optional java.util.Map> typeMap, optional java.util.List deepLinks, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? popExitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform, kotlin.jvm.functions.Function1 builder); + method @Deprecated public static void navigation(androidx.navigation.NavGraphBuilder, String startDestination, String route, optional java.util.List arguments, optional java.util.List deepLinks, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.EnterTransition?>? enterTransition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.ExitTransition?>? exitTransition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.EnterTransition?>? popEnterTransition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.ExitTransition?>? popExitTransition, kotlin.jvm.functions.Function1 builder); + method @Deprecated public static void navigation(androidx.navigation.NavGraphBuilder, String startDestination, String route, optional java.util.List arguments, optional java.util.List deepLinks, kotlin.jvm.functions.Function1 builder); + method public static void navigation(androidx.navigation.NavGraphBuilder, String startDestination, String route, optional java.util.List arguments, optional java.util.List deepLinks, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? popExitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform, kotlin.jvm.functions.Function1 builder); + method public static inline void navigation(androidx.navigation.NavGraphBuilder, kotlin.reflect.KClass startDestination, optional java.util.Map> typeMap, optional java.util.List deepLinks, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? popExitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform, kotlin.jvm.functions.Function1 builder); + } + + public final class NavHostControllerKt { + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State currentBackStackEntryAsState(androidx.navigation.NavController); + method @androidx.compose.runtime.Composable public static androidx.navigation.NavHostController rememberNavController(androidx.navigation.Navigator... navigators); + } + + public final class NavHostKt { + method @Deprecated @androidx.compose.runtime.Composable public static void NavHost(androidx.navigation.NavHostController navController, androidx.navigation.NavGraph graph, optional androidx.compose.ui.Modifier modifier); + method @Deprecated @androidx.compose.runtime.Composable public static void NavHost(androidx.navigation.NavHostController navController, androidx.navigation.NavGraph graph, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.Alignment contentAlignment, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.EnterTransition> enterTransition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.ExitTransition> exitTransition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.EnterTransition> popEnterTransition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.ExitTransition> popExitTransition); + method @androidx.compose.runtime.Composable public static void NavHost(androidx.navigation.NavHostController navController, androidx.navigation.NavGraph graph, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.Alignment contentAlignment, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition> enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition> exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition> popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition> popExitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform); + method @androidx.compose.runtime.Composable public static void NavHost(androidx.navigation.NavHostController navController, Object startDestination, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.Alignment contentAlignment, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition> enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition> exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition> popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition> popExitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform, kotlin.jvm.functions.Function1 builder); + method @Deprecated @androidx.compose.runtime.Composable public static void NavHost(androidx.navigation.NavHostController navController, String startDestination, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.Alignment contentAlignment, optional String? route, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.EnterTransition> enterTransition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.ExitTransition> exitTransition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.EnterTransition> popEnterTransition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.ExitTransition> popExitTransition, kotlin.jvm.functions.Function1 builder); + method @androidx.compose.runtime.Composable public static void NavHost(androidx.navigation.NavHostController navController, String startDestination, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.Alignment contentAlignment, optional String? route, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition> enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition> exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition> popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition> popExitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform, kotlin.jvm.functions.Function1 builder); + method @Deprecated @androidx.compose.runtime.Composable public static void NavHost(androidx.navigation.NavHostController navController, String startDestination, optional androidx.compose.ui.Modifier modifier, optional String? route, kotlin.jvm.functions.Function1 builder); + method @androidx.compose.runtime.Composable public static void NavHost(androidx.navigation.NavHostController navController, kotlin.reflect.KClass startDestination, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.Alignment contentAlignment, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition> enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition> exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition> popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition> popExitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform, kotlin.jvm.functions.Function1 builder); + } + +} + diff --git a/navigation/navigation-compose/api/restricted_2.8.0-beta07.txt b/navigation/navigation-compose/api/restricted_2.8.0-beta07.txt new file mode 100644 index 0000000000000..f4411f7dcdb69 --- /dev/null +++ b/navigation/navigation-compose/api/restricted_2.8.0-beta07.txt @@ -0,0 +1,94 @@ +// Signature format: 4.0 +package androidx.navigation.compose { + + @androidx.navigation.Navigator.Name("composable") public final class ComposeNavigator extends androidx.navigation.Navigator { + ctor public ComposeNavigator(); + method public androidx.navigation.compose.ComposeNavigator.Destination createDestination(); + method public kotlinx.coroutines.flow.StateFlow> getBackStack(); + method public void onTransitionComplete(androidx.navigation.NavBackStackEntry entry); + method public void prepareForTransition(androidx.navigation.NavBackStackEntry entry); + property public final kotlinx.coroutines.flow.StateFlow> backStack; + } + + @androidx.navigation.NavDestination.ClassType(Composable::class) public static final class ComposeNavigator.Destination extends androidx.navigation.NavDestination { + ctor @Deprecated public ComposeNavigator.Destination(androidx.navigation.compose.ComposeNavigator navigator, kotlin.jvm.functions.Function1 content); + ctor public ComposeNavigator.Destination(androidx.navigation.compose.ComposeNavigator navigator, kotlin.jvm.functions.Function2 content); + } + + @androidx.navigation.NavDestinationDsl public final class ComposeNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder { + ctor public ComposeNavigatorDestinationBuilder(androidx.navigation.compose.ComposeNavigator navigator, String route, kotlin.jvm.functions.Function2 content); + ctor public ComposeNavigatorDestinationBuilder(androidx.navigation.compose.ComposeNavigator navigator, kotlin.reflect.KClass route, java.util.Map> typeMap, kotlin.jvm.functions.Function2 content); + method public androidx.navigation.compose.ComposeNavigator.Destination build(); + method public kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? getEnterTransition(); + method public kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? getExitTransition(); + method public kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? getPopEnterTransition(); + method public kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? getPopExitTransition(); + method public kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? getSizeTransform(); + method protected androidx.navigation.compose.ComposeNavigator.Destination instantiateDestination(); + method public void setEnterTransition(kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>?); + method public void setExitTransition(kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>?); + method public void setPopEnterTransition(kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>?); + method public void setPopExitTransition(kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>?); + method public void setSizeTransform(kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>?); + property public final kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? enterTransition; + property public final kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? exitTransition; + property public final kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? popEnterTransition; + property public final kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? popExitTransition; + property public final kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform; + } + + public final class DialogHostKt { + method @androidx.compose.runtime.Composable public static void DialogHost(androidx.navigation.compose.DialogNavigator dialogNavigator); + } + + @androidx.navigation.Navigator.Name("dialog") public final class DialogNavigator extends androidx.navigation.Navigator { + ctor public DialogNavigator(); + method public androidx.navigation.compose.DialogNavigator.Destination createDestination(); + } + + @androidx.navigation.NavDestination.ClassType(Composable::class) public static final class DialogNavigator.Destination extends androidx.navigation.NavDestination implements androidx.navigation.FloatingWindow { + ctor public DialogNavigator.Destination(androidx.navigation.compose.DialogNavigator navigator, optional androidx.compose.ui.window.DialogProperties dialogProperties, kotlin.jvm.functions.Function1 content); + } + + @androidx.navigation.NavDestinationDsl public final class DialogNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder { + ctor public DialogNavigatorDestinationBuilder(androidx.navigation.compose.DialogNavigator navigator, String route, androidx.compose.ui.window.DialogProperties dialogProperties, kotlin.jvm.functions.Function1 content); + ctor public DialogNavigatorDestinationBuilder(androidx.navigation.compose.DialogNavigator navigator, kotlin.reflect.KClass route, java.util.Map> typeMap, androidx.compose.ui.window.DialogProperties dialogProperties, kotlin.jvm.functions.Function1 content); + method protected androidx.navigation.compose.DialogNavigator.Destination instantiateDestination(); + } + + public final class NavBackStackEntryProviderKt { + method @androidx.compose.runtime.Composable public static void LocalOwnersProvider(androidx.navigation.NavBackStackEntry, androidx.compose.runtime.saveable.SaveableStateHolder saveableStateHolder, kotlin.jvm.functions.Function0 content); + } + + public final class NavGraphBuilderKt { + method @Deprecated public static void composable(androidx.navigation.NavGraphBuilder, String route, optional java.util.List arguments, optional java.util.List deepLinks, kotlin.jvm.functions.Function1 content); + method public static void composable(androidx.navigation.NavGraphBuilder, String route, optional java.util.List arguments, optional java.util.List deepLinks, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? popExitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform, kotlin.jvm.functions.Function2 content); + method @Deprecated public static void composable(androidx.navigation.NavGraphBuilder, String route, optional java.util.List arguments, optional java.util.List deepLinks, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? popExitTransition, kotlin.jvm.functions.Function2 content); + method public static inline void composable(androidx.navigation.NavGraphBuilder, optional java.util.Map> typeMap, optional java.util.List deepLinks, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? popExitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform, kotlin.jvm.functions.Function2 content); + method public static void dialog(androidx.navigation.NavGraphBuilder, String route, optional java.util.List arguments, optional java.util.List deepLinks, optional androidx.compose.ui.window.DialogProperties dialogProperties, kotlin.jvm.functions.Function1 content); + method public static inline void dialog(androidx.navigation.NavGraphBuilder, optional java.util.Map> typeMap, optional java.util.List deepLinks, optional androidx.compose.ui.window.DialogProperties dialogProperties, kotlin.jvm.functions.Function1 content); + method public static inline void navigation(androidx.navigation.NavGraphBuilder, Object startDestination, optional java.util.Map> typeMap, optional java.util.List deepLinks, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? popExitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform, kotlin.jvm.functions.Function1 builder); + method @Deprecated public static void navigation(androidx.navigation.NavGraphBuilder, String startDestination, String route, optional java.util.List arguments, optional java.util.List deepLinks, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.EnterTransition?>? enterTransition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.ExitTransition?>? exitTransition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.EnterTransition?>? popEnterTransition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.ExitTransition?>? popExitTransition, kotlin.jvm.functions.Function1 builder); + method @Deprecated public static void navigation(androidx.navigation.NavGraphBuilder, String startDestination, String route, optional java.util.List arguments, optional java.util.List deepLinks, kotlin.jvm.functions.Function1 builder); + method public static void navigation(androidx.navigation.NavGraphBuilder, String startDestination, String route, optional java.util.List arguments, optional java.util.List deepLinks, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? popExitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform, kotlin.jvm.functions.Function1 builder); + method public static inline void navigation(androidx.navigation.NavGraphBuilder, kotlin.reflect.KClass startDestination, optional java.util.Map> typeMap, optional java.util.List deepLinks, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition?>? popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition?>? popExitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform, kotlin.jvm.functions.Function1 builder); + } + + public final class NavHostControllerKt { + method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State currentBackStackEntryAsState(androidx.navigation.NavController); + method @androidx.compose.runtime.Composable public static androidx.navigation.NavHostController rememberNavController(androidx.navigation.Navigator... navigators); + } + + public final class NavHostKt { + method @Deprecated @androidx.compose.runtime.Composable public static void NavHost(androidx.navigation.NavHostController navController, androidx.navigation.NavGraph graph, optional androidx.compose.ui.Modifier modifier); + method @Deprecated @androidx.compose.runtime.Composable public static void NavHost(androidx.navigation.NavHostController navController, androidx.navigation.NavGraph graph, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.Alignment contentAlignment, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.EnterTransition> enterTransition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.ExitTransition> exitTransition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.EnterTransition> popEnterTransition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.ExitTransition> popExitTransition); + method @androidx.compose.runtime.Composable public static void NavHost(androidx.navigation.NavHostController navController, androidx.navigation.NavGraph graph, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.Alignment contentAlignment, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition> enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition> exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition> popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition> popExitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform); + method @androidx.compose.runtime.Composable public static void NavHost(androidx.navigation.NavHostController navController, Object startDestination, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.Alignment contentAlignment, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition> enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition> exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition> popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition> popExitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform, kotlin.jvm.functions.Function1 builder); + method @Deprecated @androidx.compose.runtime.Composable public static void NavHost(androidx.navigation.NavHostController navController, String startDestination, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.Alignment contentAlignment, optional String? route, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.EnterTransition> enterTransition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.ExitTransition> exitTransition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.EnterTransition> popEnterTransition, optional kotlin.jvm.functions.Function1,? extends androidx.compose.animation.ExitTransition> popExitTransition, kotlin.jvm.functions.Function1 builder); + method @androidx.compose.runtime.Composable public static void NavHost(androidx.navigation.NavHostController navController, String startDestination, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.Alignment contentAlignment, optional String? route, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition> enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition> exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition> popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition> popExitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform, kotlin.jvm.functions.Function1 builder); + method @Deprecated @androidx.compose.runtime.Composable public static void NavHost(androidx.navigation.NavHostController navController, String startDestination, optional androidx.compose.ui.Modifier modifier, optional String? route, kotlin.jvm.functions.Function1 builder); + method @androidx.compose.runtime.Composable public static void NavHost(androidx.navigation.NavHostController navController, kotlin.reflect.KClass startDestination, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.Alignment contentAlignment, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition> enterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition> exitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.EnterTransition> popEnterTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.ExitTransition> popExitTransition, optional kotlin.jvm.functions.Function1,androidx.compose.animation.SizeTransform?>? sizeTransform, kotlin.jvm.functions.Function1 builder); + } + +} + diff --git a/navigation/navigation-compose/integration-tests/navigation-demos/build.gradle b/navigation/navigation-compose/integration-tests/navigation-demos/build.gradle index 03a6acafda3a8..9804428e18d7a 100644 --- a/navigation/navigation-compose/integration-tests/navigation-demos/build.gradle +++ b/navigation/navigation-compose/integration-tests/navigation-demos/build.gradle @@ -38,6 +38,7 @@ dependencies { implementation(project(":compose:integration-tests:demos:common")) implementation(project(":compose:foundation:foundation")) implementation(project(":compose:material:material")) + implementation("androidx.compose.material:material-icons-core:1.6.7") implementation(project(":navigation:navigation-compose")) implementation(project(":navigation:navigation-compose:navigation-compose-samples")) } diff --git a/navigation/navigation-dynamic-features-fragment/api/2.8.0-beta06.txt b/navigation/navigation-dynamic-features-fragment/api/2.8.0-beta06.txt new file mode 100644 index 0000000000000..575de0b67dbfa --- /dev/null +++ b/navigation/navigation-dynamic-features-fragment/api/2.8.0-beta06.txt @@ -0,0 +1,73 @@ +// Signature format: 4.0 +package androidx.navigation.dynamicfeatures.fragment { + + @androidx.navigation.Navigator.Name("fragment") public final class DynamicFragmentNavigator extends androidx.navigation.fragment.FragmentNavigator { + ctor public DynamicFragmentNavigator(android.content.Context context, androidx.fragment.app.FragmentManager manager, int containerId, androidx.navigation.dynamicfeatures.DynamicInstallManager installManager); + method public androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigator.Destination createDestination(); + } + + public static final class DynamicFragmentNavigator.Destination extends androidx.navigation.fragment.FragmentNavigator.Destination { + ctor public DynamicFragmentNavigator.Destination(androidx.navigation.Navigator fragmentNavigator); + ctor public DynamicFragmentNavigator.Destination(androidx.navigation.NavigatorProvider navigatorProvider); + method public String? getModuleName(); + method public void setModuleName(String?); + property public final String? moduleName; + } + + @androidx.navigation.NavDestinationDsl public final class DynamicFragmentNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder { + ctor @Deprecated public DynamicFragmentNavigatorDestinationBuilder(androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigator navigator, @IdRes int id, String fragmentClassName); + ctor public DynamicFragmentNavigatorDestinationBuilder(androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigator navigator, String route, String fragmentClassName); + ctor public DynamicFragmentNavigatorDestinationBuilder(androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigator navigator, kotlin.reflect.KClass route, java.util.Map> typeMap, String fragmentClassName); + method public androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigator.Destination build(); + method public String? getModuleName(); + method public void setModuleName(String?); + property public final String? moduleName; + } + + public final class DynamicFragmentNavigatorDestinationBuilderKt { + method @Deprecated public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id); + method @Deprecated public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, String fragmentClassName, kotlin.jvm.functions.Function1 builder); + method @Deprecated public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, kotlin.jvm.functions.Function1 builder); + method public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route); + method public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route, String fragmentClassName, kotlin.jvm.functions.Function1 builder); + method public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String fragmentClassName, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route, kotlin.jvm.functions.Function1 builder); + method public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, optional java.util.Map> typeMap); + method public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public class DynamicNavHostFragment extends androidx.navigation.fragment.NavHostFragment { + ctor public DynamicNavHostFragment(); + method public static final androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId); + method public static final androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs); + method protected com.google.android.play.core.splitinstall.SplitInstallManager createSplitInstallManager(); + field public static final androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment.Companion Companion; + } + + public static final class DynamicNavHostFragment.Companion { + method public androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId); + method public androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs); + } + +} + +package androidx.navigation.dynamicfeatures.fragment.ui { + + public abstract class AbstractProgressFragment extends androidx.fragment.app.Fragment { + ctor public AbstractProgressFragment(); + ctor public AbstractProgressFragment(int contentLayoutId); + method protected abstract void onCancelled(); + method protected abstract void onFailed(@com.google.android.play.core.splitinstall.model.SplitInstallErrorCode int errorCode); + method protected void onInstalled(); + method protected abstract void onProgress(@com.google.android.play.core.splitinstall.model.SplitInstallSessionStatus int status, long bytesDownloaded, long bytesTotal); + } + + public final class DefaultProgressFragment extends androidx.navigation.dynamicfeatures.fragment.ui.AbstractProgressFragment { + ctor public DefaultProgressFragment(); + method protected void onCancelled(); + method protected void onFailed(@com.google.android.play.core.splitinstall.model.SplitInstallErrorCode int errorCode); + method protected void onProgress(int status, long bytesDownloaded, long bytesTotal); + } + +} + diff --git a/navigation/navigation-dynamic-features-fragment/api/2.8.0-beta07.txt b/navigation/navigation-dynamic-features-fragment/api/2.8.0-beta07.txt new file mode 100644 index 0000000000000..575de0b67dbfa --- /dev/null +++ b/navigation/navigation-dynamic-features-fragment/api/2.8.0-beta07.txt @@ -0,0 +1,73 @@ +// Signature format: 4.0 +package androidx.navigation.dynamicfeatures.fragment { + + @androidx.navigation.Navigator.Name("fragment") public final class DynamicFragmentNavigator extends androidx.navigation.fragment.FragmentNavigator { + ctor public DynamicFragmentNavigator(android.content.Context context, androidx.fragment.app.FragmentManager manager, int containerId, androidx.navigation.dynamicfeatures.DynamicInstallManager installManager); + method public androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigator.Destination createDestination(); + } + + public static final class DynamicFragmentNavigator.Destination extends androidx.navigation.fragment.FragmentNavigator.Destination { + ctor public DynamicFragmentNavigator.Destination(androidx.navigation.Navigator fragmentNavigator); + ctor public DynamicFragmentNavigator.Destination(androidx.navigation.NavigatorProvider navigatorProvider); + method public String? getModuleName(); + method public void setModuleName(String?); + property public final String? moduleName; + } + + @androidx.navigation.NavDestinationDsl public final class DynamicFragmentNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder { + ctor @Deprecated public DynamicFragmentNavigatorDestinationBuilder(androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigator navigator, @IdRes int id, String fragmentClassName); + ctor public DynamicFragmentNavigatorDestinationBuilder(androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigator navigator, String route, String fragmentClassName); + ctor public DynamicFragmentNavigatorDestinationBuilder(androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigator navigator, kotlin.reflect.KClass route, java.util.Map> typeMap, String fragmentClassName); + method public androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigator.Destination build(); + method public String? getModuleName(); + method public void setModuleName(String?); + property public final String? moduleName; + } + + public final class DynamicFragmentNavigatorDestinationBuilderKt { + method @Deprecated public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id); + method @Deprecated public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, String fragmentClassName, kotlin.jvm.functions.Function1 builder); + method @Deprecated public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, kotlin.jvm.functions.Function1 builder); + method public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route); + method public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route, String fragmentClassName, kotlin.jvm.functions.Function1 builder); + method public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String fragmentClassName, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route, kotlin.jvm.functions.Function1 builder); + method public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, optional java.util.Map> typeMap); + method public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public class DynamicNavHostFragment extends androidx.navigation.fragment.NavHostFragment { + ctor public DynamicNavHostFragment(); + method public static final androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId); + method public static final androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs); + method protected com.google.android.play.core.splitinstall.SplitInstallManager createSplitInstallManager(); + field public static final androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment.Companion Companion; + } + + public static final class DynamicNavHostFragment.Companion { + method public androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId); + method public androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs); + } + +} + +package androidx.navigation.dynamicfeatures.fragment.ui { + + public abstract class AbstractProgressFragment extends androidx.fragment.app.Fragment { + ctor public AbstractProgressFragment(); + ctor public AbstractProgressFragment(int contentLayoutId); + method protected abstract void onCancelled(); + method protected abstract void onFailed(@com.google.android.play.core.splitinstall.model.SplitInstallErrorCode int errorCode); + method protected void onInstalled(); + method protected abstract void onProgress(@com.google.android.play.core.splitinstall.model.SplitInstallSessionStatus int status, long bytesDownloaded, long bytesTotal); + } + + public final class DefaultProgressFragment extends androidx.navigation.dynamicfeatures.fragment.ui.AbstractProgressFragment { + ctor public DefaultProgressFragment(); + method protected void onCancelled(); + method protected void onFailed(@com.google.android.play.core.splitinstall.model.SplitInstallErrorCode int errorCode); + method protected void onProgress(int status, long bytesDownloaded, long bytesTotal); + } + +} + diff --git a/navigation/navigation-dynamic-features-fragment/api/res-2.8.0-beta06.txt b/navigation/navigation-dynamic-features-fragment/api/res-2.8.0-beta06.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/navigation/navigation-dynamic-features-fragment/api/res-2.8.0-beta07.txt b/navigation/navigation-dynamic-features-fragment/api/res-2.8.0-beta07.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/navigation/navigation-dynamic-features-fragment/api/restricted_2.8.0-beta06.txt b/navigation/navigation-dynamic-features-fragment/api/restricted_2.8.0-beta06.txt new file mode 100644 index 0000000000000..575de0b67dbfa --- /dev/null +++ b/navigation/navigation-dynamic-features-fragment/api/restricted_2.8.0-beta06.txt @@ -0,0 +1,73 @@ +// Signature format: 4.0 +package androidx.navigation.dynamicfeatures.fragment { + + @androidx.navigation.Navigator.Name("fragment") public final class DynamicFragmentNavigator extends androidx.navigation.fragment.FragmentNavigator { + ctor public DynamicFragmentNavigator(android.content.Context context, androidx.fragment.app.FragmentManager manager, int containerId, androidx.navigation.dynamicfeatures.DynamicInstallManager installManager); + method public androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigator.Destination createDestination(); + } + + public static final class DynamicFragmentNavigator.Destination extends androidx.navigation.fragment.FragmentNavigator.Destination { + ctor public DynamicFragmentNavigator.Destination(androidx.navigation.Navigator fragmentNavigator); + ctor public DynamicFragmentNavigator.Destination(androidx.navigation.NavigatorProvider navigatorProvider); + method public String? getModuleName(); + method public void setModuleName(String?); + property public final String? moduleName; + } + + @androidx.navigation.NavDestinationDsl public final class DynamicFragmentNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder { + ctor @Deprecated public DynamicFragmentNavigatorDestinationBuilder(androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigator navigator, @IdRes int id, String fragmentClassName); + ctor public DynamicFragmentNavigatorDestinationBuilder(androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigator navigator, String route, String fragmentClassName); + ctor public DynamicFragmentNavigatorDestinationBuilder(androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigator navigator, kotlin.reflect.KClass route, java.util.Map> typeMap, String fragmentClassName); + method public androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigator.Destination build(); + method public String? getModuleName(); + method public void setModuleName(String?); + property public final String? moduleName; + } + + public final class DynamicFragmentNavigatorDestinationBuilderKt { + method @Deprecated public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id); + method @Deprecated public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, String fragmentClassName, kotlin.jvm.functions.Function1 builder); + method @Deprecated public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, kotlin.jvm.functions.Function1 builder); + method public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route); + method public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route, String fragmentClassName, kotlin.jvm.functions.Function1 builder); + method public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String fragmentClassName, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route, kotlin.jvm.functions.Function1 builder); + method public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, optional java.util.Map> typeMap); + method public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public class DynamicNavHostFragment extends androidx.navigation.fragment.NavHostFragment { + ctor public DynamicNavHostFragment(); + method public static final androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId); + method public static final androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs); + method protected com.google.android.play.core.splitinstall.SplitInstallManager createSplitInstallManager(); + field public static final androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment.Companion Companion; + } + + public static final class DynamicNavHostFragment.Companion { + method public androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId); + method public androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs); + } + +} + +package androidx.navigation.dynamicfeatures.fragment.ui { + + public abstract class AbstractProgressFragment extends androidx.fragment.app.Fragment { + ctor public AbstractProgressFragment(); + ctor public AbstractProgressFragment(int contentLayoutId); + method protected abstract void onCancelled(); + method protected abstract void onFailed(@com.google.android.play.core.splitinstall.model.SplitInstallErrorCode int errorCode); + method protected void onInstalled(); + method protected abstract void onProgress(@com.google.android.play.core.splitinstall.model.SplitInstallSessionStatus int status, long bytesDownloaded, long bytesTotal); + } + + public final class DefaultProgressFragment extends androidx.navigation.dynamicfeatures.fragment.ui.AbstractProgressFragment { + ctor public DefaultProgressFragment(); + method protected void onCancelled(); + method protected void onFailed(@com.google.android.play.core.splitinstall.model.SplitInstallErrorCode int errorCode); + method protected void onProgress(int status, long bytesDownloaded, long bytesTotal); + } + +} + diff --git a/navigation/navigation-dynamic-features-fragment/api/restricted_2.8.0-beta07.txt b/navigation/navigation-dynamic-features-fragment/api/restricted_2.8.0-beta07.txt new file mode 100644 index 0000000000000..575de0b67dbfa --- /dev/null +++ b/navigation/navigation-dynamic-features-fragment/api/restricted_2.8.0-beta07.txt @@ -0,0 +1,73 @@ +// Signature format: 4.0 +package androidx.navigation.dynamicfeatures.fragment { + + @androidx.navigation.Navigator.Name("fragment") public final class DynamicFragmentNavigator extends androidx.navigation.fragment.FragmentNavigator { + ctor public DynamicFragmentNavigator(android.content.Context context, androidx.fragment.app.FragmentManager manager, int containerId, androidx.navigation.dynamicfeatures.DynamicInstallManager installManager); + method public androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigator.Destination createDestination(); + } + + public static final class DynamicFragmentNavigator.Destination extends androidx.navigation.fragment.FragmentNavigator.Destination { + ctor public DynamicFragmentNavigator.Destination(androidx.navigation.Navigator fragmentNavigator); + ctor public DynamicFragmentNavigator.Destination(androidx.navigation.NavigatorProvider navigatorProvider); + method public String? getModuleName(); + method public void setModuleName(String?); + property public final String? moduleName; + } + + @androidx.navigation.NavDestinationDsl public final class DynamicFragmentNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder { + ctor @Deprecated public DynamicFragmentNavigatorDestinationBuilder(androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigator navigator, @IdRes int id, String fragmentClassName); + ctor public DynamicFragmentNavigatorDestinationBuilder(androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigator navigator, String route, String fragmentClassName); + ctor public DynamicFragmentNavigatorDestinationBuilder(androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigator navigator, kotlin.reflect.KClass route, java.util.Map> typeMap, String fragmentClassName); + method public androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigator.Destination build(); + method public String? getModuleName(); + method public void setModuleName(String?); + property public final String? moduleName; + } + + public final class DynamicFragmentNavigatorDestinationBuilderKt { + method @Deprecated public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id); + method @Deprecated public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, String fragmentClassName, kotlin.jvm.functions.Function1 builder); + method @Deprecated public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, kotlin.jvm.functions.Function1 builder); + method public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route); + method public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route, String fragmentClassName, kotlin.jvm.functions.Function1 builder); + method public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String fragmentClassName, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route, kotlin.jvm.functions.Function1 builder); + method public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, optional java.util.Map> typeMap); + method public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public class DynamicNavHostFragment extends androidx.navigation.fragment.NavHostFragment { + ctor public DynamicNavHostFragment(); + method public static final androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId); + method public static final androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs); + method protected com.google.android.play.core.splitinstall.SplitInstallManager createSplitInstallManager(); + field public static final androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment.Companion Companion; + } + + public static final class DynamicNavHostFragment.Companion { + method public androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId); + method public androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs); + } + +} + +package androidx.navigation.dynamicfeatures.fragment.ui { + + public abstract class AbstractProgressFragment extends androidx.fragment.app.Fragment { + ctor public AbstractProgressFragment(); + ctor public AbstractProgressFragment(int contentLayoutId); + method protected abstract void onCancelled(); + method protected abstract void onFailed(@com.google.android.play.core.splitinstall.model.SplitInstallErrorCode int errorCode); + method protected void onInstalled(); + method protected abstract void onProgress(@com.google.android.play.core.splitinstall.model.SplitInstallSessionStatus int status, long bytesDownloaded, long bytesTotal); + } + + public final class DefaultProgressFragment extends androidx.navigation.dynamicfeatures.fragment.ui.AbstractProgressFragment { + ctor public DefaultProgressFragment(); + method protected void onCancelled(); + method protected void onFailed(@com.google.android.play.core.splitinstall.model.SplitInstallErrorCode int errorCode); + method protected void onProgress(int status, long bytesDownloaded, long bytesTotal); + } + +} + diff --git a/navigation/navigation-dynamic-features-fragment/build.gradle b/navigation/navigation-dynamic-features-fragment/build.gradle index 63a98a1a373dc..a1527d2034d0e 100644 --- a/navigation/navigation-dynamic-features-fragment/build.gradle +++ b/navigation/navigation-dynamic-features-fragment/build.gradle @@ -67,6 +67,5 @@ androidx { type = LibraryType.PUBLISHED_LIBRARY inceptionYear = "2019" description = "Android Dynamic Feature Navigation Fragment" - metalavaK2UastEnabled = true legacyDisableKotlinStrictApiMode = true } diff --git a/navigation/navigation-dynamic-features-runtime/api/2.8.0-beta06.txt b/navigation/navigation-dynamic-features-runtime/api/2.8.0-beta06.txt new file mode 100644 index 0000000000000..2761db9f21816 --- /dev/null +++ b/navigation/navigation-dynamic-features-runtime/api/2.8.0-beta06.txt @@ -0,0 +1,169 @@ +// Signature format: 4.0 +package androidx.navigation.dynamicfeatures { + + @androidx.navigation.Navigator.Name("activity") public final class DynamicActivityNavigator extends androidx.navigation.ActivityNavigator { + ctor public DynamicActivityNavigator(android.content.Context context, androidx.navigation.dynamicfeatures.DynamicInstallManager installManager); + method public androidx.navigation.dynamicfeatures.DynamicActivityNavigator.Destination createDestination(); + } + + public static final class DynamicActivityNavigator.Destination extends androidx.navigation.ActivityNavigator.Destination { + ctor public DynamicActivityNavigator.Destination(androidx.navigation.Navigator activityNavigator); + ctor public DynamicActivityNavigator.Destination(androidx.navigation.NavigatorProvider navigatorProvider); + method public String? getModuleName(); + method public void setModuleName(String?); + property public final String? moduleName; + } + + @androidx.navigation.NavDestinationDsl public final class DynamicActivityNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder { + ctor @Deprecated public DynamicActivityNavigatorDestinationBuilder(androidx.navigation.dynamicfeatures.DynamicActivityNavigator activityNavigator, @IdRes int id); + ctor public DynamicActivityNavigatorDestinationBuilder(androidx.navigation.dynamicfeatures.DynamicActivityNavigator activityNavigator, String route); + ctor public DynamicActivityNavigatorDestinationBuilder(androidx.navigation.dynamicfeatures.DynamicActivityNavigator activityNavigator, kotlin.reflect.KClass route, java.util.Map> typeMap); + method public androidx.navigation.dynamicfeatures.DynamicActivityNavigator.Destination build(); + method public String? getAction(); + method public String? getActivityClassName(); + method public android.net.Uri? getData(); + method public String? getDataPattern(); + method public String? getModuleName(); + method public String? getTargetPackage(); + method public void setAction(String?); + method public void setActivityClassName(String?); + method public void setData(android.net.Uri?); + method public void setDataPattern(String?); + method public void setModuleName(String?); + method public void setTargetPackage(String?); + property public final String? action; + property public final String? activityClassName; + property public final android.net.Uri? data; + property public final String? dataPattern; + property public final String? moduleName; + property public final String? targetPackage; + } + + public final class DynamicActivityNavigatorDestinationBuilderKt { + method @Deprecated public static inline void activity(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, kotlin.jvm.functions.Function1 builder); + method public static inline void activity(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route, kotlin.jvm.functions.Function1 builder); + method public static inline void activity(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public final class DynamicExtras implements androidx.navigation.Navigator.Extras { + ctor public DynamicExtras(); + ctor public DynamicExtras(optional androidx.navigation.dynamicfeatures.DynamicInstallMonitor? installMonitor); + ctor public DynamicExtras(optional androidx.navigation.dynamicfeatures.DynamicInstallMonitor? installMonitor, optional androidx.navigation.Navigator.Extras? destinationExtras); + method public androidx.navigation.Navigator.Extras? getDestinationExtras(); + method public androidx.navigation.dynamicfeatures.DynamicInstallMonitor? getInstallMonitor(); + property public final androidx.navigation.Navigator.Extras? destinationExtras; + property public final androidx.navigation.dynamicfeatures.DynamicInstallMonitor? installMonitor; + } + + @androidx.navigation.Navigator.Name("navigation") public final class DynamicGraphNavigator extends androidx.navigation.NavGraphNavigator { + ctor public DynamicGraphNavigator(androidx.navigation.NavigatorProvider navigatorProvider, androidx.navigation.dynamicfeatures.DynamicInstallManager installManager); + method public androidx.navigation.dynamicfeatures.DynamicGraphNavigator.DynamicNavGraph createDestination(); + method public void installDefaultProgressDestination(kotlin.jvm.functions.Function0 progressDestinationSupplier); + } + + public static final class DynamicGraphNavigator.DynamicNavGraph extends androidx.navigation.NavGraph { + ctor public DynamicGraphNavigator.DynamicNavGraph(androidx.navigation.dynamicfeatures.DynamicGraphNavigator navGraphNavigator, androidx.navigation.NavigatorProvider navigatorProvider); + method public String? getModuleName(); + method public int getProgressDestination(); + method public void setModuleName(String?); + method public void setProgressDestination(int); + property public final String? moduleName; + property public final int progressDestination; + } + + @androidx.navigation.Navigator.Name("include-dynamic") public final class DynamicIncludeGraphNavigator extends androidx.navigation.Navigator { + ctor public DynamicIncludeGraphNavigator(android.content.Context context, androidx.navigation.NavigatorProvider navigatorProvider, androidx.navigation.NavInflater navInflater, androidx.navigation.dynamicfeatures.DynamicInstallManager installManager); + method public androidx.navigation.dynamicfeatures.DynamicIncludeGraphNavigator.DynamicIncludeNavGraph createDestination(); + } + + public static final class DynamicIncludeGraphNavigator.DynamicIncludeNavGraph extends androidx.navigation.NavDestination { + method public String? getGraphPackage(); + method public String? getGraphResourceName(); + method public String? getModuleName(); + method public void setGraphPackage(String?); + method public void setGraphResourceName(String?); + method public void setModuleName(String?); + property public final String? graphPackage; + property public final String? graphResourceName; + property public final String? moduleName; + } + + @androidx.navigation.NavDestinationDsl public final class DynamicIncludeNavGraphBuilder extends androidx.navigation.NavDestinationBuilder { + ctor @Deprecated public DynamicIncludeNavGraphBuilder(androidx.navigation.dynamicfeatures.DynamicIncludeGraphNavigator dynamicIncludeGraphNavigator, @IdRes int id, String moduleName, String graphResourceName); + ctor public DynamicIncludeNavGraphBuilder(androidx.navigation.dynamicfeatures.DynamicIncludeGraphNavigator dynamicIncludeGraphNavigator, String route, String moduleName, String graphResourceName); + ctor public DynamicIncludeNavGraphBuilder(androidx.navigation.dynamicfeatures.DynamicIncludeGraphNavigator dynamicIncludeGraphNavigator, kotlin.reflect.KClass route, java.util.Map> typeMap, String moduleName, String graphResourceName); + method public androidx.navigation.dynamicfeatures.DynamicIncludeGraphNavigator.DynamicIncludeNavGraph build(); + method public String? getGraphPackage(); + method public void setGraphPackage(String?); + property public final String? graphPackage; + } + + public final class DynamicIncludeNavGraphBuilderKt { + method @Deprecated public static inline void includeDynamic(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, String moduleName, String graphResourceName); + method @Deprecated public static inline void includeDynamic(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, String moduleName, String graphResourceName, kotlin.jvm.functions.Function1 builder); + method public static inline void includeDynamic(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route, String moduleName, String graphResourceName); + method public static inline void includeDynamic(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route, String moduleName, String graphResourceName, kotlin.jvm.functions.Function1 builder); + method public static inline void includeDynamic(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String moduleName, String graphResourceName, optional java.util.Map> typeMap); + method public static inline void includeDynamic(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String moduleName, String graphResourceName, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public class DynamicInstallManager { + ctor public DynamicInstallManager(android.content.Context context, com.google.android.play.core.splitinstall.SplitInstallManager splitInstallManager); + } + + public final class DynamicInstallMonitor { + ctor public DynamicInstallMonitor(); + method public void cancelInstall(); + method public Exception? getException(); + method public int getSessionId(); + method public androidx.lifecycle.LiveData getStatus(); + method public boolean isInstallRequired(); + property public final Exception? exception; + property public final boolean isInstallRequired; + property public final int sessionId; + property public final androidx.lifecycle.LiveData status; + } + + @androidx.navigation.NavDestinationDsl public final class DynamicNavGraphBuilder extends androidx.navigation.NavGraphBuilder { + ctor @Deprecated public DynamicNavGraphBuilder(androidx.navigation.NavigatorProvider provider, @IdRes int id, @IdRes int startDestination); + ctor public DynamicNavGraphBuilder(androidx.navigation.NavigatorProvider provider, Object startDestination, kotlin.reflect.KClass? route, java.util.Map> typeMap); + ctor public DynamicNavGraphBuilder(androidx.navigation.NavigatorProvider provider, String startDestination, optional String? route); + ctor public DynamicNavGraphBuilder(androidx.navigation.NavigatorProvider provider, kotlin.reflect.KClass startDestination, kotlin.reflect.KClass? route, java.util.Map> typeMap); + method public String? getModuleName(); + method public int getProgressDestination(); + method public String? getProgressDestinationRoute(); + method public void setModuleName(String?); + method public void setProgressDestination(int); + method public void setProgressDestinationRoute(String?); + property public final String? moduleName; + property public final int progressDestination; + property public final String? progressDestinationRoute; + } + + public final class DynamicNavGraphBuilderKt { + method @Deprecated public static inline void navigation(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1 builder); + method public static inline void navigation(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, Object startDestination, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method public static inline void navigation(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String startDestination, String route, kotlin.jvm.functions.Function1 builder); + method public static inline void navigation(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, kotlin.reflect.KClass startDestination, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method @Deprecated public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, Object startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, String startDestination, optional String? route, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, kotlin.reflect.KClass startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public final class NavControllerKt { + method @Deprecated public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, Object startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, String startDestination, optional String? route, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, kotlin.reflect.KClass startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public final class NavHostKt { + method @Deprecated public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, Object startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, String startDestination, optional String? route, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, kotlin.reflect.KClass startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + +} + diff --git a/navigation/navigation-dynamic-features-runtime/api/2.8.0-beta07.txt b/navigation/navigation-dynamic-features-runtime/api/2.8.0-beta07.txt new file mode 100644 index 0000000000000..2761db9f21816 --- /dev/null +++ b/navigation/navigation-dynamic-features-runtime/api/2.8.0-beta07.txt @@ -0,0 +1,169 @@ +// Signature format: 4.0 +package androidx.navigation.dynamicfeatures { + + @androidx.navigation.Navigator.Name("activity") public final class DynamicActivityNavigator extends androidx.navigation.ActivityNavigator { + ctor public DynamicActivityNavigator(android.content.Context context, androidx.navigation.dynamicfeatures.DynamicInstallManager installManager); + method public androidx.navigation.dynamicfeatures.DynamicActivityNavigator.Destination createDestination(); + } + + public static final class DynamicActivityNavigator.Destination extends androidx.navigation.ActivityNavigator.Destination { + ctor public DynamicActivityNavigator.Destination(androidx.navigation.Navigator activityNavigator); + ctor public DynamicActivityNavigator.Destination(androidx.navigation.NavigatorProvider navigatorProvider); + method public String? getModuleName(); + method public void setModuleName(String?); + property public final String? moduleName; + } + + @androidx.navigation.NavDestinationDsl public final class DynamicActivityNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder { + ctor @Deprecated public DynamicActivityNavigatorDestinationBuilder(androidx.navigation.dynamicfeatures.DynamicActivityNavigator activityNavigator, @IdRes int id); + ctor public DynamicActivityNavigatorDestinationBuilder(androidx.navigation.dynamicfeatures.DynamicActivityNavigator activityNavigator, String route); + ctor public DynamicActivityNavigatorDestinationBuilder(androidx.navigation.dynamicfeatures.DynamicActivityNavigator activityNavigator, kotlin.reflect.KClass route, java.util.Map> typeMap); + method public androidx.navigation.dynamicfeatures.DynamicActivityNavigator.Destination build(); + method public String? getAction(); + method public String? getActivityClassName(); + method public android.net.Uri? getData(); + method public String? getDataPattern(); + method public String? getModuleName(); + method public String? getTargetPackage(); + method public void setAction(String?); + method public void setActivityClassName(String?); + method public void setData(android.net.Uri?); + method public void setDataPattern(String?); + method public void setModuleName(String?); + method public void setTargetPackage(String?); + property public final String? action; + property public final String? activityClassName; + property public final android.net.Uri? data; + property public final String? dataPattern; + property public final String? moduleName; + property public final String? targetPackage; + } + + public final class DynamicActivityNavigatorDestinationBuilderKt { + method @Deprecated public static inline void activity(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, kotlin.jvm.functions.Function1 builder); + method public static inline void activity(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route, kotlin.jvm.functions.Function1 builder); + method public static inline void activity(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public final class DynamicExtras implements androidx.navigation.Navigator.Extras { + ctor public DynamicExtras(); + ctor public DynamicExtras(optional androidx.navigation.dynamicfeatures.DynamicInstallMonitor? installMonitor); + ctor public DynamicExtras(optional androidx.navigation.dynamicfeatures.DynamicInstallMonitor? installMonitor, optional androidx.navigation.Navigator.Extras? destinationExtras); + method public androidx.navigation.Navigator.Extras? getDestinationExtras(); + method public androidx.navigation.dynamicfeatures.DynamicInstallMonitor? getInstallMonitor(); + property public final androidx.navigation.Navigator.Extras? destinationExtras; + property public final androidx.navigation.dynamicfeatures.DynamicInstallMonitor? installMonitor; + } + + @androidx.navigation.Navigator.Name("navigation") public final class DynamicGraphNavigator extends androidx.navigation.NavGraphNavigator { + ctor public DynamicGraphNavigator(androidx.navigation.NavigatorProvider navigatorProvider, androidx.navigation.dynamicfeatures.DynamicInstallManager installManager); + method public androidx.navigation.dynamicfeatures.DynamicGraphNavigator.DynamicNavGraph createDestination(); + method public void installDefaultProgressDestination(kotlin.jvm.functions.Function0 progressDestinationSupplier); + } + + public static final class DynamicGraphNavigator.DynamicNavGraph extends androidx.navigation.NavGraph { + ctor public DynamicGraphNavigator.DynamicNavGraph(androidx.navigation.dynamicfeatures.DynamicGraphNavigator navGraphNavigator, androidx.navigation.NavigatorProvider navigatorProvider); + method public String? getModuleName(); + method public int getProgressDestination(); + method public void setModuleName(String?); + method public void setProgressDestination(int); + property public final String? moduleName; + property public final int progressDestination; + } + + @androidx.navigation.Navigator.Name("include-dynamic") public final class DynamicIncludeGraphNavigator extends androidx.navigation.Navigator { + ctor public DynamicIncludeGraphNavigator(android.content.Context context, androidx.navigation.NavigatorProvider navigatorProvider, androidx.navigation.NavInflater navInflater, androidx.navigation.dynamicfeatures.DynamicInstallManager installManager); + method public androidx.navigation.dynamicfeatures.DynamicIncludeGraphNavigator.DynamicIncludeNavGraph createDestination(); + } + + public static final class DynamicIncludeGraphNavigator.DynamicIncludeNavGraph extends androidx.navigation.NavDestination { + method public String? getGraphPackage(); + method public String? getGraphResourceName(); + method public String? getModuleName(); + method public void setGraphPackage(String?); + method public void setGraphResourceName(String?); + method public void setModuleName(String?); + property public final String? graphPackage; + property public final String? graphResourceName; + property public final String? moduleName; + } + + @androidx.navigation.NavDestinationDsl public final class DynamicIncludeNavGraphBuilder extends androidx.navigation.NavDestinationBuilder { + ctor @Deprecated public DynamicIncludeNavGraphBuilder(androidx.navigation.dynamicfeatures.DynamicIncludeGraphNavigator dynamicIncludeGraphNavigator, @IdRes int id, String moduleName, String graphResourceName); + ctor public DynamicIncludeNavGraphBuilder(androidx.navigation.dynamicfeatures.DynamicIncludeGraphNavigator dynamicIncludeGraphNavigator, String route, String moduleName, String graphResourceName); + ctor public DynamicIncludeNavGraphBuilder(androidx.navigation.dynamicfeatures.DynamicIncludeGraphNavigator dynamicIncludeGraphNavigator, kotlin.reflect.KClass route, java.util.Map> typeMap, String moduleName, String graphResourceName); + method public androidx.navigation.dynamicfeatures.DynamicIncludeGraphNavigator.DynamicIncludeNavGraph build(); + method public String? getGraphPackage(); + method public void setGraphPackage(String?); + property public final String? graphPackage; + } + + public final class DynamicIncludeNavGraphBuilderKt { + method @Deprecated public static inline void includeDynamic(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, String moduleName, String graphResourceName); + method @Deprecated public static inline void includeDynamic(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, String moduleName, String graphResourceName, kotlin.jvm.functions.Function1 builder); + method public static inline void includeDynamic(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route, String moduleName, String graphResourceName); + method public static inline void includeDynamic(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route, String moduleName, String graphResourceName, kotlin.jvm.functions.Function1 builder); + method public static inline void includeDynamic(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String moduleName, String graphResourceName, optional java.util.Map> typeMap); + method public static inline void includeDynamic(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String moduleName, String graphResourceName, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public class DynamicInstallManager { + ctor public DynamicInstallManager(android.content.Context context, com.google.android.play.core.splitinstall.SplitInstallManager splitInstallManager); + } + + public final class DynamicInstallMonitor { + ctor public DynamicInstallMonitor(); + method public void cancelInstall(); + method public Exception? getException(); + method public int getSessionId(); + method public androidx.lifecycle.LiveData getStatus(); + method public boolean isInstallRequired(); + property public final Exception? exception; + property public final boolean isInstallRequired; + property public final int sessionId; + property public final androidx.lifecycle.LiveData status; + } + + @androidx.navigation.NavDestinationDsl public final class DynamicNavGraphBuilder extends androidx.navigation.NavGraphBuilder { + ctor @Deprecated public DynamicNavGraphBuilder(androidx.navigation.NavigatorProvider provider, @IdRes int id, @IdRes int startDestination); + ctor public DynamicNavGraphBuilder(androidx.navigation.NavigatorProvider provider, Object startDestination, kotlin.reflect.KClass? route, java.util.Map> typeMap); + ctor public DynamicNavGraphBuilder(androidx.navigation.NavigatorProvider provider, String startDestination, optional String? route); + ctor public DynamicNavGraphBuilder(androidx.navigation.NavigatorProvider provider, kotlin.reflect.KClass startDestination, kotlin.reflect.KClass? route, java.util.Map> typeMap); + method public String? getModuleName(); + method public int getProgressDestination(); + method public String? getProgressDestinationRoute(); + method public void setModuleName(String?); + method public void setProgressDestination(int); + method public void setProgressDestinationRoute(String?); + property public final String? moduleName; + property public final int progressDestination; + property public final String? progressDestinationRoute; + } + + public final class DynamicNavGraphBuilderKt { + method @Deprecated public static inline void navigation(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1 builder); + method public static inline void navigation(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, Object startDestination, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method public static inline void navigation(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String startDestination, String route, kotlin.jvm.functions.Function1 builder); + method public static inline void navigation(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, kotlin.reflect.KClass startDestination, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method @Deprecated public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, Object startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, String startDestination, optional String? route, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, kotlin.reflect.KClass startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public final class NavControllerKt { + method @Deprecated public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, Object startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, String startDestination, optional String? route, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, kotlin.reflect.KClass startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public final class NavHostKt { + method @Deprecated public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, Object startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, String startDestination, optional String? route, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, kotlin.reflect.KClass startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + +} + diff --git a/navigation/navigation-dynamic-features-runtime/api/res-2.8.0-beta06.txt b/navigation/navigation-dynamic-features-runtime/api/res-2.8.0-beta06.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/navigation/navigation-dynamic-features-runtime/api/res-2.8.0-beta07.txt b/navigation/navigation-dynamic-features-runtime/api/res-2.8.0-beta07.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/navigation/navigation-dynamic-features-runtime/api/restricted_2.8.0-beta06.txt b/navigation/navigation-dynamic-features-runtime/api/restricted_2.8.0-beta06.txt new file mode 100644 index 0000000000000..2761db9f21816 --- /dev/null +++ b/navigation/navigation-dynamic-features-runtime/api/restricted_2.8.0-beta06.txt @@ -0,0 +1,169 @@ +// Signature format: 4.0 +package androidx.navigation.dynamicfeatures { + + @androidx.navigation.Navigator.Name("activity") public final class DynamicActivityNavigator extends androidx.navigation.ActivityNavigator { + ctor public DynamicActivityNavigator(android.content.Context context, androidx.navigation.dynamicfeatures.DynamicInstallManager installManager); + method public androidx.navigation.dynamicfeatures.DynamicActivityNavigator.Destination createDestination(); + } + + public static final class DynamicActivityNavigator.Destination extends androidx.navigation.ActivityNavigator.Destination { + ctor public DynamicActivityNavigator.Destination(androidx.navigation.Navigator activityNavigator); + ctor public DynamicActivityNavigator.Destination(androidx.navigation.NavigatorProvider navigatorProvider); + method public String? getModuleName(); + method public void setModuleName(String?); + property public final String? moduleName; + } + + @androidx.navigation.NavDestinationDsl public final class DynamicActivityNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder { + ctor @Deprecated public DynamicActivityNavigatorDestinationBuilder(androidx.navigation.dynamicfeatures.DynamicActivityNavigator activityNavigator, @IdRes int id); + ctor public DynamicActivityNavigatorDestinationBuilder(androidx.navigation.dynamicfeatures.DynamicActivityNavigator activityNavigator, String route); + ctor public DynamicActivityNavigatorDestinationBuilder(androidx.navigation.dynamicfeatures.DynamicActivityNavigator activityNavigator, kotlin.reflect.KClass route, java.util.Map> typeMap); + method public androidx.navigation.dynamicfeatures.DynamicActivityNavigator.Destination build(); + method public String? getAction(); + method public String? getActivityClassName(); + method public android.net.Uri? getData(); + method public String? getDataPattern(); + method public String? getModuleName(); + method public String? getTargetPackage(); + method public void setAction(String?); + method public void setActivityClassName(String?); + method public void setData(android.net.Uri?); + method public void setDataPattern(String?); + method public void setModuleName(String?); + method public void setTargetPackage(String?); + property public final String? action; + property public final String? activityClassName; + property public final android.net.Uri? data; + property public final String? dataPattern; + property public final String? moduleName; + property public final String? targetPackage; + } + + public final class DynamicActivityNavigatorDestinationBuilderKt { + method @Deprecated public static inline void activity(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, kotlin.jvm.functions.Function1 builder); + method public static inline void activity(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route, kotlin.jvm.functions.Function1 builder); + method public static inline void activity(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public final class DynamicExtras implements androidx.navigation.Navigator.Extras { + ctor public DynamicExtras(); + ctor public DynamicExtras(optional androidx.navigation.dynamicfeatures.DynamicInstallMonitor? installMonitor); + ctor public DynamicExtras(optional androidx.navigation.dynamicfeatures.DynamicInstallMonitor? installMonitor, optional androidx.navigation.Navigator.Extras? destinationExtras); + method public androidx.navigation.Navigator.Extras? getDestinationExtras(); + method public androidx.navigation.dynamicfeatures.DynamicInstallMonitor? getInstallMonitor(); + property public final androidx.navigation.Navigator.Extras? destinationExtras; + property public final androidx.navigation.dynamicfeatures.DynamicInstallMonitor? installMonitor; + } + + @androidx.navigation.Navigator.Name("navigation") public final class DynamicGraphNavigator extends androidx.navigation.NavGraphNavigator { + ctor public DynamicGraphNavigator(androidx.navigation.NavigatorProvider navigatorProvider, androidx.navigation.dynamicfeatures.DynamicInstallManager installManager); + method public androidx.navigation.dynamicfeatures.DynamicGraphNavigator.DynamicNavGraph createDestination(); + method public void installDefaultProgressDestination(kotlin.jvm.functions.Function0 progressDestinationSupplier); + } + + public static final class DynamicGraphNavigator.DynamicNavGraph extends androidx.navigation.NavGraph { + ctor public DynamicGraphNavigator.DynamicNavGraph(androidx.navigation.dynamicfeatures.DynamicGraphNavigator navGraphNavigator, androidx.navigation.NavigatorProvider navigatorProvider); + method public String? getModuleName(); + method public int getProgressDestination(); + method public void setModuleName(String?); + method public void setProgressDestination(int); + property public final String? moduleName; + property public final int progressDestination; + } + + @androidx.navigation.Navigator.Name("include-dynamic") public final class DynamicIncludeGraphNavigator extends androidx.navigation.Navigator { + ctor public DynamicIncludeGraphNavigator(android.content.Context context, androidx.navigation.NavigatorProvider navigatorProvider, androidx.navigation.NavInflater navInflater, androidx.navigation.dynamicfeatures.DynamicInstallManager installManager); + method public androidx.navigation.dynamicfeatures.DynamicIncludeGraphNavigator.DynamicIncludeNavGraph createDestination(); + } + + public static final class DynamicIncludeGraphNavigator.DynamicIncludeNavGraph extends androidx.navigation.NavDestination { + method public String? getGraphPackage(); + method public String? getGraphResourceName(); + method public String? getModuleName(); + method public void setGraphPackage(String?); + method public void setGraphResourceName(String?); + method public void setModuleName(String?); + property public final String? graphPackage; + property public final String? graphResourceName; + property public final String? moduleName; + } + + @androidx.navigation.NavDestinationDsl public final class DynamicIncludeNavGraphBuilder extends androidx.navigation.NavDestinationBuilder { + ctor @Deprecated public DynamicIncludeNavGraphBuilder(androidx.navigation.dynamicfeatures.DynamicIncludeGraphNavigator dynamicIncludeGraphNavigator, @IdRes int id, String moduleName, String graphResourceName); + ctor public DynamicIncludeNavGraphBuilder(androidx.navigation.dynamicfeatures.DynamicIncludeGraphNavigator dynamicIncludeGraphNavigator, String route, String moduleName, String graphResourceName); + ctor public DynamicIncludeNavGraphBuilder(androidx.navigation.dynamicfeatures.DynamicIncludeGraphNavigator dynamicIncludeGraphNavigator, kotlin.reflect.KClass route, java.util.Map> typeMap, String moduleName, String graphResourceName); + method public androidx.navigation.dynamicfeatures.DynamicIncludeGraphNavigator.DynamicIncludeNavGraph build(); + method public String? getGraphPackage(); + method public void setGraphPackage(String?); + property public final String? graphPackage; + } + + public final class DynamicIncludeNavGraphBuilderKt { + method @Deprecated public static inline void includeDynamic(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, String moduleName, String graphResourceName); + method @Deprecated public static inline void includeDynamic(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, String moduleName, String graphResourceName, kotlin.jvm.functions.Function1 builder); + method public static inline void includeDynamic(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route, String moduleName, String graphResourceName); + method public static inline void includeDynamic(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route, String moduleName, String graphResourceName, kotlin.jvm.functions.Function1 builder); + method public static inline void includeDynamic(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String moduleName, String graphResourceName, optional java.util.Map> typeMap); + method public static inline void includeDynamic(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String moduleName, String graphResourceName, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public class DynamicInstallManager { + ctor public DynamicInstallManager(android.content.Context context, com.google.android.play.core.splitinstall.SplitInstallManager splitInstallManager); + } + + public final class DynamicInstallMonitor { + ctor public DynamicInstallMonitor(); + method public void cancelInstall(); + method public Exception? getException(); + method public int getSessionId(); + method public androidx.lifecycle.LiveData getStatus(); + method public boolean isInstallRequired(); + property public final Exception? exception; + property public final boolean isInstallRequired; + property public final int sessionId; + property public final androidx.lifecycle.LiveData status; + } + + @androidx.navigation.NavDestinationDsl public final class DynamicNavGraphBuilder extends androidx.navigation.NavGraphBuilder { + ctor @Deprecated public DynamicNavGraphBuilder(androidx.navigation.NavigatorProvider provider, @IdRes int id, @IdRes int startDestination); + ctor public DynamicNavGraphBuilder(androidx.navigation.NavigatorProvider provider, Object startDestination, kotlin.reflect.KClass? route, java.util.Map> typeMap); + ctor public DynamicNavGraphBuilder(androidx.navigation.NavigatorProvider provider, String startDestination, optional String? route); + ctor public DynamicNavGraphBuilder(androidx.navigation.NavigatorProvider provider, kotlin.reflect.KClass startDestination, kotlin.reflect.KClass? route, java.util.Map> typeMap); + method public String? getModuleName(); + method public int getProgressDestination(); + method public String? getProgressDestinationRoute(); + method public void setModuleName(String?); + method public void setProgressDestination(int); + method public void setProgressDestinationRoute(String?); + property public final String? moduleName; + property public final int progressDestination; + property public final String? progressDestinationRoute; + } + + public final class DynamicNavGraphBuilderKt { + method @Deprecated public static inline void navigation(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1 builder); + method public static inline void navigation(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, Object startDestination, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method public static inline void navigation(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String startDestination, String route, kotlin.jvm.functions.Function1 builder); + method public static inline void navigation(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, kotlin.reflect.KClass startDestination, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method @Deprecated public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, Object startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, String startDestination, optional String? route, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, kotlin.reflect.KClass startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public final class NavControllerKt { + method @Deprecated public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, Object startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, String startDestination, optional String? route, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, kotlin.reflect.KClass startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public final class NavHostKt { + method @Deprecated public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, Object startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, String startDestination, optional String? route, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, kotlin.reflect.KClass startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + +} + diff --git a/navigation/navigation-dynamic-features-runtime/api/restricted_2.8.0-beta07.txt b/navigation/navigation-dynamic-features-runtime/api/restricted_2.8.0-beta07.txt new file mode 100644 index 0000000000000..2761db9f21816 --- /dev/null +++ b/navigation/navigation-dynamic-features-runtime/api/restricted_2.8.0-beta07.txt @@ -0,0 +1,169 @@ +// Signature format: 4.0 +package androidx.navigation.dynamicfeatures { + + @androidx.navigation.Navigator.Name("activity") public final class DynamicActivityNavigator extends androidx.navigation.ActivityNavigator { + ctor public DynamicActivityNavigator(android.content.Context context, androidx.navigation.dynamicfeatures.DynamicInstallManager installManager); + method public androidx.navigation.dynamicfeatures.DynamicActivityNavigator.Destination createDestination(); + } + + public static final class DynamicActivityNavigator.Destination extends androidx.navigation.ActivityNavigator.Destination { + ctor public DynamicActivityNavigator.Destination(androidx.navigation.Navigator activityNavigator); + ctor public DynamicActivityNavigator.Destination(androidx.navigation.NavigatorProvider navigatorProvider); + method public String? getModuleName(); + method public void setModuleName(String?); + property public final String? moduleName; + } + + @androidx.navigation.NavDestinationDsl public final class DynamicActivityNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder { + ctor @Deprecated public DynamicActivityNavigatorDestinationBuilder(androidx.navigation.dynamicfeatures.DynamicActivityNavigator activityNavigator, @IdRes int id); + ctor public DynamicActivityNavigatorDestinationBuilder(androidx.navigation.dynamicfeatures.DynamicActivityNavigator activityNavigator, String route); + ctor public DynamicActivityNavigatorDestinationBuilder(androidx.navigation.dynamicfeatures.DynamicActivityNavigator activityNavigator, kotlin.reflect.KClass route, java.util.Map> typeMap); + method public androidx.navigation.dynamicfeatures.DynamicActivityNavigator.Destination build(); + method public String? getAction(); + method public String? getActivityClassName(); + method public android.net.Uri? getData(); + method public String? getDataPattern(); + method public String? getModuleName(); + method public String? getTargetPackage(); + method public void setAction(String?); + method public void setActivityClassName(String?); + method public void setData(android.net.Uri?); + method public void setDataPattern(String?); + method public void setModuleName(String?); + method public void setTargetPackage(String?); + property public final String? action; + property public final String? activityClassName; + property public final android.net.Uri? data; + property public final String? dataPattern; + property public final String? moduleName; + property public final String? targetPackage; + } + + public final class DynamicActivityNavigatorDestinationBuilderKt { + method @Deprecated public static inline void activity(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, kotlin.jvm.functions.Function1 builder); + method public static inline void activity(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route, kotlin.jvm.functions.Function1 builder); + method public static inline void activity(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public final class DynamicExtras implements androidx.navigation.Navigator.Extras { + ctor public DynamicExtras(); + ctor public DynamicExtras(optional androidx.navigation.dynamicfeatures.DynamicInstallMonitor? installMonitor); + ctor public DynamicExtras(optional androidx.navigation.dynamicfeatures.DynamicInstallMonitor? installMonitor, optional androidx.navigation.Navigator.Extras? destinationExtras); + method public androidx.navigation.Navigator.Extras? getDestinationExtras(); + method public androidx.navigation.dynamicfeatures.DynamicInstallMonitor? getInstallMonitor(); + property public final androidx.navigation.Navigator.Extras? destinationExtras; + property public final androidx.navigation.dynamicfeatures.DynamicInstallMonitor? installMonitor; + } + + @androidx.navigation.Navigator.Name("navigation") public final class DynamicGraphNavigator extends androidx.navigation.NavGraphNavigator { + ctor public DynamicGraphNavigator(androidx.navigation.NavigatorProvider navigatorProvider, androidx.navigation.dynamicfeatures.DynamicInstallManager installManager); + method public androidx.navigation.dynamicfeatures.DynamicGraphNavigator.DynamicNavGraph createDestination(); + method public void installDefaultProgressDestination(kotlin.jvm.functions.Function0 progressDestinationSupplier); + } + + public static final class DynamicGraphNavigator.DynamicNavGraph extends androidx.navigation.NavGraph { + ctor public DynamicGraphNavigator.DynamicNavGraph(androidx.navigation.dynamicfeatures.DynamicGraphNavigator navGraphNavigator, androidx.navigation.NavigatorProvider navigatorProvider); + method public String? getModuleName(); + method public int getProgressDestination(); + method public void setModuleName(String?); + method public void setProgressDestination(int); + property public final String? moduleName; + property public final int progressDestination; + } + + @androidx.navigation.Navigator.Name("include-dynamic") public final class DynamicIncludeGraphNavigator extends androidx.navigation.Navigator { + ctor public DynamicIncludeGraphNavigator(android.content.Context context, androidx.navigation.NavigatorProvider navigatorProvider, androidx.navigation.NavInflater navInflater, androidx.navigation.dynamicfeatures.DynamicInstallManager installManager); + method public androidx.navigation.dynamicfeatures.DynamicIncludeGraphNavigator.DynamicIncludeNavGraph createDestination(); + } + + public static final class DynamicIncludeGraphNavigator.DynamicIncludeNavGraph extends androidx.navigation.NavDestination { + method public String? getGraphPackage(); + method public String? getGraphResourceName(); + method public String? getModuleName(); + method public void setGraphPackage(String?); + method public void setGraphResourceName(String?); + method public void setModuleName(String?); + property public final String? graphPackage; + property public final String? graphResourceName; + property public final String? moduleName; + } + + @androidx.navigation.NavDestinationDsl public final class DynamicIncludeNavGraphBuilder extends androidx.navigation.NavDestinationBuilder { + ctor @Deprecated public DynamicIncludeNavGraphBuilder(androidx.navigation.dynamicfeatures.DynamicIncludeGraphNavigator dynamicIncludeGraphNavigator, @IdRes int id, String moduleName, String graphResourceName); + ctor public DynamicIncludeNavGraphBuilder(androidx.navigation.dynamicfeatures.DynamicIncludeGraphNavigator dynamicIncludeGraphNavigator, String route, String moduleName, String graphResourceName); + ctor public DynamicIncludeNavGraphBuilder(androidx.navigation.dynamicfeatures.DynamicIncludeGraphNavigator dynamicIncludeGraphNavigator, kotlin.reflect.KClass route, java.util.Map> typeMap, String moduleName, String graphResourceName); + method public androidx.navigation.dynamicfeatures.DynamicIncludeGraphNavigator.DynamicIncludeNavGraph build(); + method public String? getGraphPackage(); + method public void setGraphPackage(String?); + property public final String? graphPackage; + } + + public final class DynamicIncludeNavGraphBuilderKt { + method @Deprecated public static inline void includeDynamic(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, String moduleName, String graphResourceName); + method @Deprecated public static inline void includeDynamic(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, String moduleName, String graphResourceName, kotlin.jvm.functions.Function1 builder); + method public static inline void includeDynamic(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route, String moduleName, String graphResourceName); + method public static inline void includeDynamic(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route, String moduleName, String graphResourceName, kotlin.jvm.functions.Function1 builder); + method public static inline void includeDynamic(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String moduleName, String graphResourceName, optional java.util.Map> typeMap); + method public static inline void includeDynamic(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String moduleName, String graphResourceName, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public class DynamicInstallManager { + ctor public DynamicInstallManager(android.content.Context context, com.google.android.play.core.splitinstall.SplitInstallManager splitInstallManager); + } + + public final class DynamicInstallMonitor { + ctor public DynamicInstallMonitor(); + method public void cancelInstall(); + method public Exception? getException(); + method public int getSessionId(); + method public androidx.lifecycle.LiveData getStatus(); + method public boolean isInstallRequired(); + property public final Exception? exception; + property public final boolean isInstallRequired; + property public final int sessionId; + property public final androidx.lifecycle.LiveData status; + } + + @androidx.navigation.NavDestinationDsl public final class DynamicNavGraphBuilder extends androidx.navigation.NavGraphBuilder { + ctor @Deprecated public DynamicNavGraphBuilder(androidx.navigation.NavigatorProvider provider, @IdRes int id, @IdRes int startDestination); + ctor public DynamicNavGraphBuilder(androidx.navigation.NavigatorProvider provider, Object startDestination, kotlin.reflect.KClass? route, java.util.Map> typeMap); + ctor public DynamicNavGraphBuilder(androidx.navigation.NavigatorProvider provider, String startDestination, optional String? route); + ctor public DynamicNavGraphBuilder(androidx.navigation.NavigatorProvider provider, kotlin.reflect.KClass startDestination, kotlin.reflect.KClass? route, java.util.Map> typeMap); + method public String? getModuleName(); + method public int getProgressDestination(); + method public String? getProgressDestinationRoute(); + method public void setModuleName(String?); + method public void setProgressDestination(int); + method public void setProgressDestinationRoute(String?); + property public final String? moduleName; + property public final int progressDestination; + property public final String? progressDestinationRoute; + } + + public final class DynamicNavGraphBuilderKt { + method @Deprecated public static inline void navigation(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1 builder); + method public static inline void navigation(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, Object startDestination, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method public static inline void navigation(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String startDestination, String route, kotlin.jvm.functions.Function1 builder); + method public static inline void navigation(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, kotlin.reflect.KClass startDestination, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method @Deprecated public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, Object startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, String startDestination, optional String? route, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, kotlin.reflect.KClass startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public final class NavControllerKt { + method @Deprecated public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, Object startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, String startDestination, optional String? route, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, kotlin.reflect.KClass startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public final class NavHostKt { + method @Deprecated public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, Object startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, String startDestination, optional String? route, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, kotlin.reflect.KClass startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + +} + diff --git a/navigation/navigation-dynamic-features-runtime/build.gradle b/navigation/navigation-dynamic-features-runtime/build.gradle index e3f17e23b7e72..8693621cc468c 100644 --- a/navigation/navigation-dynamic-features-runtime/build.gradle +++ b/navigation/navigation-dynamic-features-runtime/build.gradle @@ -68,6 +68,5 @@ androidx { type = LibraryType.PUBLISHED_LIBRARY inceptionYear = "2019" description = "Android Dynamic Feature Navigation Runtime" - metalavaK2UastEnabled = true legacyDisableKotlinStrictApiMode = true } diff --git a/navigation/navigation-dynamic-features-runtime/src/main/res/raw/keep.xml b/navigation/navigation-dynamic-features-runtime/src/main/res/raw/navigation_keep_all.xml similarity index 100% rename from navigation/navigation-dynamic-features-runtime/src/main/res/raw/keep.xml rename to navigation/navigation-dynamic-features-runtime/src/main/res/raw/navigation_keep_all.xml diff --git a/navigation/navigation-fragment-compose/api/2.8.0-beta06.txt b/navigation/navigation-fragment-compose/api/2.8.0-beta06.txt new file mode 100644 index 0000000000000..d598aceb0b189 --- /dev/null +++ b/navigation/navigation-fragment-compose/api/2.8.0-beta06.txt @@ -0,0 +1,37 @@ +// Signature format: 4.0 +package androidx.navigation.fragment.compose { + + public final class ComposableFragment extends androidx.fragment.app.Fragment { + method public static androidx.navigation.fragment.compose.ComposableFragment ComposableFragment(String fullyQualifiedName); + field public static final androidx.navigation.fragment.compose.ComposableFragment.Companion Companion; + } + + public static final class ComposableFragment.Companion { + method public androidx.navigation.fragment.compose.ComposableFragment ComposableFragment(String fullyQualifiedName); + } + + @androidx.navigation.Navigator.Name("composable") public final class ComposableFragmentNavigator extends androidx.navigation.Navigator { + ctor public ComposableFragmentNavigator(androidx.navigation.fragment.FragmentNavigator fragmentNavigator); + ctor public ComposableFragmentNavigator(androidx.navigation.NavigatorProvider provider); + method public androidx.navigation.fragment.FragmentNavigator.Destination createDestination(); + } + + public class ComposableNavHostFragment extends androidx.navigation.fragment.NavHostFragment { + ctor public ComposableNavHostFragment(); + method public static final androidx.navigation.fragment.compose.ComposableNavHostFragment create(@NavigationRes int graphResId); + method public static final androidx.navigation.fragment.compose.ComposableNavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs); + field public static final androidx.navigation.fragment.compose.ComposableNavHostFragment.Companion Companion; + } + + public static final class ComposableNavHostFragment.Companion { + method public androidx.navigation.fragment.compose.ComposableNavHostFragment create(@NavigationRes int graphResId); + method public androidx.navigation.fragment.compose.ComposableNavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs); + } + + public final class LocalFragmentKt { + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalFragment(); + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalFragment; + } + +} + diff --git a/navigation/navigation-fragment-compose/api/2.8.0-beta07.txt b/navigation/navigation-fragment-compose/api/2.8.0-beta07.txt new file mode 100644 index 0000000000000..d598aceb0b189 --- /dev/null +++ b/navigation/navigation-fragment-compose/api/2.8.0-beta07.txt @@ -0,0 +1,37 @@ +// Signature format: 4.0 +package androidx.navigation.fragment.compose { + + public final class ComposableFragment extends androidx.fragment.app.Fragment { + method public static androidx.navigation.fragment.compose.ComposableFragment ComposableFragment(String fullyQualifiedName); + field public static final androidx.navigation.fragment.compose.ComposableFragment.Companion Companion; + } + + public static final class ComposableFragment.Companion { + method public androidx.navigation.fragment.compose.ComposableFragment ComposableFragment(String fullyQualifiedName); + } + + @androidx.navigation.Navigator.Name("composable") public final class ComposableFragmentNavigator extends androidx.navigation.Navigator { + ctor public ComposableFragmentNavigator(androidx.navigation.fragment.FragmentNavigator fragmentNavigator); + ctor public ComposableFragmentNavigator(androidx.navigation.NavigatorProvider provider); + method public androidx.navigation.fragment.FragmentNavigator.Destination createDestination(); + } + + public class ComposableNavHostFragment extends androidx.navigation.fragment.NavHostFragment { + ctor public ComposableNavHostFragment(); + method public static final androidx.navigation.fragment.compose.ComposableNavHostFragment create(@NavigationRes int graphResId); + method public static final androidx.navigation.fragment.compose.ComposableNavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs); + field public static final androidx.navigation.fragment.compose.ComposableNavHostFragment.Companion Companion; + } + + public static final class ComposableNavHostFragment.Companion { + method public androidx.navigation.fragment.compose.ComposableNavHostFragment create(@NavigationRes int graphResId); + method public androidx.navigation.fragment.compose.ComposableNavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs); + } + + public final class LocalFragmentKt { + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalFragment(); + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalFragment; + } + +} + diff --git a/navigation/navigation-fragment-compose/api/res-2.8.0-beta06.txt b/navigation/navigation-fragment-compose/api/res-2.8.0-beta06.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/navigation/navigation-fragment-compose/api/res-2.8.0-beta07.txt b/navigation/navigation-fragment-compose/api/res-2.8.0-beta07.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/navigation/navigation-fragment-compose/api/restricted_2.8.0-beta06.txt b/navigation/navigation-fragment-compose/api/restricted_2.8.0-beta06.txt new file mode 100644 index 0000000000000..d598aceb0b189 --- /dev/null +++ b/navigation/navigation-fragment-compose/api/restricted_2.8.0-beta06.txt @@ -0,0 +1,37 @@ +// Signature format: 4.0 +package androidx.navigation.fragment.compose { + + public final class ComposableFragment extends androidx.fragment.app.Fragment { + method public static androidx.navigation.fragment.compose.ComposableFragment ComposableFragment(String fullyQualifiedName); + field public static final androidx.navigation.fragment.compose.ComposableFragment.Companion Companion; + } + + public static final class ComposableFragment.Companion { + method public androidx.navigation.fragment.compose.ComposableFragment ComposableFragment(String fullyQualifiedName); + } + + @androidx.navigation.Navigator.Name("composable") public final class ComposableFragmentNavigator extends androidx.navigation.Navigator { + ctor public ComposableFragmentNavigator(androidx.navigation.fragment.FragmentNavigator fragmentNavigator); + ctor public ComposableFragmentNavigator(androidx.navigation.NavigatorProvider provider); + method public androidx.navigation.fragment.FragmentNavigator.Destination createDestination(); + } + + public class ComposableNavHostFragment extends androidx.navigation.fragment.NavHostFragment { + ctor public ComposableNavHostFragment(); + method public static final androidx.navigation.fragment.compose.ComposableNavHostFragment create(@NavigationRes int graphResId); + method public static final androidx.navigation.fragment.compose.ComposableNavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs); + field public static final androidx.navigation.fragment.compose.ComposableNavHostFragment.Companion Companion; + } + + public static final class ComposableNavHostFragment.Companion { + method public androidx.navigation.fragment.compose.ComposableNavHostFragment create(@NavigationRes int graphResId); + method public androidx.navigation.fragment.compose.ComposableNavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs); + } + + public final class LocalFragmentKt { + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalFragment(); + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalFragment; + } + +} + diff --git a/navigation/navigation-fragment-compose/api/restricted_2.8.0-beta07.txt b/navigation/navigation-fragment-compose/api/restricted_2.8.0-beta07.txt new file mode 100644 index 0000000000000..d598aceb0b189 --- /dev/null +++ b/navigation/navigation-fragment-compose/api/restricted_2.8.0-beta07.txt @@ -0,0 +1,37 @@ +// Signature format: 4.0 +package androidx.navigation.fragment.compose { + + public final class ComposableFragment extends androidx.fragment.app.Fragment { + method public static androidx.navigation.fragment.compose.ComposableFragment ComposableFragment(String fullyQualifiedName); + field public static final androidx.navigation.fragment.compose.ComposableFragment.Companion Companion; + } + + public static final class ComposableFragment.Companion { + method public androidx.navigation.fragment.compose.ComposableFragment ComposableFragment(String fullyQualifiedName); + } + + @androidx.navigation.Navigator.Name("composable") public final class ComposableFragmentNavigator extends androidx.navigation.Navigator { + ctor public ComposableFragmentNavigator(androidx.navigation.fragment.FragmentNavigator fragmentNavigator); + ctor public ComposableFragmentNavigator(androidx.navigation.NavigatorProvider provider); + method public androidx.navigation.fragment.FragmentNavigator.Destination createDestination(); + } + + public class ComposableNavHostFragment extends androidx.navigation.fragment.NavHostFragment { + ctor public ComposableNavHostFragment(); + method public static final androidx.navigation.fragment.compose.ComposableNavHostFragment create(@NavigationRes int graphResId); + method public static final androidx.navigation.fragment.compose.ComposableNavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs); + field public static final androidx.navigation.fragment.compose.ComposableNavHostFragment.Companion Companion; + } + + public static final class ComposableNavHostFragment.Companion { + method public androidx.navigation.fragment.compose.ComposableNavHostFragment create(@NavigationRes int graphResId); + method public androidx.navigation.fragment.compose.ComposableNavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs); + } + + public final class LocalFragmentKt { + method public static androidx.compose.runtime.ProvidableCompositionLocal getLocalFragment(); + property public static final androidx.compose.runtime.ProvidableCompositionLocal LocalFragment; + } + +} + diff --git a/navigation/navigation-fragment-ktx/api/2.8.0-beta06.txt b/navigation/navigation-fragment-ktx/api/2.8.0-beta06.txt new file mode 100644 index 0000000000000..e6f50d0d0fd11 --- /dev/null +++ b/navigation/navigation-fragment-ktx/api/2.8.0-beta06.txt @@ -0,0 +1 @@ +// Signature format: 4.0 diff --git a/navigation/navigation-fragment-ktx/api/2.8.0-beta07.txt b/navigation/navigation-fragment-ktx/api/2.8.0-beta07.txt new file mode 100644 index 0000000000000..e6f50d0d0fd11 --- /dev/null +++ b/navigation/navigation-fragment-ktx/api/2.8.0-beta07.txt @@ -0,0 +1 @@ +// Signature format: 4.0 diff --git a/navigation/navigation-fragment-ktx/api/res-2.8.0-beta06.txt b/navigation/navigation-fragment-ktx/api/res-2.8.0-beta06.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/navigation/navigation-fragment-ktx/api/res-2.8.0-beta07.txt b/navigation/navigation-fragment-ktx/api/res-2.8.0-beta07.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/navigation/navigation-fragment-ktx/api/restricted_2.8.0-beta06.txt b/navigation/navigation-fragment-ktx/api/restricted_2.8.0-beta06.txt new file mode 100644 index 0000000000000..e6f50d0d0fd11 --- /dev/null +++ b/navigation/navigation-fragment-ktx/api/restricted_2.8.0-beta06.txt @@ -0,0 +1 @@ +// Signature format: 4.0 diff --git a/navigation/navigation-fragment-ktx/api/restricted_2.8.0-beta07.txt b/navigation/navigation-fragment-ktx/api/restricted_2.8.0-beta07.txt new file mode 100644 index 0000000000000..e6f50d0d0fd11 --- /dev/null +++ b/navigation/navigation-fragment-ktx/api/restricted_2.8.0-beta07.txt @@ -0,0 +1 @@ +// Signature format: 4.0 diff --git a/navigation/navigation-fragment-ktx/build.gradle b/navigation/navigation-fragment-ktx/build.gradle index f38f63823ec5c..b1199e7484ab2 100644 --- a/navigation/navigation-fragment-ktx/build.gradle +++ b/navigation/navigation-fragment-ktx/build.gradle @@ -41,7 +41,6 @@ androidx { type = LibraryType.PUBLISHED_LIBRARY_ONLY_USED_BY_KOTLIN_CONSUMERS inceptionYear = "2018" description = "Android Navigation-Fragment-Ktx" - metalavaK2UastEnabled = true } android { diff --git a/navigation/navigation-fragment/api/2.8.0-beta06.txt b/navigation/navigation-fragment/api/2.8.0-beta06.txt new file mode 100644 index 0000000000000..0db42b847d47c --- /dev/null +++ b/navigation/navigation-fragment/api/2.8.0-beta06.txt @@ -0,0 +1,131 @@ +// Signature format: 4.0 +package androidx.navigation { + + public final class NavGraphViewModelLazyKt { + method @MainThread public static inline kotlin.Lazy navGraphViewModels(androidx.fragment.app.Fragment, @IdRes int navGraphId, optional kotlin.jvm.functions.Function0? extrasProducer, optional kotlin.jvm.functions.Function0? factoryProducer); + method @Deprecated @MainThread public static inline kotlin.Lazy navGraphViewModels(androidx.fragment.app.Fragment, @IdRes int navGraphId, optional kotlin.jvm.functions.Function0? factoryProducer); + method @MainThread public static inline kotlin.Lazy navGraphViewModels(androidx.fragment.app.Fragment, String navGraphRoute, optional kotlin.jvm.functions.Function0? extrasProducer, optional kotlin.jvm.functions.Function0? factoryProducer); + method @Deprecated @MainThread public static inline kotlin.Lazy navGraphViewModels(androidx.fragment.app.Fragment, String navGraphRoute, optional kotlin.jvm.functions.Function0? factoryProducer); + } + +} + +package androidx.navigation.fragment { + + public abstract class AbstractListDetailFragment extends androidx.fragment.app.Fragment { + ctor public AbstractListDetailFragment(); + method public final androidx.navigation.fragment.NavHostFragment getDetailPaneNavHostFragment(); + method public final androidx.slidingpanelayout.widget.SlidingPaneLayout getSlidingPaneLayout(); + method public androidx.navigation.fragment.NavHostFragment onCreateDetailPaneNavHostFragment(); + method public abstract android.view.View onCreateListPaneView(android.view.LayoutInflater inflater, android.view.ViewGroup? container, android.os.Bundle? savedInstanceState); + method @CallSuper public final android.view.View onCreateView(android.view.LayoutInflater inflater, android.view.ViewGroup? container, android.os.Bundle? savedInstanceState); + method public void onListPaneViewCreated(android.view.View view, android.os.Bundle? savedInstanceState); + method @CallSuper public final void onViewCreated(android.view.View view, android.os.Bundle? savedInstanceState); + property public final androidx.navigation.fragment.NavHostFragment detailPaneNavHostFragment; + property public final androidx.slidingpanelayout.widget.SlidingPaneLayout slidingPaneLayout; + } + + @androidx.navigation.Navigator.Name("dialog") public final class DialogFragmentNavigator extends androidx.navigation.Navigator { + ctor public DialogFragmentNavigator(android.content.Context context, androidx.fragment.app.FragmentManager fragmentManager); + method public androidx.navigation.fragment.DialogFragmentNavigator.Destination createDestination(); + } + + @androidx.navigation.NavDestination.ClassType(DialogFragment::class) public static class DialogFragmentNavigator.Destination extends androidx.navigation.NavDestination implements androidx.navigation.FloatingWindow { + ctor public DialogFragmentNavigator.Destination(androidx.navigation.Navigator fragmentNavigator); + ctor public DialogFragmentNavigator.Destination(androidx.navigation.NavigatorProvider navigatorProvider); + method public final String getClassName(); + method public final androidx.navigation.fragment.DialogFragmentNavigator.Destination setClassName(String className); + property public final String className; + } + + @androidx.navigation.NavDestinationDsl public final class DialogFragmentNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder { + ctor @Deprecated public DialogFragmentNavigatorDestinationBuilder(androidx.navigation.fragment.DialogFragmentNavigator navigator, @IdRes int id, kotlin.reflect.KClass fragmentClass); + ctor public DialogFragmentNavigatorDestinationBuilder(androidx.navigation.fragment.DialogFragmentNavigator navigator, String route, kotlin.reflect.KClass fragmentClass); + ctor public DialogFragmentNavigatorDestinationBuilder(androidx.navigation.fragment.DialogFragmentNavigator navigator, kotlin.reflect.KClass route, java.util.Map> typeMap, kotlin.reflect.KClass fragmentClass); + method public androidx.navigation.fragment.DialogFragmentNavigator.Destination build(); + } + + public final class DialogFragmentNavigatorDestinationBuilderKt { + method @Deprecated public static inline void dialog(androidx.navigation.NavGraphBuilder, @IdRes int id); + method @Deprecated public static inline void dialog(androidx.navigation.NavGraphBuilder, @IdRes int id, kotlin.jvm.functions.Function1 builder); + method public static inline void dialog(androidx.navigation.NavGraphBuilder, String route); + method public static inline void dialog(androidx.navigation.NavGraphBuilder, String route, kotlin.jvm.functions.Function1 builder); + method public static inline void dialog(androidx.navigation.NavGraphBuilder, optional java.util.Map> typeMap); + method public static inline void dialog(androidx.navigation.NavGraphBuilder, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public final class FragmentKt { + method public static androidx.navigation.NavController findNavController(androidx.fragment.app.Fragment); + } + + public final class FragmentNavArgsLazyKt { + method @MainThread public static inline androidx.navigation.NavArgsLazy navArgs(androidx.fragment.app.Fragment); + } + + @androidx.navigation.Navigator.Name("fragment") public class FragmentNavigator extends androidx.navigation.Navigator { + ctor public FragmentNavigator(android.content.Context context, androidx.fragment.app.FragmentManager fragmentManager, int containerId); + method public androidx.navigation.fragment.FragmentNavigator.Destination createDestination(); + method @Deprecated public androidx.fragment.app.Fragment instantiateFragment(android.content.Context context, androidx.fragment.app.FragmentManager fragmentManager, String className, android.os.Bundle? args); + } + + @androidx.navigation.NavDestination.ClassType(Fragment::class) public static class FragmentNavigator.Destination extends androidx.navigation.NavDestination { + ctor public FragmentNavigator.Destination(androidx.navigation.Navigator fragmentNavigator); + ctor public FragmentNavigator.Destination(androidx.navigation.NavigatorProvider navigatorProvider); + method public final String getClassName(); + method public final androidx.navigation.fragment.FragmentNavigator.Destination setClassName(String className); + property public final String className; + } + + public static final class FragmentNavigator.Extras implements androidx.navigation.Navigator.Extras { + method public java.util.Map getSharedElements(); + property public final java.util.Map sharedElements; + } + + public static final class FragmentNavigator.Extras.Builder { + ctor public FragmentNavigator.Extras.Builder(); + method public androidx.navigation.fragment.FragmentNavigator.Extras.Builder addSharedElement(android.view.View sharedElement, String name); + method public androidx.navigation.fragment.FragmentNavigator.Extras.Builder addSharedElements(java.util.Map sharedElements); + method public androidx.navigation.fragment.FragmentNavigator.Extras build(); + } + + @androidx.navigation.NavDestinationDsl public final class FragmentNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder { + ctor @Deprecated public FragmentNavigatorDestinationBuilder(androidx.navigation.fragment.FragmentNavigator navigator, @IdRes int id, kotlin.reflect.KClass fragmentClass); + ctor public FragmentNavigatorDestinationBuilder(androidx.navigation.fragment.FragmentNavigator navigator, String route, kotlin.reflect.KClass fragmentClass); + ctor public FragmentNavigatorDestinationBuilder(androidx.navigation.fragment.FragmentNavigator navigator, kotlin.reflect.KClass route, java.util.Map> typeMap, kotlin.reflect.KClass fragmentClass); + method public androidx.navigation.fragment.FragmentNavigator.Destination build(); + } + + public final class FragmentNavigatorDestinationBuilderKt { + method @Deprecated public static inline void fragment(androidx.navigation.NavGraphBuilder, @IdRes int id); + method @Deprecated public static inline void fragment(androidx.navigation.NavGraphBuilder, @IdRes int id, kotlin.jvm.functions.Function1 builder); + method public static inline void fragment(androidx.navigation.NavGraphBuilder, String route); + method public static inline void fragment(androidx.navigation.NavGraphBuilder, String route, kotlin.jvm.functions.Function1 builder); + method public static inline void fragment(androidx.navigation.NavGraphBuilder, optional java.util.Map> typeMap); + method public static inline void fragment(androidx.navigation.NavGraphBuilder, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public final class FragmentNavigatorExtrasKt { + method public static androidx.navigation.fragment.FragmentNavigator.Extras FragmentNavigatorExtras(kotlin.Pair... sharedElements); + } + + public class NavHostFragment extends androidx.fragment.app.Fragment implements androidx.navigation.NavHost { + ctor public NavHostFragment(); + method public static final androidx.navigation.fragment.NavHostFragment create(@NavigationRes int graphResId); + method public static final androidx.navigation.fragment.NavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs); + method @Deprecated protected androidx.navigation.Navigator createFragmentNavigator(); + method public static final androidx.navigation.NavController findNavController(androidx.fragment.app.Fragment fragment); + method public final androidx.navigation.NavController getNavController(); + method @Deprecated @CallSuper protected void onCreateNavController(androidx.navigation.NavController navController); + method @CallSuper protected void onCreateNavHostController(androidx.navigation.NavHostController navHostController); + property public final androidx.navigation.NavController navController; + field public static final androidx.navigation.fragment.NavHostFragment.Companion Companion; + } + + public static final class NavHostFragment.Companion { + method public androidx.navigation.fragment.NavHostFragment create(@NavigationRes int graphResId); + method public androidx.navigation.fragment.NavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs); + method public androidx.navigation.NavController findNavController(androidx.fragment.app.Fragment fragment); + } + +} + diff --git a/navigation/navigation-fragment/api/2.8.0-beta07.txt b/navigation/navigation-fragment/api/2.8.0-beta07.txt new file mode 100644 index 0000000000000..0db42b847d47c --- /dev/null +++ b/navigation/navigation-fragment/api/2.8.0-beta07.txt @@ -0,0 +1,131 @@ +// Signature format: 4.0 +package androidx.navigation { + + public final class NavGraphViewModelLazyKt { + method @MainThread public static inline kotlin.Lazy navGraphViewModels(androidx.fragment.app.Fragment, @IdRes int navGraphId, optional kotlin.jvm.functions.Function0? extrasProducer, optional kotlin.jvm.functions.Function0? factoryProducer); + method @Deprecated @MainThread public static inline kotlin.Lazy navGraphViewModels(androidx.fragment.app.Fragment, @IdRes int navGraphId, optional kotlin.jvm.functions.Function0? factoryProducer); + method @MainThread public static inline kotlin.Lazy navGraphViewModels(androidx.fragment.app.Fragment, String navGraphRoute, optional kotlin.jvm.functions.Function0? extrasProducer, optional kotlin.jvm.functions.Function0? factoryProducer); + method @Deprecated @MainThread public static inline kotlin.Lazy navGraphViewModels(androidx.fragment.app.Fragment, String navGraphRoute, optional kotlin.jvm.functions.Function0? factoryProducer); + } + +} + +package androidx.navigation.fragment { + + public abstract class AbstractListDetailFragment extends androidx.fragment.app.Fragment { + ctor public AbstractListDetailFragment(); + method public final androidx.navigation.fragment.NavHostFragment getDetailPaneNavHostFragment(); + method public final androidx.slidingpanelayout.widget.SlidingPaneLayout getSlidingPaneLayout(); + method public androidx.navigation.fragment.NavHostFragment onCreateDetailPaneNavHostFragment(); + method public abstract android.view.View onCreateListPaneView(android.view.LayoutInflater inflater, android.view.ViewGroup? container, android.os.Bundle? savedInstanceState); + method @CallSuper public final android.view.View onCreateView(android.view.LayoutInflater inflater, android.view.ViewGroup? container, android.os.Bundle? savedInstanceState); + method public void onListPaneViewCreated(android.view.View view, android.os.Bundle? savedInstanceState); + method @CallSuper public final void onViewCreated(android.view.View view, android.os.Bundle? savedInstanceState); + property public final androidx.navigation.fragment.NavHostFragment detailPaneNavHostFragment; + property public final androidx.slidingpanelayout.widget.SlidingPaneLayout slidingPaneLayout; + } + + @androidx.navigation.Navigator.Name("dialog") public final class DialogFragmentNavigator extends androidx.navigation.Navigator { + ctor public DialogFragmentNavigator(android.content.Context context, androidx.fragment.app.FragmentManager fragmentManager); + method public androidx.navigation.fragment.DialogFragmentNavigator.Destination createDestination(); + } + + @androidx.navigation.NavDestination.ClassType(DialogFragment::class) public static class DialogFragmentNavigator.Destination extends androidx.navigation.NavDestination implements androidx.navigation.FloatingWindow { + ctor public DialogFragmentNavigator.Destination(androidx.navigation.Navigator fragmentNavigator); + ctor public DialogFragmentNavigator.Destination(androidx.navigation.NavigatorProvider navigatorProvider); + method public final String getClassName(); + method public final androidx.navigation.fragment.DialogFragmentNavigator.Destination setClassName(String className); + property public final String className; + } + + @androidx.navigation.NavDestinationDsl public final class DialogFragmentNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder { + ctor @Deprecated public DialogFragmentNavigatorDestinationBuilder(androidx.navigation.fragment.DialogFragmentNavigator navigator, @IdRes int id, kotlin.reflect.KClass fragmentClass); + ctor public DialogFragmentNavigatorDestinationBuilder(androidx.navigation.fragment.DialogFragmentNavigator navigator, String route, kotlin.reflect.KClass fragmentClass); + ctor public DialogFragmentNavigatorDestinationBuilder(androidx.navigation.fragment.DialogFragmentNavigator navigator, kotlin.reflect.KClass route, java.util.Map> typeMap, kotlin.reflect.KClass fragmentClass); + method public androidx.navigation.fragment.DialogFragmentNavigator.Destination build(); + } + + public final class DialogFragmentNavigatorDestinationBuilderKt { + method @Deprecated public static inline void dialog(androidx.navigation.NavGraphBuilder, @IdRes int id); + method @Deprecated public static inline void dialog(androidx.navigation.NavGraphBuilder, @IdRes int id, kotlin.jvm.functions.Function1 builder); + method public static inline void dialog(androidx.navigation.NavGraphBuilder, String route); + method public static inline void dialog(androidx.navigation.NavGraphBuilder, String route, kotlin.jvm.functions.Function1 builder); + method public static inline void dialog(androidx.navigation.NavGraphBuilder, optional java.util.Map> typeMap); + method public static inline void dialog(androidx.navigation.NavGraphBuilder, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public final class FragmentKt { + method public static androidx.navigation.NavController findNavController(androidx.fragment.app.Fragment); + } + + public final class FragmentNavArgsLazyKt { + method @MainThread public static inline androidx.navigation.NavArgsLazy navArgs(androidx.fragment.app.Fragment); + } + + @androidx.navigation.Navigator.Name("fragment") public class FragmentNavigator extends androidx.navigation.Navigator { + ctor public FragmentNavigator(android.content.Context context, androidx.fragment.app.FragmentManager fragmentManager, int containerId); + method public androidx.navigation.fragment.FragmentNavigator.Destination createDestination(); + method @Deprecated public androidx.fragment.app.Fragment instantiateFragment(android.content.Context context, androidx.fragment.app.FragmentManager fragmentManager, String className, android.os.Bundle? args); + } + + @androidx.navigation.NavDestination.ClassType(Fragment::class) public static class FragmentNavigator.Destination extends androidx.navigation.NavDestination { + ctor public FragmentNavigator.Destination(androidx.navigation.Navigator fragmentNavigator); + ctor public FragmentNavigator.Destination(androidx.navigation.NavigatorProvider navigatorProvider); + method public final String getClassName(); + method public final androidx.navigation.fragment.FragmentNavigator.Destination setClassName(String className); + property public final String className; + } + + public static final class FragmentNavigator.Extras implements androidx.navigation.Navigator.Extras { + method public java.util.Map getSharedElements(); + property public final java.util.Map sharedElements; + } + + public static final class FragmentNavigator.Extras.Builder { + ctor public FragmentNavigator.Extras.Builder(); + method public androidx.navigation.fragment.FragmentNavigator.Extras.Builder addSharedElement(android.view.View sharedElement, String name); + method public androidx.navigation.fragment.FragmentNavigator.Extras.Builder addSharedElements(java.util.Map sharedElements); + method public androidx.navigation.fragment.FragmentNavigator.Extras build(); + } + + @androidx.navigation.NavDestinationDsl public final class FragmentNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder { + ctor @Deprecated public FragmentNavigatorDestinationBuilder(androidx.navigation.fragment.FragmentNavigator navigator, @IdRes int id, kotlin.reflect.KClass fragmentClass); + ctor public FragmentNavigatorDestinationBuilder(androidx.navigation.fragment.FragmentNavigator navigator, String route, kotlin.reflect.KClass fragmentClass); + ctor public FragmentNavigatorDestinationBuilder(androidx.navigation.fragment.FragmentNavigator navigator, kotlin.reflect.KClass route, java.util.Map> typeMap, kotlin.reflect.KClass fragmentClass); + method public androidx.navigation.fragment.FragmentNavigator.Destination build(); + } + + public final class FragmentNavigatorDestinationBuilderKt { + method @Deprecated public static inline void fragment(androidx.navigation.NavGraphBuilder, @IdRes int id); + method @Deprecated public static inline void fragment(androidx.navigation.NavGraphBuilder, @IdRes int id, kotlin.jvm.functions.Function1 builder); + method public static inline void fragment(androidx.navigation.NavGraphBuilder, String route); + method public static inline void fragment(androidx.navigation.NavGraphBuilder, String route, kotlin.jvm.functions.Function1 builder); + method public static inline void fragment(androidx.navigation.NavGraphBuilder, optional java.util.Map> typeMap); + method public static inline void fragment(androidx.navigation.NavGraphBuilder, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public final class FragmentNavigatorExtrasKt { + method public static androidx.navigation.fragment.FragmentNavigator.Extras FragmentNavigatorExtras(kotlin.Pair... sharedElements); + } + + public class NavHostFragment extends androidx.fragment.app.Fragment implements androidx.navigation.NavHost { + ctor public NavHostFragment(); + method public static final androidx.navigation.fragment.NavHostFragment create(@NavigationRes int graphResId); + method public static final androidx.navigation.fragment.NavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs); + method @Deprecated protected androidx.navigation.Navigator createFragmentNavigator(); + method public static final androidx.navigation.NavController findNavController(androidx.fragment.app.Fragment fragment); + method public final androidx.navigation.NavController getNavController(); + method @Deprecated @CallSuper protected void onCreateNavController(androidx.navigation.NavController navController); + method @CallSuper protected void onCreateNavHostController(androidx.navigation.NavHostController navHostController); + property public final androidx.navigation.NavController navController; + field public static final androidx.navigation.fragment.NavHostFragment.Companion Companion; + } + + public static final class NavHostFragment.Companion { + method public androidx.navigation.fragment.NavHostFragment create(@NavigationRes int graphResId); + method public androidx.navigation.fragment.NavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs); + method public androidx.navigation.NavController findNavController(androidx.fragment.app.Fragment fragment); + } + +} + diff --git a/navigation/navigation-fragment/api/res-2.8.0-beta06.txt b/navigation/navigation-fragment/api/res-2.8.0-beta06.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/navigation/navigation-fragment/api/res-2.8.0-beta07.txt b/navigation/navigation-fragment/api/res-2.8.0-beta07.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/navigation/navigation-fragment/api/restricted_2.8.0-beta06.txt b/navigation/navigation-fragment/api/restricted_2.8.0-beta06.txt new file mode 100644 index 0000000000000..0db42b847d47c --- /dev/null +++ b/navigation/navigation-fragment/api/restricted_2.8.0-beta06.txt @@ -0,0 +1,131 @@ +// Signature format: 4.0 +package androidx.navigation { + + public final class NavGraphViewModelLazyKt { + method @MainThread public static inline kotlin.Lazy navGraphViewModels(androidx.fragment.app.Fragment, @IdRes int navGraphId, optional kotlin.jvm.functions.Function0? extrasProducer, optional kotlin.jvm.functions.Function0? factoryProducer); + method @Deprecated @MainThread public static inline kotlin.Lazy navGraphViewModels(androidx.fragment.app.Fragment, @IdRes int navGraphId, optional kotlin.jvm.functions.Function0? factoryProducer); + method @MainThread public static inline kotlin.Lazy navGraphViewModels(androidx.fragment.app.Fragment, String navGraphRoute, optional kotlin.jvm.functions.Function0? extrasProducer, optional kotlin.jvm.functions.Function0? factoryProducer); + method @Deprecated @MainThread public static inline kotlin.Lazy navGraphViewModels(androidx.fragment.app.Fragment, String navGraphRoute, optional kotlin.jvm.functions.Function0? factoryProducer); + } + +} + +package androidx.navigation.fragment { + + public abstract class AbstractListDetailFragment extends androidx.fragment.app.Fragment { + ctor public AbstractListDetailFragment(); + method public final androidx.navigation.fragment.NavHostFragment getDetailPaneNavHostFragment(); + method public final androidx.slidingpanelayout.widget.SlidingPaneLayout getSlidingPaneLayout(); + method public androidx.navigation.fragment.NavHostFragment onCreateDetailPaneNavHostFragment(); + method public abstract android.view.View onCreateListPaneView(android.view.LayoutInflater inflater, android.view.ViewGroup? container, android.os.Bundle? savedInstanceState); + method @CallSuper public final android.view.View onCreateView(android.view.LayoutInflater inflater, android.view.ViewGroup? container, android.os.Bundle? savedInstanceState); + method public void onListPaneViewCreated(android.view.View view, android.os.Bundle? savedInstanceState); + method @CallSuper public final void onViewCreated(android.view.View view, android.os.Bundle? savedInstanceState); + property public final androidx.navigation.fragment.NavHostFragment detailPaneNavHostFragment; + property public final androidx.slidingpanelayout.widget.SlidingPaneLayout slidingPaneLayout; + } + + @androidx.navigation.Navigator.Name("dialog") public final class DialogFragmentNavigator extends androidx.navigation.Navigator { + ctor public DialogFragmentNavigator(android.content.Context context, androidx.fragment.app.FragmentManager fragmentManager); + method public androidx.navigation.fragment.DialogFragmentNavigator.Destination createDestination(); + } + + @androidx.navigation.NavDestination.ClassType(DialogFragment::class) public static class DialogFragmentNavigator.Destination extends androidx.navigation.NavDestination implements androidx.navigation.FloatingWindow { + ctor public DialogFragmentNavigator.Destination(androidx.navigation.Navigator fragmentNavigator); + ctor public DialogFragmentNavigator.Destination(androidx.navigation.NavigatorProvider navigatorProvider); + method public final String getClassName(); + method public final androidx.navigation.fragment.DialogFragmentNavigator.Destination setClassName(String className); + property public final String className; + } + + @androidx.navigation.NavDestinationDsl public final class DialogFragmentNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder { + ctor @Deprecated public DialogFragmentNavigatorDestinationBuilder(androidx.navigation.fragment.DialogFragmentNavigator navigator, @IdRes int id, kotlin.reflect.KClass fragmentClass); + ctor public DialogFragmentNavigatorDestinationBuilder(androidx.navigation.fragment.DialogFragmentNavigator navigator, String route, kotlin.reflect.KClass fragmentClass); + ctor public DialogFragmentNavigatorDestinationBuilder(androidx.navigation.fragment.DialogFragmentNavigator navigator, kotlin.reflect.KClass route, java.util.Map> typeMap, kotlin.reflect.KClass fragmentClass); + method public androidx.navigation.fragment.DialogFragmentNavigator.Destination build(); + } + + public final class DialogFragmentNavigatorDestinationBuilderKt { + method @Deprecated public static inline void dialog(androidx.navigation.NavGraphBuilder, @IdRes int id); + method @Deprecated public static inline void dialog(androidx.navigation.NavGraphBuilder, @IdRes int id, kotlin.jvm.functions.Function1 builder); + method public static inline void dialog(androidx.navigation.NavGraphBuilder, String route); + method public static inline void dialog(androidx.navigation.NavGraphBuilder, String route, kotlin.jvm.functions.Function1 builder); + method public static inline void dialog(androidx.navigation.NavGraphBuilder, optional java.util.Map> typeMap); + method public static inline void dialog(androidx.navigation.NavGraphBuilder, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public final class FragmentKt { + method public static androidx.navigation.NavController findNavController(androidx.fragment.app.Fragment); + } + + public final class FragmentNavArgsLazyKt { + method @MainThread public static inline androidx.navigation.NavArgsLazy navArgs(androidx.fragment.app.Fragment); + } + + @androidx.navigation.Navigator.Name("fragment") public class FragmentNavigator extends androidx.navigation.Navigator { + ctor public FragmentNavigator(android.content.Context context, androidx.fragment.app.FragmentManager fragmentManager, int containerId); + method public androidx.navigation.fragment.FragmentNavigator.Destination createDestination(); + method @Deprecated public androidx.fragment.app.Fragment instantiateFragment(android.content.Context context, androidx.fragment.app.FragmentManager fragmentManager, String className, android.os.Bundle? args); + } + + @androidx.navigation.NavDestination.ClassType(Fragment::class) public static class FragmentNavigator.Destination extends androidx.navigation.NavDestination { + ctor public FragmentNavigator.Destination(androidx.navigation.Navigator fragmentNavigator); + ctor public FragmentNavigator.Destination(androidx.navigation.NavigatorProvider navigatorProvider); + method public final String getClassName(); + method public final androidx.navigation.fragment.FragmentNavigator.Destination setClassName(String className); + property public final String className; + } + + public static final class FragmentNavigator.Extras implements androidx.navigation.Navigator.Extras { + method public java.util.Map getSharedElements(); + property public final java.util.Map sharedElements; + } + + public static final class FragmentNavigator.Extras.Builder { + ctor public FragmentNavigator.Extras.Builder(); + method public androidx.navigation.fragment.FragmentNavigator.Extras.Builder addSharedElement(android.view.View sharedElement, String name); + method public androidx.navigation.fragment.FragmentNavigator.Extras.Builder addSharedElements(java.util.Map sharedElements); + method public androidx.navigation.fragment.FragmentNavigator.Extras build(); + } + + @androidx.navigation.NavDestinationDsl public final class FragmentNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder { + ctor @Deprecated public FragmentNavigatorDestinationBuilder(androidx.navigation.fragment.FragmentNavigator navigator, @IdRes int id, kotlin.reflect.KClass fragmentClass); + ctor public FragmentNavigatorDestinationBuilder(androidx.navigation.fragment.FragmentNavigator navigator, String route, kotlin.reflect.KClass fragmentClass); + ctor public FragmentNavigatorDestinationBuilder(androidx.navigation.fragment.FragmentNavigator navigator, kotlin.reflect.KClass route, java.util.Map> typeMap, kotlin.reflect.KClass fragmentClass); + method public androidx.navigation.fragment.FragmentNavigator.Destination build(); + } + + public final class FragmentNavigatorDestinationBuilderKt { + method @Deprecated public static inline void fragment(androidx.navigation.NavGraphBuilder, @IdRes int id); + method @Deprecated public static inline void fragment(androidx.navigation.NavGraphBuilder, @IdRes int id, kotlin.jvm.functions.Function1 builder); + method public static inline void fragment(androidx.navigation.NavGraphBuilder, String route); + method public static inline void fragment(androidx.navigation.NavGraphBuilder, String route, kotlin.jvm.functions.Function1 builder); + method public static inline void fragment(androidx.navigation.NavGraphBuilder, optional java.util.Map> typeMap); + method public static inline void fragment(androidx.navigation.NavGraphBuilder, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public final class FragmentNavigatorExtrasKt { + method public static androidx.navigation.fragment.FragmentNavigator.Extras FragmentNavigatorExtras(kotlin.Pair... sharedElements); + } + + public class NavHostFragment extends androidx.fragment.app.Fragment implements androidx.navigation.NavHost { + ctor public NavHostFragment(); + method public static final androidx.navigation.fragment.NavHostFragment create(@NavigationRes int graphResId); + method public static final androidx.navigation.fragment.NavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs); + method @Deprecated protected androidx.navigation.Navigator createFragmentNavigator(); + method public static final androidx.navigation.NavController findNavController(androidx.fragment.app.Fragment fragment); + method public final androidx.navigation.NavController getNavController(); + method @Deprecated @CallSuper protected void onCreateNavController(androidx.navigation.NavController navController); + method @CallSuper protected void onCreateNavHostController(androidx.navigation.NavHostController navHostController); + property public final androidx.navigation.NavController navController; + field public static final androidx.navigation.fragment.NavHostFragment.Companion Companion; + } + + public static final class NavHostFragment.Companion { + method public androidx.navigation.fragment.NavHostFragment create(@NavigationRes int graphResId); + method public androidx.navigation.fragment.NavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs); + method public androidx.navigation.NavController findNavController(androidx.fragment.app.Fragment fragment); + } + +} + diff --git a/navigation/navigation-fragment/api/restricted_2.8.0-beta07.txt b/navigation/navigation-fragment/api/restricted_2.8.0-beta07.txt new file mode 100644 index 0000000000000..0db42b847d47c --- /dev/null +++ b/navigation/navigation-fragment/api/restricted_2.8.0-beta07.txt @@ -0,0 +1,131 @@ +// Signature format: 4.0 +package androidx.navigation { + + public final class NavGraphViewModelLazyKt { + method @MainThread public static inline kotlin.Lazy navGraphViewModels(androidx.fragment.app.Fragment, @IdRes int navGraphId, optional kotlin.jvm.functions.Function0? extrasProducer, optional kotlin.jvm.functions.Function0? factoryProducer); + method @Deprecated @MainThread public static inline kotlin.Lazy navGraphViewModels(androidx.fragment.app.Fragment, @IdRes int navGraphId, optional kotlin.jvm.functions.Function0? factoryProducer); + method @MainThread public static inline kotlin.Lazy navGraphViewModels(androidx.fragment.app.Fragment, String navGraphRoute, optional kotlin.jvm.functions.Function0? extrasProducer, optional kotlin.jvm.functions.Function0? factoryProducer); + method @Deprecated @MainThread public static inline kotlin.Lazy navGraphViewModels(androidx.fragment.app.Fragment, String navGraphRoute, optional kotlin.jvm.functions.Function0? factoryProducer); + } + +} + +package androidx.navigation.fragment { + + public abstract class AbstractListDetailFragment extends androidx.fragment.app.Fragment { + ctor public AbstractListDetailFragment(); + method public final androidx.navigation.fragment.NavHostFragment getDetailPaneNavHostFragment(); + method public final androidx.slidingpanelayout.widget.SlidingPaneLayout getSlidingPaneLayout(); + method public androidx.navigation.fragment.NavHostFragment onCreateDetailPaneNavHostFragment(); + method public abstract android.view.View onCreateListPaneView(android.view.LayoutInflater inflater, android.view.ViewGroup? container, android.os.Bundle? savedInstanceState); + method @CallSuper public final android.view.View onCreateView(android.view.LayoutInflater inflater, android.view.ViewGroup? container, android.os.Bundle? savedInstanceState); + method public void onListPaneViewCreated(android.view.View view, android.os.Bundle? savedInstanceState); + method @CallSuper public final void onViewCreated(android.view.View view, android.os.Bundle? savedInstanceState); + property public final androidx.navigation.fragment.NavHostFragment detailPaneNavHostFragment; + property public final androidx.slidingpanelayout.widget.SlidingPaneLayout slidingPaneLayout; + } + + @androidx.navigation.Navigator.Name("dialog") public final class DialogFragmentNavigator extends androidx.navigation.Navigator { + ctor public DialogFragmentNavigator(android.content.Context context, androidx.fragment.app.FragmentManager fragmentManager); + method public androidx.navigation.fragment.DialogFragmentNavigator.Destination createDestination(); + } + + @androidx.navigation.NavDestination.ClassType(DialogFragment::class) public static class DialogFragmentNavigator.Destination extends androidx.navigation.NavDestination implements androidx.navigation.FloatingWindow { + ctor public DialogFragmentNavigator.Destination(androidx.navigation.Navigator fragmentNavigator); + ctor public DialogFragmentNavigator.Destination(androidx.navigation.NavigatorProvider navigatorProvider); + method public final String getClassName(); + method public final androidx.navigation.fragment.DialogFragmentNavigator.Destination setClassName(String className); + property public final String className; + } + + @androidx.navigation.NavDestinationDsl public final class DialogFragmentNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder { + ctor @Deprecated public DialogFragmentNavigatorDestinationBuilder(androidx.navigation.fragment.DialogFragmentNavigator navigator, @IdRes int id, kotlin.reflect.KClass fragmentClass); + ctor public DialogFragmentNavigatorDestinationBuilder(androidx.navigation.fragment.DialogFragmentNavigator navigator, String route, kotlin.reflect.KClass fragmentClass); + ctor public DialogFragmentNavigatorDestinationBuilder(androidx.navigation.fragment.DialogFragmentNavigator navigator, kotlin.reflect.KClass route, java.util.Map> typeMap, kotlin.reflect.KClass fragmentClass); + method public androidx.navigation.fragment.DialogFragmentNavigator.Destination build(); + } + + public final class DialogFragmentNavigatorDestinationBuilderKt { + method @Deprecated public static inline void dialog(androidx.navigation.NavGraphBuilder, @IdRes int id); + method @Deprecated public static inline void dialog(androidx.navigation.NavGraphBuilder, @IdRes int id, kotlin.jvm.functions.Function1 builder); + method public static inline void dialog(androidx.navigation.NavGraphBuilder, String route); + method public static inline void dialog(androidx.navigation.NavGraphBuilder, String route, kotlin.jvm.functions.Function1 builder); + method public static inline void dialog(androidx.navigation.NavGraphBuilder, optional java.util.Map> typeMap); + method public static inline void dialog(androidx.navigation.NavGraphBuilder, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public final class FragmentKt { + method public static androidx.navigation.NavController findNavController(androidx.fragment.app.Fragment); + } + + public final class FragmentNavArgsLazyKt { + method @MainThread public static inline androidx.navigation.NavArgsLazy navArgs(androidx.fragment.app.Fragment); + } + + @androidx.navigation.Navigator.Name("fragment") public class FragmentNavigator extends androidx.navigation.Navigator { + ctor public FragmentNavigator(android.content.Context context, androidx.fragment.app.FragmentManager fragmentManager, int containerId); + method public androidx.navigation.fragment.FragmentNavigator.Destination createDestination(); + method @Deprecated public androidx.fragment.app.Fragment instantiateFragment(android.content.Context context, androidx.fragment.app.FragmentManager fragmentManager, String className, android.os.Bundle? args); + } + + @androidx.navigation.NavDestination.ClassType(Fragment::class) public static class FragmentNavigator.Destination extends androidx.navigation.NavDestination { + ctor public FragmentNavigator.Destination(androidx.navigation.Navigator fragmentNavigator); + ctor public FragmentNavigator.Destination(androidx.navigation.NavigatorProvider navigatorProvider); + method public final String getClassName(); + method public final androidx.navigation.fragment.FragmentNavigator.Destination setClassName(String className); + property public final String className; + } + + public static final class FragmentNavigator.Extras implements androidx.navigation.Navigator.Extras { + method public java.util.Map getSharedElements(); + property public final java.util.Map sharedElements; + } + + public static final class FragmentNavigator.Extras.Builder { + ctor public FragmentNavigator.Extras.Builder(); + method public androidx.navigation.fragment.FragmentNavigator.Extras.Builder addSharedElement(android.view.View sharedElement, String name); + method public androidx.navigation.fragment.FragmentNavigator.Extras.Builder addSharedElements(java.util.Map sharedElements); + method public androidx.navigation.fragment.FragmentNavigator.Extras build(); + } + + @androidx.navigation.NavDestinationDsl public final class FragmentNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder { + ctor @Deprecated public FragmentNavigatorDestinationBuilder(androidx.navigation.fragment.FragmentNavigator navigator, @IdRes int id, kotlin.reflect.KClass fragmentClass); + ctor public FragmentNavigatorDestinationBuilder(androidx.navigation.fragment.FragmentNavigator navigator, String route, kotlin.reflect.KClass fragmentClass); + ctor public FragmentNavigatorDestinationBuilder(androidx.navigation.fragment.FragmentNavigator navigator, kotlin.reflect.KClass route, java.util.Map> typeMap, kotlin.reflect.KClass fragmentClass); + method public androidx.navigation.fragment.FragmentNavigator.Destination build(); + } + + public final class FragmentNavigatorDestinationBuilderKt { + method @Deprecated public static inline void fragment(androidx.navigation.NavGraphBuilder, @IdRes int id); + method @Deprecated public static inline void fragment(androidx.navigation.NavGraphBuilder, @IdRes int id, kotlin.jvm.functions.Function1 builder); + method public static inline void fragment(androidx.navigation.NavGraphBuilder, String route); + method public static inline void fragment(androidx.navigation.NavGraphBuilder, String route, kotlin.jvm.functions.Function1 builder); + method public static inline void fragment(androidx.navigation.NavGraphBuilder, optional java.util.Map> typeMap); + method public static inline void fragment(androidx.navigation.NavGraphBuilder, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public final class FragmentNavigatorExtrasKt { + method public static androidx.navigation.fragment.FragmentNavigator.Extras FragmentNavigatorExtras(kotlin.Pair... sharedElements); + } + + public class NavHostFragment extends androidx.fragment.app.Fragment implements androidx.navigation.NavHost { + ctor public NavHostFragment(); + method public static final androidx.navigation.fragment.NavHostFragment create(@NavigationRes int graphResId); + method public static final androidx.navigation.fragment.NavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs); + method @Deprecated protected androidx.navigation.Navigator createFragmentNavigator(); + method public static final androidx.navigation.NavController findNavController(androidx.fragment.app.Fragment fragment); + method public final androidx.navigation.NavController getNavController(); + method @Deprecated @CallSuper protected void onCreateNavController(androidx.navigation.NavController navController); + method @CallSuper protected void onCreateNavHostController(androidx.navigation.NavHostController navHostController); + property public final androidx.navigation.NavController navController; + field public static final androidx.navigation.fragment.NavHostFragment.Companion Companion; + } + + public static final class NavHostFragment.Companion { + method public androidx.navigation.fragment.NavHostFragment create(@NavigationRes int graphResId); + method public androidx.navigation.fragment.NavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs); + method public androidx.navigation.NavController findNavController(androidx.fragment.app.Fragment fragment); + } + +} + diff --git a/navigation/navigation-fragment/build.gradle b/navigation/navigation-fragment/build.gradle index 7bf3df6c11f01..b20d87a5e0bb7 100644 --- a/navigation/navigation-fragment/build.gradle +++ b/navigation/navigation-fragment/build.gradle @@ -56,7 +56,6 @@ androidx { type = LibraryType.PUBLISHED_LIBRARY inceptionYear = "2017" description = "Android Navigation-Fragment" - metalavaK2UastEnabled = true legacyDisableKotlinStrictApiMode = true } diff --git a/navigation/navigation-lint-common/build.gradle b/navigation/navigation-lint-common/build.gradle new file mode 100644 index 0000000000000..4ed49c5a61ecc --- /dev/null +++ b/navigation/navigation-lint-common/build.gradle @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * This file was created using the `create_project.py` script located in the + * `/development/project-creator` directory. + * + * Please use that script when creating a new project, rather than copying an existing project and + * modifying its settings. + */ +import androidx.build.LibraryType + +plugins { + id("AndroidXPlugin") + id("kotlin") +} + +dependencies { + compileOnly(libs.androidLintMinApi) + compileOnly(libs.kotlinStdlib) +} + +androidx { + name = "Navigation Lint Utils" + type = LibraryType.LINT + inceptionYear = "2024" + description = "Lint utils for Navigation lint checks" +} diff --git a/navigation/navigation-common-lint/src/main/java/androidx/navigation/common/lint/BaseWrongStartDestinationTypeDetector.kt b/navigation/navigation-lint-common/src/main/java/androidx/navigation/lint/common/BaseWrongStartDestinationTypeDetector.kt similarity index 98% rename from navigation/navigation-common-lint/src/main/java/androidx/navigation/common/lint/BaseWrongStartDestinationTypeDetector.kt rename to navigation/navigation-lint-common/src/main/java/androidx/navigation/lint/common/BaseWrongStartDestinationTypeDetector.kt index ffa3358433d1b..12fd2bac027b7 100644 --- a/navigation/navigation-common-lint/src/main/java/androidx/navigation/common/lint/BaseWrongStartDestinationTypeDetector.kt +++ b/navigation/navigation-lint-common/src/main/java/androidx/navigation/lint/common/BaseWrongStartDestinationTypeDetector.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package androidx.navigation.common.lint +package androidx.navigation.lint.common import com.android.tools.lint.detector.api.Category import com.android.tools.lint.detector.api.Detector diff --git a/navigation/navigation-common-lint/src/main/java/androidx/navigation/common/lint/LintUtil.kt b/navigation/navigation-lint-common/src/main/java/androidx/navigation/lint/common/LintUtil.kt similarity index 89% rename from navigation/navigation-common-lint/src/main/java/androidx/navigation/common/lint/LintUtil.kt rename to navigation/navigation-lint-common/src/main/java/androidx/navigation/lint/common/LintUtil.kt index d393265d0501b..611f180e5a8dd 100644 --- a/navigation/navigation-common-lint/src/main/java/androidx/navigation/common/lint/LintUtil.kt +++ b/navigation/navigation-lint-common/src/main/java/androidx/navigation/lint/common/LintUtil.kt @@ -14,9 +14,10 @@ * limitations under the License. */ -package androidx.navigation.common.lint +package androidx.navigation.lint.common import org.jetbrains.kotlin.analysis.api.analyze +import org.jetbrains.kotlin.analysis.api.symbols.KtClassKind import org.jetbrains.kotlin.analysis.api.symbols.KtClassOrObjectSymbol import org.jetbrains.kotlin.idea.references.mainReference import org.jetbrains.kotlin.psi.KtDotQualifiedExpression @@ -60,7 +61,8 @@ fun UExpression.isClassReference(): Pair { } as? KtClassOrObjectSymbol ?: return false to null - (symbol.classKind.isClass || symbol.classKind.name == "INTERFACE") to - symbol.name?.asString() + (symbol.classKind.isClass || + symbol.classKind == KtClassKind.INTERFACE || + symbol.classKind == KtClassKind.COMPANION_OBJECT) to symbol.name?.asString() } } diff --git a/navigation/navigation-runtime-ktx/api/2.8.0-beta06.txt b/navigation/navigation-runtime-ktx/api/2.8.0-beta06.txt new file mode 100644 index 0000000000000..e6f50d0d0fd11 --- /dev/null +++ b/navigation/navigation-runtime-ktx/api/2.8.0-beta06.txt @@ -0,0 +1 @@ +// Signature format: 4.0 diff --git a/navigation/navigation-runtime-ktx/api/2.8.0-beta07.txt b/navigation/navigation-runtime-ktx/api/2.8.0-beta07.txt new file mode 100644 index 0000000000000..e6f50d0d0fd11 --- /dev/null +++ b/navigation/navigation-runtime-ktx/api/2.8.0-beta07.txt @@ -0,0 +1 @@ +// Signature format: 4.0 diff --git a/navigation/navigation-runtime-ktx/api/res-2.8.0-beta06.txt b/navigation/navigation-runtime-ktx/api/res-2.8.0-beta06.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/navigation/navigation-runtime-ktx/api/res-2.8.0-beta07.txt b/navigation/navigation-runtime-ktx/api/res-2.8.0-beta07.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/navigation/navigation-runtime-ktx/api/restricted_2.8.0-beta06.txt b/navigation/navigation-runtime-ktx/api/restricted_2.8.0-beta06.txt new file mode 100644 index 0000000000000..e6f50d0d0fd11 --- /dev/null +++ b/navigation/navigation-runtime-ktx/api/restricted_2.8.0-beta06.txt @@ -0,0 +1 @@ +// Signature format: 4.0 diff --git a/navigation/navigation-runtime-ktx/api/restricted_2.8.0-beta07.txt b/navigation/navigation-runtime-ktx/api/restricted_2.8.0-beta07.txt new file mode 100644 index 0000000000000..e6f50d0d0fd11 --- /dev/null +++ b/navigation/navigation-runtime-ktx/api/restricted_2.8.0-beta07.txt @@ -0,0 +1 @@ +// Signature format: 4.0 diff --git a/navigation/navigation-runtime-ktx/build.gradle b/navigation/navigation-runtime-ktx/build.gradle index 36897df0d8c7c..1d67a1c65c864 100644 --- a/navigation/navigation-runtime-ktx/build.gradle +++ b/navigation/navigation-runtime-ktx/build.gradle @@ -41,7 +41,6 @@ androidx { type = LibraryType.PUBLISHED_LIBRARY_ONLY_USED_BY_KOTLIN_CONSUMERS inceptionYear = "2018" description = "Android Navigation-Runtime-Ktx" - metalavaK2UastEnabled = true } android { diff --git a/navigation/navigation-runtime-lint/build.gradle b/navigation/navigation-runtime-lint/build.gradle index 5983aed0073b0..91991d30376b5 100644 --- a/navigation/navigation-runtime-lint/build.gradle +++ b/navigation/navigation-runtime-lint/build.gradle @@ -35,7 +35,7 @@ BundleInsideHelper.forInsideLintJar(project) dependencies { compileOnly(libs.androidLintMinApi) compileOnly(libs.kotlinStdlib) - bundleInside(projectOrArtifact(":navigation:navigation-common-lint")) + bundleInside(projectOrArtifact(":navigation:navigation-lint-common")) testImplementation(libs.kotlinStdlib) testImplementation(libs.androidLint) diff --git a/navigation/navigation-runtime-lint/src/main/java/androidx/navigation/runtime/lint/WrongNavigateRouteDetector.kt b/navigation/navigation-runtime-lint/src/main/java/androidx/navigation/runtime/lint/WrongNavigateRouteDetector.kt index ee38a50b7025d..8d4fdbc003d0f 100644 --- a/navigation/navigation-runtime-lint/src/main/java/androidx/navigation/runtime/lint/WrongNavigateRouteDetector.kt +++ b/navigation/navigation-runtime-lint/src/main/java/androidx/navigation/runtime/lint/WrongNavigateRouteDetector.kt @@ -16,7 +16,7 @@ package androidx.navigation.runtime.lint -import androidx.navigation.common.lint.isClassReference +import androidx.navigation.lint.common.isClassReference import com.android.tools.lint.detector.api.Category import com.android.tools.lint.detector.api.Detector import com.android.tools.lint.detector.api.Implementation diff --git a/navigation/navigation-runtime-lint/src/main/java/androidx/navigation/runtime/lint/WrongStartDestinationTypeDetector.kt b/navigation/navigation-runtime-lint/src/main/java/androidx/navigation/runtime/lint/WrongStartDestinationTypeDetector.kt index eae2ed1fd6300..8ac38db0a5f23 100644 --- a/navigation/navigation-runtime-lint/src/main/java/androidx/navigation/runtime/lint/WrongStartDestinationTypeDetector.kt +++ b/navigation/navigation-runtime-lint/src/main/java/androidx/navigation/runtime/lint/WrongStartDestinationTypeDetector.kt @@ -16,8 +16,8 @@ package androidx.navigation.runtime.lint -import androidx.navigation.common.lint.BaseWrongStartDestinationTypeDetector -import androidx.navigation.common.lint.createWrongStartDestinationTypeIssue +import androidx.navigation.lint.common.BaseWrongStartDestinationTypeDetector +import androidx.navigation.lint.common.createWrongStartDestinationTypeIssue class WrongStartDestinationTypeDetector : BaseWrongStartDestinationTypeDetector( diff --git a/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/Stub.kt b/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/Stub.kt new file mode 100644 index 0000000000000..4b568a9d86831 --- /dev/null +++ b/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/Stub.kt @@ -0,0 +1,69 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.navigation.runtime.lint + +val TEST_CLASS = + """ +val classInstanceRef = TestClass() + +val classInstanceWithArgRef = TestClassWithArg(15) + +val innerClassInstanceRef = Outer.InnerClass(15) + +object TestGraph + +object TestObject + +class TestClass + +class TestClassWithArg(val arg: Int) + +object Outer { + data object InnerObject + + data class InnerClass ( + val innerArg: Int, + ) +} + +interface TestInterface +class InterfaceChildClass(val arg: Boolean): TestInterface +object InterfaceChildObject: TestInterface + +abstract class TestAbstract +class AbstractChildClass(val arg: Boolean): TestAbstract() +object AbstractChildObject: TestAbstract() + +// classes with companion object to simulate classes marked with @Serializable +class TestClassComp { companion object } + +class TestClassWithArgComp(val arg: Int) { companion object } + +object OuterComp { + data object InnerObject + + data class InnerClassComp ( + val innerArg: Int, + ) { companion object } +} + +class InterfaceChildClassComp(val arg: Boolean): TestInterface { companion object } + +abstract class TestAbstractComp { companion object } +class AbstractChildClassComp(val arg: Boolean): TestAbstractComp() { companion object } +object AbstractChildObjectComp: TestAbstractComp() +""" diff --git a/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/WrongNavigateRouteDetectorTest.kt b/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/WrongNavigateRouteDetectorTest.kt index 3931fb00eac32..4af2ebcece910 100644 --- a/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/WrongNavigateRouteDetectorTest.kt +++ b/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/WrongNavigateRouteDetectorTest.kt @@ -17,18 +17,28 @@ package androidx.navigation.runtime.lint import com.android.tools.lint.checks.infrastructure.LintDetectorTest +import com.android.tools.lint.checks.infrastructure.LintDetectorTest.compiled +import com.android.tools.lint.checks.infrastructure.LintDetectorTest.kotlin +import com.android.tools.lint.checks.infrastructure.TestFile import com.android.tools.lint.checks.infrastructure.TestMode import com.android.tools.lint.detector.api.Detector import com.android.tools.lint.detector.api.Issue import org.junit.Test +import org.junit.runner.RunWith +import org.junit.runners.Parameterized -class WrongNavigateRouteDetectorTest : LintDetectorTest() { +@RunWith(Parameterized::class) +class WrongNavigateRouteDetectorTest(private val testFile: TestFile) : LintDetectorTest() { override fun getDetector(): Detector = WrongNavigateRouteDetector() override fun getIssues(): MutableList = mutableListOf(WrongNavigateRouteDetector.WrongNavigateRouteType) + private companion object { + @JvmStatic @Parameterized.Parameters public fun data() = listOf(SOURCECODE, BYTECODE) + } + @Test fun testEmptyConstructorNoError() { lint() @@ -42,11 +52,12 @@ class WrongNavigateRouteDetectorTest : LintDetectorTest() { fun createGraph() { val navController = NavController() navController.navigate(route = TestClass()) + navController.navigate(route = TestClassComp()) } """ ) .indented(), - byteCode, + testFile, ) .skipTestModes(TestMode.FULLY_QUALIFIED) .run() @@ -78,11 +89,16 @@ class WrongNavigateRouteDetectorTest : LintDetectorTest() { navController.navigate(route = InterfaceChildObject) navController.navigate(route = AbstractChildClass(true)) navController.navigate(route = AbstractChildObject) + //classes with companion object to simulate marked with @Serializable + navController.navigate(route = TestClassWithArgComp(15)) + navController.navigate(route = OuterComp.InnerClassComp(15)) + navController.navigate(route = InterfaceChildClassComp(true)) + navController.navigate(route = AbstractChildClassComp(true)) } """ ) .indented(), - byteCode, + testFile, ) .skipTestModes(TestMode.FULLY_QUALIFIED) .run() @@ -116,11 +132,25 @@ class WrongNavigateRouteDetectorTest : LintDetectorTest() { navController.navigate(route = InterfaceChildClass::class) navController.navigate(route = Outer.InnerClass) navController.navigate(route = Outer.InnerClass::class) + + //classes with companion object to simulate marked with @Serializable + navController.navigate(route = TestClassComp) + navController.navigate(route = TestClassComp::class) + navController.navigate(route = TestClassWithArgComp) + navController.navigate(route = TestClassWithArgComp::class) + navController.navigate(route = OuterComp.InnerClassComp) + navController.navigate(route = OuterComp.InnerClassComp::class) + navController.navigate(route = InterfaceChildClassComp) + navController.navigate(route = InterfaceChildClassComp::class) + navController.navigate(route = AbstractChildClassComp) + navController.navigate(route = AbstractChildClassComp::class) + navController.navigate(route = TestAbstractComp) + navController.navigate(route = TestAbstractComp::class) } """ ) .indented(), - byteCode, + testFile, ) .skipTestModes(TestMode.FULLY_QUALIFIED) .run() @@ -171,13 +201,51 @@ src/com/example/test.kt:20: Error: The route should be a destination class insta src/com/example/test.kt:21: Error: The route should be a destination class instance or destination object. [WrongNavigateRouteType] navController.navigate(route = Outer.InnerClass::class) ~~~~~~~~~~~~~~~~~~~~~~~ -15 errors, 0 warnings +src/com/example/test.kt:24: Error: The route should be a destination class instance or destination object. [WrongNavigateRouteType] + navController.navigate(route = TestClassComp) + ~~~~~~~~~~~~~ +src/com/example/test.kt:25: Error: The route should be a destination class instance or destination object. [WrongNavigateRouteType] + navController.navigate(route = TestClassComp::class) + ~~~~~~~~~~~~~~~~~~~~ +src/com/example/test.kt:26: Error: The route should be a destination class instance or destination object. [WrongNavigateRouteType] + navController.navigate(route = TestClassWithArgComp) + ~~~~~~~~~~~~~~~~~~~~ +src/com/example/test.kt:27: Error: The route should be a destination class instance or destination object. [WrongNavigateRouteType] + navController.navigate(route = TestClassWithArgComp::class) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src/com/example/test.kt:28: Error: The route should be a destination class instance or destination object. [WrongNavigateRouteType] + navController.navigate(route = OuterComp.InnerClassComp) + ~~~~~~~~~~~~~~~~~~~~~~~~ +src/com/example/test.kt:29: Error: The route should be a destination class instance or destination object. [WrongNavigateRouteType] + navController.navigate(route = OuterComp.InnerClassComp::class) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src/com/example/test.kt:30: Error: The route should be a destination class instance or destination object. [WrongNavigateRouteType] + navController.navigate(route = InterfaceChildClassComp) + ~~~~~~~~~~~~~~~~~~~~~~~ +src/com/example/test.kt:31: Error: The route should be a destination class instance or destination object. [WrongNavigateRouteType] + navController.navigate(route = InterfaceChildClassComp::class) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src/com/example/test.kt:32: Error: The route should be a destination class instance or destination object. [WrongNavigateRouteType] + navController.navigate(route = AbstractChildClassComp) + ~~~~~~~~~~~~~~~~~~~~~~ +src/com/example/test.kt:33: Error: The route should be a destination class instance or destination object. [WrongNavigateRouteType] + navController.navigate(route = AbstractChildClassComp::class) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src/com/example/test.kt:34: Error: The route should be a destination class instance or destination object. [WrongNavigateRouteType] + navController.navigate(route = TestAbstractComp) + ~~~~~~~~~~~~~~~~ +src/com/example/test.kt:35: Error: The route should be a destination class instance or destination object. [WrongNavigateRouteType] + navController.navigate(route = TestAbstractComp::class) + ~~~~~~~~~~~~~~~~~~~~~~~ +27 errors, 0 warnings """ ) } +} - private val sourceCode = - """ +private val SOURCECODE = + kotlin( + """ package androidx.navigation @@ -189,46 +257,23 @@ public open class NavController { public fun navigate(route: T) {} } +""" + + TEST_CLASS + ) + .indented() -object TestObject - -class TestClass - -class TestClassWithArg(val arg: Int) - -val classInstanceRef = TestClass() - -val classInstanceWithArgRef = TestClassWithArg(15) - -object Outer { - data object InnerObject - - data class InnerClass ( - val innerArg: Int, - ) -} - -interface TestInterface -class InterfaceChildClass(val arg: Boolean): TestInterface -object InterfaceChildObject: TestInterface - -abstract class TestAbstract -class AbstractChildClass(val arg: Boolean): TestAbstract() -object AbstractChildObject: TestAbstract() -""" - - private val byteCode = - compiled( - "libs/StartDestinationLint.jar", - kotlin(sourceCode).indented(), - 0xa3960069, - """ +private val BYTECODE = + compiled( + "libs/StartDestinationLint.jar", + SOURCECODE, + 0xb1569275, + """ META-INF/main.kotlin_module: H4sIAAAAAAAA/2NgYGBmYGBgBGJOBijgUuMSTsxLKcrPTKnQy0ssy0xPLMnM zxPi90ssc87PKynKz8lJLfIu4RLl4k7Oz9VLrUjMLchJFWILSS0u8S5RYtBi AADcysPxVwAAAA== """, - """ + """ androidx/navigation/AbstractChildClass.class: H4sIAAAAAAAA/41QTW9SQRQ9M+8DeAV54Belamv9CGUhtHGnaaQkJiTYRW1Y wGrgvdAJj/eSNwPpkt/i2o2JxsSFIS79UcY7j2pcsHAxZ+65c3LunfPz17fv @@ -238,55 +283,136 @@ object AbstractChildObject: TestAbstract() 4JjhbL2qerzGs7Needzf8Xjeqq1XJ7zNzkpV1+d13rZ+fHC5b19U/rI8qet2 3vFd43TCcLh1/X8Doq1oCf9cLLtJrNMkisL0xUxTAN0kCBnKfRmH54v5OEwv xTiiTrWfTEQ0EKk0/KbpvU8W6SR8Kw3ZvVjEWs7DgVSSXjtxnOhsssIxpWtn - /66asKniVDtwCQ+InRLndHvNryg0976g9CnTPCY0GuApDgnvbVS4hbKJkSrj - RqnDp7Pxapl06Xaan1H6uNWmuBHc2HA8yXCfXoE32ZIObo9g9XCnh7s9Gnuf - StR62EV9BKawhwcj5BTKCg8VPIVHCq6Cr1D5DV3dCrfVAgAA + /66asKniVDtwCQ+InRLndHvNryg0976g9CnTPCY0GqCBQ8J7GxVuoWxipMq4 + Uerw6Wy8WiZdup3mZ5Q+brUpbgQ3NhxPMtzHU7rfZEs6uD2C1cOdHu72aOx9 + KlHrYRf1EZjCHh6MkFMoKzxU8BQeKbgKvkLlN2AWm1jVAgAA """, - """ + """ + androidx/navigation/AbstractChildClassComp$Companion.class: + H4sIAAAAAAAA/51Sy27TQBQ9Y6dxYgKkLY+E9yNIbSXqpqrYBCGVIKRIaZEo + yqYLNLGHdhJ7Bo0nUZdZ8SH8QVdILFDUJR+FuOME2AKb+zr33Ds+199/fP0G + YA9PGPa4SoyWyVmk+FSecCu1ivaHuTU8tt1TmSbdlOd5V2cfW85wRQ0BGEN9 + xKc8Srk6id4MRyK2AXyG8nOppH3B4G9sDmpYQTlECQFDyZ7KnOFZ/38Wdhja + G/2xtqlU0WiaRVJZYRRPo1fiA5+ktqsVTZjEVpsDbsbCdDYHITy3eL0V/wHf + ZwXKsP1v0xhWfxEOhOUJt5xqXjb1SUjmTNUZMLAx1c+ky3YoStoMrfksDL2G + F3p1iuazysUnvzGf7Xo77GVQ8S4+l72653p3mZuw9fcKBbjNUP0tEx3lkE/p + 9dboNBVme2xJ+K5OBMPVvlTicJINhXnHhylV1vo65umAG+nyZbHWU0qYYoGg + c4VHemJi8Vo6rPl2oqzMxEDmkpr3ldK2eF2ONmldcgKQ99zV6TvuUxY5Rciv + bH1B5byAH5AtF8UOHpKtLRpQRQjUGUWXluSn5L0luXZeqOsINxbFBaGILuMK + YT4eURYWpDu4iyYeFwvvoVX87aQB9daP4few2sNaD+u4RiGu92jmzWOwHA00 + Cc8R5riVo/wTjWwvPCoDAAA= + """, + """ + androidx/navigation/AbstractChildClassComp.class: + H4sIAAAAAAAA/5VSS08TURT+7vQ1HYqUiljABwpiqcgUQlxYQoI1mialCyRN + hNVtey2XTu+YubcNS36LazdEDYkmhrj0RxnPTCskygIXc849Z77znefPX1+/ + A9jAOkORq3bgy/axq/hAdriRvnK3m9oEvGUqh9JrVzyudcXvvU+BMSxehd8T + 2lzERMgYQ3JTKmm2GOKF/eUGQ6yw3MgggZSDOGyyedBhYPsZOBhLw0KGoOZQ + aoaV2vWrKlOmjjDbIRml2GewN1veKPXG9XkWQ8EVAVK4ybBWqHV9Qzzu0aDn + SmVEoLjnvhTveN+jJhVx9FvGD3Z40BVBedjbLQdTmGZIX5AxPPuPZi6LKGeQ + x0w4llmGhZofdNwjYZoBl0q7XCnfRDzarfum3vc8GsPkn4p3hOFtbjj5rN4g + RqtmoUiHAjTyLvmPZWiV6NVeY3h9fpJzrLwVfecnjpUdcyw7nj8/mU+tWyX2 + nKVejOeSWWvWKsV+fEha2fju5IVlU8hs3E5kkyEdHdXSlS3/fSVUHlWTrfMB + jdMEvueJYLVrGOZ2+8rInqiqgdSy6Ynty37pRip+WzBM1KQS9X6vKYI9ThiG + XM1vca/BAxnaI2emqpQIogELCnbe+P2gJV7J8N/MKE/jnyxYo8HHaUAWZsI9 + UJ1PyEqSvkM6F54s6RjZici7QtYWoS3STvEM6eLcF4yfRgxPR5FAGaskp4co + 3MBEuBB6hWy0P2TpG3K54Z5IJ4qfMf7xSprMEDCisamo1Cg4j2jTyHzD1Ft2 + htufMHcaeWJEHCZkdKZW1Fgp4i5Sw0CF/HeJ8d4BYlXcr2K+igd4SE8sVLGI + RwdgGkt4fABbY0KjoOFoLGskNbIakxr53/A96KpcBAAA + """, + """ androidx/navigation/AbstractChildObject.class: - H4sIAAAAAAAA/41STW/TQBB9u0kcxw00lI8mFGhpQVAOuK24USGFCCRLwUg0 - ioR6WturdhtnV7I3UY858UP4BxWHSiChCG78KMTYhA+JHrDlmX2zb99o3vrb - 94+fATzBPYYHQieZUcmpr8VUHQmrjPa7UW4zEdvesUqT19GJjG0djGHjIvJA - 5vbXgToqDM6+0so+Y6g83B42UYPjoYo6Q9Ueq5xhu/+fPZ8yuPtxWqp54IWE - G4QHg27Ye9HEJXgNKl5m2Oqb7Mg/kTbKhNK5L7Q2tlTN/dDYcJKmJHWlPzKW - xPxX0opEWEE1Pp5WyAlWhEYRwMBGVD9VBdqhVbJLDeYzz+NtXn7zmfv1HW/P - Z3t8hz2vu/zLe4e3eEHdY9i8cLi/PaK2rVBMe0bbzKSpzB6PLMPam4m2aiwD - PVW5ilLZ/TMEOdcziWRY7istw8k4ktlAEIdhpW9ikQ5Fpgq8KHoHZpLF8qUq - QGchPPxHFrtkX7WcuVO4SfkOIYdyizKnt1aidUJ+4Qzl2qNzuGfl9saCDNzH - XYrNnwQ0SApwsfT78Cqxi2fpE/jbczQ/YPmsLHBslvE2tsofkm6JBFYOUQlw - NcC1ANdxg5ZYDdBG5xAsx02s0X4OL8etHM4PGz/wlc0CAAA= + H4sIAAAAAAAA/41Sy27TQBQ9M3k5bqChPJpQHqVFgrDAbcWOCilEIFkyRqJR + JNTV2B610zgzkj2JusyKD+EPKhaVQEIR7PgoxLUJD4kusOV759w5c67uGX/7 + /vEzgCe4z/BA6CQzKjn1tJipI2GV0V4/ym0mYjs4VmnyOjqRsW2AMWxeRB7K + 3P460ECFob6vtLLPGCoPe6MWaqi7qKLBULXHKmfoBf/Z8ymDsx+npZoLXkg4 + fngw7IeDFy1cgtuk4mWG7cBkR96JtFEmlM49obWxpWruhcaG0zQlqSvB2FgS + 815JKxJhBdX4ZFYhJ1gRmkUAAxtT/VQVaIdWyS41WMxdl3d4+S3mztd3vLOY + 7/Ed9rzh8C/v67zNC+oew9aFw/3tEbVth2I2MNpmJk1l9nhsGTbeTLVVE+nr + mcpVlMr+nyHIuYFJJMNqoLQMp5NIZkNBHIa1wMQiHYlMFXhZdA/MNIvlS1WA + 7lJ49I8sdsm+ajlzt3CT8h1CdcptypzeWonuEvIKZyjXHp3DOSu3N5dkoId7 + FFs/CWiSFOBg5ffhdWIXz8on8LfnaH3A6llZ4Ngq421slz8k3RIJrB2i4uOq + j2s+ruMGLbHuo4PuIViOm9ig/Rxujls56j8AJAtPiM0CAAA= """, - """ + """ + androidx/navigation/AbstractChildObjectComp.class: + H4sIAAAAAAAA/5VSW2sTQRT+ZnLbbKNN66WJVau2FC/otsU3gxCDwsK6gg0B + 6dNsdmin2czI7iT0MU/+EP9B8aGgIEHf/FHi2TVU0L64y57bfOc7nG/2x8/P + XwE8xRbDI6Hj1Kj4xNNiqg6FVUZ73SizqRja3pFK4jfRsaTQjN/XwBi2Lmro + y8yeNxXIEkO1o7SyzxlK9x8MGqig6qKMGkPZHqmM4XHwH7OfMTidYVIwuuA5 + jeOH+/1u2HvZwCW4dSpeZtgMTHroHUsbpULpzBNaG1swZ15obDhJEqJaCUbG + Epn3WloRCyuoxsfTEqnCclPPDRjYiOonKs92KIp3acB85rq8xYtvPnO+f+Ct + +WyP77AXNYd/+1jlTZ5D9xi2L1zwb61odDMU057RNjVJItMnI8uw/nairRpL + X09VpqJEdv8sQgr2TCwZlgOlZTgZRzLtC8IwrAZmKJKBSFWeL4ruvpmkQ/lK + 5Ul7QTz4hxa7JGG52LudK0r+NmVV8k3ynN5KkW1Q5uXqkK88PINzWhzfWYCB + Du6SbfwGoE5UgIOl8+Y1QufP0hfwd2dofMLyaVHguFfYW9gsflC6KSJYPUDJ + xxUfV31cw3UKseajhfYBWIYbWKfzDG6GmxmqvwBXhfge3QIAAA== + """, + """ androidx/navigation/InterfaceChildClass.class: - H4sIAAAAAAAA/41Qz28SQRT+ZhZY2FJZqFZK/dFatYWD0MabprElMSHBmtSG - A5wGdqVTltlkZyA98rd49mKiMfFgiEf/KOMbSpqYcPAw771v3jffe/P9/vPj - J4CX2GfYFypIYhlc15WYyqEwMlb1ljJh8lEMwualjIJmJLR2wRj8KzEV9Uio - Yf19/yocGBcOw+4qiYtQm1sZF2mGzGuppDlmSB10qx0G56DaycNFzkMKHmGR - DBlYN4881nPguENUcyk1Q7X9n1u+ojHD0JxYJdLvMhTbo9hEUtXfhUYEwgii - 8PHUof8zG3I2gOaO6P5aWtSgKjhkOJ3PSh4v88WZzzzur3k865TnsyPeYKfr - pYzPK7zh/PqU4X7qvHiLssSupLJpP2OVjhj2Vu7/j0W0Fm3hn4lpM1YmiaMo - TF6MDFnQjIOQodCWKjybjPthciH6Ed2U2vFARB2RSIuXl96HeJIMwrfSgq3z - iTJyHHakltQ9USo2i9Eah+RvigZm6JSs4fRvTrWLLMUnhI4Jc8pe7TvWatvf - UPiy4OxRtK+AHTyluHnDgo+idZIqq0bGk+7GUqtuDaacrn1F4fNKmfwNYSnD - 8WwRd/Gc8hvq3aXevR6cFjZbuN9CGVtUotLCNh70wDQe4lEPrkZR47FGXmNH - I6tR0tj4C6G2ycbxAgAA + H4sIAAAAAAAA/41Qz2sTQRT+ZvJjk21qNqnWNPVXrdomBzct3pRiGxACsUJb + ckhOk+yaTrOZhZ1J6DF/i2cvgiJ4kODRP0p8k4aCkIMs89775n37vTff7z8/ + fgJ4hT2GPaGCJJbBta/EVA6FkbHyW8qEyUcxCJuXMgqakdDaAWPwrsRU+JFQ + Q/9D/yocGAcphp1VEhehNrcyDjIM2TdSSXPEkN7v1joMqf1apwAHeRdpuIRF + MmRg3QIKWM+D4w5RzaXUDLX2f275msYMQ3NslUi/y1Bqj2ITSeW/D40IhBFE + 4eNpit7PbMjbAJo7ovtraVGDquCA4WQ+K7u8whdnPnO5t+byXKoynx3yBjtZ + L2c9XuWN1K9PWe6lz0q3KEfsajqX8bJW6ZBhd+X+/1hEa9EW3qmYNmNlkjiK + wuTlyJAFzTgIGYptqcLTybgfJheiH9FNuR0PRNQRibR4eemex5NkEL6TFmyd + TZSR47AjtaTusVKxWYzWOCB/0zQwS6dsDad3c6od5Cg+JXREmFN269+xVt/+ + huKXBWeXov0LeEYfsHnDgoeSdZIqq0bGk+7GUsu3BlPO1L+i+HmlTOGGsJTh + eL6IO3hB+S317lLvXg+pFjZbuN9CBVtUotrCNh70wDQe4lEPjkZJ47FGQeOJ + Rk6jrLHxF0rwRpzxAgAA """, - """ + """ + androidx/navigation/InterfaceChildClassComp$Companion.class: + H4sIAAAAAAAA/51Sy27TQBQ9Y6d5mABpyyPhXQhSC6JuKhBIRUgQhGQpLRJU + 2XSBJva0ncSeQeNJ1GVWfAh/0BUSCxR1yUch7jgB1mVzX+eee8fn+uev7z8A + PMVDhmdcJUbL5CRUfCKPuJVahZGywhzyWHSPZZp0U57nXZ19bjvDFXVUwBga + Qz7hYcrVUfh+MBSxrcBnKL+UStpXDP76Rr+OJZQDlFBhKNljmTM87/3Xxh2G + znpvpG0qVTicZKF0DMXT8K045OPUdrXKrRnHVptdbkbC7Gz0A3hu82o7/gd+ + ygqUYfN80xiW/xB2heUJt5xqXjbxSUrmTM0ZMLAR1U+ky7YoSjoM7dk0CLym + F3gNimbT6tkXvzmbbntb7E2l6p19LXsNz/VuMzfh8TkkquAmQ+2vTnSWPT6h + 51uj01SYzZEl6bs6EQyXe1KJvXE2EGafD1KqrPR0zNM+N9Lli2I9UkqYYoGg + gwUf9djE4p10WOvDWFmZib7MJTW/Vkrb4nk5OiR2ySlA3nN3pw+5S1noJCG/ + 9OgbqqcFfI9suSi+wBrZ+rwBNQRAg1F0YUF+Qt5bkOunhbyOcG1enBOK6CIu + EebjPmVBQbqF22jhQbHwDtrFD08aUG/jAH6E5QgrEVZxhUJcjWjm9QOwHE20 + CM8R5LiRo/wbyZhkAy0DAAA= + """, + """ + androidx/navigation/InterfaceChildClassComp.class: + H4sIAAAAAAAA/5VSXU8TQRQ9sy3dtizSFsVS/ABBLUXYghiNEBKs0TQpNUHS + RHiatkPZdjtrdqYNj/wWn30hakg0McRHf5TxTqnwoInhYe+dc/fecz9//vr6 + HcAa1hgWuWyGgdc8ciXvey2uvUC6ZalFeMAbonTo+c2Sz5UqBd33NhhDqs37 + 3PW5bLlv6m3R0DYiDLP/otkVSl9Q2RhhiG140tObDNH83kKNIZJfqDmwkUgi + iiRhHrYY2J4DB2MJWLhGrvrQUwxLlStUuk6pWkJvGTbKsccQ32j4w9xPrkA0 + bwSX5GHjBsNKvtIJNBG57X7X9UyM5L77Uhzwnq9LgVQ67DV0EG7zsCPC9fPu + biYxiSxD4oKM4elV2rmsYt1BDtNmMrcY5ipB2HLbQtdD7knlcikDPSBSbjXQ + 1Z7v0yDSf0reFpo3ueZks7r9CF0AMyJhBGjqHbIfeQYV6dVcYXh9dpxJWllr + 8J0dJ63UaNKKR7NnxzP2qlVkz5n9YiwTS1k5qxj58SFmpaI76QsUp5BcND6S + ihm6VVPvf6+EaqNSUlXep2HqMPB9ES53NMP0Tk9qryvKsu8pr+6Lrctm6UZK + QVMwjFc8Kaq9bl2Eu5x8GDKVoMH9Gg89g4dGpyylCAfTFRScfBv0woZ45Zl/ + U8M8tb+yYIWmHqXqYqSnzBrovUTTipG+QzpjjpZ0hLCNOMllQpvkbZFOFk4x + Wpj+gvETQhbcYSTwDEWSk+deSCFt9kEvw0brI96JIZdr1kR6pPAZ4x//SeOc + Owxp4riOxDA4i8Gi4XzD5Dt2iqlPuH0ysESoNZOQDYrIUXOrA+5HeEy6RPa7 + xDizj0gZs2XcK2MO8/TE/TIe4OE+mEIeC/uIK6QVCgqOwqIyMKMwoZD7DYsK + p/5yBAAA + """, + """ androidx/navigation/InterfaceChildObject.class: - H4sIAAAAAAAA/41SXWsTQRQ9M0mTzTbatH4l1q9aldoHty2+WYQaFBbiCjYE - pE+T3TGdZDMDu5PQxzz5Q/wHxYeCggR980eJd9ZYHxR0l7kfZ849M/fufvv+ - 8TOAx3jAsCV0khmVnARaTNVAWGV0EGors7cilu1jlSav+kMZ2yoYQ2MopiJI - hR4Ev9ASw8bfNLoyt+c6VSwxVPaVVvYpQ2nrYa+OKjwfZdQYyvZY5Qzbnf+9 - yxMGbz9OCzkf3Gl4YXTYPYjaz+tYQb1GYINhs2OyQTCUtp8JpfNAaG1sIZsH - kbHRJE1JarUzMpbEgpfSikRYQRgfT0s0IuZMzRkwsBHhJ8plOxQlu3TAfOb7 - vMmLNZ95X9/x5ny2x3fYs6rHv7yv8AZ31D13l39Oic5tRGLaNtpmJk1l9mhk - GdZfT7RVYxnqqcpVP5UHv7ug2bVNIhlWOkrLaDLuy6wriMOw1jGxSHsiUy5f - gP6hmWSxfKFc0loI9/6QxS7Nr0wtV2i13EDJ36G+Xb5GntNL34+yDcoCNxzy - S9tn8E+L7bsLMoiwSbb+k4BlikCFF86LrxHbPcufwN+c4eIHrJ4WAMe9wt7G - /eJnZbhEApePUApxJcTVkEqbFKIV4jrWj8By3MBN2s9Rz3Erh/cDKimwMukC - AAA= + H4sIAAAAAAAA/41STW/TQBB9u0kTxw00LV8J5asUUOkBtxU3KqQSgWQpGIlG + kVBPG3tJN3F2JXsT9ZgTP4R/UHGoBBKK4MaPQsyaUA4gga2dmfd25u3O2N++ + f/wM4DEeMGwJnWRGJSeBFlM1EFYZHYTayuytiGX7WKXJq/5QxrYKxtAYiqkI + UqEHwS+2xLDxN42uzO25ThVLDJV9pZV9ylDaetirowrPRxk1hrI9VjnDdud/ + 7/KEwduP00LOB3caXhgddg+i9vM6VlCvEdlg2OyYbBAMpe1nQuk8EFobW8jm + QWRsNElTklrtjIwlseCltCIRVhDHx9MSjYg5U3MGDGxE/IlyaIeiZJcOmM98 + nzd5seYz7+s73pzP9vgOe1b1+Jf3Fd7gLnXP3eWfU6JzG5GYto22mUlTmT0a + WYb11xNt1ViGeqpy1U/lwe8uaHZtk0iGlY7SMpqM+zLrCsphWOuYWKQ9kSmH + F6R/aCZZLF8oB1oL4d4fstil+ZWp5Qqtlhso+TvUt8Nr5Dm99P0IbRAK3HDI + L22fwT8ttu8ukoH72CRb/5mAZYpAhRfOi69RtnuWP4G/OcPFD1g9LQiOe4W9 + TRLuZ2W4RAKXj1AKcSXE1ZBKmxSiFeI61o/ActzATdrPUc9xK4f3Az/F2jnp + AgAA """, - """ + """ androidx/navigation/NavController.class: H4sIAAAAAAAA/41SW08TQRT+Zttut8utrYJQQeWiFFC2EH2xhERJjEtqNdL0 hadpuynTbmeT3WnDY3+L/8AnjQ+G+OiPMp7ZNlBAo5vsuX/fnDNzfv769h3A @@ -305,125 +431,318 @@ object AbstractChildObject: TestAbstract() XcmDUyRcPHTxyKUbXiMT6y428PgULMITbJ5iKoIdoRjBjLRNxlaEXIRChJnY Lf4G70EG2roEAAA= """, - """ + """ androidx/navigation/NavControllerKt.class: - H4sIAAAAAAAA/41SXU8TQRQ9s1va7VLoFkRoAZEPsfWDBfVNYkKamGysNUGC - ITxN27EuLLPJzrThkd/iL1B5IJHEEB/9UcY7ayMBVNhs5s69c865987cHz+/ - fgPwDKsMi1x2kjjsHPqS98Mu12Es/Sbv12OpkziKRPJK58AYvD3e537EZdd/ - 09oTbYraDONdoesRVyqQSnPZFpviPcN8tdb4m+6WUL/RzylxI066/p7QrYSH - UvlcylinMOU3Y93sRRGhvPYV8blrpAtwkM/DgstQuVzeu1B/2Ei6qVD1uioH - YCpjsv0vkeWbSRQwiqIpymNw1ttRKEP9gsGu1rYZZv8rkcMthux6yijgNsZd - TGCSYekmiXMoM2SqQW3bUKddVDDDUGrsx5pq8F8LzTtcc2rROujbNBTMLHmz - gIHtm41Fh4eh2dG8WJ01ho2zozH37Mi1pizXcuyBtRZK3tlRxVpl3z9mHTqv - ZBzLsymaoeDQeTDr5YzQE3reC5O2sq8Zpjd7UocHIpD9UIWtSGycDwa1Uo87 - gqHYCKVo9g5aItnihGFw38a9pC1ehsYpDzS2ryhgjd4gY5qim6A5oSYfkpcl - myNbMc90KWajjCHyLDwib4ai5st8wfCn9JIeD7DA+AVeGQWMXGWVLrMmLrAc - jJEOS1lPkb4DJk8xsXOCqWMMn6Ky4xVPMHuM0uc/Qi6lMenNZFhYSdt7AJ9s - nRB3qPy5XdgB7gaYD7CAxQBLuBdgGfd3wRSqqO3CUebPKwwpZBVGFYoKBYWR - X85LYc0vBAAA + H4sIAAAAAAAA/41UW08TQRg9s1va7VJoy70F5Y6tFxbwLmhCmphsrCVBgiEk + Jtt2rAvLbLIzbXjkt/gLVB5IJDHER3+U8duV2NCC0IedmTPnnD3z9Zv99fv7 + DwCP8JJh1hH1wHfrh5ZwWm7DUa4vrIrTKvlCBb7n8eCNSoAxZPaclmN5jmhY + G9U9XiNUZxhscFXyHCltIZUjanyTf2SYLhTLl/lucfmXvUovLvtBw9rjqho4 + rpCWI4SvIpq0Kr6qND2PWJlal/nkNdYpGEgmocFkyHfGe++qT+tBIzIqXJfy + nEwxRmtXmSzczCKFfqTDUBmGMQplC8GD7sJdFWmjqXgw1xZRpGH3covLA3UZ + pDCE4TDQCIOxVvNc4apXDHqhuM1w679nSiDPEF+LFClMIGdiHLcY5m5SiQQm + GWIFu7gdSqdNTGHmCmln5gTmTMyH9Gx531cU2XrLlVN3lEP10A5aOjU1Cx/J + 8AEGth9ONNo8dMPZEs3qywwfzo7y5tmRqY1ppmboHaM2k80QQVtiPz/HDeLl + Y4aW0QmNEdjTBuOZBIEGgck2aGZ6w7esMOSuPFQCDxnM9smozy9cucV9xTC+ + 2RTKPeC2aLnSrXp8vX1DqIQlv84Z0mVX8ErzoMqDLYc4DKm2LSee+c5vBjX+ + 2g33cueW212GWKZWiFGJdOTD+0PFe0qrOI0JGvNh+3Zh1EEdWAw59NBKwzNa + TRAa/mLf0Psl+kOen3OBvgu6HFKEdKmynap0h2oAg92q0U5V9oLKwBgpWaQq + IeoUzJ5ifOcEt4/Re4qpnUz6BLPHyJ5iPpovHGP06z/T/kjUB5PijJC5jhe0 + Nml3nr6pj8l8New6PMEajRuE36GiFHah2yjauGvjHu7beIBFGxaWdsHC8q/s + IiVhSCQleiTiEv0SaRmCfRJDEsMSAxKDfwAPYTX9vQUAAA== """, - """ + """ androidx/navigation/Outer$InnerClass.class: - H4sIAAAAAAAA/41U31MbVRT+7m5+bJYAG6AtkNiqRExC2wVstRZaBRRZDKGC - w1jx5ZKsYWHZxd0NU18cnvondEZfnHEcn3ioMxocO+Ng++bf5Diem90mNVSG + H4sIAAAAAAAA/41U31MbVRT+7m5+bJYENkBbfkRQiZiEtgvYai20CiiyGEIF + h7HiyyVZw8Kyi7sbpr44PPVP6Iy+OOM4PvFQZxQcO+Ng++bf5Diem90mNVSG meSec8+e853vnnPu/euf3/8AcAPrDHnu1DzXqj3QHX5g1XlguY6+2ghML284 jukt2Nz3k2AM2g4/4LrNnbq+urVjVoMkZIbErOVYwV2GWMEobjDIheJGGnEk - VcSgMCiWQJnz6gzMSENFTwoS0uQfbFs+w3j5PARmGHrqZmC0sSiNwaBW3b19 - 1zGdYIoAq+7+1wxF4nFezLGy69X1HTPY8rjl+Dp3HDdoeft6xQ0qDdueEYdJ - qMT5IkNapMjXzC95ww4YtgrnS2QY5e7azZyTYxqDGBLZR6mUgbseeJZDxx8q - FF+ADK10nkvdtvmGZddML4nLKq6Idgx1sAvPO3NHwWvUSL6/bzo1hmuF09Cn - s0XIRHAMeQH+BkNOlP4sxzeFY0E4LpztWBKOE2nk8IrQrtHht7m/veDWTIZM - J9JwArMuzjcZDiBNmI5pFVN4i05kftXgNs3YhcJL6v85zf5Z7afe8y3bpKrG - 3WDb9BgGTqMQmfKuG9iWo6+YAa/xgJNN2juQ6X4xsaTEAhr+XbI/sMSOuEo1 - GtgfTw4vq9KwpErayaFKP0lTVElJkOwhKZPsU54+VIZPDqelSTbfO5DQpFFp - Un76Q0LSYsspLSl2S88eysuDmkI6OSqKFDqRmZE5Rbo6rWg9o7FhNsmWnj2S - KTAdejxipPeS3if0tUwbXiE6ozElriUE12kmTjDyvwObxCLdxc5k0VtR4QcL - rhN4rm2b3vVduiyxsHn9ZcsxK429LdP7VNRXlNWtcnuDe5bYR8bsWsMJrD3T - cA4s3yLTXKc3DL3rAa/urvD9yDvf7X2Pe3zPJGr/CUt3KJq0Vdfdhlc1Fy0B - MRJBbJxKR8Mk0VsmSjAg3i/SFNLpVaB1mXaL9F0iqZaOkSplf0Xvz7ST8DGt - fRAdH6X4LFIky7S7GHrTt34xG6QJVBolaPQPMXUxMiTjpV/Qe9SGS7SM2RZM - OnSIYDJE7nnwWHcwe2kAvSwEKwKmiKXglHoC6X72GJcet4NCsqk22VREdiVi - cwHQUhjGSJR7PCpWJhf75lsogsFsKdtENoSs0CqDCQS621H62yQFtdwTXLl/ - jFcHXm9iXEQ2UdSKTVxt4vrjrmPkIkYv8KBVb9dgPKpBi8FvuNFdBiWKZ7iJ - tyMeX5AU7cqXJn5CPHY08Sek7xCXjyZOIK0IoKv0/15YYmFPKq32yUnlb2SS - tO9ULN+uWB638C7lWSU9KUi906rBvVYoXS98hCUq3yctQANrJD8j+23q1Mwm - ZAOzBu4YuIv3SMX7BuYwvwnmYwEfbKLfF78PfaitNeFD85HxMeBj0MfNlvGW - D91HjvR/AXBODlL6BwAA + VcSgMCiWQJnz6gzMSENFVwoS0uQfbFs+w3j5IgRmGLrqZmC0sCiNwaBW3b19 + 1zGdYIoAq+7+1wxF4nFRzLGy69X1HTPY8rjl+Dp3HDdoevt6xQ0qDdueEYdJ + qMT5MkNapMjXzC95ww4YtgoXS2QY5c7azVyQYxp96BfZh6iUgbseeJZDx+8v + FF+ADK10niudtvmGZddML4kRFaOiHf1t7MLzztxR8Bo1ku/vm06N4VrhLPTZ + bBEyERxDXoC/wZATpT/P8U3hWBCOC+c7loTjRBo5vCK0a3T4be5vL7g1kyHb + jjScwKyL802GA0gTpmNaxRTeohOZXzW4TTN2qfCS+n9Os39e+6n3fMs2qapx + N9g2PYbesyhEprzrBrbl6CtmwGs84GST9g5kul9MLCmxgIZ/l+wPLLEjrlKN + BvbH08MRVRqQVEk7PVTpJ2mKKikJkl0kZZLdytOHysDp4bQ0yeYzvQlNGpIm + 5ac/JCQttpzSkmK39OyhvNynKaSTo6JIoROZGZlTpKvTitY1FBtgk2zp2SOZ + AtOhxyNGeob0bqGvZVvwCtEZiilxLSG4TjNxgsH/HdgkFukutieL3ooKP1hw + ncBzbdv0ru/SZYmFzespW45Zaextmd6nor6irG6V2xvcs8Q+Mg6vNZzA2jMN + 58DyLTLNtXvDkFkPeHV3he9H3vlO73vc43smUftPWLpN0aStuu42vKq5aAmI + wQhi40w6GiaJ3jJRgl7xfpGmkE6vAq3LtFuk7xJJtXSCVGn4V2R+pp2Ej2nt + huj4CMWPIkWyTLvLoTd96xGzQZpApVGCRv8QUxcjQzJe+gWZoxZcomkcbcKk + Q4cIJkvkngePdQazlwbQy0KwImCKWApOqSeQ7g+f4MrjVlBINtUim4rIrkRs + LgFaCgMYjHKPR8XK5mLffAtFMJgtDR9jOISs0CqDCQS621H62yQFtdwTjN4/ + wau9rx9jXEQeo6gVj3H1GNcfdxwjFzF6gQeteqsG41ENmgx+w43OMihRPMNN + vB3x+IKkaFe+NPET4rGjiT8hfYe4fDRxCmlFAF2l//fCEgt7Umm2T04qfyOb + pH27YvlWxfK4hXcpzyrpSUHqnWYN7jVD6XrhIyxR+T5pAhpYI/kZ2W9Tp2Y2 + IRuYNXDHwF28RyreNzCH+U0wHwv4YBM9vvh96ENtrgkfmo+sj14ffT5uNo23 + fOg+cqT/CwA97z/6BwAA """, - """ + """ androidx/navigation/Outer$InnerObject.class: - H4sIAAAAAAAA/41US08UQRD+umcfs7M8loc8FR8s8lJmQTxBTJBoHLIsxiUY - 5dTsjjAwzOhM74YjJ29ePXj04ImDxAOJJgYlXvxRxOrZISAEY7Lb/VV1VX3V - X/Xu7+Ov3wFM4z7DkPCqge9Ud0xP1J11IR3fM5dq0g7ylufZwdLapl2RaTCG - 3KaoC9MV3rp54tUYUrOO58gHDNrI6EoTkkgZSCDNkJAbTsgwXPwvhhkGXfpl - GTjeOkPnyGjxlK3hpYjBoh+sm5u2XAuE44Wm8DxfRgVDs+TLUs11KSp7pqyO - Fiq8IcKNeb9qR01a2q/p43fUuP2mJlzq8MpI8fzNZkZfMuT/xUZUYs21iS7p - yw07YGi/WIWoZytupI8BrkTRrVJ5ea40/6gJfTAy5OxnaCtu+ZLCzEVbiqqQ - ghL5dl2jGTG1ZNQCBrZF/h1HWQVC1UmGV4e7Awbv4QbPHe4aXFcgG++6oVy5 - Fv3ordFzuDvFC+xhWuc/P6Z4ji905LQ+XkhM6blkX6KHFdiTo/faQiaXIm+a - MCOsE84orNimmOqh99JppjFKb6Qk6vO+JwPfde1gYksy9D+redLZti2v7oQO - aTZ3qiO9ksZcWouOZ5dq22t2sKx0VXL6FeGuiMBRduxsLktR2VoUr2M7f772 - UxGIbZu6+YukKXoR864IQ5tMo+zXgor92FEleuMSKxeawySNJxEp36umRfsd - slK0N9OepNNkZN0ly1TzUd6xA+j7BDgm4mCgh46BpkYAMlRKFc2Sh0fJN+Nk - rb31c3R0Gq7F4WeZSWa0xbynqe17l6QydKAzZrJo57R3j41/QjKxN/4D/AOS - 2t74IfjzxF7UeIHWBHhaj4p1NRLiYgp10ZeROlAvmn4/BHS644kU3VECkP0G - /uIAvV9wdT9yaJiiVenIMYYWUvVexDdOf0WqNYZrJM/AKjQL1y3csOh2twhi - 0EIeQ6tgIW5jeBVGqD4jIVIhOiLQFSIXgSytfwCP7WED4AQAAA== + H4sIAAAAAAAA/41US08TURT+7p0+plMe5SFvnxR5KVMQVxATJBqHlGKEYJTV + bTvCwDCjM7cNS1bu3Lpw6cIVC4kLEk0MStz4o4jnTkdBCMakvec7Z84535nv + 3Pbn8eevAKZxl2FIeNXAd6o7pifqzrqQju+ZSzVpB3nL8+xgqbxpV2QajCG3 + KerCdIW3bv6OagypWcdz5D0GbWR0tQlJpAwkkGZIyA0nZBgu/hfDDIMu/WUZ + ON46Q+fIaPGErRGljMGiH6ybm7YsB8LxQlN4ni+jhqFZ8mWp5rqUlT3VVkcL + Nd4Q4ca8X7WjIS3tx/TxGxrcflUTLk14aaR49s1mRp8z5P/FRlSi7NpEl/Tl + hh0wtJ/vQtSzFTfSxwBXouhWaXllrjT/oAl9MDIU7GdoK275ktLMRVuKqpCC + Cvl2XaMdMXVk1AEGtkXxHUd5BULVSYYXh7tXDN7DDZ473DW4rkA2trqhQrkW + /ei10XO4O8UL7H5a59/fp3iOL3TktD5eSEzpuWRfoocV2KOjt9pCJpeiaJow + I6wTziis2KaYmqH3wm2mMUp3pCTq874nA9917WBiSzL0P6l50tm2La/uhA5p + NneiI92Sxl5ai45nl2rbZTtYUboqOf2KcFdF4Cg/DjYvS1HZWhQvYz9/tvdj + EYhtm6b5i6QpuhHzrghDm1xj2a8FFfuho1r0xi1Wzw2HSVpPIlK+V22L7C3y + UmSbySbpaTLybpNnqv2o6NgB9H0CHBNxMjBAj4GmRgIy1Eo1zVKER8XX42Kt + vfVj9OgkXYvTTzOTzGiLeU9K2/cuKGXoQGfMZJHlZLvHxj8gmdgb/wb+Dklt + b/wQ/GliLxq8QGcCPK1HzboaBXEzhbroy0gdqBtNvx8COnr+SNEdFQDZL+DP + DtD7CQP7UUDDFJ1KR44xtJCqdyK+cforUqMxXCZ5rqxBs3DVwjWL3u4GQQxa + yGNoDSzETQyvwQjVZyREKkRHBLpC5CKQpfMXu5HXfeAEAAA= """, - """ + """ androidx/navigation/Outer.class: - H4sIAAAAAAAA/4VRW2sTQRg9M5vLZhNtGi9JrK2XptpUcNviUy1CDQoLMYW2 + H4sIAAAAAAAA/4VRW2sTQRg9M5vLZhNtGi9NjK2XptpUcNviUy1CDQoLMYW2 BCRPk2SIk2xmYXcS+pgnf4j/oPhQUJCgb/4o8dttNA9S3GG/M9/tfDNnfv76 - 8g3ACzxjqArdDwPVP3e1mKqBMCrQ7vHEyDALxlAciqlwfaEH7nF3KHsmC4sh - c6i0Mq8YrO16u4A0Mg5SyDKkzAcVMaw1r2V9yWAf9vyk3wGPm2yvdXp21Gq8 - KeAGnBwFbzJsNoNw4A6l6YZC6cgVWgcm4YncVmBaE98nqtXmKDBE5r6TRvSF - ERTj46lFt2OxycUGDGxE8XMVe7u06+8x1OezgsMr3OHF+czhtmX/+Mgr89k+ - 32UH3Eq9ztr8+6cML/K4YZ/FNI6ntQwbvojokvnEuVKFoXbtjWvLpiweMGz9 - p/KPzo9I/ZaYNgJtwsD3Zfh8RHPWTibaqLH09FRFquvLo6UwpH8j6EuGlabS - sjUZd2V4JqiGodQMesJvi1DF/iJYWJ5MUrNzGkzCnnyr4lx1Maf9zxTs0Qul - Elmr8YMR1sjLEBYJOa104m2R58biE6Z3LmFfJOkni2KgjKdkC1cFyBEVYCP/ - t7lM1fGX/wr+/hKFz1i5SAIWtsmWKP2Q/nU6x2PCDcJ6MmITO4QHRLNKxKUO - LA+3PNz2cAd3aYuyhwqqHbAI97DWQTqCE+F+hEyE9QgbvwFBj+0jIgMAAA== + 8g3ACzxjqAjdDwPVP3e1mKqBMCrQ7vHEyDALxlAciqlwfaEH7nF3KHsmC4sh + c6i0Mq8YrO16u4A0Mg5SyDKkzAcVMVSb17K+ZLAPe37S74DHTbbXOj07ajXe + FHADTo6CNxk2m0E4cIfSdEOhdOQKrQOT8ERuKzCtie8T1WpzFBgic99JI/rC + CIrx8dSi27HY5GIDBjai+LmKvV3a9fcY6vNZweFl7vDifOZw27J/fOTl+Wyf + 77IDbqVeZ23+/VOGF3ncsM9iGsfTWoYNX0R0yXziXKnCULv2xrVlUxYPGLb+ + U/lH50ekfktMG4E2YeD7Mnw+ojnVk4k2aiw9PVWR6vryaCkM6d8I+pJhpam0 + bE3GXRmeCaphKDWDnvDbIlSxvwgWlieT1OycBpOwJ9+qOFdZzGn/MwV79EKp + RNZK/GCENfIyhEVCTiudeFvkubH4hOmdS9gXSfrJohio4inZwlUBckQF2Mj/ + bV6j6vjLfwV/f4nCZ6xcJAEL22RLlH5I/zqd4zHhBmE9GbGJHcIDolkl4lIH + lodbHm57uIO7tMWahzIqHbAI91DtIB3BiXA/QibCeoSN33FlSFUiAwAA """, - """ + """ + androidx/navigation/OuterComp$InnerClassComp$Companion.class: + H4sIAAAAAAAA/51TTW/TQBB9a6d2YkJJUz4SoHwGSBHUTQUIqQgJgpAipa0E + KJce0CZZyib2Gq3XUY858UP4Bz0hcUBRj/woxKwTqLgglcvMm3nzZr0z3h8/ + v30H8AhNhidcDXUih4eh4hN5wI1MVLiXGaHbSfyp0VGKUMTTNA+t4YpKfDCG + yohPeBhxdRDu9UdiYHy4DN4zqaR5zuA213tlLMELUIDPUDAfZcrwtPt/R24z + tJrdcWIiqcLRJA6lIoniUfhKfOBZZNqJSo3OBibRO1yPhd5e7wVw7NGrjcEJ + +T7OWYaN03VjWPkt2BGGD7nhlHPiiUvDZNaUrAEDG1P+UNpok9CwxdCYTYPA + qTmBUyE0mxaPP7u12XTL2WQv/aJz/MVzKo6t3WK2w4PTzMjHFYa1fyp8rDEs + /y1jKP0ZLi1zl0/ozkYnUST0xtjQwtrJUDCc60oldrO4L/Q73o8oU+0mAx71 + uJY2XiTLJ90FrTl4m2R6IF5Ly9XfZMrIWPRkKqn4hVKJyb8wRYs2VLBjI+/Y + v4Vuf4ui0M6R/NL9ryge5fRtsl6efIwG2fK8ACUEQIUROrMQPyTvLMTlo3wn + VnBxnpwLcnQWy8S5uENRldiruIbrqOfoBvm7+cE3cS9/LzQL0lT24Xaw0kG1 + g1WcJ4gLHep9aR8sRQ114lMEKS6n8H4BDr3L2mwDAAA= + """, + """ + androidx/navigation/OuterComp$InnerClassComp.class: + H4sIAAAAAAAA/5VUW0/cVhD+jvfmNQt4IRcCmyYt23S5BHNLSoE0XFKK6QIp + pDSE9uGw64LB2NT2ovSlylN+QqT2pVIf+sRDorZQFamiyVt/U1V1jm2WW4S0 + 0u45M+OZb74zM+f889+ffwEYxNcM3dwuu45ZfqrZfMdc477p2Np8xTfcSWdr + O6/bNkkW9zyhpsAY1A2+wzWL22va/OqGUfJTiDEkR03b9D9miBf0jiWGWKFj + KYMEUgrikBlkUyCNu2sMTM9AQV0aEjLk76+bHkNPsRYiIwx1a4avVzEpnc6g + lOibYxu230fAJWf7O4Y+4lMrdnvRcde0DcNfdblpexq3bccPojxtzvHnKpY1 + Ig6XVOgMVxgyIlW+bHzDK5bP4BZqS6jrxbM1HamRcwbNuCTYtFKpfWfRd02b + ynKp0HECOrTS+a6etU1UTKtsuCm8o+CGaFfLafzCUffuyXiXms23tw27zHC7 + cB7+fMYInUi2Iy8SvM+QE225yPED4VgQjpMXO3YKx64McrgupNtUgHXurU86 + ZYMhexyp276xJs7YGw4pTaGGfgV9GKATGd9WuEVzeLnwll48YchfNBI0D3zV + MqiyCcdfN1yGpvMoxGu0ZEW35G4t3c2LhdvkksKImOjipuMTkraxs6WZdCzX + 5pb2IBy/SWLku5WS77iz3N2kIoUX8Z6CUVDmdBWMYaimITumQXUfw7i4wBNU + 4iM2s4bPy9znRFHa2onRC8PEkhYL6Npvkv2pKTTqgFSmK7p7+OymIrVIiqQe + PlPoJ6myIslJ2utoj9HeQGb59XO5hVwb+6VeNswaJ+qbkqrUKvXGXv+clNT4 + TFpNCW36zfPYTLMqk3z4rF+WpdCJzIzMaZKVflmta423sF42/eZFjAIzoccL + RnI9yQ1CXshW4WXK3xqXE2pScO5n4iTXL6xaCg8ZGk6Xjl7NOb5DrfFdx7IM + t2eTnom2hYrtm1uGbu+YnknzM348UzSi4QA3Fk3bmKtsrRruIzFjYrScEreW + uGsKPTLWL/q8tDnLtyM9fxb7IXf5lkEUTyXJHNM0SFUWnYpbMqZMAXEtglg6 + R46ujESvOmi9JgaBSvKItCTtl2lvEq+7aDzpicD6BWlT5C3RrnTuI93Z9jvq + XwUIS7Q2QEzFAGEOUtQAviTtSuhN3xrF/JAkUGncoNI/xNTEWNGe6PwN9btV + uGRgHAxgMqFDBJMlckfB7WeD2VsD6F0lWBHQRywFp/QBpOW2fVx9WQ0Kyaar + ZNMR2RNlUdNooXKFuW9FBczm4t//AFkwGO1s20NbCPmY1hiYQKBXLUo/TLug + ljvAjeV93Gx6bw+3ROQeOtSOPXTvoeflmWPkIkYn28OobNkqj7AGAYM/MHi2 + DHIUz3AHdyMeX9Eu2pXv7PoFifhu19+QfkQittt1CGlWAHXT/ydhiYc9eRy0 + L5aS/0U2RfpxxfLViuUxhI8ozzLJKUHqwyD9MFIR1ZYgKRE7wOgy28f9XzH5 + KrDE8CSYOjFfn2OBijxK0hjtK0H6RaIMkhkeUF8/WUFMx5SOT3VMQycRMzo+ + Q5EcPMxibgWqh0YP8x6UYE16wpL10OSh2cOdwDjkQfOQC+Sx/wHugknKUQkA + AA== + """, + """ + androidx/navigation/OuterComp$InnerObject.class: + H4sIAAAAAAAA/41US08TURT+7p0+plMe5SFPxQeolCpTUFcQE2w0DinFCMEo + q0s7wsB0BmduG5as/AkuXLrQDQuJCxJNTJWdP8p47jAKQiQm7T2POef7znzn + tj9+fv4K4C7uMeSFVwt8p7ZjeqLprAvp+J652JB2UPLr22OW59nB4tqmXZVp + MIbcpmgK0xXeuvk7qzGkZh3PkfcZtPH8ShuSSBlIIM2QkBtOyFAo/zfLDIMu + /SUZON46Q+94vnzMeJSlitGyH6ybm7ZcC4TjhabwPF9GoKFZ8WWl4bpUlT0B + q6ODgDdEuFHya3Y0qKV5H4qzNLz9qiFcmvLCePn0283kXzCMncdGVGLNtYku + 6csNO2DoPotC1LNVN9LIAFfC6FZlaXmuUnrYhiEYGUoOM3SVt3xJZeaCLUVN + SEGNvN7UaFdMHRl1gIFtUX7HUVGRvNoUw8vW7ojBB7jBc61dg+vKycZWN1Qq + 16EfvjYGWrvTvMgepHX+/V2K5/h8T04b4sXEtJ5LDiUGWJE9PnyjzWdyKcqm + yWfk6+RnlK/Yppma4dK5G00jT3elIpol35OB77p2MLklGYafNjzp1G3Lazqh + Q7rNHWtJt+VoN51lx7MrjfqaHSwrbZWkflW4KyJwVBwn25ekqG4tiO04HjuN + /UQEom7TRH+RtEW3ouSKMLQpNJb8RlC1HzkKYjCGWDkzHKZoRYlI/UG1MbK3 + KEqRbSebpKfJKLpNkal2pLITB9D3yeGYjItBQCadbUcFyBCUAs1ShkfNV+Nm + rbvzY/TouFyLy08yk8zoinmPW7v3/tHK0IPemMkiy8n2TxTeI5nYK3wDf4uk + tldogT9L7EWDF+lMgKf1CKzvqCEGU14ffRm9FNStpt8QOToG/kjRHzUA2S/g + zw8w+AkX96OEhmk6lY4cE+ggVe9EfAX6W1Kj0Q0jeUZWoVm4bOGKRW93jVyM + WhjD9VWwEDdwcxVGqD7jIVIheiKnL0QucrJ0/gKE9w8Q7AQAAA== + """, + """ + androidx/navigation/OuterComp.class: + H4sIAAAAAAAA/41RW2sTQRT+ZjaXzWZt03hpYk2rtmpTxW2LT7UINSgsxC20 + JSB5miRLnGQzK7uT0Mc8+UP8B8WHgoIEffNHiWe30SJCcYc935zbd+ac8+Pn + 568AnuExQ02oXhTK3qmjxET2hZahcg7H2o8a4eh9HoyhNBAT4QRC9Z3DzsDv + 6jwMhty+VFK/YDA26y0bWeQsZJBnyOh3MmZYa17J/JzB3O8GKYcFniSarnd8 + cuA1Xtm4BqtAxgWG9WYY9Z2BrzuRkCp2hFKhTrlixwu1Nw4ColpqDkNNZM4b + X4ue0IJsfDQxqEuWiEIiwMCGZD+VibZNt94OQ302tS1e4RYvzaYWNw3z+wde + mU13+Tbb40bmZd7k3z7meIknCbssoVlwlaI2AhHHSS8MxdRwMR2GJ1d2vvF3 + ch5r9Ij/yPg9+3u0EU9MGqHSURgEfvR0SDVXjsZKy5HvqomMZSfwDy4HRTtp + hD2fYbEple+NRx0/OhEUw1Buhl0RtEQkE31utC9f6FOydRyOo67/Wia+6rxO + 658q2KGNZdIxV5MFEm6QliMsEXI62VR7QJqTLIMwu3UO8yx1P5wH02rwiKR9 + EYACUQEmin+Slyk6+YpfwN+ew/6ExbPUYGCTZJncd+mv0TvuE64S1tMS69gi + 3COaJSIut2G4uO7ihoubuEVXLLuooNoGi3EbK21kY1gx7sTIxajFWP0Fraxj + CzoDAAA= + """, + """ androidx/navigation/TestAbstract.class: - H4sIAAAAAAAA/4VRy0oDMRQ9SduxjlWnPusLfICoC0fFnSKoIBSqgko3rtJO - 0NhpApO0uOy3+AeuBBdSXPpR4s3o3s3hPG7Cyc3X9/sHgEOsMKwKnWRGJc+x - Fn31IJwyOr6T1p22rMtE242AMURPoi/iVOiH+Lr1JL1bYAiOlVbuhKGwtd2s - oIQgRBEjDEX3qCzDeuO/y48Yqo2OcanS8aV0IhFOkMe7/QIVZB5GPYCBdch/ - Vl7tEUv2qftwEIa8xkMeERsOypu14eCA77Gz0udLwCPu5w6YPx1dif650S4z - aSqz3Y6jkucmkQyTDaXlVa/bktmdaKXkTDVMW6RNkSmv/8zw1vSytrxQXizc - 9LRTXdlUVlF6qrVx+eNscQ2cdvBX2a+EsEYqzjVQ2nlD+ZUIxwJhkJsbWCSs - /A5gFGGeL+U4j+X8rxjGKKvco1DHeB0TdUwiIopqHVOYvgezmMEs5RahxZxF - 8AMTgVUI6AEAAA== + H4sIAAAAAAAA/4VRy0oDMRQ9SduxjlWnPusL1IWvhaPiThFUEApVQaUbV2kn + aOw0gUlaXPZb/ANXggspLv0o8WZ07+ZwHjfh5Obr+/0DwCFWGFaFTjKjkudY + i756EE4ZHd9J605b1mWi7UbAGKIn0RdxKvRDfN16kt4tMATHSit3wlDY2m5W + UEIQoogRhqJ7VJZhvfHf5UcM1UbHuFTp+FI6kQgnyOPdfoEKMg+jHsDAOuQ/ + K6/2iCX71H04CENe4yGPiA0H5Y3acHDA99hZ6fMl4BH3cwfMn46uRP/caJeZ + NJXZbsdRyXOTSIbJhtLyqtdtyexOtFJyphqmLdKmyJTXf2Z4a3pZW14oLxZu + etqprmwqqyg91dq4/HG2uAZOO/ir7FdCWCMV5xoo7byh/EqEY4EwyM1NLBJW + fgcwijDPl3Kcx3L+VwxjlFXuUahjvI6JOiYREUW1jilM34NZzGCWcovQYs4i + +AEAejLS6AEAAA== """, - """ + """ + androidx/navigation/TestAbstractComp$Companion.class: + H4sIAAAAAAAA/5VSy24TMRQ99qR5DAHSlkfCuyVILRKdpGJFEVIJQoqUFolW + 2XSBnIkpTmY8yHaiLrPiQ/iDrpBYoKhLPgpxPQmwpZv7Ovfcax/756/vPwA8 + xxOGHaGHJlPDs0iLqToVTmU6OpbW7Q+sMyJ2nSz93PRGaIJKYAy1kZiKKBH6 + NHo3GMnYlRAwFF8qrdwrhmBru1/FCoohCigxFNwnZRlavcut2mNob/XGmUuU + jkbTNFLaSaNFEr2RH8UkoXZNvEnsMnMgzFiave1+CO5Xrjfjf+CHNEfprpeb + xrD6h3AgnRgKJ6jG02lA4jFvKt6AgY2pfqZ81qJo2GZozmdhyOs85DWK5rPy + xZegPp/t8hZ7XSrzi69FXuO+d5f5Cc3/0aaEuwyVvwLRQxyKKZ3bmSxJpNkZ + OxK7kw0lw/We0vJwkg6kORaDhCprvSwWSV8Y5fNlsdrVWppOIqyV9EThUTYx + sXyrPNZ4P9FOpbKvrKLmfa0zl5/Lok0qF/zVyXP/0nSDh5RFXgvyK0+/oXye + w4/IFvPiC2yQrS4aUEEI1BhFV5bkZ+T5klw9z3X1hFuL4oKQR1dxjbAAm5SF + Oeke7qOBx/nCB2jmf5s0oN7aCYIuVrtY62IdNyjEzS7NvH0CZlFHg3CL0OKO + RfE3/dAjtxgDAAA= + """, + """ + androidx/navigation/TestAbstractComp.class: + H4sIAAAAAAAA/41RW2sTQRg9s5vrurFJvSXWS2trTPvQbYsgNEWoESGQpqAl + IHmaJGOdZDMrM5PQx/4W/0HxoaAgwUd/lPjtNrYPvuTlO/Ndzvku8/vP958A + XmKLYYOrgY7k4CxQfCpPuZWRCk6EsYc9YzXv20Y0/pIFYygO+ZQHIVenwXFv + KPo2C5chcyCVtK8Z3Npmx0caGQ8pZBlS9rM0DNXWIg3qDLmDfjiX2l6EshEb + riiVhc+wW2uNIksKwXA6DqSyQiseBm/FJz4JiaCIOenbSB9xPRK6fjXsbQ8F + LDHkr8UYdhaa+KZ93UcJy3k4uMOw3or0aTAUtqe5VCbgSkU2UTBBO7LtSRjS + rqV/sx4Jywfccoo546lLn8Jik48NGNiI4mcy9nboNdile87Ofc8pO55TnJ17 + Ts7JVcuz81V3z9lh+8x9k/71NeMUnbh6j8UaxTaf0vpWR2Eo9PbIMqy8nygr + x6KpptLIXigOb6akj2tEA8Gw1JJKtCfjntAnnGoYlltRn4cdrmXsz4N+Uymh + GyE3RhDZ+xBNdF+8k3GuMu/T+a9Lao3OlUp2rMTXI1wnL0N4j9AhTCfeBnlB + fAnC9NYlchdJ+vm8GNhHlax/VYA8PMIcbl2Ty0huCf8HCh/ZJYrfcPciibh4 + QdajugIplmiQWqL9DJuEryh+nxQfdOE2UW6i0sRDrNATj5p4jCddMIOnWO0i + ZeAZrBlkDEp/AVeTkqlcAwAA + """, + """ androidx/navigation/TestClass.class: - H4sIAAAAAAAA/31RO0sDQRD+ZmMuekY93/HdqoWnYqcIGhACUUEljdUmt+ia - yy7cboJlfov/wEqwkGDpjxLnTmubj+8xM8zsfn2/fwA4wgZhQ5okszp5jo0c - 6AfptTXxnXK+nkrnKiBC9CQHMk6leYiv20+q4ysoEYITbbQ/JZS2d1pVlBGE - GEOFMOYftSNsNf+dfEyYbXatT7WJL5WXifSSPdEblHg1ymEiBxCoy/6zztU+ - s+SAsDkahqGoiVBEzEbD2mh4KPbpvPz5EohI5FWHlPdGV3JQt8ZnNk1Vttf1 - vF/dJoow09RGXfV7bZXdyXbKzlzTdmTakpnO9Z8Z3tp+1lEXOhcrN33jdU+1 - tNOcnhljfXGXwwEEn/+3cP4ajDVWcaGB8u4bxl+ZCKwwBoU5g1XG6m8BJhAW - +VqBy1gv/ogwyVn1HqUGphqYbnBXxBSzDcxh/h7ksIBFzh1ChyWH4AcFuY/X + H4sIAAAAAAAA/31Ry0oDMRQ9N7VTHauO7/reqgtHxZ0iaEEoVAWVblylnaCx + 0wQmaXHZb/EPXAkupLj0o8Q7o2s3h/O4CecmX9/vHwCOsEHYkCbJrE6eYyMH + +kF6bU18p5yvp9K5CogQPcmBjFNpHuLr9pPq+ApKhOBEG+1PCaXtnVYVZQQh + xlAhjPlH7QhbzX9vPibMNrvWp9rEl8rLRHrJnugNSlyNcpjIAQTqsv+sc7XP + LDkgbI6GYShqIhQRs9GwNhoein06L3++BCIS+dQh5WejKzmoW+Mzm6Yq2+t6 + 7le3iSLMNLVRV/1eW2V3sp2yM9e0HZm2ZKZz/WeGt7afddSFzsXKTd943VMt + 7TSnZ8ZYX+zlcADB6/8Vzl+DscYqLjRQ3n3D+CsTgRXGoDCXscpY/R3ABMIi + XytwGevFHxEmOaveo9TAVAPTDcwgYorZBuYwfw9yWMAi5w6hw5JD8AOsqUxn 4AEAAA== """, - """ + """ + androidx/navigation/TestClassComp$Companion.class: + H4sIAAAAAAAA/5VSy24TMRQ99qR5DAHSlkfCuxCkFminqdgVIUEQUqS0SKXK + pgvkJKY4mbGR7URdZsWH8AddIbFAUZd8FOJ6UmCJurmPc++5987x/Pz1/QeA + 53jM8FTooTVqeJJoMVXHwiujk0PpfDsVzrVN9rkZjNCEl8AYaiMxFUkq9HHy + rj+SA19CxFB8obTyLxmi9Y1eFUsoxiigxFDwn5Rj2OxeYM8uQ2u9OzY+VToZ + TbNEaS+tFmnyRn4Uk9S3jXbeTgbe2D1hx9LubvRi8LBvtTn4V/yQ5VWGrYtN + Y1j+Q9iTXgyFF4TxbBqRbCyYSjBgYGPCT1TItikathia81kc8zqPeY2i+ax8 + 9iWqz2c7fJu9LpX52dcir/HQu8PChLX/ClPCbYbKX3XoCfbFlI721qSptFtj + TzK3zVAyXO0qLfcnWV/aQ9FPCVnpmoFIe8KqkJ+D1Y7W0uYLJD1O/N5M7EC+ + VaHWOJhorzLZU05R8yutjc+PcmiRxIXw3eR5eGM6/z5lSRCC/NKTbyif5uUH + ZIs5+AxrZKuLBlQQAzVG0aVz8iZ5fk6unuaiBsKNBbgg5NFlXKFahIeUxTnp + Du6igUf5wnto5r80aUC9tSNEHSx3sNLBKq5RiOsdmnnzCMyhjgbVHWKHWw7F + 3/peHcMPAwAA + """, + """ + androidx/navigation/TestClassComp.class: + H4sIAAAAAAAA/4VRXWsTQRQ9s5vPdWOT+pVYP1obta0f2xRBsEXQiBBII2gp + SJ8myVgn2czIzCT0sb/Ff1B8KChI8NEfJd7dxvbBh7zcM/fMuWfuvfP7z/ef + AJ5hg2GFq77Rsn8UKT6Rh9xJraI9YV0z5tY29ehLHoyhPOATHsVcHUbvugPR + c3n4DLkdqaR7yeCvre+HyCIXIIM8Q8Z9lpZhtT3XfZuhsNOLZz6P5urrSeCK + +DxChsZae6gdlUeDySiSygmjeBy9EZ/4OHZNrawz457TZpeboTDbZ21eDlDC + AkPx3IzhyfxeL97eDlHBYhEeriRTanMYDYTrGi6VjbhS2qXlNupo1xnHMU1Z + +dfornC8zx0nzhtNfPoIloRiEsDAhsQfySTbpFO/wVCfHoeBV/UCrzw9DryC + V50eL/tb3iZ7wfzX2V9fc17ZS7RbLHEod/iEJndGx7EwT4eOYen9WDk5Ei01 + kVZ2Y/Hqokf6rabuC4aFtlSiMx51hdnjpGFYbOsej/e5kUk+I8OWUsKkSxFU + HHzQY9MTb2VyV5u9s//fK2jQsjLphLVkd4SrlOUIrxF6hNk0q1MWJXsgzG6c + onCSXt+fiYHHeEAxPBOgiICwgEvnxVWkm0T4A6WP7BTlb7h6kjI+HlIMSFci + xwo1spZ638M64XPir5PjjQP4LVRbqLVwE0t0xK0WbuPOAZjFXSwfIGMRWKxY + 5CwqfwEoeIqnTgMAAA== + """, + """ androidx/navigation/TestClassWithArg.class: - H4sIAAAAAAAA/41QTYvTUBQ97yVN09jatH51On47yEwXpjO4UwZrQQjUEcah - Lrp6bUPnTdMXyHsts+xvce1GUAQXUlz6o8T70sGVCyE5956bw7m559fv7z8A - PMcew55Q0zyT08tIiZWcCSMzFZ0l2vRTofUHac57+awMxhBeiJWIUqFm0bvx - RTIxZTgM3kuppDlmcPfjgyGDs38wrKKEcgAXPnGRzxhYXEWAaxVwVElqzqVm - eDr4n90vaMcsMT1rQ+YxQ2Mwz0wqVfQ2MWIqjCAJX6wcOolZqFgALZ3T/FJa - 1qVuesjQ36ybAW/xgIebdUAPD/2A+05rsz7iXfa61vRC3uZd5+dHj4fuaeMv - 80nddv1S6FmrI2YXhCdi1c+UybM0TfJnc0On9bNpwlAfSJWcLBfjJD8T45Qm - zUE2EelQ5NLyq2HwPlvmk+SNtGTndKmMXCRDqSV97SmVmSISjUPKzS1uatoY - qePUl+ARPiB2TJxTDTrfUOnsfkXtc6F5SGg1QAOPCG9vVbiOuo2IOutGiSKk - d+sV2eSoljpfUPv0T5vqVnBlw/G4wPt4QvVV8ZMl3BjBiXEzxq2Y1t6hFq0Y - O2iPwDR2cXeEskZd455GUKCnEWo0/gB/P3a9nQIAAA== + H4sIAAAAAAAA/41QTW/TQBScXSdOYhLihK805ZsKtTngtOIGqgiRkCyFIpUq + HHLaxJa7jbOWvJuox/wWzlyQQEgcUMSRH4V461ScOCDZ897sjuf5za/f338A + eI49hj2hojyT0WWgxEomwshMBWexNsNUaP1BmvNBnlTAGPwLsRJBKlQSvJte + xDNTgcPgvpRKmmOG0n54MGZw9g/GdZRR8VBClbjIEwYW1uHhWg0cdZKac6kZ + no7+Z/YLmpHEZmBtyDxkaI3mmUmlCt7GRkTCCJLwxcqhlZiFmgXQ0DmdX0rL + +tRFhwzDzbrt8Q73uL9Ze/Rwv+rxqtPZrI94n71utF2fd3nf+fnR5X7ptPWX + VUndLVXLvmutjpgd4J+I1TBTJs/SNM6fzQ2tNsyimKE5kio+WS6mcX4mpimd + tEfZTKRjkUvLrw6999kyn8VvpCU7p0tl5CIeSy3pdqBUZopINA4pt1KxU9vG + SB2nvgyX8AGxY+Kcqtf7hlpv9ysanwvNQ0KrAXbwiPD2VoXraNqIqLNulCh8 + erdegU2Oarn3BY1P/7SpbwVXNhyPC7yPJ1RfFT9Zxo0JnBA3Q9wKaewdatEJ + 6fvuBExjF3cnqGg0Ne5peAW6Gr5G6w+psmgInQIAAA== """, - """ + """ + androidx/navigation/TestClassWithArgComp$Companion.class: + H4sIAAAAAAAA/5VSS29SQRT+Zi6FckWlrQ/wVR+YUBO5hXRXY1IxJiS0Jtrg + ogszwEgH7p0xcwfSJSt/iP+gKxMXhnTpjzKeuaBu7ea8vvOdM/PN/Pz1/QeA + PTxlaAk9tEYNzyItZmoknDI6Opapa8ciTT8od3pgR22TfK55IzTBBTCG8ljM + RBQLPYre9sdy4AoIGPIvlFbuJUNQ3+mVsIZ8iBwKDDl3qlKGve7l1+0zNOvd + iXGx0tF4lkRKO2m1iKPX8pOYxq5tdOrsdOCMPRR2Iu3+Ti8E92u3aoN/4Mck + Qxkal5vGsPGHcCidGAonqMaTWUAiMm+K3oCBTah+pny2S9GwyVBbzMOQV3jI + yxQt5usXX4LKYt7iu+xVYZ1ffM3zMve9LeYn1P9XnwLuMhT/ikQPciRmdHZn + TRxL25g4Er1thpLheldpeTRN+tIei35Mlc2uGYi4J6zy+apY6mgtbbZH0lOF + 783UDuQb5bHqu6l2KpE9lSpqPtDauOxsKZqkdM5fnzz3L0632KYs8nqQX3v2 + DevnGfyQbD4rNvCIbGnZgCJCoMwourIiPyfPV+TSeaatJ9xaFpeELLqKa4QF + eExZmJHu4T6qeJItfIBa9s9JA+otnyDoYKODzQ62cINC3OzQzNsnYCkqqBKe + IkxxJ0X+N9Gij4okAwAA + """, + """ + androidx/navigation/TestClassWithArgComp.class: + H4sIAAAAAAAA/41S308TQRD+9vrrehY5KmIBf6CglqpcITwJIcEa4yWlJkhq + DE/bdi3bXvfM3rbhkb/FZ1+IGhJNDPHRP8o4d634oA8kdzM7szPfzHyzP399 + /Q5gE+sMZa46OpSdY0/xkexyI0PlHYjI1AIeRW+kOdrV3Vo4eJ8DY3B7fMS9 + gKuu96rVE22TQ4ohuy2VNDsM6bK/2mRIlVebBWSQc5CGTTbXXQbmF+DgSh4W + ChRqjmTEUKlftv4W1ekKsxtDUQGfwd5uB5PCG5dFWYkFV3SdwzWG9XK9HxpC + 8XqjgSeVEVrxwHsu3vFhYGqhiowetk2o97juC701nuu6g1nMMeQvwBg2Lz3I + 3xa2CihhPiZkgWG5Huqu1xOmpblUkceVCk2CEnmN0DSGQUAUzPzpd08Y3uGG + k88ajFK0ThaLfCxAZPfJfyxjq0qnDm365flJ0bFKlmO55ycOfZZrO5adLp2f + LOU2rCp7ynLPpopZ11qwqqkfH7KWm96fubBsSllI2xk3G+NtsLiK2+AjIsno + MAiEXusbhsX9oTJyIHw1kpFsBWL37xy09VrYEQzTdalEYzhoCX3AKYahWA/b + PGhyLWN74iz4Sgmd8Cco2XkdDnVbvJDx3fykTvOfKlgnQtM0uIX5mF/qs0JW + lvRN0sX4EZJOkZ1JvI/I2qFoi7RTOUO+svgFU6cJwuNJJrCGJyTnxlG4iumY + aDrFaLQXuPSPsbyYf9KZymdMffwvTGEcMIGxqancJLmEZIMofMPsW3aGG5+w + eJp4UpQbF2T0+KxkMC/BXkWVdI38twjx9iFSPu74WPJxF/foiGUfK7h/CBbh + AR4ewo4wHaEcwUlkNoIbYSZC6Tedt709GAQAAA== + """, + """ + androidx/navigation/TestGraph.class: + H4sIAAAAAAAA/31SQWsTQRT+ZpJsNttoY6s2sdaq7UE9uG3xZhFqUFmIK9gQ + kJ4m2SGdZDMju5PQY07+EP9B8VBQKKHe/FHimzXoQXAW3nvfN998zHuzP35+ + vQTwDLsMW0InmVHJWajFTA2FVUaHXZnbN5n4eFoFY2iMxEyEqdDD8F1/JAe2 + ihKDd6i0si8YSo8e9+qowAtQRpWhbE9VzrDd+a/zcwb/cJAWHgG4O+hH8XH3 + KG6/quMaghqR1xl2OiYbhiNp+5lQOg+F1sYWXnkYGxtP05SsbnTGxpJZ+FZa + kQgriOOTWYm6ZC7UXAADGxN/phzaoyrZZ9hdzIOAN3nAG1Qt5v73T7y5mB/w + Pfay6vOrzx5vcKc9YM6hEYtZ22ibmTSV2dOxZdh8P9VWTWSkZypX/VQe/b0j + jaNtEsmw2lFaxtNJX2ZdQRqGtY4ZiLQnMuXwkgyOzTQbyNfKgdbSuPePLfZp + OuWipZYbFuV7hDx3QcqcvkqBtgmFrnHKlScX8M+L7ftLMbCOBxTrvwWokRXg + Y+XP4Q1Su7XyDfzDBepfsHpeEBwPi7iFneJfokcgg7UTlCKsR7gZ4RZuU4mN + CE20TsBy3MEm7ecIctzN4f0CEKx6togCAAA= + """, + """ androidx/navigation/TestInterface.class: H4sIAAAAAAAA/4WOz0rDQBDGv9lo08Z/qVqoR/Fu2tKbJykIgaqg4iWnbbIt 22x3IbsNPfa5PEjPPpR0Ux/AGfjmmxn4zfz8fn0DGKNHuOW6qIwsNonmtVxw @@ -433,19 +752,18 @@ object AbstractChildObject: TestAbstract() XzBcHfQS174OPfjYZytDkCJM0U7RQeQtTlKc4iwDWZzjIgOziC26e5qGvyhR AQAA """, - """ + """ androidx/navigation/TestObject.class: - H4sIAAAAAAAA/31STW/TQBB9u0kcxw00lI8mFEqhPQAH3FbcqJBKBJKlYCQa - Rap62sSrsImzK9kbq8ec+CH8g4pDJZBQBDd+FGLWBDggYUsz896+edoZ+/uP - T18APMUew7bQSWZUch5qUaixsMrosC9z+2Y4kSNbB2NoTUQhwlTocfibrTB4 - R0or+5yh8vDRoIkavABV1Bmq9p3KGXZ6/7d+xuAfjdLSJAB3nX4Un/SP4+7L - Jq4gaBB5lWG3Z7JxOJF2mAml81BobWxploexsfE8TcnqWm9qLJmFr6UVibCC - OD4rKjQnc6HhAhjYlPhz5dA+VckBw95yEQS8zQPeomq58L+95+3l4pDvsxd1 - n3/94PEWd9pD5hxasSi6RtvMpKnMnkwtw9bbubZqJiNdqFwNU3n89460j65J - JMN6T2kZz2dDmfUFaRg2emYk0oHIlMMrMjgx82wkXykHOivjwT+2OKDtVMuR - Om5ZlLcJee6ClDm9tRLdIxS6wSnXHl/CvyiPd1ZiUPN9is1fAjTICvCx9qd5 - k9TuWfsMfnqJ5kesX5QEx4My3sVu+TfRRyCDjTNUIlyPcCPCTdyiEpsR2uic - geW4jS06zxHkuJPD+wnyhROwigIAAA== + H4sIAAAAAAAA/32Sz2sTQRTHvzNJNptttLH+aGK1VtuDenDb4s0i1KCwEFew + IVB6mmSHOMlmBnYnS485+Yf4HxQPBQUJevOPEt+sUQ+Cu/De+37nzYeZt/v9 + x6cvAJ5ij2Fb6CQzKjkPtSjUWFhldNiXuX0znMiRrYMxtCaiEGEq9Dj87VYY + vCOllX3OUHn4aNBEDV6AKuoMVftO5Qw7vf+jnzH4R6O0hATgbqcfxSf947j7 + sokrCBpkXmXY7ZlsHE6kHWZC6TwUWhtbwvIwNjaepymhrvWmxhIsfC2tSIQV + 5PFZUaF7MhcaLoCBTck/V07tU5UcMOwtF0HA2zzgLaqWC//be95eLg75PntR + 9/nXDx5vcdd7yByhFYuia7TNTJrK7MnUMmy9nWurZjLShcrVMJXHf89I8+ia + RDKs95SW8Xw2lFlfUA/DRs+MRDoQmXJ6ZQYnZp6N5CvlRGcFHvyDxQFNp1pe + qeOGRXmblOcOSJnTWyvVPVKhuzjl2uNL+Bfl8s6qGbiJ+xSbvxrQIBTgY+3P + 5k3qds/aZ/DTSzQ/Yv2iNDgelPEudsu/iT4CATbOUIlwPcKNiNC3qMRmhDY6 + Z2A5bmOL1nMEOe7k8H4CjO1ti4oCAAA= """ - ) -} + ) diff --git a/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/WrongStartDestinationTypeDetectorTest.kt b/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/WrongStartDestinationTypeDetectorTest.kt index c530ccdc2a771..eaaf466d87e05 100644 --- a/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/WrongStartDestinationTypeDetectorTest.kt +++ b/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/WrongStartDestinationTypeDetectorTest.kt @@ -17,12 +17,22 @@ package androidx.navigation.runtime.lint import com.android.tools.lint.checks.infrastructure.LintDetectorTest +import com.android.tools.lint.checks.infrastructure.LintDetectorTest.compiled +import com.android.tools.lint.checks.infrastructure.LintDetectorTest.kotlin +import com.android.tools.lint.checks.infrastructure.TestFile import com.android.tools.lint.checks.infrastructure.TestMode import com.android.tools.lint.detector.api.Detector import com.android.tools.lint.detector.api.Issue import org.junit.Test +import org.junit.runner.RunWith +import org.junit.runners.Parameterized -class WrongStartDestinationTypeDetectorTest : LintDetectorTest() { +@RunWith(Parameterized::class) +class WrongStartDestinationTypeDetectorTest(private val testFile: TestFile) : LintDetectorTest() { + + private companion object { + @JvmStatic @Parameterized.Parameters public fun data() = listOf(SOURCECODE, BYTECODE) + } @Test fun testEmptyConstructorNoError() { @@ -37,14 +47,16 @@ class WrongStartDestinationTypeDetectorTest : LintDetectorTest() { fun createGraph() { val navController = NavController() navController.createGraph(startDestination = TestClass()) + navController.createGraph(startDestination = TestClassComp()) val navHost = TestNavHost() navHost.createGraph(startDestination = TestClass()) + navHost.createGraph(startDestination = TestClassComp()) } """ ) .indented(), - byteCode, + testFile, ) .skipTestModes(TestMode.FULLY_QUALIFIED) .run() @@ -71,11 +83,17 @@ class WrongStartDestinationTypeDetectorTest : LintDetectorTest() { navController.createGraph(startDestination = Outer.InnerClass(15)) {} navController.createGraph(startDestination = InterfaceChildClass(true)) {} navController.createGraph(startDestination = AbstractChildClass(true)) {} + navController.createGraph(startDestination = TestClassWithArgComp(15)) + navController.createGraph(startDestination = TestClassComp::class) + navController.createGraph(startDestination = OuterComp.InnerClassComp::class) + navController.createGraph(startDestination = OuterComp.InnerClassComp(15)) + navController.createGraph(startDestination = InterfaceChildClassComp(true)) + navController.createGraph(startDestination = AbstractChildClassComp(true)) } """ ) .indented(), - byteCode, + testFile, ) .run() .expectClean() @@ -100,11 +118,13 @@ class WrongStartDestinationTypeDetectorTest : LintDetectorTest() { navController.createGraph(startDestination = Outer.InnerObject::class) {} navController.createGraph(startDestination = InterfaceChildObject) {} navController.createGraph(startDestination = AbstractChildObject) {} + navController.createGraph(startDestination = OuterComp.InnerObject::class) + navController.createGraph(startDestination = AbstractChildObjectComp) } """ ) .indented(), - byteCode, + testFile, ) .run() .expectClean() @@ -127,11 +147,20 @@ class WrongStartDestinationTypeDetectorTest : LintDetectorTest() { navController.createGraph(startDestination = Outer.InnerClass) {} navController.createGraph(startDestination = InterfaceChildClass) {} navController.createGraph(startDestination = AbstractChildClass) {} + navController.createGraph(startDestination = TestInterface) + navController.createGraph(startDestination = TestAbstract) + //classes with companion object to simulate marked with @Serializable + navController.createGraph(startDestination = TestClassComp) + navController.createGraph(startDestination = TestClassWithArgComp) + navController.createGraph(startDestination = OuterComp.InnerClassComp) + navController.createGraph(startDestination = InterfaceChildClassComp) + navController.createGraph(startDestination = AbstractChildClassComp) + navController.createGraph(startDestination = TestAbstractComp) } """ ) .indented(), - byteCode, + testFile, ) .run() .expect( @@ -166,7 +195,55 @@ If the class AbstractChildClass does not contain arguments, you can also pass in its KClass reference AbstractChildClass::class [WrongStartDestinationType] navController.createGraph(startDestination = AbstractChildClass) {} ~~~~~~~~~~~~~~~~~~ -5 errors, 0 warnings +src/com/example/test.kt:12: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor TestInterface(...)? +If the class TestInterface does not contain arguments, +you can also pass in its KClass reference TestInterface::class [WrongStartDestinationType] + navController.createGraph(startDestination = TestInterface) + ~~~~~~~~~~~~~ +src/com/example/test.kt:13: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor TestAbstract(...)? +If the class TestAbstract does not contain arguments, +you can also pass in its KClass reference TestAbstract::class [WrongStartDestinationType] + navController.createGraph(startDestination = TestAbstract) + ~~~~~~~~~~~~ +src/com/example/test.kt:15: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class [WrongStartDestinationType] + navController.createGraph(startDestination = TestClassComp) + ~~~~~~~~~~~~~ +src/com/example/test.kt:16: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class [WrongStartDestinationType] + navController.createGraph(startDestination = TestClassWithArgComp) + ~~~~~~~~~~~~~~~~~~~~ +src/com/example/test.kt:17: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class [WrongStartDestinationType] + navController.createGraph(startDestination = OuterComp.InnerClassComp) + ~~~~~~~~~~~~~~~~~~~~~~~~ +src/com/example/test.kt:18: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class [WrongStartDestinationType] + navController.createGraph(startDestination = InterfaceChildClassComp) + ~~~~~~~~~~~~~~~~~~~~~~~ +src/com/example/test.kt:19: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class [WrongStartDestinationType] + navController.createGraph(startDestination = AbstractChildClassComp) + ~~~~~~~~~~~~~~~~~~~~~~ +src/com/example/test.kt:20: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class [WrongStartDestinationType] + navController.createGraph(startDestination = TestAbstractComp) + ~~~~~~~~~~~~~~~~ +13 errors, 0 warnings """ ) } @@ -191,11 +268,17 @@ you can also pass in its KClass reference AbstractChildClass::class [WrongStartD navHost.createGraph(startDestination = Outer.InnerClass(15)) {} navHost.createGraph(startDestination = InterfaceChildClass(true)) {} navHost.createGraph(startDestination = AbstractChildClass(true)) {} + navHost.createGraph(startDestination = TestClassWithArgComp(15)) {} + navHost.createGraph(startDestination = TestClassComp::class) {} + navHost.createGraph(startDestination = OuterComp.InnerClassComp::class) {} + navHost.createGraph(startDestination = OuterComp.InnerClassComp(15)) {} + navHost.createGraph(startDestination = InterfaceChildClassComp(true)) {} + navHost.createGraph(startDestination = AbstractChildClassComp(true)) {} } """ ) .indented(), - byteCode, + testFile, ) .run() .expectClean() @@ -220,11 +303,14 @@ you can also pass in its KClass reference AbstractChildClass::class [WrongStartD navHost.createGraph(startDestination = Outer.InnerObject::class) {} navHost.createGraph(startDestination = InterfaceChildObject) {} navHost.createGraph(startDestination = AbstractChildObject) {} + navHost.createGraph(startDestination = OuterComp) {} + navHost.createGraph(startDestination = OuterComp.InnerObject) {} + navHost.createGraph(startDestination = OuterComp.InnerObject::class) {} } """ ) .indented(), - byteCode, + testFile, ) .run() .expectClean() @@ -247,11 +333,19 @@ you can also pass in its KClass reference AbstractChildClass::class [WrongStartD navHost.createGraph(startDestination = Outer.InnerClass) {} navHost.createGraph(startDestination = InterfaceChildClass) {} navHost.createGraph(startDestination = AbstractChildClass) {} + navHost.createGraph(startDestination = TestInterface) + navHost.createGraph(startDestination = TestAbstract) + navHost.createGraph(startDestination = TestClassComp) {} + navHost.createGraph(startDestination = TestClassWithArgComp) {} + navHost.createGraph(startDestination = OuterComp.InnerClassComp) {} + navHost.createGraph(startDestination = InterfaceChildClassComp) {} + navHost.createGraph(startDestination = AbstractChildClassComp) {} + navHost.createGraph(startDestination = TestAbstractComp) } """ ) .indented(), - byteCode, + testFile, ) .run() .expect( @@ -286,13 +380,68 @@ If the class AbstractChildClass does not contain arguments, you can also pass in its KClass reference AbstractChildClass::class [WrongStartDestinationType] navHost.createGraph(startDestination = AbstractChildClass) {} ~~~~~~~~~~~~~~~~~~ -5 errors, 0 warnings +src/com/example/test.kt:12: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor TestInterface(...)? +If the class TestInterface does not contain arguments, +you can also pass in its KClass reference TestInterface::class [WrongStartDestinationType] + navHost.createGraph(startDestination = TestInterface) + ~~~~~~~~~~~~~ +src/com/example/test.kt:13: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor TestAbstract(...)? +If the class TestAbstract does not contain arguments, +you can also pass in its KClass reference TestAbstract::class [WrongStartDestinationType] + navHost.createGraph(startDestination = TestAbstract) + ~~~~~~~~~~~~ +src/com/example/test.kt:14: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class [WrongStartDestinationType] + navHost.createGraph(startDestination = TestClassComp) {} + ~~~~~~~~~~~~~ +src/com/example/test.kt:15: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class [WrongStartDestinationType] + navHost.createGraph(startDestination = TestClassWithArgComp) {} + ~~~~~~~~~~~~~~~~~~~~ +src/com/example/test.kt:16: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class [WrongStartDestinationType] + navHost.createGraph(startDestination = OuterComp.InnerClassComp) {} + ~~~~~~~~~~~~~~~~~~~~~~~~ +src/com/example/test.kt:17: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class [WrongStartDestinationType] + navHost.createGraph(startDestination = InterfaceChildClassComp) {} + ~~~~~~~~~~~~~~~~~~~~~~~ +src/com/example/test.kt:18: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class [WrongStartDestinationType] + navHost.createGraph(startDestination = AbstractChildClassComp) {} + ~~~~~~~~~~~~~~~~~~~~~~ +src/com/example/test.kt:19: Error: StartDestination should not be a simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class [WrongStartDestinationType] + navHost.createGraph(startDestination = TestAbstractComp) + ~~~~~~~~~~~~~~~~ +13 errors, 0 warnings """ ) } - private val sourceCode = - """ + override fun getDetector(): Detector = WrongStartDestinationTypeDetector() + + override fun getIssues(): MutableList = + mutableListOf(WrongStartDestinationTypeDetector.WrongStartDestinationType) +} + +private val SOURCECODE = + kotlin( + """ package androidx.navigation import kotlin.reflect.KClass @@ -321,52 +470,24 @@ public inline fun NavHost.createGraph( startDestination: Any, route: KClass<*>? = null, ): NavGraph { return NavGraph() } +""" + + TEST_CLASS + ) + .indented() -val classInstanceRef = TestClass() - -val classInstanceWithArgRef = TestClassWithArg(15) - -val innerClassInstanceRef = Outer.InnerClass(15) - -object TestGraph - -object TestObject - -class TestClass - -class TestClassWithArg(val arg: Int) - -object Outer { - data object InnerObject - - data class InnerClass ( - val innerArg: Int, - ) -} - -interface TestInterface -class InterfaceChildClass(val arg: Boolean): TestInterface -object InterfaceChildObject: TestInterface - -abstract class TestAbstract -class AbstractChildClass(val arg: Boolean): TestAbstract() -object AbstractChildObject: TestAbstract() - -""" - - // Stub - private val byteCode = - compiled( - "libs/StartDestinationLint.jar", - kotlin(sourceCode).indented(), - 0x88777768, - """ +// Stub +private val BYTECODE = + compiled( + "libs/StartDestinationLint.jar", + SOURCECODE, + 0x8e62b385, + """ META-INF/main.kotlin_module: H4sIAAAAAAAA/2NgYGBmYGBgBGJOBijgUucSTsxLKcrPTKnQy0ssy0xPLMnM zxMS8Essc0ktLsnMA/O9S7hEubiT83P1UisScwtyUoXYQoCy3iVKDFoMAGXO +shYAAAA """, - """ + """ androidx/navigation/AbstractChildClass.class: H4sIAAAAAAAA/41QTW8SURQ9780wwBRkwC9K/ajVNpSF0MaN0TRSjAkJdtE2 LGD1YCb0hWEmmfcgXfJbXLsx0Zi4MMSlP8p431CNCxYu3rn33Hdy7sfPX9++ @@ -380,7 +501,40 @@ object AbstractChildObject: TestAbstract() CTx6a6+mOS/FTOMzih832hTWghsbjqcpPsYzim/SITO4PYTVxZ0u7nap7X1K Ue1iG7UhmMIOHgyRVSgpPFRwFR4pOAqeQvk3MHA2w9YCAAA= """, - """ + """ + androidx/navigation/AbstractChildClassComp$Companion.class: + H4sIAAAAAAAA/51Sy24TMRQ99qR5DAHSlkfC+xGkthKdpqrYFCGVVEiR0iIB + yqYL5MyY1smMB42dqMuu+BD+oCskFijqko9CXDsBtsDm+t5z7rnXczzff3z9 + BmAHTxh2hE6KXCWnkRZTdSysynW0NzS2ELHtnqg06abCmG6efWy7IDQ1VMAY + GiMxFVEq9HH0ejiSsa0gYCg/V1rZFwzB2vqgjiWUQ5RQYSjZE2UYnvX/Z+Eu + Q2etP85tqnQ0mmaR0lYWWqTRvvwgJqnt5pomTGKbFweiGMtid30QgrvFq+34 + D/k+8yzD5r9NY1j+JTiQViTCCsJ4Ng3ISOZCzQUwsDHhp8pVW5QlHYb27CwM + eZOHvEHZ7Kx68Slozs62+RZ7Wanyi89l3uCud5u5CRt/71AFtxlqv22iWx6K + 6b40Vmkv2xxbcr6bJ5Lhal9peTjJhrJ4J4YpISv9PBbpQBTK1Quw3tNaFn6D + pPcK3+aTIpavlONabybaqkwOlFHUvKd1bv0egw6ZXXIO0Mnds9OH3KcqcpbQ + ubTxBdVzTz+gWPZgHw8p1ucNqCEEGoyySwvxUzr5Qlw/9/Y6wY05OBf47DKu + EBfgEVWhF93BXbTw2C+8h7b/3ckD6m0cIehhuYeVHlZxjVJc79HMm0dgBk20 + iDcIDW4ZlH8CofOnlCsDAAA= + """, + """ + androidx/navigation/AbstractChildClassComp.class: + H4sIAAAAAAAA/5VSzU8TQRT/zW4/lyJtRSzgBwpiqcgWQjwIIcESTZPSA5Im + wmnarmXodtbsTBuO/C2evRA1JJoY4tE/yvhmWyFRDnqYefPe/N7vff74+eUb + gHWsMZS4bIeBaJ+4kg9Eh2sRSHe7qXTIW7pyJPx2xedKVYLeuyQYw8J1+H1P + 6UufCGkzJDaFFHqLIVY8WGow2MWlRgZxJB3EkCKdhx0GdpCBg7E0LGQIqo+E + Yliu/XtWGxSp4+ltQ0YhDhhSmy1/FHr933kWzMUlAZK4ybBarHUDTTzu8aDn + Cqm9UHLf3fHe8r5PRUri6Ld0EO7ysOuFG8PabjmYxBRD+pKM4dl/FHOVxEYG + BUybtswwzNeCsOMee7oZciGVy6UMdMSj3Hqg633fpzbkfme862ne5pqTzeoN + bBo1M1faXKCWd8l+IoxWpld7leHVxWnesQpWdC5OHSs75lipWOHidC65ZpXZ + c5Z8MZ5PZK0Zq2x/f5+wsrG93KWWIpeZWCqeTRg6WqrFa0v+c0soPcomV+eD + HfoRMkKtdDXD7F5fatHzqnIglGj63vZVwbQklaDtMUzUhPTq/V7TC/c5YRjy + taDF/QYPhdFHxkxVSi+MOuyRs/M66Ict76Uwf9OjOI2/omCVOh+jDlmYNoOg + RJ+QliB5h2Te7CxJm/R4ZF0mbYvQFkmndI50afYzxs8ihqcjT6CGFbqnhijc + wISZCL0MG7UCWTpDLtcMimS89AnjH66lyQwBI5oUJZUcORcQjRqZr5h8w85x + +yNmzyKLTcQmIKM9taLCyhF3iQoGKmS/S4z3DmFXcb+KuSoe4CE9MV/FAh4d + giks4vEhUgoTCkUFR2FJIaGQVcgpFH4BxvFHnF0EAAA= + """, + """ androidx/navigation/AbstractChildObject.class: H4sIAAAAAAAA/41Sy2oUQRQ9VfPq6Yzm4SMzxkdMhBgXdhJcaRDGUaGhbcEM A5JV9YOkMj3V0F0zZDkrP8Q/CC4CCjLozo8Sb5XjA8zCbvreuueeOtX3UN++ @@ -394,7 +548,21 @@ object AbstractChildObject: TestAbstract() rZ8ENEkKcLDwe/Mqsc2z8An87TlaH7B4ZgGODRtvYdPeSPKGBFYOUfFxxcdV H9dwnZZY9dFG5xCsxA2sUb+EW+JmifoP1gZuws4CAAA= """, - """ + """ + androidx/navigation/AbstractChildObjectComp.class: + H4sIAAAAAAAA/5VSW2sTQRg9M0k2m220tV6aWO8t4gXdtvhmEWJUWNiu0IaA + 9Gk2u7TTbGZldxL6mCd/iP+g+FBQkKBv/ijxmzFU0L64y36XM+c7s3OYHz8/ + fwXwDOsMj4VKilwmx74SE3kgtMyV34lLXYiB7h7KLHkbH6VU5qP3dTCG9fMG + emmpz4Yss8LgbEsl9QuGyoOH/SZqcDxUUWeo6kNZMjwJ/2Pv5wzu9iCzih64 + kXGDaK/Xibqvm7gAr0HgRYa1MC8O/KNUx4WQqvSFUrm2yqUf5ToaZxlJXQqH + uSYxfyfVIhFaEMZHkwq5wkxomAAGNiT8WJpug6pkkzaYTT2Pt7j9ZlP3+wfe + mk23+AZ7WXf5t48OX+KGusVw/9wD/u2V+Z1ITF4RLJWlPB1qhtXdsdJylAZq + IksZZ2nnz0nIwm6epAyLoVRpNB7FadETxGFYDvOByPqikKafg95ePi4G6Rtp + mvZcuP+PLDbJw6o9eNtYSvkWdQ7lJcqc3prtblPnG3so1x6dwj2xy3fmZGAH + dyk2fxPQICnAxcLZ8AqxzbPwBfzdKZqfsHhiAY57Nt7Emr2h5A0JLO+jEuBy + gCsBruIalVgJ0EJ7H6zEdazSegmvxI0Szi+zsivd3gIAAA== + """, + """ androidx/navigation/InterfaceChildClass.class: H4sIAAAAAAAA/41Qz28SQRT+ZhZY2FJZqFZK/VWrtnBwaaMnTWNbY0KCbVIb DnAaYKVTltlkZyA98rd49mKiMfFgiEf/KOMbSpqYcPAw773vvW++9+P3nx8/ @@ -409,7 +577,41 @@ object AbstractChildObject: TestAbstract() brfwjPwbqt2m2p0OnAbWG7jbQBkbFKLSwCbudcA07uNBB65GUeOhRl7jkUZW o6Sx9hcxw6Dy8gIAAA== """, - """ + """ + androidx/navigation/InterfaceChildClassComp$Companion.class: + H4sIAAAAAAAA/51STW/TQBB9u07zYQJNWz4SvgtBakHUTQXiUIQEqZAspUUC + lEsPaGNv203sNfJuoh5z4ofwD3pC4oCiHvlRiFknwLlcZmfemzezfuufv77/ + APAMjxieCx3nmYpPAy0m6lhYlekg1FbmRyKS3ROVxN1EGNPN0s9tF4SmjgoY + Q2MoJiJIhD4O3g2GMrIVeAzll0or+4rB29js17GEso8SKgwle6IMw4vef23c + Zehs9EaZTZQOhpM0UE6hRRLsySMxTmw308bm48hm+b7IRzLf3ez74G7zWjv6 + R35KC5Zh62LTGFb+CPalFbGwgjCeTjyykrlQcwEMbET4qXLVNmVxh6E9m/o+ + b3KfNyibTavnX7zmbLrDt9mbSpWffy3zBne9O8xNeHIBiyq4xVD76xNd80BM + 9qSxShe6rZEl77tZLBmWe0rLg3E6kPlHMUgIWe1lkUj6IleuXoD1UGuZFxsk + vZj/IRvnkXyrHNd6P9ZWpbKvjKLm11pntthj0CG3S84COrl7ePqSe1QFzhM6 + lx5/Q/WsoO9TLBdgiHWK9XkDavCBBqPs0kL8lE6+ENfPCn+d4PocnAuK7DKu + EOfhAVV+IbqNO2jhYbHwLtrFH08eUG/jEF6IlRCrIdZwlVJcC2nmjUMwgyZa + xBv4BjcNyr8BSdfj0S4DAAA= + """, + """ + androidx/navigation/InterfaceChildClassComp.class: + H4sIAAAAAAAA/5VSW08TURD+zrb0RpG2KJbiBQS1FGELYkyEkGCNZpNSEyRN + hKfT9lBOuz1rdk8bHvktPvtC1JBoYoiP/ijjnKXCgySGh52Zb3bmm8uZX7+/ + /QCwhjWGRa5avidbR7biA9nmWnrKdpQW/gFvisqhdFsVlwdBxet9iIMxZDp8 + wG2Xq7b9ttERTR1HhGH2KppdEegLqjhGGGIbUkm9yRAt7i3UGSLFhXoacSRT + iCJFmPttBraXRhpjSVi4QaH6UAYMS9VrdLpOpdpCbxk2qrHHkNhousPaz65B + NG8EVxQRxy2GlWK162kisjuDni1NjuKu/Uoc8L6rK54KtN9vas/f5n5X+Ovn + 091OYRJ5huQFGcPz64xz2cV6GgVMm83cYZiren7b7gjd8LlUgc2V8nRIFNg1 + T9f6rkuLyP5teVto3uKak8/qDSJ0AcyIpBGgrXfJfyQNKpPVWmF4c3acS1l5 + K/zOjlNWZjRlJaL5s+OZ+KpVZi9Y/OVYLpaxClY58vNjzMpEd7IXKEEphWhi + JBMzdKum3/9eCfVGrWRrfPCK3FKFIctdzTC901da9oSjBjKQDVdsXU5LR1Lx + WoJhvCqVqPV7DeHvcophyFW9Jnfr3JcGD51pRynhh+sVlJx65/X9pngtzb+p + YZ36P1WwQmuPUnsx0lPmHcheonXFSN8jnTNXSzpCOI4EyWVCmxRtkU6VTjFa + mv6K8RNCFuxhJuCgTHLyPAoZZM2DkGXYaBnEOzHkss07kR4pfcH4pytp0ucB + Q5oEbiI5TM4jfGmkv2PyPTvF1GfcPQk9ERrNFGRhEwUabjXkfoKnpCvkv0+M + M/uIOJh18MDBHObJxEMHj/B4HyxAEQv7SATIBigFSAdYDAzMBZgIUPgDTG80 + x3MEAAA= + """, + """ androidx/navigation/InterfaceChildObject.class: H4sIAAAAAAAA/41SS2/TQBD+dpMmjmtoWl4J5VXaotIDbivEhQqpBJAsBSPR KBLqaRMv6SbOWrI3Vo858UP4BxWHSiChCG78KMSsCeUAEtjaeXwz83lm1t++ @@ -424,7 +626,7 @@ object AbstractChildObject: TestAbstract() Fn8rwyUiuHyEUoArAa4GVNogE80A17F6BJbhBm5SPIOX4VYG5wfApo4N6gIA AA== """, - """ + """ androidx/navigation/NavController.class: H4sIAAAAAAAA/4VRu0oDQRQ9d2I2ukZNfMYXGGzUwlWxUwSNCIGooJLGapId 4pjNDOxOgmW+xT+wEiwkWPpR4t01vc3hPGbuHO58/3x8AjjGJqEqTRhbHb4E @@ -436,7 +638,7 @@ object AbstractChildObject: TestAbstract() fwcwBT/L1zNcwUb2XYRpzoqPyNUxU8dsHXMoMUW5jnksPIISLGKJ8wR+guUE 3i+86bUs6wEAAA== """, - """ + """ androidx/navigation/NavDestination.class: H4sIAAAAAAAA/4VRO08CQRD+ZoEDTpSHiuAjUWOhFh4SO42Jj5iQICZqaKwW 7oLLYy/hFkLJb/EfWJlYGGLpjzLOnTRWNl++x+zMZPbr+/0DwAm2CLtSu0Nf @@ -448,7 +650,7 @@ object AbstractChildObject: TestAbstract() HeUbEa5hM/owwgJnmSfEalisYamGLHJMka+hgOUnUIAVrHIewA5QDGD9AKYj 0APtAQAA """, - """ + """ androidx/navigation/NavDestinationKt.class: H4sIAAAAAAAA/61WbVPbRhB+zsbYCGOECW8GDAGHGGgQEJI0hZJSaILKS1Kg pJS26WGEEQgpo5OZdDrT5lP/Q7/2FyTlQzplppPJt/ZHdbqnCgw2BibDB5/2 @@ -479,7 +681,7 @@ object AbstractChildObject: TestAbstract() N0/6h7Qfj9YR1jGrQ9fxOeZ0zGNBxyIer4MJPMEX67gmMCAwKJAV6BcYppMt MCSgCdwVuCcwJnBHICKwJNApkBRYFugS6Bbo+w//HMZ8gQ0AAA== """, - """ + """ androidx/navigation/NavGraph.class: H4sIAAAAAAAA/31SXU8TQRQ9s6XbbUFaQBAq+AEoBZStxCdLSPwIWlOr0qYv PE3bSZl+zJqdacNjf4v/wCeND6bx0R9lvLOtCkHcZO6de+65d87OnR8/v34D @@ -496,7 +698,7 @@ object AbstractChildObject: TestAbstract() 3CW6LV8aUybldpfGDcrvROxr2LWYFTEbAQ8iex8PyR8Rukwnr5wgVkS2iJtF rGKNtrhVxG3cOQGzv7Z+gqRGSmNDw9WY1tjUuBfZtMbML5qRw8f+AwAA """, - """ + """ androidx/navigation/NavHost.class: H4sIAAAAAAAA/31OTUvDQBB9s9F+xK9ELVTEv2Da4s2TUMRAVVDwktO2Wcs2 6S50t6HH/i4P0nN/lDiJd2fgzZt5w5vZ/3x9A7hDj3AtTb6yOt8kRlZ6Lr22 @@ -505,7 +707,7 @@ object AbstractChildObject: TestAbstract() m0a8LTwhfLfr1Uw96lIRrt7Wxuul+tBOT0v1YIz1zapr8RUc4C8ELho8xyXX ITsfcrYyBCnaKTopugiZ4ijFMU4ykMMpzjIIh8gh/gUZbPE0RgEAAA== """, - """ + """ androidx/navigation/Outer$InnerClass.class: H4sIAAAAAAAA/41U30/bVhT+rp0fjgngAG35kbXdyFgS2jqwdusK7QZ0DLMQ OpjQOvZySbxgCDazHdS9TDz1T6i0vUyapj3x0EobTKtUsfZtf9M07VzbTbrQ @@ -533,7 +735,7 @@ object AbstractChildObject: TestAbstract() NjBt4LaBO/iQVHxkYAaz62Ae5nB3Hb2eeD72oAZrwoPmIeOhz0O/hxuB8aYH 3UOW9H8BSGQIivsHAAA= """, - """ + """ androidx/navigation/Outer$InnerObject.class: H4sIAAAAAAAA/41US08TURT+7p0+plMe5SFPxQdFXsoUxBXEBFHjkFKMJRhl dWlHGGhndOa2YcnKnVsXLl24YiFxQaKJqRI3/ijiudNREKIxac/5zrnnNd+5 @@ -553,7 +755,7 @@ object AbstractChildObject: TestAbstract() 0f8RFw9Ch4YZkopHjgm0Eau3wn6T9C1SozFcInqG1qFZuGzhikVPd40ghi1k MbIOFuA6RtdhBOo3FiARoCsEPQEyIUiT/AmvDPuL4QQAAA== """, - """ + """ androidx/navigation/Outer.class: H4sIAAAAAAAA/4VRW2sTQRT+ZjaXzSbaNF6aWFsvTbWp4rbFp1qEGhUW0hRs CUieJskQJ9nMwu4k9DFP/hD/QfGhoCBB3/xR4tltNA9S3GHPN+f2nTnn/Pz1 @@ -568,7 +770,88 @@ object AbstractChildObject: TestAbstract() ySsUHX/5r+DvL1D4jKXzxGBhi2SJ3PfpX6N3PCRcJ6wlJTawTbhPNMtEXGrD 8nDDw00Pt3CbrljxUEalDRbhDlbbSEdwItyNkImwFmH9NzJGDiwjAwAA """, - """ + """ + androidx/navigation/OuterComp$InnerClassComp$Companion.class: + H4sIAAAAAAAA/51TTW/TQBB9a6dxYkJJUz4SoJRCgBRB3VQIIRUhQapKkdJW + giqXHtAmWcom9hp511GPOfFD+Ac9IXFAUY/8KMSsE6i4IJXLzJt582a0M/aP + n9++A3iGBsNzrgZJLAcngeJjecyNjFVwkBqRtOLoU72tFKGQa52F1nBFJR4Y + Q3nIxzwIuToODnpD0TceXIb8S6mkecXgNta7JSwg7yMHjyFnPkrN8KLzfyO3 + GZqNzig2oVTBcBwFUpFE8TDYER94GppWrLRJ0r6Jkz2ejESyvd714djRy/X+ + Ofk+yliGjYt1Y1j6LdgThg+44ZRzorFLy2TWFK0BAxtR/kTaaJPQoMlQn058 + 36k6vlMmNJ0Uzj671elky9lkb7yCc/Yl75QdW7vFbIcnF9mRh1sMK/9UeFhh + WPxbxlD8s1x62z4f7whtpMqkGyNDF2vFA8FwpSOV2E+jnkgOeS+kTKUT93nY + 5Ym08TxZOm8v6M7+uzhN+mJXWq72NlVGRqIrtaTi10rFJpuj0aQT5ezeyDv2 + c6Hn36MosIskv/D4KwqnGX2fbD5L7qJOtjQrQBE+UGaELs3FT8k7c3HpNDuK + FVyfJWeCDF3GInEuHlBUIfY27mAVtQzdJf8wG7yGR9kPQ7sgTfkIbhtLbVTa + WMZVgrjWpt43jsA0qqgRr+Fr3NTI/wIu2QAobQMAAA== + """, + """ + androidx/navigation/OuterComp$InnerClassComp.class: + H4sIAAAAAAAA/5VUW08bVxD+zvq2XgysIRcHSJMWNzWGsECTlAJpuJelXFJI + aQjtw8HemgV7l+6urfSlylN+QqT2pVIf+sRDorZQFamiyVt/U1V1zu5ibhES + kn3OzOzMN9+ZmXP++e/PvwDcwdcMPdwqOrZZfKpZvGaWuGfalrZY9Qxnwq5s + Z3XLIqnMXVeoCTAGdZPXuFbmVklbXN80Cl4CEYb4iGmZ3icM0ZzetcIQyXWt + pBBDQkEUMoNsCqQxp8TA9BQUNCQhIUX+3obpMvTOXYTIMENDyfD0Oial0xmU + An2zLcPy+gm4YG9/x9BPfC6K3TlnOyVt0/DWHW5arsYty/b8KFdbsL2Fark8 + LA4XV+gMVxhSIlW2aHzDq2WPwcldLKGuz52u6fAFOafQikuCTRuV2rOXPce0 + qCyXcl3HoAMrne/qadt41SwXDSeBdxTcEO3KnMTPHXbvvox3qdl8e9uwigy3 + c2fhz2YM0YlkJ7IiwfsMHaIt5zl+IBxzwnHifMe8cOxOoQPXhXSbCrDB3Y0J + u2gwpI8idcszSuKMfcGQ0hRqGFDQjw/pRMa3VV6mObyce0svnjBkzxsJmge+ + XjaosjHb2zAchpazKMRrpFAOb8m9i3Q3KxZukUsCw2Ki57Zsj5C0zVpFM+lY + jsXL2mQwfhPEyHOqBc925rmzRUUKLuJ9BSOgzMk6GMPghYbsiAbVfRRj4gKP + U4kP2cwbHi9yjxNFqVKL0AvDxJIUC+jab5H9qSk06oBUpCu6c/DspiJlJEVS + D54p9JNUWZHkOO0NtEdobyKz/Pq5nCHX5gGpjw2x5vHGlrgqtUl9kdc/xyU1 + OptUE0KbefM8MtuqyiQfPBuQZSlwIjMjc5JkZUBWG9qiGdbHZt68iFBgKvB4 + wUhuJLlJyEvpOrxM+duickyNC84DTJzk+rlVS+AhQ9PJ0lGVFnht0nA90/Ld + e7fonWhfqlqeWTF0q2a6Jg3Q2NFQ0YwGE9w8Z1rGQrWybjiPxJCJ2bILvLzC + HVPoobFx2eOFrXm+HerZ09gPucMrBnE8kSR1xNMgVVm2q07BmDYFxLUQYuUM + ObozEj3roPWamASqySPS4rRfpr1FPO+i86THfOsXpE2Tt0S7kt9DMt/+Oxpf + +QgrtDZBjMUkYU5R1CS+JO1K4E3fmsUAkSRQqZJQ6R9gamKuaI/lf0PjTh0u + 7hunfJhU4BDCpIncYXDn6WD21gB6WAlWBPQTS8EpuQ9ptX0PV1/WgwKyyTrZ + ZEj2WFnUJDJUriD3rbCA6Y7o9z9AFgxG8u27aA8gH9MaARMI9KyF6YdoF9Q6 + 9nFjdQ83W97bxS0RuYsutWsXPbvofXnqGB0ho+PtYVS2dJ1HUAOfwR+4c7oM + chjPcBf3Qh5f0S7alc13/4JYdKf7b0g/IhbZ6T6ANC+Aeuj/k7BEg5489tsX + Scj/Ip0g/ahi2XrFshjEx5RnleSEIPWRn34IiZBqxk9KxPYxssr28OBXTLzy + LRE88adOzNfnWKIij5A0Svuan36ZKINkRpMVw9QaIjqmdXyqYwY6iZjV8Rnm + yMHFPBbWoLpodrHoQvHXuCssaRctLlpd3PWNgy40Fx2+PPo/FBJ91lIJAAA= + """, + """ + androidx/navigation/OuterComp$InnerObject.class: + H4sIAAAAAAAA/41US08TURT+7p0+plMe5SFPxQeoLVWmoK4gJoAah5RihGCU + 1aUdy0A7gzO3DUtW/gQXLl3ohoXEBYkmpsrOH2U8dxgFIRKT9t7vnHvO+c58 + 5878+Pn5K4C7uMeQE27F95zKjumKplMV0vFcc6khbX/eq2+PWa5r+0vrm3ZZ + JsEYMpuiKcyacKvmb6/GkJhxXEfeZ9CyudU2xJEwEEOSISY3nIAhX/xvlmkG + XXrL0nfcKkNvNlc8ZjzyUsRo0fOr5qYt133huIEpXNeTYdHALHmy1KjVKCp9 + oqyODiq8IYKNea9ih41amvuhMEPN268aokZdXsgWTz/ddO4Fw9h5bEQl1ms2 + 0cU9uWH7DN1nqxD1TLkWamSAK2F0q7S8Mluaf9iGIRgpcg4zdBW3PElh5qIt + RUVIQYm83tRoVkwtKbWAgW2Rf8dRVoFQZZLhZWt3xOAD3OCZ1q7BdQXS0a4b + ypXp0A9fGwOt3SleYHNJnX9/l+AZvtCT0YZ4ITalZ+JDsQFWYI8P32gLqUyC + vEnCjLBOOKWwYptiqodL5040iRw9Tkk0H9iBdNzwdGJLMgw/bbjSqduW23QC + h4SbPRaTrsvRcDqLjmuXGvV1219R4ipNvbKorQrfUXbkbF+Wory1KLYje+x0 + 7SfCF3WbWvqLpC28FvM1EQQ2mcay1/DL9iNHlRiMSqyeaQ6TNKNYKP+gGhnt + t8hK0N5Oe5xO46F1myxTDUl5xw+g7xPgmIiCgTk6BtqOApCiUqpomjw8TL4a + JWvdnR/Do+NwLQo/yUzvJLoi3uPU7r1/pDL0oDdismjntPeP598jHtvLfwN/ + i7i2l2+BP4vthY0XaI2BJ/WwWN9RQlRMoT76M1IH6lrTS0RAx8AfKfrDBCD9 + Bfz5AQY/4eJ+6NAwRavSkWMcHaTqnZAvT98l1RpdMZJnZA2ahcsWrlj0dNcI + YtTCGK6vgQW4gZtrMAL1ywZIBOgJQV+ATAjStP4Cqe39ku0EAAA= + """, + """ + androidx/navigation/OuterComp.class: + H4sIAAAAAAAA/41RW2sTQRT+ZjaXzSa2abw0sbZVW7Wp4rbFp1qEGBUWYgq2 + BCRPk2SJk2xmZWcS+pgnf4j/oPhQUJCgb/4o8ew2WkQo7rDnm3P7zpxzfvz8 + /BXAEzxkWBWqF4Wyd+IqMZF9YWSo3MOx8aN6OHqfBWMoDsREuIFQffewM/C7 + JguLIXMglTTPGKytaquANDIOUsgypMw7qRnWG5cyP2WwD7pBwuGAx4m21zw6 + rjXrLwu4AidHxgWGjUYY9d2BbzqRkEq7QqnQJFzabYamOQ4ColpqDENDZO5r + 34ieMIJsfDSxqEsWi1wswMCGZD+RsbZDt94uQ3U2LTi8zB1enE0dblv29w+8 + PJvu8R22z63U86zNv33M8CKPE/ZYTLPgKUVtBELruBeGfGI4nw7Do0s73/w7 + OYt1esR/ZPye/R1qtykmL3xtpEoiHw+p6MqbsTJy5HtqIrXsBH7tYlK0lHrY + 8xkWG1L5zfGo40fHgmIYSo2wK4KWiGSsz42Fiyf6lOwcheOo67+Ssa8yr9P6 + pwp2aWWpZM6VeIOEm6RlCIuEnE460e6R5sbbIExvn8E+Tdz358FADQ9IFs4D + kCMqwEb+T/IyRcdf/gv42zMUPmHxNDFY2CJZIvdt+lfpHXcJ1wirSYkNbBPu + E80SEZfasDxc9XDNw3XcoCuWPZRRaYNp3MRKG2kNR+OWRkZjVWPtF1d0yO47 + AwAA + """, + """ androidx/navigation/TestAbstract.class: H4sIAAAAAAAA/4VRy0oDMRQ9SduxHau29dX6AHUh6sLR4kJQhKoIA7WCSjeu 0s6gsdMMTNList/iH7gSXEhx6UeJN2P3bg7nkdwcbr5/Pj4BHGGdYUOoIIll @@ -580,7 +863,38 @@ object AbstractChildObject: TestAbstract() CIt/B1CAm+arKS5jLf0shmnKig/I+JjxMetjDiWiKPuoYP4BTGMBi5RruBpL Gs4vELgJXekBAAA= """, - """ + """ + androidx/navigation/TestAbstractComp$Companion.class: + H4sIAAAAAAAA/5VSy27TQBQ9M07zMAHclkfCmzZILRJ1UrErQiqpkCLSIkGV + TRdo4gxlEnuMPBOry6z4EP6gKyQWKOqSj0LccQJs6ea+zj33+p7xz1/ffwB4 + jicMO0KPslSNzkItcnUqrEp1eCyN3R8am4nIdtPkc8sZoQmqgDEEY5GLMBb6 + NHw7HMvIVuAxlF8orexLBm9re1DHCso+SqgwlOwnZRja/cut2mPobPUnqY2V + Dsd5EiptZaZFHB7Ij2IaU7sm3jSyaXYosonM9rYHPrhbud6K/oEfkgKlWy83 + jWH1D+FQWjESVlCNJ7lH4jFnas6AgU2ofqZc1qZo1GFozWe+zxvc5wFF81n1 + 4ovXmM92eZu9qlT5xdcyD7jr3WVuQut/tKngLkPtr0D0fUciP6AmpQvCzsSS + 2t10JBmu95WWR9NkKLNjMYypstZPIxEPRKZcvizWe1rLrBsLYyS9kf8+nWaR + fK0c1nw31VYlcqCMouZ9rVNb7DHokMwldzt57p6aTnhIWejEIL/y9Buq5wX8 + iGy5KL7BY7L1RQNq8IGAUXRlSX5Gni/J9fNCWEe4tSguCEV0FdcI87BBmV+Q + 7uE+mtgsFj5Aq/i5SQPqDU7g9bDaw1oP67hBIW72aObtEzCDBpqEG/gGdwzK + vwGgwqXcGQMAAA== + """, + """ + androidx/navigation/TestAbstractComp.class: + H4sIAAAAAAAA/41RW28SQRT+ZpfrulioN7BeWotI+9CljYmJNCaVxoRIMdGG + xPA0wIgDy6zZGUgf+S3+g8aHJpoY4qM/ynh2i+2DL7ycb87tO9858/vP958A + nmOXoczVIAzk4MxTfCaH3MhAeadCm6OeNiHvm0Yw+ZIGY8iP+Ix7PldD711v + JPomDZshdSiVNK8Y7OpOx0USKQcJpBkS5rPUDJXWKgPqDJnDvr+k2lulpRwZ + riiVhsuwX22NA0MM3mg28aQyIlTc947FJz71qUFR57RvgvCEh2MR1i/F3nSQ + wxpD9oqMobaS4uvxdRcFrGdh4RbDdisIh95ImF7IpdIeVyowMYP22oFpT32f + di3803oiDB9wwylmTWY2fQqLTDYyYGBjip/JyKvRa7BP91zMXccqWo6VX8wd + K2NlKsXFfNM+sGrsJbNfJ399TVl5K6o+YBFHoc1nxyReqljG3tgwbLyfKiMn + oqlmUsueL46uZdLPNYKBYFhrSSXa00lPhKecahjWW0Gf+x0eyshfBt2mUiJs + +FxrQc3Oh2Aa9sUbGeVKyzmd/6YktuheiXjJUnQ+wm3yUoR3CC3CZOyVyfOi + UxAmdy+QOY/TT5fFwFtUyLqXBcjCIczgxlVzEfEx4f5A7iO7QP4bbp/HERvP + yDpUlyPGAgmpxtxPsEP4guJ3ifFeF3YTxSZKTdzHBj3xoImHeNQF03iMzS4S + Go7GlkZKo/AX8BZ2A10DAAA= + """, + """ androidx/navigation/TestClass.class: H4sIAAAAAAAA/31Ru04CQRQ9d4BFVlTAF/hs1cJFYqcxUYwJCWKihsZqYDc4 sMwmzEAs+Rb/wMrEwhBLP8p4d6W2OTmPO/femfn++fgEcIpdwq7U/ihS/oun @@ -592,7 +906,38 @@ object AbstractChildObject: TestAbstract() ybcT3MRO8kmERc7yT0g1sNTAcgMrKDBFsYESVp9ABmtY59zANdgwcH4BpKME iuEBAAA= """, - """ + """ + androidx/navigation/TestClassComp$Companion.class: + H4sIAAAAAAAA/5VSTW8TMRB99qb5WAJsWz4SvtsGqQW121TcCkiQCilSWiSo + cukBOYkpTna9aO1EPebED+Ef9ITEAUU98qMQYyfAEfUynnnz3oz3eX/++v4D + wDM8Zngq9CDP1OAs1mKiToVVmY6PpbGtRBjTytLPDReEJrwExhANxUTEidCn + 8dveUPZtCQFD8bnSyr5kCDa3ulUsoRiigBJDwX5ShmG7c4k9+wzNzc4os4nS + 8XCSxkpbmWuRxAfyoxgntpVpY/Nx32b5ochHMt/f6obgbt9qo/+v+SH1XYad + y01jWP4jOJRWDIQVhPF0EpBtzIWKC2BgI8LPlKt2KRs0GRqzaRjyGg95RNls + Wr74EtRm0z2+y16Xyvzia5FH3HH3mJuw9l9jSrjLUPnrDl3uSEwOiKG0Z++M + LPncygaS4XpHaXk0TnsyPxa9hJCVTtYXSVfkytULsNrWWuZ+g6TXCd9n47wv + 3yjXq78ba6tS2VVGEfmV1pn1ewya5HHBfTid3D0y3f8hVbFzgs6lJ99QPvft + RxSLHnyBNYrVOQEVhEDEKLuyEG/TyRfi6rl31QluzcG5wGdXcY16AdapCr3o + Hu6jjg2/8AEa/p8mD4gbnSBoY7mNlTZWcYNS3GzTzNsnYAY11KlvEBrcMSj+ + BuBNy2UQAwAA + """, + """ + androidx/navigation/TestClassComp.class: + H4sIAAAAAAAA/4VRXWsTQRQ9s5vPdWOT+pVYta2NmlZ0myIIpgqaIiykEbQE + JE+TZIyTbGZlZxL6mN/iPyg+FBQk+OiPEu9uY/vgQ1/umXvn3HPP3Pn95/tP + AM+ww7DJ1SAK5eDYU3wmh9zIUHlHQptmwLVuhpMvWTCG4ojPuBdwNfTe9Uai + b7KwGTL7UknzisGubXdcpJFxkEKWIWU+S82w1bpUvcGQ2+8HS53Hl/KrceCK + 6lm4DPVaaxwaavdGs4knlRGR4oF3ID7xaWCaodImmvZNGB3yaCyixpnNqw4K + WGHIn4sxPLnc68XshosSVvOwcC1+ZRgNvZEwvYhLpT2uVGiSdu21Q9OeBgG9 + svTP6KEwfMANp5o1mdn0ESwO+TiAgY2pfizjbJdOgzpDdTF3HatsOVZxMXes + nFVezDfsPWuXvWD2m/SvrxmraMXcPRYrlNp8dkC+pUpMPB0bhrX3U2XkRPhq + JrXsBeL1hUn6rmY4EAwrLalEezrpieiIE4dhtRX2edDhkYzzZdH1lRJRshVB + zc6HcBr1xVsZ31WWczr/TUGdtpVKnliJl0e4RVmG8AahRZhOsiplXrwIwvTO + KXInyfWDJRl4iYcU3TMC8nAIc7hy3lxGskq4P1D4yE5R/IbrJ0nFxiOKDvEK + pFgiI7VE+z62CZ9T/SYp3urC9lH2UfFxG2t0xB0fd3GvC6axjo0uUhqOxqZG + RqP0F+8+XexPAwAA + """, + """ androidx/navigation/TestClassWithArg.class: H4sIAAAAAAAA/41QTWsTURQ9781kkoyJmcSvNFWrtpQ2Cyct7pRijAgDsUIt cZHVSzKkr5m8gXkvocv8FtduBEVwIcGlP0q8b1JcuRBmzr3nvsO5H79+f/8B @@ -606,7 +951,40 @@ object AbstractChildObject: TestAbstract() b7xCezqKhfYXVD/906ayEVzbcDzJ8SF2Kb7Mhyzg1hBOhNsR7kTU9h6laEbY QmsIprGN+0MUNWoaDzT8HD2NQKP+B9uGEJmeAgAA """, - """ + """ + androidx/navigation/TestClassWithArgComp$Companion.class: + H4sIAAAAAAAA/5VSy24TMRQ99qR5DAHSlkfC+xGkFIlOE3VXBCqpkCKlRaJV + WHSBnMS0TmY8yHaiLrPiQ/iDrpBYoKhLPgpxPQmwpZvre8+5597x8fz89f0H + gG08Y2gJPTSpGp5FWkzViXAq1dGRtK4dC2s/KHe6a07aafK57oPQRBfAGCoj + MRVRLPRJ9K4/kgNXQMCQf6m0cq8YgsZGr4wV5EPkUGDIuVNlGba7l1+3w9Bs + dMepi5WORtMkUtpJo0Uc7clPYhK7dqqtM5OBS82+MGNpdjZ6Ibhfu14f/CM/ + JhnLsHm5aQyrfwT70omhcIIwnkwDMpH5UPIBDGxM+Jny1RZlwyZDfT4LQ17l + Ia9QNp8VL74E1fmsxbfYm0KRX3zN8wr3vS3mJzT+158C7jKU/ppE33ggpnvU + qHQm2hw7cr2dDiXD9a7S8mCS9KU5Ev2YkLVuOhBxTxjl6yVY7mgtTbZI0luF + h+nEDORb5bna+4l2KpE9ZRU172qdumyPRZOszvn708n9k9M1HlIVeUPoXHn+ + DcXzjH5EMZ+Br/GYYnnRgBJCoMIou7IUv6CTL8Xl88xcL7i1ABeCLLuKa8QF + eEJVmInu4T5qeJotfIB69qOTB9RbOUbQwWoHax2s4waluNmhmbePwSyqqBFv + EVrcscj/BkiAeOUlAwAA + """, + """ + androidx/navigation/TestClassWithArgComp.class: + H4sIAAAAAAAA/41SW08TQRT+ZnvZ7VpkWxELeEFBLVXZQngSgsEa4yalJkhq + DE/TdizTbmfN7rThkd/isy9EDYkmhvjojzKe3VZ40AeS3XPmnDnn+85lfv3+ + 9gPABtYYylx1wkB2jlzFR7LLtQyUuy8iXfN5FL2V+nAn7NaCwQcTjMHp8RF3 + fa667utWT7S1iRRDdksqqbcZ0mVvpcmQKq8088jAtJGGRTYPuwzMy8PGlRwM + 5ClUH8qIoVK/LP8m8XSF3omhiMBjsLba/oR4/bIoy7Hgiq5NXGNYK9f7gSYU + tzcauFJpESruuy/Eez70dS1QkQ6HbR2Euzzsi3Bz3Nd1GzOYZcidgzFsXLqR + ixI28yhhLh7IPMNSPQi7bk/oVsililyuVKATlMhtBLox9H0aQeFvvbtC8w7X + nHzGYJSidbJY5GIBGnaf/Ecytqp06tCmX50dF22jZNiGc3Zs02c4lm1Y6dLZ + 8aK5blTZU2Y+nypmHWPeqKZ+fswaTnqvcG5ZlDKftjJONsZbZzFLocFHL6hF + qZJCV/uaYWFvqLQcCE+NZCRbvti5aITWXgs6gmG6LpVoDActEe5zimEo1oM2 + 95s8lLE9ceY9pUSYDFBQsv0mGIZt8VLGd3MTnuY/LFijiaapcwNz8YCp0ApZ + WdI3SRfjV0g6RXYm8T4ia5uiDdJ25RS5ysJXTJ0kCI8nmcAzPCE5O47CVUzH + k6ZTjEajgEP/GMuNF0A6U/mCqU//hcmPAyYwFhVlTpJLSFaI/HfMvGOnuPEZ + CyeJJ4XVhJDR6zOSxtwEewVV0jXy3yLE2wdIebjjYdHDXdyjI5Y8LOP+AViE + B3h4ACvCdIRyBDuR2QhOhEKE0h8DM7acGQQAAA== + """, + """ androidx/navigation/TestGraph.class: H4sIAAAAAAAA/31SXWsTQRQ9M0k2m220af1oYq1Vmwf1wW2Lbxah1g8W1hVs CJQ+TbJDOslmVnYnSx/z5A/xHxQfCgoS9M0fJd5Zgz4IzsC995w5c5h7mR8/ @@ -620,7 +998,7 @@ object AbstractChildObject: TestAbstract() YuXP5Q1S27XyBfzkEs1PWL0oCY77ZdzCTvmZaDZksH6KSoBrAa4HuIGbVGIj QBudU7Act7BJ5zm8HLdzOL8ATyx+j4kCAAA= """, - """ + """ androidx/navigation/TestInterface.class: H4sIAAAAAAAA/4VOTUvDQBB9s9GmjV+JWqhH8W7a0psnQYRAVVDxktM22ZZt 0g10t6HH/i4P0rM/SpzEH+AMvHkz83gz3z+fXwAm6BOupcnXlc63sZG1Xkin @@ -630,7 +1008,7 @@ object AbstractChildObject: TestAbstract() Llo8xyXXETsfcnZSeAn8BN0EPQRMcZTgGCcpyOIUZymERWgR/QKEKxfgUgEA AA== """, - """ + """ androidx/navigation/TestNavHost.class: H4sIAAAAAAAA/4VRu04CQRQ9d3koKyrgA/BF7NTCBWKnMfERIwlqooaGamA3 OLLMJsxAKPkW/8DKxMIQSz/KeHcxxsLEYk7O487MnTsfn69vAA5QIpSEcvuB @@ -642,7 +1020,7 @@ object AbstractChildObject: TestAbstract() mVhYZ0xGZh4bjOlpAeaYhflmhEVsRf9MmOdsoYlYDYs1ZGrIIscUSzUsY6UJ 0lhFnnONtEZBY/YLEThWOyQCAAA= """, - """ + """ androidx/navigation/TestObject.class: H4sIAAAAAAAA/31S0WoTQRQ9M0k2m220aW1tYrVWW0R96LbFN4tQq8LCuoIN AenTJDvESTazsDtZ+pgnP8Q/KH0oKEjQNz9KvLNGfRCcgXvvOXPmMPcy3398 @@ -656,10 +1034,4 @@ object AbstractChildObject: TestAbstract() ILVdS5/B312heYnli5LguF/GO9gpvxPNhgxWz1AJcCPAWoB13KQSGwHa6JyB 5biFTTrP4eW4ncP5CW9bciiLAgAA """ - ) - - override fun getDetector(): Detector = WrongStartDestinationTypeDetector() - - override fun getIssues(): MutableList = - mutableListOf(WrongStartDestinationTypeDetector.WrongStartDestinationType) -} + ) diff --git a/navigation/navigation-runtime/api/2.8.0-beta06.txt b/navigation/navigation-runtime/api/2.8.0-beta06.txt new file mode 100644 index 0000000000000..b801964199d72 --- /dev/null +++ b/navigation/navigation-runtime/api/2.8.0-beta06.txt @@ -0,0 +1,246 @@ +// Signature format: 4.0 +package androidx.navigation { + + public final class ActivityKt { + method public static androidx.navigation.NavController findNavController(android.app.Activity, @IdRes int viewId); + } + + public final class ActivityNavArgsLazyKt { + method @MainThread public static inline androidx.navigation.NavArgsLazy navArgs(android.app.Activity); + } + + @androidx.navigation.Navigator.Name("activity") public class ActivityNavigator extends androidx.navigation.Navigator { + ctor public ActivityNavigator(android.content.Context context); + method public static final void applyPopAnimationsToPendingTransition(android.app.Activity activity); + method public androidx.navigation.ActivityNavigator.Destination createDestination(); + method public androidx.navigation.NavDestination? navigate(androidx.navigation.ActivityNavigator.Destination destination, android.os.Bundle? args, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras); + field public static final androidx.navigation.ActivityNavigator.Companion Companion; + } + + public static final class ActivityNavigator.Companion { + method public void applyPopAnimationsToPendingTransition(android.app.Activity activity); + } + + @androidx.navigation.NavDestination.ClassType(Activity::class) public static class ActivityNavigator.Destination extends androidx.navigation.NavDestination { + ctor public ActivityNavigator.Destination(androidx.navigation.Navigator activityNavigator); + ctor public ActivityNavigator.Destination(androidx.navigation.NavigatorProvider navigatorProvider); + method public final String? getAction(); + method public final android.content.ComponentName? getComponent(); + method public final android.net.Uri? getData(); + method public final String? getDataPattern(); + method public final android.content.Intent? getIntent(); + method public final String? getTargetPackage(); + method public final androidx.navigation.ActivityNavigator.Destination setAction(String? action); + method public final androidx.navigation.ActivityNavigator.Destination setComponentName(android.content.ComponentName? name); + method public final androidx.navigation.ActivityNavigator.Destination setData(android.net.Uri? data); + method public final androidx.navigation.ActivityNavigator.Destination setDataPattern(String? dataPattern); + method public final androidx.navigation.ActivityNavigator.Destination setIntent(android.content.Intent? intent); + method public final androidx.navigation.ActivityNavigator.Destination setTargetPackage(String? packageName); + property public final String? action; + property public final android.content.ComponentName? component; + property public final android.net.Uri? data; + property public final String? dataPattern; + property public final android.content.Intent? intent; + property public final String? targetPackage; + } + + public static final class ActivityNavigator.Extras implements androidx.navigation.Navigator.Extras { + method public androidx.core.app.ActivityOptionsCompat? getActivityOptions(); + method public int getFlags(); + property public final androidx.core.app.ActivityOptionsCompat? activityOptions; + property public final int flags; + } + + public static final class ActivityNavigator.Extras.Builder { + ctor public ActivityNavigator.Extras.Builder(); + method public androidx.navigation.ActivityNavigator.Extras.Builder addFlags(int flags); + method public androidx.navigation.ActivityNavigator.Extras build(); + method public androidx.navigation.ActivityNavigator.Extras.Builder setActivityOptions(androidx.core.app.ActivityOptionsCompat activityOptions); + } + + @androidx.navigation.NavDestinationDsl public final class ActivityNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder { + ctor @Deprecated public ActivityNavigatorDestinationBuilder(androidx.navigation.ActivityNavigator navigator, @IdRes int id); + ctor public ActivityNavigatorDestinationBuilder(androidx.navigation.ActivityNavigator navigator, String route); + ctor public ActivityNavigatorDestinationBuilder(androidx.navigation.ActivityNavigator navigator, kotlin.reflect.KClass route, java.util.Map> typeMap); + method public androidx.navigation.ActivityNavigator.Destination build(); + method public String? getAction(); + method public kotlin.reflect.KClass? getActivityClass(); + method public android.net.Uri? getData(); + method public String? getDataPattern(); + method public String? getTargetPackage(); + method public void setAction(String?); + method public void setActivityClass(kotlin.reflect.KClass?); + method public void setData(android.net.Uri?); + method public void setDataPattern(String?); + method public void setTargetPackage(String?); + property public final String? action; + property public final kotlin.reflect.KClass? activityClass; + property public final android.net.Uri? data; + property public final String? dataPattern; + property public final String? targetPackage; + } + + public final class ActivityNavigatorDestinationBuilderKt { + method @Deprecated public static inline void activity(androidx.navigation.NavGraphBuilder, @IdRes int id, kotlin.jvm.functions.Function1 builder); + method public static inline void activity(androidx.navigation.NavGraphBuilder, String route, kotlin.jvm.functions.Function1 builder); + method public static inline void activity(androidx.navigation.NavGraphBuilder, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public final class ActivityNavigatorExtrasKt { + method public static androidx.navigation.ActivityNavigator.Extras ActivityNavigatorExtras(optional androidx.core.app.ActivityOptionsCompat? activityOptions, optional int flags); + } + + public class NavController { + ctor public NavController(android.content.Context context); + method public void addOnDestinationChangedListener(androidx.navigation.NavController.OnDestinationChangedListener listener); + method @MainThread public inline boolean clearBackStack(); + method @MainThread public final boolean clearBackStack(@IdRes int destinationId); + method @MainThread public final boolean clearBackStack(String route); + method @MainThread public final boolean clearBackStack(T route); + method public androidx.navigation.NavDeepLinkBuilder createDeepLink(); + method @SuppressCompatibility @androidx.navigation.NavDeepLinkSaveStateControl public static final void enableDeepLinkSaveState(boolean saveState); + method public inline androidx.navigation.NavBackStackEntry getBackStackEntry(); + method public androidx.navigation.NavBackStackEntry getBackStackEntry(@IdRes int destinationId); + method public final androidx.navigation.NavBackStackEntry getBackStackEntry(String route); + method public final androidx.navigation.NavBackStackEntry getBackStackEntry(T route); + method public androidx.navigation.NavBackStackEntry? getCurrentBackStackEntry(); + method public final kotlinx.coroutines.flow.Flow getCurrentBackStackEntryFlow(); + method public androidx.navigation.NavDestination? getCurrentDestination(); + method @MainThread public androidx.navigation.NavGraph getGraph(); + method public androidx.navigation.NavInflater getNavInflater(); + method public androidx.navigation.NavigatorProvider getNavigatorProvider(); + method public androidx.navigation.NavBackStackEntry? getPreviousBackStackEntry(); + method public androidx.lifecycle.ViewModelStoreOwner getViewModelStoreOwner(@IdRes int navGraphId); + method public final kotlinx.coroutines.flow.StateFlow> getVisibleEntries(); + method @MainThread public boolean handleDeepLink(android.content.Intent? intent); + method @MainThread public void navigate(android.net.Uri deepLink); + method @MainThread public void navigate(android.net.Uri deepLink, androidx.navigation.NavOptions? navOptions); + method @MainThread public void navigate(android.net.Uri deepLink, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras); + method @MainThread public void navigate(androidx.navigation.NavDeepLinkRequest request); + method @MainThread public void navigate(androidx.navigation.NavDeepLinkRequest request, androidx.navigation.NavOptions? navOptions); + method @MainThread public void navigate(androidx.navigation.NavDeepLinkRequest request, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras); + method @MainThread public void navigate(androidx.navigation.NavDirections directions); + method @MainThread public void navigate(androidx.navigation.NavDirections directions, androidx.navigation.Navigator.Extras navigatorExtras); + method @MainThread public void navigate(androidx.navigation.NavDirections directions, androidx.navigation.NavOptions? navOptions); + method @MainThread public void navigate(@IdRes int resId); + method @MainThread public void navigate(@IdRes int resId, android.os.Bundle? args); + method @MainThread public void navigate(@IdRes int resId, android.os.Bundle? args, androidx.navigation.NavOptions? navOptions); + method @MainThread public void navigate(@IdRes int resId, android.os.Bundle? args, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras); + method @MainThread public final void navigate(String route); + method @MainThread public final void navigate(String route, optional androidx.navigation.NavOptions? navOptions); + method @MainThread public final void navigate(String route, optional androidx.navigation.NavOptions? navOptions, optional androidx.navigation.Navigator.Extras? navigatorExtras); + method @MainThread public final void navigate(String route, kotlin.jvm.functions.Function1 builder); + method @MainThread public final void navigate(T route); + method @MainThread public final void navigate(T route, optional androidx.navigation.NavOptions? navOptions); + method @MainThread public final void navigate(T route, optional androidx.navigation.NavOptions? navOptions, optional androidx.navigation.Navigator.Extras? navigatorExtras); + method @MainThread public final void navigate(T route, kotlin.jvm.functions.Function1 builder); + method @MainThread public boolean navigateUp(); + method @MainThread public boolean popBackStack(); + method @MainThread public inline boolean popBackStack(boolean inclusive, optional boolean saveState); + method @MainThread public boolean popBackStack(@IdRes int destinationId, boolean inclusive); + method @MainThread public boolean popBackStack(@IdRes int destinationId, boolean inclusive, boolean saveState); + method @MainThread public final boolean popBackStack(String route, boolean inclusive); + method @MainThread public final boolean popBackStack(String route, boolean inclusive, optional boolean saveState); + method @MainThread public final boolean popBackStack(T route, boolean inclusive); + method @MainThread public final boolean popBackStack(T route, boolean inclusive, optional boolean saveState); + method public void removeOnDestinationChangedListener(androidx.navigation.NavController.OnDestinationChangedListener listener); + method @CallSuper public void restoreState(android.os.Bundle? navState); + method @CallSuper public android.os.Bundle? saveState(); + method @CallSuper @MainThread public void setGraph(androidx.navigation.NavGraph); + method @CallSuper @MainThread public void setGraph(androidx.navigation.NavGraph graph, android.os.Bundle? startDestinationArgs); + method @CallSuper @MainThread public void setGraph(@NavigationRes int graphResId); + method @CallSuper @MainThread public void setGraph(@NavigationRes int graphResId, android.os.Bundle? startDestinationArgs); + property public androidx.navigation.NavBackStackEntry? currentBackStackEntry; + property public final kotlinx.coroutines.flow.Flow currentBackStackEntryFlow; + property public androidx.navigation.NavDestination? currentDestination; + property @MainThread public androidx.navigation.NavGraph graph; + property public androidx.navigation.NavInflater navInflater; + property public androidx.navigation.NavigatorProvider navigatorProvider; + property public androidx.navigation.NavBackStackEntry? previousBackStackEntry; + property public final kotlinx.coroutines.flow.StateFlow> visibleEntries; + field public static final androidx.navigation.NavController.Companion Companion; + field public static final String KEY_DEEP_LINK_INTENT = "android-support-nav:controller:deepLinkIntent"; + } + + public static final class NavController.Companion { + method @SuppressCompatibility @androidx.navigation.NavDeepLinkSaveStateControl public void enableDeepLinkSaveState(boolean saveState); + } + + public static fun interface NavController.OnDestinationChangedListener { + method public void onDestinationChanged(androidx.navigation.NavController controller, androidx.navigation.NavDestination destination, android.os.Bundle? arguments); + } + + public final class NavControllerKt { + method @Deprecated public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, Object startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, String startDestination, optional String? route, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, kotlin.reflect.KClass startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public final class NavDeepLinkBuilder { + ctor public NavDeepLinkBuilder(android.content.Context context); + method public androidx.navigation.NavDeepLinkBuilder addDestination(@IdRes int destId); + method public androidx.navigation.NavDeepLinkBuilder addDestination(@IdRes int destId, optional android.os.Bundle? args); + method public androidx.navigation.NavDeepLinkBuilder addDestination(String route); + method public androidx.navigation.NavDeepLinkBuilder addDestination(String route, optional android.os.Bundle? args); + method public android.app.PendingIntent createPendingIntent(); + method public androidx.core.app.TaskStackBuilder createTaskStackBuilder(); + method public androidx.navigation.NavDeepLinkBuilder setArguments(android.os.Bundle? args); + method public androidx.navigation.NavDeepLinkBuilder setComponentName(android.content.ComponentName componentName); + method public androidx.navigation.NavDeepLinkBuilder setComponentName(Class activityClass); + method public androidx.navigation.NavDeepLinkBuilder setDestination(@IdRes int destId); + method public androidx.navigation.NavDeepLinkBuilder setDestination(@IdRes int destId, optional android.os.Bundle? args); + method public androidx.navigation.NavDeepLinkBuilder setDestination(String destRoute); + method public androidx.navigation.NavDeepLinkBuilder setDestination(String destRoute, optional android.os.Bundle? args); + method public androidx.navigation.NavDeepLinkBuilder setGraph(androidx.navigation.NavGraph navGraph); + method public androidx.navigation.NavDeepLinkBuilder setGraph(@NavigationRes int navGraphId); + } + + @SuppressCompatibility @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.WARNING) @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.FUNCTION) public @interface NavDeepLinkSaveStateControl { + } + + public interface NavHost { + method public androidx.navigation.NavController getNavController(); + property public abstract androidx.navigation.NavController navController; + } + + public class NavHostController extends androidx.navigation.NavController { + ctor public NavHostController(android.content.Context context); + method public final void enableOnBackPressed(boolean enabled); + method public final void setLifecycleOwner(androidx.lifecycle.LifecycleOwner owner); + method public final void setOnBackPressedDispatcher(androidx.activity.OnBackPressedDispatcher dispatcher); + method public final void setViewModelStore(androidx.lifecycle.ViewModelStore viewModelStore); + } + + public final class NavHostKt { + method @Deprecated public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, Object startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, String startDestination, optional String? route, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, kotlin.reflect.KClass startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public final class NavInflater { + ctor public NavInflater(android.content.Context context, androidx.navigation.NavigatorProvider navigatorProvider); + method public androidx.navigation.NavGraph inflate(@NavigationRes int graphResId); + field public static final androidx.navigation.NavInflater.Companion Companion; + } + + public static final class NavInflater.Companion { + } + + public final class Navigation { + method public static android.view.View.OnClickListener createNavigateOnClickListener(androidx.navigation.NavDirections directions); + method public static android.view.View.OnClickListener createNavigateOnClickListener(@IdRes int resId); + method public static android.view.View.OnClickListener createNavigateOnClickListener(@IdRes int resId, optional android.os.Bundle? args); + method public static androidx.navigation.NavController findNavController(android.app.Activity activity, @IdRes int viewId); + method public static androidx.navigation.NavController findNavController(android.view.View view); + method public static void setViewNavController(android.view.View view, androidx.navigation.NavController? controller); + field public static final androidx.navigation.Navigation INSTANCE; + } + + public final class ViewKt { + method public static androidx.navigation.NavController findNavController(android.view.View); + } + +} + diff --git a/navigation/navigation-runtime/api/2.8.0-beta07.txt b/navigation/navigation-runtime/api/2.8.0-beta07.txt new file mode 100644 index 0000000000000..b801964199d72 --- /dev/null +++ b/navigation/navigation-runtime/api/2.8.0-beta07.txt @@ -0,0 +1,246 @@ +// Signature format: 4.0 +package androidx.navigation { + + public final class ActivityKt { + method public static androidx.navigation.NavController findNavController(android.app.Activity, @IdRes int viewId); + } + + public final class ActivityNavArgsLazyKt { + method @MainThread public static inline androidx.navigation.NavArgsLazy navArgs(android.app.Activity); + } + + @androidx.navigation.Navigator.Name("activity") public class ActivityNavigator extends androidx.navigation.Navigator { + ctor public ActivityNavigator(android.content.Context context); + method public static final void applyPopAnimationsToPendingTransition(android.app.Activity activity); + method public androidx.navigation.ActivityNavigator.Destination createDestination(); + method public androidx.navigation.NavDestination? navigate(androidx.navigation.ActivityNavigator.Destination destination, android.os.Bundle? args, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras); + field public static final androidx.navigation.ActivityNavigator.Companion Companion; + } + + public static final class ActivityNavigator.Companion { + method public void applyPopAnimationsToPendingTransition(android.app.Activity activity); + } + + @androidx.navigation.NavDestination.ClassType(Activity::class) public static class ActivityNavigator.Destination extends androidx.navigation.NavDestination { + ctor public ActivityNavigator.Destination(androidx.navigation.Navigator activityNavigator); + ctor public ActivityNavigator.Destination(androidx.navigation.NavigatorProvider navigatorProvider); + method public final String? getAction(); + method public final android.content.ComponentName? getComponent(); + method public final android.net.Uri? getData(); + method public final String? getDataPattern(); + method public final android.content.Intent? getIntent(); + method public final String? getTargetPackage(); + method public final androidx.navigation.ActivityNavigator.Destination setAction(String? action); + method public final androidx.navigation.ActivityNavigator.Destination setComponentName(android.content.ComponentName? name); + method public final androidx.navigation.ActivityNavigator.Destination setData(android.net.Uri? data); + method public final androidx.navigation.ActivityNavigator.Destination setDataPattern(String? dataPattern); + method public final androidx.navigation.ActivityNavigator.Destination setIntent(android.content.Intent? intent); + method public final androidx.navigation.ActivityNavigator.Destination setTargetPackage(String? packageName); + property public final String? action; + property public final android.content.ComponentName? component; + property public final android.net.Uri? data; + property public final String? dataPattern; + property public final android.content.Intent? intent; + property public final String? targetPackage; + } + + public static final class ActivityNavigator.Extras implements androidx.navigation.Navigator.Extras { + method public androidx.core.app.ActivityOptionsCompat? getActivityOptions(); + method public int getFlags(); + property public final androidx.core.app.ActivityOptionsCompat? activityOptions; + property public final int flags; + } + + public static final class ActivityNavigator.Extras.Builder { + ctor public ActivityNavigator.Extras.Builder(); + method public androidx.navigation.ActivityNavigator.Extras.Builder addFlags(int flags); + method public androidx.navigation.ActivityNavigator.Extras build(); + method public androidx.navigation.ActivityNavigator.Extras.Builder setActivityOptions(androidx.core.app.ActivityOptionsCompat activityOptions); + } + + @androidx.navigation.NavDestinationDsl public final class ActivityNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder { + ctor @Deprecated public ActivityNavigatorDestinationBuilder(androidx.navigation.ActivityNavigator navigator, @IdRes int id); + ctor public ActivityNavigatorDestinationBuilder(androidx.navigation.ActivityNavigator navigator, String route); + ctor public ActivityNavigatorDestinationBuilder(androidx.navigation.ActivityNavigator navigator, kotlin.reflect.KClass route, java.util.Map> typeMap); + method public androidx.navigation.ActivityNavigator.Destination build(); + method public String? getAction(); + method public kotlin.reflect.KClass? getActivityClass(); + method public android.net.Uri? getData(); + method public String? getDataPattern(); + method public String? getTargetPackage(); + method public void setAction(String?); + method public void setActivityClass(kotlin.reflect.KClass?); + method public void setData(android.net.Uri?); + method public void setDataPattern(String?); + method public void setTargetPackage(String?); + property public final String? action; + property public final kotlin.reflect.KClass? activityClass; + property public final android.net.Uri? data; + property public final String? dataPattern; + property public final String? targetPackage; + } + + public final class ActivityNavigatorDestinationBuilderKt { + method @Deprecated public static inline void activity(androidx.navigation.NavGraphBuilder, @IdRes int id, kotlin.jvm.functions.Function1 builder); + method public static inline void activity(androidx.navigation.NavGraphBuilder, String route, kotlin.jvm.functions.Function1 builder); + method public static inline void activity(androidx.navigation.NavGraphBuilder, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public final class ActivityNavigatorExtrasKt { + method public static androidx.navigation.ActivityNavigator.Extras ActivityNavigatorExtras(optional androidx.core.app.ActivityOptionsCompat? activityOptions, optional int flags); + } + + public class NavController { + ctor public NavController(android.content.Context context); + method public void addOnDestinationChangedListener(androidx.navigation.NavController.OnDestinationChangedListener listener); + method @MainThread public inline boolean clearBackStack(); + method @MainThread public final boolean clearBackStack(@IdRes int destinationId); + method @MainThread public final boolean clearBackStack(String route); + method @MainThread public final boolean clearBackStack(T route); + method public androidx.navigation.NavDeepLinkBuilder createDeepLink(); + method @SuppressCompatibility @androidx.navigation.NavDeepLinkSaveStateControl public static final void enableDeepLinkSaveState(boolean saveState); + method public inline androidx.navigation.NavBackStackEntry getBackStackEntry(); + method public androidx.navigation.NavBackStackEntry getBackStackEntry(@IdRes int destinationId); + method public final androidx.navigation.NavBackStackEntry getBackStackEntry(String route); + method public final androidx.navigation.NavBackStackEntry getBackStackEntry(T route); + method public androidx.navigation.NavBackStackEntry? getCurrentBackStackEntry(); + method public final kotlinx.coroutines.flow.Flow getCurrentBackStackEntryFlow(); + method public androidx.navigation.NavDestination? getCurrentDestination(); + method @MainThread public androidx.navigation.NavGraph getGraph(); + method public androidx.navigation.NavInflater getNavInflater(); + method public androidx.navigation.NavigatorProvider getNavigatorProvider(); + method public androidx.navigation.NavBackStackEntry? getPreviousBackStackEntry(); + method public androidx.lifecycle.ViewModelStoreOwner getViewModelStoreOwner(@IdRes int navGraphId); + method public final kotlinx.coroutines.flow.StateFlow> getVisibleEntries(); + method @MainThread public boolean handleDeepLink(android.content.Intent? intent); + method @MainThread public void navigate(android.net.Uri deepLink); + method @MainThread public void navigate(android.net.Uri deepLink, androidx.navigation.NavOptions? navOptions); + method @MainThread public void navigate(android.net.Uri deepLink, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras); + method @MainThread public void navigate(androidx.navigation.NavDeepLinkRequest request); + method @MainThread public void navigate(androidx.navigation.NavDeepLinkRequest request, androidx.navigation.NavOptions? navOptions); + method @MainThread public void navigate(androidx.navigation.NavDeepLinkRequest request, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras); + method @MainThread public void navigate(androidx.navigation.NavDirections directions); + method @MainThread public void navigate(androidx.navigation.NavDirections directions, androidx.navigation.Navigator.Extras navigatorExtras); + method @MainThread public void navigate(androidx.navigation.NavDirections directions, androidx.navigation.NavOptions? navOptions); + method @MainThread public void navigate(@IdRes int resId); + method @MainThread public void navigate(@IdRes int resId, android.os.Bundle? args); + method @MainThread public void navigate(@IdRes int resId, android.os.Bundle? args, androidx.navigation.NavOptions? navOptions); + method @MainThread public void navigate(@IdRes int resId, android.os.Bundle? args, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras); + method @MainThread public final void navigate(String route); + method @MainThread public final void navigate(String route, optional androidx.navigation.NavOptions? navOptions); + method @MainThread public final void navigate(String route, optional androidx.navigation.NavOptions? navOptions, optional androidx.navigation.Navigator.Extras? navigatorExtras); + method @MainThread public final void navigate(String route, kotlin.jvm.functions.Function1 builder); + method @MainThread public final void navigate(T route); + method @MainThread public final void navigate(T route, optional androidx.navigation.NavOptions? navOptions); + method @MainThread public final void navigate(T route, optional androidx.navigation.NavOptions? navOptions, optional androidx.navigation.Navigator.Extras? navigatorExtras); + method @MainThread public final void navigate(T route, kotlin.jvm.functions.Function1 builder); + method @MainThread public boolean navigateUp(); + method @MainThread public boolean popBackStack(); + method @MainThread public inline boolean popBackStack(boolean inclusive, optional boolean saveState); + method @MainThread public boolean popBackStack(@IdRes int destinationId, boolean inclusive); + method @MainThread public boolean popBackStack(@IdRes int destinationId, boolean inclusive, boolean saveState); + method @MainThread public final boolean popBackStack(String route, boolean inclusive); + method @MainThread public final boolean popBackStack(String route, boolean inclusive, optional boolean saveState); + method @MainThread public final boolean popBackStack(T route, boolean inclusive); + method @MainThread public final boolean popBackStack(T route, boolean inclusive, optional boolean saveState); + method public void removeOnDestinationChangedListener(androidx.navigation.NavController.OnDestinationChangedListener listener); + method @CallSuper public void restoreState(android.os.Bundle? navState); + method @CallSuper public android.os.Bundle? saveState(); + method @CallSuper @MainThread public void setGraph(androidx.navigation.NavGraph); + method @CallSuper @MainThread public void setGraph(androidx.navigation.NavGraph graph, android.os.Bundle? startDestinationArgs); + method @CallSuper @MainThread public void setGraph(@NavigationRes int graphResId); + method @CallSuper @MainThread public void setGraph(@NavigationRes int graphResId, android.os.Bundle? startDestinationArgs); + property public androidx.navigation.NavBackStackEntry? currentBackStackEntry; + property public final kotlinx.coroutines.flow.Flow currentBackStackEntryFlow; + property public androidx.navigation.NavDestination? currentDestination; + property @MainThread public androidx.navigation.NavGraph graph; + property public androidx.navigation.NavInflater navInflater; + property public androidx.navigation.NavigatorProvider navigatorProvider; + property public androidx.navigation.NavBackStackEntry? previousBackStackEntry; + property public final kotlinx.coroutines.flow.StateFlow> visibleEntries; + field public static final androidx.navigation.NavController.Companion Companion; + field public static final String KEY_DEEP_LINK_INTENT = "android-support-nav:controller:deepLinkIntent"; + } + + public static final class NavController.Companion { + method @SuppressCompatibility @androidx.navigation.NavDeepLinkSaveStateControl public void enableDeepLinkSaveState(boolean saveState); + } + + public static fun interface NavController.OnDestinationChangedListener { + method public void onDestinationChanged(androidx.navigation.NavController controller, androidx.navigation.NavDestination destination, android.os.Bundle? arguments); + } + + public final class NavControllerKt { + method @Deprecated public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, Object startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, String startDestination, optional String? route, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, kotlin.reflect.KClass startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public final class NavDeepLinkBuilder { + ctor public NavDeepLinkBuilder(android.content.Context context); + method public androidx.navigation.NavDeepLinkBuilder addDestination(@IdRes int destId); + method public androidx.navigation.NavDeepLinkBuilder addDestination(@IdRes int destId, optional android.os.Bundle? args); + method public androidx.navigation.NavDeepLinkBuilder addDestination(String route); + method public androidx.navigation.NavDeepLinkBuilder addDestination(String route, optional android.os.Bundle? args); + method public android.app.PendingIntent createPendingIntent(); + method public androidx.core.app.TaskStackBuilder createTaskStackBuilder(); + method public androidx.navigation.NavDeepLinkBuilder setArguments(android.os.Bundle? args); + method public androidx.navigation.NavDeepLinkBuilder setComponentName(android.content.ComponentName componentName); + method public androidx.navigation.NavDeepLinkBuilder setComponentName(Class activityClass); + method public androidx.navigation.NavDeepLinkBuilder setDestination(@IdRes int destId); + method public androidx.navigation.NavDeepLinkBuilder setDestination(@IdRes int destId, optional android.os.Bundle? args); + method public androidx.navigation.NavDeepLinkBuilder setDestination(String destRoute); + method public androidx.navigation.NavDeepLinkBuilder setDestination(String destRoute, optional android.os.Bundle? args); + method public androidx.navigation.NavDeepLinkBuilder setGraph(androidx.navigation.NavGraph navGraph); + method public androidx.navigation.NavDeepLinkBuilder setGraph(@NavigationRes int navGraphId); + } + + @SuppressCompatibility @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.WARNING) @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.FUNCTION) public @interface NavDeepLinkSaveStateControl { + } + + public interface NavHost { + method public androidx.navigation.NavController getNavController(); + property public abstract androidx.navigation.NavController navController; + } + + public class NavHostController extends androidx.navigation.NavController { + ctor public NavHostController(android.content.Context context); + method public final void enableOnBackPressed(boolean enabled); + method public final void setLifecycleOwner(androidx.lifecycle.LifecycleOwner owner); + method public final void setOnBackPressedDispatcher(androidx.activity.OnBackPressedDispatcher dispatcher); + method public final void setViewModelStore(androidx.lifecycle.ViewModelStore viewModelStore); + } + + public final class NavHostKt { + method @Deprecated public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, Object startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, String startDestination, optional String? route, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, kotlin.reflect.KClass startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public final class NavInflater { + ctor public NavInflater(android.content.Context context, androidx.navigation.NavigatorProvider navigatorProvider); + method public androidx.navigation.NavGraph inflate(@NavigationRes int graphResId); + field public static final androidx.navigation.NavInflater.Companion Companion; + } + + public static final class NavInflater.Companion { + } + + public final class Navigation { + method public static android.view.View.OnClickListener createNavigateOnClickListener(androidx.navigation.NavDirections directions); + method public static android.view.View.OnClickListener createNavigateOnClickListener(@IdRes int resId); + method public static android.view.View.OnClickListener createNavigateOnClickListener(@IdRes int resId, optional android.os.Bundle? args); + method public static androidx.navigation.NavController findNavController(android.app.Activity activity, @IdRes int viewId); + method public static androidx.navigation.NavController findNavController(android.view.View view); + method public static void setViewNavController(android.view.View view, androidx.navigation.NavController? controller); + field public static final androidx.navigation.Navigation INSTANCE; + } + + public final class ViewKt { + method public static androidx.navigation.NavController findNavController(android.view.View); + } + +} + diff --git a/navigation/navigation-runtime/api/res-2.8.0-beta06.txt b/navigation/navigation-runtime/api/res-2.8.0-beta06.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/navigation/navigation-runtime/api/res-2.8.0-beta07.txt b/navigation/navigation-runtime/api/res-2.8.0-beta07.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/navigation/navigation-runtime/api/restricted_2.8.0-beta06.txt b/navigation/navigation-runtime/api/restricted_2.8.0-beta06.txt new file mode 100644 index 0000000000000..b801964199d72 --- /dev/null +++ b/navigation/navigation-runtime/api/restricted_2.8.0-beta06.txt @@ -0,0 +1,246 @@ +// Signature format: 4.0 +package androidx.navigation { + + public final class ActivityKt { + method public static androidx.navigation.NavController findNavController(android.app.Activity, @IdRes int viewId); + } + + public final class ActivityNavArgsLazyKt { + method @MainThread public static inline androidx.navigation.NavArgsLazy navArgs(android.app.Activity); + } + + @androidx.navigation.Navigator.Name("activity") public class ActivityNavigator extends androidx.navigation.Navigator { + ctor public ActivityNavigator(android.content.Context context); + method public static final void applyPopAnimationsToPendingTransition(android.app.Activity activity); + method public androidx.navigation.ActivityNavigator.Destination createDestination(); + method public androidx.navigation.NavDestination? navigate(androidx.navigation.ActivityNavigator.Destination destination, android.os.Bundle? args, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras); + field public static final androidx.navigation.ActivityNavigator.Companion Companion; + } + + public static final class ActivityNavigator.Companion { + method public void applyPopAnimationsToPendingTransition(android.app.Activity activity); + } + + @androidx.navigation.NavDestination.ClassType(Activity::class) public static class ActivityNavigator.Destination extends androidx.navigation.NavDestination { + ctor public ActivityNavigator.Destination(androidx.navigation.Navigator activityNavigator); + ctor public ActivityNavigator.Destination(androidx.navigation.NavigatorProvider navigatorProvider); + method public final String? getAction(); + method public final android.content.ComponentName? getComponent(); + method public final android.net.Uri? getData(); + method public final String? getDataPattern(); + method public final android.content.Intent? getIntent(); + method public final String? getTargetPackage(); + method public final androidx.navigation.ActivityNavigator.Destination setAction(String? action); + method public final androidx.navigation.ActivityNavigator.Destination setComponentName(android.content.ComponentName? name); + method public final androidx.navigation.ActivityNavigator.Destination setData(android.net.Uri? data); + method public final androidx.navigation.ActivityNavigator.Destination setDataPattern(String? dataPattern); + method public final androidx.navigation.ActivityNavigator.Destination setIntent(android.content.Intent? intent); + method public final androidx.navigation.ActivityNavigator.Destination setTargetPackage(String? packageName); + property public final String? action; + property public final android.content.ComponentName? component; + property public final android.net.Uri? data; + property public final String? dataPattern; + property public final android.content.Intent? intent; + property public final String? targetPackage; + } + + public static final class ActivityNavigator.Extras implements androidx.navigation.Navigator.Extras { + method public androidx.core.app.ActivityOptionsCompat? getActivityOptions(); + method public int getFlags(); + property public final androidx.core.app.ActivityOptionsCompat? activityOptions; + property public final int flags; + } + + public static final class ActivityNavigator.Extras.Builder { + ctor public ActivityNavigator.Extras.Builder(); + method public androidx.navigation.ActivityNavigator.Extras.Builder addFlags(int flags); + method public androidx.navigation.ActivityNavigator.Extras build(); + method public androidx.navigation.ActivityNavigator.Extras.Builder setActivityOptions(androidx.core.app.ActivityOptionsCompat activityOptions); + } + + @androidx.navigation.NavDestinationDsl public final class ActivityNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder { + ctor @Deprecated public ActivityNavigatorDestinationBuilder(androidx.navigation.ActivityNavigator navigator, @IdRes int id); + ctor public ActivityNavigatorDestinationBuilder(androidx.navigation.ActivityNavigator navigator, String route); + ctor public ActivityNavigatorDestinationBuilder(androidx.navigation.ActivityNavigator navigator, kotlin.reflect.KClass route, java.util.Map> typeMap); + method public androidx.navigation.ActivityNavigator.Destination build(); + method public String? getAction(); + method public kotlin.reflect.KClass? getActivityClass(); + method public android.net.Uri? getData(); + method public String? getDataPattern(); + method public String? getTargetPackage(); + method public void setAction(String?); + method public void setActivityClass(kotlin.reflect.KClass?); + method public void setData(android.net.Uri?); + method public void setDataPattern(String?); + method public void setTargetPackage(String?); + property public final String? action; + property public final kotlin.reflect.KClass? activityClass; + property public final android.net.Uri? data; + property public final String? dataPattern; + property public final String? targetPackage; + } + + public final class ActivityNavigatorDestinationBuilderKt { + method @Deprecated public static inline void activity(androidx.navigation.NavGraphBuilder, @IdRes int id, kotlin.jvm.functions.Function1 builder); + method public static inline void activity(androidx.navigation.NavGraphBuilder, String route, kotlin.jvm.functions.Function1 builder); + method public static inline void activity(androidx.navigation.NavGraphBuilder, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public final class ActivityNavigatorExtrasKt { + method public static androidx.navigation.ActivityNavigator.Extras ActivityNavigatorExtras(optional androidx.core.app.ActivityOptionsCompat? activityOptions, optional int flags); + } + + public class NavController { + ctor public NavController(android.content.Context context); + method public void addOnDestinationChangedListener(androidx.navigation.NavController.OnDestinationChangedListener listener); + method @MainThread public inline boolean clearBackStack(); + method @MainThread public final boolean clearBackStack(@IdRes int destinationId); + method @MainThread public final boolean clearBackStack(String route); + method @MainThread public final boolean clearBackStack(T route); + method public androidx.navigation.NavDeepLinkBuilder createDeepLink(); + method @SuppressCompatibility @androidx.navigation.NavDeepLinkSaveStateControl public static final void enableDeepLinkSaveState(boolean saveState); + method public inline androidx.navigation.NavBackStackEntry getBackStackEntry(); + method public androidx.navigation.NavBackStackEntry getBackStackEntry(@IdRes int destinationId); + method public final androidx.navigation.NavBackStackEntry getBackStackEntry(String route); + method public final androidx.navigation.NavBackStackEntry getBackStackEntry(T route); + method public androidx.navigation.NavBackStackEntry? getCurrentBackStackEntry(); + method public final kotlinx.coroutines.flow.Flow getCurrentBackStackEntryFlow(); + method public androidx.navigation.NavDestination? getCurrentDestination(); + method @MainThread public androidx.navigation.NavGraph getGraph(); + method public androidx.navigation.NavInflater getNavInflater(); + method public androidx.navigation.NavigatorProvider getNavigatorProvider(); + method public androidx.navigation.NavBackStackEntry? getPreviousBackStackEntry(); + method public androidx.lifecycle.ViewModelStoreOwner getViewModelStoreOwner(@IdRes int navGraphId); + method public final kotlinx.coroutines.flow.StateFlow> getVisibleEntries(); + method @MainThread public boolean handleDeepLink(android.content.Intent? intent); + method @MainThread public void navigate(android.net.Uri deepLink); + method @MainThread public void navigate(android.net.Uri deepLink, androidx.navigation.NavOptions? navOptions); + method @MainThread public void navigate(android.net.Uri deepLink, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras); + method @MainThread public void navigate(androidx.navigation.NavDeepLinkRequest request); + method @MainThread public void navigate(androidx.navigation.NavDeepLinkRequest request, androidx.navigation.NavOptions? navOptions); + method @MainThread public void navigate(androidx.navigation.NavDeepLinkRequest request, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras); + method @MainThread public void navigate(androidx.navigation.NavDirections directions); + method @MainThread public void navigate(androidx.navigation.NavDirections directions, androidx.navigation.Navigator.Extras navigatorExtras); + method @MainThread public void navigate(androidx.navigation.NavDirections directions, androidx.navigation.NavOptions? navOptions); + method @MainThread public void navigate(@IdRes int resId); + method @MainThread public void navigate(@IdRes int resId, android.os.Bundle? args); + method @MainThread public void navigate(@IdRes int resId, android.os.Bundle? args, androidx.navigation.NavOptions? navOptions); + method @MainThread public void navigate(@IdRes int resId, android.os.Bundle? args, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras); + method @MainThread public final void navigate(String route); + method @MainThread public final void navigate(String route, optional androidx.navigation.NavOptions? navOptions); + method @MainThread public final void navigate(String route, optional androidx.navigation.NavOptions? navOptions, optional androidx.navigation.Navigator.Extras? navigatorExtras); + method @MainThread public final void navigate(String route, kotlin.jvm.functions.Function1 builder); + method @MainThread public final void navigate(T route); + method @MainThread public final void navigate(T route, optional androidx.navigation.NavOptions? navOptions); + method @MainThread public final void navigate(T route, optional androidx.navigation.NavOptions? navOptions, optional androidx.navigation.Navigator.Extras? navigatorExtras); + method @MainThread public final void navigate(T route, kotlin.jvm.functions.Function1 builder); + method @MainThread public boolean navigateUp(); + method @MainThread public boolean popBackStack(); + method @MainThread public inline boolean popBackStack(boolean inclusive, optional boolean saveState); + method @MainThread public boolean popBackStack(@IdRes int destinationId, boolean inclusive); + method @MainThread public boolean popBackStack(@IdRes int destinationId, boolean inclusive, boolean saveState); + method @MainThread public final boolean popBackStack(String route, boolean inclusive); + method @MainThread public final boolean popBackStack(String route, boolean inclusive, optional boolean saveState); + method @MainThread public final boolean popBackStack(T route, boolean inclusive); + method @MainThread public final boolean popBackStack(T route, boolean inclusive, optional boolean saveState); + method public void removeOnDestinationChangedListener(androidx.navigation.NavController.OnDestinationChangedListener listener); + method @CallSuper public void restoreState(android.os.Bundle? navState); + method @CallSuper public android.os.Bundle? saveState(); + method @CallSuper @MainThread public void setGraph(androidx.navigation.NavGraph); + method @CallSuper @MainThread public void setGraph(androidx.navigation.NavGraph graph, android.os.Bundle? startDestinationArgs); + method @CallSuper @MainThread public void setGraph(@NavigationRes int graphResId); + method @CallSuper @MainThread public void setGraph(@NavigationRes int graphResId, android.os.Bundle? startDestinationArgs); + property public androidx.navigation.NavBackStackEntry? currentBackStackEntry; + property public final kotlinx.coroutines.flow.Flow currentBackStackEntryFlow; + property public androidx.navigation.NavDestination? currentDestination; + property @MainThread public androidx.navigation.NavGraph graph; + property public androidx.navigation.NavInflater navInflater; + property public androidx.navigation.NavigatorProvider navigatorProvider; + property public androidx.navigation.NavBackStackEntry? previousBackStackEntry; + property public final kotlinx.coroutines.flow.StateFlow> visibleEntries; + field public static final androidx.navigation.NavController.Companion Companion; + field public static final String KEY_DEEP_LINK_INTENT = "android-support-nav:controller:deepLinkIntent"; + } + + public static final class NavController.Companion { + method @SuppressCompatibility @androidx.navigation.NavDeepLinkSaveStateControl public void enableDeepLinkSaveState(boolean saveState); + } + + public static fun interface NavController.OnDestinationChangedListener { + method public void onDestinationChanged(androidx.navigation.NavController controller, androidx.navigation.NavDestination destination, android.os.Bundle? arguments); + } + + public final class NavControllerKt { + method @Deprecated public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, Object startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, String startDestination, optional String? route, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, kotlin.reflect.KClass startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public final class NavDeepLinkBuilder { + ctor public NavDeepLinkBuilder(android.content.Context context); + method public androidx.navigation.NavDeepLinkBuilder addDestination(@IdRes int destId); + method public androidx.navigation.NavDeepLinkBuilder addDestination(@IdRes int destId, optional android.os.Bundle? args); + method public androidx.navigation.NavDeepLinkBuilder addDestination(String route); + method public androidx.navigation.NavDeepLinkBuilder addDestination(String route, optional android.os.Bundle? args); + method public android.app.PendingIntent createPendingIntent(); + method public androidx.core.app.TaskStackBuilder createTaskStackBuilder(); + method public androidx.navigation.NavDeepLinkBuilder setArguments(android.os.Bundle? args); + method public androidx.navigation.NavDeepLinkBuilder setComponentName(android.content.ComponentName componentName); + method public androidx.navigation.NavDeepLinkBuilder setComponentName(Class activityClass); + method public androidx.navigation.NavDeepLinkBuilder setDestination(@IdRes int destId); + method public androidx.navigation.NavDeepLinkBuilder setDestination(@IdRes int destId, optional android.os.Bundle? args); + method public androidx.navigation.NavDeepLinkBuilder setDestination(String destRoute); + method public androidx.navigation.NavDeepLinkBuilder setDestination(String destRoute, optional android.os.Bundle? args); + method public androidx.navigation.NavDeepLinkBuilder setGraph(androidx.navigation.NavGraph navGraph); + method public androidx.navigation.NavDeepLinkBuilder setGraph(@NavigationRes int navGraphId); + } + + @SuppressCompatibility @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.WARNING) @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.FUNCTION) public @interface NavDeepLinkSaveStateControl { + } + + public interface NavHost { + method public androidx.navigation.NavController getNavController(); + property public abstract androidx.navigation.NavController navController; + } + + public class NavHostController extends androidx.navigation.NavController { + ctor public NavHostController(android.content.Context context); + method public final void enableOnBackPressed(boolean enabled); + method public final void setLifecycleOwner(androidx.lifecycle.LifecycleOwner owner); + method public final void setOnBackPressedDispatcher(androidx.activity.OnBackPressedDispatcher dispatcher); + method public final void setViewModelStore(androidx.lifecycle.ViewModelStore viewModelStore); + } + + public final class NavHostKt { + method @Deprecated public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, Object startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, String startDestination, optional String? route, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, kotlin.reflect.KClass startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public final class NavInflater { + ctor public NavInflater(android.content.Context context, androidx.navigation.NavigatorProvider navigatorProvider); + method public androidx.navigation.NavGraph inflate(@NavigationRes int graphResId); + field public static final androidx.navigation.NavInflater.Companion Companion; + } + + public static final class NavInflater.Companion { + } + + public final class Navigation { + method public static android.view.View.OnClickListener createNavigateOnClickListener(androidx.navigation.NavDirections directions); + method public static android.view.View.OnClickListener createNavigateOnClickListener(@IdRes int resId); + method public static android.view.View.OnClickListener createNavigateOnClickListener(@IdRes int resId, optional android.os.Bundle? args); + method public static androidx.navigation.NavController findNavController(android.app.Activity activity, @IdRes int viewId); + method public static androidx.navigation.NavController findNavController(android.view.View view); + method public static void setViewNavController(android.view.View view, androidx.navigation.NavController? controller); + field public static final androidx.navigation.Navigation INSTANCE; + } + + public final class ViewKt { + method public static androidx.navigation.NavController findNavController(android.view.View); + } + +} + diff --git a/navigation/navigation-runtime/api/restricted_2.8.0-beta07.txt b/navigation/navigation-runtime/api/restricted_2.8.0-beta07.txt new file mode 100644 index 0000000000000..b801964199d72 --- /dev/null +++ b/navigation/navigation-runtime/api/restricted_2.8.0-beta07.txt @@ -0,0 +1,246 @@ +// Signature format: 4.0 +package androidx.navigation { + + public final class ActivityKt { + method public static androidx.navigation.NavController findNavController(android.app.Activity, @IdRes int viewId); + } + + public final class ActivityNavArgsLazyKt { + method @MainThread public static inline androidx.navigation.NavArgsLazy navArgs(android.app.Activity); + } + + @androidx.navigation.Navigator.Name("activity") public class ActivityNavigator extends androidx.navigation.Navigator { + ctor public ActivityNavigator(android.content.Context context); + method public static final void applyPopAnimationsToPendingTransition(android.app.Activity activity); + method public androidx.navigation.ActivityNavigator.Destination createDestination(); + method public androidx.navigation.NavDestination? navigate(androidx.navigation.ActivityNavigator.Destination destination, android.os.Bundle? args, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras); + field public static final androidx.navigation.ActivityNavigator.Companion Companion; + } + + public static final class ActivityNavigator.Companion { + method public void applyPopAnimationsToPendingTransition(android.app.Activity activity); + } + + @androidx.navigation.NavDestination.ClassType(Activity::class) public static class ActivityNavigator.Destination extends androidx.navigation.NavDestination { + ctor public ActivityNavigator.Destination(androidx.navigation.Navigator activityNavigator); + ctor public ActivityNavigator.Destination(androidx.navigation.NavigatorProvider navigatorProvider); + method public final String? getAction(); + method public final android.content.ComponentName? getComponent(); + method public final android.net.Uri? getData(); + method public final String? getDataPattern(); + method public final android.content.Intent? getIntent(); + method public final String? getTargetPackage(); + method public final androidx.navigation.ActivityNavigator.Destination setAction(String? action); + method public final androidx.navigation.ActivityNavigator.Destination setComponentName(android.content.ComponentName? name); + method public final androidx.navigation.ActivityNavigator.Destination setData(android.net.Uri? data); + method public final androidx.navigation.ActivityNavigator.Destination setDataPattern(String? dataPattern); + method public final androidx.navigation.ActivityNavigator.Destination setIntent(android.content.Intent? intent); + method public final androidx.navigation.ActivityNavigator.Destination setTargetPackage(String? packageName); + property public final String? action; + property public final android.content.ComponentName? component; + property public final android.net.Uri? data; + property public final String? dataPattern; + property public final android.content.Intent? intent; + property public final String? targetPackage; + } + + public static final class ActivityNavigator.Extras implements androidx.navigation.Navigator.Extras { + method public androidx.core.app.ActivityOptionsCompat? getActivityOptions(); + method public int getFlags(); + property public final androidx.core.app.ActivityOptionsCompat? activityOptions; + property public final int flags; + } + + public static final class ActivityNavigator.Extras.Builder { + ctor public ActivityNavigator.Extras.Builder(); + method public androidx.navigation.ActivityNavigator.Extras.Builder addFlags(int flags); + method public androidx.navigation.ActivityNavigator.Extras build(); + method public androidx.navigation.ActivityNavigator.Extras.Builder setActivityOptions(androidx.core.app.ActivityOptionsCompat activityOptions); + } + + @androidx.navigation.NavDestinationDsl public final class ActivityNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder { + ctor @Deprecated public ActivityNavigatorDestinationBuilder(androidx.navigation.ActivityNavigator navigator, @IdRes int id); + ctor public ActivityNavigatorDestinationBuilder(androidx.navigation.ActivityNavigator navigator, String route); + ctor public ActivityNavigatorDestinationBuilder(androidx.navigation.ActivityNavigator navigator, kotlin.reflect.KClass route, java.util.Map> typeMap); + method public androidx.navigation.ActivityNavigator.Destination build(); + method public String? getAction(); + method public kotlin.reflect.KClass? getActivityClass(); + method public android.net.Uri? getData(); + method public String? getDataPattern(); + method public String? getTargetPackage(); + method public void setAction(String?); + method public void setActivityClass(kotlin.reflect.KClass?); + method public void setData(android.net.Uri?); + method public void setDataPattern(String?); + method public void setTargetPackage(String?); + property public final String? action; + property public final kotlin.reflect.KClass? activityClass; + property public final android.net.Uri? data; + property public final String? dataPattern; + property public final String? targetPackage; + } + + public final class ActivityNavigatorDestinationBuilderKt { + method @Deprecated public static inline void activity(androidx.navigation.NavGraphBuilder, @IdRes int id, kotlin.jvm.functions.Function1 builder); + method public static inline void activity(androidx.navigation.NavGraphBuilder, String route, kotlin.jvm.functions.Function1 builder); + method public static inline void activity(androidx.navigation.NavGraphBuilder, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public final class ActivityNavigatorExtrasKt { + method public static androidx.navigation.ActivityNavigator.Extras ActivityNavigatorExtras(optional androidx.core.app.ActivityOptionsCompat? activityOptions, optional int flags); + } + + public class NavController { + ctor public NavController(android.content.Context context); + method public void addOnDestinationChangedListener(androidx.navigation.NavController.OnDestinationChangedListener listener); + method @MainThread public inline boolean clearBackStack(); + method @MainThread public final boolean clearBackStack(@IdRes int destinationId); + method @MainThread public final boolean clearBackStack(String route); + method @MainThread public final boolean clearBackStack(T route); + method public androidx.navigation.NavDeepLinkBuilder createDeepLink(); + method @SuppressCompatibility @androidx.navigation.NavDeepLinkSaveStateControl public static final void enableDeepLinkSaveState(boolean saveState); + method public inline androidx.navigation.NavBackStackEntry getBackStackEntry(); + method public androidx.navigation.NavBackStackEntry getBackStackEntry(@IdRes int destinationId); + method public final androidx.navigation.NavBackStackEntry getBackStackEntry(String route); + method public final androidx.navigation.NavBackStackEntry getBackStackEntry(T route); + method public androidx.navigation.NavBackStackEntry? getCurrentBackStackEntry(); + method public final kotlinx.coroutines.flow.Flow getCurrentBackStackEntryFlow(); + method public androidx.navigation.NavDestination? getCurrentDestination(); + method @MainThread public androidx.navigation.NavGraph getGraph(); + method public androidx.navigation.NavInflater getNavInflater(); + method public androidx.navigation.NavigatorProvider getNavigatorProvider(); + method public androidx.navigation.NavBackStackEntry? getPreviousBackStackEntry(); + method public androidx.lifecycle.ViewModelStoreOwner getViewModelStoreOwner(@IdRes int navGraphId); + method public final kotlinx.coroutines.flow.StateFlow> getVisibleEntries(); + method @MainThread public boolean handleDeepLink(android.content.Intent? intent); + method @MainThread public void navigate(android.net.Uri deepLink); + method @MainThread public void navigate(android.net.Uri deepLink, androidx.navigation.NavOptions? navOptions); + method @MainThread public void navigate(android.net.Uri deepLink, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras); + method @MainThread public void navigate(androidx.navigation.NavDeepLinkRequest request); + method @MainThread public void navigate(androidx.navigation.NavDeepLinkRequest request, androidx.navigation.NavOptions? navOptions); + method @MainThread public void navigate(androidx.navigation.NavDeepLinkRequest request, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras); + method @MainThread public void navigate(androidx.navigation.NavDirections directions); + method @MainThread public void navigate(androidx.navigation.NavDirections directions, androidx.navigation.Navigator.Extras navigatorExtras); + method @MainThread public void navigate(androidx.navigation.NavDirections directions, androidx.navigation.NavOptions? navOptions); + method @MainThread public void navigate(@IdRes int resId); + method @MainThread public void navigate(@IdRes int resId, android.os.Bundle? args); + method @MainThread public void navigate(@IdRes int resId, android.os.Bundle? args, androidx.navigation.NavOptions? navOptions); + method @MainThread public void navigate(@IdRes int resId, android.os.Bundle? args, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras); + method @MainThread public final void navigate(String route); + method @MainThread public final void navigate(String route, optional androidx.navigation.NavOptions? navOptions); + method @MainThread public final void navigate(String route, optional androidx.navigation.NavOptions? navOptions, optional androidx.navigation.Navigator.Extras? navigatorExtras); + method @MainThread public final void navigate(String route, kotlin.jvm.functions.Function1 builder); + method @MainThread public final void navigate(T route); + method @MainThread public final void navigate(T route, optional androidx.navigation.NavOptions? navOptions); + method @MainThread public final void navigate(T route, optional androidx.navigation.NavOptions? navOptions, optional androidx.navigation.Navigator.Extras? navigatorExtras); + method @MainThread public final void navigate(T route, kotlin.jvm.functions.Function1 builder); + method @MainThread public boolean navigateUp(); + method @MainThread public boolean popBackStack(); + method @MainThread public inline boolean popBackStack(boolean inclusive, optional boolean saveState); + method @MainThread public boolean popBackStack(@IdRes int destinationId, boolean inclusive); + method @MainThread public boolean popBackStack(@IdRes int destinationId, boolean inclusive, boolean saveState); + method @MainThread public final boolean popBackStack(String route, boolean inclusive); + method @MainThread public final boolean popBackStack(String route, boolean inclusive, optional boolean saveState); + method @MainThread public final boolean popBackStack(T route, boolean inclusive); + method @MainThread public final boolean popBackStack(T route, boolean inclusive, optional boolean saveState); + method public void removeOnDestinationChangedListener(androidx.navigation.NavController.OnDestinationChangedListener listener); + method @CallSuper public void restoreState(android.os.Bundle? navState); + method @CallSuper public android.os.Bundle? saveState(); + method @CallSuper @MainThread public void setGraph(androidx.navigation.NavGraph); + method @CallSuper @MainThread public void setGraph(androidx.navigation.NavGraph graph, android.os.Bundle? startDestinationArgs); + method @CallSuper @MainThread public void setGraph(@NavigationRes int graphResId); + method @CallSuper @MainThread public void setGraph(@NavigationRes int graphResId, android.os.Bundle? startDestinationArgs); + property public androidx.navigation.NavBackStackEntry? currentBackStackEntry; + property public final kotlinx.coroutines.flow.Flow currentBackStackEntryFlow; + property public androidx.navigation.NavDestination? currentDestination; + property @MainThread public androidx.navigation.NavGraph graph; + property public androidx.navigation.NavInflater navInflater; + property public androidx.navigation.NavigatorProvider navigatorProvider; + property public androidx.navigation.NavBackStackEntry? previousBackStackEntry; + property public final kotlinx.coroutines.flow.StateFlow> visibleEntries; + field public static final androidx.navigation.NavController.Companion Companion; + field public static final String KEY_DEEP_LINK_INTENT = "android-support-nav:controller:deepLinkIntent"; + } + + public static final class NavController.Companion { + method @SuppressCompatibility @androidx.navigation.NavDeepLinkSaveStateControl public void enableDeepLinkSaveState(boolean saveState); + } + + public static fun interface NavController.OnDestinationChangedListener { + method public void onDestinationChanged(androidx.navigation.NavController controller, androidx.navigation.NavDestination destination, android.os.Bundle? arguments); + } + + public final class NavControllerKt { + method @Deprecated public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, Object startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, String startDestination, optional String? route, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, kotlin.reflect.KClass startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public final class NavDeepLinkBuilder { + ctor public NavDeepLinkBuilder(android.content.Context context); + method public androidx.navigation.NavDeepLinkBuilder addDestination(@IdRes int destId); + method public androidx.navigation.NavDeepLinkBuilder addDestination(@IdRes int destId, optional android.os.Bundle? args); + method public androidx.navigation.NavDeepLinkBuilder addDestination(String route); + method public androidx.navigation.NavDeepLinkBuilder addDestination(String route, optional android.os.Bundle? args); + method public android.app.PendingIntent createPendingIntent(); + method public androidx.core.app.TaskStackBuilder createTaskStackBuilder(); + method public androidx.navigation.NavDeepLinkBuilder setArguments(android.os.Bundle? args); + method public androidx.navigation.NavDeepLinkBuilder setComponentName(android.content.ComponentName componentName); + method public androidx.navigation.NavDeepLinkBuilder setComponentName(Class activityClass); + method public androidx.navigation.NavDeepLinkBuilder setDestination(@IdRes int destId); + method public androidx.navigation.NavDeepLinkBuilder setDestination(@IdRes int destId, optional android.os.Bundle? args); + method public androidx.navigation.NavDeepLinkBuilder setDestination(String destRoute); + method public androidx.navigation.NavDeepLinkBuilder setDestination(String destRoute, optional android.os.Bundle? args); + method public androidx.navigation.NavDeepLinkBuilder setGraph(androidx.navigation.NavGraph navGraph); + method public androidx.navigation.NavDeepLinkBuilder setGraph(@NavigationRes int navGraphId); + } + + @SuppressCompatibility @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.WARNING) @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.FUNCTION) public @interface NavDeepLinkSaveStateControl { + } + + public interface NavHost { + method public androidx.navigation.NavController getNavController(); + property public abstract androidx.navigation.NavController navController; + } + + public class NavHostController extends androidx.navigation.NavController { + ctor public NavHostController(android.content.Context context); + method public final void enableOnBackPressed(boolean enabled); + method public final void setLifecycleOwner(androidx.lifecycle.LifecycleOwner owner); + method public final void setOnBackPressedDispatcher(androidx.activity.OnBackPressedDispatcher dispatcher); + method public final void setViewModelStore(androidx.lifecycle.ViewModelStore viewModelStore); + } + + public final class NavHostKt { + method @Deprecated public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, Object startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, String startDestination, optional String? route, kotlin.jvm.functions.Function1 builder); + method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, kotlin.reflect.KClass startDestination, optional kotlin.reflect.KClass? route, optional java.util.Map> typeMap, kotlin.jvm.functions.Function1 builder); + } + + public final class NavInflater { + ctor public NavInflater(android.content.Context context, androidx.navigation.NavigatorProvider navigatorProvider); + method public androidx.navigation.NavGraph inflate(@NavigationRes int graphResId); + field public static final androidx.navigation.NavInflater.Companion Companion; + } + + public static final class NavInflater.Companion { + } + + public final class Navigation { + method public static android.view.View.OnClickListener createNavigateOnClickListener(androidx.navigation.NavDirections directions); + method public static android.view.View.OnClickListener createNavigateOnClickListener(@IdRes int resId); + method public static android.view.View.OnClickListener createNavigateOnClickListener(@IdRes int resId, optional android.os.Bundle? args); + method public static androidx.navigation.NavController findNavController(android.app.Activity activity, @IdRes int viewId); + method public static androidx.navigation.NavController findNavController(android.view.View view); + method public static void setViewNavController(android.view.View view, androidx.navigation.NavController? controller); + field public static final androidx.navigation.Navigation INSTANCE; + } + + public final class ViewKt { + method public static androidx.navigation.NavController findNavController(android.view.View); + } + +} + diff --git a/navigation/navigation-runtime/lint-baseline.xml b/navigation/navigation-runtime/lint-baseline.xml new file mode 100644 index 0000000000000..e8b9764d1d523 --- /dev/null +++ b/navigation/navigation-runtime/lint-baseline.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/navigation/navigation-runtime/src/androidInstrumentedTest/kotlin/androidx/navigation/NavControllerRouteTest.kt b/navigation/navigation-runtime/src/androidInstrumentedTest/kotlin/androidx/navigation/NavControllerRouteTest.kt index a40880940351b..986c95e119325 100644 --- a/navigation/navigation-runtime/src/androidInstrumentedTest/kotlin/androidx/navigation/NavControllerRouteTest.kt +++ b/navigation/navigation-runtime/src/androidInstrumentedTest/kotlin/androidx/navigation/NavControllerRouteTest.kt @@ -30,6 +30,7 @@ import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.ViewModelStore import androidx.lifecycle.testing.TestLifecycleOwner import androidx.navigation.NavDestination.Companion.createRoute +import androidx.navigation.NavDestination.Companion.hasRoute import androidx.navigation.serialization.generateHashCode import androidx.navigation.test.R import androidx.test.annotation.UiThreadTest @@ -209,6 +210,24 @@ class NavControllerRouteTest { @Serializable class TestGraph + private enum class TestEnum { + ONE, + TWO + } + + private enum class TestEnumWithArg(val number: Int) { + ONE(1), + TWO(2) + } + + @Serializable + private class EnumWrapper { + enum class NestedEnum(val number: Int) { + ONE(1), + TWO(2) + } + } + companion object { private const val UNKNOWN_DESTINATION_ID = -1 private const val TEST_ARG = "test" @@ -550,6 +569,149 @@ class NavControllerRouteTest { assertThat(foundArgs?.getString(TEST_ARG)).isEqualTo(TEST_ARG_VALUE) } + @UiThreadTest + @Test + fun testStartDestinationUseDefaultPathArg() { + val navController = createNavController() + val graph = + navController.createGraph(route = "graph", startDestination = "start/{arg}") { + test("start/{arg}") { + argument("arg") { + type = NavType.StringType + nullable = false + defaultValue = "defaultArg" + } + } + } + navController.setGraph(graph, null) + assertThat(navController.currentDestination?.route).isEqualTo("start/{arg}") + val entry = navController.currentBackStackEntry!! + val actual = entry.arguments!!.getString("arg") + val expected = "defaultArg" + assertThat(actual).isEqualTo(expected) + } + + @UiThreadTest + @Test + fun testStartDestinationUseDefaultQueryArg() { + val navController = createNavController() + val graph = + navController.createGraph(route = "graph", startDestination = "start?arg={arg}") { + test("start?arg={arg}") { + argument("arg") { + type = NavType.StringType + nullable = false + defaultValue = "defaultArg" + } + } + } + navController.setGraph(graph, null) + assertThat(navController.currentDestination?.route).isEqualTo("start?arg={arg}") + val entry = navController.currentBackStackEntry!! + val actual = entry.arguments!!.getString("arg") + val expected = "defaultArg" + assertThat(actual).isEqualTo(expected) + } + + @UiThreadTest + @Test + fun testStartDestinationUseMultipleDefaultArgs() { + val navController = createNavController() + val graph = + navController.createGraph( + route = "graph", + startDestination = "start/{arg}?arg2={arg2}" + ) { + test("start/{arg}?arg2={arg2}") { + argument("arg") { + type = NavType.StringType + nullable = false + defaultValue = "defaultArg" + } + argument("arg2") { + type = NavType.StringType + nullable = false + defaultValue = "defaultArg2" + } + } + } + navController.setGraph(graph, null) + assertThat(navController.currentDestination?.route).isEqualTo("start/{arg}?arg2={arg2}") + val entry = navController.currentBackStackEntry!! + val actual = entry.arguments!!.getString("arg") + val expected = "defaultArg" + assertThat(actual).isEqualTo(expected) + val actual2 = entry.arguments!!.getString("arg2") + val expected2 = "defaultArg2" + assertThat(actual2).isEqualTo(expected2) + } + + @UiThreadTest + @Test + fun testStartDestinationQueryPlaceholderArg() { + val navController = createNavController() + val graph = + navController.createGraph( + route = "graph", + startDestination = "start/myArg?arg2={arg2}" + ) { + test("start/{arg}?arg2={arg2}") { + argument("arg") { + type = NavType.StringType + nullable = false + defaultValue = "defaultArg" + } + argument("arg2") { + type = NavType.StringType + nullable = false + defaultValue = "defaultArg2" + } + } + } + navController.setGraph(graph, null) + assertThat(navController.currentDestination?.route).isEqualTo("start/{arg}?arg2={arg2}") + val entry = navController.currentBackStackEntry!! + val actual = entry.arguments!!.getString("arg") + val expected = "myArg" + assertThat(actual).isEqualTo(expected) + val actual2 = entry.arguments!!.getString("arg2") + val expected2 = "{arg2}" + assertThat(actual2).isEqualTo(expected2) + } + + @UiThreadTest + @Test + fun testStartDestinationPathPlaceholderArg() { + val navController = createNavController() + val graph = + navController.createGraph( + route = "graph", + startDestination = "start/{arg}?arg2=myArg2" + ) { + test("start/{arg}?arg2={arg2}") { + argument("arg") { + type = NavType.StringType + nullable = false + defaultValue = "defaultArg" + } + argument("arg2") { + type = NavType.StringType + nullable = false + defaultValue = "defaultArg2" + } + } + } + navController.setGraph(graph, null) + assertThat(navController.currentDestination?.route).isEqualTo("start/{arg}?arg2={arg2}") + val entry = navController.currentBackStackEntry!! + val actual = entry.arguments!!.getString("arg") + val expected = "{arg}" + assertThat(actual).isEqualTo(expected) + val actual2 = entry.arguments!!.getString("arg2") + val expected2 = "myArg2" + assertThat(actual2).isEqualTo(expected2) + } + @UiThreadTest @Test fun testNestedStartDestination() { @@ -623,6 +785,98 @@ class NavControllerRouteTest { assertThat(navigator.backStack.size).isEqualTo(2) } + @UiThreadTest + @Test + fun testNavigateSharedDestination() { + val navController = createNavController() + navController.graph = + navController.createGraph(route = "root", startDestination = "home_nav") { + navigation(route = "home_nav", startDestination = "home") { + test("home") + test("shared") + } + navigation(route = "list_nav", startDestination = "list") { + test("list") + test("shared") + } + } + + assertThat(navController.currentDestination?.route).isEqualTo("home") + + navController.navigate("shared") + val currentDest = navController.currentDestination!! + assertThat(currentDest.route).isEqualTo("shared") + assertThat(currentDest.parent!!.route).isEqualTo("home_nav") + assertThat(navController.currentBackStack.value.map { it.destination.route }) + .containsExactly("root", "home_nav", "home", "shared") + .inOrder() + } + + @UiThreadTest + @Test + fun testNavigateNestedSharedDestination() { + val navController = createNavController() + navController.graph = + navController.createGraph(route = "root", startDestination = "home_nav") { + navigation(route = "home_nav", startDestination = "home") { + test("home") + navigation(route = "home_nested_nav", startDestination = "home_nested") { + test("home_nested") + test("shared") + } + } + navigation(route = "list_nav", startDestination = "list") { + test("list") + test("shared") + } + } + + assertThat(navController.currentDestination?.route).isEqualTo("home") + + navController.navigate("shared") + val currentDest = navController.currentDestination!! + assertThat(currentDest.route).isEqualTo("shared") + assertThat(currentDest.parent!!.route).isEqualTo("home_nested_nav") + assertThat(navController.currentBackStack.value.map { it.destination.route }) + .containsExactly("root", "home_nav", "home", "home_nested_nav", "shared") + .inOrder() + } + + @UiThreadTest + @Test + fun testNavigateParentSharedDestination() { + val navController = createNavController() + navController.graph = + navController.createGraph(route = "root", startDestination = "home_nav") { + navigation(route = "home_nav", startDestination = "home") { + test("home") + test("shared") + navigation(route = "home_nested_nav", startDestination = "home_nested") { + test("home_nested") + } + } + navigation(route = "list_nav", startDestination = "list") { + test("list") + test("shared") + } + } + + assertThat(navController.currentDestination?.route).isEqualTo("home") + + // first navigate into nested graph + navController.navigate("home_nested") + assertThat(navController.currentDestination!!.route).isEqualTo("home_nested") + + // then navigate to the shared destination that is sibling of parent + navController.navigate("shared") + val currentDest = navController.currentDestination!! + assertThat(currentDest.route).isEqualTo("shared") + assertThat(currentDest.parent!!.route).isEqualTo("home_nav") + assertThat(navController.currentBackStack.value.map { it.destination.route }) + .containsExactly("root", "home_nav", "home", "home_nested_nav", "home_nested", "shared") + .inOrder() + } + @UiThreadTest @Test fun testNavigateSingleTopSharedStartDestination() { @@ -1008,6 +1262,397 @@ class NavControllerRouteTest { assertThat(navController.currentBackStackEntry?.arguments?.getInt("arg")).isEqualTo(0) } + @UiThreadTest + @Test + fun testNavigateWithObjectNullableInt() { + @Serializable class TestClass(val arg: Int? = 10) + val navController = createNavController() + navController.graph = + navController.createGraph(startDestination = "start") { + test("start") + test() + } + assertThat(navController.currentDestination?.route).isEqualTo("start") + + // passed in arg + navController.navigate(TestClass(15)) + assertThat(navController.currentDestination?.hasRoute(TestClass::class)).isTrue() + assertThat(navController.currentBackStackEntry?.toRoute()?.arg).isEqualTo(15) + assertThat(navController.currentBackStack.value.size).isEqualTo(3) + + // passed in null + navController.navigate(TestClass(null)) + assertThat(navController.currentDestination?.hasRoute(TestClass::class)).isTrue() + assertThat(navController.currentBackStackEntry?.toRoute()?.arg).isNull() + assertThat(navController.currentBackStack.value.size).isEqualTo(4) + + // use default + navController.navigate(TestClass()) + assertThat(navController.currentDestination?.hasRoute(TestClass::class)).isTrue() + assertThat(navController.currentBackStackEntry?.toRoute()?.arg).isEqualTo(10) + assertThat(navController.currentBackStack.value.size).isEqualTo(5) + } + + @UiThreadTest + @Test + fun testNavigateWithObjectNullableIntNoDefault() { + @Serializable class TestClass(val arg: Int?) + val navController = createNavController() + navController.graph = + navController.createGraph(startDestination = "start") { + test("start") + test() + } + assertThat(navController.currentDestination?.route).isEqualTo("start") + + // passed in arg + navController.navigate(TestClass(15)) + assertThat(navController.currentDestination?.hasRoute(TestClass::class)).isTrue() + assertThat(navController.currentBackStackEntry?.toRoute()?.arg).isEqualTo(15) + assertThat(navController.currentBackStack.value.size).isEqualTo(3) + + // passed in null + navController.navigate(TestClass(null)) + assertThat(navController.currentDestination?.hasRoute(TestClass::class)).isTrue() + assertThat(navController.currentBackStackEntry?.toRoute()?.arg).isNull() + assertThat(navController.currentBackStack.value.size).isEqualTo(4) + } + + @UiThreadTest + @Test + fun testNavigateWithObjectNullableBoolean() { + @Serializable class TestClass(val arg: Boolean? = false) + val navController = createNavController() + navController.graph = + navController.createGraph(startDestination = "start") { + test("start") + test() + } + assertThat(navController.currentDestination?.route).isEqualTo("start") + + // passed in arg + navController.navigate(TestClass(true)) + assertThat(navController.currentDestination?.hasRoute(TestClass::class)).isTrue() + assertThat(navController.currentBackStackEntry?.toRoute()?.arg).isTrue() + assertThat(navController.currentBackStack.value.size).isEqualTo(3) + + // passed in null + navController.navigate(TestClass(null)) + assertThat(navController.currentDestination?.hasRoute(TestClass::class)).isTrue() + assertThat(navController.currentBackStackEntry?.toRoute()?.arg).isNull() + assertThat(navController.currentBackStack.value.size).isEqualTo(4) + + // use default + navController.navigate(TestClass()) + assertThat(navController.currentDestination?.hasRoute(TestClass::class)).isTrue() + assertThat(navController.currentBackStackEntry?.toRoute()?.arg).isFalse() + assertThat(navController.currentBackStack.value.size).isEqualTo(5) + } + + @UiThreadTest + @Test + fun testNavigateWithObjectNullableBooleanNoDefault() { + @Serializable class TestClass(val arg: Boolean?) + val navController = createNavController() + navController.graph = + navController.createGraph(startDestination = "start") { + test("start") + test() + } + assertThat(navController.currentDestination?.route).isEqualTo("start") + + // passed in arg + navController.navigate(TestClass(true)) + assertThat(navController.currentDestination?.hasRoute(TestClass::class)).isTrue() + assertThat(navController.currentBackStackEntry?.toRoute()?.arg).isTrue() + assertThat(navController.currentBackStack.value.size).isEqualTo(3) + + // passed in null + navController.navigate(TestClass(null)) + assertThat(navController.currentDestination?.hasRoute(TestClass::class)).isTrue() + assertThat(navController.currentBackStackEntry?.toRoute()?.arg).isNull() + assertThat(navController.currentBackStack.value.size).isEqualTo(4) + } + + @UiThreadTest + @Test + fun testNavigateWithObjectNullableFloat() { + @Serializable class TestClass(val arg: Float? = 1.0F) + val navController = createNavController() + navController.graph = + navController.createGraph(startDestination = "start") { + test("start") + test() + } + assertThat(navController.currentDestination?.route).isEqualTo("start") + + // passed in arg + navController.navigate(TestClass(2.0F)) + assertThat(navController.currentDestination?.hasRoute(TestClass::class)).isTrue() + assertThat(navController.currentBackStackEntry?.toRoute()?.arg).isEqualTo(2.0F) + assertThat(navController.currentBackStack.value.size).isEqualTo(3) + + // passed in null + navController.navigate(TestClass(null)) + assertThat(navController.currentDestination?.hasRoute(TestClass::class)).isTrue() + assertThat(navController.currentBackStackEntry?.toRoute()?.arg).isNull() + assertThat(navController.currentBackStack.value.size).isEqualTo(4) + + // use default + navController.navigate(TestClass()) + assertThat(navController.currentDestination?.hasRoute(TestClass::class)).isTrue() + assertThat(navController.currentBackStackEntry?.toRoute()?.arg).isEqualTo(1.0F) + assertThat(navController.currentBackStack.value.size).isEqualTo(5) + } + + @UiThreadTest + @Test + fun testNavigateWithObjectNullableFloatNoDefault() { + @Serializable class TestClass(val arg: Float?) + val navController = createNavController() + navController.graph = + navController.createGraph(startDestination = "start") { + test("start") + test() + } + assertThat(navController.currentDestination?.route).isEqualTo("start") + + // passed in arg + navController.navigate(TestClass(2.0F)) + assertThat(navController.currentDestination?.hasRoute(TestClass::class)).isTrue() + assertThat(navController.currentBackStackEntry?.toRoute()?.arg).isEqualTo(2.0F) + assertThat(navController.currentBackStack.value.size).isEqualTo(3) + + // passed in null + navController.navigate(TestClass(null)) + assertThat(navController.currentDestination?.hasRoute(TestClass::class)).isTrue() + assertThat(navController.currentBackStackEntry?.toRoute()?.arg).isNull() + assertThat(navController.currentBackStack.value.size).isEqualTo(4) + } + + @UiThreadTest + @Test + fun testNavigateWithObjectNullableLong() { + @Serializable class TestClass(val arg: Long? = 1L) + val navController = createNavController() + navController.graph = + navController.createGraph(startDestination = "start") { + test("start") + test() + } + assertThat(navController.currentDestination?.route).isEqualTo("start") + + // passed in arg + navController.navigate(TestClass(2L)) + assertThat(navController.currentDestination?.hasRoute(TestClass::class)).isTrue() + assertThat(navController.currentBackStackEntry?.toRoute()?.arg).isEqualTo(2L) + assertThat(navController.currentBackStack.value.size).isEqualTo(3) + + // passed in null + navController.navigate(TestClass(null)) + assertThat(navController.currentDestination?.hasRoute(TestClass::class)).isTrue() + assertThat(navController.currentBackStackEntry?.toRoute()?.arg).isNull() + assertThat(navController.currentBackStack.value.size).isEqualTo(4) + + // use default + navController.navigate(TestClass()) + assertThat(navController.currentDestination?.hasRoute(TestClass::class)).isTrue() + assertThat(navController.currentBackStackEntry?.toRoute()?.arg).isEqualTo(1L) + assertThat(navController.currentBackStack.value.size).isEqualTo(5) + } + + @UiThreadTest + @Test + fun testNavigateWithObjectNullableLongNoDefault() { + @Serializable class TestClass(val arg: Long?) + val navController = createNavController() + navController.graph = + navController.createGraph(startDestination = "start") { + test("start") + test() + } + assertThat(navController.currentDestination?.route).isEqualTo("start") + + // passed in arg + navController.navigate(TestClass(2L)) + assertThat(navController.currentDestination?.hasRoute(TestClass::class)).isTrue() + assertThat(navController.currentBackStackEntry?.toRoute()?.arg).isEqualTo(2L) + assertThat(navController.currentBackStack.value.size).isEqualTo(3) + + // passed in null + navController.navigate(TestClass(null)) + assertThat(navController.currentDestination?.hasRoute(TestClass::class)).isTrue() + assertThat(navController.currentBackStackEntry?.toRoute()?.arg).isNull() + assertThat(navController.currentBackStack.value.size).isEqualTo(4) + } + + @UiThreadTest + @Test + fun testNavigateWithObjectEnum() { + @Serializable class TestClass(val arg: TestEnum = TestEnum.ONE) + val navController = createNavController() + navController.graph = + navController.createGraph(startDestination = "start") { + test("start") + test() + } + assertThat(navController.currentDestination?.route).isEqualTo("start") + + // passed in arg + navController.navigate(TestClass(TestEnum.TWO)) + assertThat(navController.currentDestination?.hasRoute(TestClass::class)).isTrue() + assertThat(navController.currentBackStackEntry?.toRoute()?.arg) + .isEqualTo(TestEnum.TWO) + assertThat(navController.currentBackStack.value.size).isEqualTo(3) + + // use default + navController.navigate(TestClass()) + assertThat(navController.currentDestination?.hasRoute(TestClass::class)).isTrue() + assertThat(navController.currentBackStackEntry?.toRoute()?.arg) + .isEqualTo(TestEnum.ONE) + assertThat(navController.currentBackStack.value.size).isEqualTo(4) + } + + @UiThreadTest + @Test + fun testNavigateWithObjectEnumTopLevel() { + @Serializable class TestClass(val arg: TestTopLevelEnum = TestTopLevelEnum.ONE) + val navController = createNavController() + navController.graph = + navController.createGraph(startDestination = "start") { + test("start") + test() + } + assertThat(navController.currentDestination?.route).isEqualTo("start") + + // passed in arg + navController.navigate(TestClass(TestTopLevelEnum.TWO)) + assertThat(navController.currentDestination?.hasRoute(TestClass::class)).isTrue() + assertThat(navController.currentBackStackEntry?.toRoute()?.arg) + .isEqualTo(TestTopLevelEnum.TWO) + assertThat(navController.currentBackStack.value.size).isEqualTo(3) + + // use default + navController.navigate(TestClass()) + assertThat(navController.currentDestination?.hasRoute(TestClass::class)).isTrue() + assertThat(navController.currentBackStackEntry?.toRoute()?.arg) + .isEqualTo(TestTopLevelEnum.ONE) + assertThat(navController.currentBackStack.value.size).isEqualTo(4) + } + + @UiThreadTest + @Test + fun testNavigateWithObjectEnumNullable() { + @Serializable class TestClass(val arg: TestEnum? = TestEnum.ONE) + val navController = createNavController() + navController.graph = + navController.createGraph(startDestination = "start") { + test("start") + test() + } + assertThat(navController.currentDestination?.route).isEqualTo("start") + + // passed in arg + navController.navigate(TestClass(TestEnum.TWO)) + assertThat(navController.currentDestination?.hasRoute(TestClass::class)).isTrue() + assertThat(navController.currentBackStackEntry?.toRoute()?.arg) + .isEqualTo(TestEnum.TWO) + assertThat(navController.currentBackStack.value.size).isEqualTo(3) + + // passed in null + navController.navigate(TestClass(null)) + assertThat(navController.currentDestination?.hasRoute(TestClass::class)).isTrue() + assertThat(navController.currentBackStackEntry?.toRoute()?.arg).isNull() + assertThat(navController.currentBackStack.value.size).isEqualTo(4) + + // use default + navController.navigate(TestClass()) + assertThat(navController.currentDestination?.hasRoute(TestClass::class)).isTrue() + assertThat(navController.currentBackStackEntry?.toRoute()?.arg) + .isEqualTo(TestEnum.ONE) + assertThat(navController.currentBackStack.value.size).isEqualTo(5) + } + + @UiThreadTest + @Test + fun testNavigateWithObjectEnumNoDefault() { + @Serializable class TestClass(val arg: TestEnum) + val navController = createNavController() + navController.graph = + navController.createGraph(startDestination = "start") { + test("start") + test() + } + assertThat(navController.currentDestination?.route).isEqualTo("start") + + // passed in arg + navController.navigate(TestClass(TestEnum.ONE)) + assertThat(navController.currentDestination?.hasRoute(TestClass::class)).isTrue() + assertThat(navController.currentBackStackEntry?.toRoute()?.arg) + .isEqualTo(TestEnum.ONE) + assertThat(navController.currentBackStack.value.size).isEqualTo(3) + + // passed in arg + navController.navigate(TestClass(TestEnum.TWO)) + assertThat(navController.currentDestination?.hasRoute(TestClass::class)).isTrue() + assertThat(navController.currentBackStackEntry?.toRoute()?.arg) + .isEqualTo(TestEnum.TWO) + assertThat(navController.currentBackStack.value.size).isEqualTo(4) + } + + @UiThreadTest + @Test + fun testNavigateWithObjectEnumWithArg() { + @Serializable class TestClass(val arg: TestEnumWithArg, val arg2: TestEnumWithArg) + val navController = createNavController() + navController.graph = + navController.createGraph(startDestination = "start") { + test("start") + test() + } + assertThat(navController.currentDestination?.route).isEqualTo("start") + + navController.navigate(TestClass(TestEnumWithArg.ONE, TestEnumWithArg.TWO)) + assertThat(navController.currentDestination?.hasRoute(TestClass::class)).isTrue() + + val arg = navController.currentBackStackEntry?.toRoute()?.arg + assertThat(arg).isEqualTo(TestEnumWithArg.ONE) + assertThat(arg?.number).isEqualTo(1) + + val arg2 = navController.currentBackStackEntry?.toRoute()?.arg2 + assertThat(arg2).isEqualTo(TestEnumWithArg.TWO) + assertThat(arg2?.number).isEqualTo(2) + + assertThat(navController.currentBackStack.value.size).isEqualTo(3) + } + + @UiThreadTest + @Test + fun testNavigateWithObjectNestedEnum() { + @Serializable + class TestClass(val arg: EnumWrapper.NestedEnum, val arg2: EnumWrapper.NestedEnum) + val navController = createNavController() + navController.graph = + navController.createGraph(startDestination = "start") { + test("start") + test() + } + assertThat(navController.currentDestination?.route).isEqualTo("start") + + navController.navigate(TestClass(EnumWrapper.NestedEnum.ONE, EnumWrapper.NestedEnum.TWO)) + assertThat(navController.currentDestination?.hasRoute(TestClass::class)).isTrue() + + val arg = navController.currentBackStackEntry?.toRoute()?.arg + assertThat(arg).isEqualTo(EnumWrapper.NestedEnum.ONE) + assertThat(arg?.number).isEqualTo(1) + + val arg2 = navController.currentBackStackEntry?.toRoute()?.arg2 + assertThat(arg2).isEqualTo(EnumWrapper.NestedEnum.TWO) + assertThat(arg2?.number).isEqualTo(2) + + assertThat(navController.currentBackStack.value.size).isEqualTo(3) + } + @UiThreadTest @Test fun testNavigateWithPopUpToFurthestRoute() { @@ -4563,3 +5208,8 @@ class NavControllerRouteTest { return navController } } + +private enum class TestTopLevelEnum { + ONE, + TWO +} diff --git a/navigation/navigation-runtime/src/androidMain/kotlin/androidx/navigation/NavController.android.kt b/navigation/navigation-runtime/src/androidMain/kotlin/androidx/navigation/NavController.android.kt index 94363978d6ea3..34da5a5335c3b 100644 --- a/navigation/navigation-runtime/src/androidMain/kotlin/androidx/navigation/NavController.android.kt +++ b/navigation/navigation-runtime/src/androidMain/kotlin/androidx/navigation/NavController.android.kt @@ -50,6 +50,8 @@ import androidx.navigation.serialization.generateHashCode import androidx.navigation.serialization.generateRouteWithArgs import java.util.concurrent.CopyOnWriteArrayList import java.util.concurrent.atomic.AtomicInteger +import kotlin.collections.removeFirst as removeFirstKt +import kotlin.collections.removeLast as removeLastKt import kotlin.reflect.KClass import kotlin.reflect.KType import kotlinx.coroutines.channels.BufferOverflow @@ -796,7 +798,7 @@ public actual open class NavController( "Attempted to pop ${popUpTo.destination}, which is not the top of the back stack " + "(${entry.destination})" } - backQueue.removeLast() + backQueue.removeLastKt() val navigator = navigatorProvider.getNavigator>( entry.destination.navigatorName @@ -959,8 +961,8 @@ public actual open class NavController( val deepLinkArgs = extras.getParcelableArrayList(KEY_DEEP_LINK_ARGS) // Remove the leaf destination to pop up to one level above it - var leafDestinationId = deepLinkIds.removeLast() - deepLinkArgs?.removeLast() + var leafDestinationId = deepLinkIds.removeLastKt() + deepLinkArgs?.removeLastKt() // Probably deep linked to a single destination only. if (deepLinkIds.isEmpty()) { @@ -1014,8 +1016,14 @@ public actual open class NavController( // Include the original deep link Intent so the Destinations can // synthetically generate additional arguments as necessary. args.putParcelable(KEY_DEEP_LINK_INTENT, activity!!.intent) + val currGraph = backQueue.getTopGraph() val matchingDeepLink = - _graph!!.matchDeepLink(NavDeepLinkRequest(activity!!.intent)) + currGraph.matchDeepLinkComprehensive( + navDeepLinkRequest = NavDeepLinkRequest(activity!!.intent), + searchChildren = true, + searchParent = true, + lastVisited = currGraph + ) if (matchingDeepLink?.matchingArgs != null) { val destinationArgs = matchingDeepLink.destination.addInDefaultArgs( @@ -1146,10 +1154,10 @@ public actual open class NavController( upwardStateTransitions[entry] = Lifecycle.State.STARTED } } - if (nextStarted.firstOrNull()?.id == destination.id) nextStarted.removeFirst() + if (nextStarted.firstOrNull()?.id == destination.id) nextStarted.removeFirstKt() nextResumed = nextResumed.parent } else if (nextStarted.isNotEmpty() && destination.id == nextStarted.first().id) { - val started = nextStarted.removeFirst() + val started = nextStarted.removeFirstKt() if (currentMaxLifecycle == Lifecycle.State.RESUMED) { // Downward transitions should be done immediately so children are // paused before their parent navigation graphs @@ -1403,7 +1411,14 @@ public actual open class NavController( globalArgs.putAll(deepLinkExtras) } if (deepLink == null || deepLink.isEmpty()) { - val matchingDeepLink = _graph!!.matchDeepLink(NavDeepLinkRequest(intent)) + val currGraph = backQueue.getTopGraph() + val matchingDeepLink = + currGraph.matchDeepLinkComprehensive( + navDeepLinkRequest = NavDeepLinkRequest(intent), + searchChildren = true, + searchParent = true, + lastVisited = currGraph + ) if (matchingDeepLink != null) { val destination = matchingDeepLink.destination deepLink = destination.buildDeepLinkIds() @@ -1621,9 +1636,17 @@ public actual open class NavController( if (_graph!!.route == route || _graph!!.matchDeepLink(route) != null) { return _graph } - val currentNode = backQueue.lastOrNull()?.destination ?: _graph!! - val currentGraph = if (currentNode is NavGraph) currentNode else currentNode.parent!! - return currentGraph.findNode(route) + return backQueue.getTopGraph().findNode(route) + } + + /** + * Returns the last NavGraph on the backstack. + * + * If there are no NavGraphs on the stack, returns [_graph] + */ + private fun ArrayDeque.getTopGraph(): NavGraph { + val currentNode = lastOrNull()?.destination ?: _graph!! + return if (currentNode is NavGraph) currentNode else currentNode.parent!! } // Finds destination within _graph including its children and @@ -1886,7 +1909,14 @@ public actual open class NavController( "Cannot navigate to $request. Navigation graph has not been set for " + "NavController $this." } - val deepLinkMatch = _graph!!.matchDeepLink(request) + val currGraph = backQueue.getTopGraph() + val deepLinkMatch = + currGraph.matchDeepLinkComprehensive( + navDeepLinkRequest = request, + searchChildren = true, + searchParent = true, + lastVisited = currGraph + ) if (deepLinkMatch != null) { val destination = deepLinkMatch.destination val args = destination.addInDefaultArgs(deepLinkMatch.matchingArgs) ?: Bundle() @@ -2006,7 +2036,7 @@ public actual open class NavController( val tempBackQueue: ArrayDeque = ArrayDeque() // pop from startDestination back to original node and create a new entry for each while (backQueue.lastIndex >= nodeIndex) { - val oldEntry = backQueue.removeLast() + val oldEntry = backQueue.removeLastKt() unlinkChildFromParent(oldEntry) val newEntry = NavBackStackEntry(oldEntry, oldEntry.destination.addInDefaultArgs(args)) tempBackQueue.addFirst(newEntry) diff --git a/navigation/navigation-runtime/src/androidMain/kotlin/androidx/navigation/NavDeepLinkBuilder.android.kt b/navigation/navigation-runtime/src/androidMain/kotlin/androidx/navigation/NavDeepLinkBuilder.android.kt index fec16b10bfcb5..3e657141de28a 100644 --- a/navigation/navigation-runtime/src/androidMain/kotlin/androidx/navigation/NavDeepLinkBuilder.android.kt +++ b/navigation/navigation-runtime/src/androidMain/kotlin/androidx/navigation/NavDeepLinkBuilder.android.kt @@ -19,6 +19,7 @@ import android.app.Activity import android.app.PendingIntent import android.content.ComponentName import android.content.Context +import android.content.ContextWrapper import android.content.Intent import android.os.Bundle import androidx.annotation.IdRes @@ -51,9 +52,13 @@ import androidx.navigation.NavDestination.Companion.createRoute public class NavDeepLinkBuilder(private val context: Context) { private class DeepLinkDestination constructor(val destinationId: Int, val arguments: Bundle?) + private val activity: Activity? = + generateSequence(context) { (it as? ContextWrapper)?.baseContext } + .mapNotNull { it as? Activity } + .firstOrNull() private val intent: Intent = - if (context is Activity) { - Intent(context, context.javaClass) + if (activity != null) { + Intent(context, activity.javaClass) } else { val launchIntent = context.packageManager.getLaunchIntentForPackage(context.packageName) diff --git a/navigation/navigation-runtime/src/jbMain/kotlin/androidx/navigation/NavBackStackEntryState.jb.kt b/navigation/navigation-runtime/src/jbMain/kotlin/androidx/navigation/NavBackStackEntryState.jb.kt index 6d971e99804f6..89b362a174698 100644 --- a/navigation/navigation-runtime/src/jbMain/kotlin/androidx/navigation/NavBackStackEntryState.jb.kt +++ b/navigation/navigation-runtime/src/jbMain/kotlin/androidx/navigation/NavBackStackEntryState.jb.kt @@ -19,7 +19,6 @@ package androidx.navigation import androidx.core.bundle.Bundle import androidx.lifecycle.Lifecycle -// TODO: Make @Serializable internal data class NavBackStackEntryState( val id: String, val destinationId: Int, @@ -49,4 +48,32 @@ internal data class NavBackStackEntryState( savedState ) } + + fun toBundle(): Bundle = Bundle().apply { + putString(KEY_ID, id) + putInt(KEY_DESTINATION_ID, destinationId) + putBundle(KEY_ARGS, args) + putBundle(KEY_SAVED_STATE, savedState) + } + + companion object { + private const val KEY_ID = "NavBackStackEntryState.id" + private const val KEY_DESTINATION_ID = "NavBackStackEntryState.destinationId" + private const val KEY_ARGS = "NavBackStackEntryState.args" + private const val KEY_SAVED_STATE = "NavBackStackEntryState.savedState" + + fun fromBundle(bundle: Bundle?): NavBackStackEntryState? { + if (bundle == null) return null + val id = bundle.getString(KEY_ID) ?: return null + val destinationId = bundle.getInt(KEY_DESTINATION_ID) + val args = bundle.getBundle(KEY_ARGS) ?: return null + val savedState = bundle.getBundle(KEY_SAVED_STATE) ?: return null + return NavBackStackEntryState( + id = id, + destinationId = destinationId, + args = args, + savedState = savedState + ) + } + } } diff --git a/navigation/navigation-runtime/src/jbMain/kotlin/androidx/navigation/NavController.jb.kt b/navigation/navigation-runtime/src/jbMain/kotlin/androidx/navigation/NavController.jb.kt index 16bfe33a35760..8385e95e0ae82 100644 --- a/navigation/navigation-runtime/src/jbMain/kotlin/androidx/navigation/NavController.jb.kt +++ b/navigation/navigation-runtime/src/jbMain/kotlin/androidx/navigation/NavController.jb.kt @@ -27,10 +27,12 @@ import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.ViewModelStore import androidx.navigation.NavDestination.Companion.createRoute import androidx.navigation.NavDestination.Companion.hierarchy -import androidx.navigation.NavGraph.Companion.childHierarchy import androidx.navigation.NavGraph.Companion.findStartDestination -import androidx.navigation.serialization.generateHashCode import androidx.navigation.serialization.generateRouteWithArgs +import kotlin.collections.removeFirst as removeFirstKt +import kotlin.collections.removeLast as removeLastKt +import androidx.navigation.NavGraph.Companion.childHierarchy +import androidx.navigation.serialization.generateHashCode import kotlin.jvm.JvmOverloads import kotlinx.coroutines.channels.BufferOverflow import kotlinx.coroutines.flow.Flow @@ -578,7 +580,7 @@ public actual open class NavController { "Attempted to pop ${popUpTo.destination}, which is not the top of the back stack " + "(${entry.destination})" } - backQueue.removeLast() + backQueue.removeLastKt() val navigator = navigatorProvider.getNavigator>( entry.destination.navigatorName @@ -777,10 +779,10 @@ public actual open class NavController { upwardStateTransitions[entry] = Lifecycle.State.STARTED } } - if (nextStarted.firstOrNull()?.id == destination.id) nextStarted.removeFirst() + if (nextStarted.firstOrNull()?.id == destination.id) nextStarted.removeFirstKt() nextResumed = nextResumed.parent } else if (nextStarted.isNotEmpty() && destination.id == nextStarted.first().id) { - val started = nextStarted.removeFirst() + val started = nextStarted.removeFirstKt() if (currentMaxLifecycle == Lifecycle.State.RESUMED) { // Downward transitions should be done immediately so children are // paused before their parent navigation graphs @@ -878,8 +880,42 @@ public actual open class NavController { @MainThread private fun onGraphCreated(startDestinationArgs: Bundle?) { - // TODO read navigatorStateToRestore - // TODO read backStackToRestore + navigatorStateToRestore?.let { navigatorStateToRestore -> + val navigatorNames = + navigatorStateToRestore.getStringArrayList(KEY_NAVIGATOR_STATE_NAMES) + if (navigatorNames != null) { + for (name in navigatorNames) { + val navigator = _navigatorProvider.getNavigator>(name!!) + val bundle = navigatorStateToRestore.getBundle(name) + if (bundle != null) { + navigator.onRestoreState(bundle) + } + } + } + } + backStackToRestore?.let { backStackToRestore -> + for (state in backStackToRestore) { + val node = findDestination(state.destinationId) + if (node == null) { + val dest = NavDestination.getDisplayName(state.destinationId) + throw IllegalStateException( + "Restoring the Navigation back stack failed: destination $dest cannot be " + + "found from the current destination $currentDestination" + ) + } + val entry = state.instantiate(node, hostLifecycleState, viewModel) + val navigator = _navigatorProvider.getNavigator>(node.navigatorName) + val navigatorBackStack = + navigatorState.getOrPut(navigator) { NavControllerNavigatorState(navigator) } + backQueue.add(entry) + navigatorBackStack.addInternal(entry) + val parent = entry.destination.parent + if (parent != null) { + linkChildToParent(entry, getBackStackEntry(parent.id)) + } + } + this.backStackToRestore = null + } // Mark all Navigators as attached _navigatorProvider.navigators.values @@ -952,9 +988,17 @@ public actual open class NavController { if (_graph!!.route == route || _graph!!.matchDeepLink(route) != null) { return _graph } - val currentNode = backQueue.lastOrNull()?.destination ?: _graph!! - val currentGraph = if (currentNode is NavGraph) currentNode else currentNode.parent!! - return currentGraph.findNode(route) + return backQueue.getTopGraph().findNode(route) + } + + /** + * Returns the last NavGraph on the backstack. + * + * If there are no NavGraphs on the stack, returns [_graph] + */ + private fun ArrayDeque.getTopGraph(): NavGraph { + val currentNode = lastOrNull()?.destination ?: _graph!! + return if (currentNode is NavGraph) currentNode else currentNode.parent!! } // Finds destination within _graph including its children and @@ -986,7 +1030,14 @@ public actual open class NavController { "Cannot navigate to $route. Navigation graph has not been set for " + "NavController $this." } - val deepLinkMatch = _graph!!.matchDeepLink(route) + val currGraph = backQueue.getTopGraph() + val deepLinkMatch = + currGraph.matchDeepLinkComprehensive( + route = route, + searchChildren = true, + searchParent = true, + lastVisited = currGraph + ) if (deepLinkMatch != null) { val destination = deepLinkMatch.destination val args = destination.addInDefaultArgs(deepLinkMatch.matchingArgs) ?: Bundle() @@ -1098,7 +1149,7 @@ public actual open class NavController { val tempBackQueue: ArrayDeque = ArrayDeque() // pop from startDestination back to original node and create a new entry for each while (backQueue.lastIndex >= nodeIndex) { - val oldEntry = backQueue.removeLast() + val oldEntry = backQueue.removeLastKt() unlinkChildFromParent(oldEntry) val newEntry = NavBackStackEntry(oldEntry, oldEntry.destination.addInDefaultArgs(args)) tempBackQueue.addFirst(newEntry) @@ -1408,7 +1459,7 @@ public actual open class NavController { @CallSuper public actual open fun saveState(): Bundle? { var b: Bundle? = null - val navigatorNames = ArrayList() + val navigatorNames = ArrayList() val navigatorState = Bundle() for ((name, value) in _navigatorProvider.navigators) { val savedState = value.onSaveState() @@ -1422,51 +1473,46 @@ public actual open class NavController { navigatorState.putStringArrayList(KEY_NAVIGATOR_STATE_NAMES, navigatorNames) b.putBundle(KEY_NAVIGATOR_STATE, navigatorState) } - /* TODO: NavBackStackEntryState is not serializable yet if (backQueue.isNotEmpty()) { if (b == null) { b = Bundle() } - val backStack = arrayOfNulls(backQueue.size) + val backStack = arrayOfNulls(backQueue.size) var index = 0 for (backStackEntry in this.backQueue) { - backStack[index++] = NavBackStackEntryState(backStackEntry) + backStack[index++] = NavBackStackEntryState(backStackEntry).toBundle() } - b.putParcelableArray(KEY_BACK_STACK, backStack) + b.putBundleArray(KEY_BACK_STACK, backStack) } - */ if (backStackMap.isNotEmpty()) { if (b == null) { b = Bundle() } val backStackDestIds = IntArray(backStackMap.size) - val backStackIds = ArrayList() + val backStackIds = ArrayList() var index = 0 for ((destId, id) in backStackMap) { backStackDestIds[index++] = destId backStackIds += id - ?: "" // TODO: KMP Bundle doesn't allow nulls here } b.putIntArray(KEY_BACK_STACK_DEST_IDS, backStackDestIds) b.putStringArrayList(KEY_BACK_STACK_IDS, backStackIds) } - /* TODO: NavBackStackEntryState is not serializable yet if (backStackStates.isNotEmpty()) { if (b == null) { b = Bundle() } - val backStackStateIds = ArrayList() + val backStackStateIds = ArrayList() for ((id, backStackStates) in backStackStates) { backStackStateIds += id - val states = arrayOfNulls(backStackStates.size) + val states = arrayOfNulls(backStackStates.size) backStackStates.forEachIndexed { stateIndex, backStackState -> - states[stateIndex] = backStackState + states[stateIndex] = backStackState.toBundle() } - b.putParcelableArray(KEY_BACK_STACK_STATES_PREFIX + id, states) + b.putBundleArray(KEY_BACK_STACK_STATES_PREFIX + id, states) } b.putStringArrayList(KEY_BACK_STACK_STATES_IDS, backStackStateIds) } - */ if (deepLinkHandled) { if (b == null) { b = Bundle() @@ -1482,31 +1528,27 @@ public actual open class NavController { return } navigatorStateToRestore = navState.getBundle(KEY_NAVIGATOR_STATE) - // TODO: NavBackStackEntryState is not serializable yet - // backStackToRestore = navState.getParcelableArray(KEY_BACK_STACK) + backStackToRestore = navState.getBundleArray(KEY_BACK_STACK) + ?.mapNotNull { NavBackStackEntryState.fromBundle(it) } backStackStates.clear() val backStackDestIds = navState.getIntArray(KEY_BACK_STACK_DEST_IDS) val backStackIds = navState.getStringArrayList(KEY_BACK_STACK_IDS) if (backStackDestIds != null && backStackIds != null) { - backStackDestIds.forEachIndexed { index, id -> - backStackMap[id] = backStackIds[index] - .ifEmpty { null } // TODO: KMP Bundle doesn't allow nulls here - } + backStackDestIds.forEachIndexed { index, id -> backStackMap[id] = backStackIds[index] } } - /* TODO: NavBackStackEntryState is not serializable yet val backStackStateIds = navState.getStringArrayList(KEY_BACK_STACK_STATES_IDS) - backStackStateIds?.forEach { id -> - val backStackState = navState.getParcelableArray(KEY_BACK_STACK_STATES_PREFIX + id) + backStackStateIds?.filterNotNull()?.forEach { id -> + val backStackState = navState.getBundleArray(KEY_BACK_STACK_STATES_PREFIX + id) + ?.mapNotNull { NavBackStackEntryState.fromBundle(it) } if (backStackState != null) { backStackStates[id] = ArrayDeque(backStackState.size).apply { - for (parcelable in backStackState) { - add(parcelable as NavBackStackEntryState) + for (i in backStackState) { + add(i) } } } } - */ deepLinkHandled = navState.getBoolean(KEY_DEEP_LINK_HANDLED) } diff --git a/navigation/navigation-safe-args-gradle-plugin/lint-baseline.xml b/navigation/navigation-safe-args-gradle-plugin/lint-baseline.xml index ac0c4e57bbbdd..4255546d44fda 100644 --- a/navigation/navigation-safe-args-gradle-plugin/lint-baseline.xml +++ b/navigation/navigation-safe-args-gradle-plugin/lint-baseline.xml @@ -1,5 +1,5 @@ - + + errorLine1=" (project.findProperty("android.useAndroidX") == "true").also {" + errorLine2=" ~~~~~~~~~~~~"> @@ -67,8 +67,8 @@ + errorLine1=" .withPluginClasspath()" + errorLine2=" ~~~~~~~~~~~~~~~~~~~"> diff --git a/navigation/navigation-testing/api/2.8.0-beta06.txt b/navigation/navigation-testing/api/2.8.0-beta06.txt new file mode 100644 index 0000000000000..ebd90dfebe5d1 --- /dev/null +++ b/navigation/navigation-testing/api/2.8.0-beta06.txt @@ -0,0 +1,27 @@ +// Signature format: 4.0 +package androidx.navigation.testing { + + public final class SavedStateHandleFactoryKt { + method public static operator androidx.lifecycle.SavedStateHandle invoke(androidx.lifecycle.SavedStateHandle.Companion, Object route, optional java.util.Map> typeMap); + } + + public final class TestNavHostController extends androidx.navigation.NavHostController { + ctor public TestNavHostController(android.content.Context context); + method public java.util.List getBackStack(); + method public void setCurrentDestination(@IdRes int destId); + method public void setCurrentDestination(@IdRes int destId, optional android.os.Bundle args); + method public void setCurrentDestination(String destRoute); + method public void setCurrentDestination(String destRoute, optional android.os.Bundle args); + property public final java.util.List backStack; + } + + public final class TestNavigatorState extends androidx.navigation.NavigatorState { + ctor public TestNavigatorState(); + ctor public TestNavigatorState(optional android.content.Context? context); + ctor public TestNavigatorState(optional android.content.Context? context, optional kotlinx.coroutines.CoroutineDispatcher coroutineDispatcher); + method public androidx.navigation.NavBackStackEntry createBackStackEntry(androidx.navigation.NavDestination destination, android.os.Bundle? arguments); + method public androidx.navigation.NavBackStackEntry restoreBackStackEntry(androidx.navigation.NavBackStackEntry previouslySavedEntry); + } + +} + diff --git a/navigation/navigation-testing/api/2.8.0-beta07.txt b/navigation/navigation-testing/api/2.8.0-beta07.txt new file mode 100644 index 0000000000000..ebd90dfebe5d1 --- /dev/null +++ b/navigation/navigation-testing/api/2.8.0-beta07.txt @@ -0,0 +1,27 @@ +// Signature format: 4.0 +package androidx.navigation.testing { + + public final class SavedStateHandleFactoryKt { + method public static operator androidx.lifecycle.SavedStateHandle invoke(androidx.lifecycle.SavedStateHandle.Companion, Object route, optional java.util.Map> typeMap); + } + + public final class TestNavHostController extends androidx.navigation.NavHostController { + ctor public TestNavHostController(android.content.Context context); + method public java.util.List getBackStack(); + method public void setCurrentDestination(@IdRes int destId); + method public void setCurrentDestination(@IdRes int destId, optional android.os.Bundle args); + method public void setCurrentDestination(String destRoute); + method public void setCurrentDestination(String destRoute, optional android.os.Bundle args); + property public final java.util.List backStack; + } + + public final class TestNavigatorState extends androidx.navigation.NavigatorState { + ctor public TestNavigatorState(); + ctor public TestNavigatorState(optional android.content.Context? context); + ctor public TestNavigatorState(optional android.content.Context? context, optional kotlinx.coroutines.CoroutineDispatcher coroutineDispatcher); + method public androidx.navigation.NavBackStackEntry createBackStackEntry(androidx.navigation.NavDestination destination, android.os.Bundle? arguments); + method public androidx.navigation.NavBackStackEntry restoreBackStackEntry(androidx.navigation.NavBackStackEntry previouslySavedEntry); + } + +} + diff --git a/navigation/navigation-testing/api/res-2.8.0-beta06.txt b/navigation/navigation-testing/api/res-2.8.0-beta06.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/navigation/navigation-testing/api/res-2.8.0-beta07.txt b/navigation/navigation-testing/api/res-2.8.0-beta07.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/navigation/navigation-testing/api/restricted_2.8.0-beta06.txt b/navigation/navigation-testing/api/restricted_2.8.0-beta06.txt new file mode 100644 index 0000000000000..ebd90dfebe5d1 --- /dev/null +++ b/navigation/navigation-testing/api/restricted_2.8.0-beta06.txt @@ -0,0 +1,27 @@ +// Signature format: 4.0 +package androidx.navigation.testing { + + public final class SavedStateHandleFactoryKt { + method public static operator androidx.lifecycle.SavedStateHandle invoke(androidx.lifecycle.SavedStateHandle.Companion, Object route, optional java.util.Map> typeMap); + } + + public final class TestNavHostController extends androidx.navigation.NavHostController { + ctor public TestNavHostController(android.content.Context context); + method public java.util.List getBackStack(); + method public void setCurrentDestination(@IdRes int destId); + method public void setCurrentDestination(@IdRes int destId, optional android.os.Bundle args); + method public void setCurrentDestination(String destRoute); + method public void setCurrentDestination(String destRoute, optional android.os.Bundle args); + property public final java.util.List backStack; + } + + public final class TestNavigatorState extends androidx.navigation.NavigatorState { + ctor public TestNavigatorState(); + ctor public TestNavigatorState(optional android.content.Context? context); + ctor public TestNavigatorState(optional android.content.Context? context, optional kotlinx.coroutines.CoroutineDispatcher coroutineDispatcher); + method public androidx.navigation.NavBackStackEntry createBackStackEntry(androidx.navigation.NavDestination destination, android.os.Bundle? arguments); + method public androidx.navigation.NavBackStackEntry restoreBackStackEntry(androidx.navigation.NavBackStackEntry previouslySavedEntry); + } + +} + diff --git a/navigation/navigation-testing/api/restricted_2.8.0-beta07.txt b/navigation/navigation-testing/api/restricted_2.8.0-beta07.txt new file mode 100644 index 0000000000000..ebd90dfebe5d1 --- /dev/null +++ b/navigation/navigation-testing/api/restricted_2.8.0-beta07.txt @@ -0,0 +1,27 @@ +// Signature format: 4.0 +package androidx.navigation.testing { + + public final class SavedStateHandleFactoryKt { + method public static operator androidx.lifecycle.SavedStateHandle invoke(androidx.lifecycle.SavedStateHandle.Companion, Object route, optional java.util.Map> typeMap); + } + + public final class TestNavHostController extends androidx.navigation.NavHostController { + ctor public TestNavHostController(android.content.Context context); + method public java.util.List getBackStack(); + method public void setCurrentDestination(@IdRes int destId); + method public void setCurrentDestination(@IdRes int destId, optional android.os.Bundle args); + method public void setCurrentDestination(String destRoute); + method public void setCurrentDestination(String destRoute, optional android.os.Bundle args); + property public final java.util.List backStack; + } + + public final class TestNavigatorState extends androidx.navigation.NavigatorState { + ctor public TestNavigatorState(); + ctor public TestNavigatorState(optional android.content.Context? context); + ctor public TestNavigatorState(optional android.content.Context? context, optional kotlinx.coroutines.CoroutineDispatcher coroutineDispatcher); + method public androidx.navigation.NavBackStackEntry createBackStackEntry(androidx.navigation.NavDestination destination, android.os.Bundle? arguments); + method public androidx.navigation.NavBackStackEntry restoreBackStackEntry(androidx.navigation.NavBackStackEntry previouslySavedEntry); + } + +} + diff --git a/navigation/navigation-testing/build.gradle b/navigation/navigation-testing/build.gradle index 40e272ebce47b..5c80ca732aaeb 100644 --- a/navigation/navigation-testing/build.gradle +++ b/navigation/navigation-testing/build.gradle @@ -61,7 +61,6 @@ androidx { type = LibraryType.PUBLISHED_LIBRARY inceptionYear = "2017" description = "Android Navigation-Testing" - metalavaK2UastEnabled = true legacyDisableKotlinStrictApiMode = true } diff --git a/navigation/navigation-ui-ktx/api/2.8.0-beta06.txt b/navigation/navigation-ui-ktx/api/2.8.0-beta06.txt new file mode 100644 index 0000000000000..e6f50d0d0fd11 --- /dev/null +++ b/navigation/navigation-ui-ktx/api/2.8.0-beta06.txt @@ -0,0 +1 @@ +// Signature format: 4.0 diff --git a/navigation/navigation-ui-ktx/api/2.8.0-beta07.txt b/navigation/navigation-ui-ktx/api/2.8.0-beta07.txt new file mode 100644 index 0000000000000..e6f50d0d0fd11 --- /dev/null +++ b/navigation/navigation-ui-ktx/api/2.8.0-beta07.txt @@ -0,0 +1 @@ +// Signature format: 4.0 diff --git a/navigation/navigation-ui-ktx/api/res-2.8.0-beta06.txt b/navigation/navigation-ui-ktx/api/res-2.8.0-beta06.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/navigation/navigation-ui-ktx/api/res-2.8.0-beta07.txt b/navigation/navigation-ui-ktx/api/res-2.8.0-beta07.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/navigation/navigation-ui-ktx/api/restricted_2.8.0-beta06.txt b/navigation/navigation-ui-ktx/api/restricted_2.8.0-beta06.txt new file mode 100644 index 0000000000000..e6f50d0d0fd11 --- /dev/null +++ b/navigation/navigation-ui-ktx/api/restricted_2.8.0-beta06.txt @@ -0,0 +1 @@ +// Signature format: 4.0 diff --git a/navigation/navigation-ui-ktx/api/restricted_2.8.0-beta07.txt b/navigation/navigation-ui-ktx/api/restricted_2.8.0-beta07.txt new file mode 100644 index 0000000000000..e6f50d0d0fd11 --- /dev/null +++ b/navigation/navigation-ui-ktx/api/restricted_2.8.0-beta07.txt @@ -0,0 +1 @@ +// Signature format: 4.0 diff --git a/navigation/navigation-ui-ktx/build.gradle b/navigation/navigation-ui-ktx/build.gradle index 0a1ede19582f0..77f8cdf0a89f1 100644 --- a/navigation/navigation-ui-ktx/build.gradle +++ b/navigation/navigation-ui-ktx/build.gradle @@ -41,7 +41,6 @@ androidx { type = LibraryType.PUBLISHED_LIBRARY_ONLY_USED_BY_KOTLIN_CONSUMERS inceptionYear = "2018" description = "Android Navigation-UI-Ktx" - metalavaK2UastEnabled = true } android { diff --git a/navigation/navigation-ui/api/2.8.0-beta06.txt b/navigation/navigation-ui/api/2.8.0-beta06.txt new file mode 100644 index 0000000000000..326d323b0ecd6 --- /dev/null +++ b/navigation/navigation-ui/api/2.8.0-beta06.txt @@ -0,0 +1,94 @@ +// Signature format: 4.0 +package androidx.navigation.ui { + + public final class ActivityKt { + method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity, androidx.navigation.NavController navController, androidx.drawerlayout.widget.DrawerLayout? drawerLayout); + method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration); + } + + public final class AppBarConfiguration { + method @Deprecated public androidx.drawerlayout.widget.DrawerLayout? getDrawerLayout(); + method public androidx.navigation.ui.AppBarConfiguration.OnNavigateUpListener? getFallbackOnNavigateUpListener(); + method public androidx.customview.widget.Openable? getOpenableLayout(); + method public java.util.Set getTopLevelDestinations(); + method public boolean isTopLevelDestination(androidx.navigation.NavDestination destination); + property @Deprecated public final androidx.drawerlayout.widget.DrawerLayout? drawerLayout; + property public final androidx.navigation.ui.AppBarConfiguration.OnNavigateUpListener? fallbackOnNavigateUpListener; + property public final androidx.customview.widget.Openable? openableLayout; + property public final java.util.Set topLevelDestinations; + } + + public static final class AppBarConfiguration.Builder { + ctor public AppBarConfiguration.Builder(android.view.Menu topLevelMenu); + ctor public AppBarConfiguration.Builder(androidx.navigation.NavGraph navGraph); + ctor public AppBarConfiguration.Builder(int... topLevelDestinationIds); + ctor public AppBarConfiguration.Builder(java.util.Set topLevelDestinationIds); + method public androidx.navigation.ui.AppBarConfiguration build(); + method @Deprecated public androidx.navigation.ui.AppBarConfiguration.Builder setDrawerLayout(androidx.drawerlayout.widget.DrawerLayout? drawerLayout); + method public androidx.navigation.ui.AppBarConfiguration.Builder setFallbackOnNavigateUpListener(androidx.navigation.ui.AppBarConfiguration.OnNavigateUpListener? fallbackOnNavigateUpListener); + method public androidx.navigation.ui.AppBarConfiguration.Builder setOpenableLayout(androidx.customview.widget.Openable? openableLayout); + } + + public static fun interface AppBarConfiguration.OnNavigateUpListener { + method public boolean onNavigateUp(); + } + + public final class AppBarConfigurationKt { + method public static inline androidx.navigation.ui.AppBarConfiguration AppBarConfiguration(android.view.Menu topLevelMenu, optional androidx.customview.widget.Openable? drawerLayout, optional kotlin.jvm.functions.Function0 fallbackOnNavigateUpListener); + method public static inline androidx.navigation.ui.AppBarConfiguration AppBarConfiguration(androidx.navigation.NavGraph navGraph, optional androidx.customview.widget.Openable? drawerLayout, optional kotlin.jvm.functions.Function0 fallbackOnNavigateUpListener); + method public static inline androidx.navigation.ui.AppBarConfiguration AppBarConfiguration(java.util.Set topLevelDestinationIds, optional androidx.customview.widget.Openable? drawerLayout, optional kotlin.jvm.functions.Function0 fallbackOnNavigateUpListener); + } + + public final class BottomNavigationViewKt { + method public static void setupWithNavController(com.google.android.material.navigation.NavigationBarView, androidx.navigation.NavController navController); + } + + public final class CollapsingToolbarLayoutKt { + method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, androidx.drawerlayout.widget.DrawerLayout? drawerLayout); + method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration); + } + + public final class MenuItemKt { + method public static boolean onNavDestinationSelected(android.view.MenuItem, androidx.navigation.NavController navController); + } + + public final class NavControllerKt { + method public static boolean navigateUp(androidx.navigation.NavController, androidx.customview.widget.Openable? drawerLayout); + method public static boolean navigateUp(androidx.navigation.NavController, androidx.navigation.ui.AppBarConfiguration appBarConfiguration); + } + + public final class NavigationUI { + method public static boolean navigateUp(androidx.navigation.NavController navController, androidx.customview.widget.Openable? openableLayout); + method public static boolean navigateUp(androidx.navigation.NavController navController, androidx.navigation.ui.AppBarConfiguration configuration); + method public static boolean onNavDestinationSelected(android.view.MenuItem item, androidx.navigation.NavController navController); + method @SuppressCompatibility @androidx.navigation.ui.NavigationUiSaveStateControl public static boolean onNavDestinationSelected(android.view.MenuItem item, androidx.navigation.NavController navController, boolean saveState); + method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity activity, androidx.navigation.NavController navController); + method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity activity, androidx.navigation.NavController navController, androidx.customview.widget.Openable? openableLayout); + method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity activity, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration); + method public static void setupWithNavController(androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController); + method public static void setupWithNavController(androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, androidx.customview.widget.Openable? openableLayout); + method public static void setupWithNavController(androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration); + method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout collapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController); + method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout collapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, androidx.customview.widget.Openable? openableLayout); + method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout collapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration); + method public static void setupWithNavController(com.google.android.material.navigation.NavigationBarView navigationBarView, androidx.navigation.NavController navController); + method @SuppressCompatibility @androidx.navigation.ui.NavigationUiSaveStateControl public static void setupWithNavController(com.google.android.material.navigation.NavigationBarView navigationBarView, androidx.navigation.NavController navController, boolean saveState); + method public static void setupWithNavController(com.google.android.material.navigation.NavigationView navigationView, androidx.navigation.NavController navController); + method @SuppressCompatibility @androidx.navigation.ui.NavigationUiSaveStateControl public static void setupWithNavController(com.google.android.material.navigation.NavigationView navigationView, androidx.navigation.NavController navController, boolean saveState); + field public static final androidx.navigation.ui.NavigationUI INSTANCE; + } + + @SuppressCompatibility @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.WARNING) @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.FUNCTION) public @interface NavigationUiSaveStateControl { + } + + public final class NavigationViewKt { + method public static void setupWithNavController(com.google.android.material.navigation.NavigationView, androidx.navigation.NavController navController); + } + + public final class ToolbarKt { + method public static void setupWithNavController(androidx.appcompat.widget.Toolbar, androidx.navigation.NavController navController, androidx.drawerlayout.widget.DrawerLayout? drawerLayout); + method public static void setupWithNavController(androidx.appcompat.widget.Toolbar, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration); + } + +} + diff --git a/navigation/navigation-ui/api/2.8.0-beta07.txt b/navigation/navigation-ui/api/2.8.0-beta07.txt new file mode 100644 index 0000000000000..326d323b0ecd6 --- /dev/null +++ b/navigation/navigation-ui/api/2.8.0-beta07.txt @@ -0,0 +1,94 @@ +// Signature format: 4.0 +package androidx.navigation.ui { + + public final class ActivityKt { + method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity, androidx.navigation.NavController navController, androidx.drawerlayout.widget.DrawerLayout? drawerLayout); + method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration); + } + + public final class AppBarConfiguration { + method @Deprecated public androidx.drawerlayout.widget.DrawerLayout? getDrawerLayout(); + method public androidx.navigation.ui.AppBarConfiguration.OnNavigateUpListener? getFallbackOnNavigateUpListener(); + method public androidx.customview.widget.Openable? getOpenableLayout(); + method public java.util.Set getTopLevelDestinations(); + method public boolean isTopLevelDestination(androidx.navigation.NavDestination destination); + property @Deprecated public final androidx.drawerlayout.widget.DrawerLayout? drawerLayout; + property public final androidx.navigation.ui.AppBarConfiguration.OnNavigateUpListener? fallbackOnNavigateUpListener; + property public final androidx.customview.widget.Openable? openableLayout; + property public final java.util.Set topLevelDestinations; + } + + public static final class AppBarConfiguration.Builder { + ctor public AppBarConfiguration.Builder(android.view.Menu topLevelMenu); + ctor public AppBarConfiguration.Builder(androidx.navigation.NavGraph navGraph); + ctor public AppBarConfiguration.Builder(int... topLevelDestinationIds); + ctor public AppBarConfiguration.Builder(java.util.Set topLevelDestinationIds); + method public androidx.navigation.ui.AppBarConfiguration build(); + method @Deprecated public androidx.navigation.ui.AppBarConfiguration.Builder setDrawerLayout(androidx.drawerlayout.widget.DrawerLayout? drawerLayout); + method public androidx.navigation.ui.AppBarConfiguration.Builder setFallbackOnNavigateUpListener(androidx.navigation.ui.AppBarConfiguration.OnNavigateUpListener? fallbackOnNavigateUpListener); + method public androidx.navigation.ui.AppBarConfiguration.Builder setOpenableLayout(androidx.customview.widget.Openable? openableLayout); + } + + public static fun interface AppBarConfiguration.OnNavigateUpListener { + method public boolean onNavigateUp(); + } + + public final class AppBarConfigurationKt { + method public static inline androidx.navigation.ui.AppBarConfiguration AppBarConfiguration(android.view.Menu topLevelMenu, optional androidx.customview.widget.Openable? drawerLayout, optional kotlin.jvm.functions.Function0 fallbackOnNavigateUpListener); + method public static inline androidx.navigation.ui.AppBarConfiguration AppBarConfiguration(androidx.navigation.NavGraph navGraph, optional androidx.customview.widget.Openable? drawerLayout, optional kotlin.jvm.functions.Function0 fallbackOnNavigateUpListener); + method public static inline androidx.navigation.ui.AppBarConfiguration AppBarConfiguration(java.util.Set topLevelDestinationIds, optional androidx.customview.widget.Openable? drawerLayout, optional kotlin.jvm.functions.Function0 fallbackOnNavigateUpListener); + } + + public final class BottomNavigationViewKt { + method public static void setupWithNavController(com.google.android.material.navigation.NavigationBarView, androidx.navigation.NavController navController); + } + + public final class CollapsingToolbarLayoutKt { + method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, androidx.drawerlayout.widget.DrawerLayout? drawerLayout); + method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration); + } + + public final class MenuItemKt { + method public static boolean onNavDestinationSelected(android.view.MenuItem, androidx.navigation.NavController navController); + } + + public final class NavControllerKt { + method public static boolean navigateUp(androidx.navigation.NavController, androidx.customview.widget.Openable? drawerLayout); + method public static boolean navigateUp(androidx.navigation.NavController, androidx.navigation.ui.AppBarConfiguration appBarConfiguration); + } + + public final class NavigationUI { + method public static boolean navigateUp(androidx.navigation.NavController navController, androidx.customview.widget.Openable? openableLayout); + method public static boolean navigateUp(androidx.navigation.NavController navController, androidx.navigation.ui.AppBarConfiguration configuration); + method public static boolean onNavDestinationSelected(android.view.MenuItem item, androidx.navigation.NavController navController); + method @SuppressCompatibility @androidx.navigation.ui.NavigationUiSaveStateControl public static boolean onNavDestinationSelected(android.view.MenuItem item, androidx.navigation.NavController navController, boolean saveState); + method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity activity, androidx.navigation.NavController navController); + method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity activity, androidx.navigation.NavController navController, androidx.customview.widget.Openable? openableLayout); + method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity activity, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration); + method public static void setupWithNavController(androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController); + method public static void setupWithNavController(androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, androidx.customview.widget.Openable? openableLayout); + method public static void setupWithNavController(androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration); + method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout collapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController); + method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout collapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, androidx.customview.widget.Openable? openableLayout); + method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout collapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration); + method public static void setupWithNavController(com.google.android.material.navigation.NavigationBarView navigationBarView, androidx.navigation.NavController navController); + method @SuppressCompatibility @androidx.navigation.ui.NavigationUiSaveStateControl public static void setupWithNavController(com.google.android.material.navigation.NavigationBarView navigationBarView, androidx.navigation.NavController navController, boolean saveState); + method public static void setupWithNavController(com.google.android.material.navigation.NavigationView navigationView, androidx.navigation.NavController navController); + method @SuppressCompatibility @androidx.navigation.ui.NavigationUiSaveStateControl public static void setupWithNavController(com.google.android.material.navigation.NavigationView navigationView, androidx.navigation.NavController navController, boolean saveState); + field public static final androidx.navigation.ui.NavigationUI INSTANCE; + } + + @SuppressCompatibility @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.WARNING) @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.FUNCTION) public @interface NavigationUiSaveStateControl { + } + + public final class NavigationViewKt { + method public static void setupWithNavController(com.google.android.material.navigation.NavigationView, androidx.navigation.NavController navController); + } + + public final class ToolbarKt { + method public static void setupWithNavController(androidx.appcompat.widget.Toolbar, androidx.navigation.NavController navController, androidx.drawerlayout.widget.DrawerLayout? drawerLayout); + method public static void setupWithNavController(androidx.appcompat.widget.Toolbar, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration); + } + +} + diff --git a/navigation/navigation-ui/api/res-2.8.0-beta06.txt b/navigation/navigation-ui/api/res-2.8.0-beta06.txt new file mode 100644 index 0000000000000..e65fdbe5888de --- /dev/null +++ b/navigation/navigation-ui/api/res-2.8.0-beta06.txt @@ -0,0 +1,8 @@ +anim nav_default_enter_anim +anim nav_default_exit_anim +anim nav_default_pop_enter_anim +anim nav_default_pop_exit_anim +animator nav_default_enter_anim +animator nav_default_exit_anim +animator nav_default_pop_enter_anim +animator nav_default_pop_exit_anim diff --git a/navigation/navigation-ui/api/res-2.8.0-beta07.txt b/navigation/navigation-ui/api/res-2.8.0-beta07.txt new file mode 100644 index 0000000000000..e65fdbe5888de --- /dev/null +++ b/navigation/navigation-ui/api/res-2.8.0-beta07.txt @@ -0,0 +1,8 @@ +anim nav_default_enter_anim +anim nav_default_exit_anim +anim nav_default_pop_enter_anim +anim nav_default_pop_exit_anim +animator nav_default_enter_anim +animator nav_default_exit_anim +animator nav_default_pop_enter_anim +animator nav_default_pop_exit_anim diff --git a/navigation/navigation-ui/api/restricted_2.8.0-beta06.txt b/navigation/navigation-ui/api/restricted_2.8.0-beta06.txt new file mode 100644 index 0000000000000..326d323b0ecd6 --- /dev/null +++ b/navigation/navigation-ui/api/restricted_2.8.0-beta06.txt @@ -0,0 +1,94 @@ +// Signature format: 4.0 +package androidx.navigation.ui { + + public final class ActivityKt { + method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity, androidx.navigation.NavController navController, androidx.drawerlayout.widget.DrawerLayout? drawerLayout); + method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration); + } + + public final class AppBarConfiguration { + method @Deprecated public androidx.drawerlayout.widget.DrawerLayout? getDrawerLayout(); + method public androidx.navigation.ui.AppBarConfiguration.OnNavigateUpListener? getFallbackOnNavigateUpListener(); + method public androidx.customview.widget.Openable? getOpenableLayout(); + method public java.util.Set getTopLevelDestinations(); + method public boolean isTopLevelDestination(androidx.navigation.NavDestination destination); + property @Deprecated public final androidx.drawerlayout.widget.DrawerLayout? drawerLayout; + property public final androidx.navigation.ui.AppBarConfiguration.OnNavigateUpListener? fallbackOnNavigateUpListener; + property public final androidx.customview.widget.Openable? openableLayout; + property public final java.util.Set topLevelDestinations; + } + + public static final class AppBarConfiguration.Builder { + ctor public AppBarConfiguration.Builder(android.view.Menu topLevelMenu); + ctor public AppBarConfiguration.Builder(androidx.navigation.NavGraph navGraph); + ctor public AppBarConfiguration.Builder(int... topLevelDestinationIds); + ctor public AppBarConfiguration.Builder(java.util.Set topLevelDestinationIds); + method public androidx.navigation.ui.AppBarConfiguration build(); + method @Deprecated public androidx.navigation.ui.AppBarConfiguration.Builder setDrawerLayout(androidx.drawerlayout.widget.DrawerLayout? drawerLayout); + method public androidx.navigation.ui.AppBarConfiguration.Builder setFallbackOnNavigateUpListener(androidx.navigation.ui.AppBarConfiguration.OnNavigateUpListener? fallbackOnNavigateUpListener); + method public androidx.navigation.ui.AppBarConfiguration.Builder setOpenableLayout(androidx.customview.widget.Openable? openableLayout); + } + + public static fun interface AppBarConfiguration.OnNavigateUpListener { + method public boolean onNavigateUp(); + } + + public final class AppBarConfigurationKt { + method public static inline androidx.navigation.ui.AppBarConfiguration AppBarConfiguration(android.view.Menu topLevelMenu, optional androidx.customview.widget.Openable? drawerLayout, optional kotlin.jvm.functions.Function0 fallbackOnNavigateUpListener); + method public static inline androidx.navigation.ui.AppBarConfiguration AppBarConfiguration(androidx.navigation.NavGraph navGraph, optional androidx.customview.widget.Openable? drawerLayout, optional kotlin.jvm.functions.Function0 fallbackOnNavigateUpListener); + method public static inline androidx.navigation.ui.AppBarConfiguration AppBarConfiguration(java.util.Set topLevelDestinationIds, optional androidx.customview.widget.Openable? drawerLayout, optional kotlin.jvm.functions.Function0 fallbackOnNavigateUpListener); + } + + public final class BottomNavigationViewKt { + method public static void setupWithNavController(com.google.android.material.navigation.NavigationBarView, androidx.navigation.NavController navController); + } + + public final class CollapsingToolbarLayoutKt { + method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, androidx.drawerlayout.widget.DrawerLayout? drawerLayout); + method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration); + } + + public final class MenuItemKt { + method public static boolean onNavDestinationSelected(android.view.MenuItem, androidx.navigation.NavController navController); + } + + public final class NavControllerKt { + method public static boolean navigateUp(androidx.navigation.NavController, androidx.customview.widget.Openable? drawerLayout); + method public static boolean navigateUp(androidx.navigation.NavController, androidx.navigation.ui.AppBarConfiguration appBarConfiguration); + } + + public final class NavigationUI { + method public static boolean navigateUp(androidx.navigation.NavController navController, androidx.customview.widget.Openable? openableLayout); + method public static boolean navigateUp(androidx.navigation.NavController navController, androidx.navigation.ui.AppBarConfiguration configuration); + method public static boolean onNavDestinationSelected(android.view.MenuItem item, androidx.navigation.NavController navController); + method @SuppressCompatibility @androidx.navigation.ui.NavigationUiSaveStateControl public static boolean onNavDestinationSelected(android.view.MenuItem item, androidx.navigation.NavController navController, boolean saveState); + method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity activity, androidx.navigation.NavController navController); + method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity activity, androidx.navigation.NavController navController, androidx.customview.widget.Openable? openableLayout); + method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity activity, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration); + method public static void setupWithNavController(androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController); + method public static void setupWithNavController(androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, androidx.customview.widget.Openable? openableLayout); + method public static void setupWithNavController(androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration); + method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout collapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController); + method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout collapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, androidx.customview.widget.Openable? openableLayout); + method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout collapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration); + method public static void setupWithNavController(com.google.android.material.navigation.NavigationBarView navigationBarView, androidx.navigation.NavController navController); + method @SuppressCompatibility @androidx.navigation.ui.NavigationUiSaveStateControl public static void setupWithNavController(com.google.android.material.navigation.NavigationBarView navigationBarView, androidx.navigation.NavController navController, boolean saveState); + method public static void setupWithNavController(com.google.android.material.navigation.NavigationView navigationView, androidx.navigation.NavController navController); + method @SuppressCompatibility @androidx.navigation.ui.NavigationUiSaveStateControl public static void setupWithNavController(com.google.android.material.navigation.NavigationView navigationView, androidx.navigation.NavController navController, boolean saveState); + field public static final androidx.navigation.ui.NavigationUI INSTANCE; + } + + @SuppressCompatibility @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.WARNING) @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.FUNCTION) public @interface NavigationUiSaveStateControl { + } + + public final class NavigationViewKt { + method public static void setupWithNavController(com.google.android.material.navigation.NavigationView, androidx.navigation.NavController navController); + } + + public final class ToolbarKt { + method public static void setupWithNavController(androidx.appcompat.widget.Toolbar, androidx.navigation.NavController navController, androidx.drawerlayout.widget.DrawerLayout? drawerLayout); + method public static void setupWithNavController(androidx.appcompat.widget.Toolbar, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration); + } + +} + diff --git a/navigation/navigation-ui/api/restricted_2.8.0-beta07.txt b/navigation/navigation-ui/api/restricted_2.8.0-beta07.txt new file mode 100644 index 0000000000000..326d323b0ecd6 --- /dev/null +++ b/navigation/navigation-ui/api/restricted_2.8.0-beta07.txt @@ -0,0 +1,94 @@ +// Signature format: 4.0 +package androidx.navigation.ui { + + public final class ActivityKt { + method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity, androidx.navigation.NavController navController, androidx.drawerlayout.widget.DrawerLayout? drawerLayout); + method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration); + } + + public final class AppBarConfiguration { + method @Deprecated public androidx.drawerlayout.widget.DrawerLayout? getDrawerLayout(); + method public androidx.navigation.ui.AppBarConfiguration.OnNavigateUpListener? getFallbackOnNavigateUpListener(); + method public androidx.customview.widget.Openable? getOpenableLayout(); + method public java.util.Set getTopLevelDestinations(); + method public boolean isTopLevelDestination(androidx.navigation.NavDestination destination); + property @Deprecated public final androidx.drawerlayout.widget.DrawerLayout? drawerLayout; + property public final androidx.navigation.ui.AppBarConfiguration.OnNavigateUpListener? fallbackOnNavigateUpListener; + property public final androidx.customview.widget.Openable? openableLayout; + property public final java.util.Set topLevelDestinations; + } + + public static final class AppBarConfiguration.Builder { + ctor public AppBarConfiguration.Builder(android.view.Menu topLevelMenu); + ctor public AppBarConfiguration.Builder(androidx.navigation.NavGraph navGraph); + ctor public AppBarConfiguration.Builder(int... topLevelDestinationIds); + ctor public AppBarConfiguration.Builder(java.util.Set topLevelDestinationIds); + method public androidx.navigation.ui.AppBarConfiguration build(); + method @Deprecated public androidx.navigation.ui.AppBarConfiguration.Builder setDrawerLayout(androidx.drawerlayout.widget.DrawerLayout? drawerLayout); + method public androidx.navigation.ui.AppBarConfiguration.Builder setFallbackOnNavigateUpListener(androidx.navigation.ui.AppBarConfiguration.OnNavigateUpListener? fallbackOnNavigateUpListener); + method public androidx.navigation.ui.AppBarConfiguration.Builder setOpenableLayout(androidx.customview.widget.Openable? openableLayout); + } + + public static fun interface AppBarConfiguration.OnNavigateUpListener { + method public boolean onNavigateUp(); + } + + public final class AppBarConfigurationKt { + method public static inline androidx.navigation.ui.AppBarConfiguration AppBarConfiguration(android.view.Menu topLevelMenu, optional androidx.customview.widget.Openable? drawerLayout, optional kotlin.jvm.functions.Function0 fallbackOnNavigateUpListener); + method public static inline androidx.navigation.ui.AppBarConfiguration AppBarConfiguration(androidx.navigation.NavGraph navGraph, optional androidx.customview.widget.Openable? drawerLayout, optional kotlin.jvm.functions.Function0 fallbackOnNavigateUpListener); + method public static inline androidx.navigation.ui.AppBarConfiguration AppBarConfiguration(java.util.Set topLevelDestinationIds, optional androidx.customview.widget.Openable? drawerLayout, optional kotlin.jvm.functions.Function0 fallbackOnNavigateUpListener); + } + + public final class BottomNavigationViewKt { + method public static void setupWithNavController(com.google.android.material.navigation.NavigationBarView, androidx.navigation.NavController navController); + } + + public final class CollapsingToolbarLayoutKt { + method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, androidx.drawerlayout.widget.DrawerLayout? drawerLayout); + method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration); + } + + public final class MenuItemKt { + method public static boolean onNavDestinationSelected(android.view.MenuItem, androidx.navigation.NavController navController); + } + + public final class NavControllerKt { + method public static boolean navigateUp(androidx.navigation.NavController, androidx.customview.widget.Openable? drawerLayout); + method public static boolean navigateUp(androidx.navigation.NavController, androidx.navigation.ui.AppBarConfiguration appBarConfiguration); + } + + public final class NavigationUI { + method public static boolean navigateUp(androidx.navigation.NavController navController, androidx.customview.widget.Openable? openableLayout); + method public static boolean navigateUp(androidx.navigation.NavController navController, androidx.navigation.ui.AppBarConfiguration configuration); + method public static boolean onNavDestinationSelected(android.view.MenuItem item, androidx.navigation.NavController navController); + method @SuppressCompatibility @androidx.navigation.ui.NavigationUiSaveStateControl public static boolean onNavDestinationSelected(android.view.MenuItem item, androidx.navigation.NavController navController, boolean saveState); + method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity activity, androidx.navigation.NavController navController); + method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity activity, androidx.navigation.NavController navController, androidx.customview.widget.Openable? openableLayout); + method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity activity, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration); + method public static void setupWithNavController(androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController); + method public static void setupWithNavController(androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, androidx.customview.widget.Openable? openableLayout); + method public static void setupWithNavController(androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration); + method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout collapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController); + method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout collapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, androidx.customview.widget.Openable? openableLayout); + method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout collapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration); + method public static void setupWithNavController(com.google.android.material.navigation.NavigationBarView navigationBarView, androidx.navigation.NavController navController); + method @SuppressCompatibility @androidx.navigation.ui.NavigationUiSaveStateControl public static void setupWithNavController(com.google.android.material.navigation.NavigationBarView navigationBarView, androidx.navigation.NavController navController, boolean saveState); + method public static void setupWithNavController(com.google.android.material.navigation.NavigationView navigationView, androidx.navigation.NavController navController); + method @SuppressCompatibility @androidx.navigation.ui.NavigationUiSaveStateControl public static void setupWithNavController(com.google.android.material.navigation.NavigationView navigationView, androidx.navigation.NavController navController, boolean saveState); + field public static final androidx.navigation.ui.NavigationUI INSTANCE; + } + + @SuppressCompatibility @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.WARNING) @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.FUNCTION) public @interface NavigationUiSaveStateControl { + } + + public final class NavigationViewKt { + method public static void setupWithNavController(com.google.android.material.navigation.NavigationView, androidx.navigation.NavController navController); + } + + public final class ToolbarKt { + method public static void setupWithNavController(androidx.appcompat.widget.Toolbar, androidx.navigation.NavController navController, androidx.drawerlayout.widget.DrawerLayout? drawerLayout); + method public static void setupWithNavController(androidx.appcompat.widget.Toolbar, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration); + } + +} + diff --git a/navigation/navigation-ui/build.gradle b/navigation/navigation-ui/build.gradle index baa2420f9528e..ab3978bb58ef2 100644 --- a/navigation/navigation-ui/build.gradle +++ b/navigation/navigation-ui/build.gradle @@ -42,7 +42,7 @@ dependencies { api("androidx.drawerlayout:drawerlayout:1.1.1") api("com.google.android.material:material:1.4.0") implementation("androidx.transition:transition:1.3.0") - api("androidx.annotation:annotation-experimental:1.4.0") + api("androidx.annotation:annotation-experimental:1.4.1") androidTestImplementation(project(":internal-testutils-navigation"), { exclude group: "androidx.navigation", module: "navigation-common" @@ -60,6 +60,5 @@ androidx { type = LibraryType.PUBLISHED_LIBRARY inceptionYear = "2018" description = "Android Navigation-UI" - metalavaK2UastEnabled = true legacyDisableKotlinStrictApiMode = true } diff --git a/savedstate/savedstate/src/jvmMain/kotlin/androidx/savedstate/Recreator.jvm.kt b/savedstate/savedstate/src/jvmMain/kotlin/androidx/savedstate/Recreator.jvm.kt index 72372436aea4f..a4c0140531c05 100644 --- a/savedstate/savedstate/src/jvmMain/kotlin/androidx/savedstate/Recreator.jvm.kt +++ b/savedstate/savedstate/src/jvmMain/kotlin/androidx/savedstate/Recreator.jvm.kt @@ -32,13 +32,13 @@ internal class Recreator( source.lifecycle.removeObserver(this) val bundle: Bundle = owner.savedStateRegistry .consumeRestoredStateForKey(COMPONENT_KEY) ?: return - val classes: MutableList = bundle.getStringArrayList(CLASSES_KEY) + val classes = bundle.getStringArrayList(CLASSES_KEY) ?: throw IllegalStateException( "Bundle with restored state for the component " + "\"$COMPONENT_KEY\" must contain list of strings by the key " + "\"$CLASSES_KEY\"" ) - for (className: String in classes) { + for (className in classes.filterNotNull()) { reflectiveNew(className) } }