Compare commits
6 Commits
export-D80
...
mateoguzma
Author | SHA1 | Date | |
---|---|---|---|
|
024d360e3c | ||
|
dc2581f229 | ||
|
f16fee8c2e | ||
|
89fc160151 | ||
|
d1246f6f0d | ||
|
93bea17635 |
@@ -83,7 +83,8 @@ publishing {
|
|||||||
afterEvaluate { from(components["default"]) }
|
afterEvaluate { from(components["default"]) }
|
||||||
pom {
|
pom {
|
||||||
description.set(
|
description.set(
|
||||||
"An embeddable and performant flexbox layout engine with bindings for multiple languages")
|
"An embeddable and performant flexbox layout engine with bindings for multiple languages"
|
||||||
|
)
|
||||||
name.set(project.name)
|
name.set(project.name)
|
||||||
url.set("https://github.com/facebook/yoga.git")
|
url.set("https://github.com/facebook/yoga.git")
|
||||||
licenses {
|
licenses {
|
||||||
|
@@ -1,29 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
||||||
*
|
|
||||||
* This source code is licensed under the MIT license found in the
|
|
||||||
* LICENSE file in the root directory of this source tree.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.facebook.yoga;
|
|
||||||
|
|
||||||
public abstract class YogaConfig {
|
|
||||||
|
|
||||||
public static int SPACING_TYPE = 1;
|
|
||||||
|
|
||||||
public abstract void setExperimentalFeatureEnabled(YogaExperimentalFeature feature, boolean enabled);
|
|
||||||
|
|
||||||
public abstract void setUseWebDefaults(boolean useWebDefaults);
|
|
||||||
|
|
||||||
public abstract void setPointScaleFactor(float pixelsInPoint);
|
|
||||||
|
|
||||||
public abstract void setErrata(YogaErrata errata);
|
|
||||||
|
|
||||||
public abstract YogaErrata getErrata();
|
|
||||||
|
|
||||||
public abstract void setLogger(YogaLogger logger);
|
|
||||||
|
|
||||||
public abstract YogaLogger getLogger();
|
|
||||||
|
|
||||||
protected abstract long getNativePointer();
|
|
||||||
}
|
|
33
java/com/facebook/yoga/YogaConfig.kt
Normal file
33
java/com/facebook/yoga/YogaConfig.kt
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||||
|
*
|
||||||
|
* This source code is licensed under the MIT license found in the
|
||||||
|
* LICENSE file in the root directory of this source tree.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.facebook.yoga
|
||||||
|
|
||||||
|
public abstract class YogaConfig {
|
||||||
|
public abstract fun setExperimentalFeatureEnabled(
|
||||||
|
feature: YogaExperimentalFeature,
|
||||||
|
enabled: Boolean,
|
||||||
|
)
|
||||||
|
|
||||||
|
public abstract fun setUseWebDefaults(useWebDefaults: Boolean)
|
||||||
|
|
||||||
|
public abstract fun setPointScaleFactor(pixelsInPoint: Float)
|
||||||
|
|
||||||
|
public abstract fun setErrata(errata: YogaErrata)
|
||||||
|
|
||||||
|
public abstract fun getErrata(): YogaErrata
|
||||||
|
|
||||||
|
public abstract fun setLogger(logger: YogaLogger)
|
||||||
|
|
||||||
|
public abstract fun getLogger(): YogaLogger
|
||||||
|
|
||||||
|
protected abstract fun getNativePointer(): Long
|
||||||
|
|
||||||
|
public companion object {
|
||||||
|
public var SPACING_TYPE: Int = 1
|
||||||
|
}
|
||||||
|
}
|
@@ -1,62 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
||||||
*
|
|
||||||
* This source code is licensed under the MIT license found in the
|
|
||||||
* LICENSE file in the root directory of this source tree.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.facebook.yoga;
|
|
||||||
|
|
||||||
public abstract class YogaConfigJNIBase extends YogaConfig {
|
|
||||||
|
|
||||||
long mNativePointer;
|
|
||||||
private YogaLogger mLogger;
|
|
||||||
|
|
||||||
private YogaConfigJNIBase(long nativePointer) {
|
|
||||||
if (nativePointer == 0) {
|
|
||||||
throw new IllegalStateException("Failed to allocate native memory");
|
|
||||||
}
|
|
||||||
mNativePointer = nativePointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
YogaConfigJNIBase() {
|
|
||||||
this(YogaNative.jni_YGConfigNewJNI());
|
|
||||||
}
|
|
||||||
|
|
||||||
YogaConfigJNIBase(boolean useVanillaJNI) {
|
|
||||||
this(YogaNative.jni_YGConfigNewJNI());
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setExperimentalFeatureEnabled(YogaExperimentalFeature feature, boolean enabled) {
|
|
||||||
YogaNative.jni_YGConfigSetExperimentalFeatureEnabledJNI(mNativePointer, feature.intValue(), enabled);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUseWebDefaults(boolean useWebDefaults) {
|
|
||||||
YogaNative.jni_YGConfigSetUseWebDefaultsJNI(mNativePointer, useWebDefaults);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPointScaleFactor(float pixelsInPoint) {
|
|
||||||
YogaNative.jni_YGConfigSetPointScaleFactorJNI(mNativePointer, pixelsInPoint);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setErrata(YogaErrata errata) {
|
|
||||||
YogaNative.jni_YGConfigSetErrataJNI(mNativePointer, errata.intValue());
|
|
||||||
}
|
|
||||||
|
|
||||||
public YogaErrata getErrata() {
|
|
||||||
return YogaErrata.fromInt(YogaNative.jni_YGConfigGetErrataJNI(mNativePointer));
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLogger(YogaLogger logger) {
|
|
||||||
mLogger = logger;
|
|
||||||
YogaNative.jni_YGConfigSetLoggerJNI(mNativePointer, logger);
|
|
||||||
}
|
|
||||||
|
|
||||||
public YogaLogger getLogger() {
|
|
||||||
return mLogger;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected long getNativePointer() {
|
|
||||||
return mNativePointer;
|
|
||||||
}
|
|
||||||
}
|
|
61
java/com/facebook/yoga/YogaConfigJNIBase.kt
Normal file
61
java/com/facebook/yoga/YogaConfigJNIBase.kt
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||||
|
*
|
||||||
|
* This source code is licensed under the MIT license found in the
|
||||||
|
* LICENSE file in the root directory of this source tree.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.facebook.yoga
|
||||||
|
|
||||||
|
import com.facebook.yoga.YogaNative.jni_YGConfigGetErrataJNI
|
||||||
|
import com.facebook.yoga.YogaNative.jni_YGConfigNewJNI
|
||||||
|
import com.facebook.yoga.YogaNative.jni_YGConfigSetErrataJNI
|
||||||
|
import com.facebook.yoga.YogaNative.jni_YGConfigSetExperimentalFeatureEnabledJNI
|
||||||
|
import com.facebook.yoga.YogaNative.jni_YGConfigSetLoggerJNI
|
||||||
|
import com.facebook.yoga.YogaNative.jni_YGConfigSetPointScaleFactorJNI
|
||||||
|
import com.facebook.yoga.YogaNative.jni_YGConfigSetUseWebDefaultsJNI
|
||||||
|
|
||||||
|
public abstract class YogaConfigJNIBase
|
||||||
|
private constructor(@JvmField protected var nativePointer: Long) : YogaConfig() {
|
||||||
|
private var _logger: YogaLogger? = null
|
||||||
|
|
||||||
|
init {
|
||||||
|
check(nativePointer != 0L) { "Failed to allocate native memory" }
|
||||||
|
}
|
||||||
|
|
||||||
|
internal constructor() : this(jni_YGConfigNewJNI())
|
||||||
|
|
||||||
|
internal constructor(useVanillaJNI: Boolean) : this(jni_YGConfigNewJNI())
|
||||||
|
|
||||||
|
public override fun setExperimentalFeatureEnabled(
|
||||||
|
feature: YogaExperimentalFeature,
|
||||||
|
enabled: Boolean
|
||||||
|
) {
|
||||||
|
YogaNative.jni_YGConfigSetExperimentalFeatureEnabledJNI(
|
||||||
|
nativePointer, feature.intValue(), enabled)
|
||||||
|
}
|
||||||
|
|
||||||
|
public override fun setUseWebDefaults(useWebDefaults: Boolean) {
|
||||||
|
YogaNative.jni_YGConfigSetUseWebDefaultsJNI(nativePointer, useWebDefaults)
|
||||||
|
}
|
||||||
|
|
||||||
|
public override fun setPointScaleFactor(pixelsInPoint: Float) {
|
||||||
|
YogaNative.jni_YGConfigSetPointScaleFactorJNI(nativePointer, pixelsInPoint)
|
||||||
|
}
|
||||||
|
|
||||||
|
public override fun setErrata(errata: YogaErrata) {
|
||||||
|
YogaNative.jni_YGConfigSetErrataJNI(nativePointer, errata.intValue())
|
||||||
|
}
|
||||||
|
|
||||||
|
public override fun getErrata(): YogaErrata =
|
||||||
|
YogaErrata.fromInt(YogaNative.jni_YGConfigGetErrataJNI(nativePointer))
|
||||||
|
|
||||||
|
public override fun setLogger(logger: YogaLogger) {
|
||||||
|
_logger = logger
|
||||||
|
YogaNative.jni_YGConfigSetLoggerJNI(nativePointer, logger)
|
||||||
|
}
|
||||||
|
|
||||||
|
public override fun getLogger(): YogaLogger = checkNotNull(_logger) { "YogaLogger is not set" }
|
||||||
|
|
||||||
|
public override fun getNativePointer(): Long = nativePointer
|
||||||
|
}
|
@@ -22,10 +22,10 @@ public class YogaConfigJNIFinalizer extends YogaConfigJNIBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void freeNatives() {
|
public void freeNatives() {
|
||||||
if (mNativePointer != 0) {
|
if (nativePointer != 0) {
|
||||||
long nativePointer = mNativePointer;
|
long pointer = nativePointer;
|
||||||
mNativePointer = 0;
|
nativePointer = 0;
|
||||||
YogaNative.jni_YGConfigFreeJNI(nativePointer);
|
YogaNative.jni_YGConfigFreeJNI(pointer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -14,6 +14,6 @@ public fun interface YogaMeasureFunction {
|
|||||||
width: Float,
|
width: Float,
|
||||||
widthMode: YogaMeasureMode,
|
widthMode: YogaMeasureMode,
|
||||||
height: Float,
|
height: Float,
|
||||||
heightMode: YogaMeasureMode
|
heightMode: YogaMeasureMode,
|
||||||
): Long
|
): Long
|
||||||
}
|
}
|
||||||
|
@@ -26,7 +26,7 @@ public object YogaNative {
|
|||||||
public external fun jni_YGConfigSetExperimentalFeatureEnabledJNI(
|
public external fun jni_YGConfigSetExperimentalFeatureEnabledJNI(
|
||||||
nativePointer: Long,
|
nativePointer: Long,
|
||||||
feature: Int,
|
feature: Int,
|
||||||
enabled: Boolean
|
enabled: Boolean,
|
||||||
)
|
)
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
@@ -59,7 +59,7 @@ public object YogaNative {
|
|||||||
@JvmStatic
|
@JvmStatic
|
||||||
public external fun jni_YGNodeSetIsReferenceBaselineJNI(
|
public external fun jni_YGNodeSetIsReferenceBaselineJNI(
|
||||||
nativePointer: Long,
|
nativePointer: Long,
|
||||||
isReferenceBaseline: Boolean
|
isReferenceBaseline: Boolean,
|
||||||
)
|
)
|
||||||
|
|
||||||
@JvmStatic public external fun jni_YGNodeIsReferenceBaselineJNI(nativePointer: Long): Boolean
|
@JvmStatic public external fun jni_YGNodeIsReferenceBaselineJNI(nativePointer: Long): Boolean
|
||||||
@@ -74,7 +74,7 @@ public object YogaNative {
|
|||||||
width: Float,
|
width: Float,
|
||||||
height: Float,
|
height: Float,
|
||||||
nativePointers: LongArray,
|
nativePointers: LongArray,
|
||||||
nodes: Array<YogaNodeJNIBase>
|
nodes: Array<YogaNodeJNIBase>,
|
||||||
)
|
)
|
||||||
|
|
||||||
@JvmStatic public external fun jni_YGNodeMarkDirtyJNI(nativePointer: Long)
|
@JvmStatic public external fun jni_YGNodeMarkDirtyJNI(nativePointer: Long)
|
||||||
@@ -171,7 +171,7 @@ public object YogaNative {
|
|||||||
public external fun jni_YGNodeStyleSetMarginPercentJNI(
|
public external fun jni_YGNodeStyleSetMarginPercentJNI(
|
||||||
nativePointer: Long,
|
nativePointer: Long,
|
||||||
edge: Int,
|
edge: Int,
|
||||||
percent: Float
|
percent: Float,
|
||||||
)
|
)
|
||||||
|
|
||||||
@JvmStatic public external fun jni_YGNodeStyleSetMarginAutoJNI(nativePointer: Long, edge: Int)
|
@JvmStatic public external fun jni_YGNodeStyleSetMarginAutoJNI(nativePointer: Long, edge: Int)
|
||||||
@@ -185,7 +185,7 @@ public object YogaNative {
|
|||||||
public external fun jni_YGNodeStyleSetPaddingPercentJNI(
|
public external fun jni_YGNodeStyleSetPaddingPercentJNI(
|
||||||
nativePointer: Long,
|
nativePointer: Long,
|
||||||
edge: Int,
|
edge: Int,
|
||||||
percent: Float
|
percent: Float,
|
||||||
)
|
)
|
||||||
|
|
||||||
@JvmStatic public external fun jni_YGNodeStyleGetBorderJNI(nativePointer: Long, edge: Int): Float
|
@JvmStatic public external fun jni_YGNodeStyleGetBorderJNI(nativePointer: Long, edge: Int): Float
|
||||||
@@ -202,7 +202,7 @@ public object YogaNative {
|
|||||||
public external fun jni_YGNodeStyleSetPositionPercentJNI(
|
public external fun jni_YGNodeStyleSetPositionPercentJNI(
|
||||||
nativePointer: Long,
|
nativePointer: Long,
|
||||||
edge: Int,
|
edge: Int,
|
||||||
percent: Float
|
percent: Float,
|
||||||
)
|
)
|
||||||
|
|
||||||
@JvmStatic public external fun jni_YGNodeStyleSetPositionAutoJNI(nativePointer: Long, edge: Int)
|
@JvmStatic public external fun jni_YGNodeStyleSetPositionAutoJNI(nativePointer: Long, edge: Int)
|
||||||
@@ -305,7 +305,7 @@ public object YogaNative {
|
|||||||
public external fun jni_YGNodeStyleSetGapPercentJNI(
|
public external fun jni_YGNodeStyleSetGapPercentJNI(
|
||||||
nativePointer: Long,
|
nativePointer: Long,
|
||||||
gutter: Int,
|
gutter: Int,
|
||||||
gapLength: Float
|
gapLength: Float,
|
||||||
)
|
)
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
@@ -318,7 +318,7 @@ public object YogaNative {
|
|||||||
public external fun jni_YGNodeSetStyleInputsJNI(
|
public external fun jni_YGNodeSetStyleInputsJNI(
|
||||||
nativePointer: Long,
|
nativePointer: Long,
|
||||||
styleInputsArray: FloatArray,
|
styleInputsArray: FloatArray,
|
||||||
size: Int
|
size: Int,
|
||||||
)
|
)
|
||||||
|
|
||||||
@JvmStatic public external fun jni_YGNodeCloneJNI(nativePointer: Long): Long
|
@JvmStatic public external fun jni_YGNodeCloneJNI(nativePointer: Long): Long
|
||||||
@@ -326,6 +326,6 @@ public object YogaNative {
|
|||||||
@JvmStatic
|
@JvmStatic
|
||||||
public external fun jni_YGNodeSetAlwaysFormsContainingBlockJNI(
|
public external fun jni_YGNodeSetAlwaysFormsContainingBlockJNI(
|
||||||
nativePointer: Long,
|
nativePointer: Long,
|
||||||
alwaysFormContainingBlock: Boolean
|
alwaysFormContainingBlock: Boolean,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@@ -57,7 +57,7 @@ public abstract class YogaNodeJNIBase extends YogaNode implements Cloneable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
YogaNodeJNIBase(YogaConfig config) {
|
YogaNodeJNIBase(YogaConfig config) {
|
||||||
this(YogaNative.jni_YGNodeNewWithConfigJNI(((YogaConfigJNIBase) config).mNativePointer));
|
this(YogaNative.jni_YGNodeNewWithConfigJNI(((YogaConfigJNIBase) config).nativePointer));
|
||||||
mConfig = config; // makes sure the YogaConfig is not garbage collected
|
mConfig = config; // makes sure the YogaConfig is not garbage collected
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,80 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
||||||
*
|
|
||||||
* This source code is licensed under the MIT license found in the
|
|
||||||
* LICENSE file in the root directory of this source tree.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.facebook.yoga;
|
|
||||||
|
|
||||||
public class YogaValue {
|
|
||||||
static final YogaValue UNDEFINED = new YogaValue(YogaConstants.UNDEFINED, YogaUnit.UNDEFINED);
|
|
||||||
static final YogaValue ZERO = new YogaValue(0, YogaUnit.POINT);
|
|
||||||
static final YogaValue AUTO = new YogaValue(YogaConstants.UNDEFINED, YogaUnit.AUTO);
|
|
||||||
|
|
||||||
public final float value;
|
|
||||||
public final YogaUnit unit;
|
|
||||||
|
|
||||||
public YogaValue(float value, YogaUnit unit) {
|
|
||||||
this.value = value;
|
|
||||||
this.unit = unit;
|
|
||||||
}
|
|
||||||
|
|
||||||
YogaValue(float value, int unit) {
|
|
||||||
this(value, YogaUnit.fromInt(unit));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object other) {
|
|
||||||
if (other instanceof YogaValue) {
|
|
||||||
final YogaValue otherValue = (YogaValue) other;
|
|
||||||
if (unit == otherValue.unit) {
|
|
||||||
return unit == YogaUnit.UNDEFINED
|
|
||||||
|| unit == YogaUnit.AUTO
|
|
||||||
|| Float.compare(value, otherValue.value) == 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
return Float.floatToIntBits(value) + unit.intValue();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
switch (unit) {
|
|
||||||
case UNDEFINED:
|
|
||||||
return "undefined";
|
|
||||||
case POINT:
|
|
||||||
return Float.toString(value);
|
|
||||||
case PERCENT:
|
|
||||||
return value + "%";
|
|
||||||
case AUTO:
|
|
||||||
return "auto";
|
|
||||||
default:
|
|
||||||
throw new IllegalStateException();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static YogaValue parse(String s) {
|
|
||||||
if (s == null) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ("undefined".equals(s)) {
|
|
||||||
return UNDEFINED;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ("auto".equals(s)) {
|
|
||||||
return AUTO;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (s.endsWith("%")) {
|
|
||||||
return new YogaValue(Float.parseFloat(s.substring(0, s.length() - 1)), YogaUnit.PERCENT);
|
|
||||||
}
|
|
||||||
|
|
||||||
return new YogaValue(Float.parseFloat(s), YogaUnit.POINT);
|
|
||||||
}
|
|
||||||
}
|
|
66
java/com/facebook/yoga/YogaValue.kt
Normal file
66
java/com/facebook/yoga/YogaValue.kt
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||||
|
*
|
||||||
|
* This source code is licensed under the MIT license found in the
|
||||||
|
* LICENSE file in the root directory of this source tree.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.facebook.yoga
|
||||||
|
|
||||||
|
public class YogaValue
|
||||||
|
public constructor(@JvmField public val value: Float, @JvmField public val unit: YogaUnit) {
|
||||||
|
internal constructor(value: Float, unit: Int) : this(value, YogaUnit.fromInt(unit))
|
||||||
|
|
||||||
|
override fun equals(other: Any?): Boolean {
|
||||||
|
if (other is YogaValue) {
|
||||||
|
val otherValue = other
|
||||||
|
if (unit == otherValue.unit) {
|
||||||
|
return unit == YogaUnit.UNDEFINED ||
|
||||||
|
unit == YogaUnit.AUTO ||
|
||||||
|
value.compareTo(otherValue.value) == 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun hashCode(): Int = java.lang.Float.floatToIntBits(value) + unit.intValue()
|
||||||
|
|
||||||
|
override fun toString(): String =
|
||||||
|
when (unit) {
|
||||||
|
YogaUnit.UNDEFINED -> "undefined"
|
||||||
|
YogaUnit.POINT -> value.toString()
|
||||||
|
YogaUnit.PERCENT -> "$value%"
|
||||||
|
YogaUnit.AUTO -> "auto"
|
||||||
|
else -> throw IllegalStateException()
|
||||||
|
}
|
||||||
|
|
||||||
|
public companion object {
|
||||||
|
@JvmField
|
||||||
|
public val UNDEFINED: YogaValue = YogaValue(YogaConstants.UNDEFINED, YogaUnit.UNDEFINED)
|
||||||
|
|
||||||
|
@JvmField public val ZERO: YogaValue = YogaValue(0f, YogaUnit.POINT)
|
||||||
|
|
||||||
|
@JvmField public val AUTO: YogaValue = YogaValue(YogaConstants.UNDEFINED, YogaUnit.AUTO)
|
||||||
|
|
||||||
|
@JvmStatic
|
||||||
|
public fun parse(s: String?): YogaValue? {
|
||||||
|
if (s == null) {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
if ("undefined" == s) {
|
||||||
|
return UNDEFINED
|
||||||
|
}
|
||||||
|
|
||||||
|
if ("auto" == s) {
|
||||||
|
return AUTO
|
||||||
|
}
|
||||||
|
|
||||||
|
if (s.endsWith("%")) {
|
||||||
|
return YogaValue(s.substring(0, s.length - 1).toFloat(), YogaUnit.PERCENT)
|
||||||
|
}
|
||||||
|
|
||||||
|
return YogaValue(s.toFloat(), YogaUnit.POINT)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -13,6 +13,7 @@ package com.facebook.yoga.annotations
|
|||||||
AnnotationTarget.FUNCTION,
|
AnnotationTarget.FUNCTION,
|
||||||
AnnotationTarget.PROPERTY_GETTER,
|
AnnotationTarget.PROPERTY_GETTER,
|
||||||
AnnotationTarget.PROPERTY_SETTER,
|
AnnotationTarget.PROPERTY_SETTER,
|
||||||
AnnotationTarget.CONSTRUCTOR)
|
AnnotationTarget.CONSTRUCTOR,
|
||||||
|
)
|
||||||
@Retention(AnnotationRetention.BINARY)
|
@Retention(AnnotationRetention.BINARY)
|
||||||
public annotation class DoNotStrip
|
public annotation class DoNotStrip
|
||||||
|
Reference in New Issue
Block a user