Rename padding modifier to Spacing
Test: built and ran ui-layout tests
Change-Id: Id614727f8575ef53f4d3d58e3320de12f1895956
diff --git a/ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/benchmark/test/PaddingBenchmark.kt b/ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/benchmark/test/SpacingBenchmark.kt
similarity index 98%
rename from ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/benchmark/test/PaddingBenchmark.kt
rename to ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/benchmark/test/SpacingBenchmark.kt
index e5772b2..2e20e89 100644
--- a/ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/benchmark/test/PaddingBenchmark.kt
+++ b/ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/benchmark/test/SpacingBenchmark.kt
@@ -40,7 +40,7 @@
import androidx.ui.core.setContent
import androidx.ui.layout.Container
import androidx.ui.layout.Padding
-import androidx.ui.layout.padding
+import androidx.ui.layout.Spacing
import androidx.ui.test.ComposeTestCase
import androidx.ui.test.DisableTransitions
import androidx.ui.test.ToggleableTestCase
@@ -201,7 +201,7 @@
@Composable
override fun emitPaddedContainer(padding: Dp, child: @Composable() () -> Unit) {
- Container(expanded = true, modifier = padding(padding), children = child)
+ Container(expanded = true, modifier = Spacing(padding), children = child)
}
}
diff --git a/ui/ui-layout/api/0.1.0-dev02.txt b/ui/ui-layout/api/0.1.0-dev02.txt
index ea2156c..d4a75d0 100644
--- a/ui/ui-layout/api/0.1.0-dev02.txt
+++ b/ui/ui-layout/api/0.1.0-dev02.txt
@@ -1,29 +1,6 @@
// Signature format: 3.0
package androidx.ui.layout {
- public final class AbsolutePadding implements androidx.ui.core.LayoutModifier {
- ctor public AbsolutePadding(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
- ctor public AbsolutePadding();
- method public androidx.ui.core.Dp component1();
- method public androidx.ui.core.Dp component2();
- method public androidx.ui.core.Dp component3();
- method public androidx.ui.core.Dp component4();
- method public androidx.ui.layout.AbsolutePadding copy(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
- method public androidx.ui.core.Dp getBottom();
- method public androidx.ui.core.Dp getLeft();
- method public androidx.ui.core.Dp getRight();
- method public androidx.ui.core.Dp getTop();
- method public androidx.ui.core.IntPx maxIntrinsicHeightOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx width);
- method public androidx.ui.core.IntPx maxIntrinsicWidthOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx height);
- method public androidx.ui.core.IntPx minIntrinsicHeightOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx width);
- method public androidx.ui.core.IntPx minIntrinsicWidthOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx height);
- method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
- method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
- method public Object? modifyParentData(androidx.ui.core.DensityScope, Object? parentData);
- method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxPosition childPosition, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
- method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
- }
-
public final class AlignKt {
ctor public AlignKt();
method public static void Align(androidx.ui.core.Alignment alignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
@@ -185,16 +162,6 @@
enum_constant public static final androidx.ui.layout.MainAxisAlignment Start;
}
- public final class PaddingKt {
- ctor public PaddingKt();
- method public static void Padding(androidx.ui.layout.EdgeInsets padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
- method public static void Padding(androidx.ui.core.Dp left = 0.dp, androidx.ui.core.Dp top = 0.dp, androidx.ui.core.Dp right = 0.dp, androidx.ui.core.Dp bottom = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
- method public static void Padding(androidx.ui.core.Dp padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
- method public static androidx.ui.layout.AbsolutePadding absolutePadding(androidx.ui.core.Dp left = 0.dp, androidx.ui.core.Dp top = 0.dp, androidx.ui.core.Dp right = 0.dp, androidx.ui.core.Dp bottom = 0.dp);
- method public static androidx.ui.layout.AbsolutePadding padding(androidx.ui.core.Dp all = 0.dp);
- method public static androidx.ui.layout.AbsolutePadding padding(androidx.ui.core.Dp horizontal = 0.dp, androidx.ui.core.Dp vertical = 0.dp);
- }
-
public final class SpacerKt {
ctor public SpacerKt();
method public static void FixedSpacer(androidx.ui.core.Dp width, androidx.ui.core.Dp height);
@@ -202,6 +169,15 @@
method public static void WidthSpacer(androidx.ui.core.Dp width);
}
+ public final class SpacingKt {
+ ctor public SpacingKt();
+ method public static void Padding(androidx.ui.layout.EdgeInsets padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ method public static void Padding(androidx.ui.core.Dp left = 0.dp, androidx.ui.core.Dp top = 0.dp, androidx.ui.core.Dp right = 0.dp, androidx.ui.core.Dp bottom = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ method public static void Padding(androidx.ui.core.Dp padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ method public static androidx.ui.core.LayoutModifier Spacing(androidx.ui.core.Dp left = 0.dp, androidx.ui.core.Dp top = 0.dp, androidx.ui.core.Dp right = 0.dp, androidx.ui.core.Dp bottom = 0.dp);
+ method public static androidx.ui.core.LayoutModifier Spacing(androidx.ui.core.Dp all = 0.dp);
+ }
+
public final class StackChildren {
ctor public StackChildren();
method public void aligned(androidx.ui.core.Alignment alignment, boolean loose = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
diff --git a/ui/ui-layout/api/current.txt b/ui/ui-layout/api/current.txt
index ea2156c..d4a75d0 100644
--- a/ui/ui-layout/api/current.txt
+++ b/ui/ui-layout/api/current.txt
@@ -1,29 +1,6 @@
// Signature format: 3.0
package androidx.ui.layout {
- public final class AbsolutePadding implements androidx.ui.core.LayoutModifier {
- ctor public AbsolutePadding(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
- ctor public AbsolutePadding();
- method public androidx.ui.core.Dp component1();
- method public androidx.ui.core.Dp component2();
- method public androidx.ui.core.Dp component3();
- method public androidx.ui.core.Dp component4();
- method public androidx.ui.layout.AbsolutePadding copy(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
- method public androidx.ui.core.Dp getBottom();
- method public androidx.ui.core.Dp getLeft();
- method public androidx.ui.core.Dp getRight();
- method public androidx.ui.core.Dp getTop();
- method public androidx.ui.core.IntPx maxIntrinsicHeightOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx width);
- method public androidx.ui.core.IntPx maxIntrinsicWidthOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx height);
- method public androidx.ui.core.IntPx minIntrinsicHeightOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx width);
- method public androidx.ui.core.IntPx minIntrinsicWidthOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx height);
- method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
- method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
- method public Object? modifyParentData(androidx.ui.core.DensityScope, Object? parentData);
- method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxPosition childPosition, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
- method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
- }
-
public final class AlignKt {
ctor public AlignKt();
method public static void Align(androidx.ui.core.Alignment alignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
@@ -185,16 +162,6 @@
enum_constant public static final androidx.ui.layout.MainAxisAlignment Start;
}
- public final class PaddingKt {
- ctor public PaddingKt();
- method public static void Padding(androidx.ui.layout.EdgeInsets padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
- method public static void Padding(androidx.ui.core.Dp left = 0.dp, androidx.ui.core.Dp top = 0.dp, androidx.ui.core.Dp right = 0.dp, androidx.ui.core.Dp bottom = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
- method public static void Padding(androidx.ui.core.Dp padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
- method public static androidx.ui.layout.AbsolutePadding absolutePadding(androidx.ui.core.Dp left = 0.dp, androidx.ui.core.Dp top = 0.dp, androidx.ui.core.Dp right = 0.dp, androidx.ui.core.Dp bottom = 0.dp);
- method public static androidx.ui.layout.AbsolutePadding padding(androidx.ui.core.Dp all = 0.dp);
- method public static androidx.ui.layout.AbsolutePadding padding(androidx.ui.core.Dp horizontal = 0.dp, androidx.ui.core.Dp vertical = 0.dp);
- }
-
public final class SpacerKt {
ctor public SpacerKt();
method public static void FixedSpacer(androidx.ui.core.Dp width, androidx.ui.core.Dp height);
@@ -202,6 +169,15 @@
method public static void WidthSpacer(androidx.ui.core.Dp width);
}
+ public final class SpacingKt {
+ ctor public SpacingKt();
+ method public static void Padding(androidx.ui.layout.EdgeInsets padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ method public static void Padding(androidx.ui.core.Dp left = 0.dp, androidx.ui.core.Dp top = 0.dp, androidx.ui.core.Dp right = 0.dp, androidx.ui.core.Dp bottom = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ method public static void Padding(androidx.ui.core.Dp padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ method public static androidx.ui.core.LayoutModifier Spacing(androidx.ui.core.Dp left = 0.dp, androidx.ui.core.Dp top = 0.dp, androidx.ui.core.Dp right = 0.dp, androidx.ui.core.Dp bottom = 0.dp);
+ method public static androidx.ui.core.LayoutModifier Spacing(androidx.ui.core.Dp all = 0.dp);
+ }
+
public final class StackChildren {
ctor public StackChildren();
method public void aligned(androidx.ui.core.Alignment alignment, boolean loose = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
diff --git a/ui/ui-layout/api/public_plus_experimental_0.1.0-dev02.txt b/ui/ui-layout/api/public_plus_experimental_0.1.0-dev02.txt
index ea2156c..d4a75d0 100644
--- a/ui/ui-layout/api/public_plus_experimental_0.1.0-dev02.txt
+++ b/ui/ui-layout/api/public_plus_experimental_0.1.0-dev02.txt
@@ -1,29 +1,6 @@
// Signature format: 3.0
package androidx.ui.layout {
- public final class AbsolutePadding implements androidx.ui.core.LayoutModifier {
- ctor public AbsolutePadding(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
- ctor public AbsolutePadding();
- method public androidx.ui.core.Dp component1();
- method public androidx.ui.core.Dp component2();
- method public androidx.ui.core.Dp component3();
- method public androidx.ui.core.Dp component4();
- method public androidx.ui.layout.AbsolutePadding copy(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
- method public androidx.ui.core.Dp getBottom();
- method public androidx.ui.core.Dp getLeft();
- method public androidx.ui.core.Dp getRight();
- method public androidx.ui.core.Dp getTop();
- method public androidx.ui.core.IntPx maxIntrinsicHeightOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx width);
- method public androidx.ui.core.IntPx maxIntrinsicWidthOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx height);
- method public androidx.ui.core.IntPx minIntrinsicHeightOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx width);
- method public androidx.ui.core.IntPx minIntrinsicWidthOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx height);
- method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
- method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
- method public Object? modifyParentData(androidx.ui.core.DensityScope, Object? parentData);
- method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxPosition childPosition, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
- method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
- }
-
public final class AlignKt {
ctor public AlignKt();
method public static void Align(androidx.ui.core.Alignment alignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
@@ -185,16 +162,6 @@
enum_constant public static final androidx.ui.layout.MainAxisAlignment Start;
}
- public final class PaddingKt {
- ctor public PaddingKt();
- method public static void Padding(androidx.ui.layout.EdgeInsets padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
- method public static void Padding(androidx.ui.core.Dp left = 0.dp, androidx.ui.core.Dp top = 0.dp, androidx.ui.core.Dp right = 0.dp, androidx.ui.core.Dp bottom = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
- method public static void Padding(androidx.ui.core.Dp padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
- method public static androidx.ui.layout.AbsolutePadding absolutePadding(androidx.ui.core.Dp left = 0.dp, androidx.ui.core.Dp top = 0.dp, androidx.ui.core.Dp right = 0.dp, androidx.ui.core.Dp bottom = 0.dp);
- method public static androidx.ui.layout.AbsolutePadding padding(androidx.ui.core.Dp all = 0.dp);
- method public static androidx.ui.layout.AbsolutePadding padding(androidx.ui.core.Dp horizontal = 0.dp, androidx.ui.core.Dp vertical = 0.dp);
- }
-
public final class SpacerKt {
ctor public SpacerKt();
method public static void FixedSpacer(androidx.ui.core.Dp width, androidx.ui.core.Dp height);
@@ -202,6 +169,15 @@
method public static void WidthSpacer(androidx.ui.core.Dp width);
}
+ public final class SpacingKt {
+ ctor public SpacingKt();
+ method public static void Padding(androidx.ui.layout.EdgeInsets padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ method public static void Padding(androidx.ui.core.Dp left = 0.dp, androidx.ui.core.Dp top = 0.dp, androidx.ui.core.Dp right = 0.dp, androidx.ui.core.Dp bottom = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ method public static void Padding(androidx.ui.core.Dp padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ method public static androidx.ui.core.LayoutModifier Spacing(androidx.ui.core.Dp left = 0.dp, androidx.ui.core.Dp top = 0.dp, androidx.ui.core.Dp right = 0.dp, androidx.ui.core.Dp bottom = 0.dp);
+ method public static androidx.ui.core.LayoutModifier Spacing(androidx.ui.core.Dp all = 0.dp);
+ }
+
public final class StackChildren {
ctor public StackChildren();
method public void aligned(androidx.ui.core.Alignment alignment, boolean loose = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
diff --git a/ui/ui-layout/api/public_plus_experimental_current.txt b/ui/ui-layout/api/public_plus_experimental_current.txt
index ea2156c..d4a75d0 100644
--- a/ui/ui-layout/api/public_plus_experimental_current.txt
+++ b/ui/ui-layout/api/public_plus_experimental_current.txt
@@ -1,29 +1,6 @@
// Signature format: 3.0
package androidx.ui.layout {
- public final class AbsolutePadding implements androidx.ui.core.LayoutModifier {
- ctor public AbsolutePadding(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
- ctor public AbsolutePadding();
- method public androidx.ui.core.Dp component1();
- method public androidx.ui.core.Dp component2();
- method public androidx.ui.core.Dp component3();
- method public androidx.ui.core.Dp component4();
- method public androidx.ui.layout.AbsolutePadding copy(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
- method public androidx.ui.core.Dp getBottom();
- method public androidx.ui.core.Dp getLeft();
- method public androidx.ui.core.Dp getRight();
- method public androidx.ui.core.Dp getTop();
- method public androidx.ui.core.IntPx maxIntrinsicHeightOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx width);
- method public androidx.ui.core.IntPx maxIntrinsicWidthOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx height);
- method public androidx.ui.core.IntPx minIntrinsicHeightOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx width);
- method public androidx.ui.core.IntPx minIntrinsicWidthOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx height);
- method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
- method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
- method public Object? modifyParentData(androidx.ui.core.DensityScope, Object? parentData);
- method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxPosition childPosition, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
- method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
- }
-
public final class AlignKt {
ctor public AlignKt();
method public static void Align(androidx.ui.core.Alignment alignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
@@ -185,16 +162,6 @@
enum_constant public static final androidx.ui.layout.MainAxisAlignment Start;
}
- public final class PaddingKt {
- ctor public PaddingKt();
- method public static void Padding(androidx.ui.layout.EdgeInsets padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
- method public static void Padding(androidx.ui.core.Dp left = 0.dp, androidx.ui.core.Dp top = 0.dp, androidx.ui.core.Dp right = 0.dp, androidx.ui.core.Dp bottom = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
- method public static void Padding(androidx.ui.core.Dp padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
- method public static androidx.ui.layout.AbsolutePadding absolutePadding(androidx.ui.core.Dp left = 0.dp, androidx.ui.core.Dp top = 0.dp, androidx.ui.core.Dp right = 0.dp, androidx.ui.core.Dp bottom = 0.dp);
- method public static androidx.ui.layout.AbsolutePadding padding(androidx.ui.core.Dp all = 0.dp);
- method public static androidx.ui.layout.AbsolutePadding padding(androidx.ui.core.Dp horizontal = 0.dp, androidx.ui.core.Dp vertical = 0.dp);
- }
-
public final class SpacerKt {
ctor public SpacerKt();
method public static void FixedSpacer(androidx.ui.core.Dp width, androidx.ui.core.Dp height);
@@ -202,6 +169,15 @@
method public static void WidthSpacer(androidx.ui.core.Dp width);
}
+ public final class SpacingKt {
+ ctor public SpacingKt();
+ method public static void Padding(androidx.ui.layout.EdgeInsets padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ method public static void Padding(androidx.ui.core.Dp left = 0.dp, androidx.ui.core.Dp top = 0.dp, androidx.ui.core.Dp right = 0.dp, androidx.ui.core.Dp bottom = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ method public static void Padding(androidx.ui.core.Dp padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ method public static androidx.ui.core.LayoutModifier Spacing(androidx.ui.core.Dp left = 0.dp, androidx.ui.core.Dp top = 0.dp, androidx.ui.core.Dp right = 0.dp, androidx.ui.core.Dp bottom = 0.dp);
+ method public static androidx.ui.core.LayoutModifier Spacing(androidx.ui.core.Dp all = 0.dp);
+ }
+
public final class StackChildren {
ctor public StackChildren();
method public void aligned(androidx.ui.core.Alignment alignment, boolean loose = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
diff --git a/ui/ui-layout/api/restricted_0.1.0-dev02.txt b/ui/ui-layout/api/restricted_0.1.0-dev02.txt
index ea2156c..d4a75d0 100644
--- a/ui/ui-layout/api/restricted_0.1.0-dev02.txt
+++ b/ui/ui-layout/api/restricted_0.1.0-dev02.txt
@@ -1,29 +1,6 @@
// Signature format: 3.0
package androidx.ui.layout {
- public final class AbsolutePadding implements androidx.ui.core.LayoutModifier {
- ctor public AbsolutePadding(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
- ctor public AbsolutePadding();
- method public androidx.ui.core.Dp component1();
- method public androidx.ui.core.Dp component2();
- method public androidx.ui.core.Dp component3();
- method public androidx.ui.core.Dp component4();
- method public androidx.ui.layout.AbsolutePadding copy(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
- method public androidx.ui.core.Dp getBottom();
- method public androidx.ui.core.Dp getLeft();
- method public androidx.ui.core.Dp getRight();
- method public androidx.ui.core.Dp getTop();
- method public androidx.ui.core.IntPx maxIntrinsicHeightOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx width);
- method public androidx.ui.core.IntPx maxIntrinsicWidthOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx height);
- method public androidx.ui.core.IntPx minIntrinsicHeightOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx width);
- method public androidx.ui.core.IntPx minIntrinsicWidthOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx height);
- method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
- method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
- method public Object? modifyParentData(androidx.ui.core.DensityScope, Object? parentData);
- method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxPosition childPosition, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
- method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
- }
-
public final class AlignKt {
ctor public AlignKt();
method public static void Align(androidx.ui.core.Alignment alignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
@@ -185,16 +162,6 @@
enum_constant public static final androidx.ui.layout.MainAxisAlignment Start;
}
- public final class PaddingKt {
- ctor public PaddingKt();
- method public static void Padding(androidx.ui.layout.EdgeInsets padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
- method public static void Padding(androidx.ui.core.Dp left = 0.dp, androidx.ui.core.Dp top = 0.dp, androidx.ui.core.Dp right = 0.dp, androidx.ui.core.Dp bottom = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
- method public static void Padding(androidx.ui.core.Dp padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
- method public static androidx.ui.layout.AbsolutePadding absolutePadding(androidx.ui.core.Dp left = 0.dp, androidx.ui.core.Dp top = 0.dp, androidx.ui.core.Dp right = 0.dp, androidx.ui.core.Dp bottom = 0.dp);
- method public static androidx.ui.layout.AbsolutePadding padding(androidx.ui.core.Dp all = 0.dp);
- method public static androidx.ui.layout.AbsolutePadding padding(androidx.ui.core.Dp horizontal = 0.dp, androidx.ui.core.Dp vertical = 0.dp);
- }
-
public final class SpacerKt {
ctor public SpacerKt();
method public static void FixedSpacer(androidx.ui.core.Dp width, androidx.ui.core.Dp height);
@@ -202,6 +169,15 @@
method public static void WidthSpacer(androidx.ui.core.Dp width);
}
+ public final class SpacingKt {
+ ctor public SpacingKt();
+ method public static void Padding(androidx.ui.layout.EdgeInsets padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ method public static void Padding(androidx.ui.core.Dp left = 0.dp, androidx.ui.core.Dp top = 0.dp, androidx.ui.core.Dp right = 0.dp, androidx.ui.core.Dp bottom = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ method public static void Padding(androidx.ui.core.Dp padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ method public static androidx.ui.core.LayoutModifier Spacing(androidx.ui.core.Dp left = 0.dp, androidx.ui.core.Dp top = 0.dp, androidx.ui.core.Dp right = 0.dp, androidx.ui.core.Dp bottom = 0.dp);
+ method public static androidx.ui.core.LayoutModifier Spacing(androidx.ui.core.Dp all = 0.dp);
+ }
+
public final class StackChildren {
ctor public StackChildren();
method public void aligned(androidx.ui.core.Alignment alignment, boolean loose = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
diff --git a/ui/ui-layout/api/restricted_current.txt b/ui/ui-layout/api/restricted_current.txt
index ea2156c..d4a75d0 100644
--- a/ui/ui-layout/api/restricted_current.txt
+++ b/ui/ui-layout/api/restricted_current.txt
@@ -1,29 +1,6 @@
// Signature format: 3.0
package androidx.ui.layout {
- public final class AbsolutePadding implements androidx.ui.core.LayoutModifier {
- ctor public AbsolutePadding(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
- ctor public AbsolutePadding();
- method public androidx.ui.core.Dp component1();
- method public androidx.ui.core.Dp component2();
- method public androidx.ui.core.Dp component3();
- method public androidx.ui.core.Dp component4();
- method public androidx.ui.layout.AbsolutePadding copy(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
- method public androidx.ui.core.Dp getBottom();
- method public androidx.ui.core.Dp getLeft();
- method public androidx.ui.core.Dp getRight();
- method public androidx.ui.core.Dp getTop();
- method public androidx.ui.core.IntPx maxIntrinsicHeightOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx width);
- method public androidx.ui.core.IntPx maxIntrinsicWidthOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx height);
- method public androidx.ui.core.IntPx minIntrinsicHeightOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx width);
- method public androidx.ui.core.IntPx minIntrinsicWidthOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx height);
- method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
- method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
- method public Object? modifyParentData(androidx.ui.core.DensityScope, Object? parentData);
- method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxPosition childPosition, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
- method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
- }
-
public final class AlignKt {
ctor public AlignKt();
method public static void Align(androidx.ui.core.Alignment alignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
@@ -185,16 +162,6 @@
enum_constant public static final androidx.ui.layout.MainAxisAlignment Start;
}
- public final class PaddingKt {
- ctor public PaddingKt();
- method public static void Padding(androidx.ui.layout.EdgeInsets padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
- method public static void Padding(androidx.ui.core.Dp left = 0.dp, androidx.ui.core.Dp top = 0.dp, androidx.ui.core.Dp right = 0.dp, androidx.ui.core.Dp bottom = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
- method public static void Padding(androidx.ui.core.Dp padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
- method public static androidx.ui.layout.AbsolutePadding absolutePadding(androidx.ui.core.Dp left = 0.dp, androidx.ui.core.Dp top = 0.dp, androidx.ui.core.Dp right = 0.dp, androidx.ui.core.Dp bottom = 0.dp);
- method public static androidx.ui.layout.AbsolutePadding padding(androidx.ui.core.Dp all = 0.dp);
- method public static androidx.ui.layout.AbsolutePadding padding(androidx.ui.core.Dp horizontal = 0.dp, androidx.ui.core.Dp vertical = 0.dp);
- }
-
public final class SpacerKt {
ctor public SpacerKt();
method public static void FixedSpacer(androidx.ui.core.Dp width, androidx.ui.core.Dp height);
@@ -202,6 +169,15 @@
method public static void WidthSpacer(androidx.ui.core.Dp width);
}
+ public final class SpacingKt {
+ ctor public SpacingKt();
+ method public static void Padding(androidx.ui.layout.EdgeInsets padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ method public static void Padding(androidx.ui.core.Dp left = 0.dp, androidx.ui.core.Dp top = 0.dp, androidx.ui.core.Dp right = 0.dp, androidx.ui.core.Dp bottom = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ method public static void Padding(androidx.ui.core.Dp padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ method public static androidx.ui.core.LayoutModifier Spacing(androidx.ui.core.Dp left = 0.dp, androidx.ui.core.Dp top = 0.dp, androidx.ui.core.Dp right = 0.dp, androidx.ui.core.Dp bottom = 0.dp);
+ method public static androidx.ui.core.LayoutModifier Spacing(androidx.ui.core.Dp all = 0.dp);
+ }
+
public final class StackChildren {
ctor public StackChildren();
method public void aligned(androidx.ui.core.Alignment alignment, boolean loose = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
diff --git a/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/PaddingSample.kt b/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/SpacingSample.kt
similarity index 81%
rename from ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/PaddingSample.kt
rename to ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/SpacingSample.kt
index 9b6928b..4dc05d3 100644
--- a/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/PaddingSample.kt
+++ b/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/SpacingSample.kt
@@ -25,17 +25,16 @@
import androidx.ui.layout.Container
import androidx.ui.layout.EdgeInsets
import androidx.ui.layout.Padding
-import androidx.ui.layout.absolutePadding
-import androidx.ui.layout.padding
+import androidx.ui.layout.Spacing
@Sampled
@Composable
-fun AbsolutePaddingModifier() {
+fun SpacingModifier() {
Align(Alignment.TopLeft) {
Container {
DrawRectangle(Color.Gray)
SizedRectangle(
- modifier = absolutePadding(
+ modifier = Spacing(
left = 20.dp, top = 30.dp, right = 20.dp, bottom = 30.dp
),
color = Color.Blue,
@@ -48,28 +47,12 @@
@Sampled
@Composable
-fun PaddingModifier() {
+fun SpacingAllModifier() {
Align(Alignment.TopLeft) {
Container {
DrawRectangle(Color.Gray)
SizedRectangle(
- modifier = padding(all = 20.dp),
- color = Color.Blue,
- width = 50.dp,
- height = 50.dp
- )
- }
- }
-}
-
-@Sampled
-@Composable
-fun SymmetricalPaddingModifier() {
- Align(Alignment.TopLeft) {
- Container {
- DrawRectangle(Color.Gray)
- SizedRectangle(
- modifier = padding(horizontal = 20.dp, vertical = 30.dp),
+ modifier = Spacing(all = 20.dp),
color = Color.Blue,
width = 50.dp,
height = 50.dp
diff --git a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/AbsolutePaddingModifierTest.kt b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/SpacingModifierTest.kt
similarity index 62%
rename from ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/AbsolutePaddingModifierTest.kt
rename to ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/SpacingModifierTest.kt
index 5b3559d..f7c0df1 100644
--- a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/AbsolutePaddingModifierTest.kt
+++ b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/SpacingModifierTest.kt
@@ -36,8 +36,7 @@
import androidx.ui.core.Modifier
import androidx.ui.core.min
import androidx.ui.layout.AspectRatio
-import androidx.ui.layout.absolutePadding
-import androidx.ui.layout.padding
+import androidx.ui.layout.Spacing
import org.junit.Assert
import org.junit.Test
import org.junit.runner.RunWith
@@ -45,87 +44,71 @@
import java.util.concurrent.CountDownLatch
import java.util.concurrent.TimeUnit
-/**
- * A trivial layout that applies a [Modifier] and measures/lays out a single child
- * with the same constraints it received.
- */
-@Composable
-private fun TestBox(modifier: Modifier = Modifier.None, body: @Composable() () -> Unit) {
- Layout(children = body, modifier = modifier) { measurables, constraints ->
- require(measurables.size == 1) {
- "TestBox received ${measurables.size} children; must have exactly 1"
- }
- val placeable = measurables.first().measure(constraints)
- layout(
- min(placeable.width, constraints.maxWidth),
- min(placeable.height, constraints.maxHeight)
- ) {
- placeable.place(IntPx.Zero, IntPx.Zero)
- }
- }
-}
-
@SmallTest
@RunWith(JUnit4::class)
-class AbsolutePaddingModifierTest : LayoutTest() {
+class SpacingModifierTest : LayoutTest() {
/**
- * Tests that the [absolutePadding] and [padding] factories return equivalent modifiers.
+ * Tests that the [Spacing]-all and [Spacing] factories return equivalent modifiers.
*/
@Test
fun allEqualToAbsoluteWithExplicitSides() {
Assert.assertEquals(
- absolutePadding(10.dp, 10.dp, 10.dp, 10.dp),
- padding(10.dp)
+ Spacing(10.dp, 10.dp, 10.dp, 10.dp),
+ Spacing(10.dp)
)
}
/**
- * Tests the top-level [padding] modifier factory with a single "all sides" argument,
- * checking that a uniform padding of all sides is applied to a child when plenty of space is
- * available for both content and padding.
+ * Tests the top-level [Spacing] modifier factory with a single "all sides" argument,
+ * checking that a uniform spacing of all sides is applied to a child when plenty of space is
+ * available for both content and spacing.
*/
@Test
- fun paddingAllAppliedToChild() = withDensity(density) {
- val padding = 10.dp
- testPaddingIsAppliedImplementation(padding) { child: @Composable() () -> Unit ->
- TestBox(modifier = padding(padding)) {
+ fun spacingAllAppliedToChild() = withDensity(density) {
+ val spacing = 10.dp
+ testSpacingIsAppliedImplementation(spacing) { child: @Composable() () -> Unit ->
+ TestBox(modifier = Spacing(spacing)) {
child()
}
}
}
/**
- * Tests the top-level [absolutePadding] modifier factory with different values for left, top,
- * right and bottom paddings, checking that this padding is applied as expected when plenty of
- * space is available for both the content and padding.
+ * Tests the top-level [Spacing] modifier factory with different values for left, top,
+ * right and bottom spacings, checking that this spacing is applied as expected when plenty of
+ * space is available for both the content and spacing.
*/
@Test
- fun absolutePaddingAppliedToChild() {
- val padding = absolutePadding(10.dp, 15.dp, 20.dp, 30.dp)
- testPaddingWithDifferentInsetsImplementation(
- padding.left,
- padding.top,
- padding.right,
- padding.bottom
+ fun absoluteSpacingAppliedToChild() {
+ val spacingLeft = 10.dp
+ val spacingTop = 15.dp
+ val spacingRight = 20.dp
+ val spacingBottom = 30.dp
+ val spacing = Spacing(spacingLeft, spacingTop, spacingRight, spacingBottom)
+ testSpacingWithDifferentInsetsImplementation(
+ spacingLeft,
+ spacingTop,
+ spacingRight,
+ spacingBottom
) { child: @Composable() () -> Unit ->
- TestBox(modifier = padding) {
+ TestBox(modifier = spacing) {
child()
}
}
}
/**
- * Tests the result of the [padding] modifier factory when not enough space is available to
- * accommodate both the padding and the content. In this case, the padding should still be
- * applied, modifying the final position of the content by its left and top paddings even if it
+ * Tests the result of the [Spacing] modifier factory when not enough space is available to
+ * accommodate both the spacing and the content. In this case, the spacing should still be
+ * applied, modifying the final position of the content by its left and top spacings even if it
* would result in constraints that the child content is unable or unwilling to satisfy.
*/
@Test
fun insufficientSpaceAvailable() = withDensity(density) {
- val padding = 30.dp
- testPaddingWithInsufficientSpaceImplementation(padding) { child: @Composable() () -> Unit ->
- TestBox(modifier = padding(padding)) {
+ val spacing = 30.dp
+ testSpacingWithInsufficientSpaceImplementation(spacing) { child: @Composable() () -> Unit ->
+ TestBox(modifier = Spacing(spacing)) {
child()
}
}
@@ -133,50 +116,50 @@
@Test
fun intrinsicMeasurements() = withDensity(density) {
- val padding = 100.ipx.toDp()
+ val spacing = 100.ipx.toDp()
val latch = CountDownLatch(1)
var error: Throwable? = null
testIntrinsics(@Composable {
- TestBox(modifier = padding(padding)) {
+ TestBox(modifier = Spacing(spacing)) {
Container(AspectRatio(2f)) { }
}
}) { minIntrinsicWidth, minIntrinsicHeight, maxIntrinsicWidth, maxIntrinsicHeight ->
- // Padding is applied on both sides of an axis
- val totalAxisPadding = (padding * 2).toIntPx()
+ // Spacing is applied on both sides of an axis
+ val totalAxisSpacing = (spacing * 2).toIntPx()
- // When the width/height is measured as 3 x the padding
- val testDimension = (padding * 3).toIntPx()
- // The actual dimension for the AspectRatio will be: test dimension - total padding
- val actualAspectRatioDimension = testDimension - totalAxisPadding
+ // When the width/height is measured as 3 x the spacing
+ val testDimension = (spacing * 3).toIntPx()
+ // The actual dimension for the AspectRatio will be: test dimension - total spacing
+ val actualAspectRatioDimension = testDimension - totalAxisSpacing
// When we measure the width first, the height will be half
val expectedAspectRatioHeight = actualAspectRatioDimension / 2f
// When we measure the height first, the width will be double
val expectedAspectRatioWidth = actualAspectRatioDimension * 2
- // Add back the padding on both sides to get the total expected height
- val expectedTotalHeight = expectedAspectRatioHeight + totalAxisPadding
- // Add back the padding on both sides to get the total expected height
- val expectedTotalWidth = expectedAspectRatioWidth + totalAxisPadding
+ // Add back the spacing on both sides to get the total expected height
+ val expectedTotalHeight = expectedAspectRatioHeight + totalAxisSpacing
+ // Add back the spacing on both sides to get the total expected height
+ val expectedTotalWidth = expectedAspectRatioWidth + totalAxisSpacing
try {
// Min width.
- assertEquals(totalAxisPadding, minIntrinsicWidth(0.dp.toIntPx()))
+ assertEquals(totalAxisSpacing, minIntrinsicWidth(0.dp.toIntPx()))
assertEquals(expectedTotalWidth, minIntrinsicWidth(testDimension))
- assertEquals(totalAxisPadding, minIntrinsicWidth(IntPx.Infinity))
+ assertEquals(totalAxisSpacing, minIntrinsicWidth(IntPx.Infinity))
// Min height.
- assertEquals(totalAxisPadding, minIntrinsicHeight(0.dp.toIntPx()))
+ assertEquals(totalAxisSpacing, minIntrinsicHeight(0.dp.toIntPx()))
assertEquals(expectedTotalHeight, minIntrinsicHeight(testDimension))
- assertEquals(totalAxisPadding, minIntrinsicHeight(IntPx.Infinity))
+ assertEquals(totalAxisSpacing, minIntrinsicHeight(IntPx.Infinity))
// Max width.
- assertEquals(totalAxisPadding, maxIntrinsicWidth(0.dp.toIntPx()))
+ assertEquals(totalAxisSpacing, maxIntrinsicWidth(0.dp.toIntPx()))
assertEquals(expectedTotalWidth, maxIntrinsicWidth(testDimension))
- assertEquals(totalAxisPadding, maxIntrinsicWidth(IntPx.Infinity))
+ assertEquals(totalAxisSpacing, maxIntrinsicWidth(IntPx.Infinity))
// Max height.
- assertEquals(totalAxisPadding, maxIntrinsicHeight(0.dp.toIntPx()))
+ assertEquals(totalAxisSpacing, maxIntrinsicHeight(0.dp.toIntPx()))
assertEquals(expectedTotalHeight, maxIntrinsicHeight(testDimension))
- assertEquals(totalAxisPadding, maxIntrinsicHeight(IntPx.Infinity))
+ assertEquals(totalAxisSpacing, maxIntrinsicHeight(IntPx.Infinity))
} catch (t: Throwable) {
error = t
} finally {
@@ -190,13 +173,13 @@
Unit
}
- private fun testPaddingIsAppliedImplementation(
- padding: Dp,
- paddingContainer: @Composable() (@Composable() () -> Unit) -> Unit
+ private fun testSpacingIsAppliedImplementation(
+ spacing: Dp,
+ spacingContainer: @Composable() (@Composable() () -> Unit) -> Unit
) = withDensity(density) {
val sizeDp = 50.dp
val size = sizeDp.toIntPx()
- val paddingPx = padding.toIntPx()
+ val spacingPx = spacing.toIntPx()
val drawLatch = CountDownLatch(1)
var childSize = PxSize(-1.px, -1.px)
@@ -214,7 +197,7 @@
})
}
}
- paddingContainer(children)
+ spacingContainer(children)
}
}
}
@@ -223,22 +206,22 @@
val root = findAndroidComposeView()
waitForDraw(root)
- val innerSize = (size - paddingPx * 2)
+ val innerSize = (size - spacingPx * 2)
assertEquals(PxSize(innerSize, innerSize), childSize)
- val left = ((root.width.ipx - size) / 2) + paddingPx
- val top = ((root.height.ipx - size) / 2) + paddingPx
+ val left = ((root.width.ipx - size) / 2) + spacingPx
+ val top = ((root.height.ipx - size) / 2) + spacingPx
assertEquals(
PxPosition(left.toPx(), top.toPx()),
childPosition
)
}
- private fun testPaddingWithDifferentInsetsImplementation(
+ private fun testSpacingWithDifferentInsetsImplementation(
left: Dp,
top: Dp,
right: Dp,
bottom: Dp,
- paddingContainer: @Composable() ((@Composable() () -> Unit) -> Unit)
+ spacingContainer: @Composable() ((@Composable() () -> Unit) -> Unit)
) = withDensity(density) {
val sizeDp = 50.dp
val size = sizeDp.toIntPx()
@@ -259,7 +242,7 @@
})
}
}
- paddingContainer(children)
+ spacingContainer(children)
}
}
}
@@ -268,32 +251,32 @@
val root = findAndroidComposeView()
waitForDraw(root)
- val paddingLeft = left.toIntPx()
- val paddingRight = right.toIntPx()
- val paddingTop = top.toIntPx()
- val paddingBottom = bottom.toIntPx()
+ val spacingLeft = left.toIntPx()
+ val spacingRight = right.toIntPx()
+ val spacingTop = top.toIntPx()
+ val spacingBottom = bottom.toIntPx()
assertEquals(
PxSize(
- size - paddingLeft - paddingRight,
- size - paddingTop - paddingBottom
+ size - spacingLeft - spacingRight,
+ size - spacingTop - spacingBottom
),
childSize
)
- val viewLeft = ((root.width.ipx - size) / 2) + paddingLeft
- val viewTop = ((root.height.ipx - size) / 2) + paddingTop
+ val viewLeft = ((root.width.ipx - size) / 2) + spacingLeft
+ val viewTop = ((root.height.ipx - size) / 2) + spacingTop
assertEquals(
PxPosition(viewLeft.toPx(), viewTop.toPx()),
childPosition
)
}
- private fun testPaddingWithInsufficientSpaceImplementation(
- padding: Dp,
- paddingContainer: @Composable() (@Composable() () -> Unit) -> Unit
+ private fun testSpacingWithInsufficientSpaceImplementation(
+ spacing: Dp,
+ spacingContainer: @Composable() (@Composable() () -> Unit) -> Unit
) = withDensity(density) {
val sizeDp = 50.dp
val size = sizeDp.toIntPx()
- val paddingPx = padding.toIntPx()
+ val spacingPx = spacing.toIntPx()
val drawLatch = CountDownLatch(1)
var childSize = PxSize(-1.px, -1.px)
@@ -301,7 +284,7 @@
show {
Center {
ConstrainedBox(constraints = DpConstraints.tightConstraints(sizeDp, sizeDp)) {
- paddingContainer {
+ spacingContainer {
Container {
OnPositioned( coordinates ->
childSize = coordinates.size
@@ -319,8 +302,28 @@
waitForDraw(root)
assertEquals(PxSize(0.px, 0.px), childSize)
- val left = ((root.width.ipx - size) / 2) + paddingPx
- val top = ((root.height.ipx - size) / 2) + paddingPx
+ val left = ((root.width.ipx - size) / 2) + spacingPx
+ val top = ((root.height.ipx - size) / 2) + spacingPx
assertEquals(PxPosition(left.toPx(), top.toPx()), childPosition)
}
+
+ /**
+ * A trivial layout that applies a [Modifier] and measures/lays out a single child
+ * with the same constraints it received.
+ */
+ @Composable
+ private fun TestBox(modifier: Modifier = Modifier.None, body: @Composable() () -> Unit) {
+ Layout(children = body, modifier = modifier) { measurables, constraints ->
+ require(measurables.size == 1) {
+ "TestBox received ${measurables.size} children; must have exactly 1"
+ }
+ val placeable = measurables.first().measure(constraints)
+ layout(
+ min(placeable.width, constraints.maxWidth),
+ min(placeable.height, constraints.maxHeight)
+ ) {
+ placeable.place(IntPx.Zero, IntPx.Zero)
+ }
+ }
+ }
}
diff --git a/ui/ui-layout/src/main/java/androidx/ui/layout/Padding.kt b/ui/ui-layout/src/main/java/androidx/ui/layout/Spacing.kt
similarity index 89%
rename from ui/ui-layout/src/main/java/androidx/ui/layout/Padding.kt
rename to ui/ui-layout/src/main/java/androidx/ui/layout/Spacing.kt
index 697db36..aa8441a 100644
--- a/ui/ui-layout/src/main/java/androidx/ui/layout/Padding.kt
+++ b/ui/ui-layout/src/main/java/androidx/ui/layout/Spacing.kt
@@ -35,43 +35,34 @@
import androidx.ui.core.ipx
/**
- * Padding on all sides.
+ * Layout modifier that applies whitespace spacing on specified sides of the target layout.
*
* Example usage:
- * @sample androidx.ui.layout.samples.AbsolutePaddingModifier
+ * @sample androidx.ui.layout.samples.SpacingModifier
*/
-fun absolutePadding(
+fun Spacing(
left: Dp = 0.dp,
top: Dp = 0.dp,
right: Dp = 0.dp,
bottom: Dp = 0.dp
-) = AbsolutePadding(left = left, top = top, right = right, bottom = bottom)
+): LayoutModifier = SpacingModifier(left = left, top = top, right = right, bottom = bottom)
/**
- * Padding with [all] dp on each side.
+ * Layout modifier that applies the same whitespace spacing of [all] dp on each side
+ * of the target layout.
*
* Example usage:
- * @sample androidx.ui.layout.samples.PaddingModifier
+ * @sample androidx.ui.layout.samples.SpacingAllModifier
*/
-fun padding(all: Dp = 0.dp) = AbsolutePadding(left = all, top = all, right = all, bottom = all)
-
-/**
- * Padding with [horizontal] dp of padding on the left and right and [vertical] dp of padding
- * on the top and bottom.
- *
- * Example usage:
- * @sample androidx.ui.layout.samples.SymmetricalPaddingModifier
- */
-fun padding(
- horizontal: Dp = 0.dp,
- vertical: Dp = 0.dp
-) = AbsolutePadding(left = horizontal, top = vertical, right = horizontal, bottom = vertical)
+fun Spacing(all: Dp = 0.dp): LayoutModifier =
+ SpacingModifier(left = all, top = all, right = all, bottom = all)
/**
* A [LayoutModifier] that adds [left], [top], [right] and [bottom] padding
- * to the wrapped UI element.
+ * to the wrapped layout.
+ * Used as shared implementation for the [Spacing] overloads.
*/
-data class AbsolutePadding(
+private data class SpacingModifier(
val left: Dp = 0.dp,
val top: Dp = 0.dp,
val right: Dp = 0.dp,
diff --git a/ui/ui-material/integration-tests/material-studies/src/main/java/androidx/ui/material/studies/rally/RallyActivity.kt b/ui/ui-material/integration-tests/material-studies/src/main/java/androidx/ui/material/studies/rally/RallyActivity.kt
index bb42f13..77f1d31 100644
--- a/ui/ui-material/integration-tests/material-studies/src/main/java/androidx/ui/material/studies/rally/RallyActivity.kt
+++ b/ui/ui-material/integration-tests/material-studies/src/main/java/androidx/ui/material/studies/rally/RallyActivity.kt
@@ -27,7 +27,7 @@
import androidx.ui.layout.Column
import androidx.ui.layout.HeightSpacer
import androidx.ui.layout.LayoutSize
-import androidx.ui.layout.padding
+import androidx.ui.layout.Spacing
import androidx.ui.material.Tab
import androidx.ui.material.TabRow
import androidx.ui.material.studies.Scaffold
@@ -65,7 +65,7 @@
@Composable
fun RallyBody() {
VerticalScroller {
- Column(modifier = padding(16.dp), mainAxisSize = LayoutSize.Expand) {
+ Column(modifier = Spacing(16.dp), mainAxisSize = LayoutSize.Expand) {
RallyAlertCard()
HeightSpacer(height = 10.dp)
RallyAccountsOverviewCard()
diff --git a/ui/ui-material/integration-tests/material-studies/src/main/java/androidx/ui/material/studies/rally/RallyCards.kt b/ui/ui-material/integration-tests/material-studies/src/main/java/androidx/ui/material/studies/rally/RallyCards.kt
index a54e8eb..b81b909 100644
--- a/ui/ui-material/integration-tests/material-studies/src/main/java/androidx/ui/material/studies/rally/RallyCards.kt
+++ b/ui/ui-material/integration-tests/material-studies/src/main/java/androidx/ui/material/studies/rally/RallyCards.kt
@@ -33,9 +33,9 @@
import androidx.ui.layout.LayoutSize
import androidx.ui.layout.MainAxisAlignment
import androidx.ui.layout.Row
+import androidx.ui.layout.Spacing
import androidx.ui.layout.Stack
import androidx.ui.layout.WidthSpacer
-import androidx.ui.layout.padding
import androidx.ui.material.Button
import androidx.ui.material.Divider
import androidx.ui.material.TextButtonStyle
@@ -49,7 +49,7 @@
@Composable
fun RallyAlertCard() {
Card {
- Column(padding(12.dp)) {
+ Column(Spacing(12.dp)) {
Row(
mainAxisSize = LayoutSize.Expand,
mainAxisAlignment = MainAxisAlignment.SpaceBetween
@@ -57,7 +57,11 @@
Text(text = "Alerts", style = +themeTextStyle { subtitle2 })
Button(text = "See All", }, style = TextButtonStyle())
}
- Divider(padding(vertical = 12.dp), color = +themeColor { background }, height = 2.dp)
+ Divider(
+ Spacing(top = 12.dp, bottom = 12.dp),
+ color = +themeColor { background },
+ height = 2.dp
+ )
FlexRow {
expanded(flex = 1.0f) {
val text = "Heads up, you've used up 90% of your " +
@@ -85,12 +89,12 @@
fun RallyAccountsOverviewCard() {
Card {
Column(mainAxisSize = LayoutSize.Expand) {
- Column(modifier = padding(12.dp)) {
+ Column(modifier = Spacing(12.dp)) {
Text(text = "Accounts", style = +themeTextStyle { body1 })
Text(text = "$12,132.49", style = +themeTextStyle { h3 })
}
Divider(color = rallyGreen, height = 1.dp)
- Column(modifier = padding(12.dp), mainAxisSize = LayoutSize.Expand) {
+ Column(modifier = Spacing(12.dp), mainAxisSize = LayoutSize.Expand) {
RallyAccountRow(
name = "Checking",
number = "1234",
@@ -125,7 +129,7 @@
fun RallyAccountsCard() {
VerticalScroller {
Column {
- Stack(padding(16.dp)) {
+ Stack(Spacing(16.dp)) {
aligned(Alignment.Center) {
val accountsProportion = listOf(0.595f, 0.045f, 0.095f, 0.195f, 0.045f)
val colors = listOf(0xFF1EB980, 0xFF005D57, 0xFF04B97F, 0xFF37EFBA,
@@ -141,7 +145,7 @@
}
HeightSpacer(height = 10.dp)
Card {
- Column(modifier = padding(12.dp), mainAxisSize = LayoutSize.Expand) {
+ Column(modifier = Spacing(12.dp), mainAxisSize = LayoutSize.Expand) {
RallyAccountRow(
name = "Checking",
number = "1234",
@@ -180,7 +184,7 @@
*/
@Composable
fun RallyAccountRow(name: String, number: String, amount: String, color: Color) {
- FlexRow(padding(vertical = 12.dp)) {
+ FlexRow(Spacing(top = 12.dp, bottom = 12.dp)) {
inflexible {
AccountIndicator(color = color)
WidthSpacer(width = 8.dp)
@@ -216,13 +220,13 @@
fun RallyBillsOverviewCard() {
Card {
Column(mainAxisSize = LayoutSize.Expand) {
- Column(modifier = padding(12.dp)) {
+ Column(modifier = Spacing(12.dp)) {
Text(text = "Bills", style = +themeTextStyle { subtitle2 })
Text(text = "$1,810.00", style = +themeTextStyle { h3 })
}
Divider(color = rallyGreen, height = 1.dp)
// TODO: change to proper bill items
- Column(modifier = padding(12.dp), mainAxisSize = LayoutSize.Expand) {
+ Column(modifier = Spacing(12.dp), mainAxisSize = LayoutSize.Expand) {
RallyAccountRow(
name = "RedPay Credit",
number = "Jan 29",
@@ -257,7 +261,7 @@
fun RallyBillsCard() {
VerticalScroller {
Column {
- Stack(padding(16.dp)) {
+ Stack(Spacing(16.dp)) {
aligned(alignment = Alignment.Center) {
val accountsProportion = listOf(0.65f, 0.25f, 0.03f, 0.05f)
val colors = listOf(0xFF1EB980, 0xFF005D57, 0xFF04B97F, 0xFF37EFBA).map {
@@ -274,7 +278,7 @@
HeightSpacer(height = 10.dp)
Card {
// TODO: change to proper bill items
- Column(modifier = padding(12.dp), mainAxisSize = LayoutSize.Expand) {
+ Column(modifier = Spacing(12.dp), mainAxisSize = LayoutSize.Expand) {
RallyAccountRow(
name = "RedPay Credit",
number = "Jan 29",
@@ -309,4 +313,4 @@
}
@Composable
-fun RallyDivider() = Divider(color = +themeColor { background }, height = 2.dp)
\ No newline at end of file
+fun RallyDivider() = Divider(color = +themeColor { background }, height = 2.dp)
diff --git a/ui/ui-material/src/main/java/androidx/ui/material/Divider.kt b/ui/ui-material/src/main/java/androidx/ui/material/Divider.kt
index 539632c..bf6662d 100644
--- a/ui/ui-material/src/main/java/androidx/ui/material/Divider.kt
+++ b/ui/ui-material/src/main/java/androidx/ui/material/Divider.kt
@@ -23,7 +23,7 @@
import androidx.ui.core.dp
import androidx.ui.foundation.ColoredRect
import androidx.ui.graphics.Color
-import androidx.ui.layout.absolutePadding
+import androidx.ui.layout.Spacing
/**
* A divider is a thin line that groups content in lists and layouts
@@ -39,6 +39,6 @@
height: Dp = 1.dp,
indent: Dp = 0.dp
) {
- val indentMod = if (indent.value != 0f) absolutePadding(left = indent) else Modifier.None
+ val indentMod = if (indent.value != 0f) Spacing(left = indent) else Modifier.None
ColoredRect(color, modifier wraps indentMod, height = height)
}
\ No newline at end of file