Rename Foundation/SwipeToDismissBox to Foundation/BasicSwipeToDismissBox
We have renamed the Foundation level SwipeToDismissBox to BasicSwipeToDismissBox. This makes the distinction clearer between the Foundation level component and the Material level SwipeToDismissBox. The latter pulls colors from the MaterialTheme to be used in scrims and delegates the remaining implementation to the BasicSwipeToDismissBox.
Test: androidx.wear.compose.integration.macrobenchmark.test
Bug: 292537483
RelNote: "We have renamed the Foundation level SwipeToDismissBox to BasicSwipeToDismissBox. This makes the distinction clearer between the Foundation level component and the Material level SwipeToDismissBox. The latter pulls colors from the MaterialTheme to be used in scrims and delegates the remaining implementation to the BasicSwipeToDismissBox."
Change-Id: Ibecfc1720eadd2d8e5e1c1cfd6832300775bffb1
diff --git a/wear/compose/compose-foundation/api/current.txt b/wear/compose/compose-foundation/api/current.txt
index b5c73ba..361723d 100644
--- a/wear/compose/compose-foundation/api/current.txt
+++ b/wear/compose/compose-foundation/api/current.txt
@@ -26,6 +26,13 @@
method public static void basicCurvedText(androidx.wear.compose.foundation.CurvedScope, String text, androidx.wear.compose.foundation.CurvedTextStyle style, optional androidx.wear.compose.foundation.CurvedModifier modifier, optional androidx.wear.compose.foundation.CurvedDirection.Angular? angularDirection, optional int overflow);
}
+ public final class BasicSwipeToDismissBoxKt {
+ method @androidx.compose.runtime.Composable public static void BasicSwipeToDismissBox(androidx.wear.compose.foundation.SwipeToDismissBoxState state, optional androidx.compose.ui.Modifier modifier, optional Object backgroundKey, optional Object contentKey, optional boolean userSwipeEnabled, kotlin.jvm.functions.Function2<? super androidx.compose.foundation.layout.BoxScope,? super java.lang.Boolean,kotlin.Unit> content);
+ method @androidx.compose.runtime.Composable public static void BasicSwipeToDismissBox(kotlin.jvm.functions.Function0<kotlin.Unit> onDismissed, optional androidx.compose.ui.Modifier modifier, optional androidx.wear.compose.foundation.SwipeToDismissBoxState state, optional Object backgroundKey, optional Object contentKey, optional boolean userSwipeEnabled, kotlin.jvm.functions.Function2<? super androidx.compose.foundation.layout.BoxScope,? super java.lang.Boolean,kotlin.Unit> content);
+ method public static androidx.compose.ui.Modifier edgeSwipeToDismiss(androidx.compose.ui.Modifier, androidx.wear.compose.foundation.SwipeToDismissBoxState swipeToDismissBoxState, optional float edgeWidth);
+ method @androidx.compose.runtime.Composable public static androidx.wear.compose.foundation.SwipeToDismissBoxState rememberSwipeToDismissBoxState(optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional kotlin.jvm.functions.Function1<? super androidx.wear.compose.foundation.SwipeToDismissValue,java.lang.Boolean> confirmStateChange);
+ }
+
public final class CompositionLocalsKt {
method @SuppressCompatibility @androidx.wear.compose.foundation.ExperimentalWearFoundationApi public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.wear.compose.foundation.ReduceMotion> getLocalReduceMotion();
method public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.graphics.Color> getLocalSwipeToDismissBackgroundScrimColor();
@@ -288,13 +295,6 @@
field public static final androidx.wear.compose.foundation.SwipeToDismissBoxDefaults INSTANCE;
}
- public final class SwipeToDismissBoxKt {
- method @androidx.compose.runtime.Composable public static void SwipeToDismissBox(androidx.wear.compose.foundation.SwipeToDismissBoxState state, optional androidx.compose.ui.Modifier modifier, optional Object backgroundKey, optional Object contentKey, optional boolean userSwipeEnabled, kotlin.jvm.functions.Function2<? super androidx.compose.foundation.layout.BoxScope,? super java.lang.Boolean,kotlin.Unit> content);
- method @androidx.compose.runtime.Composable public static void SwipeToDismissBox(kotlin.jvm.functions.Function0<kotlin.Unit> onDismissed, optional androidx.compose.ui.Modifier modifier, optional androidx.wear.compose.foundation.SwipeToDismissBoxState state, optional Object backgroundKey, optional Object contentKey, optional boolean userSwipeEnabled, kotlin.jvm.functions.Function2<? super androidx.compose.foundation.layout.BoxScope,? super java.lang.Boolean,kotlin.Unit> content);
- method public static androidx.compose.ui.Modifier edgeSwipeToDismiss(androidx.compose.ui.Modifier, androidx.wear.compose.foundation.SwipeToDismissBoxState swipeToDismissBoxState, optional float edgeWidth);
- method @androidx.compose.runtime.Composable public static androidx.wear.compose.foundation.SwipeToDismissBoxState rememberSwipeToDismissBoxState(optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional kotlin.jvm.functions.Function1<? super androidx.wear.compose.foundation.SwipeToDismissValue,java.lang.Boolean> confirmStateChange);
- }
-
@androidx.compose.runtime.Stable public final class SwipeToDismissBoxState {
ctor public SwipeToDismissBoxState(optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional kotlin.jvm.functions.Function1<? super androidx.wear.compose.foundation.SwipeToDismissValue,java.lang.Boolean> confirmStateChange);
method public androidx.wear.compose.foundation.SwipeToDismissValue getCurrentValue();
diff --git a/wear/compose/compose-foundation/api/restricted_current.txt b/wear/compose/compose-foundation/api/restricted_current.txt
index b5c73ba..361723d 100644
--- a/wear/compose/compose-foundation/api/restricted_current.txt
+++ b/wear/compose/compose-foundation/api/restricted_current.txt
@@ -26,6 +26,13 @@
method public static void basicCurvedText(androidx.wear.compose.foundation.CurvedScope, String text, androidx.wear.compose.foundation.CurvedTextStyle style, optional androidx.wear.compose.foundation.CurvedModifier modifier, optional androidx.wear.compose.foundation.CurvedDirection.Angular? angularDirection, optional int overflow);
}
+ public final class BasicSwipeToDismissBoxKt {
+ method @androidx.compose.runtime.Composable public static void BasicSwipeToDismissBox(androidx.wear.compose.foundation.SwipeToDismissBoxState state, optional androidx.compose.ui.Modifier modifier, optional Object backgroundKey, optional Object contentKey, optional boolean userSwipeEnabled, kotlin.jvm.functions.Function2<? super androidx.compose.foundation.layout.BoxScope,? super java.lang.Boolean,kotlin.Unit> content);
+ method @androidx.compose.runtime.Composable public static void BasicSwipeToDismissBox(kotlin.jvm.functions.Function0<kotlin.Unit> onDismissed, optional androidx.compose.ui.Modifier modifier, optional androidx.wear.compose.foundation.SwipeToDismissBoxState state, optional Object backgroundKey, optional Object contentKey, optional boolean userSwipeEnabled, kotlin.jvm.functions.Function2<? super androidx.compose.foundation.layout.BoxScope,? super java.lang.Boolean,kotlin.Unit> content);
+ method public static androidx.compose.ui.Modifier edgeSwipeToDismiss(androidx.compose.ui.Modifier, androidx.wear.compose.foundation.SwipeToDismissBoxState swipeToDismissBoxState, optional float edgeWidth);
+ method @androidx.compose.runtime.Composable public static androidx.wear.compose.foundation.SwipeToDismissBoxState rememberSwipeToDismissBoxState(optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional kotlin.jvm.functions.Function1<? super androidx.wear.compose.foundation.SwipeToDismissValue,java.lang.Boolean> confirmStateChange);
+ }
+
public final class CompositionLocalsKt {
method @SuppressCompatibility @androidx.wear.compose.foundation.ExperimentalWearFoundationApi public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.wear.compose.foundation.ReduceMotion> getLocalReduceMotion();
method public static androidx.compose.runtime.ProvidableCompositionLocal<androidx.compose.ui.graphics.Color> getLocalSwipeToDismissBackgroundScrimColor();
@@ -288,13 +295,6 @@
field public static final androidx.wear.compose.foundation.SwipeToDismissBoxDefaults INSTANCE;
}
- public final class SwipeToDismissBoxKt {
- method @androidx.compose.runtime.Composable public static void SwipeToDismissBox(androidx.wear.compose.foundation.SwipeToDismissBoxState state, optional androidx.compose.ui.Modifier modifier, optional Object backgroundKey, optional Object contentKey, optional boolean userSwipeEnabled, kotlin.jvm.functions.Function2<? super androidx.compose.foundation.layout.BoxScope,? super java.lang.Boolean,kotlin.Unit> content);
- method @androidx.compose.runtime.Composable public static void SwipeToDismissBox(kotlin.jvm.functions.Function0<kotlin.Unit> onDismissed, optional androidx.compose.ui.Modifier modifier, optional androidx.wear.compose.foundation.SwipeToDismissBoxState state, optional Object backgroundKey, optional Object contentKey, optional boolean userSwipeEnabled, kotlin.jvm.functions.Function2<? super androidx.compose.foundation.layout.BoxScope,? super java.lang.Boolean,kotlin.Unit> content);
- method public static androidx.compose.ui.Modifier edgeSwipeToDismiss(androidx.compose.ui.Modifier, androidx.wear.compose.foundation.SwipeToDismissBoxState swipeToDismissBoxState, optional float edgeWidth);
- method @androidx.compose.runtime.Composable public static androidx.wear.compose.foundation.SwipeToDismissBoxState rememberSwipeToDismissBoxState(optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional kotlin.jvm.functions.Function1<? super androidx.wear.compose.foundation.SwipeToDismissValue,java.lang.Boolean> confirmStateChange);
- }
-
@androidx.compose.runtime.Stable public final class SwipeToDismissBoxState {
ctor public SwipeToDismissBoxState(optional androidx.compose.animation.core.AnimationSpec<java.lang.Float> animationSpec, optional kotlin.jvm.functions.Function1<? super androidx.wear.compose.foundation.SwipeToDismissValue,java.lang.Boolean> confirmStateChange);
method public androidx.wear.compose.foundation.SwipeToDismissValue getCurrentValue();
diff --git a/wear/compose/compose-foundation/samples/src/main/java/androidx/wear/compose/foundation/samples/SwipeToDismissBoxSample.kt b/wear/compose/compose-foundation/samples/src/main/java/androidx/wear/compose/foundation/samples/SwipeToDismissBoxSample.kt
index 9de2efa..2e59395 100644
--- a/wear/compose/compose-foundation/samples/src/main/java/androidx/wear/compose/foundation/samples/SwipeToDismissBoxSample.kt
+++ b/wear/compose/compose-foundation/samples/src/main/java/androidx/wear/compose/foundation/samples/SwipeToDismissBoxSample.kt
@@ -37,7 +37,7 @@
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
-import androidx.wear.compose.foundation.SwipeToDismissBox
+import androidx.wear.compose.foundation.BasicSwipeToDismissBox
import androidx.wear.compose.foundation.SwipeToDismissValue
import androidx.wear.compose.foundation.edgeSwipeToDismiss
import androidx.wear.compose.foundation.rememberSwipeToDismissBoxState
@@ -53,7 +53,7 @@
navigateBack: () -> Unit
) {
val state = rememberSwipeToDismissBoxState()
- SwipeToDismissBox(
+ BasicSwipeToDismissBox(
state = state,
onDismissed = navigateBack
) { isBackground ->
@@ -95,7 +95,7 @@
// Hierarchy is ListScreen -> ItemScreen, so we show ListScreen as the background behind
// the ItemScreen, otherwise there's no background to show.
- SwipeToDismissBox(
+ BasicSwipeToDismissBox(
state = state,
userSwipeEnabled = !showMainScreen,
backgroundKey = if (!showMainScreen) "MainKey" else "Background",
@@ -162,7 +162,7 @@
// When using Modifier.edgeSwipeToDismiss, it is required that the element on which the
// modifier applies exists within a SwipeToDismissBox which shares the same state.
- SwipeToDismissBox(
+ BasicSwipeToDismissBox(
state = state,
onDismissed = navigateBack
) { isBackground ->
diff --git a/wear/compose/compose-foundation/src/androidTest/kotlin/androidx/wear/compose/foundation/SwipeToDismissBoxTest.kt b/wear/compose/compose-foundation/src/androidTest/kotlin/androidx/wear/compose/foundation/BasicSwipeToDismissBoxTest.kt
similarity index 97%
rename from wear/compose/compose-foundation/src/androidTest/kotlin/androidx/wear/compose/foundation/SwipeToDismissBoxTest.kt
rename to wear/compose/compose-foundation/src/androidTest/kotlin/androidx/wear/compose/foundation/BasicSwipeToDismissBoxTest.kt
index 51e8ba6..88d3c13 100644
--- a/wear/compose/compose-foundation/src/androidTest/kotlin/androidx/wear/compose/foundation/SwipeToDismissBoxTest.kt
+++ b/wear/compose/compose-foundation/src/androidTest/kotlin/androidx/wear/compose/foundation/BasicSwipeToDismissBoxTest.kt
@@ -63,7 +63,7 @@
import org.junit.Rule
import org.junit.Test
-class SwipeToDismissBoxTest {
+class BasicSwipeToDismissBoxTest {
@get:Rule
val rule = createComposeRule()
@@ -71,7 +71,7 @@
fun supports_testtag() {
rule.setContent {
val state = rememberSwipeToDismissBoxState()
- SwipeToDismissBox(
+ BasicSwipeToDismissBox(
state = state,
modifier = Modifier.testTag(TEST_TAG)
) {
@@ -92,7 +92,7 @@
if (runTest) {
outerCounter++
val state = rememberSwipeToDismissBoxState()
- SwipeToDismissBox(
+ BasicSwipeToDismissBox(
state = state,
onDismissed = { },
) { isBackground ->
@@ -149,7 +149,7 @@
fun does_not_display_background_without_swipe() {
rule.setContent {
val state = rememberSwipeToDismissBoxState()
- SwipeToDismissBox(
+ BasicSwipeToDismissBox(
state = state,
modifier = Modifier.testTag(TEST_TAG)
) { isBackground ->
@@ -169,7 +169,7 @@
dismissed =
state.currentValue == SwipeToDismissValue.Dismissed
}
- SwipeToDismissBox(
+ BasicSwipeToDismissBox(
state = state,
modifier = Modifier.testTag(TEST_TAG),
userSwipeEnabled = false
@@ -197,7 +197,7 @@
state.snapTo(SwipeToDismissValue.Default)
}
}
- SwipeToDismissBox(
+ BasicSwipeToDismissBox(
state = state,
modifier = Modifier.testTag(TEST_TAG),
backgroundKey = if (showCounterForContent.value) TOGGLE_SCREEN else COUNTER_SCREEN,
@@ -246,7 +246,7 @@
outerDismissed =
outerState.currentValue == SwipeToDismissValue.Dismissed
}
- SwipeToDismissBox(
+ BasicSwipeToDismissBox(
state = outerState,
modifier = Modifier.testTag("OUTER"),
userSwipeEnabled = true
@@ -257,7 +257,7 @@
innerDismissed =
innerState.currentValue == SwipeToDismissValue.Dismissed
}
- SwipeToDismissBox(
+ BasicSwipeToDismissBox(
state = innerState,
modifier = Modifier.testTag("INNER"),
userSwipeEnabled = true
@@ -319,7 +319,7 @@
fun calls_ondismissed_after_swipe_when_supplied() {
var dismissed = false
rule.setContent {
- SwipeToDismissBox(
+ BasicSwipeToDismissBox(
onDismissed = { dismissed = true },
modifier = Modifier.testTag(TEST_TAG)
) {
@@ -384,7 +384,7 @@
val state = rememberSwipeToDismissBoxState()
horizontalScrollState = rememberScrollState(initialScrollState)
- SwipeToDismissBox(
+ BasicSwipeToDismissBox(
state = state,
modifier = Modifier.testTag(TEST_TAG)
) {
@@ -406,7 +406,7 @@
val state = rememberSwipeToDismissBoxState()
horizontalScrollState = rememberScrollState(initialScrollState)
- SwipeToDismissBox(
+ BasicSwipeToDismissBox(
state = state,
modifier = Modifier.testTag(TEST_TAG)
) {
@@ -479,7 +479,7 @@
rule.setContent {
val state = rememberSwipeToDismissBoxState()
- SwipeToDismissBox(
+ BasicSwipeToDismissBox(
state = state,
modifier = Modifier.testTag(TEST_TAG),
) { isBackground ->
@@ -536,7 +536,7 @@
val state = rememberSwipeToDismissBoxState()
horizontalScrollState = rememberScrollState(initialScrollState)
- SwipeToDismissBox(
+ BasicSwipeToDismissBox(
state = state,
modifier = Modifier.testTag(TEST_TAG)
) {
@@ -562,7 +562,7 @@
var dismissed = false
rule.setContent {
val state = rememberSwipeToDismissBoxState()
- SwipeToDismissBox(
+ BasicSwipeToDismissBox(
state = state,
modifier = Modifier.testTag(TEST_TAG),
onDismissed = { dismissed = true }
@@ -592,7 +592,7 @@
dismissed =
state.currentValue == SwipeToDismissValue.Dismissed
}
- SwipeToDismissBox(
+ BasicSwipeToDismissBox(
state = state,
modifier = Modifier.testTag(TEST_TAG)
) {
@@ -610,7 +610,7 @@
private fun verifyPartialSwipe(expectedMessage: String) {
rule.setContent {
val state = rememberSwipeToDismissBoxState()
- SwipeToDismissBox(
+ BasicSwipeToDismissBox(
state = state,
modifier = Modifier.testTag(TEST_TAG)
) { isBackground ->
@@ -679,7 +679,6 @@
private const val BACKGROUND_MESSAGE = "The Background"
private const val CONTENT_MESSAGE = "The Content"
-private const val LONG_SWIPE = 1000L
private const val TOGGLE_SCREEN = "Toggle"
private const val COUNTER_SCREEN = "Counter"
private const val TOGGLE_ON = "On"
diff --git a/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/SwipeToDismissBox.kt b/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/BasicSwipeToDismissBox.kt
similarity index 95%
rename from wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/SwipeToDismissBox.kt
rename to wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/BasicSwipeToDismissBox.kt
index 26b20b1..df92362a 100644
--- a/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/SwipeToDismissBox.kt
+++ b/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/BasicSwipeToDismissBox.kt
@@ -64,13 +64,13 @@
import kotlinx.coroutines.isActive
/**
- * [SwipeToDismissBox] that handles the swipe-to-dismiss gesture. Takes a single slot for the
+ * [BasicSwipeToDismissBox] that handles the swipe-to-dismiss gesture. Takes a single slot for the
* background (only displayed during the swipe gesture) and the foreground content.
*
- * Example of a [SwipeToDismissBox] with stateful composables:
+ * Example of a [BasicSwipeToDismissBox] with stateful composables:
* @sample androidx.wear.compose.foundation.samples.StatefulSwipeToDismissBox
*
- * Example of using [Modifier.edgeSwipeToDismiss] with [SwipeToDismissBox]
+ * Example of using [Modifier.edgeSwipeToDismiss] with [BasicSwipeToDismissBox]
* @sample androidx.wear.compose.foundation.samples.EdgeSwipeForSwipeToDismiss
*
* For more information, see the
@@ -86,7 +86,7 @@
* @param backgroundKey [key] which identifies the content currently composed in
* the [content] block when isBackground == true. Provide the backgroundKey if your background
* content will be displayed as a foreground after the swipe animation ends
- * (as is common when [SwipeToDismissBox] is used for the navigation). This allows
+ * (as is common when [BasicSwipeToDismissBox] is used for the navigation). This allows
* remembered state to be correctly moved between background and foreground.
* @param contentKey [key] which identifies the content currently composed in the
* [content] block when isBackground == false. See [backgroundKey].
@@ -100,7 +100,7 @@
@OptIn(ExperimentalWearFoundationApi::class)
@Composable
@Suppress("PrimitiveInCollection")
-fun SwipeToDismissBox(
+fun BasicSwipeToDismissBox(
state: SwipeToDismissBoxState,
modifier: Modifier = Modifier,
backgroundKey: Any = SwipeToDismissKeys.Background,
@@ -213,14 +213,14 @@
}
/**
- * [SwipeToDismissBox] that handles the swipe-to-dismiss gesture.
+ * [BasicSwipeToDismissBox] that handles the swipe-to-dismiss gesture.
* This overload takes an [onDismissed] parameter which is used to execute a command when the
* swipe to dismiss has completed, such as navigating to another screen.
*
* Example of a simple SwipeToDismissBox:
* @sample androidx.wear.compose.foundation.samples.SimpleSwipeToDismissBox
*
- * Example of using [Modifier.edgeSwipeToDismiss] with [SwipeToDismissBox]
+ * Example of using [Modifier.edgeSwipeToDismiss] with [BasicSwipeToDismissBox]
* @sample androidx.wear.compose.foundation.samples.EdgeSwipeForSwipeToDismiss
*
* For more information, see the
@@ -237,7 +237,7 @@
* @param backgroundKey [key] which identifies the content currently composed in
* the [content] block when isBackground == true. Provide the backgroundKey if your background
* content will be displayed as a foreground after the swipe animation ends
- * (as is common when [SwipeToDismissBox] is used for the navigation). This allows
+ * (as is common when [BasicSwipeToDismissBox] is used for the navigation). This allows
* remembered state to be correctly moved between background and foreground.
* @param contentKey [key] which identifies the content currently composed in the
* [content] block when isBackground == false. See [backgroundKey].
@@ -250,7 +250,7 @@
*/
@OptIn(ExperimentalWearFoundationApi::class)
@Composable
-fun SwipeToDismissBox(
+fun BasicSwipeToDismissBox(
onDismissed: () -> Unit,
modifier: Modifier = Modifier,
state: SwipeToDismissBoxState = rememberSwipeToDismissBoxState(),
@@ -265,7 +265,7 @@
onDismissed()
}
}
- SwipeToDismissBox(
+ BasicSwipeToDismissBox(
state = state,
modifier = modifier,
backgroundKey = backgroundKey,
@@ -276,7 +276,7 @@
}
/**
- * State for [SwipeToDismissBox].
+ * State for [BasicSwipeToDismissBox].
*
* @param animationSpec The default animation that will be used to animate to a new state.
* @param confirmStateChange callback invoked to confirm or veto a pending state change.
@@ -396,7 +396,7 @@
}
/**
- * Contains defaults for [SwipeToDismissBox].
+ * Contains defaults for [BasicSwipeToDismissBox].
*/
object SwipeToDismissBoxDefaults {
/**
@@ -413,7 +413,7 @@
}
/**
- * Keys used to persistent state in [SwipeToDismissBox].
+ * Keys used to persistent state in [BasicSwipeToDismissBox].
*/
enum class SwipeToDismissKeys {
/**
@@ -457,14 +457,14 @@
* regardless of layout direction as content is swiped away from left to right.
*
* Requires that the element to which this modifier is applied exists within a
- * [SwipeToDismissBox] which is using the same [SwipeToDismissBoxState] instance.
+ * [BasicSwipeToDismissBox] which is using the same [SwipeToDismissBoxState] instance.
*
* Example of a modifier usage with SwipeToDismiss
* @sample androidx.wear.compose.foundation.samples.EdgeSwipeForSwipeToDismiss
*
- * @param swipeToDismissBoxState A state of [SwipeToDismissBox]. Used to trigger swipe gestures
- * on SwipeToDismissBox
- * @param edgeWidth A width of edge, where swipe should be recognised
+ * @param swipeToDismissBoxState State of [BasicSwipeToDismissBox]. Used to trigger swipe gestures
+ * on SwipeToDismissBox.
+ * @param edgeWidth Width of the edge zone in which the swipe will be recognised.
*/
fun Modifier.edgeSwipeToDismiss(
swipeToDismissBoxState: SwipeToDismissBoxState,
diff --git a/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/CompositionLocals.kt b/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/CompositionLocals.kt
index 9b3c2be..03c26c6 100644
--- a/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/CompositionLocals.kt
+++ b/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/CompositionLocals.kt
@@ -53,19 +53,19 @@
}
/**
- * CompositionLocal containing the background scrim color of [SwipeToDismissBox].
+ * CompositionLocal containing the background scrim color of [BasicSwipeToDismissBox].
*
* Defaults to [Color.Black] if not explicitly set.
*/
-public val LocalSwipeToDismissBackgroundScrimColor: ProvidableCompositionLocal<Color> =
+val LocalSwipeToDismissBackgroundScrimColor: ProvidableCompositionLocal<Color> =
compositionLocalOf { Color.Black }
/**
- * CompositionLocal containing the content scrim color of [SwipeToDismissBox].
+ * CompositionLocal containing the content scrim color of [BasicSwipeToDismissBox].
*
* Defaults to [Color.Black] if not explicitly set.
*/
-public val LocalSwipeToDismissContentScrimColor: ProvidableCompositionLocal<Color> =
+val LocalSwipeToDismissContentScrimColor: ProvidableCompositionLocal<Color> =
compositionLocalOf { Color.Black }
/**
diff --git a/wear/compose/compose-material/api/current.txt b/wear/compose/compose-material/api/current.txt
index 5660fd2..58e430c 100644
--- a/wear/compose/compose-material/api/current.txt
+++ b/wear/compose/compose-material/api/current.txt
@@ -659,12 +659,12 @@
property public final T to;
}
- public final class SwipeToDismissBoxDefaults {
- method public androidx.compose.animation.core.SpringSpec<java.lang.Float> getAnimationSpec();
- method public float getEdgeWidth();
- property public final androidx.compose.animation.core.SpringSpec<java.lang.Float> AnimationSpec;
- property public final float EdgeWidth;
- field public static final androidx.wear.compose.material.SwipeToDismissBoxDefaults INSTANCE;
+ @Deprecated @androidx.compose.runtime.Stable public final class SwipeToDismissBoxDefaults {
+ method @Deprecated public androidx.compose.animation.core.SpringSpec<java.lang.Float> getAnimationSpec();
+ method @Deprecated public float getEdgeWidth();
+ property @Deprecated public final androidx.compose.animation.core.SpringSpec<java.lang.Float> AnimationSpec;
+ property @Deprecated public final float EdgeWidth;
+ field @Deprecated public static final androidx.wear.compose.material.SwipeToDismissBoxDefaults INSTANCE;
}
public final class SwipeToDismissBoxKt {
diff --git a/wear/compose/compose-material/api/restricted_current.txt b/wear/compose/compose-material/api/restricted_current.txt
index 5660fd2..58e430c 100644
--- a/wear/compose/compose-material/api/restricted_current.txt
+++ b/wear/compose/compose-material/api/restricted_current.txt
@@ -659,12 +659,12 @@
property public final T to;
}
- public final class SwipeToDismissBoxDefaults {
- method public androidx.compose.animation.core.SpringSpec<java.lang.Float> getAnimationSpec();
- method public float getEdgeWidth();
- property public final androidx.compose.animation.core.SpringSpec<java.lang.Float> AnimationSpec;
- property public final float EdgeWidth;
- field public static final androidx.wear.compose.material.SwipeToDismissBoxDefaults INSTANCE;
+ @Deprecated @androidx.compose.runtime.Stable public final class SwipeToDismissBoxDefaults {
+ method @Deprecated public androidx.compose.animation.core.SpringSpec<java.lang.Float> getAnimationSpec();
+ method @Deprecated public float getEdgeWidth();
+ property @Deprecated public final androidx.compose.animation.core.SpringSpec<java.lang.Float> AnimationSpec;
+ property @Deprecated public final float EdgeWidth;
+ field @Deprecated public static final androidx.wear.compose.material.SwipeToDismissBoxDefaults INSTANCE;
}
public final class SwipeToDismissBoxKt {
diff --git a/wear/compose/compose-material/benchmark/src/androidTest/java/androidx/wear/compose/material/benchmark/SwipeToDismissBoxBenchmark.kt b/wear/compose/compose-material/benchmark/src/androidTest/java/androidx/wear/compose/material/benchmark/SwipeToDismissBoxBenchmark.kt
index 96a3129..8045372 100644
--- a/wear/compose/compose-material/benchmark/src/androidTest/java/androidx/wear/compose/material/benchmark/SwipeToDismissBoxBenchmark.kt
+++ b/wear/compose/compose-material/benchmark/src/androidTest/java/androidx/wear/compose/material/benchmark/SwipeToDismissBoxBenchmark.kt
@@ -27,9 +27,9 @@
import androidx.compose.testutils.benchmark.ComposeBenchmarkRule
import androidx.compose.testutils.benchmark.benchmarkToFirstPixel
import androidx.compose.ui.Modifier
-import androidx.wear.compose.foundation.SwipeToDismissBox
import androidx.wear.compose.foundation.rememberSwipeToDismissBoxState
import androidx.wear.compose.material.MaterialTheme
+import androidx.wear.compose.material.SwipeToDismissBox
import org.junit.Rule
import org.junit.Test
diff --git a/wear/compose/compose-material/src/main/java/androidx/wear/compose/material/SwipeToDismissBox.kt b/wear/compose/compose-material/src/main/java/androidx/wear/compose/material/SwipeToDismissBox.kt
index 7e37cdb..84c8f65 100644
--- a/wear/compose/compose-material/src/main/java/androidx/wear/compose/material/SwipeToDismissBox.kt
+++ b/wear/compose/compose-material/src/main/java/androidx/wear/compose/material/SwipeToDismissBox.kt
@@ -82,7 +82,7 @@
LocalSwipeToDismissBackgroundScrimColor provides backgroundScrimColor,
LocalSwipeToDismissContentScrimColor provides contentScrimColor
) {
- androidx.wear.compose.foundation.SwipeToDismissBox(
+ androidx.wear.compose.foundation.BasicSwipeToDismissBox(
state = state,
modifier = modifier,
backgroundKey = backgroundKey,
@@ -151,7 +151,7 @@
LocalSwipeToDismissBackgroundScrimColor provides backgroundScrimColor,
LocalSwipeToDismissContentScrimColor provides contentScrimColor
) {
- androidx.wear.compose.foundation.SwipeToDismissBox(
+ androidx.wear.compose.foundation.BasicSwipeToDismissBox(
state = state.foundationState,
modifier = modifier,
backgroundKey = backgroundKey,
@@ -214,7 +214,7 @@
LocalSwipeToDismissBackgroundScrimColor provides backgroundScrimColor,
LocalSwipeToDismissContentScrimColor provides contentScrimColor
) {
- androidx.wear.compose.foundation.SwipeToDismissBox(
+ androidx.wear.compose.foundation.BasicSwipeToDismissBox(
state = state,
modifier = modifier,
onDismissed = onDismissed,
@@ -288,7 +288,7 @@
LocalSwipeToDismissBackgroundScrimColor provides backgroundScrimColor,
LocalSwipeToDismissContentScrimColor provides contentScrimColor
) {
- androidx.wear.compose.foundation.SwipeToDismissBox(
+ androidx.wear.compose.foundation.BasicSwipeToDismissBox(
state = state.foundationState,
modifier = modifier,
onDismissed = onDismissed,
@@ -390,6 +390,10 @@
/**
* Contains defaults for [SwipeToDismissBox].
*/
+@Deprecated(
+ "Please import SwipeToDismissBoxDefaults from androidx.wear.compose.foundation.",
+)
+@Stable
public object SwipeToDismissBoxDefaults {
/**
* The default animation that will be used to animate to a new state after the swipe gesture.
diff --git a/wear/compose/compose-material3/src/main/java/androidx/wear/compose/material3/SwipeToDismissBox.kt b/wear/compose/compose-material3/src/main/java/androidx/wear/compose/material3/SwipeToDismissBox.kt
index 9e9eb84..eb16a31 100644
--- a/wear/compose/compose-material3/src/main/java/androidx/wear/compose/material3/SwipeToDismissBox.kt
+++ b/wear/compose/compose-material3/src/main/java/androidx/wear/compose/material3/SwipeToDismissBox.kt
@@ -63,7 +63,7 @@
* swipe-to-dismiss threshold.
*/
@Composable
-public fun SwipeToDismissBox(
+fun SwipeToDismissBox(
state: SwipeToDismissBoxState,
modifier: Modifier = Modifier,
backgroundScrimColor: Color = MaterialTheme.colorScheme.background,
@@ -77,7 +77,7 @@
LocalSwipeToDismissBackgroundScrimColor provides backgroundScrimColor,
LocalSwipeToDismissContentScrimColor provides contentScrimColor
) {
- androidx.wear.compose.foundation.SwipeToDismissBox(
+ androidx.wear.compose.foundation.BasicSwipeToDismissBox(
state = state,
modifier = modifier,
backgroundKey = backgroundKey,
@@ -124,7 +124,7 @@
* swipe-to-dismiss threshold.
*/
@Composable
-public fun SwipeToDismissBox(
+fun SwipeToDismissBox(
onDismissed: () -> Unit,
modifier: Modifier = Modifier,
state: SwipeToDismissBoxState = rememberSwipeToDismissBoxState(),
@@ -139,7 +139,7 @@
LocalSwipeToDismissBackgroundScrimColor provides backgroundScrimColor,
LocalSwipeToDismissContentScrimColor provides contentScrimColor
) {
- androidx.wear.compose.foundation.SwipeToDismissBox(
+ androidx.wear.compose.foundation.BasicSwipeToDismissBox(
state = state,
modifier = modifier,
onDismissed = onDismissed,
diff --git a/wear/compose/compose-navigation/src/main/java/androidx/wear/compose/navigation/SwipeDismissableNavHost.kt b/wear/compose/compose-navigation/src/main/java/androidx/wear/compose/navigation/SwipeDismissableNavHost.kt
index dc62e9e..cac68b5 100644
--- a/wear/compose/compose-navigation/src/main/java/androidx/wear/compose/navigation/SwipeDismissableNavHost.kt
+++ b/wear/compose/compose-navigation/src/main/java/androidx/wear/compose/navigation/SwipeDismissableNavHost.kt
@@ -43,9 +43,9 @@
import androidx.navigation.compose.LocalOwnersProvider
import androidx.navigation.createGraph
import androidx.navigation.get
+import androidx.wear.compose.foundation.BasicSwipeToDismissBox
import androidx.wear.compose.foundation.LocalSwipeToDismissBackgroundScrimColor
import androidx.wear.compose.foundation.LocalSwipeToDismissContentScrimColor
-import androidx.wear.compose.foundation.SwipeToDismissBox
import androidx.wear.compose.foundation.SwipeToDismissBoxState
import androidx.wear.compose.foundation.SwipeToDismissKeys
import androidx.wear.compose.foundation.SwipeToDismissValue
@@ -62,7 +62,7 @@
* The builder passed into this method is [remember]ed. This means that for this NavHost, the
* contents of the builder cannot be changed.
*
- * Content is displayed within a [SwipeToDismissBox], showing the current navigation level.
+ * Content is displayed within a [BasicSwipeToDismissBox], showing the current navigation level.
* During a swipe-to-dismiss gesture, the previous navigation level (if any) is shown in
* the background. BackgroundScrimColor and ContentScrimColor of it are taken from
* [LocalSwipeToDismissBackgroundScrimColor] and [LocalSwipeToDismissContentScrimColor].
@@ -90,8 +90,7 @@
state: SwipeDismissableNavHostState = rememberSwipeDismissableNavHostState(),
route: String? = null,
builder: NavGraphBuilder.() -> Unit
-) =
- SwipeDismissableNavHost(
+) = SwipeDismissableNavHost(
navController,
remember(route, startDestination, builder) {
navController.createGraph(startDestination, route, builder)
@@ -111,7 +110,7 @@
* The builder passed into this method is [remember]ed. This means that for this NavHost, the
* contents of the builder cannot be changed.
*
- * Content is displayed within a [SwipeToDismissBox], showing the current navigation level.
+ * Content is displayed within a [BasicSwipeToDismissBox], showing the current navigation level.
* During a swipe-to-dismiss gesture, the previous navigation level (if any) is shown in
* the background. BackgroundScrimColor and ContentScrimColor of it are taken from
* [LocalSwipeToDismissBackgroundScrimColor] and [LocalSwipeToDismissContentScrimColor].
@@ -219,7 +218,7 @@
}
}
- SwipeToDismissBox(
+ BasicSwipeToDismissBox(
state = swipeState,
modifier = Modifier,
userSwipeEnabled = userSwipeEnabled && previous != null,
@@ -257,7 +256,7 @@
* The builder passed into this method is [remember]ed. This means that for this NavHost, the
* contents of the builder cannot be changed.
*
- * Content is displayed within a [SwipeToDismissBox], showing the current navigation level.
+ * Content is displayed within a [BasicSwipeToDismissBox], showing the current navigation level.
* During a swipe-to-dismiss gesture, the previous navigation level (if any) is shown in
* the background. BackgroundScrimColor and ContentScrimColor of it are taken from
* [LocalSwipeToDismissBackgroundScrimColor] and [LocalSwipeToDismissContentScrimColor].
@@ -308,7 +307,7 @@
* The builder passed into this method is [remember]ed. This means that for this NavHost, the
* contents of the builder cannot be changed.
*
- * Content is displayed within a [SwipeToDismissBox], showing the current navigation level.
+ * Content is displayed within a [BasicSwipeToDismissBox], showing the current navigation level.
* During a swipe-to-dismiss gesture, the previous navigation level (if any) is shown in
* the background. BackgroundScrimColor and ContentScrimColor of it are taken from
* [LocalSwipeToDismissBackgroundScrimColor] and [LocalSwipeToDismissContentScrimColor].
@@ -348,7 +347,7 @@
/**
* State for [SwipeDismissableNavHost]
*
- * @param swipeToDismissBoxState State for [SwipeToDismissBox], which is used to support the
+ * @param swipeToDismissBoxState State for [BasicSwipeToDismissBox], which is used to support the
* swipe-to-dismiss gesture in [SwipeDismissableNavHost] and can also be used to support
* edge-swiping, using [edgeSwipeToDismiss].
*/
@@ -368,7 +367,7 @@
/**
* Create a [SwipeToDismissBoxState] and remember it.
*
- * @param swipeToDismissBoxState State for [SwipeToDismissBox], which is used to support the
+ * @param swipeToDismissBoxState State for [BasicSwipeToDismissBox], which is used to support the
* swipe-to-dismiss gesture in [SwipeDismissableNavHost] and can also be used to support
* edge-swiping, using [edgeSwipeToDismiss].
*/
diff --git a/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/DemoApp.kt b/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/DemoApp.kt
index 467391d..7e8dcce 100644
--- a/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/DemoApp.kt
+++ b/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/DemoApp.kt
@@ -43,7 +43,6 @@
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import androidx.wear.compose.foundation.ExperimentalWearFoundationApi
-import androidx.wear.compose.foundation.SwipeToDismissBox
import androidx.wear.compose.foundation.SwipeToDismissBoxState
import androidx.wear.compose.foundation.SwipeToDismissKeys
import androidx.wear.compose.foundation.SwipeToDismissValue
@@ -66,6 +65,7 @@
import androidx.wear.compose.material.ListHeader
import androidx.wear.compose.material.LocalTextStyle
import androidx.wear.compose.material.MaterialTheme
+import androidx.wear.compose.material.SwipeToDismissBox
import androidx.wear.compose.material.Text
import kotlinx.coroutines.channels.BufferOverflow
import kotlinx.coroutines.channels.Channel
@@ -97,7 +97,7 @@
) {
SwipeToDismissBox(
state = state,
- userSwipeEnabled = parentDemo != null,
+ hasBackground = parentDemo != null,
backgroundKey = parentDemo?.title ?: SwipeToDismissKeys.Background,
contentKey = currentDemo.title,
) { isBackground ->
diff --git a/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/SwipeToDismissDemo.kt b/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/SwipeToDismissDemo.kt
index 0204c9b..fc5dc53 100644
--- a/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/SwipeToDismissDemo.kt
+++ b/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/SwipeToDismissDemo.kt
@@ -39,7 +39,6 @@
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
-import androidx.wear.compose.foundation.SwipeToDismissBox
import androidx.wear.compose.foundation.SwipeToDismissBoxState
import androidx.wear.compose.foundation.SwipeToDismissKeys
import androidx.wear.compose.foundation.SwipeToDismissValue
@@ -48,6 +47,7 @@
import androidx.wear.compose.foundation.rememberSwipeToDismissBoxState
import androidx.wear.compose.material.Chip
import androidx.wear.compose.material.ChipDefaults
+import androidx.wear.compose.material.SwipeToDismissBox
import androidx.wear.compose.material.Text
/**
@@ -149,7 +149,7 @@
state = state,
backgroundKey = previous ?: SwipeToDismissKeys.Background,
contentKey = current,
- userSwipeEnabled = previous != null,
+ hasBackground = previous != null,
onDismissed = { items.removeLastOrNull() }
) { isBackground ->
val item = if (isBackground) {
diff --git a/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/SwipeToDismissDemoWithState.kt b/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/SwipeToDismissDemoWithState.kt
index 9118854..4496c21 100644
--- a/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/SwipeToDismissDemoWithState.kt
+++ b/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/SwipeToDismissDemoWithState.kt
@@ -31,11 +31,11 @@
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
-import androidx.wear.compose.foundation.SwipeToDismissBox
import androidx.wear.compose.foundation.SwipeToDismissValue
import androidx.wear.compose.foundation.rememberSwipeToDismissBoxState
import androidx.wear.compose.material.Button
import androidx.wear.compose.material.MaterialTheme
+import androidx.wear.compose.material.SwipeToDismissBox
import androidx.wear.compose.material.Text
import androidx.wear.compose.material.ToggleButton
diff --git a/wear/compose/integration-tests/macrobenchmark-target/src/main/java/androidx/wear/compose/integration/macrobenchmark/target/SwipeActivity.kt b/wear/compose/integration-tests/macrobenchmark-target/src/main/java/androidx/wear/compose/integration/macrobenchmark/target/SwipeActivity.kt
index 4c646c0e0..183540f 100644
--- a/wear/compose/integration-tests/macrobenchmark-target/src/main/java/androidx/wear/compose/integration/macrobenchmark/target/SwipeActivity.kt
+++ b/wear/compose/integration-tests/macrobenchmark-target/src/main/java/androidx/wear/compose/integration/macrobenchmark/target/SwipeActivity.kt
@@ -29,9 +29,9 @@
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.semantics.contentDescription
import androidx.compose.ui.semantics.semantics
-import androidx.wear.compose.foundation.SwipeToDismissBox
import androidx.wear.compose.foundation.SwipeToDismissValue
import androidx.wear.compose.foundation.rememberSwipeToDismissBoxState
+import androidx.wear.compose.material.SwipeToDismissBox
import androidx.wear.compose.material.Text
class SwipeActivity : ComponentActivity() {