Add JvmDefaultWithCompatibility for default params in compose
Generate DefaultImpls for previously released interfaces that had
default parameters
Test: existing tests
Change-Id: Ie868d0ed52b8c0044e8ab32485fa3018b5da525a
diff --git a/compose/animation/animation/api/current.txt b/compose/animation/animation/api/current.txt
index 4f8ad04..ffba6d1 100644
--- a/compose/animation/animation/api/current.txt
+++ b/compose/animation/animation/api/current.txt
@@ -17,7 +17,7 @@
method @androidx.compose.runtime.Composable public static void AnimatedVisibility(androidx.compose.foundation.layout.ColumnScope, androidx.compose.animation.core.MutableTransitionState<java.lang.Boolean> 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<? super androidx.compose.animation.AnimatedVisibilityScope,kotlin.Unit> content);
}
- public interface AnimatedVisibilityScope {
+ @kotlin.jvm.JvmDefaultWithCompatibility public interface AnimatedVisibilityScope {
}
public final class AnimationModifierKt {
diff --git a/compose/animation/animation/api/public_plus_experimental_current.txt b/compose/animation/animation/api/public_plus_experimental_current.txt
index e7765d0..f261db5 100644
--- a/compose/animation/animation/api/public_plus_experimental_current.txt
+++ b/compose/animation/animation/api/public_plus_experimental_current.txt
@@ -52,7 +52,7 @@
method @Deprecated @androidx.compose.animation.ExperimentalAnimationApi @androidx.compose.runtime.Composable public static void AnimatedVisibility(boolean visible, optional androidx.compose.ui.Modifier modifier, androidx.compose.animation.EnterTransition enter, androidx.compose.animation.ExitTransition exit, boolean initiallyVisible, kotlin.jvm.functions.Function0<kotlin.Unit> content);
}
- public interface AnimatedVisibilityScope {
+ @kotlin.jvm.JvmDefaultWithCompatibility public interface AnimatedVisibilityScope {
method @androidx.compose.animation.ExperimentalAnimationApi 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 @androidx.compose.animation.ExperimentalAnimationApi public androidx.compose.animation.core.Transition<androidx.compose.animation.EnterExitState> getTransition();
property @androidx.compose.animation.ExperimentalAnimationApi public abstract androidx.compose.animation.core.Transition<androidx.compose.animation.EnterExitState> transition;
diff --git a/compose/animation/animation/api/restricted_current.txt b/compose/animation/animation/api/restricted_current.txt
index 4f8ad04..ffba6d1 100644
--- a/compose/animation/animation/api/restricted_current.txt
+++ b/compose/animation/animation/api/restricted_current.txt
@@ -17,7 +17,7 @@
method @androidx.compose.runtime.Composable public static void AnimatedVisibility(androidx.compose.foundation.layout.ColumnScope, androidx.compose.animation.core.MutableTransitionState<java.lang.Boolean> 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<? super androidx.compose.animation.AnimatedVisibilityScope,kotlin.Unit> content);
}
- public interface AnimatedVisibilityScope {
+ @kotlin.jvm.JvmDefaultWithCompatibility public interface AnimatedVisibilityScope {
}
public final class AnimationModifierKt {
diff --git a/compose/animation/animation/src/commonMain/kotlin/androidx/compose/animation/AnimatedVisibility.kt b/compose/animation/animation/src/commonMain/kotlin/androidx/compose/animation/AnimatedVisibility.kt
index a51d34f..36a0135 100644
--- a/compose/animation/animation/src/commonMain/kotlin/androidx/compose/animation/AnimatedVisibility.kt
+++ b/compose/animation/animation/src/commonMain/kotlin/androidx/compose/animation/AnimatedVisibility.kt
@@ -50,6 +50,7 @@
import androidx.compose.ui.util.fastForEach
import androidx.compose.ui.util.fastMaxBy
import kotlinx.coroutines.flow.collect
+import kotlin.jvm.JvmDefaultWithCompatibility
/**
* [AnimatedVisibility] composable animates the appearance and disappearance of its content, as
@@ -619,6 +620,7 @@
*
* @sample androidx.compose.animation.samples.AVScopeAnimateEnterExit
*/
+@JvmDefaultWithCompatibility
interface AnimatedVisibilityScope {
/**
* [transition] allows custom enter/exit animations to be specified. It will run simultaneously
diff --git a/compose/foundation/foundation/api/current.txt b/compose/foundation/foundation/api/current.txt
index fd0ed40..eb9609b 100644
--- a/compose/foundation/foundation/api/current.txt
+++ b/compose/foundation/foundation/api/current.txt
@@ -188,7 +188,7 @@
method @androidx.compose.runtime.Composable public static androidx.compose.foundation.gestures.DraggableState rememberDraggableState(kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onDelta);
}
- public interface DraggableState {
+ @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<? super androidx.compose.foundation.gestures.DragScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block, kotlin.coroutines.Continuation<? super kotlin.Unit>);
}
@@ -234,7 +234,7 @@
method 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);
}
- public interface ScrollableState {
+ @kotlin.jvm.JvmDefaultWithCompatibility public interface ScrollableState {
method public float dispatchRawDelta(float delta);
method public boolean isScrollInProgress();
method public suspend Object? scroll(optional androidx.compose.foundation.MutatePriority scrollPriority, kotlin.jvm.functions.Function2<? super androidx.compose.foundation.gestures.ScrollScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block, kotlin.coroutines.Continuation<? super kotlin.Unit>);
@@ -261,7 +261,7 @@
method public static suspend Object? detectTransformGestures(androidx.compose.ui.input.pointer.PointerInputScope, optional boolean panZoomLock, kotlin.jvm.functions.Function4<? super androidx.compose.ui.geometry.Offset,? super androidx.compose.ui.geometry.Offset,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> onGesture, kotlin.coroutines.Continuation<? super kotlin.Unit>);
}
- public interface TransformScope {
+ @kotlin.jvm.JvmDefaultWithCompatibility public interface TransformScope {
method public void transformBy(optional float zoomChange, optional long panChange, optional float rotationChange);
}
@@ -269,7 +269,7 @@
method public static androidx.compose.ui.Modifier transformable(androidx.compose.ui.Modifier, androidx.compose.foundation.gestures.TransformableState state, optional boolean lockRotationOnZoomPan, optional boolean enabled);
}
- public interface TransformableState {
+ @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<? super androidx.compose.foundation.gestures.TransformScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block, kotlin.coroutines.Continuation<? super kotlin.Unit>);
property public abstract boolean isTransformInProgress;
@@ -412,7 +412,7 @@
method @Deprecated public static inline <T> void itemsIndexed(androidx.compose.foundation.lazy.LazyListScope, T![] items, optional kotlin.jvm.functions.Function2<? super java.lang.Integer,? super T,?>? key, kotlin.jvm.functions.Function3<? super androidx.compose.foundation.lazy.LazyItemScope,? super java.lang.Integer,? super T,? extends kotlin.Unit> itemContent);
}
- @androidx.compose.foundation.lazy.LazyScopeMarker @androidx.compose.runtime.Stable public interface LazyItemScope {
+ @androidx.compose.foundation.lazy.LazyScopeMarker @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface LazyItemScope {
method public androidx.compose.ui.Modifier fillParentMaxHeight(androidx.compose.ui.Modifier, optional float fraction);
method public androidx.compose.ui.Modifier fillParentMaxSize(androidx.compose.ui.Modifier, optional float fraction);
method public androidx.compose.ui.Modifier fillParentMaxWidth(androidx.compose.ui.Modifier, optional float fraction);
@@ -441,7 +441,7 @@
public final class LazyListKt {
}
- public interface LazyListLayoutInfo {
+ @kotlin.jvm.JvmDefaultWithCompatibility public interface LazyListLayoutInfo {
method public default int getAfterContentPadding();
method public default int getBeforeContentPadding();
method public default androidx.compose.foundation.gestures.Orientation getOrientation();
@@ -468,7 +468,7 @@
public final class LazyListPinningModifierKt {
}
- @androidx.compose.foundation.lazy.LazyScopeMarker public interface LazyListScope {
+ @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<? super androidx.compose.foundation.lazy.LazyItemScope,kotlin.Unit> content);
method @Deprecated public void item(optional Object? key, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.lazy.LazyItemScope,? extends kotlin.Unit> content);
method public default void items(int count, optional kotlin.jvm.functions.Function1<? super java.lang.Integer,?>? key, optional kotlin.jvm.functions.Function1<? super java.lang.Integer,?> contentType, kotlin.jvm.functions.Function2<? super androidx.compose.foundation.lazy.LazyItemScope,? super java.lang.Integer,kotlin.Unit> itemContent);
diff --git a/compose/foundation/foundation/api/public_plus_experimental_current.txt b/compose/foundation/foundation/api/public_plus_experimental_current.txt
index 128d189..405623a 100644
--- a/compose/foundation/foundation/api/public_plus_experimental_current.txt
+++ b/compose/foundation/foundation/api/public_plus_experimental_current.txt
@@ -241,7 +241,7 @@
method @androidx.compose.runtime.Composable public static androidx.compose.foundation.gestures.DraggableState rememberDraggableState(kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onDelta);
}
- public interface DraggableState {
+ @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<? super androidx.compose.foundation.gestures.DragScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block, kotlin.coroutines.Continuation<? super kotlin.Unit>);
}
@@ -289,7 +289,7 @@
method @androidx.compose.foundation.ExperimentalFoundationApi 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);
}
- public interface ScrollableState {
+ @kotlin.jvm.JvmDefaultWithCompatibility public interface ScrollableState {
method public float dispatchRawDelta(float delta);
method public boolean isScrollInProgress();
method public suspend Object? scroll(optional androidx.compose.foundation.MutatePriority scrollPriority, kotlin.jvm.functions.Function2<? super androidx.compose.foundation.gestures.ScrollScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block, kotlin.coroutines.Continuation<? super kotlin.Unit>);
@@ -316,7 +316,7 @@
method public static suspend Object? detectTransformGestures(androidx.compose.ui.input.pointer.PointerInputScope, optional boolean panZoomLock, kotlin.jvm.functions.Function4<? super androidx.compose.ui.geometry.Offset,? super androidx.compose.ui.geometry.Offset,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> onGesture, kotlin.coroutines.Continuation<? super kotlin.Unit>);
}
- public interface TransformScope {
+ @kotlin.jvm.JvmDefaultWithCompatibility public interface TransformScope {
method public void transformBy(optional float zoomChange, optional long panChange, optional float rotationChange);
}
@@ -324,7 +324,7 @@
method public static androidx.compose.ui.Modifier transformable(androidx.compose.ui.Modifier, androidx.compose.foundation.gestures.TransformableState state, optional boolean lockRotationOnZoomPan, optional boolean enabled);
}
- public interface TransformableState {
+ @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<? super androidx.compose.foundation.gestures.TransformScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block, kotlin.coroutines.Continuation<? super kotlin.Unit>);
property public abstract boolean isTransformInProgress;
@@ -467,7 +467,7 @@
method @Deprecated public static inline <T> void itemsIndexed(androidx.compose.foundation.lazy.LazyListScope, T![] items, optional kotlin.jvm.functions.Function2<? super java.lang.Integer,? super T,?>? key, kotlin.jvm.functions.Function3<? super androidx.compose.foundation.lazy.LazyItemScope,? super java.lang.Integer,? super T,? extends kotlin.Unit> itemContent);
}
- @androidx.compose.foundation.lazy.LazyScopeMarker @androidx.compose.runtime.Stable public interface LazyItemScope {
+ @androidx.compose.foundation.lazy.LazyScopeMarker @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface LazyItemScope {
method @androidx.compose.foundation.ExperimentalFoundationApi public androidx.compose.ui.Modifier animateItemPlacement(androidx.compose.ui.Modifier, optional androidx.compose.animation.core.FiniteAnimationSpec<androidx.compose.ui.unit.IntOffset> animationSpec);
method public androidx.compose.ui.Modifier fillParentMaxHeight(androidx.compose.ui.Modifier, optional float fraction);
method public androidx.compose.ui.Modifier fillParentMaxSize(androidx.compose.ui.Modifier, optional float fraction);
@@ -497,7 +497,7 @@
public final class LazyListKt {
}
- public interface LazyListLayoutInfo {
+ @kotlin.jvm.JvmDefaultWithCompatibility public interface LazyListLayoutInfo {
method public default int getAfterContentPadding();
method public default int getBeforeContentPadding();
method public default androidx.compose.foundation.gestures.Orientation getOrientation();
@@ -524,7 +524,7 @@
public final class LazyListPinningModifierKt {
}
- @androidx.compose.foundation.lazy.LazyScopeMarker public interface LazyListScope {
+ @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<? super androidx.compose.foundation.lazy.LazyItemScope,kotlin.Unit> content);
method @Deprecated public void item(optional Object? key, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.lazy.LazyItemScope,? extends kotlin.Unit> content);
method public default void items(int count, optional kotlin.jvm.functions.Function1<? super java.lang.Integer,?>? key, optional kotlin.jvm.functions.Function1<? super java.lang.Integer,?> contentType, kotlin.jvm.functions.Function2<? super androidx.compose.foundation.lazy.LazyItemScope,? super java.lang.Integer,kotlin.Unit> itemContent);
diff --git a/compose/foundation/foundation/api/restricted_current.txt b/compose/foundation/foundation/api/restricted_current.txt
index fd0ed40..eb9609b 100644
--- a/compose/foundation/foundation/api/restricted_current.txt
+++ b/compose/foundation/foundation/api/restricted_current.txt
@@ -188,7 +188,7 @@
method @androidx.compose.runtime.Composable public static androidx.compose.foundation.gestures.DraggableState rememberDraggableState(kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onDelta);
}
- public interface DraggableState {
+ @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<? super androidx.compose.foundation.gestures.DragScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block, kotlin.coroutines.Continuation<? super kotlin.Unit>);
}
@@ -234,7 +234,7 @@
method 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);
}
- public interface ScrollableState {
+ @kotlin.jvm.JvmDefaultWithCompatibility public interface ScrollableState {
method public float dispatchRawDelta(float delta);
method public boolean isScrollInProgress();
method public suspend Object? scroll(optional androidx.compose.foundation.MutatePriority scrollPriority, kotlin.jvm.functions.Function2<? super androidx.compose.foundation.gestures.ScrollScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block, kotlin.coroutines.Continuation<? super kotlin.Unit>);
@@ -261,7 +261,7 @@
method public static suspend Object? detectTransformGestures(androidx.compose.ui.input.pointer.PointerInputScope, optional boolean panZoomLock, kotlin.jvm.functions.Function4<? super androidx.compose.ui.geometry.Offset,? super androidx.compose.ui.geometry.Offset,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> onGesture, kotlin.coroutines.Continuation<? super kotlin.Unit>);
}
- public interface TransformScope {
+ @kotlin.jvm.JvmDefaultWithCompatibility public interface TransformScope {
method public void transformBy(optional float zoomChange, optional long panChange, optional float rotationChange);
}
@@ -269,7 +269,7 @@
method public static androidx.compose.ui.Modifier transformable(androidx.compose.ui.Modifier, androidx.compose.foundation.gestures.TransformableState state, optional boolean lockRotationOnZoomPan, optional boolean enabled);
}
- public interface TransformableState {
+ @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<? super androidx.compose.foundation.gestures.TransformScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block, kotlin.coroutines.Continuation<? super kotlin.Unit>);
property public abstract boolean isTransformInProgress;
@@ -412,7 +412,7 @@
method @Deprecated public static inline <T> void itemsIndexed(androidx.compose.foundation.lazy.LazyListScope, T![] items, optional kotlin.jvm.functions.Function2<? super java.lang.Integer,? super T,?>? key, kotlin.jvm.functions.Function3<? super androidx.compose.foundation.lazy.LazyItemScope,? super java.lang.Integer,? super T,? extends kotlin.Unit> itemContent);
}
- @androidx.compose.foundation.lazy.LazyScopeMarker @androidx.compose.runtime.Stable public interface LazyItemScope {
+ @androidx.compose.foundation.lazy.LazyScopeMarker @androidx.compose.runtime.Stable @kotlin.jvm.JvmDefaultWithCompatibility public interface LazyItemScope {
method public androidx.compose.ui.Modifier fillParentMaxHeight(androidx.compose.ui.Modifier, optional float fraction);
method public androidx.compose.ui.Modifier fillParentMaxSize(androidx.compose.ui.Modifier, optional float fraction);
method public androidx.compose.ui.Modifier fillParentMaxWidth(androidx.compose.ui.Modifier, optional float fraction);
@@ -441,7 +441,7 @@
public final class LazyListKt {
}
- public interface LazyListLayoutInfo {
+ @kotlin.jvm.JvmDefaultWithCompatibility public interface LazyListLayoutInfo {
method public default int getAfterContentPadding();
method public default int getBeforeContentPadding();
method public default androidx.compose.foundation.gestures.Orientation getOrientation();
@@ -468,7 +468,7 @@
public final class LazyListPinningModifierKt {
}
- @androidx.compose.foundation.lazy.LazyScopeMarker public interface LazyListScope {
+ @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<? super androidx.compose.foundation.lazy.LazyItemScope,kotlin.Unit> content);
method @Deprecated public void item(optional Object? key, kotlin.jvm.functions.Function1<? super androidx.compose.foundation.lazy.LazyItemScope,? extends kotlin.Unit> content);
method public default void items(int count, optional kotlin.jvm.functions.Function1<? super java.lang.Integer,?>? key, optional kotlin.jvm.functions.Function1<? super java.lang.Integer,?> contentType, kotlin.jvm.functions.Function2<? super androidx.compose.foundation.lazy.LazyItemScope,? super java.lang.Integer,kotlin.Unit> itemContent);
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 54c7b3e..3ff4450 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
@@ -52,11 +52,13 @@
import kotlinx.coroutines.channels.SendChannel
import kotlinx.coroutines.coroutineScope
import kotlinx.coroutines.isActive
+import kotlin.jvm.JvmDefaultWithCompatibility
/**
* State of [draggable]. Allows for a granular control of how deltas are consumed by the user as
* well as to write custom drag methods using [drag] suspend function.
*/
+@JvmDefaultWithCompatibility
interface DraggableState {
/**
* Call this function to take control of drag logic.
diff --git a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/ScrollableState.kt b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/ScrollableState.kt
index 427aefc..74fa3cf 100644
--- a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/ScrollableState.kt
+++ b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/ScrollableState.kt
@@ -23,6 +23,7 @@
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberUpdatedState
import kotlinx.coroutines.coroutineScope
+import kotlin.jvm.JvmDefaultWithCompatibility
/**
* An object representing something that can be scrolled. This interface is implemented by states
@@ -38,6 +39,7 @@
* @see androidx.compose.foundation.gestures.animateScrollBy
* @see androidx.compose.foundation.gestures.scrollable
*/
+@JvmDefaultWithCompatibility
interface ScrollableState {
/**
* Call this function to take control of scrolling and gain the ability to send scroll events
diff --git a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/TransformableState.kt b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/TransformableState.kt
index 1e5d2b7..8c1e91a 100644
--- a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/TransformableState.kt
+++ b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/TransformableState.kt
@@ -30,12 +30,14 @@
import androidx.compose.runtime.rememberUpdatedState
import androidx.compose.ui.geometry.Offset
import kotlinx.coroutines.coroutineScope
+import kotlin.jvm.JvmDefaultWithCompatibility
/**
* State of [transformable]. Allows for a granular control of how different gesture
* transformations are consumed by the user as well as to write custom transformation methods
* using [transform] suspend function.
*/
+@JvmDefaultWithCompatibility
interface TransformableState {
/**
* Call this function to take control of transformations and gain the ability to send transform
@@ -61,6 +63,7 @@
/**
* Scope used for suspending transformation operations
*/
+@JvmDefaultWithCompatibility
interface TransformScope {
/**
* Attempts to transform by [zoomChange] in relative multiplied value, by [panChange] in
diff --git a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyDsl.kt b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyDsl.kt
index da7d2ac..ec8ca7e 100644
--- a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyDsl.kt
+++ b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyDsl.kt
@@ -25,11 +25,13 @@
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
+import kotlin.jvm.JvmDefaultWithCompatibility
/**
* Receiver scope which is used by [LazyColumn] and [LazyRow].
*/
@LazyScopeMarker
+@JvmDefaultWithCompatibility
interface LazyListScope {
/**
* Adds a single item.
diff --git a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyItemScope.kt b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyItemScope.kt
index fc68dfe..90a5c6d 100644
--- a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyItemScope.kt
+++ b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyItemScope.kt
@@ -25,12 +25,14 @@
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.Constraints
import androidx.compose.ui.unit.IntOffset
+import kotlin.jvm.JvmDefaultWithCompatibility
/**
* Receiver scope being used by the item content parameter of LazyColumn/Row.
*/
@Stable
@LazyScopeMarker
+@JvmDefaultWithCompatibility
interface LazyItemScope {
/**
* Have the content fill the [Constraints.maxWidth] and [Constraints.maxHeight] of the parent
diff --git a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyListLayoutInfo.kt b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyListLayoutInfo.kt
index 6d96cfb..ab03e0e 100644
--- a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyListLayoutInfo.kt
+++ b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyListLayoutInfo.kt
@@ -18,6 +18,7 @@
import androidx.compose.foundation.gestures.Orientation
import androidx.compose.ui.unit.IntSize
+import kotlin.jvm.JvmDefaultWithCompatibility
/**
* Contains useful information about the currently displayed layout state of lazy lists like
@@ -25,6 +26,7 @@
*
* Use [LazyListState.layoutInfo] to retrieve this
*/
+@JvmDefaultWithCompatibility
interface LazyListLayoutInfo {
/**
* The list of [LazyListItemInfo] representing all the currently visible items.
diff --git a/compose/runtime/runtime/api/current.txt b/compose/runtime/runtime/api/current.txt
index 6e6e8862..67e47e4 100644
--- a/compose/runtime/runtime/api/current.txt
+++ b/compose/runtime/runtime/api/current.txt
@@ -946,7 +946,7 @@
property public abstract boolean isEmpty;
}
- public interface CompositionGroup extends androidx.compose.runtime.tooling.CompositionData {
+ @kotlin.jvm.JvmDefaultWithCompatibility public interface CompositionGroup extends androidx.compose.runtime.tooling.CompositionData {
method public Iterable<java.lang.Object> getData();
method public default Object? getIdentity();
method public Object getKey();
diff --git a/compose/runtime/runtime/api/public_plus_experimental_current.txt b/compose/runtime/runtime/api/public_plus_experimental_current.txt
index 0f4eed9..192802e 100644
--- a/compose/runtime/runtime/api/public_plus_experimental_current.txt
+++ b/compose/runtime/runtime/api/public_plus_experimental_current.txt
@@ -1022,7 +1022,7 @@
property public abstract boolean isEmpty;
}
- public interface CompositionGroup extends androidx.compose.runtime.tooling.CompositionData {
+ @kotlin.jvm.JvmDefaultWithCompatibility public interface CompositionGroup extends androidx.compose.runtime.tooling.CompositionData {
method public Iterable<java.lang.Object> getData();
method public default Object? getIdentity();
method public Object getKey();
diff --git a/compose/runtime/runtime/api/restricted_current.txt b/compose/runtime/runtime/api/restricted_current.txt
index f6951b7..72d5a5a 100644
--- a/compose/runtime/runtime/api/restricted_current.txt
+++ b/compose/runtime/runtime/api/restricted_current.txt
@@ -985,7 +985,7 @@
property public abstract boolean isEmpty;
}
- public interface CompositionGroup extends androidx.compose.runtime.tooling.CompositionData {
+ @kotlin.jvm.JvmDefaultWithCompatibility public interface CompositionGroup extends androidx.compose.runtime.tooling.CompositionData {
method public Iterable<java.lang.Object> getData();
method public default Object? getIdentity();
method public Object getKey();
diff --git a/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/tooling/CompositionData.kt b/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/tooling/CompositionData.kt
index 2e86a1d..a54f4e6 100644
--- a/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/tooling/CompositionData.kt
+++ b/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/tooling/CompositionData.kt
@@ -16,6 +16,8 @@
package androidx.compose.runtime.tooling
+import kotlin.jvm.JvmDefaultWithCompatibility
+
/**
* A [CompositionData] is the data tracked by the composer during composition.
*
@@ -48,6 +50,7 @@
* have access to data tracked during composition. The tools API should be used instead which
* provides a more usable interpretation of the slot table.
*/
+@JvmDefaultWithCompatibility
interface CompositionGroup : CompositionData {
/**
* A value used to identify the group within its siblings and is typically a compiler
diff --git a/compose/ui/ui-graphics/api/current.txt b/compose/ui/ui-graphics/api/current.txt
index 2fabc04..efe0b24 100644
--- a/compose/ui/ui-graphics/api/current.txt
+++ b/compose/ui/ui-graphics/api/current.txt
@@ -417,7 +417,7 @@
public final class Float16Kt {
}
- public interface ImageBitmap {
+ @kotlin.jvm.JvmDefaultWithCompatibility public interface ImageBitmap {
method public androidx.compose.ui.graphics.colorspace.ColorSpace getColorSpace();
method public int getConfig();
method public boolean getHasAlpha();
@@ -662,7 +662,7 @@
property public final int NonZero;
}
- public interface PathMeasure {
+ @kotlin.jvm.JvmDefaultWithCompatibility public interface PathMeasure {
method public float getLength();
method public boolean getSegment(float startDistance, float stopDistance, androidx.compose.ui.graphics.Path destination, optional boolean startWithMoveTo);
method public void setPath(androidx.compose.ui.graphics.Path? path, boolean forceClosed);
diff --git a/compose/ui/ui-graphics/api/public_plus_experimental_current.txt b/compose/ui/ui-graphics/api/public_plus_experimental_current.txt
index 7e95ddb..c89fc9a 100644
--- a/compose/ui/ui-graphics/api/public_plus_experimental_current.txt
+++ b/compose/ui/ui-graphics/api/public_plus_experimental_current.txt
@@ -420,7 +420,7 @@
public final class Float16Kt {
}
- public interface ImageBitmap {
+ @kotlin.jvm.JvmDefaultWithCompatibility public interface ImageBitmap {
method public androidx.compose.ui.graphics.colorspace.ColorSpace getColorSpace();
method public int getConfig();
method public boolean getHasAlpha();
@@ -665,7 +665,7 @@
property public final int NonZero;
}
- public interface PathMeasure {
+ @kotlin.jvm.JvmDefaultWithCompatibility public interface PathMeasure {
method public float getLength();
method public boolean getSegment(float startDistance, float stopDistance, androidx.compose.ui.graphics.Path destination, optional boolean startWithMoveTo);
method public void setPath(androidx.compose.ui.graphics.Path? path, boolean forceClosed);
diff --git a/compose/ui/ui-graphics/api/restricted_current.txt b/compose/ui/ui-graphics/api/restricted_current.txt
index c863688..751e973 100644
--- a/compose/ui/ui-graphics/api/restricted_current.txt
+++ b/compose/ui/ui-graphics/api/restricted_current.txt
@@ -449,7 +449,7 @@
public final class Float16Kt {
}
- public interface ImageBitmap {
+ @kotlin.jvm.JvmDefaultWithCompatibility public interface ImageBitmap {
method public androidx.compose.ui.graphics.colorspace.ColorSpace getColorSpace();
method public int getConfig();
method public boolean getHasAlpha();
@@ -694,7 +694,7 @@
property public final int NonZero;
}
- public interface PathMeasure {
+ @kotlin.jvm.JvmDefaultWithCompatibility public interface PathMeasure {
method public float getLength();
method public boolean getSegment(float startDistance, float stopDistance, androidx.compose.ui.graphics.Path destination, optional boolean startWithMoveTo);
method public void setPath(androidx.compose.ui.graphics.Path? path, boolean forceClosed);
diff --git a/compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/ImageBitmap.kt b/compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/ImageBitmap.kt
index da4fb06..63b6aa6 100644
--- a/compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/ImageBitmap.kt
+++ b/compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/ImageBitmap.kt
@@ -19,11 +19,13 @@
import androidx.compose.runtime.Immutable
import androidx.compose.ui.graphics.colorspace.ColorSpace
import androidx.compose.ui.graphics.colorspace.ColorSpaces
+import kotlin.jvm.JvmDefaultWithCompatibility
/**
* Graphics object that represents a 2 dimensional array of pixel information represented
* as ARGB values
*/
+@JvmDefaultWithCompatibility
interface ImageBitmap {
/** The number of image pixels along the ImageBitmap's horizontal axis. */
diff --git a/compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/PathMeasure.kt b/compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/PathMeasure.kt
index 807dcf0..e9d4362 100644
--- a/compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/PathMeasure.kt
+++ b/compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/PathMeasure.kt
@@ -16,6 +16,8 @@
package androidx.compose.ui.graphics
+import kotlin.jvm.JvmDefaultWithCompatibility
+
/**
* Create an empty [PathMeasure] object. To uses this to measure the length of a path, and/or to
* find the position and tangent along it, call [PathMeasure.setPath]. Note that once a path is
@@ -25,6 +27,7 @@
*/
expect fun PathMeasure(): PathMeasure
+@JvmDefaultWithCompatibility
interface PathMeasure {
/**
diff --git a/compose/ui/ui-test-junit4/api/current.txt b/compose/ui/ui-test-junit4/api/current.txt
index bc83830..d69e7e0 100644
--- a/compose/ui/ui-test-junit4/api/current.txt
+++ b/compose/ui/ui-test-junit4/api/current.txt
@@ -49,7 +49,7 @@
public final class AndroidSynchronization_androidKt {
}
- public interface ComposeContentTestRule extends androidx.compose.ui.test.junit4.ComposeTestRule {
+ @kotlin.jvm.JvmDefaultWithCompatibility public interface ComposeContentTestRule extends androidx.compose.ui.test.junit4.ComposeTestRule {
method public void setContent(kotlin.jvm.functions.Function0<kotlin.Unit> composable);
}
@@ -59,7 +59,7 @@
public final class ComposeRootRegistry_androidKt {
}
- public interface ComposeTestRule extends org.junit.rules.TestRule androidx.compose.ui.test.SemanticsNodeInteractionsProvider {
+ @kotlin.jvm.JvmDefaultWithCompatibility public interface ComposeTestRule extends org.junit.rules.TestRule androidx.compose.ui.test.SemanticsNodeInteractionsProvider {
method public suspend Object? awaitIdle(kotlin.coroutines.Continuation<? super kotlin.Unit>);
method public androidx.compose.ui.unit.Density getDensity();
method public androidx.compose.ui.test.MainTestClock getMainClock();
diff --git a/compose/ui/ui-test-junit4/api/public_plus_experimental_current.txt b/compose/ui/ui-test-junit4/api/public_plus_experimental_current.txt
index 7d11b78..97512e2 100644
--- a/compose/ui/ui-test-junit4/api/public_plus_experimental_current.txt
+++ b/compose/ui/ui-test-junit4/api/public_plus_experimental_current.txt
@@ -90,7 +90,7 @@
public final class AndroidSynchronization_androidKt {
}
- public interface ComposeContentTestRule extends androidx.compose.ui.test.junit4.ComposeTestRule {
+ @kotlin.jvm.JvmDefaultWithCompatibility public interface ComposeContentTestRule extends androidx.compose.ui.test.junit4.ComposeTestRule {
method public void setContent(kotlin.jvm.functions.Function0<kotlin.Unit> composable);
}
@@ -100,7 +100,7 @@
public final class ComposeRootRegistry_androidKt {
}
- public interface ComposeTestRule extends org.junit.rules.TestRule androidx.compose.ui.test.SemanticsNodeInteractionsProvider {
+ @kotlin.jvm.JvmDefaultWithCompatibility public interface ComposeTestRule extends org.junit.rules.TestRule androidx.compose.ui.test.SemanticsNodeInteractionsProvider {
method public suspend Object? awaitIdle(kotlin.coroutines.Continuation<? super kotlin.Unit>);
method public androidx.compose.ui.unit.Density getDensity();
method public androidx.compose.ui.test.MainTestClock getMainClock();
diff --git a/compose/ui/ui-test-junit4/api/restricted_current.txt b/compose/ui/ui-test-junit4/api/restricted_current.txt
index bc83830..d69e7e0 100644
--- a/compose/ui/ui-test-junit4/api/restricted_current.txt
+++ b/compose/ui/ui-test-junit4/api/restricted_current.txt
@@ -49,7 +49,7 @@
public final class AndroidSynchronization_androidKt {
}
- public interface ComposeContentTestRule extends androidx.compose.ui.test.junit4.ComposeTestRule {
+ @kotlin.jvm.JvmDefaultWithCompatibility public interface ComposeContentTestRule extends androidx.compose.ui.test.junit4.ComposeTestRule {
method public void setContent(kotlin.jvm.functions.Function0<kotlin.Unit> composable);
}
@@ -59,7 +59,7 @@
public final class ComposeRootRegistry_androidKt {
}
- public interface ComposeTestRule extends org.junit.rules.TestRule androidx.compose.ui.test.SemanticsNodeInteractionsProvider {
+ @kotlin.jvm.JvmDefaultWithCompatibility public interface ComposeTestRule extends org.junit.rules.TestRule androidx.compose.ui.test.SemanticsNodeInteractionsProvider {
method public suspend Object? awaitIdle(kotlin.coroutines.Continuation<? super kotlin.Unit>);
method public androidx.compose.ui.unit.Density getDensity();
method public androidx.compose.ui.test.MainTestClock getMainClock();
diff --git a/compose/ui/ui-test-junit4/src/jvmMain/kotlin/androidx/compose/ui/test/junit4/ComposeTestRule.jvm.kt b/compose/ui/ui-test-junit4/src/jvmMain/kotlin/androidx/compose/ui/test/junit4/ComposeTestRule.jvm.kt
index 301c44b..54e9aa7 100644
--- a/compose/ui/ui-test-junit4/src/jvmMain/kotlin/androidx/compose/ui/test/junit4/ComposeTestRule.jvm.kt
+++ b/compose/ui/ui-test-junit4/src/jvmMain/kotlin/androidx/compose/ui/test/junit4/ComposeTestRule.jvm.kt
@@ -23,6 +23,7 @@
import androidx.compose.ui.test.SemanticsNodeInteractionsProvider
import androidx.compose.ui.unit.Density
import org.junit.rules.TestRule
+import kotlin.jvm.JvmDefaultWithCompatibility
/**
* A [TestRule] that allows you to test and control composables and applications using Compose.
@@ -49,6 +50,7 @@
* Compose UI's setters (like [ComponentActivity.setContent][androidx.compose.ui.platform
* .setContent]).
*/
+@JvmDefaultWithCompatibility
interface ComposeTestRule : TestRule, SemanticsNodeInteractionsProvider {
/**
* Current device screen's density.
@@ -150,6 +152,7 @@
* and set the content using one of Compose UI's setters (like [ComponentActivity
* .setContent][androidx.activity.compose.setContent]).
*/
+@JvmDefaultWithCompatibility
interface ComposeContentTestRule : ComposeTestRule {
/**
* Sets the given composable as a content of the current screen.
diff --git a/compose/ui/ui-test/api/current.txt b/compose/ui/ui-test/api/current.txt
index 3ded8f1..6955181 100644
--- a/compose/ui/ui-test/api/current.txt
+++ b/compose/ui/ui-test/api/current.txt
@@ -241,7 +241,7 @@
method public static boolean performKeyPress(androidx.compose.ui.test.SemanticsNodeInteraction, android.view.KeyEvent keyEvent);
}
- public interface MainTestClock {
+ @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<java.lang.Boolean> condition);
@@ -321,7 +321,7 @@
method public operator androidx.compose.ui.test.SemanticsNodeInteraction get(int index);
}
- public interface SemanticsNodeInteractionsProvider {
+ @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);
}
diff --git a/compose/ui/ui-test/api/public_plus_experimental_current.txt b/compose/ui/ui-test/api/public_plus_experimental_current.txt
index 009d111..719ee4f 100644
--- a/compose/ui/ui-test/api/public_plus_experimental_current.txt
+++ b/compose/ui/ui-test/api/public_plus_experimental_current.txt
@@ -281,7 +281,7 @@
method public static boolean performKeyPress(androidx.compose.ui.test.SemanticsNodeInteraction, android.view.KeyEvent keyEvent);
}
- public interface MainTestClock {
+ @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<java.lang.Boolean> condition);
@@ -423,7 +423,7 @@
method public operator androidx.compose.ui.test.SemanticsNodeInteraction get(int index);
}
- public interface SemanticsNodeInteractionsProvider {
+ @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);
}
diff --git a/compose/ui/ui-test/api/restricted_current.txt b/compose/ui/ui-test/api/restricted_current.txt
index 5a129d0..949c8fe 100644
--- a/compose/ui/ui-test/api/restricted_current.txt
+++ b/compose/ui/ui-test/api/restricted_current.txt
@@ -242,7 +242,7 @@
method public static boolean performKeyPress(androidx.compose.ui.test.SemanticsNodeInteraction, android.view.KeyEvent keyEvent);
}
- public interface MainTestClock {
+ @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<java.lang.Boolean> condition);
@@ -322,7 +322,7 @@
method public operator androidx.compose.ui.test.SemanticsNodeInteraction get(int index);
}
- public interface SemanticsNodeInteractionsProvider {
+ @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);
}
diff --git a/compose/ui/ui-test/src/commonMain/kotlin/androidx/compose/ui/test/MainTestClock.kt b/compose/ui/ui-test/src/commonMain/kotlin/androidx/compose/ui/test/MainTestClock.kt
index 7002bd3..46b4448 100644
--- a/compose/ui/ui-test/src/commonMain/kotlin/androidx/compose/ui/test/MainTestClock.kt
+++ b/compose/ui/ui-test/src/commonMain/kotlin/androidx/compose/ui/test/MainTestClock.kt
@@ -20,6 +20,7 @@
import androidx.compose.runtime.MonotonicFrameClock
import androidx.compose.runtime.Recomposer
import androidx.compose.runtime.snapshots.Snapshot
+import kotlin.jvm.JvmDefaultWithCompatibility
/**
* The clock that drives [frames][MonotonicFrameClock.withFrameNanos],
@@ -93,6 +94,7 @@
*
* @sample androidx.compose.ui.test.samples.testControlClock
*/
+@JvmDefaultWithCompatibility
interface MainTestClock {
/**
* The current time of this clock in milliseconds.
diff --git a/compose/ui/ui-test/src/commonMain/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionsProvider.kt b/compose/ui/ui-test/src/commonMain/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionsProvider.kt
index 6c1867e..1552906 100644
--- a/compose/ui/ui-test/src/commonMain/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionsProvider.kt
+++ b/compose/ui/ui-test/src/commonMain/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionsProvider.kt
@@ -16,11 +16,14 @@
package androidx.compose.ui.test
+import kotlin.jvm.JvmDefaultWithCompatibility
+
/**
* Provides the main entry point into testing.
*
* Typically implemented by a test rule.
*/
+@JvmDefaultWithCompatibility
interface SemanticsNodeInteractionsProvider {
/**
* Finds a semantics node that matches the given condition.
diff --git a/compose/ui/ui-text/api/current.txt b/compose/ui/ui-text/api/current.txt
index 0aed13e..d71ded4 100644
--- a/compose/ui/ui-text/api/current.txt
+++ b/compose/ui/ui-text/api/current.txt
@@ -153,7 +153,7 @@
public final class MultiParagraphKt {
}
- public interface Paragraph {
+ @kotlin.jvm.JvmDefaultWithCompatibility public interface Paragraph {
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);
diff --git a/compose/ui/ui-text/api/public_plus_experimental_current.txt b/compose/ui/ui-text/api/public_plus_experimental_current.txt
index c315928..b5a4a857 100644
--- a/compose/ui/ui-text/api/public_plus_experimental_current.txt
+++ b/compose/ui/ui-text/api/public_plus_experimental_current.txt
@@ -165,7 +165,7 @@
public final class MultiParagraphKt {
}
- public interface Paragraph {
+ @kotlin.jvm.JvmDefaultWithCompatibility public interface Paragraph {
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);
diff --git a/compose/ui/ui-text/api/restricted_current.txt b/compose/ui/ui-text/api/restricted_current.txt
index 0aed13e..d71ded4 100644
--- a/compose/ui/ui-text/api/restricted_current.txt
+++ b/compose/ui/ui-text/api/restricted_current.txt
@@ -153,7 +153,7 @@
public final class MultiParagraphKt {
}
- public interface Paragraph {
+ @kotlin.jvm.JvmDefaultWithCompatibility public interface Paragraph {
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);
diff --git a/compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/Paragraph.kt b/compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/Paragraph.kt
index f626602..524178b 100644
--- a/compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/Paragraph.kt
+++ b/compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/Paragraph.kt
@@ -30,6 +30,7 @@
import androidx.compose.ui.unit.Constraints
import androidx.compose.ui.unit.Density
import kotlin.math.ceil
+import kotlin.jvm.JvmDefaultWithCompatibility
internal const val DefaultMaxLines = Int.MAX_VALUE
@@ -38,6 +39,7 @@
*
* Paragraphs can be displayed on a [Canvas] using the [paint] method.
*/
+@JvmDefaultWithCompatibility
interface Paragraph {
/**
* The amount of horizontal space this paragraph occupies.
diff --git a/compose/ui/ui/api/current.txt b/compose/ui/ui/api/current.txt
index 7af1e9a..4a9aa4f 100644
--- a/compose/ui/ui/api/current.txt
+++ b/compose/ui/ui/api/current.txt
@@ -301,7 +301,7 @@
method public static androidx.compose.ui.Modifier onFocusEvent(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1<? super androidx.compose.ui.focus.FocusState,kotlin.Unit> onFocusEvent);
}
- public interface FocusManager {
+ @kotlin.jvm.JvmDefaultWithCompatibility public interface FocusManager {
method public void clearFocus(optional boolean force);
method public boolean moveFocus(int focusDirection);
}
@@ -2225,7 +2225,7 @@
property public final boolean showLayoutBounds;
}
- public interface AccessibilityManager {
+ @kotlin.jvm.JvmDefaultWithCompatibility public interface AccessibilityManager {
method public long calculateRecommendedTimeoutMillis(long originalTimeoutMillis, optional boolean containsIcons, optional boolean containsText, optional boolean containsControls);
}
@@ -2425,7 +2425,7 @@
method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier testTag(androidx.compose.ui.Modifier, String tag);
}
- public interface TextToolbar {
+ @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<kotlin.Unit>? onCopyRequested, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onPasteRequested, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onCutRequested, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onSelectAllRequested);
diff --git a/compose/ui/ui/api/public_plus_experimental_current.txt b/compose/ui/ui/api/public_plus_experimental_current.txt
index f6a1774..db29402 100644
--- a/compose/ui/ui/api/public_plus_experimental_current.txt
+++ b/compose/ui/ui/api/public_plus_experimental_current.txt
@@ -376,7 +376,7 @@
method public static androidx.compose.ui.Modifier onFocusEvent(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1<? super androidx.compose.ui.focus.FocusState,kotlin.Unit> onFocusEvent);
}
- public interface FocusManager {
+ @kotlin.jvm.JvmDefaultWithCompatibility public interface FocusManager {
method public void clearFocus(optional boolean force);
method public boolean moveFocus(int focusDirection);
}
@@ -2382,7 +2382,7 @@
property public final boolean showLayoutBounds;
}
- public interface AccessibilityManager {
+ @kotlin.jvm.JvmDefaultWithCompatibility public interface AccessibilityManager {
method public long calculateRecommendedTimeoutMillis(long originalTimeoutMillis, optional boolean containsIcons, optional boolean containsText, optional boolean containsControls);
}
@@ -2601,7 +2601,7 @@
method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier testTag(androidx.compose.ui.Modifier, String tag);
}
- public interface TextToolbar {
+ @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<kotlin.Unit>? onCopyRequested, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onPasteRequested, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onCutRequested, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onSelectAllRequested);
diff --git a/compose/ui/ui/api/restricted_current.txt b/compose/ui/ui/api/restricted_current.txt
index df4d46f..fcfb37c 100644
--- a/compose/ui/ui/api/restricted_current.txt
+++ b/compose/ui/ui/api/restricted_current.txt
@@ -301,7 +301,7 @@
method public static androidx.compose.ui.Modifier onFocusEvent(androidx.compose.ui.Modifier, kotlin.jvm.functions.Function1<? super androidx.compose.ui.focus.FocusState,kotlin.Unit> onFocusEvent);
}
- public interface FocusManager {
+ @kotlin.jvm.JvmDefaultWithCompatibility public interface FocusManager {
method public void clearFocus(optional boolean force);
method public boolean moveFocus(int focusDirection);
}
@@ -2260,7 +2260,7 @@
property public final boolean showLayoutBounds;
}
- public interface AccessibilityManager {
+ @kotlin.jvm.JvmDefaultWithCompatibility public interface AccessibilityManager {
method public long calculateRecommendedTimeoutMillis(long originalTimeoutMillis, optional boolean containsIcons, optional boolean containsText, optional boolean containsControls);
}
@@ -2461,7 +2461,7 @@
method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier testTag(androidx.compose.ui.Modifier, String tag);
}
- public interface TextToolbar {
+ @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<kotlin.Unit>? onCopyRequested, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onPasteRequested, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onCutRequested, optional kotlin.jvm.functions.Function0<kotlin.Unit>? onSelectAllRequested);
diff --git a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/focus/FocusManager.kt b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/focus/FocusManager.kt
index 4e55c35..545854e 100644
--- a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/focus/FocusManager.kt
+++ b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/focus/FocusManager.kt
@@ -26,7 +26,9 @@
import androidx.compose.ui.focus.FocusStateImpl.DeactivatedParent
import androidx.compose.ui.focus.FocusStateImpl.Inactive
import androidx.compose.ui.unit.LayoutDirection
+import kotlin.jvm.JvmDefaultWithCompatibility
+@JvmDefaultWithCompatibility
interface FocusManager {
/**
* Call this function to clear focus from the currently focused component, and set the focus to
diff --git a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/platform/AccessibilityManager.kt b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/platform/AccessibilityManager.kt
index 8590cb0..bef368f 100644
--- a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/platform/AccessibilityManager.kt
+++ b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/platform/AccessibilityManager.kt
@@ -16,9 +16,12 @@
package androidx.compose.ui.platform
+import kotlin.jvm.JvmDefaultWithCompatibility
+
/**
* Interface for managing accessibility.
*/
+@JvmDefaultWithCompatibility
interface AccessibilityManager {
/**
* Calculate the recommended timeout for changes to the UI needed by this user. Controls should
diff --git a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/platform/TextToolbar.kt b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/platform/TextToolbar.kt
index c9ba2b5..6a324e2 100644
--- a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/platform/TextToolbar.kt
+++ b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/platform/TextToolbar.kt
@@ -17,10 +17,12 @@
package androidx.compose.ui.platform
import androidx.compose.ui.geometry.Rect
+import kotlin.jvm.JvmDefaultWithCompatibility
/**
* Interface for text-related toolbar.
*/
+@JvmDefaultWithCompatibility
interface TextToolbar {
/**
* Show the floating toolbar(post-M) or primary toolbar(pre-M) for copying, cutting and pasting