Add Java bindings for Errata API (#37096)

Summary:
X-link: https://github.com/facebook/react-native/pull/37096

Pull Request resolved: https://github.com/facebook/yoga/pull/1263

JNI glue to expose `YogaConfig.setErrata()` and `YogaConfig.getErrata()`.

Reviewed By: yungsters

Differential Revision: D45296538

fbshipit-source-id: 8d743d278b7df43f7843a79d8f4542bfb03fc08d
This commit is contained in:
Nick Gerleman
2023-04-27 06:48:04 -07:00
committed by Facebook GitHub Bot
parent fc6485b8cd
commit 4692e97ba0
4 changed files with 33 additions and 0 deletions

View File

@@ -25,6 +25,10 @@ public abstract class YogaConfig {
*/
public abstract void setUseLegacyStretchBehaviour(boolean useLegacyStretchBehaviour);
public abstract void setErrata(YogaErrata errata);
public abstract YogaErrata getErrata();
public abstract void setLogger(YogaLogger logger);
public abstract YogaLogger getLogger();

View File

@@ -52,6 +52,14 @@ public abstract class YogaConfigJNIBase extends YogaConfig {
YogaNative.jni_YGConfigSetUseLegacyStretchBehaviourJNI(mNativePointer, useLegacyStretchBehaviour);
}
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);

View File

@@ -25,6 +25,8 @@ public class YogaNative {
static native void jni_YGConfigSetPrintTreeFlagJNI(long nativePointer, boolean enable);
static native void jni_YGConfigSetPointScaleFactorJNI(long nativePointer, float pixelsInPoint);
static native void jni_YGConfigSetUseLegacyStretchBehaviourJNI(long nativePointer, boolean useLegacyStretchBehaviour);
static native void jni_YGConfigSetErrataJNI(long nativePointer, int errata);
static native int jni_YGConfigGetErrataJNI(long nativePointer);
static native void jni_YGConfigSetLoggerJNI(long nativePointer, YogaLogger logger);
// YGNode related

View File

@@ -105,6 +105,23 @@ static void jni_YGConfigSetUseLegacyStretchBehaviourJNI(
YGConfigSetUseLegacyStretchBehaviour(config, useLegacyStretchBehaviour);
}
static void jni_YGConfigSetErrataJNI(
JNIEnv* env,
jobject obj,
jlong nativePointer,
jint errata) {
const YGConfigRef config = _jlong2YGConfigRef(nativePointer);
YGConfigSetErrata(config, static_cast<YGErrata>(errata));
}
static jint jni_YGConfigGetErrataJNI(
JNIEnv* env,
jobject obj,
jlong nativePointer) {
const YGConfigRef config = _jlong2YGConfigRef(nativePointer);
return static_cast<jint>(YGConfigGetErrata(config));
}
static jlong jni_YGNodeNewJNI(JNIEnv* env, jobject obj) {
const YGNodeRef node = YGNodeNew();
node->setContext(YGNodeContext{}.asVoidPtr);
@@ -764,6 +781,8 @@ static JNINativeMethod methods[] = {
{"jni_YGConfigSetUseLegacyStretchBehaviourJNI",
"(JZ)V",
(void*) jni_YGConfigSetUseLegacyStretchBehaviourJNI},
{"jni_YGConfigSetErrataJNI", "(JI)V", (void*) jni_YGConfigSetErrataJNI},
{"jni_YGConfigGetErrataJNI", "(J)I", (void*) jni_YGConfigGetErrataJNI},
{"jni_YGConfigSetLoggerJNI",
"(JLcom/facebook/yoga/YogaLogger;)V",
(void*) jni_YGConfigSetLoggerJNI},