feat: add left/right animation and minor prop renaming in Carousel
* Allow different animations for Carousel and CarouselItem when moving to previous or next slide
* Created a CarouselScope class which provides the CarouselItem composable
* Renamed "timeToDisplayMillis" to "autoScrollDurationMillis"
Test: Updated existing tests
Relnote: "Configure different animation in Carousel and CarouselItem when scrolling to previous or next slide, created CarouselScope &
moved CarouselItem public composable inside it and updated `timeToDisplayMillis` prop to `autoScrollDurationMillis` in Carousel"
Change-Id: Iae656d7782425e179772216a43bab841fceb496c
diff --git a/tv/tv-material/api/public_plus_experimental_current.txt b/tv/tv-material/api/public_plus_experimental_current.txt
index 1e8c90f..4afda2a 100644
--- a/tv/tv-material/api/public_plus_experimental_current.txt
+++ b/tv/tv-material/api/public_plus_experimental_current.txt
@@ -6,29 +6,33 @@
@androidx.tv.material3.ExperimentalTvMaterial3Api public final class CarouselDefaults {
method @androidx.compose.runtime.Composable @androidx.tv.material3.ExperimentalTvMaterial3Api public void IndicatorRow(int slideCount, int activeSlideIndex, optional androidx.compose.ui.Modifier modifier, optional float spacing, optional kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> indicator);
- method public androidx.compose.animation.EnterTransition getEnterTransition();
- method public androidx.compose.animation.ExitTransition getExitTransition();
- property public final androidx.compose.animation.EnterTransition EnterTransition;
- property public final androidx.compose.animation.ExitTransition ExitTransition;
+ method @androidx.compose.runtime.Composable public androidx.compose.animation.ContentTransform getContentTransform();
+ property @androidx.compose.runtime.Composable public final androidx.compose.animation.ContentTransform contentTransform;
field public static final androidx.tv.material3.CarouselDefaults INSTANCE;
field public static final long TimeToDisplaySlideMillis = 5000L; // 0x1388L
}
@androidx.tv.material3.ExperimentalTvMaterial3Api public final class CarouselItemDefaults {
- method public androidx.compose.animation.EnterTransition getOverlayEnterTransition();
- method public androidx.compose.animation.ExitTransition getOverlayExitTransition();
- property public final androidx.compose.animation.EnterTransition OverlayEnterTransition;
- property public final androidx.compose.animation.ExitTransition OverlayExitTransition;
+ method @androidx.compose.runtime.Composable public androidx.compose.animation.ContentTransform getContentTransformBackward();
+ method @androidx.compose.runtime.Composable public androidx.compose.animation.ContentTransform getContentTransformForward();
+ method @androidx.compose.runtime.Composable public androidx.compose.animation.ContentTransform getContentTransformLeftToRight();
+ method @androidx.compose.runtime.Composable public androidx.compose.animation.ContentTransform getContentTransformRightToLeft();
+ property @androidx.compose.runtime.Composable public final androidx.compose.animation.ContentTransform contentTransformBackward;
+ property @androidx.compose.runtime.Composable public final androidx.compose.animation.ContentTransform contentTransformForward;
+ property @androidx.compose.runtime.Composable public final androidx.compose.animation.ContentTransform contentTransformLeftToRight;
+ property @androidx.compose.runtime.Composable public final androidx.compose.animation.ContentTransform contentTransformRightToLeft;
field public static final androidx.tv.material3.CarouselItemDefaults INSTANCE;
- field public static final long OverlayEnterTransitionStartDelayMillis = 200L; // 0xc8L
}
public final class CarouselItemKt {
- method @androidx.compose.runtime.Composable @androidx.tv.material3.ExperimentalTvMaterial3Api public static void CarouselItem(kotlin.jvm.functions.Function0<kotlin.Unit> background, optional androidx.compose.ui.Modifier modifier, optional long overlayEnterTransitionStartDelayMillis, optional androidx.compose.animation.EnterTransition overlayEnterTransition, optional androidx.compose.animation.ExitTransition overlayExitTransition, kotlin.jvm.functions.Function0<kotlin.Unit> overlay);
}
public final class CarouselKt {
- method @androidx.compose.runtime.Composable @androidx.tv.material3.ExperimentalTvMaterial3Api public static void Carousel(int slideCount, optional androidx.compose.ui.Modifier modifier, optional androidx.tv.material3.CarouselState carouselState, optional long timeToDisplaySlideMillis, optional androidx.compose.animation.EnterTransition enterTransition, optional androidx.compose.animation.ExitTransition exitTransition, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> carouselIndicator, kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit> content);
+ method @androidx.compose.runtime.Composable @androidx.tv.material3.ExperimentalTvMaterial3Api public static void Carousel(int slideCount, optional androidx.compose.ui.Modifier modifier, optional androidx.tv.material3.CarouselState carouselState, optional long autoScrollDurationMillis, optional androidx.compose.animation.ContentTransform contentTransformForward, optional androidx.compose.animation.ContentTransform contentTransformBackward, optional kotlin.jvm.functions.Function1<? super androidx.compose.foundation.layout.BoxScope,kotlin.Unit> carouselIndicator, kotlin.jvm.functions.Function2<? super androidx.tv.material3.CarouselScope,? super java.lang.Integer,kotlin.Unit> content);
+ }
+
+ @androidx.tv.material3.ExperimentalTvMaterial3Api public final class CarouselScope {
+ method @androidx.compose.runtime.Composable @androidx.tv.material3.ExperimentalTvMaterial3Api public void CarouselItem(optional androidx.compose.ui.Modifier modifier, optional kotlin.jvm.functions.Function0<kotlin.Unit> background, optional androidx.compose.animation.ContentTransform contentTransformForward, optional androidx.compose.animation.ContentTransform contentTransformBackward, kotlin.jvm.functions.Function0<kotlin.Unit> content);
}
@androidx.compose.runtime.Stable @androidx.tv.material3.ExperimentalTvMaterial3Api public final class CarouselState {
@@ -138,6 +142,9 @@
method public androidx.compose.ui.Modifier immersiveListItem(androidx.compose.ui.Modifier, int index);
}
+ public final class KeyEventUtilsKt {
+ }
+
public final class MaterialTheme {
method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public androidx.tv.material3.ColorScheme getColorScheme();
method @androidx.compose.runtime.Composable @androidx.compose.runtime.ReadOnlyComposable public androidx.tv.material3.Shapes getShapes();